Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more...

12
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 Mission Robotics PC Software Applications Software Product Line Design © ABB Group April 23, 2009 | Slide 2

Transcript of Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more...

Page 1: Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more than 100 applications © ABB Group April 23, 2009 | Slide 5 1 - 2500 KLOC per Application

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

Page 3: Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more than 100 applications © ABB Group April 23, 2009 | Slide 5 1 - 2500 KLOC per Application

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

Page 4: Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more than 100 applications © ABB Group April 23, 2009 | Slide 5 1 - 2500 KLOC per Application

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

Page 5: Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more than 100 applications © ABB Group April 23, 2009 | Slide 5 1 - 2500 KLOC per Application

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++

Page 6: Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more than 100 applications © ABB Group April 23, 2009 | Slide 5 1 - 2500 KLOC per Application

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

Page 7: Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more than 100 applications © ABB Group April 23, 2009 | Slide 5 1 - 2500 KLOC per Application

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»

Page 8: Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more than 100 applications © ABB Group April 23, 2009 | Slide 5 1 - 2500 KLOC per Application

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

Page 9: Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more than 100 applications © ABB Group April 23, 2009 | Slide 5 1 - 2500 KLOC per Application

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

Page 10: Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more than 100 applications © ABB Group April 23, 2009 | Slide 5 1 - 2500 KLOC per Application

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

Page 11: Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more than 100 applications © ABB Group April 23, 2009 | Slide 5 1 - 2500 KLOC per Application

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

Page 12: Bottom-Up Software Product Line Design A Case Study …€¦ · 3 ABB Robotics Software … more than 100 applications © ABB Group April 23, 2009 | Slide 5 1 - 2500 KLOC per Application

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