1.1k likes | 1.58k Views
UML. asist. V.Giedrimas. P lanas. Reikalavimo samprata ir savybės Reikalavimų inžinerijos samprata Bendrieji reikalavimų inžinerijos principai Reikalavimų formulavim o būdai Reikalavimų rūšys. UML ( Unified Modeling Language). Universali modeliavimo kalba
E N D
UML asist. V.Giedrimas
Planas • Reikalavimo samprata ir savybės • Reikalavimų inžinerijos samprata • Bendrieji reikalavimų inžinerijos principai • Reikalavimų formulavimo būdai • Reikalavimų rūšys
UML (Unified Modeling Language) • Universali modeliavimo kalba • Rumbaugh joined Booch at Rational in 1994; in 1995, Rational added Jacobsen to their team. In 1996, work on the UML was begun. • 1997m. firma Rational pasiūlė UML 1.0 pripažinti OMG standardu
UML naudojimo sritys • Dalykinės srities analizė • Modeliuojami dalykines srities procesai • Projektavimas • Realizavimas • Kai kurie UML įrankiai geba iš pateikto diagramų rinkinio generuoti būsimosios programos fragmentus
Užduočių (Užduočių diagramas) Klasių (Class Diagrams) Bendradarbiavimo (Collaboration Diagrams) Sekos (Sequence Diagrams) Veiklos (Activity Diagrams) Būsenų (State Diagrams) Paketų (Package Diagrams) Komponentų (Component Diagrams) Išdėstymo (Deployment Diagrams) UML diagramų tipai
Užduotys • Aprašo vartotojų ir išorinių sistemų (vadinamų aktoriais) sąveiką • Užduotys turi būti diskrečiosir išmatuojamos • Pagal apimtį gali būti • Detalios užduotys • “Pastorinti tekstą” • Stambesnės užduotys • “Sudaryti knygos turinį”
Užduočių diagrama • Kiti pavadinimai: • Use-case diagrama • Panaudos diagrama • Panaudoijmo atvejų diagrama
Užduočių diagramos paskirtis • Analizės procese parodoma, kokios užduotys yra atliekamos dalykinėje srityje • Projektavimo procese parodoma, kokias užduotis turėtų atlikti programų sistema
Aktorius • Aktorius pabrėžia vaidmenį, o ne vardą ar pareigas • Aktoriumi gali būti ne tik žmogus bet ir išorinė sistema, pvz.: bankas, ATM stotelė
Veiklos diagrama • Veiklos diagrama papildo užduočių diagramą • Veiklos diagrama parodo, kokia tvarka gali būti atliekamosužduotys nurodydama jų “smulkesnes” dalis - veiksmus
Veiklos diagrama • Veiklos diagramose gali būti vaizduojamas ir veiksmų rezultatasbei veiksmams atlikti reikaligas argumentas (“medžiaga”)
Šakojimasis • Naudojamas alternatyvoms parodyti. • Sąlygos sakinio (IF) programavimo kalbose analogas
Lygiagretūs veiksmai • Naudojama keliems vienu metu vykdomiems veiksmams parodyti.
Klasių diagrama • Analizės procese aprašo dalykinės srities esybes • Projektavimo procese aprašo dalykinės srities esybes arba klases
Klasė +Laukas1 : SomeType - Laukas2 : SomeType #Laukas3 : SomeType +Metodas1() +Metodas 2() Apribojimai. Klasė • Klasė • Vardas (būtinas!) • Laukai • Metodai • Apribojimai • Klasės elementų matomumo laipsnis: • + public • -private • #protected
Paprastas ryšys Pavadinimas Vaidmenys
Refleksyvus ryšys • Naudojamas kai klasės objektai turi ryšį (dažniausiai priklausomybės) su savimi
Klasė_1 Klasė_2 Navigacijos ryšys • Naudojamas, siekiant parodyti, kadjei egzituoja bent vienas klasės A egzempliorius, tai būtinai turi egzistuoti ir klasės B egzempliorius • Pvz.: Sąskaita ir Sąskaitos eilutė
Agregacijos ryšys • Ryšys “Dalis-visuma” • Dalis, paimta atskirai, neturi prasmės • Dalis gali būti kelių stambesnių klasių dalimi
Kompozicijosryšys • Ryšys “Dalis-visuma” • Dalis, paimta atskirai, turi prasmę • Dalis gali būti tik vienos “stambesnės” klasės dalimi
Kompozicijosryšys • Composite • Each component can belong to just one whole. • same as the symbol for an aggregation except the diamond is filled.
Vidinė klasė • UML 2 standarto naujovė • Žymėjimai naudojami rečiau
Apibendrinimo ryšys • Analizės procese parodo apibendrinimus • Projektavimo procese aprašo paveldėjimo ryšius tarp klasių
Priklausomybės ryšys • Sakoma, kad klasė A prikauso nuo klasės B tada, kai paeitus klasę B, būtina (arba bent jau gali prireikti) pakeisti ir klasę A. • Pavyzdžiai: • vienoje klasėje, kviečiamas kitos metodas. • viena klasė, naudoja kitos egzempliorių, kaip argumentą: public static void main( String []args )
Priklausomybės ryšys • Klasių tarpusavio priklausomybė – svarbi objektinės paradigmos problema. • Klasių priklausomybė apsunkina (arba net daro neįmanomą) velesnį programų sistemų modernizavimą • Šiai problemai spręsti, komponentinė paradigma turi sprendimą – interfeisus.
Klasė_1 Klasė_1 Priklausomybės ryšys
Interfeisas • Interfeisas programavime = pareigybinė instrukcija firmoje • Darbuotojas firmoje dirba taip, kaip nurodyta pareigybinėje instrukcijoje. • Realizuojanti interfeisą klasė “elgiasi” taip, kaip aprašyta interfeise.
Interfeisas • Interfeisas programavime = pareigybinė instrukcija firmoje • Darbuotojas firmoje dirba taip, kaip nurodyta pareigybinėje instrukcijoje. • Realizuojanti interfeisą klasė “elgiasi” taip, kaip aprašyta interfeise.
Interfeisas • Aprašomas panašiai, kaip ir klasė, tačiau • Metodai neturi realizacijos, tik pavadinimus! • Interfeise, gali nebūti aprašyti ir laukai <<interface>> Interf02 +Laukas1 : SomeType - Laukas2 : SomeType #Laukas3 : SomeType +Metodas1() +Metodas 2()
Ryšio kardinalumas • Parodo kiek klasės objektų yra susiję su kitos klasės objektais. • Galimi žymėjimai • konkretus (pvz.: 1) • intervalas (pvz.: n..m) • “Daug” reiškianti žvaigždutė (pvz.: *) • Mišrūs (pvz.: 0..*)