1. SW Product line engineering
1
SW Product Line Engineering
-Keshav Kumar
Automotive SW Product line Architect
2. SW Product line engineering
2
Agenda
•Introduction
Definition, Need, Motivation
•Terminology
Mass customization, Platform, Application Engg
•Product Line Variability
Variability Methods, Ref Archi, Views,
Variant Handling
•Domain Engineering
•Application Engineering
•Benefits
3. SW Product line engineering - Definition
3
Development style of products - Changes with time
Individual and Standard software
Mass Customization- Large scale production of goods tailored
to
individual customer’s need
4. SW Product line engineering - Definition
SW Platform- A SW Platform is a set of SW subsystem and interfaces that
form a common structure from which a set of derivative products can be
efficiently developed and produced. -Meyer and Lehnerd 1997
4
1980-1991 – 35% increase in sales
5. SW Product line engineering - Definition
A software product line is a set of software-intensive
systems that share a common, managed set of
features satisfying 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.
5
- Software Engineering Institute | Carnegie Mellon
6. SW Product line engineering - Product Line
Variability
6
Current challenges-
Increasing number of features and functions
Reduce the amount of data
Mastering of Complexity
Variant Management
Maintainability - by Reuse and single source
Scalability - by intelligent data config methods
Complexity - by separation
Flexibility - by intelligent binding and configuration methods
7. SW Product line engineering - Product Line
Variability
7
Domain
Engineering
Should have good interaction
Application
Engineering
SW
Product
Build a robust platform
Cust-specific app
in a short time
8. SW Product line engineering - Product Line
Variability
8
Domain Engineering- Domain engineering is the process of
Software product line engineering in which the commonality and the
variability of the product line are defined and realized.
Application Engineering- Application engineering is the process
Of software product line engineering in which the applications of the
Product line are built by reusing domain artifacts and exploiting the
Product line variability.
10. SW Product line engineering - Product Line
Variability
10
Goals- Domain Engineering
Define the commonality and the variability of the SW product line.
Scope- Define the set of application the SW product line is planned for.
Define and construct reusable artifacts that accomplish the desired
variability
11. SW Product line engineering - Product Line
Variability
11
Goals- Application Engineering
High reuse- of Domain asset while defining/developing an app
Exploit- the commonality and variability of SW product line during app
development
Document- the app artifacts, i.e. app requirements, archi, components, and tests,
and relate them to the Domain artifacts
Bind the variability- according to the app needs from requirement over archi, to
components, and test cases
Estimation- The impacts of differences b/w app and domain requirements on
archi, components and tests
12. SW Product line engineering - Motivation
12
Reduction of Development Costs
Enhancement of Quality
Reduction of Time to Market
13. SW Product line engineering - Motivation
13
Approx. 3 Systems
(Software Engineering)
Up-Front
Investment
Break-Even
Point
Cost of development- Single Systems Vs Product line Engineering
14. SW Product line engineering - Motivation
14
Time to market- with and without Product line Engineering
15. SW Product line engineering - Steps
Creating the Platform
Preparing for mass customization
Commonality first, differences later
Introducing flexibility
Flexibility is the key
Variability
Sharing platforms b/w product lines
Reorganizing the Company
15