+ All Categories
Home > Documents > Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The...

Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The...

Date post: 13-Aug-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
24
Author: Seva MEYER Supervisor: Mauro C APORUSCIO Examiner: Johan HAGELBÄCK Semester: HT2015 Subject: Computer Science Thesis Project Understanding Software Adaptation and Evolution Degree project in progress
Transcript
Page 1: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

Author: Seva MEYER

Supervisor: Mauro CAPORUSCIO

Examiner: Johan HAGELBÄCK

Semester: HT2015Subject: Computer Science

Thesis Project

Understanding Software Adaptationand EvolutionDegree project in progress

Page 2: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

Abstract

Software maintenance is a significant part of software system lifetime. Softwaresystem lifetime incorporates many processes including software adaptation and soft-ware evolution. These processes collide into one another and create confusion as theboundaries that separate them are often difficult to distinguish. Knowing what ex-actly these concepts indicate and how they are related can bring simplicity to futuredevelopment of adaptive systems. The following document presents a performed sys-tematic literature review, which aims to outline the similarities and the differences ofadaptation and evolution and further explain how they are related. The results of thestudy show that adaptation and evolution have become more entwined with growthof interest to self-managing dynamic software.

Keywords: Software adaptation, Self-adaptation, Software evolution, Evolu-tionary software.

Page 3: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

Acknowledgments

To Mauro Caporuscio, my supervisor, for his guidance and support.To Ola Flygt for all the support which made it possible for me to get to this point.To Spyridon Artelaris for proofreading, long discussions on the topic, valuable ideas andsupport.To my mother, Nika Meyer, for pushing me forward whenever I felt like giving up.

Page 4: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

Contents

1 Introduction 11.1 Introduction / Background . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Previous research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Problem definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Purpose and research question . . . . . . . . . . . . . . . . . . . . . . . 21.5 Scope / Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.6 Target group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.7 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Background / Theory 4

3 Method 53.1 Planning the review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.1.1 Research questions . . . . . . . . . . . . . . . . . . . . . . . . . 53.1.2 Review Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . 53.1.3 Exclusion and inclusion criteria . . . . . . . . . . . . . . . . . . 53.1.4 Search strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.2 Conducting the review . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.2.1 Data extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.3 Reporting the review . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.4 Reliability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4 Empirical data 8

5 Analysis/Discussion 155.1 Evolution vs. Adaptation . . . . . . . . . . . . . . . . . . . . . . . . . . 15

6 Conclusion 176.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176.2 Further research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

References 18

Page 5: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

1 Introduction

Software development is nowadays a necessary part of the world. Software is everywhereand while its importance is growing rapidly day by day, the concern of quality grows aswell. As a result, the idea of software engineering emerges as a crucial part of the softwarereality.

The maintenance of software is an important part of software engineering. L. Arthurcriticizes the attitude of the software community towards software maintenance, claimingthat this process must not be taken as a fault detection and solution, but rather as anevolutionary process. According to Arthur: "Maintenance is an important process astoday most of the development is based on reusing the existing systems" [1]. Further,he believes that a software has to evolve according to market changes and users’ needs.According to his research and conclusions, the software evolution process has a categorycalled Adaptive. This category implies that a software changes in order to adapt itself toenvironment changes. For instance, if a certain part of a system fails, the other parts haveto adapt to the current situation.

At this point the problem of distinguishing these two processes arises. Some scientificstudies refer to them as two separate processes, while others claim that adaptation is asub-process of evolution. This paper aims to find the boundaries and bring some orderand clarification to this subject. It will find common properties and differences betweenthese two notions and summarise them in a way that aids to future research and softwaredevelopment.

1.1 Introduction / Background

Changes in the system and the environment surrounding it, changes in requirements anda big variety of users’ demands can require a software to adapt both statically and dynam-ically during its lifetime. Therefore, "Continuing evolution is reflected by a sequence ofmodifications to the objects. New objects are added. Others are changed or removed" [2].

Software continues to live after its deployment by adapting and evolving throughoutits lifetime. Since nowadays it is convenient to reuse software instead of designing a newone, adaptation and evolution play a big role in the software world. Adaptive softwareis a software that can adapt to changes in the environment and inside the system. Suchsoftware can reconfigure and heal by itself if required. Software evolution is a process ofsoftware change. It is proved by time that software changes from release to release to fixsystem problems and satisfy new requirements.

To maintain and adapt a software can become an expensive and time-consuming work.It demands a lot of resources and that is the reason why adaptive and evolutionary soft-ware gains more attention nowadays. With a software that can manage and evolve itselfwithout the need to be watched and guided, the costs of system maintenance can decreasedramatically.

1.2 Previous research

In 2013 Danny Weyns and Tanvir Ahmad introduced a systematic literature review onArchitecture-Based Self-Adaptation [3]. In this paper they focused on:

