ABSTRACT
Software systems need to change over time to cope with new requirements, and due to design decisions, the changes happen to crosscut the system's structure. Understanding how changes appear in the system can reveal hidden dependencies between different entities of the system. We propose the usage of concept analysis to identify groups of entities that change in the same way and in the same time. We apply our approach at different levels of abstraction (i.e., method, class, package) and we detect fine grained changes (i.e., statements were added in a class, but no method was added there). Concept analysis is a technique that identifies entities that have the same properties, but it requires manual inspection due to the large number of candidates it detects. We propose a heuristic that dramatically eliminate the false positives. We apply our approach on two case studies and we show how we can identify hidden dependencies and detect bad smells.
- S. Bouktif, Y.-G. Gueheneuc, and G. Antoniol. Extracting change-patterns from cvs repositories. In Proceedings of the 13th Working Conference on Reverse Engineering (WCRE 2006), pages 221--230, 2006. Google ScholarDigital Library
- S. Breu and T. Zimmermann. Mining aspects from version history. In Proceedings of the 21st IEEE International Conference on Automated Software Engineering (ASE'06), pages 221--230, Washington, DC, USA, 2006. IEEE Computer Society. Google ScholarDigital Library
- O. Ciupke. Automatic detection of design problems in object-oriented reengineering. In Proceedings of TOOLS 30 (USA), pages 18--32, 1999. Google ScholarDigital Library
- J. Davey and E. Burd. Clustering and concept analysis for software evolution. In Proceedings of the 4th international Workshop on Principles of Software Evolution (IWPSE 2001), pages 146--149, Vienna, Austria, 2001. Google ScholarDigital Library
- M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts. Refactoring: Improving the Design of Existing Code. Addison Wesley, 1999. Google ScholarDigital Library
- H. Gall, K. Hajek, and M. Jazayeri. Detection of logical coupling based on product release history. In Proceedings International Conference on Software Maintenance (ICSM '98), pages 190--198, Los Alamitos CA, 1998. IEEE Computer Society Press. Google ScholarDigital Library
- H. Gall, M. Jazayeri, and J. Krajewski. CVS release history data for detecting logical couplings. In International Workshop on Principles of Software Evolution (IWPSE 2003), pages 13--23, Los Alamitos CA, 2003. IEEE Computer Society Press. Google ScholarDigital Library
- B. Ganter and R. Wille. Formal Concept Analysis: Mathematical Foundations. Springer Verlag, 1999. Google ScholarDigital Library
- T. Gîrba. Modeling History to Understand Software Evolution. PhD thesis, University of Berne, Berne, Nov. 2005.Google Scholar
- T. Gîrba and S. Ducasse. Modeling history to analyze software evolution. Journal of Software Maintenance: Research and Practice (JSME), 18:207--236, 2006. Google ScholarDigital Library
- A. Hassan and R. Holt. Predicting change propagation in software systems. In Proceedings 20th IEEE International Conference on Software Maintenance (ICSM'04), pages 284--293, Los Alamitos CA, Sept. 2004. IEEE Computer Society Press. Google ScholarDigital Library
- J. Itkonen, M. Hillebrand, and V. Lappalainen. Application of relation analysis to a small Java software. In Proceedings of the Conference on Software Maintenance and Reengineering (CSMR 2004), pages 233--239, 2004. Google ScholarDigital Library
- M. Lanza and S. Ducasse. Understanding software evolution using a combination of software visualization and software metrics. In Proceedings of Langages et Modèles à Objets (LMO'02), pages 135--149, Paris, 2002. Lavoisier.Google ScholarCross Ref
- M. Lehman and L. Belady. Program Evolution: Processes of Software Change. London Academic Press, London, 1985. Google ScholarDigital Library
- R. Marinescu. Measurement and Quality in Object-Oriented Design. PhD thesis, Department of Computer Science, Politehnica University of Timişoara, 2002.Google Scholar
- T. McCabe. A measure of complexity. IEEE Transactions on Software Engineering, 2(4):308--320, Dec. 1976. Google ScholarDigital Library
- O. Nierstrasz, S. Ducasse, and T. Gîrba. The story of Moose: an agile reengineering environment. In Proceedings of the European Software Engineering Conference (ESEC/FSE 2005), pages 1--10, New York NY, 2005. ACM Press. Invited paper. Google ScholarDigital Library
- J. S. Shirabad, T. C. Lethbridge, and S. Matwin. Mining the maintenance history of a legacy software system. In International Conference on Software Maintenance (ICSM 2003), pages 95--104, 2003. Google ScholarDigital Library
- Tom Tourwé and T. Mens. Identifying refactoring opportunities using logic meta programming. In Proc. 7th European Conf. Software Maintenance and Re-engineering (CSMR 2003), pages 91--100. IEEE Computer Society Press, Mar. 2003. Google ScholarDigital Library
- E. van Emden and L. Moonen. Java quality assurance by detecting code smells. In Proc. 9th Working Conf. Reverse Engineering, pages 97--107. IEEE Computer Society Press, Oct. 2002. Google ScholarDigital Library
- T. Zimmermann, P. Weißgerber, S. Diehl, and A. Zeller. Mining version histories to guide software changes. In 26th International Conference on Software Engineering (ICSE 2004), pages 563--572, Los Alamitos CA, 2004. IEEE Computer Society Press. Google ScholarDigital Library
- T. Zimmermann, P. Weißgerber, S. Diehl, and A. Zeller. Mining version histories to guide software changes. IEEE Transactions on Software Engineering, 31(6):429--445, June 2005. Google ScholarDigital Library
Recommendations
Common-possible concept analysis: A granule description viewpoint
AbstractConcepts are basic units of human cognitive activities and concept based granule description is one of the possible ways to realize explainable AI through information granules. However, the existing types of concepts cannot work effectively when ...
An Efficient Concept-Based Mining Model for Enhancing Text Clustering
Most of the common techniques in text mining are based on the statistical analysis of a term, either word or phrase. Statistical analysis of a term frequency captures the importance of the term within a document only. However, two terms can have the ...
Types and Concept Analysis for Legacy Systems
IWPC '00: Proceedings of the 8th International Workshop on Program ComprehensionWe combine type inference and concept analysis in order to gain insight into legacy software systems. Type inference for COBOL yields the types for variables and program parameters. These types are used to perform mathematical concept analysis on legacy ...
Comments