the unified modeling language (uml)€¦ · the unified modeling language (uml) a standard...

34
The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

Upload: others

Post on 28-Jun-2020

17 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

The Unified Modeling Language (UML)

A Standard Graphical Modeling

Notation

Eddie Roache

Page 2: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 2

Outline

Why Use UML

History

UML Characteristics

Diagram Types

Use Case Diagrams

Class Diagrams

Page 3: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 3

Why Use UML?

Help analyze complex domains

Help design complex systems

Visualize analysis and design artifacts

Clearly document development artifacts

Is simple, yet expressive

Can be applied to different processes

Page 4: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 4

Some UML Examples

Shape

SplineEllipsePolygon

Shape

SplineEllipsePolygon

Shared Target Style

Separate Target Style

. . .

. . .

Source: OMG, Unified Modeling Language Specification, version 1.5. March 2003

Page 5: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 5

Some UML Examples

Source: OMG, Unified Modeling Language Specification, version 1.5. March 2003

Polygon PointContains

{ordered}

3..1

GraphicsBundle

colortexturedensity

1

1

-bundle

+points

Page 6: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 6

Some UML Examples

additional requests :

OrderProduct

SupplyArrange

«include»«include»«include»

RequestCatalog

«extend»Extension points

PaymentCustomer Data

after creation of the order

Place Order

1 * the salesperson asks forthe catalog

Source: OMG, Unified Modeling Language Specification, version 1.5. March 2003

Page 7: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 7

History

OO takes a foothold

New OO modeling notations spring up

Three amigos get together

Grady Booch

Ivar Jacobson

James Rumbaugh

UML 0.8 is born

Page 8: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 8

UML Characteristics

Unified Modeling Language

Standard graphical modeling notation

Supported by formal semantics

Current version: 2.0

Wide use and acceptance in the IT industry

Large tool support Rational Rose, Together, Visio, Jude, …

… although no tool fully supports the standard

Is not a process

Process independent

Page 9: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 9

Diagram Types

Structure diagrams

Class diagram

Object diagram

Component diagram

Deployment diagram

Package diagram

Composite Structure diagram

Behavior diagrams

Use Case diagram

Interaction diagrams

Sequence diagram

Interaction Overview diagram

Communications diagram

Timing diagram

State Machine diagram

Activity diagram

Page 10: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 10

Diagram Types

Source: OMG, Unified Modeling Language: Superstructure Specification, version 2.0. August 2005

Page 11: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 11

Use Case Diagrams

Model user interaction with system

Capture functional requirements

Also used for

business modeling

component specification

UML Spec does not include Use Case

Specs

Page 12: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 12

Use Case Definition

“A use case specifies a sequence of actions,

including variants, that the system can perform

and that yields an observable result of value to

a particular actor.”

“The Unified Software Development Process”,

Ivar Jacobsen*, Grady Booch, Jim Rumbaugh

*Author of “Object-Oriented Software Engineering: A Use Case Driven Approach”

Page 13: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 13

Use Case Specification

Name: Create AddressEntry

Description: This use case allows the actor to create a new entry for an Address Book.

Preconditions:

1. An Address Book is open.

Steps:

1. The actor requests to create a new AddressEntry.

2. The system creates a new AddressEntry and returns it to the actor.

Post Conditions:

1. An Address Book Entry is created.

See “Writing Effective Use Cases” and “http://alistair.cockburn.us/usecases/usecases.html”

Page 14: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 14

Use Case Diagrams

Actor

Use Case

Association

Dependency

extend

include

Generalization

Note (Comment)

Close AddressBook

<<extend>>

<<include>>

<<Actor>>

This is a note.

Page 15: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 15

Address Book Example

The Address Book System provides distributed access to a set of address books. An Address Book is made up of Address Book

Entries

An Address Book Entry contains a name, street address, phone number, email address

The Address Book System shall: allow users to create, view, delete, and save

address books

allow users to create, modify, and delete entries in an address book

Page 16: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 16

AddressBook System

Use Case Diagram

View AddressBook

AddressBook User

Create AddressBook

Delete AddressBook

Page 17: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 17

Use Case Diagram

View AddressBook

Add New Address

Update Address Delete Address

Save AddressBook

<<extend>>

<<extend>>

<<extend>>

<<extend>>

Address Book User

Close AddressBook

Create AddressEntry

Add AddressEntry

<<include>>

<<include>>

<<extend>>

