Professional Documents
Culture Documents
PSI 3 UML-UseCase Diagrams 20210311 v01
PSI 3 UML-UseCase Diagrams 20210311 v01
Diana Kalibatienė
Dr. Jolanta Miliauskaitė
UML
UŽDUOČIŲ DIAGRAMOS
(UML Use Case Diagram)
PSI pagrindai
Literatūros šaltiniai
2
UML užduočių diagrama
• UML užduočių diagrama modeliuoja sistemos
funkcionalumą aukštame abstrakcijos lygmenyje
iš naudotojo požiūrio taško, grindžiamo juodosios
dėžės principu.
• Nagrinėjami tik tie panaudos atvejai, kurie išoriniam
naudotojui yra suvokiami ir kurių vykdymas jiems
teikia naudą.
• Užduotys vykdomos siekiant tam tikrų tikslų.
• Kiekviena užduotis (use case) yra diskreti ir numato
išorinę sąveiką su naudotoju.
• Sistemos išorinis vaizdas.
• Reikalavimų išgavimo technika.
• Sudaro analitikas kartu su dalykinės srities
ekspertais. 3
UML užduočių diagramos notacija
(supaprastinta)
<<Actor>>
Sistema Užduotis
Standartinis Aktorius-sistema:
aktoriaus <<Actor>>
Bankas,
(žmogaus) Sistema
bankomatas, ...
vaizdavimas.
Studentas 6
UML užduočių diagrama:
Asociacija
Asociacija (association): sąveikos ryšys,
jungiantis aktorių su užduotimi.
Parodo, kokie aktoriai sąveikauja su sistema ir ja
naudojasi jiems reikiamoms užduotims vykdyti.
Aktorius arba inicijuoja užduotį (pirminis aktorius),
arba gauna užduoties vykdymo rezultatus (antrinis
aktorius), arba yra abiejuose vaidmenyse.
Atlikti <<Actor>>
pavedimą Banko sistema
Klientas
7
UML užduočių diagrama:
Asociacijos kardinalumas
• Asociacija gali turėti kardinalumą:
• * – neribotas, gali būti rašoma ir 0..* arba 0..n
• n – nurodytas skaičius, pavyzdžiui, 1, 3, …
• 0..1 – neprivalomas (t.y. nei vieno arba vienas)
• 1..* – bent vienas, gali būti rašoma ir 1..n
• UML specifikacija nereglamentuoja aktoriaus darbo su
daugeliu užduočių. Tai priklauso nuo konkrečių aplinkybių.
• Aktorius gali vykdyti visas užduotis lygiagrečiai arba vieną
po kitos.
Vienas Studentas gali
vykdyti bent vieną
1 1...* arba kelias užduotis
Nuomotis „Nuomotis knygą“.
knygą
Studentas 8
UML užduočių diagrama:
«include» ryšys tarp užduočių
• Apimti arba įtraukti – tai tarp dviejų užduočių
nukreiptas ryšys, naudojamas kai būtina elgsena,
aprašoma po-užduotimi, yra įtraukiama į pagrindinės
užduoties vykdymą. «include»
Įgyvendinamas pakartotinio panaudojimo (re-use) principas,
kai ta pati po-užduotis naudojama kelis kartus kitų užduočių.
Pagrindinė užduotis nėra logiškai pilna be įtraukiamos
užduoties, bet ne atvirkščiai.
Užduotis B yra išimta iš užduoties A į atskirą užduotį.
Užduotis Užduotis
C B
Užduotis
10 C
Užduotis „Išregistruoti
Išregistruoti <<include>>
Paruošti sąskaitą
svečią iš kambario“
svečią iš
apima taip pat užduotis
kambario
„Paruošti sąskaitą“ ir
<<include>> Užsakyti kambario „Užsakyti kambario
tvarkymą tvarkymą“. 10
UML užduočių diagrama:
«include» ryšio esmė
Užduotis B yra išimta iš užduočių A ir C į atskirą užduotį,
kuri pakartotinai panaudojama per «include» ryšį.
Užduotis A Užduotis A
Užduotis B
Užduotis B
Užduotis C Užduotis C
Užduotis B
Įnešti <<include>>
pinigus Abi užduotys „Įnešti pinigus“ ir
Autorizuotis „Išimti pinigus“ apima ir užduoties
<<include>> „Autorizuotis“ vykdymą.
Išimti
pinigus
11
UML užduočių diagrama:
«extend» ryšys tarp užduočių
• Išplėsti – tai nukreiptas ryšys tarp dviejų užduočių,
nurodantis kada sąlyginė (su sąlyga) po-užduotis
įtraukiama į pagrindinės užduoties vykdymą.
• Pagrindinės užduoties vykdymas yra papildomai
išplečiamas kitos užduoties vykdymu.
• Išplėtimas gali būti suprantamas, kaip atskiras atvejis,
išimtis.
Užduotis „Registruotis“
yra prasminga naudotojui ir
po-užduotis „Gauti
pagalbą registruojantis“ <<extend>>
yra vykdoma, jeigu Registruotis Gauti pagalbą
naudotojui kilo papildomų extension point registruojantis
klausimų. Jeigu kilo
Išplėtimo taškas
klausimų
(extension point) 12
UML užduočių diagrama:
«extend» ryšys tarp užduočių
• Išplėtimo taškas vaizduojamas pagrindinėje užduotyje po
antrašte specialioje sekcijoje, atskirtoje linija.
• Kiekvienas išplėtimo taškas turi turėti unikalų pavadinimą
pagrindinėje užduotyje.
• Išplečiamoji užduotis nėra būtina, ji vykdoma jeigu
tenkinama sąlyga.
Vykdant užduotį
„Apmokėti sąskaitą“,
jeigu nepakanka pinigų Apmokėti
sąskaitai apmokėti gali <<extend>>
būti vykdoma po-
sąskaitą Iškviesti policiją
užduotis „Iškviesti extension point
policiją“. Pateikti sąskaitą
14
UML UŽDUOTIES
SCENARIJAI
(Scenarios)
UML užduoties scenarijai
(Scenarios)
• UML užduočių diagramoje pateikiamas ribotas kiekis
informacijos apie jos sąveiką su naudotojais, todėl
būtina pateikti užduočių aprašus, kurie sudaryti iš:
• struktūrizuoto aprašymo lentelėje ir
• scenarijaus aprašymo (UML sekų arba komunikavimo
diagrama).
• Scenarijus – tai seka žingsnių, aprašančių aktorių
ir sistemos sąveiką.
• Skiriami užduoties pagrindinis scenarijus ir
alternatyvūs scenarijai.
• Scenarijus aprašo vieną ar keletą galimų sąveikų.
• Scenarijaus detalumas priklauso nuo užduoties
abstrakcijos lygmens. 16
UML užduoties scenarijai
Pagrindinis ir alternatyvūs scenarijai
Projekto tikslas
24
Užduočių ir funkcijų skirtumai
Pradedantieji dažnai sutapatina užduotis ir funkcijas
Tai yra klaidinga
Užduotis aprašo naudotojo tikslus (kažką naudingo),
jai realizuoti gali prireikti kelių sistemos funkcijų.
Funkcijos savaime nėra naudingos, naudingas jų rinkinys.
Funkcijos pasirodo žemesniuose hierarchijos lygmenyse,
detalizuojant viršutiniame lygmenyje parodytas užduotis.
Atlikti
pavedimą Klientas
Klientas Klientas
Atlikti
pavedimą
Petras VIP Klientas 26
VIP Klientas
Užduočių modeliavimo taisyklės
1. Užduotys įvardink veiksmažodžiais informatyviai.
• “Spausdinti sąskaitą”, o ne “Spausdinti”.
2. Užduotis grupuok pagal panašius tikslus.
3. Po-užduotis, siejamas «include» ir «extend»
ryšiais, išdėstyk iš dešinės pusės arba po
pagrindine užduotimi.
4. Po-užduotis, jungiamas apibendrinimo ryšiu su
pagrindine užduotimi, išdėstyk po pagrindine
užduotimi.
27
„Naudok pavyzdžius iš interneto – jie geresni, nei tavo sukurtas
pirmas pavyzdys.
Bet aklai nekopijuok!
29
Restorano užduočių
modeliavimas pažingsniui
2. Nustatyk esmines užduotis ir ryšius.
30
Restorano užduočių
modeliavimas pažingsniui
3. Nustatyk po-užduotis («include») ir plėtinius («extend»).
31
Restorano užduočių
modeliavimas pažingsniui
4. Nustatyk užduočių ir aktorių hierarchijas.
32
Restorano užduočių
modeliavimas pažingsniui
5. Nustatyk ryšių kardinalumą.
33
Restorano užduočių
modeliavimas pažingsniui
6. Aprašyk visas
esmines užduotis,
naudojantis
užduočių aprašų
lentele.
• MagicDraw įrankyje
paleisti užduočių
aprašymo profilį (angl.
the Use Case
Description Profile),
kad atsirastų užduočių
aprašo laukai.
34
Restorano užduočių
modeliavimas pažingsniui
35
Restorano užduočių
modeliavimas pažingsniui
Atkuriamasis
(alternatyvus)
vykdymo
scenarijus
Nesėkmės
scenarijus
37
Restorano užduočių
modeliavimas pažingsniui
38
Restorano užduočių
modeliavimas pažingsniui
7. Detalizuok kiekvieną
esminę užduotį į
žemesnio abstrakcijos
lygmens po-užduotis.
• Kaip pagalba, naudokis
kiekvienos esminės
užduoties vykdymo
scenarijumi.
39
Restorano užduočių
modeliavimas pažingsniui
8. Aprašyk kiekvieną po-užduotį užduočių aprašų
lentele ir scenarijumi.
• Kiekviena po-užduotis aprašoma užduočių aprašų lentele (žr. 6
žingsnis).
40
Restorano užduočių
modeliavimas pažingsniui
8. Aprašyk kiekvieną po-užduotį užduočių aprašų lentele ir
scenarijumi.
• Kiekviena po-užduotis aprašoma užduočių aprašų lentele (žr. 6 žingsnis).
41
Restorano užduočių
modeliavimas pažingsniui
9. Sugeneruok dvi modelio ataskaitas:
1. Tools Report Wizard Default Template Use
Case (Modern).
2. Tools Report Wizard Architecture Template
Use Case Report.
10. Peržiūrėk ir sutvarkyk ataskaitas, jas apjunk į vieną:
• Atnaujink nuorodas (turinys, užduočių puslapių numeriai, ...)
• Apkirpk ir padidink paveikslus.
• Ištrink nereikalingus laukus.
• Papildyk tuščius laukus.
• Pridėk prie užduočių aprašų juos realizuojančių scenarijų
veiklų diagramas.
42
Restorano užduočių modeliavimas
pažingsniui (Pirmos ataskaitos dalis)
Use Case Name: Užsakyti pasirinktą patiekalą ID: 1.4
Primary Actor: Padavėjas
Svečias
Goal: Patvirtinti užsakymą
Relations
Association: Actor Padavėjas
Actor Svečias
Pre Condition: Svečias perskaitė Valgiaraštį ir suprato, kas ten parašyta.
Post Condition: Yra patvirtintas Patiekalo užsakymas.
Scenarios
Basic Flow of 1. Rinktis Patiekalą (A3)
Events: 2. Patvirtinti Patiekalo pasirinkimą (E1)
Alternative Flow 1.1. Yra alergija
of Events: 1.1.1. Teirautis Padavėjo dėl Patiekale esančių alergenų
1.2. Yra vegetaras
1.2.1. Teirautis Padavėjo dėl vegetariškų Patiekalų
1.3. Yra mažai laiko
1.3.1. Teirautis Padavėjo dėl Patiekalo gaminimo trukmės
Exceptional Flow 2.1. Užsakymo nutraukimas
of Events: 2.1.1. Atsisakyti užsakymo
43
Klausimai?
Klausimai
10. Išvardinkite užduočių diagramos elementus paaiškinkite kaip jie
vaizduojami ir ką jie reiškia. (5)
11. Kokia užduočių diagramų paskirtis? (3)
12. Koks sistemos aspektas aprašomas užduočių diagramomis ? (1)
13. Ką užduočių diagramose vaizduoja užduotis? (1)
14. Kas užduočių diagramose gali būti vaizduojama kaip agentas? (1)
15. Kokiems tikslams užduočių diagramose agentas naudoja užduotį?
(1)
16. Kokias asociacijų rūšis galima naudoti užduočių diagramose? (2)
17. Kas užduočių diagramose vaizduojama «include» ryšiu? (1)
18. Kas užduočių diagramose vaizduojama «extend» ryšiu? Kas
vadinama išplėtimo tašku? (3)
19. Kas užduočių diagramose vaizduojama apibendrinimo ryšiu?(1)
45
Užduotys savarankiškam
darbui
Pratimai prie lentos
47
Pratimai – galimi atsakymai
teisingai
48
Pratimai – galimi atsakymai
Šiuo atveju skyriaus
vedėjas (angl. department
head) nėra darbuotojas.
49
Pratimai – galimi atsakymai
50
Pratimai – galimi atsakymai
51
Pratimai savarankiškai I
52
Pratimai savarankiškai II
Galimas pradinis
variantas
Ką reikia pakeisti
pagal aprašą.
54
Pratimai savarankiškai III
55
Pratimai savarankiškai IV