Lahmar, Mohamed Elyes (2016). Validation empirique des structures de conception supportant la variabilité. Mémoire de maîtrise électronique, Montréal, École de technologie supérieure.
Prévisualisation |
PDF
Télécharger (743kB) | Prévisualisation |
Prévisualisation |
PDF
Télécharger (325kB) | Prévisualisation |
Résumé
Les interfaces sont largement utilisées dans la conception orientée objet pour la programmation modulaire afin de promouvoir la stabilité des logiciels et de faciliter leur maintenance. Ces mécanismes permettent de cacher les détails des implémentations qui varient et qui sont potentiellement instables dans l’évolution logicielle. Les classes clients ne connaissent que l’abstraction définie par l’interface afin de minimiser l’impact de changement des implémentations. Cependant, les dépendances avec les implémentations peuvent être coûteuses et impliquent que les clients ne sont pas protégés aux changements.
Nous proposons une étude empirique dont l’objectif principal est de comprendre dans un contexte réel des structures de conception favorisant la protection des variations. Notre étude est basée sur un modèle théorique des interfaces stables, et pour lequel certaines classes logicielles qui utilisent ces interfaces peuvent être identifiées comme clients stables ou clients instables. Nous étudions empiriquement de diverses mesures de ces clients, y compris leur prédisposition aux changements et aux bogues en utilisant les données de plusieurs projets de logiciels à code source ouvert.
Le but de notre étude est d’évaluer si les clients instables sont plus impliqués dans les changements et les bogues par rapport aux clients stables.
Nous montrons que, dans presque toutes les versions des systèmes étudiés, les clients qui dépendent des implémentations sont plus exposés aux changements et aux bogues.
Titre traduit
Empirical validation of design structures supporting variability
Résumé traduit
Interfaces are widely used in object-oriented design for modular programming to increase software stability and to facilitate their maintenance. These mechanisms allow hiding implementation details that vary and are potentially unstable in the evolution of systems. Clients only know about abstraction defined by the interface to minimize the impact caused by changes in the implementations. However, dependencies on implementations are deemed harmful and imply that clients can be affected by changes.
We propose an empirical study for which the main objective is to understand real-world use of structures favoring protected variations in software design. Our study is based on a theoretical model for stable interfaces, and for which certain software classes using such interfaces can be identified statically as either stable clients or unstable clients. We investigate empirically various measures of these clients, including their change- and fault-proneness using data from several open-source software projects.
The goal of our study is to assess whether stable clients have a higher likelihood than unstable clients to be involved in changes and bug fixes.
We show that in almost all releases of the systems studied, clients that have dependencies on implementations are more change- and fault-prone than clients that only depend on interfaces.
Type de document: | Mémoire ou thèse (Mémoire de maîtrise électronique) |
---|---|
Renseignements supplémentaires: | "Mémoire présenté à l'École de technologie supérieure comme exigence partielle à l'obtention de la maîtrise avec mémoire en génie logiciel". Bibliographie : pages 73-78. |
Mots-clés libres: | Interfaces (Informatique) Programmation modulaire. Programmation orientée objet (Informatique) Exploration de données (Informatique) Logiciels Stabilité. Logiciels Entretien et réparations. bogue, changement, client, conception, instable, masquage, prédisposition, stable, structure, variabilité, variation, protection des variations |
Directeur de mémoire/thèse: | Directeur de mémoire/thèse Fuhrman, Christopher |
Codirecteur: | Codirecteur Guerrouj, Latifa |
Programme: | Maîtrise en ingénierie > Génie |
Date de dépôt: | 03 nov. 2016 19:57 |
Dernière modification: | 03 nov. 2016 19:57 |
URI: | https://espace.etsmtl.ca/id/eprint/1748 |
Gestion Actions (Identification requise)
Dernière vérification avant le dépôt |