38

Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Embed Size (px)

DESCRIPTION

Kristoffer Johanssons och Henric Anderssons presentation från Kunskapsbaren 2011 i Linköping den 12 maj. Ämnet var "Att produktifiera mjukvara".

Citation preview

Page 1: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara
Page 2: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Presentation of the presenters

HENRIC ANDERSSON, Method development and industrial PhD candidate Saab Aeronautics

Page 3: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

PresentationMy background

• Agriculture/farming 4 years• MsC in Control Engineering• ABB Carbon 3 years

• Modeling and simulation• Saab Aeronautics 14 years

• Flight Control• Project Management• Systems Engineering• Product Lines• Research / PhD study

Page 4: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Presentation of Kristoffer Johansson

KRISTOFFER JOHANSSON, Project Manager and business developer at HiQ

Page 5: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Presentation Kristoffer JohanssonMy background

• Ms.C Software engineering• Consultant & entrepreneur (6 years)

• Medical Technology• Project Manager & Agile

Teamleader• Simulation of embedded

systems• SW Developer

• Defence & Security• Simulation of embedded

systems• Project Manager & Agile

Teamleader• SW Developer

Page 6: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Agenda

•Introduction•Product Line basics•Software Build•Organization•Profits•Summary

Page 7: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Introduction

•What is productification?•What is a Product Line (PL)•Why PL (HW & SW)•Who needs it / can benefit from it

Introduction

Page 8: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Universal Business Goals

•High quality•Quick time to market•Market dominance•Market agility•Product alignment•Low cost production•Low cost maintenance•Mass customization

Introduction

Page 9: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Few systems are overall unique

• Most organizations produce families of similar systems differentiated by features.

• A reuse strategy makes sense.• Traditional reuse strategies have had little economic

benefit.

Basic Pro Enterprise

Ab

c

Ab

cd

Ab

cd

e

ProductLine

Configuration ConfigurationConfiguration

Introduction

Page 10: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Agenda

•Introduction•Product Line basics•Software Build•Organization•Profits•Summary

PL Basics

Page 11: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

(software) Re-Use principles

1. The copy-and-paste method 2. The configuration method

Two methods for software/information reuse

/***************** source file** created 1989-0* by Karl Svenss* company ltd*

/**_A/**_B/**_D/**_C

/**

abc

Config Process

Single Source

/**_D

/**_C

/**_B

/**_A

d

MultipleInstances”read-only”

Reference: MS Word Help

PL Basics

Page 12: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

(software) Re-Use principles

1. The copy-and-paste method 2. The configuration method

Two methods for software/information reuse

/**_A

/**_B

/**_D

/**_C

/**

abc

Config Process

/**_D

/**_C

/**_B

/**_A

d

What is the maintenance effort needed in the long term?

/**_A

/**_B

/**_D

/**_C/**

_A/**_B

/**_D

/**_C

/**

abcd

/**

abcd

/**_D

/**_C

/**_B

/**_A

/**_D

/**_C

/**_B

/**_A

Variants

Versions

PL Basics

Page 13: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Examples of copy-and-paste

• Parts of this presentation

• Several files and objects are copied every day we work• Drives the storage volume requirements• Problem with ”information-divergence”• Increasing maintenance cost• Boring work to update the same data at different places

• A whole repository with general models• Even more boring…..

PL Basics

Page 14: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Examples of SPL

• Saab; early examples from ”CelciusTech” • see ”Software Product Lines: Practices and Patterns”

• Configuration by means of filters, views and generation• Several databases with report generators• E.g. Excel, DOORS; filters and views

• Embedded Computer Systems• Uses parameters for configuration• Primarily configuration at run-time• Parameters stored in Configuration files / DataBase (ConfDB)• Used in many products from e.g. Saab/Gripen, Scania, Ericsson…

PL Basics

Page 15: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Basic components of a SPL architecture PL Basics

Source: On Software Engineering, http://sftweng.wcorona.com

Page 16: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Agenda

•Introduction•Product Line basics•Software Build•Organization•Profits•Summary

SW Build

Page 17: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

17

Check-out Compile ExecuteProduct

Linerepository

%Source codepragmaif alpha then goodelse badendif

0100110100110010010110000101011110001001000100

SW BuildSoftware production / build process

Page 18: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Binding Time (1)

• Check-out-time binding

Feature_A?

Check OutVariant f

Check OutVariant g

RepositoryCheck Out

Yes

No

Build

SW Build

Page 19: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Binding Time (2)

• Compile-time binding

#if FEATURE_Af()#elseg()#endif

SW Build

Page 20: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Binding Time (3)

• Run-time binding

if (feature_A) f() else g();

SW Build

Page 21: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Binding Time overview

Binding at

Aspect

Check-out-time

Compile-time Run-time

Creates Different source code variants

Different object code variants

Different instances

Used for Reliable configuration

Implementation oriented configuration

Fast reconfiguration

Example When security / IRP aspects is important

Target / platform variation

Reconfiguration at end-user site

SW Build

Page 22: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Industrial usage of binding time

• There are more alternatives• model-time• design-time• translation-time• link-time• load-time• …

• Different binding times may be used concurrently in a SPL

SW Build

Page 23: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Agenda

•Introduction•Product Line basics•Software Build•Organization•Profits•Summary

Organization

Page 24: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Organizational changes when adopting software product lines The three essentialls

Source: www.sei.cmu.edu

Organization

Page 25: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Organization for and ordinary production without software product lines

Source: www.biglever.com

Organization

Page 26: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Organization and production with an software product line

Source: www.biglever.com

Organization

Page 27: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Initiation: strategies, challenges and risks

Source: www.sei.cmu.edu

Organization

Page 28: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Initiation: strategies, challenges and risks

• Strategies• Find business value• Priorities the work• Establish firmly the interest for the Software

Product Line• Challenges

• Getting everyone onboard• Gain the right competence for managing an

software product line• Design & Architecture• Process & Methodology• Management

Organization

• Risks• The workflow doesn't support the product line vision• Shortcuts undermine the software product line vision• To long leadtime to establish the product line

Page 29: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Agenda

•Introduction•Product Line basics•Software Build•Organization•Profits•Summary

Profits

Page 30: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Productivity graph Profits

0

20

40

60

80

100

120

0 5 10 15 20 25

Total Number of Products

To

tal

En

gin

eeri

ng

Eff

ort

Light_Weigh SPL

Ord SPL

Conventional

Page 31: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Lightweight software product lines

• minimize differences between single-system and product line engineering in order to minimize impact on:

• organization• processes• tools• infrastructure

• utilize an incremental adoption strategy• Example: Develop a reference architecture concurrently with

the production of the present product.• Use off-the-shelf software product line tools and technology• minimize the need for complex and costly merging

Profits

Page 32: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Agenda

•Introduction•Product Line basics•Software Build•Organization•Profits•Summary

Summary

Page 33: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Shorter time to marketQuality improvementIncreased productivity …

Conclusions – Introducing and using product line approach

• Achieve new business goals• Efficiency improvements• Cost reduction

• Reuse & Re-enter• Requirements• Design models• Source code• Test cases

• Increase quality in our products

• More fun at work!

Summary

Page 34: Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

THE END

34