Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara

717 views

Published on

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

  • Login to see the comments

  • Be the first to like this

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

×