Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara


Published on

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

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

  1. 2. Presentation of the presenters <ul><ul><li>HENRIC ANDERSSON, Method development and industrial PhD candidate Saab Aeronautics </li></ul></ul>
  2. 3. Presentation My background <ul><li>Agriculture/farming 4 years </li></ul><ul><li>MsC in Control Engineering </li></ul><ul><li>ABB Carbon 3 years </li></ul><ul><ul><li>Modeling and simulation </li></ul></ul><ul><li>Saab Aeronautics 14 years </li></ul><ul><ul><li>Flight Control </li></ul></ul><ul><ul><li>Project Management </li></ul></ul><ul><ul><li>Systems Engineering </li></ul></ul><ul><ul><li>Product Lines </li></ul></ul><ul><ul><li>Research / PhD study </li></ul></ul>
  3. 4. Presentation of Kristoffer Johansson <ul><ul><li>KRISTOFFER JOHANSSON, Project Manager and business developer at HiQ </li></ul></ul>
  4. 5. Presentation Kristoffer Johansson My background <ul><li>Ms.C Software engineering </li></ul><ul><li>Consultant & entrepreneur ( 6 years) </li></ul><ul><ul><li>Medical Technology </li></ul></ul><ul><ul><ul><li>Project Manager & Agile Teamleader </li></ul></ul></ul><ul><ul><ul><li>Simulation of embedded systems </li></ul></ul></ul><ul><ul><ul><li>SW Developer </li></ul></ul></ul><ul><ul><li>Defence & Security </li></ul></ul><ul><ul><ul><li>Simulation of embedded systems </li></ul></ul></ul><ul><ul><ul><li>Project Manager & Agile Teamleader </li></ul></ul></ul><ul><ul><ul><li>SW Developer </li></ul></ul></ul>
  5. 6. Agenda <ul><li>Introduction </li></ul><ul><li>Product Line basics </li></ul><ul><li>Software Build </li></ul><ul><li>Organization </li></ul><ul><li>Profits </li></ul><ul><li>Summary </li></ul>
  6. 7. Introduction <ul><li>What is productification? </li></ul><ul><li>What is a Product Line (PL) </li></ul><ul><li>Why PL (HW & SW) </li></ul><ul><li>Who needs it / can benefit from it </li></ul>Introduction
  7. 8. Universal Business Goals <ul><li>High quality </li></ul><ul><li>Quick time to market </li></ul><ul><li>Market dominance </li></ul><ul><li>Market agility </li></ul><ul><li>Product alignment </li></ul><ul><li>Low cost production </li></ul><ul><li>Low cost maintenance </li></ul><ul><li>Mass customization </li></ul>Introduction
  8. 9. Few systems are overall unique <ul><li>Most organizations produce families of similar systems differentiated by features. </li></ul><ul><li>A reuse strategy makes sense. </li></ul><ul><li>Traditional reuse strategies have had little economic benefit. </li></ul>Basic Pro Enterprise A b c A b c d A b c d e Product Line Configuration Configuration Configuration Introduction
  9. 10. Agenda <ul><li>Introduction </li></ul><ul><li>Product Line basics </li></ul><ul><li>Software Build </li></ul><ul><li>Organization </li></ul><ul><li>Profits </li></ul><ul><li>Summary </li></ul>PL Basics
  10. 11. (software) Re-Use principles <ul><li>The copy-and-paste method </li></ul>2. The configuration method <ul><li>Two methods for software/information reuse </li></ul>/*************** * * source file * * created 1989-0 * by Karl Svenss * company ltd * /** _A /** _B /** _D /** _C /** a b c Config Process Single Source /** _D /** _C /** _B /** _A d Multiple Instances ” read-only” Reference: MS Word Help PL Basics
  11. 12. (software) Re-Use principles <ul><li>The copy-and-paste method </li></ul>2. The configuration method <ul><li>Two methods for software/information reuse </li></ul>/** _A /** _B /** _D /** _C /** a b c 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 /** a b c d /** a b c d /** _D /** _C /** _B /** _A /** _D /** _C /** _B /** _A Variants Versions PL Basics
  12. 13. Examples of copy-and-paste <ul><li>Parts of this presentation </li></ul><ul><li>Several files and objects are copied every day we work </li></ul><ul><ul><li>Drives the storage volume requirements </li></ul></ul><ul><ul><li>Problem with ”information-divergence” </li></ul></ul><ul><ul><li>Increasing maintenance cost </li></ul></ul><ul><ul><li>Boring work to update the same data at different places </li></ul></ul><ul><li>A whole repository with general models </li></ul><ul><ul><li>Even more boring….. </li></ul></ul>PL Basics
  13. 14. Examples of SPL <ul><li>Saab; early examples from ”CelciusTech” </li></ul><ul><ul><li>see ”Software Product Lines: Practices and Patterns” </li></ul></ul><ul><li>Configuration by means of filters, views and generation </li></ul><ul><ul><li>Several databases with report generators </li></ul></ul><ul><ul><li>E.g. Excel, DOORS; filters and views </li></ul></ul><ul><li>Embedded Computer Systems </li></ul><ul><ul><li>Uses parameters for configuration </li></ul></ul><ul><ul><li>Primarily configuration at run-time </li></ul></ul><ul><ul><li>Parameters stored in Configuration files / DataBase (ConfDB) </li></ul></ul><ul><ul><li>Used in many products from e.g. Saab/Gripen, Scania, Ericsson… </li></ul></ul>PL Basics
  14. 15. Basic components of a SPL architecture PL Basics Source: On Software Engineering, http://sftweng.wcorona.com
  15. 16. Agenda <ul><li>Introduction </li></ul><ul><li>Product Line basics </li></ul><ul><li>Software Build </li></ul><ul><li>Organization </li></ul><ul><li>Profits </li></ul><ul><li>Summary </li></ul>SW Build
  16. 17. Check-out Compile Execute Product Line repository %Source code pragma if alpha then good else bad endif 010011010 0110010 010110 000101011 1100010 0100010 0 SW Build Software production / build process
  17. 18. Binding Time (1) <ul><li>Check-out-time binding </li></ul>Feature_A? Check Out Variant f Check Out Variant g Repository Check Out Yes No Build SW Build
  18. 19. Binding Time (2) <ul><li>Compile-time binding </li></ul><ul><li>#if FEATURE_A </li></ul><ul><li>f() </li></ul><ul><li>#else </li></ul><ul><li>g() </li></ul><ul><li>#endif </li></ul>SW Build
  19. 20. Binding Time (3) <ul><li>Run-time binding </li></ul><ul><li>if (feature_A) f() else g(); </li></ul>SW Build
  20. 21. Binding Time overview SW Build 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
  21. 22. Industrial usage of binding time <ul><li>There are more alternatives </li></ul><ul><ul><li>model-time </li></ul></ul><ul><ul><li>design-time </li></ul></ul><ul><ul><li>translation-time </li></ul></ul><ul><ul><li>link-time </li></ul></ul><ul><ul><li>load-time </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>Different binding times may be used concurrently in a SPL </li></ul>SW Build
  22. 23. Agenda <ul><li>Introduction </li></ul><ul><li>Product Line basics </li></ul><ul><li>Software Build </li></ul><ul><li>Organization </li></ul><ul><li>Profits </li></ul><ul><li>Summary </li></ul>Organization
  23. 24. Organizational changes when adopting software product lines The three essentialls Source: www.sei.cmu.edu Organization
  24. 25. Organization for and ordinary production without software product lines Source: www.biglever.com Organization
  25. 26. Organization and production with an software product line Source: www.biglever.com Organization
  26. 27. Initiation: strategies, challenges and risks Source: www.sei.cmu.edu Organization
  27. 28. Initiation: strategies, challenges and risks <ul><li>Strategies </li></ul><ul><ul><li>Find business value </li></ul></ul><ul><ul><li>Priorities the work </li></ul></ul><ul><ul><li>Establish firmly the interest for the Software Product Line </li></ul></ul><ul><li>Challenges </li></ul><ul><ul><li>Getting everyone onboard </li></ul></ul><ul><ul><li>Gain the right competence for managing an software product line </li></ul></ul><ul><ul><ul><li>Design & Architecture </li></ul></ul></ul><ul><ul><ul><li>Process & Methodology </li></ul></ul></ul><ul><ul><ul><li>Management </li></ul></ul></ul>Organization <ul><li>Risks </li></ul><ul><ul><li>The workflow doesn't support the product line vision </li></ul></ul><ul><ul><li>Shortcuts undermine the software product line vision </li></ul></ul><ul><ul><li>To long leadtime to establish the product line </li></ul></ul>
  28. 29. Agenda <ul><li>Introduction </li></ul><ul><li>Product Line basics </li></ul><ul><li>Software Build </li></ul><ul><li>Organization </li></ul><ul><li>Profits </li></ul><ul><li>Summary </li></ul>Profits
  29. 30. Productivity graph Profits
  30. 31. Lightweight software product lines <ul><li>minimize differences between single-system and product line engineering in order to minimize impact on: </li></ul><ul><ul><li>organization </li></ul></ul><ul><ul><li>processes </li></ul></ul><ul><ul><li>tools </li></ul></ul><ul><ul><li>infrastructure </li></ul></ul><ul><li>utilize an incremental adoption strategy </li></ul><ul><ul><li>Example: Develop a reference architecture concurrently with the production of the present product. </li></ul></ul><ul><li>Use off-the-shelf software product line tools and technology </li></ul><ul><li>minimize the need for complex and costly merging </li></ul>Profits
  31. 32. Agenda <ul><li>Introduction </li></ul><ul><li>Product Line basics </li></ul><ul><li>Software Build </li></ul><ul><li>Organization </li></ul><ul><li>Profits </li></ul><ul><li>Summary </li></ul>Summary
  32. 33. Conclusions – Introducing and using product line approach <ul><li>Achieve new business goals </li></ul><ul><ul><li>Efficiency improvements </li></ul></ul><ul><ul><li>Cost reduction </li></ul></ul><ul><li>Reuse & Re-enter </li></ul><ul><ul><li>Requirements </li></ul></ul><ul><ul><li>Design models </li></ul></ul><ul><ul><li>Source code </li></ul></ul><ul><ul><li>Test cases </li></ul></ul><ul><li>Increase quality in our products </li></ul><ul><li>More fun at work! </li></ul><ul><ul><ul><li>Shorter time to market </li></ul></ul></ul><ul><ul><ul><li>Quality improvement </li></ul></ul></ul><ul><ul><ul><li>Increased productivity … </li></ul></ul></ul>Summary
  33. 34. THE END