• No results found

Software Product Lines

N/A
N/A
Protected

Academic year: 2021

Share "Software Product Lines"

Copied!
34
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Product Lines

Software Product Line Engineering and Architectures

Bodo Igler and Burkhardt Renz

Institut für SoftwareArchitektur der Technischen Hochschule Mittelhessen

Sommersemester 2015

(2)

Questions:

How can you produce many different but related software products? (mass production)

How can you do this,

if you have to satisfy special customer requirements?

(customization)

if the products have to be cheap and good? (cost efficieny, quality)

if you have to react quickly to changing requirements? (time to market)

Answer: Adopt a Software Product Line Approach.

(3)

Introduction Examples Terminology Approach

Commonality and Variability Motivation

Commonality and Variability Analysis Features

Putting Things Together Architecture

The Big Picture Conclusion

(4)

Overview

Introduction Examples Terminology Approach

Commonality and Variability Motivation

Commonality and Variability Analysis Features

Putting Things Together Architecture

The Big Picture Conclusion

(5)

Example

Car Manufacturing Example

Integrated Development Environment

(6)

Product Lines

Mass Customization mass production customization

Platform

base of technologies

other technologies use this base

Product Line

Family of products which share common features (commonalities).

(7)

Software Product Lines

Software Platform

set of software subsystems and interfaces common structure

facilitates efficient development and production of derivative products

comprises several artifacts code

architecture requirements manuals test cases . . .

(8)

Software Product Line Engineering

Software Product Line

A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way.

–Paul Clements, Linda Northrop Software Product Line Engineering

develop family of software applications apply mass customization

use software platform

(9)

Overall Process

Software Product Line Engineering =

Domain Engineering

“produce the platform”

= requirements + design

+ implementation + test

+

Application Engineering

“produce a single product”

= requirements + design

+ implementation + test

(10)

Domain Engineering

Results

definition of commonality

“What is common to all products?”

definition of variability

“What is different? What is allowed to vary?”

“How does it vary? How is it allowed to vary?”

platform = reusable artifacts (domain artifacts, “skeleton”)

During Each Step

detail variability from previous step add – if necessary – internal variability

(11)

Application Engineering

Results

the product (application artifacts, “skeleton + flesh”) feedback to domain engineering

During Each Step

bind variability of each domain artifact

⇒ obtain application artifacts fill in templates

implement interfaces provide configuration files . . .

(12)

Overview

Introduction Examples Terminology Approach

Commonality and Variability Motivation

Commonality and Variability Analysis Features

Putting Things Together Architecture

The Big Picture Conclusion

(13)

Questions:

How do I find the appropriate commonalities?

How do I find the appropriate variability?

Answer: Commonality and Variability Analysis.

Question:

How do I document commonalities and variability?

Answer: Feature Model.

(14)

General Idea

Input

variants of one product = product family (Parnas 1976) Process

1 Commonality Analysis:

find commonalities categorize commonalities

2 Variability Analysis:

find special properties categorize special properties

Output

appropriate abstraction

(15)

Examples

Example

IDE Requirements Example

Database Frontend

(16)

Terminology

(Positive) Variability common degree of freedom Negative Variability

a degree of freedom is violated under certain circumstances External Variability

required by and/or visible to customer Internal Variability

neither required by nor visible to customer

(17)

Terminology

Variation Point

something that varies, a degree of freedom e.g. color, payment method

Variant

potential property of something that varies e.g. “red”, “green” or “credit card”, “cash”

Binding

fix a variation point by specifying/instantiating a (legal) variant Binding Time

e.g. design, coding, compilation, installation, run-time

(18)

Question:

Why doesn’t UML do the job?

Answer:

Standard UML shows one model.

We have to show all relevant variations.

Question:

What can do the job?

Answer:

Feature Model.

(19)

Features

Feature

“end-user visible characteristic of a system”

Composed Feature

composition of sub-features Atomic Feature

cannot be divided into sub-features

(20)

Feature Model Requirements

A Feature Model is

to represent all features

to represent the relationships between features to distinguish between commonality and variability to be independent of implementation technology

to be suitable during requirements engineering, design, code and test

(21)

Feature Model

A Feature Model comprises set of features

set of feature constraints, usually:

type of composition:

mandatory, optional, alternative, logical or any logical formula with features as atoms:

feature1∨ feature2→ feature3, . . .

(22)

Feature Diagram

Remark

there are different feature diagram types there is no standard available yet

feature diagrams can be connected to standard UML diagrams

Typical Approach diagram = tree feature = node relationship = edge

(23)

Example

Example

orthogonal variability model (Pohl, Böckle, van der Linden et al)

V

VP Intrusion Detection

VP Door Locks

Camera

Surveillance Motion

Sensors Cullet

Detection Basic Advanced Keypad Fingerprint

Scanner Security

Package VP

V V V V V V

requires_v_v requires_v_v

(24)

Overview

Introduction Examples Terminology Approach

Commonality and Variability Motivation

Commonality and Variability Analysis Features

Putting Things Together Architecture

The Big Picture Conclusion

(25)

Adapt Functionality I

Use the Template Method Pattern

platform = application framework + base classes/interfaces variation points = (abstract) methods of base

classes/interfaces

bind variation points = provide specific method implementations

binding time = compile-time

example: MFC document-view architecture

(26)

Adapt Functionality II

Use a Plug-In Architecture

platform = framework + basic plug-ins

variation points = extension points of basic plug-ins bind variation points = provide specific plug-ins binding time = run-time

example: Eclipse 3.x based on OSGi

(27)

Adapt Domain Model

Use a Domain Specific Language (DSL)

platform = machine which understands DSL variation points = potential of DSL

bind variation points = write specific DSL program binding time options

machine = interpreter machine = code generator

(28)

Software Product Line Dimensions

Composition Architecture Components System

Life Cycle

Development

Deployment Evolution

(29)

Software Product Line Dimensions

Views Business Architecture Process Organization

(30)

Advise

Key Success Factors Product Scoping Architectural Choice Level of Generalization

Communication between Domain and Application Engineering

(31)

What have we seen today?

Terminology

Software Product Line Commonality & Variability Feature Modelling

Examples

motivation for software product lines

commonality & variability analysis at different levels feature modelling for product lines

architecture hints for product lines

(32)

Related Concepts

Related Concepts

Software Architecture (OSGi, SOA, . . . ) Model Driven Engineering

Software Factories . . .

Challenges

holistic approach

manage variability in all artifacts find the right architecture . . .

(33)

Bibliography

Clements, Northrop:

Software Product Lines: Practices and Patterns Addison-Wesley 2002.

Pohl, Böckle, van der Linden:

Software Product Line Engineering Springer 2005.

Bosch:

Design & Use of Software Architectures Pearson 2000.

(34)

Bibliography

Czarnecki, Eisenecker:

Generative Programming Addison-Wesley 2000.

Greenfield, Short, Cook, Kent:

Software Factories Wiley 2004.

Kang, Cohen, Hess, Novak, Petersen:

Feature-Oriented Domain Analysis SEI, Carnegie-Mellon University 1990.

Parnas:

On the Design and Development of Program Families. in:

IEEE Transactions on Software Engineering, 2(1), 1976.

References

Related documents

By adapting the formulation of Maximum Entropy IRL, we are able learn hard constraints given demonstrations and a nominal reward function mo- tivating the demonstrated behavior.

Wally Bullington Correspondence: Lyle Dalzell, Eugene Henderson, Edgar Orman, Dale Smith, September 1966. Wally Bullington Correspondence: Art Haddox, Eugene

As part of Albertsons Library's response to user needs, the Library has dramatically increased the number of eBooks that are available to Boise State University faculty,

Prior to each ETDM screening event, FDOT and MPO representatives use the EST to input or update transportation project, environmental resource, and sociocultural or community

Since the VCC endorsed the Programme in June 2008 we have spoken with around 250 staff in face to face meetings; have made the leadership devel- opment proposal document available

The conclusions drawn fro m analysis of data tell that university enjoys suffic ient amount of admin istrative autonomy as it can set its future direct ion, appoint faculty and

I do weigh that there is no clear evidence that Mr Webley is owed holiday pay and that information was provided by Bish Automotive to attempt to establish

“ A new Integrated Operating Room will allow us to perform more minimally invasive procedures, increasing the efficiency and speed of the surgical process, which will allow