Embed
Email

UML

Document Sample

Shared by: panniuniu
Categories
Tags
Stats
views:
26
posted:
12/2/2011
language:
English
pages:
26
1

CS115 Class 8: UML



• Due today

– Read: Practical UML

• Next Class

– Review: Software Inspections

• One week from now

– Deliverable: Design

– Design presentation by Blue Team







2

Modeling



• Describing a system at a high level of

abstraction

– A model of the system

– Used for requirements and specification





• Many notations over time

– State machines

– Entity-relationship diagrams

– Dataflow diagrams

– ...

3

Recent History: 1980’s



• 1980’s

– The rise of object-oriented programming

– New class of OO modeling languages

– By early ’90’s, over 50OO modeling languages

• 1990’s

– Three leading OO notations decide to combine

• Grady Booch (BOOCH)

• Jim Rumbaugh (OML: Object Modeling Technique)

• Ivar Jacobsen (OOSE: OO Soft. Eng)

– Why?

• Natural evolution towards each other

• Effort to set an industry standard



4

UML



• UML stands for

Unified Modeling Language





• Design by committee

– Many interest groups participating

– Everyone wants their favorite approach to be “in”

– Big tent





• Resulting design is huge

5

This Lecture



• We discuss

– Class Diagrams for structural models

– Sequence Diagrams

– Activity Diagrams for dynamic models









• This is a subset of UML

– But probably the most used subset





6

Running Example: Automatic Train



• Consider an unmanned people-mover

– as in many airports





• Train

– Moves on a circular track

– Visits each of two stations (A and B) in turn

– Each station has a “request” button

• To stop at this station

– Each train has two “request” buttons

• To stop at a particular station



7

Class Diagrams



• Describe classes

Train

– In the OO sense

lastStop



nextStop

• Each box is a class

velocity

– List fields

doorsOpen?

– List methods





• The more detail, the addStop(stop);



more like a (detailed) startTrain(velocity);

design it becomes stopTrain();



openDoors();

8

Class Diagrams: Relationships



• Many different kinds of

edges to show different

relationships between

classes





• Mention just a couple









9

Associations



• Capture n-m

relationships Station Train

– Subsumes ER diagrams 1 1

1 2

• Label endpoints of edge

with cardinalities RequestButton

– Use * for arbitrary



One request button

• Typically realized with per station; each train

embedded references has two request

buttons

• Can be directional (use

10

arrows in that case)

Aggregation



• Show contains a

relationships Station Train

1 1

• Station and Train 1 2

classes can contain their

RequestButton

respective buttons





• Denoted by open

diamond on the

“contains” side

11

Generalization



• Inheritance between

classes

Button



• Denoted by open

triangle









RequestButton EmergencyButton





12

Sequence Diagrams



• A table

– Columns are classes or actors

– Rows are time steps

– Entries show control/data flow

• Method invocations

• Important changes in state









13

Example Sequence Diagram







Passenger Station Train

pushButton() Classes &

addStop()

Actors





openDoors()

pushButton(S)

closeDoors()









14

Example Sequence Diagram







Passenger Station Train

pushButton() Method

addStop()

invocation



Note: These

openDoors() are all

pushButton(S) synchronous

closeDoors()

method calls.

There are

other kinds of

invocations.

15

Example Sequence Diagram







Passenger Station Train

pushButton() Invocation

addStop()

lifetime spans

lifetimes of all

nested

openDoors()

invocations

pushButton(S)

closeDoors()









16

Example Sequence Diagram







Passenger Station Train

pushButton() “Lifelines” fill

addStop()

in time

between

invocations

openDoors()

pushButton(S)

closeDoors()









17

Sequence Diagrams Notes



• Sequence diagrams

– Gives view of dynamic behavior of classes

• Class diagrams give the static class structure





• Not orthogonal to other diagrams

– Overlapping functionality

– True of all UML diagrams









18

Activity Diagrams



• Reincarnation of flow charts

– Uses flowchart symbols





• Emphasis on control-flow





• Two useful flowchart extensions

– Hierarchy

• A node may be an activity diagram

– Swim lanes

19

Example Activity Diagram



Activities in Station Train

rounded

rectangles pushButton







May itself be a

nested activity

diagram lightButton addStop









20

Example Activity Diagram



Concurrency, Station Train

fork & join

pushButton









lightButton addStop









21

Example Activity Diagram



Swim lanes Station Train

show which

classes/actors pushButton

are responsible

for which part

of the diagram



lightButton addStop









22

Opinions about UML: What’s Good



• A common language

– Makes it easier to share requirements, specs, designs





• Visual syntax is useful, to a point

– A picture is worth 1000 words

– For the non-technical, easier to grasp simple diagrams than

simple pseudo-code





• To the extent UML is precise, forces clarity

– Much better than natural language





• Commercial tool support

– Something natural language could never have 23

Opinions On UML: What’s Bad



• Hodge-podge of ideas

– Union of most popular modeling languages

– Sublanguages remain largely unintegrated





• Visual syntax does not scale well

– Many details are hard to depict visually

• Ad hoc text attached to diagrams

– No visualization advantage for large diagrams

• 1000 pictures are very hard to understand





• Semantics is not completely clear

– Some parts of UML underspecified, inconsistent

– Plans to fix 24

UML is Happening



• UML is being widely adopted

– By users

– By tool vendors

– By programmers





• A step forward

– Seems useful

– First standard for high-levels of software process

– Expect further evolution, development of UML

25

University of California



• UC has

– campuses

– schools

– departments

– professors

– classes

– students

– majors

• What’s a good UML class diagram?

– be flexible (but not too flexible) 26



Related docs
Other docs by panniuniu
Valuation of contingent claims and the
Views: 0  |  Downloads: 0
excel sample
Views: 0  |  Downloads: 0
Bare
Views: 0  |  Downloads: 0
Ch14
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!