Variant Management for Software-intensive System Families Dr. Martin Becker http://vm.iese.fraunhofer.de

1

© Fraunhofer IESE September 2, 2014 Copyright © 2014 by Fraunhofer IESE. Published and used by The SSSE and INCOSE with permission. Context

Engineering of variant-rich software / system families

2

© Fraunhofer IESE Fraunhofer IESE – Facts & Figures

Founded in 1996 One of the leading institutes in software engineering in Europe and worldwide 200 employees Six application-oriented business fields Product Sector Service Sector Itzehoe Rostock

Bremen

Hannover Special departments for all phases of the lifecycle Berlin Braunschweig Golm Teltow of software-based products Oberhausen Magdeburg Cottbus Dortmund Duisburg Schmallenberg Schkopau Dresden Aachen St. Augustin Euskirchen Ilmenau Chemnitz

Darmstadt Würzburg Kaiserslautern St. Ingbert Erlangen Nürnberg Saarbrücken Pfinztal Freising München Freiburg Holzkirchen Efringen-Kirchen

3

© Fraunhofer IESE Variation Management Improvement

Tool-based Analysis of Artifacts

Characterize & Understand Assessment of VM practices

Scoping Workshop Plan Domain Analysis & Modelling

Systematic Do Support for VM Tool Adoption Improvement

VM in Artefacts Variation Management Variation

Evolve Configuration Management

Change Management

4

© Fraunhofer IESE Exercise Discussion

 Please introduce yourself  What is your background?  What systems are you dealing with?  Complexities in your context:  System size  Organization (Distributed development,…)  State your expectations

5 5

© Fraunhofer IESE Agenda

Motivation

Strategic Variant Management of Software-intensive Systems

Adoption Patterns and Experiences

Open Issues

Summary

6

© Fraunhofer IESE Challenge: Increasing Customization Demands

 Customers request specialized products adapted to their needs  Different system configurations  Different behavior  Different system interfaces  Different look and feel

7

© Fraunhofer IESE Challenge: Complexity Increase in Software-intensive Systems

Function Complexity Product Portfolio Complexity Network Complexity

t t t

Overall Complexity

Software can be changed easily / lately / fast Software

Overall t Overall complexity increases exponentially 8 [source: adapted from Univ. of St. Gallen]

© Fraunhofer IESE Industrial Trend: Front-Loading  MB-SE

9

[source: CESAR Book, Springer] © Fraunhofer IESE Challenge: Speed Of Development

 Cycle time reduction outperforms efficiency improvements

Cycle time

“If you are not moving at the speed of the marketplace you’re already dead – you just haven’t stopped breathing yet.” Jack Welch

t 10

© Fraunhofer IESE Challenge: Integrated Lifecycle and Variant Management

Space (Variants) m Pn-1,m Pn,m

m-1 Pn-1,m-1 Pn,m-1 ...... Variability 3 P2,3 ... Pn-1,3 Pn,3

2 P1,2 P2,2 ... Pn-1,2 Pn,2

1 P1,1 P2,1 ... Pn-1,1 Pn,1

Time T T T T 1 2 ... n-1 n (Versions) Evolvability

11

© Fraunhofer IESE Model- based/driven Development

2.000 customized Runtime variants per year adaptation

Surviving >1.000 variable the >10.000 variable features Variant parameters >10.000 variation points Jungle

variable shorter binding release cycles time

ISO 26262 12

© Fraunhofer IESE Agenda

Motivation

Strategic Variant Management of Software-intensive Systems

Adoption Patterns and Experiences

Open Issues

Summary

13

© Fraunhofer IESE Clone-and-Own Approach has Limitations Based on our industry survey

cloning custom adaptations no strategic reuse

parallel maintenance

time

CLONING REASONS CONSEQUENCES

. Unexpected“When a new requestcustomer forcame, a wesimilarneeded product . Short-term:“It is easier to start with something. . Littleto availabledecide how developmentto implement resourceshis . .+ CloningEffort givessavings[us] an initial basis.” requirements in the fastest way. We do “It saves time. These components were . Time,not have efforttime to think thoroughly about . .+ Quickalready deliveryused, tested, ofclosed the new. A kind productof . Missinggeneric focusapproaches on reuse.” an off-the-shelf software.” . Unknown future: reuse need not predictable . Long-term: “We need to perform many activities several . Deliberate“At the beginning decision:we did independencenot know that we from . .– High maintenance effort will have to support all the controllers that times: for each variant, we have to check the otherwe support projectsnow – this emerged over time.” . .–codeRepetitiveand implement maintenancethe change or tasksfix.” “(…) code that we cloned looses 14 connection with the product which it is “It gives freedom to change, [when cloned from, and then there is no © Fraunhofer IESEcloning] there is no damage to existing sharing of new insights and products.” innovations.” Challenge: Increasing Maintenance

