Understanding Behavioral Dependencies in Class Hierarchies using Concept Analysis
Gabriela Arévalo · L objet · 2003
ABSTRACT. The functionalities of software artifacts are defined by structural and behavioral dependencies. During evolution and maintenance phases of a system, the developer has to be able to understand how these dependencies were defined and how they influence the interaction of the artifacts. The developer must be sure that modifications done in the system will not break its behavior. In the most of the cases, this happens because the dependencies are not documented. We propose to tackle this problem in the context of object oriented classes hierarchies using Concept Analysis. We use different properties about invocations in methods to analyze the dependencies among the hierarchy classes in terms of class behaviour. Based on these results, we show a set of patterns that describe repeated kinds of behavior in class hierarchies. We show the application of these patterns in the specific case of Magnitude hierarchy in Smalltalk RÉSUMÉ. Les fonctionnalités des objets sont définies par des dépendances structurales et comportementales. Pendant les phases d’évolution et d’entretien d’un systéme, le programmeur doit comprendre comment ces dépendances ont été définies et comment elles influencent l’interaction des objets. Le programmeur doit s’assurer que les modifications faites au systéme ne changeront pas son comportement. Dans la plupart des cas, ceci se produit parce que les dépendances ne sont pas documentées. Nous proposons d’aborder ce probléme dans le contexte des hiérarchies de classes orientées objets en utilisant l’analyse de concepts (concept analysis). Nous employons différentes propriétés des invocations dans les méthodes pour analyser les dépendances parmi les hiérarchie des classes en termes du comportement de classes. Basé sur ces résultats, nous montrons un ensemble de patrons qui décrivent des répétitions de comportements dans hiérarchies. Nous montrons l’application de ces patrons dans le cas spécifique de la hiérarchie Magnitude de Smalltalk