Quality-driven software re-engineering
Journal of Systems and Software - Special issue on: Software architecture - Engineering quality attributes
Hi-index | 0.00 |
Software re-engineering projects such as migrating code from one platform to another, or restructuring a monolithic system into a modular architecture are popular maintenance tasks. Usually, projects of this type have to conform to hard and soft quality constraints (or non-functional requirements) such as "the migrant system must run as fast as the original", or "the new system should be easily maintainable than the original". This paper proposes a framework that allows for specific design and quality requirements (performance and maintainability) of the target migrant system to be considered during the re-engineering process. Quality requirements for the migrant system can be encoded using soft-goal interdependency graphs and be associated with specific software transformations that need to be carried out for achieving the target quality requirement. These transformations can be applied as a series of the iterative and incremental steps that pertain both to the design (architecture) and source code (implementation) levels. An evaluation procedure can be used at each transformation step to determine whether specific goals have been achieved.