Understanding and Controlling Software Costs
IEEE Transactions on Software Engineering
Towards a metrics suite for object oriented design
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Object-oriented metrics that predict maintainability
Journal of Systems and Software - Special issue on object-oriented software
Experimental software engineering: a report on the state of the art
Proceedings of the 17th international conference on Software engineering
Object-oriented metrics: measures of complexity
Object-oriented metrics: measures of complexity
A Validation of Object-Oriented Design Metrics as Quality Indicators
IEEE Transactions on Software Engineering
An investigation into coupling measures for C++
ICSE '97 Proceedings of the 19th international conference on Software engineering
An Empirical Approach to Studying Software Evolution
IEEE Transactions on Software Engineering
Experimentation in software engineering: an introduction
Experimentation in software engineering: an introduction
Software Change Impact Analysis
Software Change Impact Analysis
Dynamic Memory: A Theory of Reminding and Learning in Computers and People
Dynamic Memory: A Theory of Reminding and Learning in Computers and People
Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design
Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design
Replicated Case Studies for Investigating Quality Factorsin Object-Oriented Designs
Empirical Software Engineering
The reference model for smooth growth of software systems revisited
IEEE Transactions on Software Engineering
Improving Code Churn Predictions During the System Test and Maintenance Phases
ICSM '94 Proceedings of the International Conference on Software Maintenance
Reusability Hypothesis Verification using Machine Learning Techniques: A Case Study
ASE '98 Proceedings of the 13th IEEE international conference on Automated software engineering
Predicting Software Stability Using Case-Based Reasoning
Proceedings of the 17th IEEE international conference on Automated software engineering
Metrics and Laws of Software Evolution - The Nineties View
METRICS '97 Proceedings of the 4th International Symposium on Software Metrics
Code Churn: A Measure for Estimating the Impact of Code Change
ICSM '98 Proceedings of the International Conference on Software Maintenance
Detection of software modules with high debug code churn in a very large legacy system
ISSRE '96 Proceedings of the The Seventh International Symposium on Software Reliability Engineering
An Empirical Study of Software Reuse vs. Defect-Density and Stability
Proceedings of the 26th International Conference on Software Engineering
A reverse engineering tool for precise class diagrams
CASCON '04 Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research
Use of relative code churn measures to predict system defect density
Proceedings of the 27th international conference on Software engineering
Analyzing the Evolutionary History of the Logical Design of Object-Oriented Software
IEEE Transactions on Software Engineering
Data Mining: Practical Machine Learning Tools and Techniques, Second Edition (Morgan Kaufmann Series in Data Management Systems)
The Cost of Developing Large-Scale Software
IEEE Transactions on Computers
IEEE Transactions on Software Engineering
Predicting the maintainability of XSL transformations
Science of Computer Programming
Hi-index | 0.00 |
More and more, developers use reusable components like libraries to produce high quality software systems. These systems need to satisfy not only the initial demands of their stakeholders, but they need to also offer support for future, changing requirements. While several studies have looked at the cost of modifying systems, there exists no work verifying if libraries evolve differently than applications. This study attempts to do so quantitatively. In this paper, we define design changes metrics to estimate the amount of high-level change required of individual classes and use metrics to describe their structure. These measures are then used as inputs in models capable of predicting code change. We used machine learning techniques to build these models and tested them on the evolution of industrial open-source systems. Two of the systems were libraries, and two were standalone applications. We found that while design changes are systematically correlated with code changes, structure metrics are better predictors of code change in libraries with well developed class hierarchies. With the two applications without this characteristic, structure alone was a poor predictor.