FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process...

33
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

Transcript of FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process...

Page 1: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

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

Page 2: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

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

[email protected]

073 418 0173

Page 3: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

SOFTWARE AT WORK

3

Page 4: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

SOFTWARE PRODUCT LINES

4

Page 5: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

Page 8: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

#ifdef

Page 9: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

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; }

Page 10: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

Explore

Variability & Commonality to achieve

Economy of Scale

STRATEGIC REUSE

Page 11: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

SOFTWARE PRODUCT LINES

11

Page 12: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

COMMONALITY & VARIABILITY

12

Page 13: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

HOW MANY COMBINATIONS?

13

Page 14: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

HOW MANY COMBINATIONS?

14

Page 15: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

VERIFICATION HELL?

15

Page 16: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

VARIABILITY * COUPLING = COMPLEXITY

16

Page 17: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

Page 18: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

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

Page 19: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

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

Page 20: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

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

Page 21: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

STATE OF THE INDUSTRY?

21

Page 22: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

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)

Page 23: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

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

Page 24: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

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

Page 25: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

DECOUPLING STRATEGY

25

Page 26: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

PATTERN – FACTORY (DDD)

26

Page 27: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

PATTERN – MODULE SPLIT

27

Page 28: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

PATTERN – SELF CONTAINMENT

28

Page 29: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

PATTERN – PARAMETERS

29

Page 30: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

TREND: BUILD TIME -> RUN TIME

30

Page 31: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

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

Page 32: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab

QUESTIONS?

Page 33: FROM COMPILER SWITCHES TO STRATEGIC REUSE · Tightly coupled system drives Integration- and Process centric Approach ‒More or less centralized synchronization of design ‒Dealing

PUBLIC| NOT EXPORT CONTROLLED | NOT CLASSIFIED

Pär Hammarström| | Issue 1.0 | © Saab