You are on page 1of 49

Software Product Families:

Maturity and Variability

Jan Bosch
Visiting Professor, University of Alberta, Edmonton
oftware engineering

Professor of Software Engineering


University of Groningen, Netherlands
Jan.Bosch@cs.rug.nl
http://www.cs.rug.nl/~bosch

iCORE presentation, November 2003


Overview
• introduction
– technology innovation
– software engineering
– software product families
• software variability management
oftware engineering

• maturity model
• conclusion

Software Product Families: Maturity and Variability 2


Software Engineering group
Senior members • Fernando Erazo (2007)
• prof. dr. ir. Jan Bosch • Ivor Bosloper (2007)
• dr. Jos Nijhuis (APr) • Johanneke Siljee (2007)
• dr. Rein Smedinga (APr) Industrial Ph.D. students
• Rob van Ommering
Post-docs (Philips Research)
• dr. Theo Dirk Meijler • Jan Gerben Wijnstra
• dr. Jilles van Gurp (Philips Research)
• dr. Lisette Bakalis • Alessandro Maccari
Ph.D. students (Nokia Research/Mobile
oftware engineering

Phones)
• Michel Jaring (2004) • Ernst Kesseler (Dutch
• Eelke Folmer (2005) Aerospace Laboratory)
• Sybren Deelstra (2006) • Sylvia Stuurman
• Marco Sinnema (2006) (Open Universiteit)
• Anton Jansen (2006) • Emil Petkov (UK)

Software Product Families: Maturity and Variability 3


Current Research Topics
architecture assessment
usability modifiability
EU project STATUS
fo assessment
cu
s software
modeling design architecture variability
decisions explicitly management
EU project CONIPF
feature-based
architectural centric
oftware engineering

system construction evaluation/


maturity
design erosion
software
models
product
explicit architecture families software variability
information management
Software Product Families: Maturity and Variability 4
Industrial Partners
• Ericsson Software • Vertis Information
Technology Technology
• Althin Medical • Rohill Technologies
• Axis Communications • Philips Research,
• Symbian (earlier Ericsson Medical/
Mobile) Consumer Electronics/
• EC-Gruppen Digital Systems Lab
• Securitas Larm • Baan
• Ericsson Software
Architecture Research • Thales Naval
Netherlands
oftware engineering

Lab
• Nokia • Robert Bosch GmbH
• CombiTech Software • Information Highway
Group
• LogicDIS

Software Product Families: Maturity and Variability 5


Software Engineering Research Lab at
University of Alberta
senior group members
• Paul Sorenson
• Jim Hoover
• Eleni Stroulia
• Ken Wong
• 20+ graduate students
research topics
• application frameworks, including software product
families
oftware engineering

• software engineering for web-based applications


• software processes for small organizations
• software reverse engineering, re-engineering and
reuse

Software Product Families: Maturity and Variability 6


Innovation Adoption
*maturity = 50 million users in the US
technology maturity*
years 38 years

25 years

13 years
oftware engineering

10 years
5 years
technologies

radio phone TV cable internet

Software Product Families: Maturity and Variability 7


Where are we going? Bioterial age
20 years
How fast?
Economic value added

Information age
50 years

Industrial age
360 years

Agrarian age
oftware engineering

Source: “The Coming Biotech Age”, Richard W. Oliver- McGraw-Hill


6000 BC 1760
Time

Software Product Families: Maturity and Variability 8


Complexity
Kbytes ROM
10000
Moore's Law
1000 TV
100 VCR

10
oftware engineering

1
1985 1990 1995 2000

Software Product Families: Maturity and Variability 9


Innovation: Tactics
• follower: watch
trends and react
accordingly
(reactive)
• shaper: create the
technology
underlying new
oftware engineering

trends (proactive)

Software Product Families: Maturity and Variability 10


Trend: software size

software needs in products constantly increasing


person years per product

typical number of errors


1000 Philips 10000

per product
100
oftware engineering

1000

10

1990 1995 2000 2005


Software Product Families: Maturity and Variability 11
Role of software
• software constantly increasing in ‘size’ and
complexity
• software defines the competitive edge
• software innovation is the core of
company innovation
• examples
oftware engineering

– Securitas Larm AB – fire alarm systems


– business process reengineering and corporate
information systems

Software Product Families: Maturity and Variability 12


Trend: Variability

Variability needs in software are


constantly increasing
because
• variability moves from mechanics and
hardware to software
oftware engineering

• design decisions are delayed as long


as economically feasible

Software Product Families: Maturity and Variability 13


Examples
• car engine controllers
• steer by wire
• telecom switches
• Transmeta’s Crusoe chip
oftware engineering

Software Product Families: Maturity and Variability 14


Mobile Phones

GSM 900
GSM 1900

GSM 900/1800
oftware engineering

GSM 900/1900

GSM 900/1800/1900

Software Product Families: Maturity and Variability 15


