You are on page 1of 59

UML DIAGRAMOS

1 Dr. Agnė Paulauskaitė-Tarasevičienė


PLAČIAUSIAI NAUDOJAMI UML DIAGRAMŲ TIPAI

1. Sekų diagramos:
Aprašo objektų sąveiką (pranešimų pagalba) ir jų
elgseną duotoje sitacijoje.
2. Panaudos atvejų diagramos:
Aprašo sistemos elgseną iš vartotojo perspektyvos.
3. Veiklos diagramos:
Aprašo sistemos veiklų sekas tam tikrame
detalumo lygyje.
4. Klasių diagramos:
Aprašo statinę sistemos struktūrą. Klasė aprašo
objektų grupę, kurie turi panašius atributus ir
vienodą elgseną
2
UML PANAUDOJIMO ATVEJŲ
DIAGRAMA
3
PANAUDOJIMO ATVEJŲ DIAGRAMOS

Tokios diagramos aprašo sistemos funkcionalumą


panaudojant aktorius ir galimus panaudojimo atvejus.
Diagramos elementai:
1. Aktoriai
2. Panaudos atvejai
sistema
3. Ryšiai
4. Sistemos ribos
veikla

aktorius

4
AKTORIAI
Aktoriai aprašo sistemos vartotojus.
Aktorius yra klasė.
Kiekvienas aktorius aprašo skirtingą vartotojo ar
sistemos rolę, pvz.: sistema
 pardavėjas, Peržiūrėti
prekes
 pirkėjas,..

Pirkti
prekes

Užsakyti
pirkėjas prekes pardavėjas

5
Apskųsti
pardavėją
PANAUDOJIMO ATVEJIS veikla

Panaudos atvejai atvaizduoja veiksmus


atliekamus vieno ar daugiau aktorių siekiant
konkretaus tikslo pvz.:
sistema
 užsakyti prekes,
Peržiūrėti
 Pirkti prekes, prekes
 Peržiūrėti prekes,...
Pirkti
prekes

Užsakyti
pirkėjas prekes pardavėjas

6
Apskųsti
pardavėją
ĮTRAUKIMAS <<include>>

o Įtraukimas yra naudojamas norint parodyti, kaip panaudojimo


atvejis yra suskaidomas į mažesnes veiklas.
o Įtrauktas panaudojimo atvejis yra rodyklės pabaigoje.
o Atliekant vartojimo atvejį, būtinai atliekamos ir <<include>>
veiklos
Atkreipkite dėmesį, kad diagrama nerodo veiklų sekos.

Restoranas
Užsakyti
maistą

Klientas
Pasirinkti Pasirinkti 7
meniu Apmokėti
patiekalą
IŠPLĖTIMAS <<extend>>

 Praplėtimai veikia tik prie tam tikrų sąlygų.


 Praplėstas atvejis atvaizduojamos rodyklės pabaigoje.

 Atkreipti dėmesį diagramoje nenurodomos konkrečios


sąlygos prie kurių taikomas praplėtimas (tai galima
nurodyti komentaruose)

Užsakyti
maistą Apmokėti

Jei laikas tarp


klientas Pasirinkti 12.00-16.00
meniu Pasirinkti
patiekalą Paklausti
8
kas dienos
pietų
ĮTRAUKIMAS VS. IŠPLĖTIMAS

 X << include>> Y reiškia, kad užduotis X turi


sub-užduotį Y; tai reiškia, kad užduoties
įvykdymui Y užduotis bus įvykdoma mažiausiai
vieną kartą.
 X <<extend>> Y reiškia, kad X yra tokio pačio tipo
užduotis kaip ir Y, bet X yra labiau specifinis
atvejis; t.y. X veikla turi tam tikras sąlygas, kurios
turi būti įvykdytos norint atlikti Y veiklą.

9
PAVELDĖJIMAS
Susieja specializuotus ir apibendrintus elementus.
Apibendrintas elementas yra rodyklės gale.
Specializuotas panaudojimo atvejis iš jo apibendrinto
atvejo paveldi:
 visus tikslus;
 aktorius. vairuotojas

Specializuotas aktorius iš jo apibendrinto


aktoriaus paveldi:
 panaudojimo atvejus,
 atributus,
Taksi 10
 asociacijas. vairuotojas
PAVYZDYS

Užsakyti
maistą

Apmokėti
klientas Pasirinkti
Pasirinkti patiekalą
meniu

kortele grynais
Paklausti
kas dienos
pietų
Užsakyti
staliuką
telefonu
11
VIP klientas
ARTEFAKTAS
 Artefaktas pateikiama nuoroda į kitą diagramą arba
dokumentą.

