Вы находитесь на странице: 1из 63

Chapter 3,

UML revisited: a deeper look


Object-Oriented
S
oftware
Construction
r!in "# Cre!ers, Sascha lda $ %obias
&ho 'based on "rue((e $ )utoit*
Overview
Use case dia(ra!s
)escribe the functional behavior of the s+ste! as seen ,unctional
b+ the user !odel
bstraction fro! a set of scenarios
Class dia(ra!s
Object
)escribe the static structure of the s+ste!: classes,
!odel
attributes, associations
Se-uence and Collaboration dia(ra!s
)escribe the d+na!ic behavior between actors and the
s+ste! and between objects of the s+ste!
Statechart dia(ra!s
)escribe the d+na!ic behavior of an individual object )+na!ic
'essentiall+ a finite state auto!aton* !odel
ctivit+ )ia(ra!s
Model the d+na!ic behavior of a s+ste!, in particular the
workflow 'essentiall+ a flowchart*
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 3
Scenarios
)escription of a se-uence of interactions with the
envisioned s+ste!
)escribed fro! the user4s point of view
5llustrate co!!on cases
,ocus on understandabilit+
Concrete persons and actions
6o abstractions or alternatives
e#(# avoid 7so!e7, 7so!ethin(7, role na!es, 8
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 9
/:a!ple Scenario
;aul purchases a ticket
;aul would like to bu+ a train ticket fro! "onn to Colo(ne at a
ticket vendin( !achine
<e selects the =&S 7&e(io %icket7 which includes this
distance %he !achine displa+s the a!ount due: 1,>0 ?
;aul inserts a >0 ? bill
%he !achine returns 3,@0 ?
%he !achine issues a 7&e(io %icket7
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 A
Use Case )ia(ra!s:
%he idea
bstracts fro! a set scenarios
Use case dia(ra!s represent the functionalit+ of the s+ste! fro!
userBs point of view
,ocus on co!pleteness
)efine the boundaries of the s+ste!
Used
)urin( re-uire!ents elicitation
%o discuss current and future functionalit+ with the users
s a startin( point for all further activities
8
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 1
Use Case )ia(ra!s:
%he idea C '"asic in(redients*
Actors !odel an e:ternal entit+
which co!!unicates with the
s+ste!
Use cases represent se-uences
of interactions with the s+ste!
;assen(er
DDinitiatesEE
<<communicates>>
;urchase%icket
)escription of dependencies
between s+ste! functionalities
and e:ternal actors
%he use case !odel is the set
of all use cases# 5t is a co!plete
description of the functionalit+
of the s+ste! and its interaction
with the environ!ent
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 3
Use Case )ia(ra!s:
ctors
;assen(er
n actor !odels an external entit+ which
co!!unicates with the s+ste!
User
/:ternal s+ste! ')", software, devices*
n actor has a uni-ue na!e and an
optional description
/:a!ples:
;assen(er: person in the train
F;S satellite: ;rovides the s+ste! with
F;S coordinates
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 G
Use Case )ia(ra!s:
Use Case
n use case represents a class of functionalit+
as an se-uence of abstract interactions
'flow of events*
use case consists of
Uni-ue na!e
;urchase%icket
;articipatin( actors
/ntr+ conditions ' optional *
,low of events
/:it conditions ' optional *
6on-functional re-uire!ents
<ard to infer fro! the (raphical representation
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 @
Use Cases
%e:tual &epresentation
%e!plate for a te:tual use case
Use case name
Participating Actors
Flow of Events
Entry Condition
Exit Condition
Non-Functional Requirements
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 >0
Use Cases
%e:tual &epresentation
DDinitiatesEE
;assen(er ;urchase%icket
Use case name ;urchase ticket
Participating Actors 5nitiated b+ ;assen(er
Flow of Events ># ;assen(er selects the nu!ber of .ones to be
Initiated by an actor
traveled#
C# SHS%/M displa+s the a!ount due#
3# ;assen(er of at least the a!ount
due '/:tension #
9# SHS%/M returns 5nitiated b+ the s+ste!
A# SHS%/M issues
Entry Condition ;assen(er standin( in front of ticket distributor#
Exit Condition ;assen(er has a correct ticket#
Non-Functional Requirements I %he ;assen(erJs ticket is issued within >A seconds#
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 >>
Use Case )ia(ra!s:
%he enerali!ation"#n$eritance &elationship
UML:
Use Cases
;assen(er
;urchase
%icket
;urchase%icket
Special,ee
;urchase
Froup%icket
Fenerali.ation is used like
between classes
Means speciali.ation
'inverted direction*
/:tended or different
functionalit+
,unctionalit+ can be used
or overridden
Concrete speciali.ation
of abstract use cases
'pol+!orphis!*
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 >C
Use Case )ia(ra!s:
%he %%include&& &elationship
;assen(er
;urchaseMultiCard
;urchaseSin(le%icket
DDincludeEE
DDincludeEE
%%include&& relationship is
used to include behavior
defined b+ another use case
Used to share helpful
behavior a!on( use cases
;oints fro! the 'ase use case
to the inclusion use case
"ase use case cannot
run independentl+
CollectMone+
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 >3
Use Case )ia(ra!s:
%he %%extend&& &elationship
%%extend&& relationship is used
to e:tend a use case b+
e:ceptional, optional or seldo!
;assen(er
invoked cases#
Base Use Case
/:tension ;oints
$andleException
;urchase%icket
DDe:tendEE
'handle/:ception*
DDe:tendEE 'handle/:ception*
KOptional FuardL
OutOfOrder
/:tension points !ust be defined
in the 'ase use case
Conditions '(uards* !a+ be
specified when the extension
use case will be inserted
%he direction of a %%extend&&
relationship is fro! the e:tension
use case to the base use case
"ase use case can
run independentl+
Supplier Use Case
Cancel
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 >9
Use Case )ia(ra!s:
Overview
/le!ents
ctor
;acka(e
Use cases
nnotations
&elations
name
comments ...
A B
<<include>>
A
<<extend>>
B
A B
<<inherit>>
Example
Role of
an actor
customer salesperson
place order
When placing an order, ...
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 >A
)escribin( the ,low of /vents
DDincludeEE and DDe:tendEE
Inclusion DDincludeEE Base
Use Case Use Case
DDincludeEE relationship Coll ectMone+ ;urchase%i cket
...
3. Passenger confir!s the purchase of a ticket
9# SHS%/M receives the confir!ation and asks for
insertin( coins 'b+ includin( Collect(any)
DDe:tendEE relationship
Extension DDe:tendEE Base
Use Case
handle/:ception
Use Case
Cancel ;urchase%icket
"ase Use Case:
8
C# /;: Cancel
8
%he Cancel use
case
e:tends
an+ use
case in which the user presses the Cancel button
1. Passenger presses the Cancel button
C# SHS%/M rolls back the transaction
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 >1
Use Case )ia(ra!s:
Su!!ar+
Use Case dia(ra!s !odel the observable functionalit+ of a s+ste!
)escribe the interactions of the s+ste! and its environ!ent
Use Cases consist of dia(ra!s and te:tual description 'of
behavior, actors, entr+ conditions, etc#*
Use Cases are needed to discuss the s+ste!Bs functionalit+ with users
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 >G
Class )ia(ra!s
Classes
)escribe the static structure of the s+ste!
class represents a concept
class encapsulates state *attri'utes) and behavior *operations)
/ach attribute has a type
/ach operation has a signature
%he class na!e is the onl+ !andator+ infor!ation
%ariffSchedule
.oneCprice
(etMones'*
(et;rice'*
%ariffSchedule
%able .oneCprice
6a!e
/nu!eration (etMones'*
;rice (et;rice'Mone*
ttributes
Si(nature
Operations 'Methods* %ariffSchedule
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 C0
Class )ia(ra!s:
5nheritance of 5nterface
%%interface&&
(ovea'le
5!ple!entation Fenerali.ation
Car
%%interface&&
Extd(ovea'le
5nterfaces are classes that define a set of e:ternall+
accessible operations without i!ple!entations contract
for classes
5!ple!entation classes !ust provide
concrete i!ple!entation
Otherwise: bstract classes
Stereot+pe: Used for e:tendin( UML ele!ents
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 C>
Class )ia(ra!s:
bstract classes
abstract class
%%a'stract&&
Car
concrete class
M+Car
bstract class contains both i!ple!ented !ethods and
interface infor!ation of !ethods 'no i!ple!entation (iven*
CanBt be instantiated directl+
Subclass !ust i!ple!ented interface !ethods and
may override i!ple!ented !ethods
5f so!e interface !ethods are not i!ple!ented, then the
subclass is a(ain an abstract class#
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 CC
Class )ia(ra!s:
((re(ation
n aggregation is a special case of association denotin( a Nis-part
ofO hierarch+
%he aggregate *w$ole) is the parent class, the parts are the
children class
((re(ate and its part can e:ist independentl+
;arts can be rebound to other a((re(ates
,ire Station Car
usually
0##>
>
P
9 >
!bulance Qheels ,ire,i(hter /n(ine
brand power inch power
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 C3
Class )ia(ra!s:
Co!position
solid dia!ond denotes composition, a stron( for! of a((re(ation
where parts cannot e:ist without the a((re(ate
)eletion of the a((re(ate causes the deletion of its parts
;arts cannot be rebound to other a((re(ates
Usa(e is not alwa+s obvious Usa(e should be ar(ued
Countr+ %ree <u!an
usually
>
RR
or
P
State
inch
P
>
Leaf <eart
inch inch
P
%own
power
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 C9
Class )ia(ra!s:
%he four is-part-of cate(ories
exclusive not exclusive
(only part of one unit) (part of several units)
dependent
1 1..*
(propagation of
deletion operations) + explicit specifcation of
deletion propagation
company 1 *department project
1.*
*Time-
plan
independent
0..1 *
(no propagation of
deletion operations)
car 0..1 4 tire project *
*
employees
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 C1
Class )ia(ra!s:
ssociation Classes
ttributes and operations can be attached to an association
Sob
salar+
Co!pan+ >
P
;erson
Co!pan+ > P Sob > >
;erson
salar+
lternative !odelin(: proble!sR
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 CG
)+na!ic Model
Se-uence $ Collaboration )ia(ra!s
State )ia(ra!s
ctivit+ )ia(ra!s
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 30
Se-uence dia(ra!s
;assen(er
:%icketMachine
selectMone'*
insertCoins'*
pickupChan(e'*
pickUp%icket'*
Used durin( re-uire!ents anal+sis
%o refine use case descriptions
to find additional objects
Actors represent e:ternal entities
initiatin( the se-uence
+',ects
specific parts involved in the
collaboration 'rectangles*
(essages
e:chan(ed durin( interactions
'la'eled solid arrows*
-ifelines
life ti!e of an object 'das$ed lines*
Activations
ti!e durin( which as class is perfor!in(
an action 'vertical 'ars*
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 3>
Se-uence dia(ra!s:
5nstance ,or!
;assen(er
:Mone "utton :%ariffSchedule :)ispla+
selectMone'*
lookup;rice'selection*
price
displa+;rice'price*
8to be continued###
=isuali.e one possi'le interaction
%he ori(in of an arrow indicates the activation which sent the !essa(e
Stick arrowhead:
Control is passed to receiver
6o further details about co!!unication are provided
return is shown with a dashed line#
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 3C
Se-uence dia(ra!s:
)escriptor ,or! '5teration $ Condition*
8continued fro! previous slide###
;assen(er
:Chan(e;rocessor :Coin5dentifier :)ispla+ :Coin)rop
P
insertChan(e'coin*
lookupCoin'coin*
price
5teration displa+;rice'owed!ount*
Kowed!ountD0L returnChan(e'-owed!ount*
Condition
8to be continued###
bstract Se-uences visuali.e all possi'le interactions
Objects drawn without underlines
5teration is denoted b+ a P precedin( the !essa(e na!e
Condition is denoted b+ boolean e:pression in K L before the
!essa(e na!e
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 33
Se-uence dia(ra!s:
Creation and destruction
;assen(er
:Chan(e;rocessor
Creation
:%icket
print'*
free'*
)estruction
Creation is denoted b+ a !essa(e arrow pointin( to the object
)estruction is denoted b+ an T !ark at the end of the destruction
activation
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 39
Se-uence dia(ra!s:
Self-)ele(ation
aMethod
aMethod
n !ethod !a+ invoke itself recursivel+ 'self-dele(ation*
6estin( !a+ occur to an arbitrar+ depth
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 3A
Se-uence dia(ra!s:
S+nchronous interaction
:Sender :&eceiver :Sender :&eceiver
Messa(e Messa(e
'i!plied &eturn*
&eturn
/:plicit return 5!plicit return
!essa(e invokes an operation s+nchronousl+ 'filled arrowhead*
Sender passes control to the receiver via the !essa(e and pauses to wait
for the receiver to return control 'i!plicitl+ or e:plicitl+*
6ested se-uences co!plete before their outer se-uence resu!e
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 31
Se-uence dia(ra!s:
Concurrenc+ 's+nchronous interaction*
:Sender :&eceiver
Messa(e
&eturn :
&epresent a non-nested flow of control via a !essa(e# %he !essa(e
invokes an operation as+nchronousl+ 'half-filled arrowhead*#
"oth Objects sta+ active, can co!!unicate with each other
5f the receiver returns infor!ation to the sender, the infor!ation !ust be
e:plicit
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 33
Se-uence dia(ra!s:
Su!!ar+
UML se-uence dia(ra! represent behavior in ter!s of interactions
Useful to find !issin( objects
%i!e consu!in( to build but worth the invest!ent
Co!ple!ent the class dia(ra!s 'which represent structure*
/as+ understandable Control ,low
Concurrenc+ can be presented
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 3G
Collaboration )ia(ra!s
5nteraction
of several objects
of one object with itself
chronolo(ical se-uence of !essa(es
6o lifeline
%i!e order of !essa(es is indicated with nu!bers
dvanta(es over se-uence dia(ra!s
structural relationships between objects '!essa(e interaction alon(
concrete links*
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 3@
)+na!ic Model:
Collaboration )ia(ra!
c : Client
condition
!essa(e
1: [isMember] create()
link 2: setActions( values, Test )
3: destroy()
: %ransaction
d : Database
2.1: updateRecord*( values[ i ] )
anon+!ous object
2.2: setValue(Test ) na!ed object
Se-uence nu!ber
5teration 'P*
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 90
)+na!ic Model:
Statechart )ia(ra!s
Modelin( the behavior of one sin(le object
State !achine
"ehavior that specifies the se-uences of states an object
(oes throu(h durin( its lifeti!e in response to events
States
Condition or situation durin( the lifeti!e of an object durin( which it
satisfies so!e condition, perfor!s so!e activit+, or waits for events
Can be nested
Can have concurrent and se-uential sub states
/vent
si(nificant occurrence that has a location in ti!e and space
%ransition
relationship between two states
dorned b+ conditions, event, actions 'so!e
e:ecutable co!putation*
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 9>
)+na!ic Model:
Statechart )ia(ra!s U basic !odel
initial state
anEvent
[aCondition]
aNameOfState1 / anAction aNameOfState2
do / anActivity
transition
final state
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 9C
/:a!ple: Statechart )ia(ra!
initial state state
condition 2 action
[not all items checked]
[All items checked &&
/ get next item
Checking all items available] Dispatching
do/check item do/initiate delivery
[All items checked &&
some items not in stock]
Item received
[some items not in stock]
Waiting
Item received [all
items available]
activit+
e:pression
delivered
transition
self-transition
Delivered
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 93
6ested Statechart )ia(ra!
co!posite state
[not all items checked]
[All items checked &&
/get next item
Checking all items available] Dispatching
do/check item do/initiate delivery
[All items checked &&
some items not in stock]
Item received
[some items not in stock]
Item received [all
items available]
sub state
delivered
Waiting
Delivered
start
canceled
resume
Idle
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 99
Concurrent Statechart )ia(ra!s
canceled
Waiting
Calling Dispatching
Picked Up
Authorized
Phone
Canceled
lso applies to
concurrent nested
states#
Delivered
,inal state of a parallel
se-uence of states
Rejected
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 9A
Concurrent Statechart )ia(ra!s
lternative
canceled
Canceled
Waiting
Checking Dispatching
Delivered
Authorizing Authorized
Rejected
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 91
Statechart dia(ra!s
Su!!ar+
Sub states help to reduce the nu!ber of transitions in a dia(ra!
Stub states enable
5nternal activities help to reduce the nu!ber of states and transitions
in a dia(ra!
&eduction of co!ple:it+#
Can also be used for !odelin( an+ kind of behavior 'use
cases, objects* but seldo! docu!ented
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 93
ctivit+ )ia(ra!s
n activit+ dia(ra! shows the control flow of a s+ste!
Handle Document Archive
Incident Incident Incident
special state dia(ra!, whose states are activities 'NfunctionsO*
6ot li!ited to one object
%wo kinds of states
Action state
to!ic 'in respect to the detail level of the !odel*
Activity state
!a+ contain other states
%his activit+ is !odelled b+ another activit+ dia(ra!
;rovide a task-centric view of the behavior of a set of objects
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 9G
ctivit+ )ia(ra!s:
Modelin( of )ecisions
Open
[lowPriority]
Allocate
Incident Ressources
[fre &
highPriority]
[not fre &
highPriority]
Notify
Fire Chief
Notify
Police Chief
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 9@
ctivit+ )ia(ra!s:
Modelin( Concurrenc+
S+nchroni.ation of several activities
;aralleli.ation of the control flow
Fork Synchronization
Allocate
Ressources
Open Coordinate Archive
Incident Ressources Incident
Document
Incident
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 A0
pplication and Solution )o!ain
OO
!odelin(
pplication )o!ain '&e-uire!ents nal+sis*
5ncorporates ph+sical environ!ent, users and their work
processes in which the s+ste! should operate
pplication )o!ain Model
Solution )o!ain 'S+ste! )esi(n, Object )esi(n*
/!braces !odels that describe possible solutions for
a software s+ste!s that are appropriate for operatin(
'supportin(* in the application do!ain#
One has to select the !ost suitable or practical solution
S+ste! Model
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 A>
pplication and Solution )o!ain:
Object-oriented !odelin(
OO
!odelin(
pplication )o!ain Solution )o!ain
pplication )o!ain Model S+ste! Model
Use Case )ia(ra!
Class )ia(ra!
State )ia(ra!
Se-uence )ia(ra!
r!in "# Cre!ers, ctivit+ )ia(ra!
Sascha lda $ %obias &ho 'b sed on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 AC
Conclusions: UML Su!!ar+
UML provides a wide variet+ of notations for representin( !an+
aspects of software develop!ent
;owerful, but co!ple: lan(ua(e
Can be !isused to (enerate unreadable !odels
Can be !isunderstood when usin( too !an+ e:otic features
,or now we concentrate on a few notations:
,unctional !odel: Use case dia(ra!
Object !odel: class dia(ra!
)+na!ic !odel: se-uence dia(ra!s, co!!unication
dia(ra!, statechart and activit+ dia(ra!s
r!in "# Cre!ers, Sascha lda $ %obias &ho 'based on "rue((e $ )utoit* Or(ani.ational &e-uire!ents /n(ineerin( 01203 A3

Вам также может понравиться