ISSN : 1796-217X
Volume : 2    Issue : 2    Date : August 2007

A Taxonomy for a Constructive Approach to Software Evolution
Selim Ciraci, Pim van den Broek, and Mehmet Aksit
Page(s): 84-97
Full Text:
PDF (600 KB)

In many software design and evaluation techniques, either the software evolution problem is not
systematically elaborated, or only the impact of evolution is considered. Thus, most of the time
software is changed by editing the components of the software system, i.e. breaking down the
software system. The software engineering discipline provides many mechanisms that allow
evolution without breaking down the system; however, the contexts where these mechanisms are
applicable are not taken into account. Furthermore, the software design and evaluation techniques
do not support identifying these contexts. In this paper, we provide a taxonomy of software evolution
that can be used to identify the context of the evolution problem. The identified contexts are used to
retrieve, from the software engineering discipline, the mechanisms, which can evolve the software
software without breaking it down. To build such a taxonomy, we build a model for software
evolution and use this model to identify the factors that effect the selection of software evolution
mechanisms. Our approach is based on solution sets, however; the contents of these sets may
vary at different stages of the software life-cycle. To address this problem, we introduce
perspectives; that are filters to select relevant elements from a solution set. We apply our taxonomy
to a parser tool to show how it coped with problematic evolution problems.

Index Terms
Software Evolution, Software Architecture Synthesis, Software Evolution Taxonomy, Software
Evolution Framework