Užsakyti
maistą

Apmokėti
Klientas Pasirinkti
Pasirinkti patiekalą
meniu

kortele grynais
Paklausti
kas dienos
pietų
<<artifact>> 12
kortele.veiklos diagrama
UML VEIKLOS DIAGRAMA
13
PAGRINDINIAI VEIKLŲ DIAGRAMOS ELEMENTAI

Veikla (angl. activity): Atvaizduoja veiksmų Veikla


aibę.

Valdymo rodyklę: Rodo veiklų įvykdymo seką.

Pradinė viršūnė: Pažymi veiksmų pradžią.

Pabaigos viršūnė: Naudojama sustabdyti


(nutraukti) visas veiklas.
Objekto rodyklė: Rodo objekto kelią iš vienos
veiklos i kitą.
Objekto viršūnė: Naudojama atvaizduoti
objektą kuris sujungtas su Objekto objektas
rodyklėmis.
14
PAGRINDINIAI VEIKLŲ DIAGRAMOS ELEMENTAI

Sąlygos viršūnė (angl. decision): Naudojama


opc1 opc2
atvaizduoti testinei sąlygai parenkant
veiklą viena iš galimų krypčių.

Apjungta viršūnė (angl. merge): Naudojama


sugrąžinti skirtingus sprendimo kelius
kartu, kurie buvo sukurti naudojant
sąlyginę viršūnę.
Išsišakojimo viršūnė (angl. fork): Yra
naudojama padalinti elgseną į kelias
lygiagrečias veiklas.

Sujungimo viršūnė (angl. join): Naudojama


sugražinti ir apjungti lygiagrečias veiklas.

Juosta “Swimlane”: tai būdas, kaip vienoje


juostoje sugrupuoti to pačio aktoriaus
atliekamas veiklas. 15
PAGRINDINIAI VEIKLŲ DIAGRAMOS
ELEMENTAI
Veiklos
pobūdis
Pradžia

Veikla
Veikla
Veiklos rodyklė
Pabaiga

 Komentaras

16
Pavyzdys

pradžia

Įdėti kortelę veikla

valdymo
rodyklė
Atlikti
operacijas

Pasiimti kortelę

pabaiga 17
VEIKLŲ DIAGRAMOS ELEMENTAI

 Sprendimo viršūnė (2 atvaizdavimo būdai)

Veikla

Taip Ne
Veikla Ar Veikla
A<B

Veikla

[A<B] [A>=B]
Veikla Veikla
18
VEIKLŲ DIAGRAMOS ELEMENTAI

Suliejimo viršūnė (angl. merge)

Veikla 1 Veikla 2 Veikla 1

Veikla 3
Veikla 3

Veikla
Veikla

Veikla 2

19
Pavyzdys
Įdėti kortelę
Suliejimas

Suvesti PIN

Taip Ar PIN Ne
teisingas

Atlikti
operacijas
sprendimas

Pasiimti kortelę
20
VEIKLŲ DIAGRAMOS ELEMENTAI

 Veiksmų išskyrimas (išsišakojimas)


Patikrinti ar yra
prekė
Priimti
užsakymą
Patikrinti ar
vartotojas yra
registruotas

 Veiklų apjungimas
Prekės likutis
patikrintas
Pateikti
užsakymą
21
Vartotojo mokumas
patikrintas
Pavyzdys
Įdėti kortelę

Suvesti PIN

Taip Ar PIN Ne
teisingas
Pasirinkti
sumą
išsišakojimas

Atiduoti
Duoti pinigus
kortelę
sujungimas

Užbaigti
operaciją 22
SWIMLANE

 Swimlane juosta yra naudojama tada,


kai norime išskirti veiklas kiekvienam
atsakingai aktoriui(veikėjui) atskirai.

Vartotojas Sistema

Įvesti vartotojo Tikrinti vartotojo


duomenis duomenis

23
“swimlane”
Klientas Bankomatas Bankas

Įdėti kortelę

Ne
Ar PIN
Suvesti PIN
teisingas

Taip
Parenkama Pasirinkti
suma sumą

Duoti pinigus

Atiduoti
kortelę
Užbaigti
operaciją 24
Klientas Bankomatas Bankas

Įdėti kortelę

Ne
Ar PIN
Suvesti PIN
teisingas
Taip

Parenkama Pasirinkti
suma sumą

Atiduoti Duoti
kortelę pinigus

kortelė Pinigai objektas

Užbaigti
operaciją

25
Klientas Bankomatas Bankas

Įdėti kortelę

Ne
Ar PIN
Suvesti PIN
teisingas
Taip

Parenkama Pasirinkti
suma sumą
laikas

