Software product line engineering with feature models

Figure 3 feature model for our meteorological product line click on picture to see a larger image each feature model has a root feature. Software product line engineering sple is a software development paradigm that has proven effective for coping with this scenario. This is a new feature modeling tool for sw product line engineering made by cosdec. An overview of featureoriented software development. Translating engineering gains into strategic business value part 1 july 17, 2018 biglever software this is the first of a twopart series of guests post about product line engineering ple from our friends at biglever software. Strategic reuse helps you gain efficiencies across the entire product development lifecycle. A feature model that can uniformly express the full product line feature diversity for all assets in all stages of the lifecycle. Managing erp configuration variants proceedings of the. Understand the software product line engineering process and three approaches. Featurebased, product line engineering tools exist today.

We present procedures for reverse engineering feature models based on a crucial heuristic for identifying parents the major challenge of this task. Software product line engineering with feature models an article i wrote together with mark dalgarno of software acumen, gives an introduction to software product lines with feature models on a concrete example. Techniques to model software product lines spls, using feature models. Features with mandatory constraints and high in dependency with other features are identified as crosscutting concerns. The multimodel in the software product line development process modelbased evolution of software systems implies the evolution by using models, eg applying modeldriven techniques to support product evolution, or the evolution of models, ie the evolution of the modelsmetamodels that describe the product. Software product line engineering software engineering for a family of products software variability key problem in software product line engineering ft dlifeature modeling unifying view in multiple view spl feature relationships with other views explicitlyfeature relationships with other views explicitly depicted. Product line software engineering is an emerging paradigm that helpsorganizations develop their wares from reusable core assets rather. Assets are the soft artifacts associated with engineering lifecycle of the products, the building blocks of the products in the product line. Software engineering at oxford software product lines. Software product lines are quite common in our daily lives, but before a product family can be successfully established, an extensive process.

Software development life cycle, sdlc for short, is a welldefined, structured sequence of stages in software engineering to develop the intended software product. Software product line testing based on feature model mutation. Search, retrieval and comparison of products in a product line are common tasks during product line evolution. Software product line, feature models, software product variants, formal concept analysis, productbyfeature matrix. Feature modeling tool for software product line engineering. Software product lines product line methods feature modelling separation of concerns. The goal of software product line engineering is the largescale strategic reuse of functionality across multiple software products within a domain, such that different software configurations tailored for different customers or use cases are derived from a common code base. A classification of product sampling for software product. Product configuration in software product line ovgu. Using this notation, our example feature model, with some modifications, is shown in figure 3. In software development, a feature model is a compact representation of all the products of the software product line in terms of features. A familybased software development process weiss, david m. Like many methodologies, spl engineering can be supported by modelbased abstractions such as feature models. Based on a 2layer feature model for the domain of the companys business processes, individual, albeit similar divisions erp system configurations can be derived by feature.

Productfamily engineering pfe, also known as productline engineering, is a synonym for domain engineering created by the software engineering institute, a term coined by james neighbors in his 1980 dissertation at university of california, irvine. Although the term software product line engineering is becoming more widely known, there is still uncertaintyamong developers about how it would apply in their own development context. In software product line spl, feature model is highly recommended to manage the commonalities and variability of features under resource constraints of mandatory, optional and alternative. Software product line engineering has gained considerable momentum in recent years, both in industry and in academia. Testing software product lines spls is very challenging due to a high degree of variability leading to an enormous number of possible products. Softwareproduct line engineering sple offers a solution to these not quite new, but increasingly challenging, problems cle01. Unfortunately, creating a feature model for an existing project is timeconsuming and requires substantial effort from a modeler.

It started with feature modeling and soon enough was extended to handle many different concerns. Softwareproductline engineering is an approach to systematically. Using feature and orthogonal variability models to design. This course is designed to walk students through the entire process of. Software product lines course the software product line spl approach to software development promises significant improvements in time to market, cost, and reliability, through the system identification and exploitation of commonalities and variations in software systems the approach promotes asset re use throughout the software life cycle, and facilitates product customisation spl. This paper describes variability management in uml based multipleview models of the software product line, which consist of developing use case and feature models during requirements modeling, static and dynamic models during analysis modeling, and componentbased. Inthis article we tackle this problem by describing the design and automatedderivation of the product variants of a software product line using an easy to. In product line engineering, hierarchical production line constitutes an architecturelike construct, in that there are interfaces and relationships among the nested product lines. Requirements engineering in feature oriented software. Variability modeling in modeldriven software product line.

