Program comprehension tools extract, organize and analyze information about the design and implementation of software systems. Before tools can exchange information, they must sha...
Over the past few years, we are experiencing a surge of evolution problems related to legacy object-oriented systems. Object orientation provides means for systems to be well-desi...
The technology for building dependable computing systems has advanced dramatically. Nevertheless, there is still no complete solution to building software for critical systems in w...
Software design models are routinely adapted to domains, companies, and applications. This requires customizable consistency checkers that allow engineers to dynamically adapt mode...
In the software engineering literature, many works claim that the use of design patterns improves the comprehensibility of programs and, more generally, their maintainability. Yet...