Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more...
Transcript of Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more...
1
© ABB Group April 23, 2009 | Slide 1
Bottom-Up Software Product Line Design A Case Study Emphasizing the Need for Stakeholder Commitment
Roland Weiss, Jens Doppelhamer, Heiko Koziolek: Industrial Software Systems, ABB Corporate Research Germany
Bottom-Up Software Product Line Design Outline
MissionRobotics PC
Software Applications
Software Product
Line Design
© ABB Group April 23, 2009 | Slide 2
2
© ABB Group April 23, 2009 | Slide 3
is not a software company, but…
…there are quite a few software challenges to face!
ABB Robotics Application Domains… more than 10 different domains
© ABB Group April 23, 2009 | Slide 4
Spot Welding Arc Welding Painting/Coating Cutting
Press Tending Finishing Material Handling Machine Tending
3
ABB Robotics Software… more than 100 applications
© ABB Group April 23, 2009 | Slide 5
1 - 2500 KLOC
per Application[Weber2006]
ABB Robotics SoftwareFunctional Overlap
© ABB Group April 23, 2009 | Slide 6
Example functions
Operation monitoring
Alarm & event handling
Production scheduling
4
The Mission
© ABB Group April 23, 2009 | Slide 7
• Reduce maintenance costs
• Shorten time-to-market
Define PLA with coarse-
grained systematic
reuse
• Retain current functionality
• Enable user extensibility
• Provide common look&feel
• Iterative transition to PLA must be possible
Constraints
Software Product Line Engineering for ABB RoboticsOutline
MissionRobotics PC
Software Applications
Software Product
Line Design
© ABB Group April 23, 2009 | Slide 8
5
ABB Robotics PC ApplicationsProduct Line Scope
© ABB Group April 23, 2009 | Slide 9
PickMaster 3
PickMaster 5 Robot Studio
RobView 5
ABB Robotics PC ApplicationsDistributed Teams
RobView (RV)
PickMaster (PM)
RobotStudio (RS)
Bryne
Production tool
Monitoring and tuning
Paint extensions
Plugin Framework
.Net / C#
Engineering tool
Engineering and simulation
Paint extensions
Plugin Mechanism
.Net / C#
Engineering + production tool
Engineering, monitoring, tuning
Pick-n-place and palletizing
Extension mechanism
- MFC / C++
6
© ABB Group April 23, 2009 | Slide 11
Painting: RobView 5
PickMaster 3Picking and Placing
© ABB Group April 23, 2009 | Slide 12
Pick&Place: PickMaster 3
7
Software Product Line Engineering for ABB RoboticsOutline
MissionRobotics PC
Software Applications
Software Product
Line Design
© ABB Group April 23, 2009 | Slide 13
Design PLAStarting point
Architecture documentation
Available for 2 products
Sketches available for 1 product
Not available for 1 product
To fill gaps…
Stakeholder interviews were executed
Manual and automated code inspection was performed
© ABB Group April 23, 2009 | Slide 14
Object Model
System Manager::
Object Model
Vision Serv er::
Object Model
(v ision specific)
Motion Serv er::
Object Model
(motion specific)
Pallet Display::
ObjectModel
Base TypesUtility Types
Robot ControlVision Logic
Persistency (XML,
data base access)
Configuration UI Operation UI
Operation LogicConfiguration Logic
Line
Configuration
Project
Configuration
Vision
Configuration
Controller
Configuration
Ev ent
Handling
Execution
Control
Communication
Algorithms
Constraints
Checking
UI Framework
(Operation)
UI Framework
(Configuration)
Basic UI
TuningVision
Display
Execution
clearly separate
configuration and
operation data
optional: to support operation
on multiple platforms«use»«use» «use»
«use»
8
Design PLAApproach
© ABB Group April 23, 2009 | Slide 15
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
Domain EngineeringCommon Functionalities
© ABB Group April 23, 2009 | Slide 16
Engineering Simulation Supervision
Job Control Job Coordination Plant Interaction
9
Mapping Functionalities to Existing ApplicationsOld, High-Level Software Architectures
© ABB Group April 23, 2009 | Slide 17
New Product-Line DesignComponent & Connector View
© ABB Group April 23, 2009 | Slide 18
Plant Interaction Controller
Engineering / Simulation Tool
Supervision Tool
Robot Controller
PaintingExtension
PaintingPlug-In
Extension API
RPS
OPC
Plugin API
PickingPlug-In
PalletizingPlug-In
Job Controller
Job Coordinator
PalletizingExtension
Picking Extension
Remote Interface RPS
Remote Interface
Plant Inter-action
Super-vision
Engine-ering
Job Control
Legend
Job Coordi-nation
Coordi-nation Plug-In
Extension API
10
Product-Line DesignDeployment View
© ABB Group April 23, 2009 | Slide 19
Plant Interaction Controller
Engineering / Simulation Tool
Supervision Tool
Robot Controller
PaintingExtension
PaintingPlug-In
Extension API
RPS
OPC
Plugin API
PickingPlug-In
PalletizingPlug-In
Job Controller
Job Coordinator
PalletizingExtension
Picking Extension
Remote Interface RPS
Remote Interface
Coordi-nation Plug-In
Extension API
IRC5 Robot Controller, VxWorks Real-Time OS
Windows PC
Windows PC
Windows PC(located in office environment)
Windows PC
Third Party PLC
Product-Line DesignMultiplicity View
© ABB Group April 23, 2009 | Slide 20
Supervision Tool
Supervision Tool
Robot Controller
Robot Controller
Job ControllerJob Controller
Plant Interaction Controller
Engineering / Simulation Tool
Supervision Tool
Robot Controller
PaintingExtension
PaintingPlug-In
Extension API
RPS
OPC
Plugin API
PickingPlug-In
PalletizingPlug-In
Job Controller
Job Coordinator
PalletizingExtension
Picking Extension
Remote Interface RPS
Remote Interface
Coordi-nation Plug-In
Extension API
11
Reliability
Product-Line DesignQuality Attributes
© ABB Group April 23, 2009 | Slide 21
Supervision Tool
Supervision Tool
Robot Controller
Robot Controller
Job ControllerJob Controller
Plant Interaction Controller
Engineering / Simulation Tool
Supervision Tool
Robot Controller
PaintingExtension
PaintingPlug-In
Extension API
RPS
OPC
Plugin API
PickingPlug-In
PalletizingPlug-In
Job Controller
Job Coordinator
PalletizingExtension
Picking Extension
Remote Interface RPS
Remote Interface
Coordi-nation Plug-In
Extension APIComposability
Scalability
Time-to-marketUsability
Performance
Security
Maintainability
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
12
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