1. The focus of research on architecture-based self-adaptation,

2. The claimed benefits of architecture-based self-adaptation,

1

Page 6: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

3. The evidence that is provided for these claims.

However, this study was more specific, outlining the type of self-adaptation that isbased on system architecture. It concludes that the quality of the research done on thisarea can be improved. It also highlights some claims and evidences of those claims aboutself-adaptation.

In 2010 Breivold H.P.,Chauhan M.A. and Babar M.A. performed a systematic reviewof Studies of Open Source Software Evolution [4]. This study concentrated on creatingan overview on existing studies and defining metrics that are used for evolution in thiskind of systems.

However, despite all the effort done by the various researchers, a clear definition ofthe notions, as well as an examination of the boundaries between software adaptation andevolution, has yet to be found. Besides this, most of the papers focus on a particular typeof adaptation and evolution. This thesis project aims to compare and evaluate the metricsof the concepts, which is a key difference from all other studies.

1.3 Problem definition

The main problem arises when it comes to the definition of self-adaptive systems. Au-tonomic, self-adaptive and evolutionary software is a main discussion topic at a numberof significant software conferences. However, these concepts are always confused, con-sidered to be the same or to be completely separate processes. It can be confusing for adeveloper to know what type of system in fact is being built, which properties are signifi-cant to focus on and how the maintenance of a system has to be made.

1.4 Purpose and research question

The purpose of this research is to define self-adaptive and evolutionary systems, taking inconsideration research studies that have been performed on these subjects. After studyinga great amount of articles it became clear that essentially distinguishing evolutionary soft-ware is a rather complicated and tedious process. It is also not possible to say with 100%certainty what a self-adaptive system is. Now it comes to the point where it is importantto summarize all available definitions, find out all common properties (characteristics)and put an end to this endless discussion. Concluding all earlier mentioned arguments,significant questions of this report are:

1. What is a software adaptation?

2. What is a software evolution?

3. What are significant differences and commonalities between adaptation and evolu-tion of software?

1.5 Scope / Limitation

This paper is not intended to investigate the problem deeply. It does not concentrate on’how’ of adaptive and evolutionary software. This study will try to highlight the importantcharacteristics of adaptive and evolutionary software and provide a theoretical overview,reasoned by a set of former researches.

2

Page 7: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

1.6 Target group

There are two main audience groups that this research is performed for:

• Self-adaptive and evolutionary software developers

• Self-adaptive and evolutionary software researchers

Software engineers that are expected to design and implement a system that is able tomanage itself during run-time and can be responsive to any changes in the environmentand in the system itself, can face a problem in understanding what such software essen-tially is. On the other hand, scientists performing their studies find it easier to carry outtheir research when the topic is more specific. Thus knowing exactly what one or theother term means can bring clarity to a given task. Moreover, this research is a concretefoundation for later researches on the given theme.

1.7 Outline

Section 2 provides a background of the problem. Here a basic theory on researched areacan be found. Later, in section 3, the method used to conduct the research is described.Section 4 lists obtained results in a form of a table and several charts. Section 5 analysesand discusses the results provided in section 4. Finally, the sixth section gives a conclusionderived from the discussion.

3

Page 8: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

2 Background / Theory

This chapter introduces the background of the problem researched in this thesis and em-phasizes the theory behind the concepts.

In 2001 IBM stated in its manifesto that today the main concern in software engineer-ing is a complexity of already existing software systems. It is fairly obvious consider-ing the fact that once a software is implemented, it is being maintained, re-configured,adapted to new requirements throughout its entire life cycle. The more it is modified,more lines of codes are added, more enormous the models become, and more complexbecomes the design of the system. To handle all these changes and to be able to con-tinue the maintenance, companies have to spend countless numbers of resources, wheremoney and human resources are among them. Millions of lines of code and thousandsof interconnected complex systems have already become a big problem for programmersand designers. A human being cannot easily manipulate such systems any longer [5].Autonomic systems can be seen as a good solution for complex systems. This idea waspresented by a vice senior of IBM in 2001 and has become a widely discussed matter inIT society [5].

Changes in a system and the environment surrounding it, changes in requirements anda big variety of users’ demands can require a software system to adapt both statically anddynamically during its lifetime. As a result, the system has to adapt to all changes thatoccur and this adaptation can take place at any phase of software life time and at any levelof the system. It can be triggered by various events and can lead to numerous results. It isworth mentioning that most of the changes require to stop the software run-time process.Therefore there is a big demand on software that not only can manage itself, but can alsomaintain itself during run-time and self-adapt to unpredictable conditions. A system isconsidered to be self-adaptive if it owns the ability to adapt itself to outside changes in theenvironment, requirements, etc., to modify its behavior if required, to re-configure itselfwhen changes in hardware take place and to heal itself in case of emergency [6].

