ACM Home Page
Please provide us with feedback. Feedback
Identifying traits with formal concept analysis
Full text PdfPdf (238 KB)
Source Automated Software Engineering archive
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering table of contents
Long Beach, CA, USA
SESSION: Program understanding table of contents
Pages: 66 - 75  
Year of Publication: 2005
ISBN:1-59593-993-4
Authors
Adrian Lienhard  University of Bern (Switzerland)
Stéphane Ducasse  University of Bern (Switzerland) and Université de Savoie (France)
Gabriela Arévalo  University of Bern (Switzerland)
Sponsors
ACM: Association for Computing Machinery
SIGART: ACM Special Interest Group on Artificial Intelligence
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 51,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1101908.1101921
What is a DOI?

ABSTRACT

Traits are basically mixins or interfaces but with method bodies. In languages that support traits, classes are composed out of traits. There are two main advantages with traits. Firstly, decomposing existing classes into traits from which they can be recomposed improves the factoring of hierarchies. Secondly it increases the library reuse potential by providing more reusable traits. Identifying traits and decomposing class hierarchies into traits is therefore an important and challenging task to facilitate maintainability and evolution. In this paper we present how we use Formal Concept Analysis to identify traits in inheritance hierarchies. Our approach is two-staged: first we identify within a hierarchy maximal groups of methods that have a set of classes in common, second we cluster cohesive groups of methods based on method invocations as potential traits. We applied our approach on two significant hierarchies and compare our results with the manual refactorization of the same code which was done by the authors of traits.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
G. Arévalo. Understanding Behavioral Dependencies in Class Hierarchies using Concept Analysis. In Proceedings of LMO '03, pages 47--59. Hermes, Paris, Jan. 2003.
 
2
A. Arfi, R. Godin, H. Mili, G. W. Mineau, and R. Missaoui. Generating the interface hierarchy of a class library. In Colloquium on Object Orientation in Databases and Software Engineering, pages 42--57, 1994.
 
3
 
4
5
6
 
7
E. Casais. Automatic reorganization of object-oriented hierarchies: A case study. Object-Oriented Systems, 1(2):95--115, Dec. 1994.
8
9
 
10
K. Fisher and J. Reppy. Statically typed traits. Technical Report TR-2003-13, University of Chicago, Department of Computer Science, Dec. 2003.
 
11
The fortress language specification. research.sun.com/projects/plrg/fortress0618.pdf.
 
12
 
13
 
14
 
15
 
16
17
18
 
19
Scala home page. http://lamp.epfl.ch/scala/.
 
20
N. Schärli, S. Ducasse, O. Nierstrasz, and A. Black. Traits: Composable units of behavior. In Proceedings of ECOOP 2003, pages 248--274. Springer Verlag, July 2003.
 
21
C. Smith and S. Drossopoulou. Chai: Typed traits in java. In Proceedings ECOOP 2005, 2005.
 
22
G. Snelting and F. Tip. Reengineering Class Hierarchies using Concept Analysis. In ACM Trans. Programming Languages and Systems, 1998.
23
 
24
D. Taenzer, M. Ganti, and S. Podar. Problems in object-oriented software reuse. In S. Cook, editor, Proceedings of ECOOP '89, pages 25--38, Nottingham, July 1989. Cambridge University Press.
25
 
26


Collaborative Colleagues:
Adrian Lienhard: colleagues
Stéphane Ducasse: colleagues
Gabriela Arévalo: colleagues