By associating each test case a priorityvalue representing or aggregating distinct criteria, such as importance in. Finally, part iii is devoted to advanced topics related to feature oriented product lines like refactoring, feature interaction, and analysis tools specific to product lines. Switching from one kind of variability model to another is thus important to benefit from a wide range of operations and efficiently manage a software product line. Spl can be described as a family of systems created and. For example, figure 3 shows one example of test case product that can be derived from the fm of figure 2. These relationships may cause various types of defects such as inconsistencies, which deteriorate the quality of software products. Springerverlag, 20 electronic copy available through cmu library. One approach to increasing software reusability is to develop a software product line spl, which is a software architecture that can be reconfigured and reused. Product linebased software engineering is a paradigm that models the commonalities and variabilities of different applications of a given domain of interest within a unique framework and enhances.
Splot is an open platform based on open source software that provides cuttingedge online tools for software product lines. This article is part 2 of a twopart series by our friends at biglever software. Within the context of software product lines, feature. We focus on feature oriented software development as the spl realization technique. This is due to the fact that a product line can potentially represent many different applications. Feature modeling is an approach for capturing commonality and managing variability within soft ware product lines 10. Surfacefx feature extraction technology uses lighting and software algorithms to create high contrast images that enhances 3 dimensional features on a part. Product management software can help you manage your product s lifecycle from start to finish, including concept development, workflow planning, and communication between teams. Improving quality of software product line by analysing. Ebnfbased test case generation for software product line feature models abstract a software product line is a representation of the commonalities and variabilities of the possible software applications of a target domain. This notion is often employed for the facilitation of software reuse, rapid application development and increase in. 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. A software product line is a set of software products that share a common set of features.
What are the best ways to prioritize a list of product. Feature management includes the identification of domainspecific features, analyzing the. Delivering on software product is hard, delivering a line of products is harder. In software product line engineering, features often become the prime entities of software reuse and are used to distinguish the individual products of a product line. 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 understand, practical example.
Featureoriented software development fosd is a paradigm for the construction, customization, and synthesis of largescale software systems. Potential errors and test assessment in software product. One increasing trend in software development is the need to develop multiple, similar software products instead of just a single individualproduct. Binary pattern for nested cardinality constraints for. Example image editing software provides a popular tool that can tell you the color code of any pixel in a photo. 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. Theoretically, a product line with n software features can be a source for the development of 2 n application. However, higher testing efficiency can be achieved through the selection of test cases with improved faultrevealing capabilities. Evolutionary searchbased test generation for software product line feature models springerlink. The development of fms may introduce inaccurate feature relationships. Software product line development with feature modelling.
The variety of features is what mainly differentiate a system from another. Part i provides a general introduction to feature oriented software product lines, describing the productline approach and. Pdf assessing the maintainability of software product line. Depending on the interest of the stakeholders a feature can be forthe example a requirement, a technical function or function group or a nonfunctional quality characteristic. Using this examplewe will show how a product line is designed, and how product variants can be derived automatically. Feature modeling is an important technique used to manage common and variable features of spl in applications, such as internet of things iot.
Mark dalgarno and danilo beuche share some ideas that help. Prioritize themes, not projects create a list of themes for your product or business. Feature modeling is a technique for capturing commonality and variability. Aug 28, 2018 this article is part 2 of a twopart series by our friends at biglever software. Software product line engineering with feature models accu. Feature modeling tool for software product line engineering jinseok yang. Find the best product management software for your business. Featurebased systems and software product line engineering. Specifically, this paper addresses how modeldriven testing, used for oneoff development, can be moved to an spl setting. Software product lines spls are not intended to create one application, but a number of them. Potential errors and test assessment in software product line. Likewise, software testing should mimic its code counterpart. To capture and describe the variability of a software product line, feature modelling, and decision modelling, are the two prevailing approaches.
A software product line family, is a set of software systems that have many common properties, and share a lot of common reusable assets. Feature oriented software development fosd is a paradigm for the construction, customization, and synthesis of largescale software systems. Evolutionary searchbased test generation for software product line feature models. 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. In many cases, software product line testing splt targets only the selection of test cases which cover product features or feature interactions. Featureoriented software product lines springerlink. Properly decomposing a product line into features, and correctly using features in all engineering phases, is core to the immediate and longterm success of such a system. The feature model fm is a fundamental artifact of the software product line spl engineering, used to represent commonalities and variabilities, and also to. Software product line testing based on feature model mutation.
Heres my framework for prioritization, which my product managers tend to follow more or less. Jul 17, 2018 this is the first of a twopart series of guests post about product line engineering ple from our friends at biglever software ple is the engineering of a product line portfolio using a shared set of engineering assets, a managed set of features and an automated means of production. Part i provides a general introduction to feature oriented software product lines, describing the product line approach and introducing the product line development process with its two elements of domain and application engineering. Using this example we will show how a product line is designed, and how product variants can be derived automatically. A new approach to featurebased test suite reduction in. Software product line spl is extensively used for reusability of resources in family of products. Jun 14, 2011 this is a new feature modeling tool for sw product line engineering made by cosdec. One approach to increasing software reusability is to develop a software productline spl, which is a software architecture that can be reconfigured and reused. Product line based software engineering is a paradigm that models the commonalities and variabilities of different applications of a given domain of interest within a unique framework and enhances.
Feature models are visually represented by means of feature diagrams. Extracting software product line feature models from. In terms of software engineering, a spl is a set of related software products that share a common core of software assets commonalities, but can be distinguished variabilities 29. 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. But i think the formulas should be written manually, for example, the cnf file can be. In this survey, we give an overview and a personal perspective on the roots of fosd, connections to other software development paradigms, and recent developments in this field. Features are used in productline engineering to specify and communicate.
Featureoriented software product lines concepts and. There are some languages which describe the constraints in feature model. Gears product line engineering tool and lifecycle framework. Software product lines challenge traditional analysis techniques, such as. A feature is a distinguishing characteristic of a product, usually visible to the customer or user of that product. Product management software can help you manage your products lifecycle from start to finish, including concept development, workflow planning, and communication between teams. This is the first of a twopart series of guests post about product line engineering ple from our friends at biglever software ple is the engineering of a product line portfolio using a shared set of engineering assets, a managed set of. 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. Configuring software product line feature models based on. Ebnfbased test case generation for software product line. Features in the fdd context, though, are not necessarily product features in the commonly understood sense. Although the term software product line engineering is becoming more widely known, there is still uncertainty among developers about how it would apply in their own development context. April 2012, congratulations to arnaud hubaux who successfully.
A software product line is a set of software intensive systems sharing a common, managed set of features that satisfy the specific. Citeseerx document details isaac councill, lee giles, pradeep teregowda. Featureoriented representations rely on a set of distinguishable characteristics, called features, to describe and discriminate the software products. Evolving feature model configurations in software product lines. Part 1 provided an introduction to featurebased product line engineering ple and the ple factory which is a foundational concept in the new ple iso standards under development, as well as the underpinning of biglevers ple approach. Because of the magnitude and complexity of the product line, build and maintain feature models are. Featureoriented software product lines guide books. Feature driven development fdd is an agile framework that, as its name suggests, organizes software development around making progress on features. The strategic and technical benefits delivered by ple are impacting the way companies build, deliver, evolve, and compete with their product lines.
Finally, part iii is devoted to advanced topics related to featureoriented product lines like refactoring, feature interaction, and analysis tools specific to product lines. Software product line testing based on feature model. Evolutionary searchbased test generation for software. Incose product line engineering international working group. Because of the magnitude and complexity of the product. In software development, a feature model is a compact representation of all the products of the software product line spl in terms of features. Abstract a software product line is a unified representation of a set of conceptually similar software systems that share many common features and satisfy the requirements of a particular domain. Guiding feature asset mining for software product line. Features, feature catalogue, feature models, and feature profiles. What this means precisely needsto be decided for each product line. In addition, we will assign or recommend supplementary readings with each chapter, which we will provide via blackboard. A featurebased ple factory is much like a typical manufacturing factory except that it operates on digital assets rather than physical parts. Biglevers industrystandard gears product line engineering tool and lifecycle framework provides the technology infrastructure for establishing your ple factory the underpinning of biglevers leadingedge featurebased ple approach. By associating each test case a priorityvalue representing or aggregating distinct criteria, such.
Softwareproductline engineering has gained considerable momentum in recent years, both in industry and in academia. Feature diagrams are widely used to model software product line spl variants. Assessing the maintainability of software product line. To establish the factory, your organization creates a superset supply chain of digital assets that can be shared across the entire product line. Part 1 provided an introduction to featurebased product line engineering ple and the ple factory which is a foundational concept in the new ple iso standards under development, as well as the underpinning of biglevers ple approach as a reminder, ple is an innovative engineering. Most customers wouldnt be willing to pay for the feature on its own but view it as a benefit of the product. From a feature diagram it is possible to derive products for the testing by selecting a set of features that satisfy all the constraints. Software product line feature model stack overflow. The role of feature modeling in software product line.
In software product line engineering, feature models fms represent the variability and commonality of a family of software products. Software product lines spls, or software product line development, refers to software. Software engineering institute defines a software product line as a set of softwareintensive systems that share a common, managed set of features. Software product line engineering has gained considerable momentum in recent years, both in industry and in academia. A feature in this sense is a characteristic of a system relevant for some stakeholder.
In contrast to oneoff development, spls are based on the idea that the distinct products of the family share a significant amount of assets. In addition, an appendix lists various helpful tools for software productline development, along with a description of how they relate to the topics covered in this book. International software product line conference colocated workshops. The goal of software product line engineering is the largescale strategic reuse of. Product line engineering ple is important because of remarkable efficiencies it has shown in the engineering process.
Part i provides a general introduction to featureoriented software product lines, describing the productline approach and introducing the productline development process with its two elements of domain and application engineering. The products are software systems built by composing the software assets that implement each feature. While the ideas and concepts of product lines are well suited for. Feature models symbolize a representation of the possible application configuration.
This article describes how this is done in practice, using the example of a product line of meteorological data systems. Software product line engineering with feature models. Feature modeling tool for software product line engineering. In addition, an appendix lists various helpful tools for software product line development, along with a description of how they relate to the topics covered in this book. This is a new feature modeling tool for sw product line engineering made by cosdec. An overview of featureoriented software development. Software product line development with feature modelling although the term software product line engineering is becoming more widely known, there is still uncertainty among developers about how it would apply in their own development context. An example is a capability that some products have but that others do not. A feature is a characteristic or enduservisible behavior of a software system. Feature interaction in software product line engineering. However, there is a lack of precisely defined formal notations for representing and verifying such models. Introduction software product line architectures promise significant benefits over traditional architectures such as shorter timetomarket, shorter and cheaper development cycles, and higher exploitation of the reuse potential at hand. It removes noise and clutter from the surface background and isolates features and defects that are recessed or embossed on parts highlighting surface defects such as chips, dents, wrinkles. Feature based systems and software product line engineering.
276 1283 605 204 223 327 1450 1322 977 251 99 262 19 844 1314 1486 366 1086 1206 314 2 1494 1430 1358 940 562 1462 1468 844 325 1227 808