In software development, a feature model is a compact representation of all the products of the software product line spl in terms of features. This is the first step where the user initiates the request for a desired software product. Software product line engineering sple offers a solution to these not quite new, but increasingly challenging, problems cle01. Feature models are widely used during the whole product line development process and are commonly used as input to produce other assets such as documents, architecture definition, or pieces of code. Atkinson, c componentbased product line engineering with uml. The concept of sple has been adopted from the broader. Softwareproductline engineering has gained considerable momentum in recent years, both in industry and in academia. Software productline engineering sple is a wellaccepted approach of developing a set of products that share a common set of features 26. In software product line engineering, the variabilities and common. This can be accomplished by reusing components, applying proper change management across different variants, and leveraging automation. Software product lines challenge traditional analysis techniques, such as. Software product families have already been proposed by parnas in 1976 1. Feature models are used for in the software product lines approach to model different product variants.

Goal models and feature models are used for representing intentional and software. The concepts of software product line engineering sple have been adapted and applied to enterprise it systems, in particular the erp systems of a production company. A classification of product sampling for software product lines. For example, the feature modeling constructs provided by biglever software. Lean software development methodology works wonders for renovating the longtime working product, like rewriting the engine using newest technologies, replacing the. Product line engineering is an evolving discipline that is using new tools and techniques to facilitate the manufacturing of the every day products we enjoy. Software evolution in modeldriven product line engineering. The role of feature modeling in software product line. Reverse engineering feature models from software con. Because of their reusability and adaptability capabilities, modelbased approaches are suitable to. The paper proposes a novel application of product line model driven engineering to mobile application development and addresses the key challenges of feature based native mobile application variants for multiple platforms. A featuresimilarity model for product line engineering. Software product lines spls, or software product line development, refers to software engineering methods, tools and techniques for creating a collection of similar software systems from a shared set of software assets using a common means of production the carnegie mellon software engineering institute defines a software product line as a set of software intensive systems that share a.

Software product line engineering with feature models. Methods are introduced to improve the test efficiency for software product lines and for highly innovative. Reverse engineering feature models with evolutionary. Modeling variability in the context of software productlines has been around for about 25 years in the research community. University of groningen software product line engineering for. Feature modeling approaches do not easily support these tasks. Feature models are visually represented by means of feature diagrams. The feature model fm is a fundamental artifact of the software product line spl engineering, used to represent commonalities and variabilities, and also to.

In product line engineering, a feature is a distinguishing characteristic of a. An introductory textbook on this topic is by pohl et al. Reverse engineering feature models proceedings of the. Nevertheless, feature models have been used successfully in many academic and industrial projects and drive the research and best practice in software product line engineering 70,47,86,121. Beyond being used for a mere description and documentation of variability, variability models are more and more leveraged to produce other artifacts, such as configurators. This vision paper sets out a proposal for a feature similarity model in which similarity metrics as used for example in casebased reasoning cbr are integrated with.

These new tools promise to help manufacturers deliver new products and variations on existing products. Towards featurebased product line engineering of technical. Software product line engineering sple supports the development of a. The vast majority of todays testing approaches for spls validate products individually using different kinds of reuse techniques for testing. Feature models offer a way to overcome the aforementioned challenges by facilitating the explicit design of global system variation points 18. Modelbased pairwise testing for feature interaction. An approach for optimized feature selection in software. A variation point mechanism that can be uniformly applied to your tools and their associated assets in all stages of the lifecycle including requirements, modeling, source code, boms, testing, configuration. Potential errors and test assessment in software product. Software product line spl is a set of software systems that share a. Beneath this are three mandatory features measurements, data sourceand output format.

Product line engineering an overview sciencedirect topics. Gm has one of the most complex systems and software product line engineering challenges in the world 3000 contributing engineers 300 hierarchical subsystems thousands of variant features millions of product instances per year tensofthousands of unique product variants dramatic increase in variation due to new propulsion systems. A productline modeldriven engineering approach for. Applying modelbased software product line testing approaches to the automation engineering domain. Our reverse engineering process starts from the set of variants and their provided features, as captured in a table like table 1, and has as goal obtaining a feature model that represents such feature combinations. Software product lines spls, or software product line development, refers to software engineering methods, tools and techniques for creating a collection of similar software systems from a shared set of software assets using a common means of production the carnegie mellon software engineering institute defines a software product line as a set of softwareintensive systems that share a. Also, the iso 26580 standard being developed will more formally define what it means to have a product line engineering tool. Apogames a case study for reverse engineering variability from cloned java variants. An assessment of searchbased techniques for reverse. Feature models kan90, cza00 are frequently used for this.

Their advantages are well recognized in product line methods. We consider the problem of supporting multiple platforms as a software product line engineering problem. The basis of sple is the explicit modelling of what is common and what differs between product variants. Assets can be whatever artifacts are representable with software and either compose a. Featureoriented development of software product lines. A software product line is a set of software products that share a common set of features.

240 830 694 511 783 1340 1196 1022 177 48 1114 491 1485 1409 191 275 522 1428 403 1539 224 902 63 1449 1293 284 648 1153 384 512