The practical guide to structured systems design: 2nd edition
The practical guide to structured systems design: 2nd edition
A software metric system for module coupling
Journal of Systems and Software - Special issue on the Oregon Metric Workshop
Detection of Logical Coupling Based on Product Release History
ICSM '98 Proceedings of the International Conference on Software Maintenance
Mining Version Histories to Guide Software Changes
Proceedings of the 26th International Conference on Software Engineering
Predicting Source Code Changes by Mining Change History
IEEE Transactions on Software Engineering
Predicting Change Propagation in Software Systems
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Impact Analysis by Mining Software and Change Request Repositories
METRICS '05 Proceedings of the 11th IEEE International Software Metrics Symposium
An empirical study of fine-grained software modifications
Empirical Software Engineering
The TXL source transformation language
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
Animated Visualization of Software History using Evolution Storyboards
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Extracting Change-patterns from CVS Repositories
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
A Bayesian Network Based Approach for Change Coupling Prediction
WCRE '08 Proceedings of the 2008 15th Working Conference on Reverse Engineering
"Cloning considered harmful" considered harmful: patterns of cloning in software
Empirical Software Engineering
A Mutation/Injection-Based Automatic Framework for Evaluating Code Clone Detection Tools
ICSTW '09 Proceedings of the IEEE International Conference on Software Testing, Verification, and Validation Workshops
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Visualizing Co-Change Information with the Evolution Radar
IEEE Transactions on Software Engineering
Near-miss function clones in open source software: an empirical study
Journal of Software Maintenance and Evolution: Research and Practice - Working Conference on Reverse Engineering (WCRE 2008)
Proceedings of the 4th International Workshop on Software Clones
An eclectic approach for change impact analysis
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE)
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
CSMR '11 Proceedings of the 2011 15th European Conference on Software Maintenance and Reengineering
Is cloned code older than non-cloned code?
Proceedings of the 5th International Workshop on Software Clones
ICPC '11 Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension
An Empirical Study of the Impacts of Clones in Software Maintenance
ICPC '11 Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension
An Exploratory Study of Macro Co-changes
WCRE '11 Proceedings of the 2011 18th Working Conference on Reverse Engineering
Comparative stability of cloned and non-cloned code: an empirical study
Proceedings of the 27th Annual ACM Symposium on Applied Computing
An empirical study of the factors affecting co-change frequency of cloned code
CASCON '13 Proceedings of the 2013 Conference of the Center for Advanced Studies on Collaborative Research
Hi-index | 0.00 |
Software maintenance is an important and challenging phase of the software development life cycle because changes during this phase without proper awareness of dependencies among program modules can introduce faults in the software system. There is also a common intuition that cloned code introduces additional software maintenance challenges and difficulties. To support successful accomplishment of maintenance activities we consider two issues: (i) identifying coding characteristics that cause high source code modifications, and (ii) guidance for minimizing source code modifications. Focusing on these two issues we investigated the effects of method sharing (among different functionality) on method co-changeability and source code modifications. We proposed and empirically evaluated two metrics, (i) COMS (Co-changeability of Methods), and (ii) CCMS (Connectivity of Co-changed Method Groups). COMS measures the extent to which a method co-changes with other methods. CCMS quantifies the extent to which a particular functionality in a software system is connected with other functionality in that system. In other words CCMS measures the intensity of method sharing among different functionality or tasks (defined later). We investigated the impact of CCMS on COMS and source code modifications. Our comprehensive study on hundreds of revisions of six open source subject systems covering three programming languages (Java, C and C#) suggests that - (i) higher CCMS causes higher COMS as well as increased source code modifications, (ii) COMS in the cloned regions of a software system is negligible as compared to the COMS in the non-cloned regions, and (iii) in-spite of some issues (described later) cloning can be a possible way to reduce CCMS.