Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
UML DIAGRAMOS
Dr. Agnė Paulauskaitė-Tarasevičienė1
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 tikramedetalumo lygyje.
4. Klasių diagramos:Aprašo statinę sistemos struktūrą. Klasė aprašoobjektų grupę, kurie turi panašius atributus irvienodą 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
3. Ryšiai
4. Sistemos ribos
4
veikla
aktorius
sistema
AKTORIAI
Aktoriai aprašo sistemos vartotojus.
Aktorius yra klasė.
Kiekvienas aktorius aprašo skirtingą vartotojo ar
sistemos rolę, pvz.:
pardavėjas,
pirkėjas,..
5
Peržiūrėti
prekes
Pirkti
prekes
Užsakyti
prekespirkėjas pardavėjas
sistema
Apskųsti
pardavėją
PANAUDOJIMO ATVEJIS
Panaudos atvejai atvaizduoja veiksmus
atliekamus vieno ar daugiau aktorių siekiant
konkretaus tikslo pvz.:
užsakyti prekes,
Pirkti prekes,
Peržiūrėti prekes,...
6
veikla
Peržiūrėti
prekes
Pirkti
prekes
Užsakyti
prekespirkėjas pardavėjas
sistema
Apskųsti
pardavėją
ĮTRAUKIMAS
7
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.
Užsakyti
maistą
Pasirinkti
meniuPasirinkti
patiekaląApmokėti
<<include>>
Klientas
Restoranas
IŠPLĖTIMAS
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)
8
<<extend>>
Užsakyti
maistą
Pasirinkti
meniu Pasirinkti
patiekalą
Apmokėti
Paklausti
kas dienos
pietų
klientasJei laikas tarp 12.00-16.00
Į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 apibendrintoatvejo paveldi:
visus tikslus;
aktorius.
Specializuotas aktorius iš jo apibendrinto
aktoriaus paveldi:
panaudojimo atvejus,
atributus,
asociacijas.10
vairuotojas
Taksi
vairuotojas
PAVYZDYS
11
Užsakyti
maistą
Pasirinkti
meniu
Pasirinkti
patiekalą
Apmokėti
grynais kortele
klientas
VIP klientas
Užsakyti
staliuką
telefonu
Paklausti
kas dienos
pietų
ARTEFAKTAS
Artefaktas pateikiama nuoroda į kitą diagramą arba
dokumentą.
12
Užsakyti
maistą
Pasirinkti
meniu
Pasirinkti
patiekalą
Apmokėti
grynais kortele
Klientas
Paklausti
kas dienos
pietų <<artifact>>
kortele.veiklos diagrama
UML VEIKLOS DIAGRAMA13
Veikla (angl. activity): Atvaizduoja veiksmų
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
rodyklėmis.
Veikla
objektas
PAGRINDINIAI VEIKLŲ DIAGRAMOS ELEMENTAI
14
Sąlygos viršūnė (angl. decision): Naudojama
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.
opc1 opc2
PAGRINDINIAI VEIKLŲ DIAGRAMOS ELEMENTAI
15
PAGRINDINIAI VEIKLŲ DIAGRAMOS
ELEMENTAI
Pradžia
Veikla
Veiklos rodyklė
Pabaiga
Komentaras
Veikla
Veiklos
pobūdis
16
Įdėti kortelę
Atlikti
operacijas
Pasiimti kortelę
pradžia
veikla
pabaiga
Pavyzdys
17
valdymo
rodyklė
VEIKLŲ DIAGRAMOS ELEMENTAI
Sprendimo viršūnė (2 atvaizdavimo būdai)
Ar
A<B
Veikla
Taip Ne
Veikla
[A<B] [A>=B]Veikla Veikla
Veikla Veikla
18
VEIKLŲ DIAGRAMOS ELEMENTAI
Suliejimo viršūnė (angl. merge)
VeiklaVeikla
Veikla 1 Veikla 2
Vei
kla
3
Veikla 1
Veikla 2
Vei
kla
3
19
Įdėti kortelę
Suvesti PIN
Pasiimti kortelę
Ar PIN
teisingas
Atlikti
operacijas
Taip Ne
Suliejimas
sprendimas
20
Pavyzdys
VEIKLŲ DIAGRAMOS ELEMENTAI
Veiksmų išskyrimas (išsišakojimas)
Veiklų apjungimas
21
Patikrinti ar yra
prekė
Patikrinti ar
vartotojas yra
registruotas
Priimti
užsakymą
Prekės likutis
patikrintas
Vartotojo mokumas
patikrintas
Pateikti
užsakymą
Įdėti kortelę
Suvesti PIN
Užbaigti
operaciją
Ar PIN
teisingas
Pasirinkti
sumą
Taip Ne
išsišakojimas
Duoti pinigusAtiduoti
kortelęsujungimas
22
Pavyzdys
SWIMLANE
Swimlane juosta yra naudojama tada,
kai norime išskirti veiklas kiekvienam
atsakingai aktoriui(veikėjui) atskirai.
23
Vartotojas Sistema
Įvesti vartotojo
duomenis
Tikrinti vartotojo
duomenis
Klientas Bankomatas Bankas
“swimlane”
Įdėti kortelę
Suvesti PIN Ar PIN
teisingas
Pasirinkti
sumą
Parenkama
suma
Duoti pinigus
Atiduoti
kortelę
Užbaigti
operaciją
Taip
Ne
24
Klientas Bankomatas Bankas
Įdėti kortelę
Suvesti PIN Ar PIN
teisingas
Pasirinkti
sumą
Parenkama
suma
Duoti
pinigus
Atiduoti
kortelę
Užbaigti
operaciją
Taip
Ne
kortelė Pinigai objektas
25
Klientas Bankomatas Bankas
Įdėti kortelę
Suvesti PIN Ar PIN
teisingas
Pasirinkti
sumą
Parenkama
suma
Duoti
pinigus
Atiduoti
kortelę
Užbaigti
operaciją
Taip
Ne
Kortelė Pinigai
30sek.
laikas
26
Klientas Bankomatas Bankas
Įdėti kortelę
Suvesti PIN Ar PIN
teisingas
Pasirinkti
sumą
Parenkama
suma
Duoti
pinigus
Atiduoti
kortelę
Užbaigti
operaciją
Taip
Ne
Kortelė Pinigai
30sek.
Vagystė
Skambinti
policijai
Pertraukimo
zona
Priimtas įvykio
signalas
27
Klientas Bankomatas Bankas
Įdėti kortelę
Suvesti PIN Ar PIN
teisingas
Pasirinkti
sumą
Parenkama
suma S
Duoti
pinigus
Atiduoti
kortelę
Užbaigti
operaciją
Taip
Ne
Kortelė
30sek.
Įėjimo ir
išėjimo pin’ai
28
S=100
Gauti
pinigus
S=100
Klientas Bankomatas Bankas
Įdėti kortelę
Suvesti PIN Ar PIN
teisingas
Pasirinkti
sumą
Parenkama
suma S
Duoti
pinigus
Atiduoti
kortelę
Užbaigti
operaciją
Taip
Ne
Kortelė
30sek.
Veiklos
pabaiga
29
S=100
Gauti
pinigus
S=100
Negrąžinti
kortelės
UML SEKŲ DIAGRAMA
30
SEKŲ DIAGRAMA
Aktoriai
objektai
Gyvavimo trukmė
:Sistema:Sandelys
1: Įvesti prekes numerį (Nr.)
2:surasti(Nr.)
4:Informacija klientui(Info)
3: likutis(kiekis)
:Pardavėjas
atributai
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
33
OBJEKTŲ REIKŠMĖS
studentas :Studentas s:Studentas
Objektas, kurio
pavadinimas
studentas, tačiau
jo tipas
nenurodytas
Anoniminis
objektas, kurio
tipas yra
Studentas
s objektas,
kurio tipas yra
Studentas
34
:bankomatas
Įdėti kortelę
Pareikalauti PIN kodo
Suvesti PIN kodą
Kodo patikrinimas
:Bankas
atsakymas
:vartotojas
... .... ...
SĄLYGINIS MODELIAVIMAS “ALT”
:tipas :tipas
Pranešimas ()
Pranešimas ()
....
[sąlyga 1]
alt
Pranešimas ()[else]
Pranešimas ()[sąlyga 2]
35
SĄLYGINIS MODELIAVIMAS. PAVYZDYS
:vartotojas :bankomatas
Užklausa(suma)
Pinigai (suma)
....
[sąsk.likutis>=suma]
alt
Likutis nepakankamas!
[else]
36
SĄLYGINIS MODELIAVIMAS “OPT”
:tipas :tipas
Pranešimas ()
....
[sąlyga ]
opt
Pranešimas ()
Jeigu sąlyga yra
tenkinama
išsiunčiami abu
pranešimai
37
38
:destytojas :studentas
Užduotis
Įvertinimas(balas)
....
[balas<4]
opt
atsakymas
naujaUžduotis
atsakymas
Surašymas į
sistemą
SĄLYGINIS MODELIAVIMAS. PAVYZDYS
SĄLYGINIS MODELIAVIMAS “LOOP”
D:dekanas Studentų kursas
....
Studentų>0
Loop
Paspausti ranką
Abu pranešimai
siunčiami tol kol
tenkinama sąlygaĮteikti diplomą (diplomas)
39
OBJEKTŲ SUKŪRIMAS/NAIKINIMAS
Objekto sukūrimas Objekto sunaikinimas
A:tipas
B:tipassukurti
A:tipas B:tipas
naikinti
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Ė
43
Klasė
Atributai
Operacijos
Student
-name:string
-id: int
#getID():int
+getname():string
Account
-amount:int
-number:int
-number_of_account: int
createAccount()
deposit(amount:int):void
withdraw(amount:int):void
Nusako objekto būseną / charakteristikas
Aprašo veiksmus su objektu, keičia atributų reikšmes
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
Nusako klasių hierarchinius
sąryšius
Visi atributai ir metodai
paveldimi iš tėvinės klasės
Tėvo klasė
Vaiko klasė
47
Transporto
priemonė
Lengvasis
automobilis
PAVELDĖJIMAS
Rodyklės tipas nurodo kokio tipo yra tėvas.
Klasė
Abstrakti klasė
Sąsaja (Interfeisas)
48
49
Rectangle
-x:int
-y: int
+Rectangle(x:int, y;int, w:int, h:int)
+constrains()
+distance()
RShape
-w:int
-h: int
#RShape(w:int, h:int)
+constrains()
+distance()
+getArea():double
<<interface>>
Shape
+getArea():double
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ėmsAbstrakti 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
Vienas su daug
54
studentas IDCardturi1 1
studentas Egzaminasturi* 1
ASOCIACIJOS TIPAI
Agregacija : “is a part of”
Kompozicija : “is entiraly made of”
Priklausomybė : “uses temporarily”
55
automibilis Variklis
Knyga Puslapis
1 1
1 *
Loterijos
bilietasRandom
KOMPOZICIJA
Kompozicija parodo, kad klasės
dalyvaujančios kompozicijoje, negali viena be
kitos funkcionuoti.
56
Knyga Puslapis 1 *
AGREGACIJA
Agregacija parodo, kad tam tikrais laiko
momentais (bet nevisada) vienos klasės
objektas(-ai) tampa kitos klasės objekto(-ų)
dalimi
57
Automibilis Variklis 1 1
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
58
Loterijos
bilietasRandom
59
Klasių diagramos pavyzdys