The craft of software understanding and verification can benefit from technologies that enable evolution toward a true engineering discipline. In current practice, software develo...
Software clones are considered harmful in software maintenance and evolution. However, despite a decade of active research, there is a marked lack of work in the detection and ana...
Design and development scalability, in any engineering, requires information hiding and a specific composition mechanism in which composite items are made-up of other items. This ...
Aspect-Oriented Programming (AOP) strives to localize the scattered and tangled implementations of crosscutting concerns (CCCs) by allowing developers to declare that certain acti...
As software systems evolve, they become more complex and harder to understand and maintain. Certain reverse engineering techniques attempt to reconstruct software models from sour...