Self-adaptation is a software that can ‘think’ in terms of functionality and adapt toany kind of situation. This process does not come by itself, it is expected to lead toevolution of the software. The Online Oxford Dictionary proposes two main definitionsof evolution:

• “The gradual development of plants, animals, etc. over many years as they adapt tochanges in their environment” [7].

• “The gradual development of something” [7]

Besides, adaptation is mentioned as one of many synonyms of evolution. Softwareevolution is a process of software change throughout the maintenance period, when itevolves to a better state, and improving and fixing the performance during its lifetime asstated by L. Arthur [1].

These facts lead to a question:

• Are software adaptation and evolution two different processes tightly intercon-nected or are they completely identical?

If it earlier was crucial for software developers to be capable of managing such changesmanually, understand the architecture, design and the code of the existing system, then to-day it is more important for engineers to succeed in creating a self-adaptive, self-managed,autonomic and evolving software. However, the task is not conspicuous as the conceptsare quite easy to be confused and a decent clarification is required.

4

Page 9: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

3 Method

This chapter describes the method used to perform the research.Initially it was decided to execute a systematic literature review (SLR) in order to gatherthe required data and perform the expected analysis on the topic. This methodology isconvenient for collecting, comparing and analyzing data from primary studies as it helpsto control the process of the study, without deviating from its chosen course and wastingtime on wrong information. Moreover, the method can become a strong basis for further,more sophisticated research. It can also bring clarity to the studied concepts and identifymissing or existing factors necessary for the further development of research. Kitchenhamrefers to systematic literature study as a secondary study. Following her guidelines SLRhas three main stages: planning, conducting and reporting the review [8].

3.1 Planning the review

Two crucial points of this phase are research questions definition and a review protocolspecification.

3.1.1 Research questions

Identifying the research questions is a crucial part of the review planning phase. Welldefined, reasonable questions reduce the risk of publication bias, broadly discussed byKitchenham [8]. This leads to simplicity in data extraction and analysis. The researchquestions are stated in section 1.4.

The two first questions are expected to bring clearness to these concepts and empha-size the main features that define their purpose. The third question is devoted to the mainreason for this study. Answering this question can bring the desired clarity to the diver-gence of these concepts.

3.1.2 Review Protocol

The protocol of the review is created after the main research questions are specified. Thisdocument provides a better focus on the task and defines all inclusion and exclusion cri-teria used during the research. The research questions are also included in this document.The structure of the protocol is borrowed from Kitchenham [8]. Consequently it containsthe information about the research strategy, like exclusion and inclusion criteria, researchquestions, research background and data extraction strategy. The protocol was writtenby the researcher and approved by the research supervisor. Some corrections were doneduring the later phases, as the strategy of the research was changed.

3.1.3 Exclusion and inclusion criteria

The inclusion criteria that used are:

• Articles that discuss software evolution and adaptation in detail.

• Papers that provide a theory of evolution and adaptation.

• Studies that are not older than twenty years e.g. 1995-2015.

5

Page 10: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

The latter criteria was not followed along the whole study process as several articlesof older publication date were discovered and taken into account due to the importantcontents.

Following, the selected exclusion criteria were:

• Articles conducted on Autonomic and self-managing systems.

• Papers that do not cover the software engineering area.

The first criteria was specified after several articles were studied. The concept of auto-nomic software is broad and therefore provides a general idea of evolution and adaptation,nevertheless the articles read were included into the resulting paper, as they provided use-ful information on both research aspects.

3.1.4 Search strategy

There were two main digital libraries that were exclusively used for article search:

• IEEExplore

• ACM Digital library

The keywords used for the searching were: “adaptive software”, “self-adaptive soft-ware”, “evolutionary software”, “software evolution”, “software maintenance” and "auto-nomic systems". The study that played a significant role in pointing out relevant articleswas [9]. The studies were selected according to the criteria described in 3.1.3 section.Initially, studies having one or several key words in the title were chosen. As the studyprogressed, papers were chosen and approved on account of their abstract. If the key-words and abstract of an article were seen to be relevant, the papers were chosen as can-didates for the next phase, otherwise they were discarded. However, more articles werenot included even after passing through the search phase, as their content did not provethe relevance of the paper or the information given by the article was not useful for theconducted research.

3.2 Conducting the review

One of the goals of this phase is a selection of primary studies to be used in the review.The criteria used to select the studies are described in section 3.1.3.

3.2.1 Data extraction

During the second phase of the study certain parameters which provide the results forthis study, were revealed. These parameters give a brief and clear definition of adaptationand evolution properties. The properties were extracted by using the 5W method [10].Thus, the information inherent to evolution and adaptation is extracted by answering thefollowing questions:

• Why – Specifies the goal of the process. Adaptation and evolution take place inorder to preserve either functional or quality requirements.

