UML DIAGRAMOS - personalas.ktu.ltregmise/praktika/pavyzdziai/UML bakal.pdf · PLAČIAUSIAINAUDOJAMI...

Preview:

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