Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

Post on 06-Jul-2015

381 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

Transcript

Presentation of the presenters

HENRIC ANDERSSON, Method development and industrial PhD candidate Saab Aeronautics

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

Presentation of Kristoffer Johansson

KRISTOFFER JOHANSSON, Project Manager and business developer at HiQ

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

Agenda

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

Introduction

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

Introduction

Universal Business Goals

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

Introduction

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

Agenda

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

PL Basics

(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

(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

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

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

Basic components of a SPL architecture PL Basics

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

Agenda

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

SW Build

17

Check-out Compile ExecuteProduct

Linerepository

%Source codepragmaif alpha then goodelse badendif

0100110100110010010110000101011110001001000100

SW BuildSoftware production / build process

Binding Time (1)

• Check-out-time binding

Feature_A?

Check OutVariant f

Check OutVariant g

RepositoryCheck Out

Yes

No

Build

SW Build

Binding Time (2)

• Compile-time binding

#if FEATURE_Af()#elseg()#endif

SW Build

Binding Time (3)

• Run-time binding

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

SW Build

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

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

Agenda

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

Organization

Organizational changes when adopting software product lines The three essentialls

Source: www.sei.cmu.edu

Organization

Organization for and ordinary production without software product lines

Source: www.biglever.com

Organization

Organization and production with an software product line

Source: www.biglever.com

Organization

Initiation: strategies, challenges and risks

Source: www.sei.cmu.edu

Organization

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

Agenda

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

Profits

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

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

Agenda

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

Summary

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

THE END

34

top related