30sek.

Atiduoti Duoti
kortelę pinigus

Kortelė Pinigai

Užbaigti
operaciją
26
Klientas Bankomatas Bankas

Įdėti kortelę

Ne
Ar PIN
Suvesti PIN
teisingas
Taip

Parenkama Pasirinkti
suma sumą

Pertraukimo
30sek.
zona
Atiduoti Duoti
kortelę pinigus

Kortelė Pinigai
Priimtas įvykio
signalas
Vagystė
Užbaigti
operaciją
27
Skambinti
policijai
Klientas Bankomatas Bankas

Įdėti kortelę

Ne
Ar PIN
Suvesti PIN
teisingas
Taip

Parenkama Pasirinkti
suma S sumą

30sek.

Atiduoti Duoti
kortelę pinigus
S=100
Įėjimo ir
Kortelė išėjimo pin’ai

Gauti S=100
pinigus
Užbaigti
operaciją
28
Klientas Bankomatas Bankas

Įdėti kortelę

Ar PIN
Suvesti PIN
teisingas
Taip

Ne
Parenkama Pasirinkti
suma S sumą
Negrąžinti
kortelės
30sek.

Atiduoti Duoti
kortelę pinigus
S=100
Veiklos
Kortelė pabaiga

Gauti S=100
pinigus
Užbaigti
operaciją
29
UML SEKŲ DIAGRAMA
30
SEKŲ DIAGRAMA
objektai
Aktoriai

:Pardavėjas :Sistema :Sandelys


1: Įvesti prekes numerį (Nr.)

2:surasti(Nr.)

3: likutis(kiekis)

4:Informacija klientui(Info)

atributai

Gyvavimo trukmė 31
RODYKLIŲ REIKŠMĖS

Asinchroninis – kviečiantysis objektas


nelaukia, kol kviečiamas objektas atliks
veiksmus, susijusius su pranešimu.
Sinchroninis – kviečiantysis objektas
laukia kol kviečiamas objektas atliks
veiksmus, susijusius su pranešimu.
Reikšmės gražinimas – atsakymas į
kvietimą.

32
OBJEKTŲ REIKŠMĖS

studentas :Studentas s:Studentas

Objektas, kurio Anoniminis s objektas,


pavadinimas objektas, kurio kurio tipas yra
studentas, tačiau tipas yra Studentas
jo tipas Studentas 33
nenurodytas
:bankomatas :Bankas
:vartotojas

Įdėti kortelę

Pareikalauti PIN kodo

Suvesti PIN kodą

Kodo patikrinimas

... .... ... atsakymas

34
SĄLYGINIS MODELIAVIMAS “ALT”
:tipas :tipas
....
Pranešimas ()

alt
[sąlyga 1]
Pranešimas ()

[sąlyga 2] Pranešimas ()

[else]
Pranešimas ()

35
SĄLYGINIS MODELIAVIMAS. PAVYZDYS

:vartotojas :bankomatas

....

Užklausa(suma)

alt
[sąsk.likutis>=suma]
Pinigai (suma)

[else]
Likutis nepakankamas!

36
SĄLYGINIS MODELIAVIMAS “OPT”

:tipas :tipas

....

opt

[sąlyga ] Jeigu sąlyga yra


Pranešimas () tenkinama
išsiunčiami abu
pranešimai
Pranešimas ()

37
SĄLYGINIS MODELIAVIMAS. PAVYZDYS
:destytojas :studentas

....

Užduotis

atsakymas

Įvertinimas(balas)

opt
[balas<4] naujaUžduotis

atsakymas

Surašymas į 38
sistemą
SĄLYGINIS MODELIAVIMAS “LOOP”

D:dekanas Studentų kursas

....

Loop

Studentų>0 Abu pranešimai


siunčiami tol kol
Įteikti diplomą (diplomas)
tenkinama sąlyga

Paspausti ranką

39
OBJEKTŲ SUKŪRIMAS/NAIKINIMAS

 Objekto sukūrimas  Objekto sunaikinimas

A:tipas A:tipas B:tipas

sukurti naikinti
B:tipas

40
UML KLASIŲ DIAGRAMA
41
KLASIŲ DIAGRAMOS

 Nusako statinę sistemos struktūrą.


 Aprašo klases ir sąryšius tarp jų.
 Neaprašo dinaminių sistemos aspektų:
 Kaip sistemos struktūra kinta jos veikimo metu,
 Kaip keičiasi sąryšiai tarp objektų,
 Dinaminiam aprašymui skirti kiti diagramų tipai.

42
KLASĖ
Klasė
Nusako objekto būseną / charakteristikas Atributai
Aprašo veiksmus su objektu, keičia
atributų reikšmes Operacijos