• When – Both processes take place in a particular period of time or at a specificmoment. Hence, an adaptation and an evolution can happen during run-time, im-plementation, deployment, compile time or along the lifetime of a system.

6

Page 11: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

• What – Adaptation and evolution influence a software in two major ways: they ei-ther change the behavior or the structure of the system. Most of the times, behaviormodification is caused by changes in the source code, while the structure of thesystem is affected by the restructuring of the architecture.

• Where – Here the layer of the system is mentioned. Both source code and thearchitecture of software can be changed by any of these two discussed processes.

• Who – A software can be maintained by a software engineer. However, many soft-ware systems are intended to be self-managing which makes it emergent and doesnot require a coordinated work from a system developer.

3.3 Reporting the review

A report is an integral part of the study, and as it is in this phase, all the obtained data fromthe conducted review is collected and put together. By thorough analysis, all the parame-ters are calculated and presented in a more acceptable form for future researchers/readers.The report is divided into two major parts:

• Empirical Data – all results obtained are presented in this chapter

• Analysis/Discussion – this paragraph is intended to provide analysis of the resultspresented in the previous chapter and a main discussion of the analysis that leads toa final conclusion

3.4 Reliability

The data collected and presented in this report is a result of a detailed study on variousreliable sources. There are several Software Engineering books that were used, such asSoftware Evoltion: The Software Maintenance Challenge [1] and Successful EvolutionOf Software Systems [11]. Along with the books numerous papers from conferences likeIEEE International Workshop on Program Comprehension [12], 4th International Work-shop on Principles of Software Evolution [13], ICSE Workshop on Software Engineeringfor Adaptive and Self-Managing Systems (SEAMS) [14], and International Conference onInformation Technology, Computer Engineering and Management Sciences (ICM) [15]were included.

7

Page 12: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

4 Empirical data

This chapter depicts all results derived from the literature study and calculations of theresults. A reader can clearly see the outcomes of the data extraction and follow theprocess of calculations.

In order to carry out a detailed study, 28 papers were selected and examined. 15 papersmention the adaptation of software, its settings and distinctive properties. 17 articlesinclude discussion on the evolution and growth of software, its needs and its specificcharacteristics.

Table 4.1 contains all the information discovered in the process of the study. It out-lines why, when and where adaptation and evolution of software take place. Moreover,a reader can find out what aspect of software is affected by any of two processes and bywhom adaptation or evolution is performed. The characteristics are distributed over thecolumns thus they are clearly separated. The last column contains a weight of each paperread. This number is calculated by the formula:

Weight = Citations/(PresentY ear − PublicationY ear

)The weight of the paper defines its value in today’s software engineering community

and the reliability of the study.As a result of calculations, the numbers of papers supporting a particular claim are

viewed as a percentage. This data can be seen on charts 4.1, 4.9, 4.7, 4.2, 4.5, 4.3,4.4, 4.6, 4.8, 4.10.

Figure 4.1: Adaptation. Why?

Figure 4.1 shows that in 80% of the papers the authors claim that adaptation takesplace in order to maintain quality properties, while only 20% state that adaptation takescare of both functional and non-functional requirements. None of the papers mentionfunctional requirements being preserved alone.

8

Page 13: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

Paper E/A Why? When? What? Where? Who? Weight

1 [9] Adaptation Extra-functional Run-time - Multilevel Emergent 8.7

2 [16] Adaptation Extra-functional Run-time Behavior Architecture Emergent 74.9

3 [17] Adaptation Extra-functional Run-time Structure Architecture Emergent 1.1

4 [18] Adaptation Extra-functionalRun-time

/ DevelopmentAttributes/Behavior Multilevel

Emergent/Coordinated 111.2

5 [19]Adaptation/ Evolution Extra-functional Run-time Behavior Multilevel Coordinated 7.1

6 [6] Adaptation Extra-functional Run-time Behavior Multilevel Emergent 59.8

7 [14] Adaptation Extra-functional Run-time - Multilevel Emergent 2.2

8 [5] Adaptation Extra-functional Run-time Behavior Multilevel Emergent 406.8

9 [20] AdaptationFunctional

/ Extra-functionalDeployment/ Run-time Structure Architecture Emergent 13

10 [21] Adaptation Extra-functional Run-time BehaviorSourcecode

Emergent/Coordinated 4

11 [22] Adaptation Extra-functional Run-time Structure Architecture Emergent 0

12 [23] Adaptation Extra-functional Run-time BehaviorSourceCode Emergent 20.4

13 [24] AdaptationExtra-functional/

Functional

Design/ Compile/ Run-time

Structure/Behavior Architecture

Emergent/Coordinated 22

14 [25] AdaptationFunctional/

Extra-functional Run-time Behavior Architecture Emergent 4.7

15 [26] Adaptation Extra-functionalDeployment/ Run-time

Behavior/ Structure Multilevel

Emergent/Coordinated 1

