A Taxonomy for a Constructive Approach to Software Evolution

Selim Ciraci, Pim van den Broek, Mehmet Aksit

    Research output: Contribution to journalArticleAcademicpeer-review

    28 Downloads (Pure)

    Abstract

    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.
    Original languageEnglish
    Pages (from-to)84-97
    Number of pages14
    JournalJournal of software
    Volume2
    Issue number2
    Publication statusPublished - Aug 2007

    Keywords

    • Software evolution taxonomy
    • Software evolution framework
    • Software evolution
    • Software architecture synthesis

    Fingerprint Dive into the research topics of 'A Taxonomy for a Constructive Approach to Software Evolution'. Together they form a unique fingerprint.

  • Cite this