Software product lines are quite common in our daily lives, but before a product family can be successfully established, an. In this article we tackle this problem by describing the design and automated derivation of the product variants of a software product line using an easy to. One increasing trend in software development is the need to develop multiple, similar software products instead of just a single individual product. With splc 2005 we celebrated the formation of a new conference series, the international software product line conference splc which results from the uni. Unlike conventional software development paradigms that aim to develop single systems, sple considers the development of a family of software systems. Software engineering at oxford software product lines spl. Software product lines challenge traditional analysis techniques, such as. The software product line spl is an emerging methodology for developing software products. Software product line engineering has proven to be the methodology for higher quality, lower developing a diversity of software products and software intensive systems cost, and shorter at lower. 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. Software product line engineering consists of building a common platform for a set of products dedicated for a specific business domain. Systems and software product line engineering, abbreviated as product line engineering or ple for short, refers to the engineering of a portfolio of related products using a shared set of engineering assets and an efficient means of production. Extractive spl adoption applied into a small software company.
A software product line is a set of software reliant systems that share a common, managed set of features satisfying a particular market or mission area, and are built from a common set of core assets in a prescribed way. The reuse of the domain artifacts is constraint by the product line variability. Explore and search for over 24,000 3m products currently available in the united states by product category, industries or featured brands. Software and systems product line sspl engineering and management creates, exploits and manages a common platform to develop a family of products e.
This 2004 report presents the results of a study that focused on how product line organizations create products. In this context, we have identified in 45 two types of pl constraints that guide the product derivation process. Software product line process product line management this phase defines a scope, which tells what should and should not be part of the family domain engineering this phase establishes a reusable platform by defining a set of common and variable requirements for all elements in the family application product engineering a given product is derived from. Oct 01, 2012 software area editor david weiss discusses the benefits of using software product line engineering to produce software families. Software product line engineering sple is a software development paradigm. Modeldriven and software product line engineering wiley. A product consists of a product architecture, derived from the product line architecture, a set of selected and configured product line components and product specific code. Product line stakeholder preference elicitation via. Feature model fm and orthogonal variability model ovm are both modelling languages employed for this purpose. Systems and software product line engineering, abbreviated as product line engineering or ple for short, is defined as the engineering of a portfolio of related products using a shared set of engineering assets and an efficient means of production. Next years oop 25th 29th january, munich, germany has a 2 day track dedicated to this topic. Foundations, principles and techniquesseptember 2005.
Analyzing trends in software product lines evolution using. Software product line essentials july 2008 presentation linda m. Since our work is still workinprogress, this is not meant to be a comprehensive list. For software engineers, that means coming up with a software solution and being able to code it up properly. Software product families have already been proposed by parnas in 1976 1. Foundations, principles and techniques september 2005. Software product line engineering has gained considerable momentum in the recent years, both in industry and in academia. Software product lines, 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. Software product line engineering sple is a paradigm for producing a family of products that share more commonalities than variabilities. Aug 03, 2005 buy software product line engineering.
A framework for software product line practice, version 5. Variability modelling techniques have been developed to assist engineers in dealing with the complications of variability management. A software product line is a family of software products that share a common set of features. Figure 6 from feature model to orthogonal variability. Abstract in product line engineering individual products are derived from the domain artifacts of the product line. A standard software product line consists of a product line architecture, a set of software components and a set of products. Foundations, principles and techniques by klaus pohl 20050919. So there is evidently a difference between a software product and a platform and there is evidently a new definition of what we should consider a technology platform to be. Software product line a software product line spl is a set of software intensive systems that share a common, managed set of features satisfying the speci. 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. Many approaches to creating software product lines have emerged that are based on modeldriven engineering. We proposed to define them as object 15 software product line engineering with.
Variability management in software product line engineering. An industrial case study on managing variability with. While software engineering research neglected this pragmatic concept for years, it did take ground in practice. In software product line engineering, product management activities, in particular, product definition and certain aspects of portfolio management, are subsumed under the term product line. These new tools promise to help manufacturers deliver new products and variations on existing products more efficiently, with higher quality and faster time to market. Software product line spl engineering methodology assist to create a range of software products within. S model checking of domain artifacts in product line. Software product line engineering sple has proven to be the approach for developing a diversity of similar software products and software intensive systems at low costs, in.
Product engineering expedite software product development and time to market the technology landscape is ever changing and today organizations are looking to launch the next generation business solutions that leverage on some of the new developments like data analytics, machine learning and cloud. In order to successfully carry out software product line engineering, it is important to manage variability and explicit traceability management of. Product line engineering for systems and software is a way to engineer a portfolio of related products in an efficient manner, taking full advantage of the products similarities while respecting and managing their differences. Model checking of domain artifacts in product line engineering. Information free fulltext duplication detection when. Software product line engineering software product line engineering sple 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. If so, you are holding the right book in your hands. Software is built from a common architecture and a set of components using a product line approach, so that high quality individually tailored products can be built easily and predictably, using as few hardware resources as possible, thereby reducing overall development costs. Paradigm for product family 357 typically, from a set of features, many different software systems can be generated that share some common features and at the same time differ in others. Software product line engineering with feature models. The idea of product line engineering in software development comes from a similar approach that has been used in other industries. Software product line spl engineering refers to the engineering and management techniques to create, evolve, and sustain a software product line. 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. Product engineering inapp software services company since.
Software product lines represent perhaps the most exciting paradigm shift in software development since the advent of highlevel programming languages. Ple aims at the development of a set of reusable assets and the derivation of particular products as instances of the variants represented in the product line model. In software product line engineering, product management activities, in particular, product definition and certain aspects of portfolio management, are subsumed under the term product line scoping. This presentation introduces the concept of strategic, planned reuse and a new way of conducting ones software business. A software product line is a portfolio of similar software based systems and products produced from a shared set of software assets using a common means of production. Sple aims to support developers in managing the variability within sets of software product variants that. Product family engineering pfe, also known as product line 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. Product line engineeringpl engineering uses domaindriven, modelbased methodology for building software two complementary processes modeling domain engineering development applications engineering 33.
Product flexibility is the anthem of the software marketplace, and product lines fulfill the promise of tailormade systems built specifically for the needs of particular customers or customer groups. Software product line engineering has proven to be the methodology for. Documenting and managing the variability among products of a product line is an essential task in software product line engineering. In this book, pohl and his coauthors present a framework for software product line. A study of product production in software product lines march 2004 technical note gary chastek, patrick donohoe, john mcgregor. In software product line engineering a variety of products are generated within shorter time and cost 1. A software product line is a set of software products that share a common set of features. Ample 14, goaldriven product line engineering 16, and aournbased software product line 20 were selected based on the knowledge of authors on existing approaches on software product line requirements engineering. A feature model represents all the products of the software product line. Software area editor david weiss discusses the benefits of using software product line engineering to produce software families. Software product lines or system families provide a highly successful approach to strategic reuse of assets within an organization. May 30, 2008 a software product line is a set of software intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way 4. One increasing trend in software development is the need to develop multiple, similar software products instead of just a single individualproduct.
Qualityaware analysis in product line engineering with. Quality assurance in the presence of variability nasaads. The increasing complexity of large software intensive system development has lead to the adoption of software product line engineering sple. This is, among other things, reflected in the names of the two former conference series the so ware product line conference series, started in 2000 in the usa, and the product family engineering pfe workshop series, started in 1996 in europe which were merged in 2004 to form the leading software product line conference splc series.
A product consists of a product architecture, derived from the product line. A pl architecture is just one asset in the product line. Over the last few years, these trends have crystallized into an approach known as product line engineering ple for systems and software. A product line is a set of products that together address a particular market segment or fulfill a particular mission. Requirements engineering in feature oriented software product. What is the role of domain engineering and application engineering in a software product line. A study of product production in software product lines. Whats the difference between a software product and a. Software product lines come in many different forms. As a result, it has gained increasing global attention since 1990s. An industrial case study on managing variability with traceability in software product lines. Software product line engineering is a paradigm to develop software applications software intensive systems and software products using platforms and mass customisation pohl et. An introductory textbook on this topic is by pohl et al.
In domain engineering, the common software artefacts are designed and. Software product lines challenge traditional analysis techniques, such as type checking, model. Software product line engineering has proven to be the methodology for higher quality, lower developing a diversity of software products and software intensive systems cost, and shorter at lower costs, in shorter time, and with higher quality. Software product line engineering sple is a reusedriven development paradigm that has been applied successfully in information system engineering and other domains. It takes a certain maturity in the developing organization to successfully field a product line. Software and systems product line sspl engineering and management creates, exploits, and manages a common platform to develop a family of products e. Software product line engineering and evolution software product line engineering sple is of interest to any company that develops a line of software products or services that are similar, but also customized for specific customers or market segments. By using the software product line spl paradigm, customers get products adapted to their needs and wishes at. Producing a set of related products as a product line has allowed organizations to achieve increased.
Nowhere else in software engineering have we seen such breathtaking improvements in cost, quality, time to market, and developer productivity, often registering in the orderofmagnitude range. Citeseerx document details isaac councill, lee giles, pradeep teregowda. Many companies organized their software development in a. 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 has been. 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. Reusing components across multiple configurators ceur. There are annual conferences dealing with product line engineering, e. Everyday low prices and free delivery on eligible orders.
After the derivation of specific applications from a software product line, the applications keep evolving with respect to new customers requirements. Software product line engineering has gained considerable momentum in recent years, both in industry and in academia. The spl consists of 5 product line architecture pla reusable components. Quality assurance of the reusable artifacts of the product line e. Evolution and process on deepdyve, the largest online rental service for scholarly research with thousands of academic publications available at your fingertips. Foundations, principles and techniques by klaus pohl 20050919 on. Instead of developing each software product individually, software product line engineering sple promotes a preplanned software reuse by building and managing a family of software products that are developed in the same domain aka. Carnegie mellon software engineering institute defines a software product line as a set of software intensive systems. Foundations, principles and techniques 05dec2005 by klaus pohl, gunter bockle, frank j.
Software product line engineering ple is the discipline of creating and managing software product lines. Product line engineering for automation software systems. However, the use of this means of communication has shown its. Nov 29, 2009 product line engineering is getting more and more mainstream. Speakers include jan bosch, who i am quite sure, will give an entertaining talk on this views related to 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. This paradigm usually consists of two development processes, namely. Since domain artifacts are reused in several products, product line engineering benefits from the verification. Half of engineering is making sure youre building the right product and have the ability to actually build it. In a software product line, we always have two types of requirements. In some cases, the architecture of the product line is used by all products without being adapted, whereas in. In general, evolutions in most industrial projects are expressed using natural language, because it is the easiest and the most flexible way for customers to express their needs. Software product line engineering is a paradigm to develop software product lines and as such supports reuse, productivity and quality of the systems. Software product line engineering sple has proven to be the approach for developing a diversity of similar software products and software intensive systems at low costs, in short time, and.
Software product line spl 1 or more similar variant assets derived from common base assets 5 family of systems e4 share some common features have some variable features constitute the variants. The principal goal of modelling variability techniques is to configure a. A software product line is a set of software intensive systems that share a common, managed set of features satisfying the specific. International workshop on requirements engineering for.
Software product line engineering are you interested in producing software products or software intensive systems at lower costs, in shorter time, and with higher quality. Recovering software product line architecture of a family. The main advantage of software product line engineering is the improvement of the productivity. Its a variant on eat your own dog food and its timely these days. Companies may also utilize a softwareproduct line engineering.
596 878 1096 988 622 918 170 859 1510 1484 34 933 1225 900 635 1416 1189 1260 1332 660 773 1545 1406 553 1095 459 1250 362 490 494 355 1467 539 332 895