16 [16] Evolution Extra-functionalDevelopment/Deployment Structure Architecture

Coordinated/Emergent 74.9

17 [27] Evolution Functional Development StructureSourceCode Coordinated 1.8

18 [6] Evolution - Run-time Structure Architecture Emergent 59.8

19 [28] Evolution Extra-functional Development Structure Architecture Coordinated 2.8

20 [4] Evolution Extra-functional Development Structure Architecture Coordinated 1.8

21 [15] Evolution Extra-functional Run-time Behavior Multilevel Coordinated 0.3

22 [29] EvolutionFunctional

/ Extra-functional LifetimeStructure

and behavior Multilevel Emergent 32.9

23 [11] Evolution Extra-functional Lifetime Behavior Multilevel Coordinated 8.2

24 [30] Evolution Extra-functional Lifetime Structure Architecture - 0.8

25 [13] Evolution Extra-functional Lifetime Structure Architecture - 2.3

26 [2] Evolution Extra-functional Development Behavior Architecture Coordinated 2.1

27 [31] Evolution Extra-functional Run-timeStructure

and behavior Multilevel Emergent 20.3

28 [32] Evolution Extra-functionalDevelopment/ Deployment

/ Run-timeBehavior Multilevel Coordinated 2.7

29 [33] EvolutionFunctional /

Extra-functional Development Behavior Architecture Coordinated 40.2

30 [12] EvolutionFunctional /

Extra-functional Development StructureSource

Code/Architecture Coordinated 4.2

31 [23] Evolution Extra-functional Run-time BehaviorSourceCode Emergent 20.4

Table 4.1: 5W of Software Adaptation and Evolution (the weights were calculated on the12th of May, 2015)

9

Page 14: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

Figure 4.2: Adaptation. When?

Figure 4.2 depicts that staggering 70% of the studies highlight the fact that adaptationhappens during the software run-time, whereas 15% claim that it is a development phase,10% that it is a deployment phase and only 5% state that adaptation might take placeduring compilation. None of the papers sees adaptation as a process following a softwarethroughout its lifetime.

Figure 4.3: Evolution. Why?

The reason of software evolution (figure 4.3): 75% of the articles see it as a way topreserve quality requirements, while only 6% claim that functional requirements are thesource of the process. 19% of the papers see it as a combination of both.

10

Page 15: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

Figure 4.4: Evolution. When?

According to 30% of the authors, evolution takes place during run-time of software,while other 40% see it as a process happening during the development phase. 20% ofpapers prefer the term lifetime to specifying a certain phase and only 10% see evolutionas a part of the deployment process (figure 4.4).

Figure 4.5: Adaptation. What?

In figure 4.5 62% of the studies suppose that adaptation changes or adapts behaviorof software, only 15% state that adaptation affects both behavior and structure. 23% ofthe studies see it affecting structure.

11

Page 16: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

Figure 4.6: Evolution. What?

In 47% of papers evolution affects the structure of software as is presented in fig-ure 4.6. Almost equivalent number of papers (41%) propose a software behavior as amodification target. Only 12% propose that both structure and behavior are affected byevolution.

Figure 4.7: Adaptation. Where?

According to figure 4.7, adaptation is a multilevel process process according to 50%of the studies. 36% claim that it happens on architectural level, 14% see changes goingon in source code.

12

Page 17: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

Figure 4.8: Evolution. Where?

Software evolves on architectural level which is claimed by 50% of studies. 33% seeevolution as a multilevel process and the remaining 17% propose that evolution influencesthe source code of a system. These results are displayed on the figure 4.8.

Figure 4.9: Adaptation. Who?

Figure 4.9 makes obvious that adaptation is seen as an emergent process by 67% ofthe researches, 27% argue that adaptation can be both emergent and coordinated and 6%say that it is coordinated.

13

Page 18: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

Figure 4.10: Evolution. Who?

However, evolution is declared coordinated by 67% of studies, while 27% of papersclaim it is emergent. The remaining 6% state that it is both emergent and coordinatedaccording to figure 4.10.

14

Page 19: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

5 Analysis/Discussion

In this chapter general analysis of the results obtained during the research is presented.A comparison between software adaptation an evolution is illustrated and discussed.

5.1 Evolution vs. Adaptation

Figure 5.11 depicts certain properties that seem to be winning the quantitative competi-tion between the different studies according to table 4.1. Besides, it demonstrates over-lapping characteristics of adaptation and evolution. However, the weight of the paperscan also lead to completely different results.

Research question 1. The weights of paper number 8 and 4 may serve as a signof trust of the information provided by the authors. Their weights are the highest amongother studies related to adaptation, and both agree that adaptation is a run-time, multilevel,self-driven process that has an influence on software behavior and preserves the qualitativeproperties of the system. This serves as an answer to the question of software adaptationdefinition, since it matches to the overall results.

