Thumbnail
Access Restriction
Subscribed

Author Honiden, S.
Source IEEE Xplore Digital Library
Content type Text
Publisher Institute of Electrical and Electronics Engineers, Inc. (IEEE)
File Format PDF
Copyright Year ©2013
Language English
Subject Domain (in DDC) Computer science, information & general works ♦ Data processing & computer science ♦ Technology ♦ Engineering & allied operations
Subject Keyword Software ♦ Abstracts ♦ Complexity theory ♦ Process control ♦ Conferences ♦ Computers ♦ Computational modeling
Abstract Summary form only given. Software evolution is an essential activity that adapts existing software to changes in requirements. It has played a central role in the overall software lifecycle in recent years. It is generally acknowledged that the software employed in real-world environments must continuously evolve and adapt. Many studies, on the other hand, have suggested that software evolution consumes a large part of development costs. Localizing the impact of changes is one of the most efficient strategies for successful evolution. It helps us to correctly estimate the impact of changes on systems and make changes that minimize increases in code complexity. Both of these activities, i.e., impact analysis and change implementation, have been recognized as integral to software evolution. However, it is still difficult to predict the impact of software changes even if the developers are experienced. Therefore, a software development process should help developers correctly analyze the impact of changes. Moreover, having to make continuous changes to a piece of code easily makes it complicated. Therefore, the process should also help developers to change systems while preventing code from becoming too complicated. We exploit requirements descriptions in order to extract loosely coupled components and localize changes for evolution. We define a process of elaboration for the goal model that extracts a set of control loops from the requirements descriptions as components that constitute extensible systems [1]. A control loop is a cyclic activity flow based on the process control model, which is a model for defining system behaviors. A controller in the model forms a (control) loop consisting of four key activities: collect, analyze, decide, and act. This cycle starts with a collection of relevant data that reflects the current state of the system. The system analyzes the collected data and adjusts its behavior to achieve its goals. After that, the system acts in a way that reflects decisions. We regard such control loops to be independent components that prevent the impact of a change from spreading outside them. When additional requirements appear, new control loops are easy to embed into a system constructed with multiple control loops. Even if the requirements change, the idea of compositional control loops can easily accommodate these changes simply by updating the relevant control loops. We devised a goal model compiler [2] to enable partial design models to be extracted for each evolution and built a programming framework [3] that enables execution of multiple control loops. The goal model compiler identifies multiple control loops from goal-oriented requirements descriptions. We experimentally evaluated our approach in two types of software development and the results demonstrate that our elaboration technique helps us to analyze the impact of changes in the source code and prevent the complexity of the code from increasing.
Description Author affiliation: Nat. Inst. of Inf. Tokyo, Tokyo, Japan (Honiden, S.)
Educational Role Student ♦ Teacher
Age Range above 22 year
Educational Use Research ♦ Reading
Education Level UG and PG
Learning Resource Type Article
Publisher Date 2013-07-17
Publisher Place Singapore
Rights Holder Institute of Electrical and Electronics Engineers, Inc. (IEEE)
e-ISBN 9780769550077
Size (in Bytes) 81.46 kB
Page Count 1
Starting Page 3
Ending Page 3


Source: IEEE Xplore Digital Library