parsisiųsti skaidrę

Download Report

Transcript parsisiųsti skaidrę

UML pagrindai
T120B171
UML pradžia
 8-ojo dešimtmečio viduryje atsirado technologijos,
pritaikytos objektinei analizei ir projektavimui:




Coad & Yourdon;
Booch;
Rumbaugh (the OMT technique);
Coleman (FUSION).
 Nudojama panaši metodika, tačiau skirtinga notacija.
 9-ojo dešimtmečio viduryje pereita prie standarto,
sukurto OMG (Object Management Group
www.uml.org).

The Unified Modelling Language (UML).
2
Kas tai yra UML?
 UML – standartinė kalba, skirta specifikuoti,
vizualizuoti ir dokumentuoti programinės
įrangos sistemas, taip pat naudojama ir
verslo modeliavimui ir kitokioms ne
programinėms sistemoms.
3
Pagrindiniai UML tikslai
 Suteikti vartotojams paruoštą vartojimui, išraiškingą
vizualinę modeliavimo kalbą, kad būtų galima kurti ir
keistis prasmingais modeliais.
 Projektavimo procese būti nepriklausomiems nuo
konkrečios programavimo kalbos.
 Suteikti formalų pagrindą modeliavimo kalbos
supratimui.
 Palaikyti aukštesnio lygio projektavimo sąvokas,
tokias kaip benradarbiavimas (collaborations),
frameworks, šablonai ir komponentai.
4
UML privalumai
 Kuriama sistema yra profesionaliai suprojektuojama ir






dokumentuojama dar prieš realizaciją. Tiksliai žinoma ką reikia
pasiekti.
Kadangi sistema pradžioje suprojektuojama, galima nustatyti,
kurios vietos bus perpanaudotos – mažėja kūrimo kaina.
Lengva nustatyti projektavimo klaidas.
Geras sistemos projektas užtikrina teisingą ir efektyvų
realizavimą – mažėja kūrimo kaina.
UML leidžia aprašyti sistemą norimu detalumu ir norimais
pjūviais.
Atlikti sistemos modifikacijas yra žymiai lengviau turint sistemos
UML dokumentaciją – mažėja palaikymo kaina.
UML leidžia kitiems kūrėjams greitai suvokti jūsų sistemą. Tai
visuotinai pripažintas standartas.
5
Kas yra gera sistema? (1)
 Gera (aukštos kokybės) sistema – patenkina
vartotojo poreikius.
 Naudinga ir naudojama:

gera programinė įranga palengvina žmonių
gyvenimą.
 Patikima:
 gera programinė įranga turi nedaug klaidų.
 Lanksti:
 vartotojų poreikia keičiasi laikui bėgant ir net
kuriant sistemas (palaikymas).
6
Kas yra gera sistema? (2)
 Įperkama:

darbo išlaidos yra esminė programinės
įrangos kainos dalis.
 Prieinama:

turi veikti su turima technine įranga, su
prieinama operacine sistema ir t.t.
7
Kaip kurti gera sistemą?
 Naudojamas apibrėžtas kūrimo procesas, su
aiškiomis fazėmis, kurios kiekviena turi
galutinį produktą.
 Procesas turi atitikti aiškius reikalavimus,
kurie turėtų būti apibrėžti kiek įmanoma
anksčiau.
 Procesas turi atsižvelgti į verifikavimo ir
validavimo formas, tokios kaip testavimas.
 Naudoti susijusių žinių, architektūrų ir
komponentų bazę.
8
Sistemų kūrimo etapai





Reikalavimų išgavimas;
Analizė;
Projektavimas;
Kūrimas;
Diegimas.
9
Reikalavimų išgavimas
 Ko iš mūsų nori užsakovas???
 Verslo procesų identifikavimas:
 Scenarijų diagramos (angl. activity)
 Dalykinės srities analizė:
 Aukšto lygio klasių diagrama
 Sąveikaujančių sistemų išskyrimas:
 Realizacijos (angl. deployment)
 Rezultatų pristatymas užsakovui
10
Analizė
 Panaudojimo atvejų identifikavimas:

Panaudojimo atvejų diagrama (-os) (angl. use case)
 Panaudojimo atvejai detalizuojami:

Veiksmų sekų aprašymai
 Detalizuojamos klasių diagramos:

Detalizuota klasių diagrama
 Analizuojamos sistemos galimos būsenos:

Būsenų diagrama (angl. state)
 Nustatomos objektų tarpusavio sąveikos:

Sekų ir bendradarbiavimo diagramos (angl. sequence,
collaboration)
 Analizuojama sąveika su kitomis sistemomis:

Detali realizacijos diagrama (angl. deployment)
11
Projektavimas
 Objektų diagramų kūrimas ir detalizavimas:
 Scenarijų diagramos (angl. activity)
 Komponentų diagramų kūrimas
 Diegimo (angl. deployment) plano sudarymas
 Vartotojo sąsajos projektavimas ir prototipai
 Testų kūrimas
 Dokumentacijos kūrimas:
 Dokumentacijos struktūros sudarymas
12
Kūrimas
 Kodo rašymas
 Kodo testavimas
 Vartotojo sąsajų kūrimas ir testavimas
 Pilna sistemos dokumentacija
13
Diegimas
 Sistemos atstatymo plano sudarymas
 Sistemos įdiegimas aparatūrinėje įrangoje
 Integruotos sistemos testavimas
14
UML komponentai
 UML susideda iš įvairių grafinių elementų apjungiamų
į diagramas.
 UML yra kalba, todėl egzistuoja griežtos grafinių
elementų panaudojimo taisyklės.
 Diagramų tikslas – įvairiais pjūviais aprašyti kuriamą
sistemą, t.y. sudaryti sistemos modelį.
 UML modelis aprašo ką sistema turi daryti, bet jis
nepasako kaip realizuoti tą sistemą.
15
UML diagramų tipai (1)
 Klasių diagramos (angl. class):

Skirsto daiktus į kategorijas. Klasė aprašo daiktų grupę,
kurie turi panašius atributus ir vienodą elgseną.
 Sekų (angl. sequence) diagramos:

Aprašo objektų sąveiką laike.
 Panaudojimo atvejų (angl. usecase) diagramos:

Aprašo sistemos elgseną iš vartotojo pozicijų.
 Veiklos arba Scenarijų (angl. activity) diagramos:

Aprašo veiksmų sekas.
16
UML diagramų tipai (2)
 Būsenų (angl. state) diagramos:
 Nusako objektų būsenas ir jų pasikeitimus laike.
 Bendradarbiavimo (angl. collaboration) diagramos:
 Aprašo objektų sąveiką.
 Realizacijos (angl. component, deployment)
diagramos:

Nusako sistemos komponentus ir parodo fizinę
sistemos struktūrą.
17
Panaudojimo atvejų diagramos
(Use Case)
 Aprašo sistemos funkcionalumą iš vartotojo
požiūrio taško.

vartotojas – bet koks išorinis kuriamos
sistemos naudotojas (žmogus, kita sistema,
techninė įranga ir pan.).
 Vartojimo atvejų modeliavimas padeda trims
kurimo aspektams:



reikalavimų surinkimui;
kūrimo iteracijų planavimui;
sistemos validavimui (patvirtinimui).
18
Panaudojimo atvejų diagramos
elementai
 Aktoriai (angl. Actor)
 Panaudojimo atvejai (angl. Usecase)
 Ryšiai (angl. Relationships)
 Sistemos ribos (angl. System boundary)
19
Aktoriai
 Aktoriai aprašo sistemos vartotojus
 Kiekvienas aktorius aprašo skirtingą vartotojo
rolę
 Žymima:
20
Panaudojimo atvejis
 Aprašo vieną vartotojui matomą sistemos funkciją
 Vykdant pasiekiamas konkretus vartotojo iškeltas
tikslas
 Aprašo pilną funkcionalumą
21
Detalus panaudojimo atvejo aprašymas
Taisyklės pašalinimas iš panaudojimo atvejo
Panaudojimo atvejis
UC202
Aprašymas
Tinklo valdytojas iškviečia panaudojimo atvejį atitinkančio grafinės sąsajos
komponento kontekstinį meniu, kuriame pasirenka taisyklių pašalinimo punktą.
Dialoginiame lange iš panaudojimo atvejo pašalinamos pasirinktos priskirtos taisyklės.
Aktoriai
Administratorius
Prieš-sąlyga
Panaudojimo atvejui turi būti priskirta nors viena taisyklė.
Po-sąlyga
Pasirinktos taisyklės pašalinamos iš konkretaus panaudojimo atvejo. Panaudojimo
atvejo metu vykdant konkrečias DIM užklausas, pašalintos taisyklės nebebus
tikrinamos, nors ir liks saugomos duomenų bazėje.
Grafinė sąsaja:
22
Panaudojimo atvejų modelis
 Inicijuojantis (angl. initiating) aktorius yra kairėje
panaudojimo atvejo pusėje, o priimantis (angl.
receiving) aktorius yra dešinėje pusėje.
23
Panaudojimo atvejų diagramos pavyzdys
Asociacija
Panaudojimo
atvejis
Aktorius
24
Kardinalumai
25
Quake II panaudojimo atvejų diagrama
26
Ryšiai
 <<include>>
 <<extend>>
 Aktorių hierarchija
