Software Product Families: Maturity and Variability

Jan Bosch Visiting Professor, University of Alberta, Edmonton Professor of Software Engineering University of Groningen, Netherlands Jan.Bosch@cs.rug.nl http://www.cs.rug.nl/~bosch iCORE presentation, November 2003

oftware engineering

Overview
• introduction
– technology innovation – software engineering – software product families

oftware engineering

• software variability management • maturity model • conclusion

Software Product Families: Maturity and Variability

2

Software Engineering group
Senior members • prof. dr. ir. Jan Bosch • dr. Jos Nijhuis (APr) • dr. Rein Smedinga (APr) Post-docs • dr. Theo Dirk Meijler • dr. Jilles van Gurp • dr. Lisette Bakalis Ph.D. students • Michel Jaring (2004) • Eelke Folmer (2005) • Sybren Deelstra (2006)
• Marco Sinnema (2006) • Anton Jansen (2006)

oftware engineering

• Fernando Erazo (2007) • Ivor Bosloper (2007) • Johanneke Siljee (2007) Industrial Ph.D. students • Rob van Ommering (Philips Research) • Jan Gerben Wijnstra (Philips Research) • Alessandro Maccari (Nokia Research/Mobile Phones) • Ernst Kesseler (Dutch Aerospace Laboratory) • Sylvia Stuurman (Open Universiteit) • Emil Petkov (UK)
3

Software Product Families: Maturity and Variability

Current Research Topics
usability EU project STATUS
architecture assessment

fo cu

modifiability assessment

modeling design decisions explicitly feature-based architectural centric system construction design erosion
explicit architecture information

s software
variability management EU project CONIPF evaluation/ maturity models
software variability management
4

architecture

oftware engineering

software product families

Software Product Families: Maturity and Variability

Industrial Partners • Ericsson Software Technology • Althin Medical • Axis Communications • Symbian (earlier Ericsson Mobile) • EC-Gruppen • Securitas Larm • Ericsson Software Architecture Research Lab • Nokia • CombiTech Software • Vertis Information Technology • Rohill Technologies • Philips Research. Medical/ Consumer Electronics/ Digital Systems Lab • Baan • Thales Naval Netherlands • Robert Bosch GmbH • Information Highway Group • LogicDIS 5 oftware engineering Software Product Families: Maturity and Variability .

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 • software engineering for web-based applications • software processes for small organizations • software reverse engineering. re-engineering and reuse Software Product Families: Maturity and Variability oftware engineering 6 .

Innovation Adoption technology maturity* years *maturity = 50 million users in the US 38 years 25 years oftware engineering 13 years 10 years 5 years technologies radio phone TV cable internet 7 Software Product Families: Maturity and Variability .

McGraw-Hill oftware engineering Time Software Product Families: Maturity and Variability 8 . Oliver. Richard W.Where are we going? How fast? Economic value added 50 years Bioterial age 20 years Information age Industrial age 360 years Agrarian age 6000 BC 1760 Source: “The Coming Biotech Age”.

Complexity Kbytes ROM 10000 1000 100 10 1 1985 1990 1995 2000 Moore's Law TV VCR oftware engineering Software Product Families: Maturity and Variability 9 .

Innovation: Tactics • follower: watch trends and react accordingly (reactive) • shaper: create the technology underlying new trends (proactive) oftware engineering Software Product Families: Maturity and Variability 10 .

Trend: software size person years per product software needs in products constantly increasing 1000 Philips 10000 oftware engineering 100 1000 10 1990 1995 2000 2005 Software Product Families: Maturity and Variability typical number of errors per product 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 – Securitas Larm AB – fire alarm systems – business process reengineering and corporate information systems oftware engineering 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 • design decisions are delayed as long as economically feasible oftware engineering 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 GSM 900/1900 GSM 900/1800/1900 Software Product Families: Maturity and Variability oftware engineering 15 .

BPM @ Intershop oftware engineering Software Product Families: Maturity and Variability 16 .

product 1 product 2 product n 17 Software Product Families: Maturity and Variability ..Software Product Families product-family architecture component set external internal oftware engineering ..

