KPS-UML diagrami 1
Transcription
KPS-UML diagrami 1
KPS-UML diagrami Smisel modeliranja Najprej model Takoj kodiranje UML, The Unified Modeling Language ALI Majhen projekt Veliko predznanja o problemu Izkušeni razvijalci 2 Vizualni model Zakaj model? Bolje razumemo kompleksne sisteme Primarni produkt razvoja je DOBER PROGRAM Vizualizacija in pregled nad arhitekturo Model je drugoten, a ne nepomemben za Komunikacija – o strukturi in obnašanju Razvoj dobrega SW ... Preprost prikaz, možnosti ponovne uporabe …ki ustreza zahtevam uporabnika ... Dokumentiranje načrtovalskih odločitev …ki je predvidljiv in pravočasen ... … ter preprost za vzdrževanje in dopolnjevanje. 3 4 Zgodovina UML Kaj je torej UML? 2005: UML 2.0 The Unified Modeling Language (UML): 2001: UML 1.4 Grafični jezik 1997: UML 1.1 “posvojil” OMG za vizualizacijo, specifikacijo, konstruiranje in dokumentiranje dejstev o programsko-intenzivnem sistemu (Grady Booch) 5 6 1 KPS-UML diagrami Torej UML omogoča Grafični jezik – grafične “besede” standard zapisa sistemskega načrta Vizualizacija – skica mentalnega modela Specifikacija – preciznost, nedvoumnost, popolnost Konceptualno: poslovni proces in funkcije sistema Konstruiranje – 1:1 s prog. jezikom, DDL SQL Konkretno: razredi, shema PB, komponente … ANALIZA Dokumentiranje – architekture, zahtev... KAJ? KAKO? problemski prostor analysis-to-design gap NAČRT prostor rešitve 7 Metodologija Jezik modeliranja + proces 8 Pogledi na sistem Model je abstrakcija sistema. metoda = (metodologija) Diagram je vizualni model predstavlja pogled na določenem nivoju abstrakcije. Jezik modeliranja je grafični. Dva tipa pogledov: Proces so napotki, kako razvijati SW struktura (statični) UML je neodvisen od procesa! obnašanje (dinamični) 9 10 UML diagrami Diagrami primerov uporabe (use case) Struktura: Zunanji pogled na sistem Razredni in objektni diagram (class and object diagram) Opisuje interakcijo sistema z uporabniki Komponentni diagram (component diagram) Tehnika Diagram namestitve (deployment diagram) modeliranje konteksta sistema (določitev meja) Obnašanje modeliranje zahtev Diagrami primerov uporabe (use case diagram) Koristen za komuniciranje z uporabniki! Sekvenca, sodelovanje (sequence, communication (collaboration) diagram) Diagram stanj (statechart diagram) Diagram aktivnosti (activity diagram) 11 12 2 KPS-UML diagrami Akter (igralec, actor) Primer uporabe (use case) Akter je del okolja: Scenarij (aktivnost) = zaporedje korakov, ki pomenijo interakcijo uporabnika s sistemom Posameznik, drug sistem, druga naprava use case (primer uporabe) = značilna skupina scenarijev, ki so potrebni, da uporabnik doseže svoj cilj Akter = vloga, ki jo igra uporabnik Akter izvaja primer uporabe in ima od njega neko korist. Scenarij predstavlja eno od možnih poti čez primer uporabe Akter ni nujno človek 13 Primer uporabe: bankomat generalizacija Primer uporabe Primer uporabe Authenticate client <<include>> Puščice označujejo tok dogodkov z vidika akterja. Opisuje enovit kos funkcionalnosti sistema <<include>> Scan retina komunikacija 14 Vsebina: Check password stereotip razmerje vsebovanosti Withdraw money akter <<extend>> Začetek in konec primera uporabe Normalen tok dogodkov Alternativne in izjemne tokove dogodkov Production SW Client <<extend>> Razmerje razširitve Deposit money Print receipt 15 16 Primer scenarija Praksa (primer uporabe) Dvig na bankomatu (vključuje avtentikacijo stranke) Glavni scenarij: 1. Stranka vstavi kartico 2. Bankomat preveri veljavnost kartice 3. Bankomat zahteva PIN (geslo) Uporaba v začetnih fazah 4. 5. 6. 7. 8. Opis uporabniških zahtev – KAJ naj bi delal sistem Meje sistema – kaj je noter in kaj ne Stranka vpiše PIN, PIN je pravilen Stranka vpiše znesek dviga, znesek je znotraj limita Bankomat vrne kartico Bankomat izplača denar Bankomat izpiše potrdilo Ni korelacije s strukturo in implementacijo! Komunikacija z uporabniki Testiranje: scenariji postanejo testni scenariji Alternative: 2.a Kartica neveljavna; bankomat zadrži kartico 4.a Pin ni pravilen (trikrat); bankomat zadrži kartico 5.a Znesek ni znotraj limita, pojdi nazaj na 5 8.a Bankomat ne izpiše potrdila 17 18 3 KPS-UML diagrami Razredni diagram Primer: razredni diagram razred Ključen v OO razvoju atribut Statična struktura razredov sistema posplošitev Zelo bogata notacija (navadni, konceptualni, specifikacijski, podatkovni model…) kardinalnost operacija Razred je množica objektov z enako strukturo, obnašanjem, razmerji in pomenom. navigacija vloga agregacija asociacija 19 Razredni diagram – vidnost, povezave 20 Primer – podatkovni model <<AssociationClass>> Storitev_Operacija <<stereotip>> Razred + javni atribut - privatni atribut # zasciteni (protected) atribut + javnaMetoda() - privatnaMetoda() # zascitenaMetoda() Povezave: Operacija Asociacija sestavlja +dodatna operacija 0..* <<Assoc iationCl ass>> Vloga_Operacija Uporabnik_Operacija dovoljuje Odvisnost 0..* 0..* Dodatni razdelki (npr. vloge razreda, itd.) 0..* <<Associa ti onClass>> Generalizacija Realizacija (pri implementaciji vmesnikov) Storitev avtoriz iran z a igra Uporabnik 0..* <<AssociationClass>> Uporabnik_storitev Vloga 0..* < <Assoc iationCl ass> > Uporabnik_Vloga 21 22 Praksa Objektni diagram Ne uporabljaj vseh notacij! Pojasnjuje kompleksne razrede problemski ekspert, analitik konceptualni designer, programer specifikacijski integrator podatkovni (logične PB sheme) 23 24 4 KPS-UML diagrami Razredni diagram… Bančni račun ima veliko asociacij in pomeni niso čisto jasni Podjetje je v lasti +prejemnik Bančni Račun Elektro LJ: Podjetje Zaslon: Podjetje ... ustrezni objektni diagram je v lasti je v lasti :Krovni račun: :Krovni račun: Nivo = 0 Valuta = EUR Nivo = 0 Valuta = EUR pripada +prejemnik pripada pripada Izpisek Račun SIT 1: Bančni račun Račun DEM: Bančni račun Račun USD: Bančni račun Nivo = 1 Valuta = SIT Nivo = 1 Valuta = DEM Nivo = 1 Valuta = USD +krovni +nalogodajalec Račun SIT 2: Bančni račun Nivo = 1 Valuta = SIT pripada Paket se nahaja na pripada + prejemnik Žiro: Bančni račun pripada Nivo = 2 Valuta = SIT vključeno v + nalogodajalec Splošno plačilo osnovana na VrsticaIzpiska : Paket Izpisek prejemnika: Izpisek vključeno v Plačilo v tujino pripada Domače plačilo T estno plačilo: Domače plačilo Izpisek nalogodajalca: Izpisek se nahaja na se nahaja na Vrstica prejemnika: Vrstica Izpiska Vrstica nalogodajalca: Vrstica izpiska osnovana na 25 26 Diagram zaporedja (sequence) Diagrami interakcije objekt : CorporateUser : SmartCardReader : SmartCard : Authorization : BAP+Client create( ) Diagrami zaporedja (sequence diagram) in sodelovanja (collaboration diagram) create( ) sporočilo create( ) Get settings from registry Semantično sta enakovredna: opisujeta sodelovanje skupine objektov komentar pogoj getStatus( ) Inserted * [3 times] PIN: string Diag. zaporedja: zaporedje sporočil iteracija Diag. sodelovanja: organizacija objektov kreiranje vrnitev aktivnost checkPIN(PIN) checkPIN(PIN) Tipična uporaba: realizacija primerov uporabe Klic sebi PinOK?(pin) PINOK PINOK Življenjska črta 27 Diagram sodelovanja zap. št. Iz prakse: 7: checkPIN(PIN) ponovitve pogoj klic sebe 9: pinOK(PIN) Tipična uporaba: 4: getStatus() Realizacije primerov uporabe 3: create() 8: checkPIN(PIN) Implementacija obnašanja razredov 6: * [< 3 times] PIN 1: create() 28 5: Inserted 10: pinOK : SmartCardReader : Authorization Sekvenčni: zaporedje sporočil. : SmartCard 11: pinOK 2: create() : CorporateUser Sodelovanje: poudarek na organizaciji. Nariši več diagramov, ki bodo prikazovali različne scenarije ali različne poti skozi nek proces. sporočilo objekt : BAP+Client 29 30 5 KPS-UML diagrami Diagram stanj Primer: diagram stanj spremenjen / ustvari paket spremenjen Zač. stanje Prikazuje življenjski cikel objekta. akcija Dogodki povzročajo spremembe stanj objekta. sopodpisi dogodek Odprt Prikazuje vsa stanja, v katerih je lahko nek objekt. pogoj / odpri podpisan[ vsi podpisi ] / preveri potrebne podpise / zapri podpisan[ manjkajoci podpisi ] Stanje: pretekle “izkušnje”, množica podatkov. Obnašanje objekta je odvisno od stanja. Delno podpisan stanje spremenjen podpisan[ vsi podpisi ] Zaprt Podpisan / izbrisi izrocen prehod preklican spremenjen končno stanje Izbrisan Izrocen / izbrisi V arhivu [ OK ] / arhiviraj poslan v obdelavo Zavrnjen V obdelavi / izbrisi [ nepravilnosti ] / Zavrni 31 32 Iz prakse: Diagram aktivnosti Kako se stanje objekta spreminja – prek različnih primerov uporabe Opisuje zaporedje aktivnosti. aktivnost iz resničnega sveta (npr. podpis) Le za objekte z zanimivimi stanji oz. prehodi. Izvajanje metode nekega razreda Dovoljena je paralelnost Ni objektno usmerjen (analogija s klasičnim diagramom poteka) 33 Primer: diagram aktivnosti Vejitev in združitev Uporabnik : CorporateUser start Uradni list RS, št. 32/94; zadnji popravek 6/97. Navodilo o opravljanju plačilnega prometa s tujino opomba [ nalog za izvršitev nakazila v tujino ] Izpolni obrazec 1450 Izpolni obrazec 1451 [ ni OK ] [ ne obstaja ] [ OK ] vejitev Uradni list RS, št. 1/9.1.1999 str. 66 Pošlji v banko Prikaz toka dogajanja Analiza primera uporabe varovalka [ ni OK ] “join” Slabo: ni jasne povezave med aktivnostmi in objekti Opis kompleksne metode [ obstaja dogovor o hranjenju fakture v podjetju ] Preglej obrazec Dobro: Opis paralelnega dogajanja Uporaba konec Podpiši obrazec “fork” Preglej fakturo “swimlane” Preglej obrazec activity Dodaj fakturo Iz prakse: Bančni uradnik Podpisnik : Signer [ nalog za odprtje akreditiva ] 34 Pošlji obvestilo v podjetje Zavrni pošiljko Preglej obrazec 35 36 6 KPS-UML diagrami Fizični diagrami Primerjava diagramov Komponentni in diagrami namestitve (deployment) Interakcija – več objektov v enem primeru uporabe Diagram stanj - en objekt z več stanji prek več primerov uporabe Diagram komponent prikazuje fizične module (prevedeno enoto, DLL, exe, html stran…) Diagram aktivnosti – dogajanje prek več primerov uporabe Komponenta je fizični paket razredov. Diagram namestitve prikazuje: fizične HW enote (vozlišča, povezave…) Povezave med SW in HW komponentami 37 Primer: komponentni diagram GWm 38 Primer: diagrami namestitve komponenta GW1 HTTP HTTP <<ASP page>> vb-BAP.asp stereotip HTTP <<ASP Page>> VB-BAO.asp vozlišče <<ISAPI function>> GetSebState stereotip SEB2 GW2 read read SEB1 <<HTTP>> <<file>> sebStatus.dat Router odvisnost read R/W <<HTTPS, XML>> ZVB Firewall DMZ <<Application>> SetSebState <<HTTP>> povezava <<file>> vb.cer <<NT service>> InnerMonitor HTTP HTTP COM <<DLL>> InnerTesting <<DLL>> SEBTesting Outer Virtual Client COM <<COM>> SEB opomba GWm <<HTTP>> SEBn HTTP <<ASP>> BAO <<ASP>> BAP <<ISAPI>> BAPPlus Gateway 39 Inner Virtual Client 40 <<IE certificate>> vb.pfx GWm HTTPS, XML <<DLL>> OuterTesting COM outerMonitor Iz prakse: UML Uporaba: za testiranje in podporo razumevanje arhitekture sistema) Nekaj modeliranja koristi Porazdeljeni sistemi – diagrami namestitve so skoraj obvezni. Ne pretiravaj s količino in podrobnostmi! Izberi problemu primerne diagrame Poudari pomembne stvari Neformalne skice – tudi zelo uporabne. Standardna notacija Lahko si dovoliš nekaj svobode pri sintaksi 41 42 7 KPS-UML diagrami Povzetek Prednosti in slabosti Komuniciranje s problemskimi strokovnjaki: Prednosti: enoten standard, razširljiv (stereotipi), prilagodljiv Primeri uporabe (izgled) Razredni (koncepti) Slabosti Prepad med analizo in načrtovanjem Aktivnost (tok dogodkov) Podatkovna baza: razredni Bogata notacija Analiza in načrtovanje programa: ”You can model 80 percent of most problems by using about 20 percent of the UML." Grady Booch Vmesniki, razredi, sodelovanje Povratni inženiring (reverse engineering) Vzorci (design patterns) 43 44 8