Skip to main content
Top

2009 | Book

An Approach to Modelling Software Evolution Processes

insite
SEARCH

About this book

An Approach to Modelling Software Evolution Processes describes formal software processes that effectively support software evolution. The importance and popularity of software evolution increase as more and more successful software systems become legacy systems. For one thing, software evolution has become an important characteristic in the software life cycle; for another, software processes play an important role in increasing efficiency and quality of software evolution. Therefore, the software evolution process, the inter-discipline of software process and software evolution, becomes a key area in software engineering.

The book is intended for software engineers and researchers in computer science.

Prof. Tong Li earned his Ph.D. in Software Engineering at De Montfort University, U.K.; he has published five monographs and over one hundred papers.

Table of Contents

Frontmatter
1. Introduction
Abstract
The roadmap to evolving a legacy software system into a high quality software system is the software evolution process. Making use of the formalisms of Petri Nets, Hoare Logic and Backus-Naur Form, a semi-formal approach is proposed to construct formal software evolution process models and the corresponding descriptions to effectively support software evolution. The approach is expected to be adopted by software managers, software engineers and stakeholders. In this chapter, besides the concepts of software evolution process and software evolution process model, the advantages of modelling and describing software evolution processes are discussed. The motivations, research methods and the original contributions of the work described in this book are also presented. Furthermore, the success criteria and validation methods for the proposed approach are also given. Finally, an outline is listed to describe the framework of this book. This chapter aims to give an introduction to the research work described in this book.
Tong Li
2. Overview of Software Processes and Software Evolution
Abstract
In this chapter, an overview of the research progress both in software processes and software evolution are presented from the viewpoints of methodologies, technologies, tools and management. Firstly, the basic concepts related to software processes are discussed. In addition, an overview of the research progress in the areas of software process modelling and descriptions, software process modelling languages and description languages, software process improvement, CMM, software process reuse and process-centred software engineering environments is presented. Furthermore, the basic concepts related to software evolution are discussed. Finally, the work in the areas of software evolution and software reengineering is also discussed. The research outlined in this chapter shows that both software evolution and software process have become the hot spots in software engineering. The combination of software evolution and software process will promote smooth and effective software evolution.
Tong Li
3. Related Work
Abstract
Software evolution processes have been receiving more attention recently and much progress has been made. In this chapter, an overview in the inter-disciplinary area both of software process and software evolution is firstly presented. In addition, the work related to this book, including concurrency in the software life cycle, Petri Nets, data dependence analysis and formal functional decomposition, is also discussed. The related work mentioned above indicates that although a variety of methodologies, technologies, tools and managements has been developed, little work has been done on constructing formal process models and the corresponding descriptions to support software evolution. The formal evolution process models are more rigorous and more precise than the informal models and easier to realise in computers. The formal definitions which will be used as the work fundamentals in the following chapters are also presented. This chapter aims to establish the research basis of this book.
Tong Li
4. Software Evolution Process Meta-Model EPMM
Abstract
A software evolution process meta-model is a formal tool used to define software evolution processes. In this chapter, a software evolution process meta-model EPMM is designed. Firstly, five important properties in software evolution processes are discussed. Especially, two properties—iteration and concurrency—are analysed in depth. Furthermore, a Petri Net is extended with object-oriented technology and Hoare Logic. In this case, a formal software evolution process meta-model, EPMM, which is based on the extended Petri Net, is proposed. In EPMM, not only are the structures and behaviours of all important components, e.g. tasks, activities and software processes in software evolution processes, formally defined, but also the important properties of software evolution process are embodied. Therefore, EPMM can model software evolution processes at different abstract levels. Thus, the basis to simulate, control, analyse, measure and improve software evolution processes is established.
Tong Li
5. Software Evolution Process Description Language EPDL
Abstract
A software evolution process description language is a computer language that is used to describe software evolution processes. In this chapter, according to the requirements of software evolution and based on EPMM, an object-oriented software evolution process description language EPDL is designed. EPDL extends the descriptive power of EPMM. All of the static components in EPMM are defined in EPDL and the dynamic components in EPMM are embodied when EPDL programs are executed. An EPDL program can be regarded as a detailed and extended description of a software evolution process model. In this chapter, firstly, the design goals of EPDL are presented. Secondly, the characteristics and the program structure of EPDL are discussed. Thirdly, the syntax of EPDL is formally defined with Extended Backus-Naur Form. Fourthly, the semantics of EPDL are informally described. Finally, an example of an EPDL program is given. EPDL supports the description of software evolution processes and can be implemented in computers. In contrast to EPMM, EPDL is more powerful and more convenient for use. Normally, after a software evolution process model is constructed, EPDL is used to describe and extend the details of the model.
Tong Li
6. Framework of Software Evolution Processes
Abstract
Both EPMM and EPDL support modelling and describing software evolution processes. In this chapter, the framework of software evolution processes defined by EPMM and EPDL is discussed. The framework is a combination of both hierarchical and an object-oriented frameworks. Firstly, a software evolution process forms a four-level framework: the global level, the process level, the activity level and the task level. Each level possesses specific structures and needs different modelling methods. In addition, according to the characteristics of models at different levels, a top-down spiral meta-process with six steps for modelling software evolution processes is proposed. In order to effectively support the meta-process, several guidelines for constructing evolution process models are presented. Furthermore, a procedure for modelling software evolution processes at the global level is developed. Finally, the relationship between descriptions and models of software evolution processes is also discussed.
Tong Li
7. Designing Processes and Activities
Abstract
Modelling software evolution processes at the process level (designing process) and at the activity level (designing activity) are two important steps. In this chapter, based on EPMM and EPDL, the approaches to modelling software evolution processes at these two levels are proposed. The concepts of the process package and the basic block are presented. The modelling procedures are top-down refinement and stepwise refinement; they produce software evolution processes at different abstract levels. Furthermore, three different process reuse methods are presented: reuse by inheritances, reuse of process package (the black box approach) and reuse of basic blocks (the white box approach). In addition, it is proved that the interface consistency of software processes over hierarchies constructed by the black box approach and the white box approach is preserved.
Tong Li
8. Designing Tasks
Abstract
After an activity is designed (modelling software evolution processes at the activity level), its tasks should be designed (modelling software evolution processes at the task level). The kernel objective of designing a task is functional decomposition. The function of a task is defined by both a precondition and a postcondition, which are first order predicate formulae. They define a function which transfers inputs into outputs. Although a task is the finest-grained component in software evolution processes, the function of a task might be more complex and coarse-grained when a task is first defined. In this chapter, an approach is proposed to decompose a function into finer functions that are easy to carry out. By means of matching the code segments in the segment base, matching the decomposition case in the case base and executing the decomposition rules in the rule base, functional decomposition is carried out. The decomposition process is described by a decomposition tree and executed until the granularity of the functions is appropriate. By synthesising the data in the decomposition tree, a framework composed of finer functions is generated. Three decomposition rules including sequence, selection and repetition decomposition rules are proposed and proved to be correct. The decomposed work products can be described by EPDL.
Tong Li
9. Efficiency Improvement of the Software Evolution Processes
Abstract
After a software evolution process is defined, its efficiency must be improved so that it can be executed efficiently. Evolving software concurrently is an effective way to shorten the evolution time and to speed up the evolution. In this chapter, an approach, which resembles a transplant operation on the human body, is proposed to dig down into an inefficient process segment from its process model, then to improve its efficiency and finally to put back the improved version into the original process model. In order to realise the approach, firstly, an algorithm to construct an entity dependence graph by means of analysing dependences between activities and between tasks is developed. Secondly, a method to localise dependences in an activity dependence graph is proposed. Thirdly, a method to simplify and preprocess an activity dependence graph is presented. Then an algorithm to construct a process segment from the preprocessed activity dependence graph is developed. Fourthly, an algorithm to refine an activity as an activity set is proposed. Fifthly, an algorithm to get two partition blocks and to analyse dependences between them is developed. Sixthly, an algorithm to extend concurrency in a bottleneck segment is presented based on the dependence analysis between two partition blocks. Finally, an algorithm to replace an inefficient process segment with an efficient process segment is also developed. It is proved that the interface consistency is preserved between before replacement and after replacement. In this way, when the reconstructed software process is executed, its efficiency is improved.
Tong Li
10. Support Environment EPT
Abstract
A Computer-Aided Software Engineering (CASE) environment is an effective tool supporting software evolution processes. In this chapter, a CASE environment EPT is designed and a prototype system of EPT is implemented. EPT can help software managers to model and control software evolution processes. EPT is designed with a three-level architecture: User Interface, Process Server and File Depository. EPT provides the following functions: Firstly, EPT supports modelling software evolution processes interactively and provides editors to edit models. An evolution process model in graph can be transformed into an EPDL program in text. Secondly, EPT provides a process package library to support the reuse of process packages. Thirdly, EPT compiles EPDL programs into data structures regarded as object codes and stored in Model Files. Fourthly, EPT runs EPDL programs and records the execution of the EPDL programs. Fifthly, EPT transforms the running processes into the visual representations by which users can execute, schedule, control and analyse the corresponding models. Sixthly, based on the execution records of an EPDL program, the statistics analysis can be processed. Seventhly, EPT supports the interactive efficiency improvement of software evolution processes based on an EPDL program. Finally, EPT supports the interactive decomposition of a 2-assertion into a series of finer 2-assertions.
Tong Li
11. Case Studies
Abstract
This chapter presents four case studies using the proposed approach and describes the results using EPDL programs. The first case study is about the classical waterfall model of the software life cycle. This case study aims to illustrate the proposed approach to modelling and describing classical software processes. The second case study is about a set of software processes which describe the evolution of a software system. This case study aims to illustrate the proposed approach to modelling and describing several software processes involved in the software evolution. The third case study is about the evolution of a certificate authority software SIS which provides the functions of encryption, decryption, digital signature and identity authentication. The case study shows the process of modelling the software evolution process and of describing the corresponding EPDL programs. This case study aims to illustrate the proposed approach to modelling and describing the software evolution process under which a security software system in Linux evolves into a cross-platform system in both Windows and Linux. The fourth case study is about the ISO/IEC 12207 Standard for Software Life Cycle Processes. This case study models and describes the maintenance process defined in this international standard. This case study aims to illustrate the proposed approach to modelling and describing software processes of the ISO/IEC Standard. These case studies are very different from each other. They cover different areas with various complexities and scales for showing the powerful modelling capacity of the proposed approach. These case studies try to indicate that the proposed approach is feasible and effective.
Tong Li
12. Conclusions
Abstract
This chapter validates the feasibility and effectiveness of the proposed approach described in this book. The success criteria listed in Chapter 1 are revisited to indicate that these criteria have been met by the proposed approach. The detailed comparison with Osterweil’s work and Lehman’s work, which are two of the most influential contributions in the areas of software process and software evolution process, can be referred to as sound verification of the success of the proposed approach. Some evaluations have also been made to verify the success of the proposed approach. These indicate that the approach proposed in this book is feasible and effective. Finally, the limitations to the proposed approach and the directions of future work for improving these limitations are also discussed.
Tong Li
Backmatter
Metadata
Title
An Approach to Modelling Software Evolution Processes
Author
Tong Li
Copyright Year
2009
Publisher
Springer Berlin Heidelberg
Electronic ISBN
978-3-540-79464-6
Print ISBN
978-3-540-79463-9
DOI
https://doi.org/10.1007/978-3-540-79464-6

Premium Partner