Trend: Variability software parts (SW) oftware engineering variability electronic parts (HW) standardization (flexibility of SW) (economies of scal mechanical parts Software Product Families: Maturity and Variability 18 .

Trend: Variability marketing req. SW product development customer oftware engineering post fielding upgrade license key driven con 3rd part software Software Product Families: Maturity and Variability 19 .

expressed through feature models • software variability is expressed through variation points and associated variants • variation points delay design decisions Software Product Families: Maturity and Variability oftware engineering 20 . changed. e.g. customized or configured for use in a particular context • software variability reflects problem domain variation.Variability • software variability is the ability of a software system or artefact to be extended.

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 oftware engineering times – 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 .

g.Trend: Later Binding trend is towards later binding and increased automation multi-dimensional composition of concerns (e. AOP) feature selection & ciomposition T C F T C F testing T C F oftware engineering architectural configuration T C F requirements architecture engineering design detailed design implementation producer-site installation-site configuration configuration start-up run-time legend T traditional C current F future Software Product Families: Maturity and Variability 22 .

Software Challenge increasing SW size per product develop fewer products increasing variability requirements 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 Nokia Robert Bosch GmbH Thales Naval Netherlands Software Product Families: Maturity and Variability oftware engineering 24 .

Proceedings SPLC2. Artefacts and Organization. August 2002 and Frank van der Linden. 2003. Maturity and Evolution in Software Product Lines: Approaches.Maturity Model . submitted. Software Product Families: Maturity and Variability oftware engineering 25 . Jan Bosch.Four dimensions • • • • FOCUS Business Architecture Process Organization Based on J. A Maturity Framework for Software Product Families Evaluation. Bosch.

Business • Reactive – – – – – – – – Identity: implicit Vision: short term (just cash flow) Objectives: missing Strategic planning: missing Identity: available Vision: short to medium term Objectives: partially and qualitative Strategic planning: ad hoc process • Awareness oftware engineering Software Product Families: Maturity and Variability 26 .

Business • Extrapolate – – – – – – – – Identity: identified Vision: medium term Objectives: qualitative Strategic planning: ad hoc process Identity: communicated Vision: medium to long term Objectives: partially quantitative Strategic planning: defined process Software Product Families: Maturity and Variability oftware engineering • Proactive 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 population software product line program of product lines configurable product base oftware engineering Software Product Families: Maturity and Variability 29 .

Architectural “Maturity” Levels software product line oftware engineering program of configurable product populations software product lines product increase product sizeincrease PL scopedecrease derivatio (hierarchical SPLs) cost Nokia telecom switches Philips consumer electronics Software Product Families: Maturity and Variability Telelarm 30 .

there is no institutionalized reuse • Domain: emerging • Software variability management: absent • Example: most SMEs and several large companies Software Product Families: Maturity and Variability oftware engineering 31 .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.

Standardized Infrastructure • description – – – – operating system database GUI etc. oftware engineering some additional proprietary glue code might be present P Software Product Families: Maturity and Variability D 32 .

for the remaining qualities an overengineering approach is used • Reuse level: only external components • Domain: later phases of emerging or the early phases of maturing domain • Software variability management: limited variation points from the infrastructure components • Example: Vertis Information Technology Software Product Families: Maturity and Variability oftware engineering 33 .Standardized Infrastructure • Product family architecture: specified external components • Product quality: infrastructure supports certain qualities.

Platform • description: – functionality common to all products in the product line is captured – infrastructure is typically also included oftware engineering P Software Product Families: Maturity and Variability D 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 • Domain: mature • Software variability management: managed at platform level • Example: Symbian OS Software Product Families: Maturity and Variability oftware engineering 35 .

Software Product Family • description: domain assets capture functionality common to several or most products product family architecture component set external oftware engineering internal .. product 1 P product 2 product n 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 them • Example: Axis Communications AB • • • • oftware engineering Software Product Families: Maturity and Variability 37 .

Configurable Product (Base) marketing req. SW product development customer oftware engineering A post fielding upgrade license key driven co 3rd part software 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 selection and verification of variants at variation points has been optimized • Example: TeleLarm AB oftware engineering Software Product Families: Maturity and Variability 39 .

Two Dimensions of “Maturity” domain maturity (stability) high medium low IP/SI low medium PL example SI/PL high organizational maturity 40 CPB oftware engineering Software Product Families: Maturity and Variability .

comp link inst.Variation Binding Times CPB SPL PL SI oftware engineering RE AD CD impl. start run 41 Software Product Families: Maturity and Variability .

oftware engineering Software Product Families: Maturity and Variability 42 .Process Maturity • We follow CMMI (staged representation) • Aspects : – Predictability: How predictable is software development at each level. – Quantifiability: How quantifiable is software development. – Repeatability: How repeatable is the development process at each level.

CMMI Levels • • • • • Level Level Level Level Level 1: 2: 3: 4: 5: Initial Managed Defined Quantitatively Managed Optimizing oftware engineering Software Product Families: Maturity and Variability 43 .

Organizational Models Aspects • Geographic distribution • Culture • Roles & Responsibilities • Product life cycle Models • Unit oriented • Business lines oriented • Business group/division • Inter-division/companies • Open business Software Product Families: Maturity and Variability oftware engineering 44 .

Hierarchical Product Families product populations infrastructure component infrastructure component infrastructure component organization scope 1 shared artefacts shared artefacts shared artefacts scope 1.2 scope 1.1.1 Software Product Families: Maturity and Variability 45 .1 PA PB PC production-site configuration P P oftware engineering installation-time configuration CPX run-time configuration CPY CPZ RT P RT P scope 1.

Sybren and Marco Application Generation Configuration Selection Base Configuration Reference Configuration Old Configuration Requirements Engineering Model Element Selection Code Generation (Re)Derive Architecture Process step (without adaptation) Process step with adaptation Initial Phase Iteration Phase Legend Scope of reuse Amount of effort Engineering Domain Engineering Standardized Infrastructure Platform Software Software Product Product Families: Maturity and Variability Line Configurable Product Family 46 . Marco and Anton Jansen • SVM in product derivation – Sybren and Marco • assessment and evolution of variability– Sybren • case studies – Jilles.(Re)Set Parameters Assembly SVM Research in Groningen Architecture Derivation Component Selection Parameter Settings Validation Ready (Re)Select Components Construction oftware engineering • conceptual framework – Jilles van Gurp. Sybren Deelstra. Marco Sinnema. Theo Dirk Meijler • visualizing variability and variability dependencies – Michel Jaring • explicit modelling of variation points and architectural design decisions – Sybren. Michel.

invited seminar at Intuit – LINC Project and new SoftFab initiative Software Product Families: Maturity and Variability oftware engineering 47 .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 – summer school ended with an industry day (several companies present) – tomorrow.

Conclusion • introduction – technology innovation – software engineering – software product families oftware engineering • software variability management • evaluation and maturity model • conclusion Software Product Families: Maturity and Variability 48 .

oftware engineering Software Product Families: Maturity and Variability 49 .