Account Student
-amount:int
-number:int -name:string
-number_of_account: int -id: int

createAccount() #getID():int
deposit(amount:int):void +getname():string 43
withdraw(amount:int):void
PRIEINAMUMAS

Pavadinimas Žymė Reikšmė

private - Gali naudoti tik tos klasės objektai.

public + Gali naudoti visi objektai

package ~ Gali naudoti tik tame pačiame pakete


esantys objektai.
protected # Gali naudoti ir paveldinčių klasių
objektai.

44
SKIRTINGI ABSTRAKCIJOS LYGIAI

45
SĄRYŠIAI TARP KLASIŲ

Generalizacija
 Paveldėjimas (sąryšis tarp specializuoto ir
bendro tipo)
 Realizacija(sąryšis tarp klasės ir sąsajos,
kurią jis realizuoja)
Asociacija
 Nepriklausomybė
 Agregacija
 Kompozicija 46
PAVELDĖJIMAS Tėvo klasė

Transporto
 Nusako klasių hierarchinius priemonė

sąryšius
 Visi atributai ir metodai
paveldimi iš tėvinės klasės
Lengvasis
automobilis

Vaiko klasė
47
PAVELDĖJIMAS

Rodyklės tipas nurodo kokio tipo yra tėvas.


 Klasė
 Abstrakti klasė
 Sąsaja (Interfeisas)

48
RShape
<<interface>>
Shape -w:int
-h: int
#RShape(w:int, h:int)
+constrains()
+distance()
+getArea():double +getArea():double

Rectangle
-x:int
-y: int
+Rectangle(x:int, y;int, w:int, h:int)
+constrains() 49

+distance()
PAVELDĖJIMO SĄRYŠIO NAUDOJIMAS

 Paveldėjimas nėra skirtas parodyti sąveikai tarp


klasių – tam tikslui naudojama asociacija arba
priklausomybė.
 Bendru atveju paveldėjimas pasako, kad viena
klasė yra kitos klasės patobulinimas (vaiko klasė
gali turėti papildomų atributų ir metodų lyginant
su tėvo klase).

50
REALIZACIJA
 Nuo paveldėjimo skiriasi tuo, kad aprašyti
metodai ne paveldimi, o turi būti realizuoti.
 Klasė realizuoja atributus ir operacijas
aprašytus sąsajos.
 Taikoma ir abstrakčioms klasėms
Abstrakti klasė – tai klasė turinti nerealizuotų metodų
(neturinčių kūno).

51
ASOCIACIJOS
 Nusako semantinį ryšį tarp klasių;
 Dvipusis arba vienpusis ryšys;

 Asociacija naudojama parodyti, kad konkrečios


klasės objektai naudojasi kitos klasės objektais(-u),
t.y. naudojasi tų objektų metodais ir atributais.
 Asociacijos rodyklė rodo į tą klasę, kurios metodais
ar atributais yra naudojamasi:

52
ASOCIACIJOS SAVYBĖS

1. Pavadinimas (Vairuoja)
2. Kardinalumas (1, 1..*, 0..*, 0)
 * – 0,1 ar daugiau,
 1 – tiksliai vienas,
 2..4 – tarp 2 ir 4,
 3...* – 3 ir daugiau.
3. Rolės (vairuotojas, kompanijos automobilis)

53
ASOCIACIJŲ DAUGIALYPIŠKUMAS

 Vienas su vienu

studentas 1 turi 1
IDCard

 Vienas su daug

studentas Egzaminas
* turi 1

54
ASOCIACIJOS TIPAI

 Agregacija : “is a part of”

1 1
automibilis Variklis

 Kompozicija : “is entiraly made of”


1 *
Knyga Puslapis

 Priklausomybė : “uses temporarily”


Loterijos Random
bilietas
55
KOMPOZICIJA

 Kompozicija parodo, kad klasės


dalyvaujančios kompozicijoje, negali viena be
kitos funkcionuoti.

1 *
Knyga Puslapis

56
AGREGACIJA

 Agregacija parodo, kad tam tikrais laiko


momentais (bet nevisada) vienos klasės
objektas(-ai) tampa kitos klasės objekto(-ų)
dalimi

1 1
Automibilis Variklis

57
PRIKLAUSOMYBĖ

 Priklausomybė naudojama netiesioginėms


priklausomybėms tarp klasių nurodyti:
 Vienai klasei perduodamas kitos klasės objektas kaip
metodo argumentas
 Naudojami statiniai klasės atributai ar metodai

Loterijos Random
bilietas

58
Klasių diagramos pavyzdys

59

You might also like