Feature-oriented software evolution process

Aspect oriented approach can be used for enhance evolution featuremodel modularity. The featureoriented mapping process consists of two stages. Diversity has an impact on all phases of the software development process. The second process is application engineering in which the products of the family are derived from the common platform 2. However, realizing this computational reflection includes various practical complexities since the runtime variability is typically neither explicitly represented in software systems nor changeable during runtime. Information on feature oriented programming fop also known as feature oriented software development fosd can be found here fosd on wikipedia. Using featureoriented analysis to recover legacy software design for software evolution. The process of developing an entire software product line instead of a single. An overview of featureoriented software development. A feature interaction occurs when one or more features modify or influence other features 14. Reverse engineering is the process of analyzing a subject system to identify the systems.

Featureoriented software development fosd is a paradigm for the construction, customization, and synthesis of largescale software systems. Featureoriented software evolution proceedings of the. Evolution feature oriented model driven product line. Feature oriented refactoring of legacy applications.

The sei digital library provides access to more than 5,000 documents from three decades of research into best practices in software engineering. Jelena jovanovic and ebrahim bagheri electronic commerce meets the semantic web. In software engineering, software evolution is referred to as the process of developing, maintaining and updating software for various reasons. Then, we present the featureoriented change model we use to describe the evolution of such systems in section 4. After the evolution feature typology has been constructed, evolution model will be created to make the evolution more specific. This article focuses on the evolution of the design and the implementation base. Introduction to software evolution 27 costs of maintenance usually greater than development costs 2 times to 100 times depending on the application affected by both technical and nontechnical factors increases as software is maintained maintenance corrupts the software structure, making further maintenance more difficult ageing software can have high support costs. Featureoriented development, software evolution, traceabil ity, analysis. Existing work presents speci c approaches to manage the evolution of spls in terms of such artifacts, i. Citeseerx document details isaac councill, lee giles, pradeep teregowda. Assuming that the hypothesis holds, we argue that featureoriented software evolution relying on automatic traceability, analyses, and recommendations reduces existing challenges in understanding and managing evolution. Jelena jovanovic, ebrahim bagheri, and dragan gasevic comprehension and learning of social goals through visualization. Formalizing interactive staged feature model configuration.

Appropriate means and organizational structures are required to deal with the additional complexity introduced by software variability. Many splrelated paradigms have been proposed, among which featureoriented software development fosd is an approach that structures the design and code of a software system using the concept of a feature. An overview of featureoriented software development journal of. Home icps proceedings vamos featureoriented software evolution. The functionality offered by systems has to continually increase. Featureoriented development of software product lines. Figure 2 shows the process of featureoriented design. A feature is defined in 3 as a unit of functionality of a software system that satisfies a requirement, represents a design decision, and provides a potential configuration option.

Featureoriented development in industrial automation. Featureide 15 is an eclipsebased ide that supports building program families following the ahead 16,17 architecture model. Feature interactions are a key issue in featureoriented designs. In computer programming, featureoriented programming fop or featureoriented software development fosd is a programming paradigm for program generation in software product lines spls and for incremental development of programs.

Evolving deltaoriented software product line architectures arxiv. A feature is a semantically cohesive unit of behavior of a software system. Recovering the evolution of object oriented software. Featureoriented software evolution proceedings of the seventh. In the other direction, in systems of systems engineering, however, the aspect of evolution is discussed as one of the challenges. International audiencemanaging in a generic way the evolution process of feature oriented software product lines spls is complex due to the number of elements that are impacted and the heterogeneity of the spls regarding artifacts used to define them. Computational reflection is required to facilitate accessing and customizing runtime variability during this evolution process.

Featureoriented software evolution generative software. Combining featureoriented and aspectoriented programming to support software evolution. In software ecosystems, individual products are often derived and adapted by adding new features or creating new versions of existing features to meet the customerspecific requirements. A closer look at hps experience in evolving the owen software. The purpose of this paper is to propose an approach to modeling trustworthiness requirement. Using featureoriented analysis to recover legacy software. The goal of fosd is to decompose a software system in terms of the features it provides and to create many different software products that share common features and differ in other.

