Document 13117585

advertisement
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
Download