Upload
hiqinternational
View
387
Download
0
Tags:
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
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