2004 · 17 citations · 17 references
Software MaintenanceEngineeringBusiness IntelligenceChange Impact AnalysisSoftware EngineeringSource Code AnalysisSemanticsSoftware AnalysisData ScienceCode QualityManagementSoftware MiningSource CodeDesignProgramming StyleComputer ScienceInformation ManagementSoftware DesignCode RefactoringSoftware EvolutionProgram AnalysisSource Code ComprehensibilitySoftware Testing
As systems evolve, they become harder to understand because the implementation of concepts (e.g. business rules) becomes less coherent. To preserve source code comprehensibility, we need to be able to predict how this property will change. This would allow the construction of a tool to suggest what information should be added or clarified (e.g. in comments) to maintain the code's comprehensibility. We propose a framework to characterize types of concept change during evolution. It is derived from an empirical investigation of concept changes in evolving commercial COBOL II files. The framework describes transformations in the geometry and interpretation of regions of source code. We conclude by relating our observations to the types of maintenance performed and suggest how this work could be developed to provide methods for preserving code quality based on comprehensibility.
17
Software complexity and maintenance costs
Rajiv D. Banker, Srikant M. Datar, Chris F. Kemerer et al. · Communications of the ACM · 1993 · 331 citations