Software reviews and audits handbook
Software reviews and audits handbook
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Predicting Fault Incidence Using Software Change History
IEEE Transactions on Software Engineering
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
Deriving fault architectures from defect history
Journal of Software Maintenance: Research and Practice
A Discipline for Software Engineering
A Discipline for Software Engineering
Art of Software Testing
A Comparison of Tool-Based and Paper-Based Software Inspection
Empirical Software Engineering
A Framework for Source Code Search Using Program Patterns
IEEE Transactions on Software Engineering
Debugging Practices for Complex Legacy Software Systems
ICSM '94 Proceedings of the International Conference on Software Maintenance
Modeling and Analysis of Software Aging Process
PROFES '00 Proceedings of the Second International Conference on Product Focused Software Process Improvement
Automatic Mining of Source Code Repositories to Improve Bug Finding Techniques
IEEE Transactions on Software Engineering
Recovering system specific rules from software repositories
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
Hi-index | 0.00 |
In the field of legacy software maintenance, there unexpectedly arise a large number of implicit coding rules --- which are seldom written down in specification documents or design documents --- as software becomes more complicated than it used be. Since not all the members in a maintenance team realize each of implicit coding rules, a maintainer who is not aware of a rule often violates the rule while doing various maintenance activities such as adding new functionality and repairing faults. The problem here is not only such a violation causes injection of a new fault into software but also this violation will be repeated again and again in the future by different maintainers. Indeed, we found that 32.7% of faults of certain legacy software were due to such violations.This paper proposes a method for detecting code fragments that violate implicit coding rules. In the method, an expert maintainer firstly investigates the causes, situations, and code fragments of each fault described in bug reports; and, identifies implicit coding rules as much as possible. Then, code patterns violating the rules (which we call bug code patterns) are described in a pattern description language. Finally, potential faulty code fragments are extracted by a pattern matching technique.