Information Processing Letters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software reconnaissance: mapping program features to code
Journal of Software Maintenance: Research and Practice
Separating fact from fiction in software architecture
ISAW '98 Proceedings of the third international workshop on Software architecture
Architecture-based runtime software evolution
Proceedings of the 20th international conference on Software engineering
Software Visualization in the Large
Computer
Traceview: A Trace Visualization Tool
IEEE Software
Architectural Evolution of Legacy Systems
COMPSAC '99 23rd International Computer Software and Applications Conference
Dynamic Program Slicing in Understanding of Program Execution
WPC '97 Proceedings of the 5th International Workshop on Program Comprehension (WPC '97)
Analyzing software evolution through feature views: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Test suite cooperative framework on software quality
CDVE'09 Proceedings of the 6th international conference on Cooperative design, visualization, and engineering
MODELS'10 Proceedings of the 13th international conference on Model driven engineering languages and systems: Part II
Hi-index | 0.00 |
There is a constant need for practical, efficient and cost-effective software evolution techniques. We propose a novel evolution methodology that integrates the concepts of features and component-based software engineering (CBSE). We collect information about a legacy system's features through interviews with key developers, users of the system and analyzing the existing regression test cases. We found that regression test cases are untapped resources, as far as information about system features is concerned. By exercising each feature with their associated test cases using code profilers and similar tools, we are able to locate code that we can refactor to create components. These components are then inserted back into the legacy system, ensuring a working system structure. Our methodology has three parts, part one addresses identification of features using regression test cases, part two addresses refractoring and creation of components and part three measures the results of evolution.