The evolution of software systems over many years often leads to unnecessarily complex and in exible designs which in turn lead to a huge amount of e ort for enhancements and main...
The Unified Software Development Process (USDP) and Unified Modeling Language (UML) have been now generally accepted as the standard methodology and modeling language for developin...
Product line engineering allows for the rapid development of variants of a domain specific application by using a common set of reusable assets often known as core assets. Variabil...
Objects often define usage protocols that clients must follow in order for these objects to work properly. Aliasing makes it notoriously difficult to check whether clients and i...
Software re-engineering is one of the solutions advocated for the problems that are encountered during maintenance. The three major phases of a re-engineering process are (i) reve...