skip to main content
10.1145/1294948.1294970acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Using concept analysis to detect co-change patterns

Published: 03 September 2007 Publication History

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.

References

[1]
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.
[2]
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.
[3]
O. Ciupke. Automatic detection of design problems in object-oriented reengineering. In Proceedings of TOOLS 30 (USA), pages 18--32, 1999.
[4]
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.
[5]
M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts. Refactoring: Improving the Design of Existing Code. Addison Wesley, 1999.
[6]
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.
[7]
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.
[8]
B. Ganter and R. Wille. Formal Concept Analysis: Mathematical Foundations. Springer Verlag, 1999.
[9]
T. Gîrba. Modeling History to Understand Software Evolution. PhD thesis, University of Berne, Berne, Nov. 2005.
[10]
T. Gîrba and S. Ducasse. Modeling history to analyze software evolution. Journal of Software Maintenance: Research and Practice (JSME), 18:207--236, 2006.
[11]
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.
[12]
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.
[13]
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.
[14]
M. Lehman and L. Belady. Program Evolution: Processes of Software Change. London Academic Press, London, 1985.
[15]
R. Marinescu. Measurement and Quality in Object-Oriented Design. PhD thesis, Department of Computer Science, Politehnica University of Timişoara, 2002.
[16]
T. McCabe. A measure of complexity. IEEE Transactions on Software Engineering, 2(4):308--320, Dec. 1976.
[17]
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.
[18]
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.
[19]
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.
[20]
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.
[21]
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.
[22]
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.

Cited By

View all
  • (2022)Detecting the Locations and Predicting the Maintenance Costs of Compound Architectural DebtsIEEE Transactions on Software Engineering10.1109/TSE.2021.310222148:9(3686-3715)Online publication date: 1-Sep-2022
  • (2020)Exploring software bug-proneness based on evolutionary clique modeling and analysisInformation and Software Technology10.1016/j.infsof.2020.106380128(106380)Online publication date: Dec-2020
  • (2019)History Coupling Space: A New Model to Represent Evolutionary Relations2019 26th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC48747.2019.00026(126-133)Online publication date: Dec-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
IWPSE '07: Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting
September 2007
122 pages
ISBN:9781595937223
DOI:10.1145/1294948
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 September 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. co-change analysis
  2. concept analysis
  3. evolution analysis

Qualifiers

  • Article

Conference

ESEC/FSE07
Sponsor:

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 25 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Detecting the Locations and Predicting the Maintenance Costs of Compound Architectural DebtsIEEE Transactions on Software Engineering10.1109/TSE.2021.310222148:9(3686-3715)Online publication date: 1-Sep-2022
  • (2020)Exploring software bug-proneness based on evolutionary clique modeling and analysisInformation and Software Technology10.1016/j.infsof.2020.106380128(106380)Online publication date: Dec-2020
  • (2019)History Coupling Space: A New Model to Represent Evolutionary Relations2019 26th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC48747.2019.00026(126-133)Online publication date: Dec-2019
  • (2018)Towards Prioritizing Documentation EffortIEEE Transactions on Software Engineering10.1109/TSE.2017.271695044:9(897-913)Online publication date: 1-Sep-2018
  • (2018)On the diffuseness and the impact on maintainability of code smells: a large scale empirical investigationEmpirical Software Engineering10.1007/s10664-017-9535-z23:3(1188-1221)Online publication date: 1-Jun-2018
  • (2017)CLCMiner: Detecting Cross-Language Clones without IntermediatesIEICE Transactions on Information and Systems10.1587/transinf.2016EDP7334E100.D:2(273-284)Online publication date: 2017
  • (2016)Mining revision histories to detect cross-language clones without intermediatesProceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering10.1145/2970276.2970363(696-701)Online publication date: 25-Aug-2016
  • (2016)The Impact of Task Granularity on Co-evolution AnalysesProceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/2961111.2962607(1-10)Online publication date: 8-Sep-2016
  • (2016)Code anomalies flock togetherProceedings of the 38th International Conference on Software Engineering10.1145/2884781.2884868(440-451)Online publication date: 14-May-2016
  • (2016)Identifying and quantifying architectural debtProceedings of the 38th International Conference on Software Engineering10.1145/2884781.2884822(488-498)Online publication date: 14-May-2016
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media