Software errors and complexity: an empirical investigation0
Communications of the ACM
Program evolution: processes of software change
Program evolution: processes of software change
Understanding Software Maintenance Work
IEEE Transactions on Software Engineering
Software complexity: measures and methods
Software complexity: measures and methods
Predicting Fault-Prone Software Modules in Telephone Switches
IEEE Transactions on Software Engineering
ICSE '94 Proceedings of the 16th international conference on Software engineering
Parallel changes in large scale software development: an observational case study
Proceedings of the 20th international conference on Software engineering
Predicting Fault Incidence Using Software Change History
IEEE Transactions on Software Engineering
Some factors affecting program repair maintenance: an empirical study
Communications of the ACM
Software Visualization in the Large
Computer
Status Report on Software Measurement
IEEE Software
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Inferring Change Effort from Configuration Management Databases
METRICS '98 Proceedings of the 5th International Symposium on Software Metrics
Towards compatible primitive structures
Journal of Experimental & Theoretical Artificial Intelligence - Special issue: conceptual graphs workshop
Empirical studies of software engineering: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Distance, dependencies, and delay in a global collaboration
CSCW '00 Proceedings of the 2000 ACM conference on Computer supported cooperative work
Parallel changes in large-scale software development: an observational case study
ACM Transactions on Software Engineering and Methodology (TOSEM)
Achieving extensibility through product-lines and domain-specific languages: a case study
ACM Transactions on Software Engineering and Methodology (TOSEM)
A method for detecting faulty code violating implicit coding rules
Proceedings of the International Workshop on Principles of Software Evolution
IEEE Transactions on Software Engineering
Effort estimation for corrective software maintenance
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
Goal-oriented software assessment
Proceedings of the 24th International Conference on Software Engineering
An Empirically-Based Process for Software Architecture Evaluation
Empirical Software Engineering
IEEE Transactions on Software Engineering
A model of factors affecting an information system's change in state
Journal of Software Maintenance: Research and Practice
A Process for Software Architecture Evaluation Using Metrics
SEW '02 Proceedings of the 27th Annual NASA Goddard Software Engineering Workshop (SEW-27'02)
CVSSearch: Searching through Source Code using CVS Comments
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Journal of Systems and Software
Empirical evaluation of defect projection models for widely-deployed production software systems
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
How Effective Developers Investigate Source Code: An Exploratory Study
IEEE Transactions on Software Engineering
Effort estimation of use cases for incremental large-scale software development
Proceedings of the 27th international conference on Software engineering
Design mentoring based on design evolution analysis
eclipse '04 Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange
Toward Understanding the Rhetoric of Small Source Code Changes
IEEE Transactions on Software Engineering
The story of moose: an agile reengineering environment
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Surveying the factors that influence maintainability: research design
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Informing the design of pipeline-based software visualisations
APVis '05 proceedings of the 2005 Asia-Pacific symposium on Information visualisation - Volume 45
MACS '05 Proceedings of the 2005 workshop on Modeling and analysis of concerns in software
Investigating quality in large-scale Open Source Software
5-WOSSE Proceedings of the fifth workshop on Open source software engineering
Exploring the acceptability envelope
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Analyzing the Evolutionary History of the Logical Design of Object-Oriented Software
IEEE Transactions on Software Engineering
UMLDiff: an algorithm for object-oriented design differencing
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Modeling history to analyze software evolution: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
TA-RE: an exchange language for mining software repositories
Proceedings of the 2006 international workshop on Mining software repositories
Program element matching for multi-version program analyses
Proceedings of the 2006 international workshop on Mining software repositories
Information theoretic evaluation of change prediction models for large-scale software
Proceedings of the 2006 international workshop on Mining software repositories
Supporting change request assignment in open source development
Proceedings of the 2006 ACM symposium on Applied computing
Changing the paradigm of software engineering
Communications of the ACM - Music information retrieval
Looking for bugs in all the right places
Proceedings of the 2006 international symposium on Software testing and analysis
Beyond source code: the importance of other artifacts in software development (a case study)
Journal of Systems and Software - Special issue: Selected papers from the 4th source code analysis and manipulation (SCAM 2004) workshop
Detecting increases in feature coupling using regression tests
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Representing concerns in source code
ACM Transactions on Software Engineering and Methodology (TOSEM)
Odyssey-SCM: An integrated software configuration management infrastructure for UML models
Science of Computer Programming
A Study of Design Characteristics in Evolving Software Using Stability as a Criterion
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
Combining Single-Version and Evolutionary Dependencies for Software-Change Prediction
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Using Developer Information as a Factor for Fault Prediction
PROMISE '07 Proceedings of the Third International Workshop on Predictor Models in Software Engineering
Automating algorithms for the identification of fault-prone files
Proceedings of the 2007 international symposium on Software testing and analysis
Differencing logical UML models
Automated Software Engineering
Software engineering research: from cradle to grave
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Visual identification of software evolution patterns
Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting
Inferring structural patterns for concern traceability in evolving software
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Journal of Software Maintenance and Evolution: Research and Practice
Comparing negative binomial and recursive partitioning models for fault prediction
Proceedings of the 4th international workshop on Predictor models in software engineering
Visually localizing design problems with disharmony maps
Proceedings of the 4th ACM symposium on Software visualization
The role of MPI in development time: a case study
Proceedings of the 2008 ACM/IEEE conference on Supercomputing
An industrial case study of architecture conformance
Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement
Empirical Software Engineering
Determining factors that affect long-term evolution in scientific application software
Journal of Systems and Software
Predicting faults using the complexity of code changes
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
An Architecture for Modeling and Applying Quality Processes on Evolving Software
ICSP '09 Proceedings of the International Conference on Software Process: Trustworthy Software Development Processes
Perspectives on automated correction of bad smells
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
Characterizing software architecture changes: A systematic review
Information and Software Technology
Change profiles of a reused class framework vs. two of its applications
Information and Software Technology
Combating architectural degeneration: a survey
Information and Software Technology
Concept-based partitioning for large multidomain multifunctional embedded systems
ACM Transactions on Design Automation of Electronic Systems (TODAES)
An approach to software evolution based on semantic change
FASE'07 Proceedings of the 10th international conference on Fundamental approaches to software engineering
Comparing the effectiveness of several modeling methods for fault prediction
Empirical Software Engineering
What can fault prediction do for you?
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
Flexible architecture conformance assessment with ConQAT
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Object oriented design pattern decay: a taxonomy
Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement
Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE)
On the use of emerging design as a basis for knowledge collaboration
JSAI-isAI'09 Proceedings of the 2009 international conference on New frontiers in artificial intelligence
A tester-assisted methodology for test redundancy detection
Advances in Software Engineering - Special issue on software test automation
IS change and RFID deployment protocol: a collaboration of two models
MMACTEE'09 Proceedings of the 11th WSEAS international conference on Mathematical methods and computational techniques in electrical engineering
Assessing architectural drift in commercial software development: a case study
Software—Practice & Experience
Continual monitoring of code quality
Proceedings of the 4th India Software Engineering Conference
A visualization method of program dependency graph for identifying extract method opportunity
Proceedings of the 4th Workshop on Refactoring Tools
An empirical model of technical debt and interest
Proceedings of the 2nd Workshop on Managing Technical Debt
Visualizing collaboration and influence in the open-source software community
Proceedings of the 8th Working Conference on Mining Software Repositories
Non-essential changes in version histories
Proceedings of the 33rd International Conference on Software Engineering
High-impact defects: a study of breakage and surprise defects
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
ARES'11 Proceedings of the IFIP WG 8.4/8.9 international cross domain conference on Availability, reliability and security for business, enterprise and health information systems
Controlling software architecture erosion: A survey
Journal of Systems and Software
The evolution of network configuration: a tale of two campuses
Proceedings of the 2011 ACM SIGCOMM conference on Internet measurement conference
An overview of techniques for detecting software variability concepts in source code
ER'11 Proceedings of the 30th international conference on Advances in conceptual modeling: recent developments and new directions
Towards deterministically constructing organizations based on the normalized systems approach
DESRIST'10 Proceedings of the 5th international conference on Global Perspectives on Design Science Research
Perpetual development: A model of the Linux kernel life cycle
Journal of Systems and Software
Towards evolvable software architectures based on systems theoretic stability
Software—Practice & Experience
An empirical study on the impact of duplicate code
Advances in Software Engineering - Special issue on Software Quality Assurance Methodologies and Techniques
FOCUS: an adaptation of a SWEBOK-based curriculum for industry requirements
Proceedings of the 34th International Conference on Software Engineering
Reducing the class coupling of legacy code by a metrics-based relocation of class members
CEE-SET'09 Proceedings of the 4th IFIP TC 2 Central and East European conference on Advances in Software Engineering Techniques
Is it dangerous to use version control histories to study source code evolution?
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Questioning software maintenance metrics: a comparative case study
Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
How do software engineers understand code changes?: an exploratory study in industry
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Variability points and design pattern usage in architectural tactics
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Governance practices and software maintenance: A study of open source projects
Decision Support Systems
Modular specification and checking of structural dependencies
Proceedings of the 12th annual international conference on Aspect-oriented software development
A multiple case study of design pattern decay, grime, and rot in evolving software systems
Software Quality Control
An exploration of technical debt
Journal of Systems and Software
Understanding and simulating software evolution
Proceedings of the 2013 International Conference on Software Engineering
A comparative study of manual and automated refactorings
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Software evolution visualization: A systematic mapping study
Information and Software Technology
Improving software modularization via automated analysis of latent topics and dependencies
ACM Transactions on Software Engineering and Methodology (TOSEM)
How changes affect software entropy: an empirical study
Empirical Software Engineering
Hi-index | 0.00 |
A central feature of the evolution of large software systems is that change驴which is necessary to add new functionality, accommodate new hardware, and repair faults驴becomes increasingly difficult over time. In this paper, we approach this phenomenon, which we term code decay, scientifically and statistically. We define code decay and propose a number of measurements (code decay indices) on software and on the organizations that produce it, that serve as symptoms, risk factors, and predictors of decay. Using an unusually rich data set (the fifteen-plus year change history of the millions of lines of software for a telephone switching system), we find mixed, but on the whole persuasive, statistical evidence of code decay, which is corroborated by developers of the code. Suggestive indications that perfective maintenance can retard code decay are also discussed.