Weaving Between Non-Functional Requirements and Object-Oriented Re-engineering
Ladan Tahvildari, Kostas Kontogiannis, John Mylopoulos · 2000
The widespread use of the object-oriented design paradigm and the programming languages is a contributing factor for the increase on the amount of object-oriented software introduced in many organizations. Gradually, a new generation of object-oriented legacy systems is emerging. The technologies for addressing the maintenance and the evolution of such systems will be of vital importance in the years to come. Also, software re-engineering tasks have to conform with hard and soft quality constraints (or non-functional requirements) such as “the re-engineered system must run as fast as the original system”, or “the new system should be more easily maintainable than the original system”. These desired qualities (or, more precisely, desired deltas on these qualities) play a fundamental role in defining the object-oriented reengineering process and the techniques that support it. We have developed a re-engineering model that is quality-driven in the sense that it uses non-functional requirements to define and guide such a re-engineering process.