Evolving Industrial Software Architectures into a Software Product Line: A Case Study

1,463 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,463
On SlideShare
0
From Embeds
0
Number of Embeds
76
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • - The talk hasthesethreemajorparts
  • The robotscanbeused in variousindustrialprocessestospeedupproductionSuch as- Punktschweißen, Bogenschweißen, Lackieren, Zuschneiden/Fräsen, Pressensteuerung, Endbehandlung (z.B. Oberflächenbeschichtung), Materialhandhabung (z.B. Palletieren), Maschinenhandhabung (z.B. anreichen von Gegenständen)-$1.4 billion umsatz, 5,000 employees, more than 160000 installations world wide
  • The greatvarietyofrobotsandapplicationdomainshasledtothedevelopmentofmorethan 100 softwareapplicationsthispicturedepicts a veryhighleveloverviewoftherobotsapplicationdomain, produced after a surveyabbroboticssoftwareinvovlesbothrobotcontrollersoftwarerunning on RTOS, such asVxWorksand Windows CEand PC applicationsrunningunder Windowstheapplicationsvary in size
  • The problemwiththesoftwareisthehighamountoffunctionaloverlapManyfunctionalitieshavebeenimplemented multiple times in different applicationsforexample 11 applicationshave an operatorviewimplementedwithoutsharinganycodeThishasledtomaintenancecosts in therangeofseveralMio US$, becausebug fixes forthe same functionalityhavetobeappliedfor different applicationsthereasonforthefunctionaloverlap lies in thecorporatestructureof ABB withmany different developmentteamsacrossmany countriesthereisnocentralunitcoordinatingsoftwaredevelopmentactivities
  • We will nowlookatthree PC applications in moredepths, whichdefinetheproduct-linescope.PC applicationsassisttherobotcontrollersoftwarewith additional functionality, aswe will see
  • Weconducted a project, whereweanalysedfour ABB robotics PC applicationsThese arepickmaster 3 for pick/placeRobview 5 forpaintingPickmaster 5 forpalletzingAnd Robot Studio as a generalengineeringtoolfordifferenapplicationdomainsWeanalysedtheirsoftwarearchitectureandtriedto find functionalitythatcouldbereusedacrossproductsto form a softwareproductlineI will brieflyexplaintheapplicationdomainsforthe different softwareproductandthenshowsomescreenshotsofthetools
  • RV5allowsbothengineering on office PC andsupervisionduringruntime on thefactoryfloor
  • Here‘s an examplefor a palletizinglinefromswedenThe different to pick-andplaceapplicationsisthattherobotsaresubstantiallyslowerandcanliftheaviergoods (uptoseveral 100 kgs)
  • - Who canexplainwhat a software-productlineis?
  • - As an example, wereconstructedanddocumentedthesoftwarearchitecturesoftheapplicationsBeforeyouhaveseentheexternalfeaturesofthesoftware, nowhere‘showthestructurelooksinternallyhere‘sthehigh-levelarchitectureof PM5Itis a layeredarchitectured, withthe GUI atthe top andtheobject model anddatapersistenyatthebottomVariousfunctionaltiesforconfiguringandopeartingpalletizingapplicationaredistributedamongthe different componentdiagramsThisismore a logicalviewastheincludedcomponentare not directlymappabletocodeandthereareno formal interfacesamongthemThere also dynamicviewsofthearchtiectureas well asdetailleddiagramsforsomeofthemorecomplexcomponetns, which I will not showhere
  • engineering: offline robotprogramming on office PC, configurationsimulation: testingtherobotprograms on office PC toidentifyrobotcollissionsandassist optimal pathplanningSupervision: monitoringandcontrollingrobotsystemsduringrun timeJob control: additional processingofsensorinputdataduringrun timeJob coordination: synchronizing different jobs in a robotsystem, executejobswith minimal overhead (e.g., concurrentlypreparingnewcolorfornextpaintjobwith different color)Plant interaction: communicationwithothersystems, such as ERP systemsorotherproductionlines not involvingrobots
  • These arethe EXISTING softwareproducts in a different condensedviewthisisnothingnew, just mappingtheidentifiedcoarsefunctionalitiestotheexistingsoftware
  • Reuse: RV5for all supervisiontasks, RS withPluginsforengineeringTime-to-market: New applicationdomainscanbecoveredbysimplywritingpluginsto RS andthe Robot controllerScalability: The architecturecan handle smallto large installations. JCrdandJCtrl optional or redundant.Usability: Common look-and-feel in RS forengineeringand RV5 forsupervisionPerformance: Pick/Place: distributedvisionprocessingwith multiple JCtrlshasbeendiscussedandappliedfor patentReliability: Pick/Place: NosinglepointoffailureforJCtrl. Security: User Authentication in RPS interfaceMaintainability: .NET technology in all windowstools, lower potential forprogrammingerrors, easy towriteplugins
  • Evolving Industrial Software Architectures into a Software Product Line: A Case Study

    1. 1. © ABB Group <br />November 25, 2009 | Slide 1<br />Heiko Koziolek, ABB Corporate Research, DECRC/I1, 2009-06-26<br />Evolving Industrial Software Architectures into a Software Product LineA Case Study<br />
    2. 2. Software Product Line Engineering for ABB RoboticsOutline<br />© ABB Group <br />November 25, 2009 | Slide 2<br />
    3. 3. ABB RoboticsApplication Domains…more than 10 different domains<br />© ABB Group <br />November 25, 2009 | Slide 3<br />Arc Welding<br />Cutting<br />Painting/Coating<br />Spot Welding<br />Machine Tending<br />Press Tending<br />Material Handling<br />Finishing<br />
    4. 4. ABB RoboticsApplication Domains…more than 10 different domains<br />© ABB Group <br />November 25, 2009 | Slide 4<br />Building Advanced Killer Cyborgs<br />
    5. 5. ABB Robotics Software… more than 100 applications<br />© ABB Group <br />November 25, 2009 | Slide 5<br />1 - 2500 KLOCper Application<br />[Weber2006]<br />
    6. 6. ABB Robotics SoftwareFunctional Overlap<br />© ABB Group <br />November 25, 2009 | Slide 6<br />Thisfunctionalityhasbeendeveloped11timesacrossorganizations!<br />3D Program Editor<br />3<br />5<br />Process View<br />5<br />Monitoring<br />7<br />ProductionScheduling<br />7<br />Alarm & Event Handling<br />11<br />Operator View<br />0<br />2<br />4<br />6<br />8<br />10<br />12<br />Applications per Function<br />[Weber2006]<br />
    7. 7. Software Product Line Engineering for ABB RoboticsOutline<br />© ABB Group <br />November 25, 2009 | Slide 7<br />
    8. 8. ABB Robotics PC ApplicationsProduct Line Scope<br />© ABB Group <br />November 25, 2009 | Slide 8<br />PickMaster 3<br />RobView 5<br />PickMaster 5<br />Robot Studio<br />
    9. 9. © ABB Group <br />November 25, 2009 | Slide 9<br />Painting: RobView 5<br />
    10. 10. © ABB Group <br />November 25, 2009 | Slide 10<br />Engineering: Robot Studio<br />
    11. 11. ABB Robotics PC ApplicationsDistributed Development Teams<br />© ABB Group <br />November 25, 2009 | Slide 11<br />PickMaster 3<br />RobView<br />PickMaster 5<br />Robot Studio<br />
    12. 12. Software Product Line Engineering for ABB RoboticsOutline<br />© ABB Group <br />November 25, 2009 | Slide 12<br />
    13. 13. Product-Line Design Requirements & Goals<br />© ABB Group <br />November 25, 2009 | Slide 13<br />SystematicRe-use<br />Product Line Architecture<br />CommonLook & Feel<br />[…]<br />Product 1<br />Product n<br />ShorterTime-to-Market<br />[Bosch2001]<br />BetterMaintainability<br />
    14. 14. Product-Line Design Project Activities<br />ArchitectureRecovery<br />Manual / Automated Code Inspection<br />Stakeholder Interviews / Workshops<br />Customers<br />Architects / Developers<br />Domain Engineering<br />Unificationofunderlyingconcepts<br />Identificationofcommonfunctionality<br />Definition ofreusablecomponents<br />Iterative Attribute-Driven Design (ADD)<br />Design of New Interfaces<br />MigrationPlanning<br />© ABB Group <br />November 25, 2009 | Slide 14<br />
    15. 15. PickMaster 5 Software Architecture<br />© ABB Group <br />November 25, 2009 | Slide 15<br />Palletizing<br />
    16. 16. Domain EngineeringCommon Functionalities<br />© ABB Group <br />November 25, 2009 | Slide 16<br />Engineering<br />Simulation<br />Supervision<br />Job Control<br />Job Coordination<br />Plant Interaction<br />
    17. 17. Product-Line Design Old, High-Level Software Architectures<br />© ABB Group <br />November 25, 2009 | Slide 17<br />
    18. 18. New Product-Line DesignComponent & Connector View<br />© ABB Group <br />November 25, 2009 | Slide 18<br />
    19. 19. New Product-Line DesignExtra-functional Properties<br />© ABB Group <br />November 25, 2009 | Slide 19<br />Performance<br />Reuse<br />Maintainability<br />Reliability<br />Security<br />Scalability<br />Usability<br />Time-to-market<br />
    20. 20. LessonsLearnedWhat helped…<br />Survey of existing products, installations, and user customizations essential <br />Iterative Attribute-Driven Design (ADD) beneficialas multiple stakeholdersrequiremoreargumentation<br />Unifying concepts within different products helpful for understanding of the application domain <br />Emotional bindings of developer teams towards established products mitigated through dialogs<br />© ABB Group <br />November 25, 2009 | Slide 20<br />
    21. 21. LessonsLearnedWhat helped…<br />Quality Attribute Scenarioshelpfulforprioritizingqualityrequirements<br />Speed-up design and adoption through a champion advocating the benefits of a PLA<br />Commitmentforthetarget PLA mandatoryfrom all stakeholderstostartplanningmigrationactivities<br />© ABB Group <br />November 25, 2009 | Slide 21<br />
    22. 22. Further Research Needed…what is missing:<br />Methodsandtoolstodocument, analyseand managelarge softwareapplicationlandscapes<br />(Semi-)automatedreconstructionofarchitecturemodelsfromsourcecode<br />Mining legacycodeforreusablefunctionality<br />© ABB Group <br />November 25, 2009 | Slide 22<br />
    23. 23. © ABB Group <br />November 25, 2009 | Slide 23<br />is not a software company, but… <br />…there are quite a few software challenges to face!<br />
    24. 24. © ABB Group <br />November 25, 2009 | Slide 24<br />

    ×