Sei sulla pagina 1di 22

Software Engineering in Robotics

Software Engineering Tools


Henrik I. Christensen hic@cc.gatech.edu

Objective

Introduction to two standard methods that are


widely used

RUP / UML as a tool for

Software Patterns

Design, Documentation and Validation


Standard methods for typical usage scenarios

Much more detail available elsewhere, but


adequate for basic use and for the rest of the
course

Outline

Rational Unified Process


Unified Modeling Language (UML)
Software Patterns

Rational Unified Process

A well know model that is widely used in


OOD/OOP
Came out of the Rational Software company
now owned by IBM
Rational Rose is still a well-known tool for
Software engineering
A process to capture the key aspects of
software development

Inception
Elaboration
Construction
Transition

Rational Unified Process

Considered to engage 6 disciplines

Business Modeling
Requirements
Analysis and Design
Implementation
Testing
Deployment

Rational Unified Process - Inception

Inception Phase

The business context why are we doing this?


The success factors
The required resources

Deliverables

A basic use case who are stakeholders/actors?


Project abstract/description
Initial Risk Assessment
Project Plan

Rational Unified Process - Elaboration

Elaboration

Detailed analysis to mitigate risks


Elaborate use-cases for 80% of all situations
Design of the overall architecture

Deliverables

Documentation/description of use-cases close to


complete
Description of system architecture, executable
version with main risks addressed
Revised business case and risk analysis
Development plan for the rest of the project

Rational Unified Process - Implementation

Implementation

The actual design and implementation of core


components
Evaluation of systems components as a prototype
system
Embedding test mechanisms in the software from
the start

Deliverables

System components (possible over iterations)


Initial prototype system that demonstrates basic
performance
Revised documentation of project

Rational Unified Process - Transition

Transition

Transition from prototype to production


Testing and Evaluation
Training of users and customers
Evaluation of quality against initial specification

Deliverables

Completed software including documentation


Evaluation / test results to document performance
A test / results to demonstrate performance
against specs

UML as a Tool

Unified Modeling Language

A standard language to describe software


structure and interaction
Standardized through the Object Management
Group OMG
Now at 2.2

Spin offs SysML, SPL,

A variety of tools available to assist in process


and to perform forensics on existing code

UML Parts

Use Case Modeling

Class Modeling

Class Modeling

Interaction Modeling

Patterns

Standard model/solution to software design


problems
Developed for OOD/OOP
There are a number of standard solutions
Creation Patterns

Structural Patterns

Generation of objects or collections


Organization of interfaces across objects

Behavioral Patterns

Standard methods such as iterators, request


management

Creational Patterns - Example

Factory

Create an instance of several derived classes


Features, Data Points, Robots

Structural Pattern - Example

Adapter

Match up interfaces across classes

Structural Pattern - Example

Proxy Pattern

Local representation of another object (say


network interface, remote robot, )

Behavioral Pattern - Example

Iterator

Sequential access to a collection without exposure


of internal structure

Summary

Brief overview of the RUP process / phases

Overview of UML

Examples of UML to document structure /


behavour in systems
A small set of typical diagrams for use in robotics

Software Patterns

There are many ways to think about OOD/OOP

Prototypical examples of methods in OOD


A few example to clarify the concept

Getting ready for hands-on use in robotics

Acknowledgement

This series of lectures has been developed


with generous support from the Microsoft
Corporation as part of the project Software
Engineering in Robotics Contract # 113873.
The support is gratefully acknowledged.

Potrebbero piacerti anche