100

80 Resources (%) Resources

60

40

20

developers maintainers 0 # delivered systems (to be maintained)

Maintenance Paralysis

15

© Fraunhofer IESE Challenge: Management Complexity of Cloned Variants

P4 R

P2 R R

P5

P1 R R R

P3 R R R

P6

Px Project Branch Merge Bug Fix R Release Development Maintenance Integration 16

© Fraunhofer IESE Manage Complexity with Strategic Reuse …

Followed reuse approaches did not achieve expected improvements. Focus was small-grained, opportunistic, and technology-driven.

17

[source: adapted http://www.sei.cmu.edu/library/assets/spl-essentials.pdf]

© Fraunhofer IESE Search & Assessment Efforts

Diverging Reuse repositories with more Sea of Look-alikes than 100 elements 18 can cause substantial

© Fraunhofersearch IESE and evaluation costs With Which Variants do you Earn the Most?

Try to identify and avoid With the ones that can be avoided! unnecessary variability 1. Avoid unnecessary variants 2. Master necessary variation 3. Reduce opportunistic variants/variation

19

© Fraunhofer IESE Success Story: Cummins, Inc.

Cost  Management estimates product line ROI of 10:1 Time to Market  Product cycle time: a year to a few days Productivity  20 product groups  1000 separate applications  75% of all software comes from core assets  Productivity improvement of 360% Enter new Markets  Capability let Cummins enter and dominate industrial diesel engine market Quality  Software quality is at an all-time high  15 of 15 projects are on track (was 3 of 10)  Customer satisfaction is high.

20

[source: SEI] © Fraunhofer IESE Strategic Reuse / Variation Management is Needed for Business Benefits

pertain to «Business» Domain, Business Goals

is satisfied by

share an «Architecture» Solution / Organization

Structure Assets structures 2 Core «Technology» are built from V Components, Parts, Production Facilities

Product Line • Take economic advantage of commonality • bound variation 21

[source: adapted http://www.sei.cmu.edu/library/assets/spl-essentials.pdf]

© Fraunhofer IESE ISO/IEC 26550 – PLE Reference Model

bdd [Package] Practice Areas [Operational Domain Model]

22

© Fraunhofer IESE Software and Systems Product Line Engineering (PLE)

23

[source: ISO26550]

© Fraunhofer IESE Reuse in the Large

In order to achieve higher levels of reuse one needs to Increase the granularity of the reused parts Reuse-in-the-Small Reuse-in-the-Large

vs

Provide building plan

24

© Fraunhofer IESE Keep Adaptation Cost Small

Study of reuse costs in NASA [1994, Barry Boehm]

Provide Adequate Variability

25

[source: http://www.sigapp.org/acr/Issues/V5.2/cardino.html]

© Fraunhofer IESE Foundations Core Asset

Core Asset:== “subset of assets that are developed in the domain engineering process or obtained by another way for reuse in the application engineering process.”

26

© Fraunhofer IESE V: supported variability Variability

Variability :== “a property that is different among the members of a product line”

“a capability to change or adapt a system”

Notes: Counterpart commonality: … same … all A kind of variable feature Delayed (design) decision: FE -> AE  Variability  Decision 27

© Fraunhofer IESE Foundations Variation Point

Variation Point :== “represents one or several locations at which variation will occur within core assets”.

1. to highlight where variant elements occur (which makes variation easy to see and control) 2. to improve traceability of variability (requires that goal 1 has been fulfilled).

28

© Fraunhofer IESE Orthogonal VM / FM

VM / FM

29 Bill of Material  Bill of Features © Fraunhofer IESE Foundations Variability Management: Separation of Concerns

Application Engineering: Develop with Reuse

Variant Solution Specification Model Assets (Concrete Configuraiton)

Problem Solution Space/ Space/ External Internal Perspective Perspective

Variability Model Core (Variabilies, Variants, Assets, Dependencies, Configurations) Family Model

Domain Engineering: Develop for Reuse

30

© Fraunhofer IESE Foundations Variability Specification Approaches

Feature Modelling Decision Modelling

Domain Specific Languages

• Start with Feature Modelling • Develop DSL if FM is not adequate • [VM Tool support Adequate Specification lacking] Consider Approach usage of Decision Models 31

© Fraunhofer IESE Decision Models

A decision model is a model that captures variability in a product line in terms of open decisions, possible values/resolutions and the respective effects

Decision models can be used regardless the type of the artifact (documents, models, code) => orthogonal variability modeling

• Requires no tool 32 support • Supports manual © Fraunhofer IESE resolution of VPs Feature Models Describes the features (mandatory, optional, alternative) of a product line member

33

[Source: David Benavides, Sergio Segura and Antonio Ruiz Cortés : Automated Analysis of Feature Models 20 Years Later: A Literature Review Information Systems . Elsevier. 2010. 35(6). September 2010] © Fraunhofer IESE Available / Used Variability Mechanisms

General  Extension  Parameterization  Domain-Specific-Language  Configuration  Generation  Selection  Interpretation  Module-Replacement  Conditional Execution (at runtime)  Composition  Transformation

SW-Specific 34

© Fraunhofer IESE Orthogonal VM / FM

VM / FM

stm StateMachine

Initial

Initialization ErrorState [InitOk == false]

Final

[InitOk == true] «p::v Restriction» {NOT(Warnings)}

ReadSensors UpdateDisplay

[ShutdownRequest == true] CheckValues

constraints {Warnings}

Final

35 Bill of Material  Bill of Features © Fraunhofer IESE [Remark] „As simple as possible, Success Stories no matter what the cost.“

Ludwig Mies van der Rohe

36 36 [source: adapted http://www.sei.cmu.edu/library/assets/spl-essentials.pdf] © Fraunhofer IESE 2nd Generation PLE Approach: 150%

37

[source: Provided courtesy of BigLever Software]

© Fraunhofer IESE Feature-based Variability Management

Feature Selection

Processing Application Engineering Application

Feature Model Core Assets

Family Engineering Family 38

© Fraunhofer IESE Feature-based Variability Management in Practice: Pure::Variants

stm StateMachine

Feature Selection Initial Initialization ErrorState [InitOk == false]

Final

[InitOk == true]

ReadSensors UpdateDisplay

[ShutdownRequest == true] Processing Final Application Engineering Application

stm StateMachine

Initial

Initialization ErrorState Feature Model Core Assets [InitOk == false] Final

[InitOk == true] «p::v Restriction» {NOT(Warnings)}

ReadSensors UpdateDisplay

[ShutdownRequest == true] CheckValues

constraints {Warnings}

Final

Family Engineering Family 39

© Fraunhofer IESE Feature-based Variability Management in Practice: GEARS

Feature Selection

Processing Application Engineering Application

Feature Model Core Assets

Family Engineering Family 40

© Fraunhofer IESE Challenge: Variability Erosion of Core Assets

//main.cpp #ifdef COLOR paint(); #endif ... #if SIZE>20 large(); #else small(); #endif ...

41

© Fraunhofer IESE Agenda

Motivation

Strategic Variant Management of Software-intensive Systems

Adoption Patterns and Experiences

Open Issues

Summary

42

© Fraunhofer IESE Common Variant Management Approaches

Independent Platform-based

Product Line Production (80%) Line (150%) S Managed Platform Configurable Strategic Cloning (50%) Product (150%) S S

hoc Clone&Own Reuse - S Repository Ad

43

© Fraunhofer IESE Observations of Variant Management Approaches

Independent Platform-based

Product Line Production (90%) Line (150%) S Managed Platform Configurable Strategic Cloning (50%) Product (150%) S S

hoc Clone&Own Reuse - S Repository Ad

44 Diversification of Evolution of VM Lean & agile © Fraunhofer IESEVM approach approach VM approach A Lightweight Improvement Approach

Initiation Planning Improvement

Potential Improve Scoping Customize Reuse approach Analysis Reuse approach

Variant Specify Design QA Analysis Variability PL Architecture Improvements

Pilot Guide Core Development Assets Dev.

Reuse Instrastr. PL-Configuration Reuse Infrastr. Setup Management Improvements

Train VM Stakeholders

Funding 45

© Fraunhofer IESE Scoping

Goals:  Define business goals and constraints  Plan the product line Activities: PuLSE™-ECO Scoping  Prepare Scoping  Conduct Scoping Workshops Results:  Product-Release-Plan  Product-Feature-Matrix  Domain- and Asset-Assessment

46

© Fraunhofer IESE Variant Analysis

 Variant Analysis can be used for:  Analyzing the reuse potential  Both high-level and detailed analysis  Determining suitable reuse approach (product lines, reusable libraries,…)  Analyzing existing variants  For example preprocessor-based code  Planning migration towards the selected reuse approach  Determining migration scope  Determining suitable starting point  Supporting the migration  Detailed analysis results very helpful for restructuring the code  Fast model updates possible after any change

47

© Fraunhofer IESE Proj5 Proj1

Proj4 Core Proj2

Project 3

48

© Fraunhofer IESE Specify Variability

Goals:  Provide variability model(s) for reuse programme Activities:  Refine varibility-related information from scoping  Provide overview on variability modeling approaches & tools  Model variability (including interdependencies) in a dedicated variability model Results:  Variability Model  Tool selection

49

© Fraunhofer IESE PL Architecture Design

Goals:  Design PL architecture (addressing VM aspects)  Evaluate PL architecture for its suitability  Document and communicate PL architecture to relevant stakeholders Activities:  Design PL architecture in an incremental and iterative way  Evaluate PL architecture with relevant stakeholders  Plan communication of the architecture  Document architecture in adequate manner (e.g. UML / SysML)  Continuously communicate the architecture Results:  Documented and communicated PL architecture

50

© Fraunhofer IESE Fraunhofer Variability Improvement Analysis (VITAL)

Analysis Method & Tool to:

Analyze reuse infrastructure, generic solutions

Create a comprehensive model of variabilities and their usage

Understand variability erosion Calculate and manage trends Variability-related metrics 51

© Fraunhofer IESE Fraunhofer Variability Improvement Analysis (VITAL)

How are the variation points nested? Identify dependencies of parameter names Are there clear hierarchical dependencies? to ease configuration

1334 nodes (variabilities) 1570 edges (dependencies)

52

© Fraunhofer IESE Agenda

Motivation

Strategic Variant Management of Software-intensive Systems

Adoption Patterns and Experiences

Open Issues

Summary

53

© Fraunhofer IESE INLIVE - Integrated Lifecycle and Variant Management

• Guidelines • Examples • Tool Integration

54

© Fraunhofer IESE CRYSTAL Project http://www.crystal-artemis.eu/

Interoperability Specification and Reference Technology Platform IESE Contribution: Tool and method integration in:  Variation Management  Model-based Requirements Engineering  Virtual Engineering (Simulation)  Safety Engineering 55

© Fraunhofer IESE Variant Management of Safety-critical Software-Intensive Systems

 Different Cost-of-Change profile  Cost-of-Change is often not known  What are the areas where variant management is most useful / applied?  How to establish reuse-able building blocks on technical solution level?  How big are typical reusable buildung blocks?  Shall reuse-able solutions be fixed or configurable?  How to approach variant management, if the standard is not (that) reuse aware?  Where to apply variant management: functional architecture / logical architecture?  Proactive variant management seems to be more suitable 56

© Fraunhofer IESE Agenda

Motivation

Strategic Variant Management of Software-intensive Systems

Adoption Patterns and Experiences

Open Issues

Summary

57

© Fraunhofer IESE Summary Thank you for your attention!

As with the Non-software Disciplines  Managing large-scale system families requires strategic variant management approaches  Business-driven, Architecture-Centric, Coordinated  Sound management of interdependencies is key

SW-specific Issues  Speed of development is competitive factor  Broad range of variant management approaches exists  No one-size-fits all – domain specific tailoring of VM approach  Support transition between VM approaches ( refactoring)

Contact:

Dr. Martin Becker Fraunhofer-Platz 1 Dipl.-Inform. 67663 Kaiserslautern 58 Telefon +49(631) 6800-2246 Department Head ES Development Fax +49(631) 6800-92246 © Fraunhofer IESE [email protected] www.iese.fraunhofer.de