Aspect oriented approach can be used for enhance evolution featuremodel modularity. First, feature implementations often do not translate cleanly into traditional software modules, such as methods, classes, and packages. It provides tools for the featureoriented design process and implementation of software product lines. Evolving deltaoriented software product line architectures. We evaluate our prototype implementation of fever by manually validating a subset of 300 randomly selected commits we extracted from release v3. Featureoriented development, software evolution, traceabil ity, analysis. The purpose of this paper is to propose an approach to modeling trustworthiness requirement. These examples, however, also highlight a poor support for e ective featureoriented evolution. 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.
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. Citeseerx document details isaac councill, lee giles, pradeep teregowda. We explain the main steps of the modelbased change extraction process in section 5. Using featureoriented analysis to recover legacy software design for software evolution. Evolution of software product lines is a complex task because it has two levels. This paper adds featureoriented eventb to that agenda. A software product line is defined by its features that describe common and variable functionalities of a system 1012. 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. In the other direction, in systems of systems engineering, however, the aspect of evolution is discussed as one of the challenges. In this paper, we develop a vision of software evolution based on a feature oriented perspective. A closer look at hps experience in evolving the owen software.
Featureoriented software evolution proceedings of the seventh. Evolution to support the featureoriented evolution of product lines 28, 34. Journal of software evolution and process to appear. Jelena jovanovic and ebrahim bagheri electronic commerce meets the semantic web. Aspectoriented software development describes a number of approaches to software modularization and composition including, in order of publication, reflection and metaobject protocols, composition filters, developed at the university of twente in the netherlands, subjectoriented programming later extended as multidimensional separation of concerns at ibm, feature oriented. Featureoriented software developmentis a paradigm for the construction. Featureoriented software evolution chair of software engineering.
Featureoriented software development fosd is a paradigm for the construction, customization, and synthesis of largescale software systems. The process of developing an entire software product line instead of a single. For example, in the domain of data management there are features such as transaction management, storage management. Featureoriented variability management in product line. On the use of feature oriented programming for evolving software product lines a comparative study. Duplication detection when evolving feature models. Module 2 christian doppler laboratory monitoring and. Feature interactions are a key issue in featureoriented designs. The featuredriven development of linux kernel, for instance, enables its scaling to an enormous size, both in the number of features and contributors28. Each crosscutting feature is an independent module that fundamentally yields an open system from a veri cation perspective.
Featureoriented software evolution proceedings of the. Again, the literature on software evolution rarely touches the sos aspect. Existing work presents speci c approaches to manage the evolution of spls in terms of such artifacts, i. Feature oriented refactoring of legacy applications. Montiarc into a seamless software engineering process for software pro.
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. 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. Foom represents a synthesis of foda feature oriented domain analysis and horseshoe models. Then, we present the featureoriented change model we use to describe the evolution of such systems in section 4. The featureoriented mapping process consists of two stages. A feature interaction occurs when one or more features modify or influence other features 14. In software engineering, software evolution is referred to as the process of developing, maintaining and updating software for various reasons.
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. Features are used for the specification of commonalities and variabilities of software systems. Inspired by the idea of featureoriented domain analysis. The sei digital library provides access to more than 5,000 documents from three decades of research into best practices in software engineering.
Using featureoriented analysis to recover legacy software. Citeseerx foom featurebased object oriented modeling. This software featurebased evolution variability modelling technique. The second process is application engineering in which the products of the family are derived from the common platform 2. 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. Evolving deltaoriented software product line architectures arxiv. 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. After the evolution feature typology has been constructed, evolution model will be created to make the evolution more specific. 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. 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. To describe the processes involved in software evolution. 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. On the use of featureoriented programming for evolving.
Software maintenance and evolution linkedin slideshare. Diversity has an impact on all phases of the software development process. A description of something that omits some details that are not relevant to the purpose of the abstraction. Appropriate means and organizational structures are required to deal with the additional complexity introduced by software variability. In such settings, software development usually occurs in a multistage process. Featureoriented software evolution generative software. Read formalizing interactive staged feature model configuration, journal of software.
Featureoriented development in industrial automation software ecosystems. Reverse engineering is the process of analyzing a subject system to identify the systems. Mapping requirements to software architecture by feature. Home icps proceedings vamos featureoriented software evolution. Featureide 15 is an eclipsebased ide that supports building program families following the ahead 16,17 architecture model. Feature oriented refactoring for is the process of decomposing a program into features. Using a product line approach to software development and evolution requires much more than a reuse program. The functionality offered by systems has to continually increase. In this paper, we develop a vision of software evolution based on a featureoriented perspective. With time software systems easily become obsolete if not updated to reflect the everchanging needs of their users. A proposal is made for the development of a featureoriented reuse capability for safetycritical software construction using. A feature is a semantically cohesive unit of behavior of a software system.
An overview of featureoriented software development. Featureoriented evolution of automation software systems in industrial software ecosystems. 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. Featureoriented development in industrial automation. Figure 2 shows the process of featureoriented design. Featureoriented software development fosd takes this scenario as the context for the development of a system 3, 5. Modularization and structuring are key issues in scaling eventb models. Pdf requirementsdriven software evolution researchgate. Regarding software changes, in the last years more and more approaches were made in featureoriented software evolution and changes. We illustrate these ideas using an automotive example and raise research questions for the community. A practical guide to featuredriven development guide books.
Applying featureoriented software development in saas. Evolution feature oriented model driven product line. 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. Each feature can refine classes and methods of another feature.
Combining featureoriented and aspectoriented programming to support software evolution. An overview of featureoriented software development journal of. Connection between layer stacks and transformation compositions. Information on feature oriented programming fop also known as feature oriented software development fosd can be found here fosd on wikipedia. Computational reflection is required to facilitate accessing and customizing runtime variability during this evolution process. 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. Formalizing interactive staged feature model configuration. The process of continuous adaptation, extension, and customization is known as software evolution.
Featureoriented software designs capture many interesting notions of crosscutting, and o er a powerful method for building productline architectures. Modeling interactions in feature oriented software designs. We describe desiderata for verifying such modules through model. Evolution and process on deepdyve, the largest online rental service for scholarly research with thousands of academic publications available at your fingertips. 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. This article focuses on the evolution of the design and the implementation base. Looking at the evolution of pl methods in relation to each other, one could extract the picture shown in. Diversity is prevalent in modern software systems to facilitate adapting the software to customer requirements or the execution environment. Recovering the evolution of object oriented software. 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.