A key difficulty in the maintenance and evolution of complex software systems is to recognize and understand the implicit dependencies that define contracts that must be respecte...
Modeling object-oriented applications using collaborations and roles is now well accepted. Collaboration-based or role-based designs decompose an application into tasks performed ...
Software evolution in a cooperative environment, where a pool of maintainers/developers contribute to the overall system changes, is challanging due to several factors, such as th...
Code duplication is one of the factors that severely complicates the maintenance and evolution of large software systems. Techniques for detecting duplicated code exist but rely m...
Intensional views and relations have been proposed as a way of actively documenting high-level structural regularities in the source code of a software system. By checking conform...