Roland Weiss, Jens Doppelhamer, Heiko Koziolek: Industrial Software Systems, ABB Corporate Research Germany Bottom-Up Software Product Line Design A Case Study Emphasizing the Need for Stakeholder Commitment © ABB Group April 23, 2009 | Slide 1 Bottom-Up Software Product Line Design Outline Mission Robotics PC Software Applications Software Product Line Design © ABB Group April 23, 2009 | Slide 2 1 is not a software company, but… …there are quite a few software challenges to face! © ABB Group April 23, 2009 | Slide 3 ABB Robotics Application Domains … more than 10 different domains Spot Welding Arc Welding Painting/Coating Cutting Press Tending Finishing Material Handling Machine Tending © ABB Group April 23, 2009 | Slide 4 2 ABB Robotics Software … more than 100 applications 1 - 2500 KLOC per Application [Weber2006] © ABB Group April 23, 2009 | Slide 5 ABB Robotics Software Functional Overlap Example functions Operation monitoring Alarm & event handling Production scheduling © ABB Group April 23, 2009 | Slide 6 3 The Mission Define PLA with coarsegrained systematic reuse Constraints • Reduce maintenance costs • Shorten time-to-market • • • • Retain current functionality Enable user extensibility Provide common look&feel Iterative transition to PLA must be possible © ABB Group April 23, 2009 | Slide 7 Software Product Line Engineering for ABB Robotics Outline Mission Robotics PC Software Applications Software Product Line Design © ABB Group April 23, 2009 | Slide 8 4 ABB Robotics PC Applications Product Line Scope PickMaster 3 RobView 5 PickMaster 5 Robot Studio © ABB Group April 23, 2009 | Slide 9 ABB Robotics PC Applications Distributed Teams Production tool Monitoring and tuning Engineering + production tool Paint extensions Engineering, monitoring, tuning Plugin Framework Pick-n-place and palletizing .Net / C# Extension mechanism RobotStudio RobView - MFC / C++ (RS) (RV) Bryne Engineering tool Engineering and simulation Paint extensions Plugin Mechanism .Net / C# PickMaster (PM) 5 Painting: RobView 5 © ABB Group April 23, 2009 | Slide 11 Pick&Place: PickMaster 3 PickMaster 3 Picking and Placing © ABB Group April 23, 2009 | Slide 12 6 Software Product Line Engineering for ABB Robotics Outline Mission Robotics PC Software Applications Software Product Line Design © ABB Group April 23, 2009 | Slide 13 Design PLA Starting point Architecture documentation UI Framew ork (Configuration) Basic UI «use» Available for 2 products Sketches available for 1 product Not available for 1 product UI Framew ork (Operation) Line Configuration Configuration Logic «use» «use» Configuration UI Vision Configuration optional: to support operation on multiple platforms Operation UI Proj ect Configuration Controller Configuration Vision Display Vision Logic Robot Control Tuning Execution Operation Logic Execution Control Algorithms Constraints Checking To fill gaps… «use» Obj ect Model Communication System Manager:: Obj ect Model Vision Serv er:: Obj ect Model (v ision specific) Motion Serv er:: Obj ect Model (motion specific) Pallet Display:: Obj ectModel Utility Types Ev ent Handling Base Types Persistency (XML, data base access) Stakeholder interviews were executed Manual and automated code inspection was performed clearly separate configuration and operation data © ABB Group April 23, 2009 | Slide 14 7 Design PLA Approach Elicit requirements Key architectural drivers Composability: reuse and quality Maintainability: less costs in distributed locations Performance: production part 24/7 Domain engineering Find coarse components for composition Harmonize different domains Attribute driven design Mapping of functionality to components satisfying key drivers 2-3 iterations done, based on complexity and priority Tight coordination with chief architects of single products © ABB Group April 23, 2009 | Slide 15 Domain Engineering Common Functionalities Engineering Job Control Simulation Job Coordination Supervision Plant Interaction © ABB Group April 23, 2009 | Slide 16 8 Mapping Functionalities to Existing Applications Old, High-Level Software Architectures © ABB Group April 23, 2009 | Slide 17 New Product-Line Design Component & Connector View Plant Interaction Controller Remote Interface OPC Extension API Supervision Tool Job Coordinator Remote Interface Picking Plug-In Painting Plug-In Plugin API Engineering / Simulation Tool RPS Job Controller Palletizing Plug-In Coordination Plug-In Legend Plant Interaction Engineering Supervision Job Control RPS Job Coordination Robot Controller Extension API Picking Extension Painting Extension Palletizing Extension © ABB Group April 23, 2009 | Slide 18 9 Product-Line Design Deployment View Third Party PLC Plant Interaction Controller Windows PC Extension API Supervision Tool Painting Plug-In Coordination Plug-In Job Coordinator Remote Interface Picking Plug-In Plugin API Windows PC Remote Interface OPC Engineering / Simulation Tool Windows PC RPS Job Controller Palletizing Plug-In RPS Windows PC (located in office environment) IRC5 Robot Controller, VxWorks Real-Time OS Robot Controller Extension API Picking Extension Painting Extension Palletizing Extension © ABB Group April 23, 2009 | Slide 19 Product-Line Design Multiplicity View Plant Interaction Controller Remote Interface OPC Extension API Supervision Supervision Supervision Tool Tool Tool Job Coordinator Remote Interface Picking Plug-In Painting Plug-In Plugin API Engineering / Simulation Tool Coordination Plug-In RPS Job Controller Job JobController Controller Palletizing Plug-In RPS Robot Robot Robot Controller Controller Controller Extension API Picking Extension Painting Extension Palletizing Extension © ABB Group April 23, 2009 | Slide 20 10 Product-Line Design Quality Attributes Plant Interaction Controller Remote Interface OPC Composability Extension API Supervision Supervision Supervision Tool Tool Tool Job Coordinator Remote Interface Picking Plug-In Maintainability Painting Plug-In Plugin API Engineering / Simulation Tool Performance Coordination Plug-In RPS Reliability Job Controller Job JobController Controller Palletizing Plug-In Security RPS Scalability Robot Robot Robot Controller Controller Controller Extension API Picking Extension Usability Painting Extension Palletizing Extension Time-to-market © ABB Group April 23, 2009 | Slide 21 Observations & Lessons Learned A survey of existing products and user customizations is essential Using iterative Attribute-Driven Design (ADD) was beneficial to confirm and establish the PLA Unifying some concepts within the different products gave all parties a better understanding of the application domain The emotional bindings towards their established products, was an obstacle to get their commitment facilitate dialog With multiple stakeholders, the architecture proposal needed more argumentation and an iterative approach. A champion advocating the benefits of a PLA can speed-up the design process and adoption. It is mandatory to have commitment for the target PLA from stakeholders to start planning migration activities and detailed design: avoid obsolete work. © ABB Group April 23, 2009 | Slide 22 11 Next Steps Execute iterative transformation of independent products into PLA First iteration planned to start summer 2009 © ABB Group April 23, 2009 | Slide 23 © ABB Group April 23, 2009 | Slide 24 12