Research question 2. The heaviest papers among the evolution studies (16 and 18)agree that evolution occurs during run-time on architectural level and it is affecting thestructure of a system. However, they both propose the possibility that evolution can beemergent, which negates the results shown in figure 5.11. Concluding this and neglect-ing the numerical priority of papers, it is reasonable to assume that evolution can beperformed without human intervention. Therefore, there is a possibility that evolutionhappens not only during development, for instance, through numbers of releases carriedout by developers, but also during run-time as a result of software adaptation.

Research question 3. The results reviewed earlier clearly show that adaptation andevolution primarily happen in an effort to preserve the quality properties of software.Software systems can evolve and adapt during run-time, however evolution can happenthroughout a number of releases, which implies that it is a coordinated process. Softwareadaptation is primarily seen as emergent. Many studies map evolution to adaptation,but only when it comes to evolution that is performed during run-time. In some casesboth concepts are discussed closely to one another as if they are two parts of one. Asan example, the work of M. Salehie states: "Static and dynamic adaptation, related tothe temporal dimension of this view, are mapped to compile-time evolution and load-time/run-time evolution, respectively. For this reason, dynamic adaptation is sometimescalled dynamic evolution" [18].

Also according to one of Lehman’s laws, software should be continuously adapted inorder to satisfy the changing requirements e.g. evolve [29]

Figure 5.11: Adaptation & Evolution

15

Page 20: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

A large number of papers states that adaptation is a run-time process. During run-time a software changes its behaviour, which will, consequently, affect the whole system.Some researchers refer to multilevel adaptation, some other do not focus on this aspect,which probably is an indicator of their general representation of this concept. In most ofthese studies it is complicated to put markers and highlight the boundaries on which levelof software system adaptation starts on. Despite the fact that the authors do not clarify it;when the behaviour is being affected one can assume that the changes happen at sourcecode level. In the meantime evolution also affects and preserves quality requirements orproperties, it can also happen at run-time as well as through a number of releases. It issaid to affect structure and even behaviour. Evolution takes place on architectural leveland is mostly seen as a coordinated process.

However, many papers have already begun discussing self-evolutionary software. It isnot surprising, because if adaptation happens during run-time and changes the behaviour,it consequently changes the source code. This results to the evolution of the software,since it is already changing during run-time to adapt itself. Studies like 2,6,17,19, 21,20 (table 4.1) claim that evolution or adaptation is caused by changes in the surround-ing environment or in the system itself. This leads to a proposal that evolution can becaused by adaptation since adaptation changes the system. Changes in source code canlead to changes in the architecture as well. As said by Keith H. Bennett "Strategically,progress in software architectures is crucial, so that we can extend and adapt functionaland nonfunctional behaviour without destroying the integrity of the architecture in orderto respond to unexpected new user requirements" [33]. If so, it means that adaptationleads to evolution. At the same time, if software adapts often then at some point therewill be a need to change architecture, meaning to restructure the software. This impliesanother release process, which is assumed an evolution in major number of studies.

Architecture, structure and behaviour do change, and all of these changes can be theresult of adaptation. Therefore, in many cases, adaptation can lead to evolution and thismakes adaptation a small part of evolution. Evolution can happen separately from adap-tation, but the fact that they are very similar cannot be disregarded. Some non-adaptivesoftware systems can still go through the evolution process as they can change duringrun-time even if the system is not adaptive. However, in this case it is most probable thatthe change will be carried out by an administrator. All the mentioned factors propose thatadaptation is a sub-part of evolution. If a self-adapting software is to be implemented, it isgoing to evolve on architecture level too, both with or without intervention of developer.

16

Page 21: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

6 Conclusion

In this chapter reader finds all the conclusion based on the research conducted and resultsgained in the end. Suggestions on further research can be found here.

6.1 Conclusions

Software evolution and software adaptation possess vast areas for scientific research.These two aspects are crucial parts of software lifetime along with infinite number ofother processes that constantly go on. Until today many studies on both concepts havebeen conducted and various outcomes have been published. According to the systematicliterature review described in this report, software adaptation is often a process that main-tains quality requirements during run-time of an application. It is capable of changingthe behavior of software depending on changes in the surrounding environment or insidethe system itself. Nowadays, most of the scientists focus on the concept of self-adaptingsystems that do not require human intervention, as it practically reduces the costs and istime-saving.

Software evolution, on the other hand, represents a process that can occur not onlyduring run-time, but also during development phase. According to J. Kramer : "However,dynamic change, which occurs while the system is operational, is far more demandingand requires that the system evolves dynamically, and that the adaptation occurs at run-time" [16]. This leads to major changes in a system’s structure and sometimes behavior.The independence of this process from software developers is not broadly discussed yet,but it becomes more popular nowadays.

