PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
Software Product Lines
FROM COMPILER SWITCHES TO STRATEGIC REUSE
Pär Hammarström 2015-10-16
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
ABOUT ME
• Systems Architect and Development Manager
• 20+ years experience of Product Development
• Consultant, Development Manager, Product Manager
• Telecom, Automotive, ERP, Aerospace&Defence
• 4 in a row @Devlin
2
Pär Hammarström SAAB Aeronautics
073 418 0173
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
SOFTWARE AT WORK
3
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
SOFTWARE PRODUCT LINES
4
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
#ifdef
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
#include <stdio.h> int main() { #ifdef PRODUCT_A char foo[] = “Welcome"; #else char foo[] = "Hello"; #endif /* PRODUCT_A */ #ifdef PRODUCT_B char foo[] = “Beautiful"; #endif /* PRODUCT_B */ #ifdef PRODUCT_C char foo[] = “Grey"; #endif /* PRODUCT_C */ #ifdef PRODUCT_D char foo[] = “Goodbye"; #endif /* PRODUCT_D */ char bar[] = "World!"; printf("%s %s\n", foo, bar); return 0; }
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
Explore
Variability & Commonality to achieve
Economy of Scale
STRATEGIC REUSE
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
SOFTWARE PRODUCT LINES
11
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
COMMONALITY & VARIABILITY
12
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
HOW MANY COMBINATIONS?
13
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
HOW MANY COMBINATIONS?
14
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
VERIFICATION HELL?
15
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
VARIABILITY * COUPLING = COMPLEXITY
16
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
BIG BALL OF MUD
18
• Conway’s Law
‒ "organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations“
• Leads to Cohesion principle
‒ ”my module is where I put my code”
HMI
Services
HW abstraction
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
EXAMPLE
Equipment
Equipment
controller
Gateway
Consumer (1)
Consumer (2)
Producer (3)
HMI
(screen)
HMI
(framework 1)
HMI
(framework 2)
HMI
(framework 3)
Producer
Functional
Monitoring
CBIT
Time
Server
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
EXAMPLE
Equipment
Equipment
controller
Gateway
Consumer (1)
Consumer (2)
Producer (3)
HMI
(screen)
HMI
(framework 1)
HMI
(framework 2)
HMI
(framework 3)
Producer
Functional
Monitoring
CBIT
Time
Server
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
STATE OF THE INDUSTRY?
21
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
START WITH THE BUSINESS
Problem Space Solution Space
Domain
Engineering
Application
Engineering
Specification of the
configuration
Variablity definition from
a customer point of view
Items and parameters
Structure and rules
(Variation Points &
Variability Guide)
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
ARCHITECTURE IS KEY
Tightly coupled system drives Integration- and Process centric Approach
‒More or less centralized synchronization of design
‒Dealing with ripple effects
Loosely coupled system enables Composition and Architecture centric Approach
‒Architecture for composition and eco-systems
‒Backward compability
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
CORE PROBLEM – UNDERSTAND YOUR VARIABILITY
• Essential
‒ Inherent in the problem domain
‒ Differentiation is competitive advantage
• Accidental
‒ Technical debt
‒ Organization
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
DECOUPLING STRATEGY
25
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
PATTERN – FACTORY (DDD)
26
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
PATTERN – MODULE SPLIT
27
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
PATTERN – SELF CONTAINMENT
28
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
PATTERN – PARAMETERS
29
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
TREND: BUILD TIME -> RUN TIME
30
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
ORGANIZATIONAL DECOUPLING
31
May June July August September
Project X
R 1
Project Y
Project Z
Platform R 2
Sprint 1 Sprint 2 Sprint 3 Sprint 4 Sprint 5 Sprint 6 Sprint 7 Sprint 8 Sprint 9 Sprint 10
R 2 Proposal R 2 Freeze
R 2 Prestudy
System Test
Certification
Platform update
Design Review
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
QUESTIONS?
PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED
Pär Hammarström| | Issue 1.0 | © Saab
Top Related