Subject-oriented design: towards improved alignment of requirements, design, and code
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Intent Specifications: An Approach to Building Human-Centered Specifications
IEEE Transactions on Software Engineering
Software maintenance and evolution: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Types of software evolution and software maintenance
Journal of Software Maintenance: Research and Practice
Art of Software Testing
Recovering Traceability Links between Code and Documentation
IEEE Transactions on Software Engineering
Object-oriented modeling with ADORA
Information Systems - The 13th international conference on advanced information systems engineering (CAiSE*01)
A Scenario-Driven Approach to Trace Dependency Analysis
IEEE Transactions on Software Engineering
Constraining Software Evolution
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Reverse Engineering Goal Models from Legacy Code
RE '05 Proceedings of the 13th IEEE International Conference on Requirements Engineering
Advancing Candidate Link Generation for Requirements Tracing: The Study of Methods
IEEE Transactions on Software Engineering
New Frontiers of Reverse Engineering
FOSE '07 2007 Future of Software Engineering
Enabling Automated Traceability Maintenance by Recognizing Development Activities Applied to Models
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Co-evolving code and design with intensional views
Computer Languages, Systems and Structures
Updating requirements from tests during maintenance and evolution
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Requirements evolution drives software evolution
Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
Hi-index | 0.00 |
Updating the requirements specification during software evolution is a manual and expensive task. Therefore, software engineers usually choose to apply modifications directly to the code and leave the requirements unchanged. This leads to the loss of the knowledge contained in the requirements documents and thus limits the evolvability of a software system. In this paper, we propose to employ the co-evolution of the code and its test suite to preserve or restore the alignment between implementation and requirements: when a change has been applied to the code, subsequent changes in the test suite as well as failing tests are analyzed and used to automatically generate hints about the affected requirements and how they should be changed. These hints support the engineer in maintaining the requirements specification and thus ease the further evolution of the software system.