The study has shown that a self-adaptive system can become self-evolving, sincechanges in behavior may sooner or later require changes in structure. Until recently evo-lution and adaptation were not tightly dependent on each other, nevertheless dynamicevolution will need dynamic adaptation. This leads to a close interrelation between themin the near future.

6.2 Further research

Knowing basic properties of an adaptive and evolutionary software and answers to the5W questions it is time to look deeper into the problem and start asking a question ofhow? Further research might look closer at a possible implementation of an adaptive andevolutionary software. Moreover, the present study can serve as a solid basis for futureinvestigations. Such a project could prove the validity or refute the results presented inthis paper. There is an ethical question that arises after the conducted research:

Does humanity need an artificial organism that can adapt and evolve withouthuman help and that can easily overcome humans’ abilities if desired?

17

Page 22: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

References

[1] L. J. Arthur, Software Evolution: The Software Maintenance Challenge. New York,NY, USA: Wiley-Interscience, 1988.

[2] J. Ramil and M. Lehman, “Defining and applying metrics in the context of contin-uing software evolution,” in Software Metrics Symposium, 2001. METRICS 2001.Proceedings. Seventh International, 2001, pp. 199–209.

[3] D. Weyns and T. Ahmad, “Claims and Evidence for Architecture-Based Self-adaptation: A Systematic Literature Review,” in Software Architecture, ser. LectureNotes in Computer Science, K. Drira, Ed. Springer Berlin Heidelberg, 2013, no.7957, pp. 249–265.

[4] H. Breivold, M. Chauhan, and M. Babar, “A Systematic Review of Studies of OpenSource Software Evolution,” in Software Engineering Conference (APSEC), 201017th Asia Pacific, Nov. 2010, pp. 356–365.

[5] J. Kephart and D. Chess, “The vision of autonomic computing,” Computer, vol. 36,no. 1, pp. 41–50, Jan. 2003.

[6] P. Oreizy, M. M. Gorlick, R. N. Taylor, D. Heimbigner, G. Johnson, N. Medvidovic,A. Quilici, D. S. Rosenblum, and A. L. Wolf, “An Architecture-Based Approach toSelf-Adaptive Software,” IEEE Intelligent Systems, vol. 14, no. 3, pp. 54–62, 1999.

[7] “evolution: Learner’s Dictionary.” [Online]. Available:http://www.oxforddictionaries.com/definition/learner/evolution

[8] B. Kitchenham and S. Charters, “Guidelines for performing Systematic LiteratureReviews in Software Engineering,” Tech. Rep., 2007.

[9] D. Weyns, M. Iftikhar, S. Malek, and J. Andersson, “Claims and supporting evidencefor self-adaptive systems: A literature study,” in 2012 ICSE Workshop on SoftwareEngineering for Adaptive and Self-Managing Systems (SEAMS), Jun. 2012, pp. 89–98.

[10] P. Inverardi and M. Tivoli, “The Future of Software: Adaptation and Dependability,”in Software Engineering, ser. Lecture Notes in Computer Science, A. D. Lucia andF. Ferrucci, Eds. Springer Berlin Heidelberg, 2009, no. 5413, pp. 1–31.

[11] H. Yang and D. M. Ward, Successful Evolution of Software Systems. Artech House,2003.

[12] A. Capiluppi, M. Morisio, and J. Ramil, “Structural evolution of an open sourcesystem: a case study,” in 12th IEEE International Workshop on Program Compre-hension, 2004. Proceedings, Jun. 2004, pp. 172–182.

[13] R. T. Mittermeir, “Software Evolution: Let’s Sharpen the Terminology BeforeSharpening (Out-of-scope) Tools,” in Proceedings of the 4th International Workshopon Principles of Software Evolution, ser. IWPSE ’01. New York, NY, USA: ACM,2001, pp. 114–121. [Online]. Available: http://doi.acm.org/10.1145/602461.602485

18

Page 23: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

[14] Y. Brun, “Improving Impact of Self-adaptation and Self-management ResearchThrough Evaluation Methodology,” in Proceedings of the 2010 ICSE Workshopon Software Engineering for Adaptive and Self-Managing Systems, ser. SEAMS’10. New York, NY, USA: ACM, 2010, pp. 1–9. [Online]. Available:http://doi.acm.org/10.1145/1808984.1808985

[15] T. Gao, T. Li, Z. Xie, J. Xu, and Y. Qian, “A Process Model of Software EvolutionRequirement Based on Feedback,” in 2011 International Conference on InformationTechnology, Computer Engineering and Management Sciences (ICM), vol. 2, Sep.2011, pp. 171–174.

[16] J. Kramer and J. Magee, “Self-Managed Systems: an Architectural Challenge,” inFuture of Software Engineering, 2007. FOSE ’07, May 2007, pp. 259–268.

