Sei sulla pagina 1di 44

The UML and the RUP

the Unified Modeling Language the Rational Unified Process

Craig Murphy craig.murphy@currieb.co.uk Enterprise Developer Currie & Brown

Two for the price of one


Unified Modeling Language
models software-intensive systems

Rational Unified Process


web-enabled software engineering process

Disclaimer
Currently integrating the UML into our development practices Currently implementing the RUP Enterprise-wide web-enabled cost management solution Not an exhaustive overview at the UML

Agenda
Motivation What is the UML? UML Basics UML Diagrams Summary

Motivation

What the user really wanted

Motivation

What the user asked for

Motivation

How the analyst saw it

Motivation

How the system was designed

Motivation

As the programmer wrote it

Motivation

How the system actually worked (on a Monday...)

Motivation
The morel of the story
Communication Effective multi-disciplinary communication

The Tower of Babel


HHGTTG

Motivation
Writing code is only a portion of total development effort

Motivation
BizTalk Orchestration is UML-based Consumer-to-Consumer (C2C) Consumer-to-Business (C2B) Business-to-Consumer (B2C) Business-to-Business (B2B) Application-to-Application (A2A)

Motivation
Why bother modelling?
Greater user involvement Experimentation Reduce complexity Cost management Greater user satisfaction

Under-the-bus management

Agenda
Motivation What is the UML? UML Basics UML Diagrams Summary

What is the UML?


The UML is a standard language for visualising, specifying, constructing and documenting the artifacts of a softwareintensive system.
The UML User Guide

What is the UML?


Artifacts artifact
A piece of information that is used or produced by a software development process An artifact can be a model, a description, or software (a piece of code)

What is the UML?


Staged usage:
Conceptual Logical Physical

Iterative refinement adds detail

What is the UML?


Visualising (Visual Modeling) STRUCTURE Static Diagrams
Class Object Component Deployment

BEHAVIOR Dynamic Diagrams


Use Case Sequence Collaboration State transition Activity

1 bitmap = 1 megaword
- anonymous visual modeler

What is the UML?


Specifying Processes Rules Conditions Logic

What is the UML?


Constructing Implementation language independent
C, C++, C# Java, Delphi Visual Basic Active Scripting

Logical implementation is mapped to a physical implementation

What is the UML?


Documenting Requirements Architecture Design Source Code Project Plans Tests Prototypes Releases

Agenda
Motivation What is the UML? UML Basics UML Diagrams Summary

UML Basics
Class Modeling Key part of the UML More in a few moments

UML Basics
Use-Case modeling Actors

Use-Case Realisation
visualise business processes sequence diagrams collaboration diagrams

UML Basics
Use Case Realisation Recycle Items: The user uses this machine to automatically have all the return items (bottles, cans, and crates) counted, and receives a receipt. The receipt is to be cashed at a cash register (machine).

UML Basics
Use Case Modeling

UML Basics
Component Modeling Visualise the physical nature of the system
code components run-time components (e.g. msxml3.dll) executables ASP scripts

UML Basics
Deployment Modeling Configuration of servers and the processes that run on them

Visualises the distribution of components across the enterprise

Agenda
Motivation What is the UML? UML Basics UML Diagrams Summary

UML Diagrams
Class Modeling class diagrams
association role names aggregation multiplicity navigation operations and attributes generalisation

UML Diagrams
Class Modeling
name

attributes

role

multiplicity

association

UML Diagrams
Class Modeling

UML Diagrams
Class Modeling
aggregation

composite aggregation

UML Diagrams
Class Modeling

navigability

generalisation

UML Diagrams
Class Modeling Operation/Attribute Visibility
Public Private Protected Implementation

UML Diagrams
State transition

UML Diagrams
Collaboration

UML Diagrams
Sequence

UML Diagrams
Activity

Why bother?
Good UML tools offer integrated document control
code creation add an operation once and once only increased visibility

Summary
Traceability Increased communication
Reduces the chance of failure or error

Encourages component-based development


enhances scalability encourages re-use

Summary
Easy to learn
Developers, analysts, designers, architects

Model large, complex software systems

Simple to learn
20% of the constructs are used 80% of the time

Use case modeling encourages objectorientation

Questions?