BPM @ Intershop
oftware engineering

Software Product Families: Maturity and Variability 16


Software Product Families

product-family component set


architecture

external

internal
oftware engineering

...

product 1 product 2 product n

Software Product Families: Maturity and Variability 17


Trend: Variability

software parts (SW)

variability electronic parts (HW) standardization


(flexibility of SW) (economies of scal
oftware engineering

mechanical parts

Software Product Families: Maturity and Variability 18


Trend: Variability

marketing development customer

req.

SW
oftware engineering

product
post fielding upgrade
license key driven con
3rd part software

Software Product Families: Maturity and Variability 19


Variability
• software variability is the ability of a
software system or artefact to be
extended, changed, customized or
configured for use in a particular context
• software variability reflects problem
domain variation, e.g. expressed through
feature models
oftware engineering

• software variability is expressed through


variation points and associated variants
• variation points delay design decisions

Software Product Families: Maturity and Variability 20


Variation Points
• variation point in the lifecycle
– implicit – implicitly present in system
– designed – delayed design decision lead to VP
– bound – variation has been connected to VP
• rebindable – variant can be bound to different variants
• permanent – variant has been bound permanently
times
oftware engineering

– open – possible to add new variants to set


– closed – set of variants is closed
• can be introduced and bound at any level

Software Product Families: Maturity and Variability 21


Trend: Later Binding

trend is towards later binding and


increased automation
multi-dimensional
composition of concerns T C F
(e.g. AOP)

feature selection &


T C F
ciomposition

testing T C F
oftware engineering

architectural
T C F
configuration

requirements architecture detailed producer-site installation-site


implementation start-up run-time
engineering design design configuration configuration

legend T traditional C current F future

Software Product Families: Maturity and Variability 22


Software Challenge

increasing SW size increasing variability


per product requirements

develop fewer products develop more products


oftware engineering

Software Product Families

Software Product Families: Maturity and Variability 23


Why Software Product Families?
• decrease development effort
• decrease time-to-market
• increase quality
• increase the number of products offered
• examples
– Philips
oftware engineering

– Nokia
– Robert Bosch GmbH
– Thales Naval Netherlands

Software Product Families: Maturity and Variability 24


Maturity Model - Four dimensions
FOCUS
• Business
• Architecture
• Process
• Organization

Based on J. Bosch, Maturity and Evolution in


Software Product Lines: Approaches, Artefacts and
oftware engineering

Organization, Proceedings SPLC2, August 2002


and
Frank van der Linden, Jan Bosch, A Maturity
Framework for Software Product Families
Evaluation, submitted, 2003.

Software Product Families: Maturity and Variability 25


Business
• Reactive
– Identity: implicit
– Vision: short term (just cash flow)
– Objectives: missing
– Strategic planning: missing
• Awareness
– Identity: available
oftware engineering

– Vision: short to medium term


– Objectives: partially and qualitative
– Strategic planning: ad hoc process

Software Product Families: Maturity and Variability 26


Business
• Extrapolate
– Identity: identified
– Vision: medium term
– Objectives: qualitative
– Strategic planning: ad hoc process
• Proactive
oftware engineering

– Identity: communicated
– Vision: medium to long term
– Objectives: partially quantitative
– Strategic planning: defined process

Software Product Families: Maturity and Variability 27


Business
• Strategic
– Identity: managed
– Vision: long term
– Objectives: quantitative
– Strategic planning: institutionalized
process
oftware engineering

Software Product Families: Maturity and Variability 28


Architectural “Maturity” Levels
independent
products

standardized
infrastructure

platform

product
oftware engineering

population
software
product
line
program of
product lines

configurable
product base

Software Product Families: Maturity and Variability 29


Architectural “Maturity” Levels

software product line

program of configurable
product populations
software product lines product
oftware engineering

increase product sizeincrease PL scopedecrease derivatio


(hierarchical SPLs) cost
Nokia telecom switches
Philips consumer Telelarm
electronics
Software Product Families: Maturity and Variability 30
Independent Products
• Product family architecture: not established
• Product quality: ignored or managed in an
ad-hoc fashion
• Reuse level: Although ad-hoc reuse may
occur, there is no institutionalized reuse
• Domain: emerging
oftware engineering

• Software variability management: absent


• Example: most SMEs and several large
companies

Software Product Families: Maturity and Variability 31


Standardized Infrastructure
• description
– operating system
– database
– GUI
– etc.
oftware engineering

some additional proprietary glue code


might be present
P D

Software Product Families: Maturity and Variability 32


Standardized Infrastructure
• Product family architecture: specified external
components
• Product quality: infrastructure supports certain
qualities, for the remaining qualities an over-
engineering approach is used
• Reuse level: only external components
• Domain: later phases of emerging or the early
oftware engineering

phases of maturing domain


• Software variability management: limited variation
points from the infrastructure components
• Example: Vertis Information Technology

Software Product Families: Maturity and Variability 33


Platform
• description:
– functionality common to all products in
the product line is captured
– infrastructure is typically also included
oftware engineering

P D

Software Product Families: Maturity and Variability 34


Platform
• Product family architecture: only the
features common to all products are
captured
• Product quality: inherited from the
platform
• Reuse level: reuse of internal platform
components
oftware engineering

• Domain: mature
• Software variability management: managed
at platform level
• Example: Symbian OS
Software Product Families: Maturity and Variability 35
Software Product Family
• description: domain assets capture
functionality common to several or
most products
product family component set
architecture
external

internal
oftware engineering

...

product 1 product 2 product n


P D

Software Product Families: Maturity and Variability 36


Software Product Family
• Product family architecture: fully specified
• Product quality: a key priority for development
• Reuse level: managed
• Domain: late stages of maturing or the early
stages of the established phase
• Software variability management: many
variation points and dependencies between
oftware engineering

them
• Example: Axis Communications AB

Software Product Families: Maturity and Variability 37


Configurable Product (Base)

marketing development customer

req.

SW

product
oftware engineering

post fielding upgrade


license key driven co
3rd part software
A D

Software Product Families: Maturity and Variability 38


Configurable Product (Base)
• Product family architecture: enforced
• Product quality: quality attributes are
implemented as variation points in the
architecture and components
• Reuse level: automatic generation of product
family members
• Domain: established
• Software variability management: automated
oftware engineering

selection and verification of variants at


variation points has been optimized
• Example: TeleLarm AB

Software Product Families: Maturity and Variability 39


Two Dimensions of “Maturity”

domain maturity
(stability)

high PL CPB

medium example
oftware engineering

low IP/SI SI/PL


organizational
low medium high maturity

Software Product Families: Maturity and Variability 40


Variation Binding Times

CPB

SPL

PL
oftware engineering

SI

RE AD CD impl. comp link inst. start run

Software Product Families: Maturity and Variability 41


Process Maturity
• We follow CMMI (staged representation)
• Aspects :
– Predictability: How predictable is software
development at each level.
– Repeatability: How repeatable is the
development process at each level.
oftware engineering

– Quantifiability: How quantifiable is software


development.

Software Product Families: Maturity and Variability 42


CMMI Levels
• Level 1: Initial
• Level 2: Managed
• Level 3: Defined
• Level 4: Quantitatively Managed
• Level 5: Optimizing
oftware engineering

Software Product Families: Maturity and Variability 43


Organizational Models
Aspects
• Geographic distribution
• Culture
• Roles & Responsibilities
• Product life cycle
Models
• Unit oriented
oftware engineering

• Business lines oriented


• Business group/division
• Inter-division/companies
• Open business
Software Product Families: Maturity and Variability 44
Hierarchical Product Families

product populations
infrastructure infrastructure infrastructure
component component component

organization

scope 1
shared
artefacts

scope 1.1 scope 1.2


shared shared
artefacts artefacts

PA PB PC P P

production-site
configuration
oftware engineering

installation-time
configuration

CPX CPY CPZ

run-time
configuration

RT P RT P
scope 1.1.1

Software Product Families: Maturity and Variability 45


(Re)Set
Parameters

Assembly

SVM Research in Groningen Architecture


Derivation
Component
Selection

Construction
Parameter
Settings
Validation Ready
(Re)Select
Components

(Re)Derive
Requirements Model Architecture
Code
Engineering Element
Generation
Selection

• conceptual framework – Jilles van Gurp, Sybren Generation


Process step
(without adaptation)

Deelstra, Marco Sinnema, Theo Dirk Meijler Configuration Selection

Base Configuration
Process step
with adaptation

• visualizing variability and variability Initial Phase


Reference Configuration

Iteration Phase

dependencies – Michel Jaring


Old Configuration

Legend

• explicit modelling of variation points and


architectural design decisions – Sybren, Marco and
Anton Jansen
oftware engineering

• SVM in product derivation – Sybren and Marco


• assessment and evolution of variability– Sybren
Scope of reuse

• case studies – Jilles, Michel, Sybren and Marco


Application
Amount Engineering
of
effort Domain
Engineering

Standardized Platform
Software Software
Product Product Maturity and Variability
Families: Configurable
Infrastructure Line Product Family
46
Results of Visit
• research
– joint article submitted
– jointly writing a book
– return visits scheduled
• education
– software variability management summer school
– joint software engineering project course
(distributed development)
• industry
oftware engineering

– summer school ended with an industry day (several


companies present)
– tomorrow, invited seminar at Intuit
– LINC Project and new SoftFab initiative

Software Product Families: Maturity and Variability 47


Conclusion
• introduction
– technology innovation
– software engineering
– software product families
• software variability management
oftware engineering

• evaluation and maturity model


• conclusion

Software Product Families: Maturity and Variability 48


oftware engineering

Software Product Families: Maturity and Variability 49