[17] A. Allen, S. Leslie, Y. Wu, P. Clarke, and R. Tirado, “Self-Configuring User-CentricCommunication Services,” in Third International Conference on Systems, 2008.ICONS 08, Apr. 2008, pp. 253–259.

[18] M. Salehie and L. Tahvildari, “Self-adaptive Software: Landscape and ResearchChallenges,” ACM Trans. Auton. Adapt. Syst., vol. 4, no. 2, pp. 14:1–14:42, May2009. [Online]. Available: http://doi.acm.org/10.1145/1516533.1516538

[19] P. Oreizy and R. Taylor, “On the role of software architectures in runtime systemreconfiguration,” in Fourth International Conference on Configurable DistributedSystems, 1998. Proceedings, May 1998, pp. 61–70.

[20] M. Salehie and L. Tahvildari, “Autonomic Computing: Emerging Trends and OpenProblems,” in Proceedings of the 2005 Workshop on Design and Evolution ofAutonomic Application Software, ser. DEAS ’05. New York, NY, USA: ACM,2005, pp. 1–7. [Online]. Available: http://doi.acm.org/10.1145/1083063.1083082

[21] M. Amoui, M. Salehie, S. Mirarab, and L. Tahvildari, “Adaptive Action Selectionin Autonomic Software Using Reinforcement Learning,” in Fourth InternationalConference on Autonomic and Autonomous Systems, 2008. ICAS 2008, Mar. 2008,pp. 175–181.

[22] Y. Brun, J. Bang, G. Edwards, and N. Medvidovic, “Self-Adapting Reliabilityin Distributed Software Systems,” IEEE Transactions on Software Engineering,vol. PP, no. 99, pp. 1–1, 2015.

[23] C. Canal, P. Poizat, and G. Salaun, “Model-Based Adaptation of Behavioral Mis-matching Components,” IEEE Transactions on Software Engineering, vol. 34, no. 4,pp. 546–563, Jul. 2008.

[24] V. Cardellini, E. Casalicchio, V. Grassi, S. Iannucci, F. Lo Presti, and R. Mirandola,“MOSES: A Framework for QoS Driven Runtime Adaptation of Service-OrientedSystems,” IEEE Transactions on Software Engineering, vol. 38, no. 5, pp. 1138–1159, Sep. 2012.

[25] H. Gomaa and K. Hashimoto, “Dynamic self-adaptation for distributed service-oriented transactions,” in 2012 ICSE Workshop on Software Engineering for Adap-tive and Self-Managing Systems (SEAMS), Jun. 2012, pp. 11–20.

19

Page 24: Thesis Project Understanding Software Adaptation and Evolution840057/FULLTEXT01.pdf · The maintenance of software is an important part of software engineering. L. Arthur criticizes

[26] F. Akkawi, K. Akkawi, A. Bader, M. Ayyash, D. Fletcher, and K. Alzoubi, “Soft-ware Adaptation: A Conscious Design for Oblivious Programmers,” in 2007 IEEEAerospace Conference, Mar. 2007, pp. 1–12.

[27] S. Ali and O. Maqbool, “Monitoring software evolution using multiple types ofchanges,” in International Conference on Emerging Technologies, 2009. ICET 2009,Oct. 2009, pp. 410–415.

[28] S. Cook, J. He, and R. Harrison, “Dynamic and static views of software evolution,”in IEEE International Conference on Software Maintenance, 2001. Proceedings,2001, pp. 592–601.

[29] M. Lehman, J. Ramil, P. Wernick, D. Perry, and W. Turski, “Metrics and laws ofsoftware evolution-the nineties view,” in Software Metrics Symposium, 1997. Pro-ceedings., Fourth International, Nov. 1997, pp. 20–32.

[30] K. A. Ferreira, M. A. Bigonha, R. S. Bigonha, and B. M. Gomes, “Software evo-lution characterization-a complex network approach,” X Brazilian Simposium onSoftware Quality-SBQS, pp. 41–55, 2011.

[31] T. Mens, M. Wermelinger, S. Ducasse, S. Demeyer, R. Hirschfeld, and M. Jazayeri,“Challenges in software evolution,” in Eighth International Workshop on Principlesof Software Evolution, Sep. 2005, pp. 13–22.

[32] M. M. Lehman and J. F. Ramil, “Evolution in Software and Related Areas,” inProceedings of the 4th International Workshop on Principles of Software Evolution,ser. IWPSE ’01. New York, NY, USA: ACM, 2001, pp. 1–16. [Online]. Available:http://doi.acm.org/10.1145/602461.602463

[33] K. H. Bennett and V. T. Rajlich, “Software Maintenance and Evolution: ARoadmap,” in Proceedings of the Conference on The Future of SoftwareEngineering, ser. ICSE ’00. New York, NY, USA: ACM, 2000, pp. 73–87.[Online]. Available: http://doi.acm.org/10.1145/336512.336534

20


Recommended