Bachelor and Master Theses

Title: Improving software evolvability by exploiting change history and software metrics
Subject: Computer Science
Level: Advanced
Description: A software system is well structured if its constituting components have a high cohesion and a low coupling [Yourdon and Constantibe, 1975]. Inevitably those parameters tend to vary during the software lifespan: environment changes lead to software changes, and if software does not evolve over time, then its quality decreases. The ability of software to evolve in a cost effective way is known as evolvability.

Nowadays the evolvability has been recognized as a critical success factor in system design, thus there is an overall increasing interest in this topic, and numerous studies proposing solutions to deal with it. These solutions can be categorized in two main categories: the approaches based on change history information, and the approaches based on software metrics. This thesis describes a third approach to deal with the software evolvability: it is an hybrid of the first two approaches and It has been named EVO, from the first three letters of “Evolvability”. The aims of EVO is to facilitate the analysis of change history information by reducing the scope of investigation. This reduction is achieved by using software metrics that point to “bad smells”.

During this project, EVO has been validated on one industrial case study. The product under examination has a lifespan of a decade, and during that time it has been exposed to several changes and patches that have negatively affected its architecture. As consequence, today the product presents clear difficulties to evolve, and the engineers need an efficient support in refactoring the system in order to deal with its evolvability problems. The results of this validation cannot be generalized because they are obtained from a single case study and not from a number of cases statistically significant. However, these results are interesting, at least within this research, since they shows that EVO could be a good tradeoff between the two kind of approaches considered. It is faster then the approaches based on history information, because it reduces the couplings to inspect, and it is more accurate then the approaches based on software metrics, because it searches for “anti-patterns” only among the candidate unwanted couplings. This implies that the “anti-patterns” identified via metrics point not only to “bad development practices”, but also to problems that really hinder software evolvability. Concerning the design of a refactory strategy, it was possible to propose only improvements at method level due to the lack of “in-house knowledge” of the system. However, these kinds of local improvements represent a necessary initial step to make the code more readable and understandable before to operate at architectural level to concretely remove the evolutionary threats.
Company: VU Amsterdam, kontaktperson: Hans va Vliet
Prel. end date: 2012-08-15
Presentation date: 2012-09-06
Student: Antonio Cappiello
IDT supervisor: Ivica Crnkovic, +46-21-103183

Rapport och bilagor


Senaste uppdatering



2012-08-03, 22:19

  • Mälardalen University |
  • Box 883 |
  • 721 23 Västerås/Eskilstuna |
  • 021-101300, 016-153600 |
  • webmaster |
  • Latest update: 2017.08.23