Variation Management: Efficiency in providing customized ... unique lines (only one variant) Variant...
Transcript of Variation Management: Efficiency in providing customized ... unique lines (only one variant) Variant...
© Fraunhofer IESE
1
August 31, 2013August 31, 2013
Variation Management: Efficiency in providing customized solutionsDr. Martin Becker
http://www.iese.fraunhofer.de/en/competencies/variation_management.html
© Fraunhofer IESE
2
Variation Management
Customers request specialized products adapted to their needs
Building variants in a clown-and-own-manner multiplies quality issuesand increases maintenance costs
Product Line Engineering actively addresses variation management
Huge upfront investments have to be avoided
Lightweight adoption
Tool-supported transition
© Fraunhofer IESE
3
Typical Settings and Challenges for Variation Management
Clo
ned
Solu
tio
ns
Plat
form
Pro
du
ct/ P
roje
ct /
Co
mp
on
ent
Lin
e
Pro
du
ctPo
pu
lati
on
Co
nfi
gu
rab
lePr
od
uct
bas
e
Patc
hw
ork
Port
folio
Increased management
efforts & quality problems
Increased management
efforts & quality problems
UnclearFeature
Portfolio
UnclearFeature
Portfolio
Re-developmentof features
Re-developmentof features
Increasing search costs in opportunistic
reuse bases
Increasing search costs in opportunistic
reuse bases
Reuse in the small
Reuse in the small
Lack of resourcesfor VM improvements
Lack of resourcesfor VM improvements
InfrastructreErosion aka.Preprocessor
Hell
InfrastructreErosion aka.Preprocessor
Hell
Increasing QAefforts due tohuge variation
space
Increasing QAefforts due tohuge variation
space
InconsistentVariability
Models
InconsistentVariability
Models
VariabilityErosion
VariabilityErosion
Prolongedchangecycles
Prolongedchangecycles
Coordinationof development
for and with reuse
Coordinationof development
for and with reuse
Explosion of variation space, due to unclearconstraints and
extreme flexibility
Explosion of variation space, due to unclearconstraints and
extreme flexibility
Lostinvestments due to overlygeneric assets
Lostinvestments due to overlygeneric assets
High adaptation and integration
costs of coreassets,
aka. Version Hell
High adaptation and integration
costs of coreassets,
aka. Version Hell
Incompleteconfiguration
knowledge
Incompleteconfiguration
knowledge
Unmanagedclones
Unmanagedclones
Divergingsea of
look-alikes
Divergingsea of
look-alikes
© Fraunhofer IESE
11
© Fraunhofer IESE
12
VM Project Examples
© Fraunhofer IESE
13
Project Example: Potential Analysis
Analyze existing configuration interdependencies Incremental refactoring of configurability & reusability without decreasing performance
Customer Situation & Motivation
Project Goals
Composition of VaRiS Services
Mid‐sized embedded system product line, configured with home‐grown techniques Increasing difficulty to understand & change configuration interdependencies Lack of change due to fear of performance penalties
Tool‐based Analysis of Artifacts
Assessment of VM practices
Innovation and Evolution Plan
Continuous IntegrationIntegration of VM in Code
© Fraunhofer IESE
14
Project Example: Potential Analysis
ResultsGoal Artifact Comments
VM-Approach - Not existing
Requirements Requirements.txt Serves as product map• Partially incomplete, also documents commonalities• Inconsistent representation of features
Modelling Database.sql Serves as variability model• Not traceable
Architecture Architecture.eap Only rudimentary
Implementation Code (*.[ch]) Rather consistent, but overly complex implementation
Rating: OKsome deficitscritical deficits
Assessment:
=> Recommended next activities: 1) …
Analysis &Improvement:
Macro # Files Var. Type
HAS_FEATURE_1 290 optional
HAS_FEATURE_2 132 optional
IS_ALT_1 98 alternative
HAS_FEATURE_3 86 optional
IS_ALT_2 85 alternative
Most frequent variants
© Fraunhofer IESE
17
Project Example: Cloned Variants
Analyze existing implementations for common & variant elements Incrementally refactor existing systems to product line infrastructure & integrate new ones
Customer Situation & Motivation
Project Goals
Composition of VaRiS Services
Several large (> 1 MLOC) embedded systems duplicated from each other and diverging over years Consistent maintenance more and more expensive New systems and system variants must be added
Tool‐based Analysis of Artifacts
Assessment of VM practices
Innovation and Evolution Plan
Integration of VM in Code
Configuration Management
Support for VM Tool Adoption
© Fraunhofer IESE
18
Project Example: Cloned Variants
ResultsSource Code Analyses:
Subsystem dependencies
Variant analysis
Product1Product2Product3
Product1Product2Product3
Dead code removal results Similarity analysis
© Fraunhofer IESE
19
Project Example: Cloned Variants -> Platform
Understand reuse potential in the existing artefacts Understand relations in the existing code Outline suitable VM approach
Customer Situation & Motivation
Project Goals
Composition of VaRiS Services
Automotive Supplier of sensor ECUs Several cloned variants Wants to adopt PLE approach to save time, effort
Potential Analysis
Tool‐based Analysis of Artifacts
Scoping Workshop Domain Assessment
© Fraunhofer IESE
20
Project Example: Cloned Variants -> Platform
Understand reuse potential Adopt strategic reuse approach
Customer Situation & Motivation
Project Goals
Composition of VaRiS Services
Supplier of brake systems Transition from project to product‐centric development Existing variants
Tool‐based Analysis of Artifacts
Assessment of VM practices Scoping
Potential Analysis
© Fraunhofer IESE
21
Project Example: Cloned Variants -> Platform
Results
uc Function2FeatreMapping
(from FunctionElements)
Sanding
(from FunctionElements)
SandingPressureControl
(from FunctionElements)
IsolateSanding
(from FunctionElements)
SandingCoreFct
<<OptionalFeature>> Sanding
(from FeatureElements)
<<OptionalFeature>> IsolateSanding
(from FeatureElements)
<<MandatoryFeature>> SandingPressureControl
(from FeatureElements)
«include»«include» «extend»
Platform Development
Potential Analysis
© Fraunhofer IESE
22
Project Example: Patchwork Portfolio -> Product Line
Introduce product line development to integrate product departments Reduce costs and be able to develop more complex products
Customer Situation & Motivation
Project Goals
Composition of VaRiS Services
Suppliers of portable measurement instruments for temperature, pressure, and gas concentration Two product departments each responsible for a different, but similar set of products
Integration of VM in Architecture
Tool‐based Analysis of Artifacts
Scoping Workshop Domain Assessment
Configuration Management
Integration of VM in Code
© Fraunhofer IESE
23
Project Example: Patchwork Portfolio -> Product Line
Results
Reuse level increased from 17% (2002, start of PL) to 34% (first PL generation) to more than 50%(2009, 3rd generation)
More than 15 products produced with the product line
Product line architecture is a central asset in the development
Maintainability increased significantly (e.g. architectural divergences decreased from 17% to 1%)
© Fraunhofer IESE
24
Projects: VM Tool Adoption
Understand different VM modeling approaches Understand how to model VM in a System of System setting Get modeling guidelines and best practices to model in a suitable and standardized way
Customer Situation & Motivation
Project Goals
Results
International automotive OEM Wants to adopt VM tool in large scale PL
Hierarchical Product Lines with Modular Decomposition Decomposition Tactics Reduction of Complexity Traceability Dependencies Feature Modeling approach transferred to GEARS
© Fraunhofer IESE
25
Project Example: VM Instrastructure Creation
Results
Feature model Change impact analysis
SOTA/P analysis of PLE for safety-relevant embedded systems among CESAR partners
Supporting industrial partners (e.g. Thales) to exploit PLE technologies
© Fraunhofer IESE
26
Project Example: Develop Reusable Components
Refactoring existing systems into a product line Introduce reference architecture without resource penalties Provide light‐weight product line refactoring strategies
Customer Situation & Motivation
Project Goals
Composition of VaRiS Services
International company developing automotive driving comfort electronics
Tool‐based Analysis of Artifacts
Integration of VM in Architecture Integration of VM in Code
© Fraunhofer IESE
27
Project Example: Develop Reusable Components
Results
0% resource overhead
-56% module dependencies
65-88% code reuse
© Fraunhofer IESE
28
Project Example: Configuration Improvement
Improve the configuration approach to increase scalability and testability of the configuration model Understand potential of other variation management approaches
Customer Situation & Motivation
Project Goals
Composition of VaRiS Services
Customer runs a product configurator that supports sophisticated configuration of > 40 product lines, each characterized by over 500 parameters
Underlying configuration model comprises more than 16000 elements and is a monolith Extension and quality assurance in the configuration model are quite expensive
Assessment of VM practicesVM Tool Selection
Integration of VM in Architecture
Tool‐based Analysis of Artifacts
Change Management
© Fraunhofer IESE
30
Project Example: Configuration Improvement
Results
Current state analysis
Feature model Change impact analysis
© Fraunhofer IESE
33
Elementary ProduflexilComponent 0.12345
Elementary ProduflexilComponent 0.12345
Elementary ProduflexilComponent 0.12345
Elementary ProduflexilComponent 0.12345
0.12345
Produflexil Component
Produflexil Component
Interfaces (Ports):- Parameter (Konstanten)
- interne Variable (Verbindungen)
- externe Variable (Prozesswerte)
Project Example: Flexible Production
Maschinenbau & Qualitätsmanagement
SE
AmI
Flexibilität
Adaptivität
Selbstkonfiguration
MechanismenArchitektur-
Patterns
Produkte, Prozesse, Anlagentechnologien
QualitätZuverlässigkeit
Vorhersagbarkeit
Abhängigkeits-Modelle
Kontext
Änderungsmanagement [OPC-UA-Server/Client(s)]Änderungsmanagement [OPC-UA-Server/Client(s)]
Reale Anlage
Änderungsmanagement
Virtuelle Anlage
Änderungsmanagement
Änderungs-manager
Digitales Modellder Anlage
Simulationsmodelle
Leitsystem-Engineering:Anlage, EA und Bilder
[WebService]
Prozess-visualisierung
Übergeordnetes Leitsystem, operative IT
Steuerungs-SW-Management-
Modul 1..n
Leitsystem
SPS 1..n VirtuelleSPS 1..n
OPC
Leitsystem-Engineering:Anlage, EA und Bilder
[WebService]
Prozess-visualisierung
Übergeordnetes Leitsystem, operative IT
Leitsystem
OPCCAEX CAEX
Änderungs-manager
Steuerungs-SW-Management-
Modul 1..n
Reale Fabrik mit realer Anlage @ Ort A
Digitale Fabrik mit virtueller Anlage @ Ort B
Simulator
HMI 1..n
Testfälle
Simulations-ergebnisse
HMI 1..n
© Fraunhofer IESE
34
(Ricoh)
Archieved with broad support from Fraunhofer IESE
© Fraunhofer IESE
45
Syst
emat
icV
aria
tio
n M
anag
emen
tIm
pro
vem
ent
Variation Management Improvement
Characterize & Understand
Plan
Do
Evolve
Assessment of VM practices
Tool‐based Analysis of Artifacts
Scoping Workshop
Domain Anallysis & Modelling
VM in Artefacts
Support for VM Tool Adoption
Configuration Management
Change Management
© Fraunhofer IESE
48
VM Potential Assessment
Goals:
Understand VM improvement potential and risks
Activities:
Conduct semi-structured interview
Present findings
Results:
Documented Is-Situation
VM SWOT
Prioritized improvement potentialswith proposed activities
© Fraunhofer IESE
49
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
© Fraunhofer IESE
51
Variant Analysis
Goals:
Assess reuse potential of existing system variants
Understand commonality and variation in variants in detail
Activities:
Define analysis goals
Conduct Variant Analysis with Fraunhofer Variant Analysis tool
Conduct Variant Analysis Workshop and present findings
Focus Variant Analysis on specific issues
Results:
Commonality and Variation Analysis for the system variants
«optional» Variant Analysis training and tool license
© Fraunhofer IESE
53
Fraunhofer SAVE Variant Analysis
Visualize variability in existing source code
Detects similar and different software parts across systems
Overview of the similarity and differences on many abstraction levels
Identification of the reuse potential
Common parts comprise the product line core
Variable parts contain product-specificimplementation
Migration planning and control
VariantAnalysis
© Fraunhofer IESE
54
Variant AnalysisTool Implementation: System Hierarchy
System hierarchy
Top-down result exploration using structural view
Detect interesting areas in the high-level structure and delve into details when needed
Information available for each file and directory, up to the whole system
© Fraunhofer IESE
55
Variant Analysis – Result Browsing
For whole software systems, the results of Variant Analysis are presented in a system structure browsing tool
Interactive exploration of the results possible
The user can navigate to the most interesting components
Instant overview of different component’s status
The information can be exported to an external file for further analysis
© Fraunhofer IESE
56
Bar diagrams show similarity of the variants
Green: core lines identical in all variants
Blue: shared lines (reused by some, but not all variants)
Yellow: unique lines (only one variant)
Variant Analysis – Result Browsing
Distribution diagrams show how the similarity is distributed in the code base
Quickly identify the files with the highest reuse potential
#components
unchangedcore
components
un-changedshared
components
variantspecificcomponents
changes/extensions within one component
specific+
shared
sum = 1043025
Reduction byfactor 2.8(less code to manage)
© Fraunhofer IESE
57
Variant Analysis Results
Overview of the similarity and differences on many abstraction levels
Browseable from system level down to individual code lines
Identification of the reuse potential
Proj4 Proj2
Project 3
Proj5 Proj1
Core
© Fraunhofer IESE
58
© Fraunhofer IESE
58
Customize Reuse Approach
Goals: Understand options for strategic reuse
Select and customize reuse approach
Activities:
Provide overview on options
Elicit engineering scenarios
Customize reuse approach
Evaluate & document the approach
Results:
Customized reuse approach
© Fraunhofer IESE
61
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
© Fraunhofer IESE
62
Establishment of VM Infrastructures
© Fraunhofer IESE
63
Variability Improvement Analysis
Analysis Method & Tool to: Provide overview in the Preprocessor Hell
Analyze CPP-statements
Identify variable features / parameters
Identify and interlink variation points
Assess variability realisation
(e.g. Variabilty-Fan-In / -Out)
Identify Improvement Potential
Fast overviewon commonalityand differences
Identification ofvariability managment
issues
© Fraunhofer IESE
65
Evolution of Variability Elements
31 releases along 4 years
The last release contains
834 variabilities
1223 variation point groups
13969 variation points
1322 variability-related files
Excluding 26 generated files
Any improvement in the past?
65
© Fraunhofer IESE
66
Complexity of Variability Files
Visualization of Var Fan-in on File
Rectangular treemap indicates “hot spots”
66
© Fraunhofer IESE
67
Variability Erosion Trend
Predicting Erosion Trend of Var Fan-Out on VPG
Trend := #rises - #falls, indicating probability of future increase of Varfan-out on VPG
E.g., trend of 1st Var = count(7-6, 13-7, 17-13, 18-17) - 0 = Count(1, 6, 4, 1) = 4
Predicted value (version 32) := base value (version 31) + Avg(positive Δs)
E.g., predicted value of 1st Var = 18+ Avg(1, 6, 4, 1) = 18+3 = 21
67
© Fraunhofer IESE
69
Recovery of Variabilty Models
69
© Fraunhofer IESE
71
ReCoVar: Variability Model Renovation
1 #ifdef A2 #if B > 20 && C < 03 Func_1();4 #else5 Func_2();6 #endif7 #else8 Func_3();9 #endif10 ...
Variability Tree
Func_1 Func_2
#ifdef A
Func_3
#if B > 20 && C < 0
Variation Point
1 #define A2 #define B 303 #define C ‐2...
1 #define A2 #define B 103 #define C ‐5...
P1
P2 CoreVariant Element
Variability Code Using CC
Extracting Product Configurations
Extracting Variation Points
Extracting Variability Tree
© Fraunhofer IESE
72
ReCoVar: Mining Feature Correlations
Legend
Configuration Extraction
Data Preparation
Product Configurations
Configuration Matrix
Dataset
CorrelationPruning
CorrelationValidation
FeatureCorrelations
Correlation Mining
Association Rules
Frequent Itemsets
Process
Data
© Fraunhofer IESE
73
Fraunhofer Transformation Engine
General-purpose tool for mass manipulation of XML-based data
• Parsing
• Analyzing
• Refactoring
© Fraunhofer IESE
74
Product Genealogy Approach
© Fraunhofer IESE
75
Variation Management Tool Support
Feature modeling
pure::variants, Big Lever Gears (commercial variant management tool)
CVM, PLUM
Analysis of existing code
Variant analyzer (detection & visualization of similar lines of code in duplicatedproducts or components)
Ifdef analyzer (def-use analysis of #ifdef macros in conditionally compiledcode)
Variability meter (goal-based variability measurement)
Dead variant detector (detection of unused variant modules)
Variability refactoring
Similarity analyzer (incremental detection & consolidation of similar codeelements)
Automated production
Frame processor (advanced preprocessor for consistent & optimized reuse)
© Fraunhofer IESE
76
Train VM Stakeholders
Goals:
Raise necessary understanding of diverse VM stakeholders (e.g. management, engineers)
Activities:
Train stakeholders in respective VM and Product Linie issues, e.g.
VM concepts, scoping, organizational issues, variability modeling, PL Requirements Engineering, PL Architecture Design, PL implementation, PL Quality Assuarance, PL Config. Management
Coach them until VM approach is well established
Results:
Trained stakeholders
«Optional» Training Material
© Fraunhofer IESE
77
Overview on IESE’s Variation Management Services
Integration of VM in Requirements
Assessment of VM practices
VM Tool Selection
Integration of VM in Architecture
Tool‐based Analysis of Artifacts
Scoping Workshop
Pattern‐based Analysis of Documents
Domain Assessment
Evolve
Continuous Integration
Change Management
Version Management
Do
Plan
Characterize and Understand
Configuration Management
Support for VM Tool Adoption
Product Portfolio Migration PlanInnovation and Evolution Plan
Integration of VM in Code Integration of VM in QA
© Fraunhofer IESE
78
IESE‘s Offering in Your Reuse Program Lifecycle
Initiation Planning Development Testing Operation
Potential Analysis
Scoping Customize Reuse approach
SpecifyVariability
DesignPL Architecture
Guide CoreAssets Dev.
Train VM Stakeholders
PL-ConfigurationManagement
Pilot Development
Reuse Infrastr.Improvements
VariantAnalysis
ImproveReuse approach
Reuse Instrastr.Setup
QA Improvements
© Fraunhofer IESE
80
Continuous variation management
Iterative and incremental adoption/improvement
Holistic approach from development to run-time
Continuous integration of changes and innovation
Variation management not as end-in-itself
Business-oriented decisions
In-depth and efficient analysis of the current infrastructure
Practical guidance
Customer-specific project approach
Comprehensive and integrative
Flexible and scalable
Neutral, experienced, state-of-the-art consulting
Industry-proven methods and best practices
Clear methodological framework
Our USPs in Variation Management
© Fraunhofer IESE
81
Selected IESE Customers
Altas Elektronik
Blaupunkt GmbH
Cassidian
Continental Teves
Daimler
Deutsche Lufthansa AG
Gigaset
Hella KGaA Hueck & Co
Hitachi
John Deere
KEIPER GmbH &Co. KG
Knorr-Bremse
KSB
Ricoh
Robert-Bosch GmbH
Rolls-Royce
Siemens AG
Testo AG
Wikon GmbH
© Fraunhofer IESE
82
Our Network
Software Product Line Community (SPLC)
- Feature Modelling / Configuration Support
- Specific PL Practice Areas
- Industrial PL Experts
- PL-Tool Providers: Pure::Systems, Big Lever, Feature IDE
Reverse Engineering Community
Fraunhofer IUK, Embedded Systems Alliance
TU-KL
© Fraunhofer IESE
83
Contact:
Dr. Martin Becker Fraunhofer-Platz 1Dipl.-Inform. 67663 Kaiserslautern
Telefon +49(631) 6800-2246Department HeadES Development Fax +49(631) 6800-92246
Thank you for your interest in Strategic Reuse!
Thank you for your interest in Strategic Reuse!