Formal Methods In Software Evolution

Read Complete Research Material

Formal Methods in Software Evolution

Formal Methods in Software Evolution



Formal Methods in Software Evolution

Introduction

Evolution of software has long been recognized as one of the most problematic and challenging areas in the field of software engineering, as evidenced by the high, often up to 60-80%, life-cycle costs attributed to this activity over the life of a software system. Studies of software evolution are central to the understanding and practice of software development. Yet it has received relatively little attention in the field of software engineering. Software Evolution and Feedback provides a long overdue, scientific focus on software evolution and the role of feedback in the software process, making this the indispensable guide for all software practitioners, researchers and managers in the software industry.

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.

Discussion

Due to demand from users and changes in environment and organization software systems need to evolve. Due to this, the initial requirements of the system are changed. One type of change is the addition of new requirements to the system. Thus, software evolution for such changes involves finding solutions for these new set of requirements and integrating them into the system without effecting the quality of the system. We call this the integration problem. In the literature, as we detail in section II, the evolution problem is not systematically worked out in problem solving based techniques or only the impact of the changes is calculated using scenario-based techniques. That is, the mechanisms that can ease software evolution are not considered (Mens and T. Tourw´e, 2004)or example, for a given change scenario, the context of this change can be identified and the most applicable techniques that reduce the impact of change can be selected. However, these steps are not included in any evaluation technique. Obviously, there are many mechanisms in the software engineering domain that can be used to evolve software. Even the inheritance mechanisms provided by object-oriented languages can be used to cope with some evolution requests. However, the contexts where these mechanisms are most applicable is not identified. So, there is a gap between the software ...
Related Ads