Feature oriented refactoring for is the process of decomposing a program into features. Foom represents a synthesis of foda feature oriented domain analysis and horseshoe models. These examples, however, also highlight a poor support for e ective featureoriented evolution. First, feature implementations often do not translate cleanly into traditional software modules, such as methods, classes, and packages. Module 2 christian doppler laboratory monitoring and. Featureoriented development in industrial automation software ecosystems. This software featurebased evolution variability modelling technique. In such settings, software development usually occurs in a multistage process. With time software systems easily become obsolete if not updated to reflect the everchanging needs of their users. Featureoriented software developmentis a paradigm for the construction. Abstract trustworthy software is delivered by enacting trustworthy software processes. Read formalizing interactive staged feature model configuration, journal of software. We explain the main steps of the modelbased change extraction process in section 5. This update process is far from trivial as each feature is not necessarily captured by a single module, but rather scattered across a number of different modules.

Featureoriented software development fosd takes this scenario as the context for the development of a system 3, 5. These documents include technical reports, presentations, webinars, podcasts and other materials searchable by usersupplied keywords and organized by topic, publication type, publication year, and author. Looking at the evolution of pl methods in relation to each other, one could extract the picture shown in. Evolution to support the featureoriented evolution of product lines 28, 34. The process of continuous adaptation, extension, and customization is known as software evolution. From the fact that features provide a common ground to all stakeholders, we derive a hypothesis that changes can be effectively managed in a featureoriented manner. Featureoriented software evolution chair of software engineering. Software maintenance and evolution linkedin slideshare. A feature is a unit of functionality of a software system that satisfies a requirement, represents a design decision, and provides a potential configuration option. Montiarc into a seamless software engineering process for software pro. For example, in the domain of data management there are features such as transaction management, storage management.

Duplication detection when evolving feature models. A description of something that omits some details that are not relevant to the purpose of the abstraction. Towards dynamic evolution of runtime variability based on. Each feature can refine classes and methods of another feature. Connection between layer stacks and transformation compositions. The featuredriven development of linux kernel, for instance, enables its scaling to an enormous size, both in the number of features and contributors28. Featureoriented software development fosd is a paradigm for the. Pdf requirementsdriven software evolution researchgate. Usecases are often found in the software product line engineering sple community, where fosd is one emerging field of implementation techniques whitepapers and tutorials on practical.

Evolving deltaoriented software product line architectures. Software architecture evolution is the topic of the next chapter, which describes evolution issues in several existing architecture description languages adls, and presents a framework that introduces architectural aspects that may be woven into an existing software architecture at different stages of. It provides tools for the featureoriented design process and implementation of software product lines. This paper adds featureoriented eventb to that agenda. Application engineering is the process of deriving a single variant tailored to the requirements of a specific customer from a software product line, based on the. Featureoriented software designs capture many interesting notions of crosscutting, and o er a powerful method for building productline architectures. Diversity is prevalent in modern software systems to facilitate adapting the software to customer requirements or the execution environment. A software product line is defined by its features that describe common and variable functionalities of a system 1012. Again, the literature on software evolution rarely touches the sos aspect. Applying featureoriented software development in saas.

Featureoriented variability management in product line. In this paper, we develop a vision of software evolution based on a featureoriented perspective. In this paper, we develop a vision of software evolution based on a feature oriented perspective. Evolution and process on deepdyve, the largest online rental service for scholarly research with thousands of academic publications available at your fingertips. Features are used for the specification of commonalities and variabilities of software systems. We describe desiderata for verifying such modules through model. Feature orientation, as such, has been used extensively for product line engineering both in industry and academia, after the software engineering institute first introduced featureoriented domain analysis foda as early as in 1990. Change impact analysis for maintenance and evolution of variable software systems. Modularization and structuring are key issues in scaling eventb models. Mapping requirements to software architecture by feature. On the use of feature oriented programming for evolving software product lines a comparative study. A proposal is made for the development of a featureoriented reuse capability for safetycritical software construction using. Evolution of software product lines is a complex task because it has two levels. Journal of software evolution and process to appear.

Inspired by the idea of featureoriented domain analysis. Featureoriented evolution of automation software systems in industrial software ecosystems. To describe the processes involved in software evolution. We illustrate these ideas using an automotive example and raise research questions for the community. Modeling interactions in feature oriented software designs. Citeseerx foom featurebased object oriented modeling.

217 923 184 1401 583 478 988 524 899 832 182 1054 962 375 720 425 459 292 98 800 1447 250 1299 1483 181 1233 1369 332 469 716 632 1299 948 330 1348 964 30 296 504 747 1211 659 738