Program evolution: processes of software change
Program evolution: processes of software change
An Entropy-Based Measure of Software Complexity
IEEE Transactions on Software Engineering - Special issue on software measurement principles, techniques, and environments
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
ICSE '94 Proceedings of the 16th international conference on Software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Evaluating Software Degradation through Entropy
METRICS '01 Proceedings of the 7th International Symposium on Software Metrics
The Chaos of Software Development
IWPSE '03 Proceedings of the 6th International Workshop on Principles of Software Evolution
CVS Release History Data for Detecting Logical Couplings
IWPSE '03 Proceedings of the 6th International Workshop on Principles of Software Evolution
The Journal of Machine Learning Research
Mining Version Histories to Guide Software Changes
Proceedings of the 26th International Conference on Software Engineering
Semantic clustering: Identifying topics in source code
Information and Software Technology
Design Pattern Detection Using Similarity Scoring
IEEE Transactions on Software Engineering
An Empirical Study of the Evolution of an Agile-Developed Software System
ICSE '07 Proceedings of the 29th international conference on Software Engineering
An empirical study on the evolution of design patterns
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Using Software Dependencies and Churn Metrics to Predict Field Failures: An Empirical Case Study
ESEM '07 Proceedings of the First International Symposium on Empirical Software Engineering and Measurement
On the relation of refactorings and software defect prediction
Proceedings of the 2008 international working conference on Mining software repositories
Handbook of Parametric and Nonparametric Statistical Procedures
Handbook of Parametric and Nonparametric Statistical Procedures
Predicting faults using the complexity of code changes
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Mining the coherence of GNOME bug reports with statistical topic models
MSR '09 Proceedings of the 2009 6th IEEE International Working Conference on Mining Software Repositories
Who are Source Code Contributors and How do they Change?
WCRE '09 Proceedings of the 2009 16th Working Conference on Reverse Engineering
An exploratory study of the evolution of software licensing
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
An Exploratory Study of Factors Influencing Change Entropy
ICPC '10 Proceedings of the 2010 IEEE 18th International Conference on Program Comprehension
Validating the Use of Topic Models for Software Evolution
SCAM '10 Proceedings of the 2010 10th IEEE Working Conference on Source Code Analysis and Manipulation
Hi-index | 0.00 |
Context Software systems continuously change for various reasons, such as adding new features, fixing bugs, or refactoring. Changes may either increase the source code complexity and disorganization, or help to reducing it. Aim This paper empirically investigates the relationship of source code complexity and disorganization--measured using source code change entropy--with four factors, namely the presence of refactoring activities, the number of developers working on a source code file, the participation of classes in design patterns, and the different kinds of changes occurring on the system, classified in terms of their topics extracted from commit notes. Method We carried out an exploratory study on an interval of the life-time span of four open source systems, namely ArgoUML, Eclipse-JDT, Mozilla, and Samba, with the aim of analyzing the relationship between the source code change entropy and four factors: refactoring activities, number of contributors for a file, participation of classes in design patterns, and change topics. Results The study shows that (i) the change entropy decreases after refactoring, (ii) files changed by a higher number of developers tend to exhibit a higher change entropy than others, (iii) classes participating in certain design patterns exhibit a higher change entropy than others, and (iv) changes related to different topics exhibit different change entropy, for example bug fixings exhibit a limited change entropy while changes introducing new features exhibit a high change entropy. Conclusions Results provided in this paper indicate that the nature of changes (in particular changes related to refactorings), the software design, and the number of active developers are factors related to change entropy. Our findings contribute to understand the software aging phenomenon and are preliminary to identifying better ways to contrast it.