Refactoring aims to improve the quality of a software systems’ structure, which tends to degrade as the system evolves. While manually determining useful refactorings can be cha...
—“God class” is a term used to describe a certain type of large classes which “know too much or do too much”. Often a God class (GC) is created by accident as functionali...
With the success of model-driven development as well as component-based and service-oriented systems, models of software architecture are key artefacts in the development process. ...
: The Software Engineering community has been trying to get fast and accurate software estimations for many years. Most of the proposed methods require historical information and/o...
One of the issues in software evolution is debugging. Debugging large and complex software systems evolved requires a lot of effort since it is very difficult to localize and ide...