Create PersonAddressEntry Create OrgAddressEntry

Page 18: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 18

Use Case Diagram

View AddressBook

Add New Address

Update Address Delete AddressEntry

Save AddressBook

Address Book User

Close AddressBook

Create AddressEntry

Add AddressEntry

<<include>>

<<include>>

Create PersonAddressEntry Create OrgAddressEntry

All dependencies are

extend unless stereotyped

otherwise

Page 19: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 19

Class Diagrams

Model system classes, interfaces, and

class relationships

Capture structural (vs. behavioral) info

Used for

business domain modeling

logical design

implementation design

Page 20: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 20

Class Diagrams

Class

Abstract Class

Class with

Attributes

and

Operations

AddressBook

AddressBook

AddressBook

-id

+name

+phone

+getName()

+getPhone()

Page 21: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 21

Class Diagrams

Dependency

Association

Navigability

Aggregation

Composition

Generalization

Page 22: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 22

Class Diagrams

Multiplicity

Constraint

Role

Name

Directionality

Nesting

1..2 *

{ordered}

*

+entry

has

displays

Page 23: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 23

Class Diagrams

Stereotype

Realization

Realization

Derived Assoc.

Association Class

Note (Comment)

<<Interface>>

This is a note.

/entry

<<Entity>>

Page 24: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 24

Class Model Element

Window

display ()

size: Areavisibility: Boolean

hide ()

Window

Window

+default-size: Rectangle#maximum-size: Rectangle

+create ()

+display ()

+size: Area = (100,100)#visibility: Boolean = invisible

+hide ()

-xptr: XWindow*

-attachXWindow(xwin:Xwindow*)

{abstract,author=Joe,status=tested}

Source: OMG Unified Modeling Language Specification, version 1.5. March 2003

Page 25: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 25

Class Model Element

bill no-shows

Reservation

operations

guarantee()cancel ()change (newDate: Date)

responsibilities

match to available rooms

exceptions

invalid credit card

Source: OMG Unified Modeling Language Specification, version 1.5. March 2003

Page 26: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 26

Address Book Domain

AddressBook

AddressEntry

*

Party

Person Organization

1 1

Page 27: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 27

Logical Design

AddressBookController AddressBookView

AddressBook

Page 28: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 28

Implementation Design

AddressBookController

AddressBook

AddressBookView

-addrBookFrame: JFrame

-addrList: JList

-entryNames: String[]

+show()

+update()

#createAddrBookFrame(): JFrame

+getEntryNames(): String[]

+createNewEntry(): AddressBookEntry

~removeEntry()

+findEntry(name: String): AddressBookEntry

AddressBookEntry

-name: String

+load()

+getEntryNames(): String[]

+addEntry()

+removeEntry()

+findEntry(name: String): AddressBookEntry

#name: String

#streetAddress: String

#city: String

#State: String

#Zip: String

#phoneNumber: String

#emailAddress: String

+toString(): String

* 1

1 1

1

*

Page 29: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 29

More UML Characteristics

Supported by formal semantics (meta-model)

Meta-Object Facility Specification

UML Model Interchange using XML Metadata

Interchange (XMI)

Object Constraint Language (OCL)

Action Semantics UML Extensions

Standard profiles

Page 30: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 30

Tools

Paper and Pencil

Any drawing program (preferably vector-based)

Rational Rose (and XDE)

Together

Jude

Poseidon

ArgoUML

StarUML

Many others . . .

Page 31: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 31

References

www.omg.org

www.uml.org

www.rational.com

www.martinfowler.com/books.html#uml

www.oreilly.com/catalog/umlnut/

www.oreilly.com/catalog/umlpr/

www.oreilly.com/catalog/learnuml/

http://www.ambysoft.com/elementsUMLStyle.html

The Unified Modeling Language User Guide

The Unified Modeling Language Reference Manual

http://alistair.cockburn.us/usecases/usecases.html

Page 32: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

Questions

Page 33: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 33

Class Diagram

Fruit

Apple Orange Pear

Granny Smith Red Delicious Rome

Seed *

Page 34: The Unified Modeling Language (UML)€¦ · The Unified Modeling Language (UML) A Standard Graphical Modeling Notation Eddie Roache

v1.2 Copyright © 2003-2006 Eddie Roache. All rights reserved. 34

Class Diagram

Source: OMG, Unified Modeling Language: Superstructure Specification, version 2.0. August 2005