27
<<include>>

Naudojamas nurodyti, kad atliekant vieną
panaudojimo atvejį, būtinai atliekamas ir
kitas.
28
<<extend>>

Naudojamas nurodyti, kad atliekant vieną
panaudojimo atvejį, esant tam tikrai
sąlygai, atliekamas ir kitas.
29
Aktorių hierarchija
30
Usecase projektavimo problemos (1)
 Neapibrėžtos (nenuoseklios) sistemos ribos.

Kai kurie panaudojimo atvejai aprašyti iš
verslo pusės, kiti iš sistemos.
Supainiota
sistemos sritis.
Diagrama iš
kompiuterinės
sistemos pusės
31
Usecase projektavimo problemos (2)
 Panaudojimo atvejis aprašytas iš sistemos (ne iš vartotojo)
požiūrio.
 Panaudojimo atvejo vardai apibrėžia tai, ką atlieka sistema,
vietoj tikslo, kurį aktorius nori pasiekti.
Pvz. ProcessTicket Order ir Display Schedule – tai atlieka
sistema (vardai neteisingi).
Order Tickets ir View Schedule – sistemos vartotojo tikslai
(teisingi vardai).

Panaudojimo atvejis aprašo vidinį funkcianalumą
Reikia aprašyti tai, ką sistema turi daryti, kad pasiektų
aktoriaus tikslą, o ne tai, kaip tą padaryti.
32
Usecase projektavimo problemos (3)
 Nenuoseklūs aktorių vardai.
Naudojami skirtingi aktorių vardai, apibrėžti tai
pačiai rolei.
 pvz. "Schedule Administrator", "Schedule Manager",

"Scheduler„
Ankstyvoje projekto stadijoje reikėtų sukurti terminų žodyną.
33
Usecase projektavimo problemos (4)
 Per daug panaudojimo atvejų.


Reikia įsitikinti, kad yra tinkamas panaudojimo atvejų detalumo
lygis (pav.a).
Jei sistema per didelė, reikia padalinti panaudojimo atvejus į
susijusius paketus (pav.b).
Pav. a
Pav. b
34
Usecase projektavimo problemos (5)
 Aktroriaus – panaudojimo atvejo ryšiai primena voratinklį.



Per daug ryšių tarp aktoriaus ir p.atvejo.
Aktorius sąveikauja su kiekvienu p.atveju.
P.atvejis sąveikauja su kiekvienu aktoriumi.
P.atvejų modelis su aktorių hierarchija
Aktoriai su persidengiančiomis rolėmis
35
Veiklos arba Scenarijų diagramos
(Activity)
 Verslo procesų aprašymui
 Panaudojimo atvejų detalizacijai:
 Kiekvieną panaudojimo atvejį detalizuoja viena
scenarijų diagrama.
 Būsenų diagramos plėtinys:
 Būsenų diagrama išryškina būsenas ir parodo
veiklas kaip perėjimus tarp būsenų. Veiklos
diagramos labiau koncentruojasi į pačias veiklas.
36
Elementai
 Veiksmų būsenos – aprašo sistemoje atliekamus
veiksmus.
 Perėjimas – jungia dvi veiksmų būsenas, atvaizduoja
vykdymo eigą.
 Išsišakojimas (angl. branch)
 Sinchronizavimas:


Išlygiagretinimas (angl. fork)
Apjungimas (angl. join)
 Objektai
 Signalai
37
Veiklos diagramos modelis
Pradžia (start)
Išlygiagretinimas
(fork)
Išsišakojimas
(branch)
Apjungimas (merge)
Apjungimas (join)
Pabaiga (end)
38
Veiklos diagramos pavyzdys
39
Išsišakojimas ir apjungimas
 Skirtas alternatyvioms veiksmų šakoms aprašyti.
 Nurodomos sąlygos, kurioms esant atliekama viena
arba kita veiksmų seka.
40
Išlygiagretinimas ir
sinchronizavimas
 Skirtas lygiagrečioms veiksmų šakoms aprašyti
(lygiagretiems procesams).
41
Objektai
 Veiklos metu gali būti sukurti objektai (veiklos
produktai), kurie naudojami kitose veiklose.
 Duomenys, kurie “keliauja” per veiklas.
42
Signalai
 Atliekant veiksmų sekas galima išsiųsti signalą
išoriniams procesams (objektams).
 Gautas signalas naudojamas veiksmo inicializacijai.
43
Detali veiklos diagrama
44
Pabaiga
45