Modelování řízené případy užití kompletní proces od UC po implementaci, robustnost 2005 Radek Ošlejšek, Jiří Sochor FI MU Brno oslejsek@fi.muni.cz http://www.fi.muni.cz/~oslejsek/pa103 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 1
Hledáme odpovědi na otázky Kdo jsou uživatelé systému (aktéři) a co se pokoušejí dělat? Co jsou objekty skutečného světa (problémové oblasti) a jaké jsou mezi nimi vztahy? Jaké objekty jsou potřebné u každého případu užití? Jak interagují objekty, které spolupracují v případu užití? Jak vyjádříme aspekty řízení v reálném čase? Jak doopravdy postavíme systém na základní úrovni? 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 2
Otázky a odpovědi OOSE OMT Booch UML nástroje / techniky Uživatelé a uživatelské akce Případy užití Objekty reálného světa Diagramy tříd na vysoké úrovni abstrakce Objekty pro každý p.u. Analýza robustnosti Interakce objektů? Diagramy sekvencí a spolupráce Řízení v reálném čase? Stavové diagramy Jak vytvořit? Podrobné diagramy tříd (nízká úroveň) 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 3
ICONIX Unified Object Modeling Nejprve napište uživatelský manuál, potom kód. dynamické modely prototyp GUI př ípady užití diagram robustnosti sekvenční diagram statické modely kód model aplikační domény diagram tříd d 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 4
Modelovací směry Celý postup zahrnuje tři klíčové principy: inside out postup od datových požadavků ven modelování doménové oblasti system a system b outside in postup od uživatelských požadavků dovnitř systému use case modelování system c system system d top down postup od modelů na vysoké úrovni k detailnímu návrhu 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 5
Základní kroky Čtyři základní kroky při řešení pomocí ICONIX Unified Object Modelling. Jednotlivé kroky jsou odděleny milníky. 1. Analýza požadavků 2. Analýza a předběžný návrh 3. Návrh 4. Implementace 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 6
1. Analýza požadavků Identifikujte objekty z domény reálného světa, gen spec a agregace, začněte tvořit diagram tříd. Pokud je to možné, proveďte rychlé prototypování navrhovaného systému, nebo zaznamenejte informace o GUI rekonstruovaného systému. Identifikujte případy užití. Organizujte případy užití do skupin. Tuto organizaci zachyťte v diagramu balení (package diagram). Alokujte funkční požadavky na případy užití a objekty v aplikační doméně. R Milník: Prověření požadavků 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 7
2. Analýza a předběžný návrh Sestavte popisy případů užití základní směry činnosti, které představují hlavní proud a alternativní směry pro méně frekventované cesty a chybové podmínky Proveďte analýzu robustnosti. Pro každý případ užití: identifikujte (odhadněte) skupinu objektů, které realizují popsaný scénář diagram tříd aplikační domény doplňte o nově nalezené objekty a atributy Dokončete úpravy diagramu tříd tak, aby zachytil kompletní poznatky z analýzy Milník: Prověření předběžného návrhu 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 8
3. Návrh Alokujte chování. Pro každý případ užití: identifikujte zprávy, které musí být předány mezi objekty a příslušné vyvolané metody. Nakreslete sekvenční diagram, který v levé části realizuje průběh textového popisu případu užití a v pravé části zahrne návrhová rozhodnutí. Opravujte průběžně diagram tříd, doplňujte nové atributy a operace. Pokud je to potřeba, použijte diagram spolupráce pro znázornění klíčových transakcí mezi objekty. Dokončete statický model připojením detailní návrhové informace (např. viditelnost, vzory) Ověřte společně s týmem, že návrh splňuje všechny identifikované požadavky. Milník: Prověření podrobného návrhu 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 9
4. Implementace Podle potřeby vytvořte diagramy rozmístění a diagramy komponent, které budou využity během implementační fáze. Napište/generujte kód Proveďte testování jednotek a integrační testy Proveďte testy systému a uživatelské validační testy, s použitím případů užití jako black box testů (bez použití strukturálních modelů) Milník: Předání systému 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 10
Use case modelování dynamické modely prototyp GUI př ípady užití diagram robustnosti sekvenční diagram statické modely kód model aplikační domény diagram tříd d 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 11
Use case modelování Postup outside in : od uživatelských požadavků směrem dovnitř systému. Use case model se vytváří spolu s modelem aplikační obasti Modelování dynamiky systému je případy užití nejen odstartováno, ale je jimi řízeno. Případy užití mají velice blízko k uživatelům prostřednictvím GUI, které by mělo být dobře dokumentováno. Proto princip nejprve napište dokumentaci, pak teprve kód Proč rozdělovat do balíků případy užití a ne až třídy?: Balíky s p.u. formují logické hranice pro rozdělení práce v rámci podtýmů 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 12
Desatero pro psaní případů užití 1. Neztrácejte příliš mnoho času přemýšlením, jestli použít vazbu include nebo extend. 2. Zaměřte se na to, co je uvnitř případu užití, nikoli na to, jak se tam dostanete (vstupní podmínky) nebo co se stane potom (výstupní podmínky). 3. Nevynechávejte text alternativních toků událostí (neplatí pro scénáře). 4. Nepopisujte pouze interakce uživatelů, zahrňte i odezvy systému. 5. Pište z pohledu uživatele, nepoužívejte trpný rod (platí zejména pro angličtinu). 6. Jasně pojmenovávejte objekty na rozhraní. 7. Berte v úvahu uživatelská rozhraní. 8. Nepište případy užití příliš stručně. 9. Popisujte použití, ne atributy a metody. 10.Nepopisujte funkční požadavky ale toky událostí. 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 13
Modelování doménové oblasti dynamické modely prototyp GUI př ípady užití diagram robustnosti sekvenční diagram statické modely kód model aplikační domény diagram tříd d 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 14
Modelování doménové oblasti Modelování doménové oblasti (též aplikační oblasti, anglicky domain modeling) je proces hledání objektů (tříd) reprezentujících věci a koncepty z reálného světa, které mají vztah k problémům řešeným navrhovaným systémem. Výsledkem je tzv. analytický model tříd. Na základě datových požadavků vytváříme základní statický model (tj. postup inside out ). Používají se vazby generalizace specializace, asociace a agregace. Vazba komzice v této fázi raději ne, až v návrhu. Příliš se nezabýváme ani přesnou kardinalitou asociací 1:N. Je vhodné používat asociační třídy. 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 15
Analýza robustonosti dynamické modely prototyp GUI př ípady užití diagram robustnosti sekvenční diagram statické modely kód model aplikační domény diagram tříd d 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 16
Analýza robustnosti Ivar Jacobson: OOSE A Use Case Driven Approach, 1992 prostřední úroveň návrhu, mezi případy užití a úrovní návrhu software Co (analýza) mezera Jak (návrh) 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 17
Vztah k UML? Analýza robustnosti není přímo součástí UML dá se nahradit pomocí stereotypů Ne vždy se používá. Je objahována některými autory: Dough Rosenberg, Iconix, autor knihy doporučuje řešit analýzu robustnosti před sekvenčními diagramy 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 18
Co je cílem analýzy robustonosti? Kontrola rozumnosti (sanity check) Pomáhá ověřit, že popis případů užití je správný a že nebylo definováno nerozumné chování systému vzhledem k objektů, se kterými pracujeme. Kontola úplnosti (completeness check) Pomáhá ověřit, že případy užití pokrývají všechny nezbytné alternativní toky. Celistvost, nalezení objektů (ongoing, discovery of objects) Během modelování doménové oblasti jsme mohli některé objekty opomenout. Předběžný návrh (preliminary design) Formulace předběžného návrhu. 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 19
Stereotypy diagramu robustnosti Aktor Objekt Interface Objekt Entita Objekt Řízení objekt na rozhraní systému (také Boundary Object), neplést si s rozhraním v diagramech tříd! reprezentuje uložená data reprezentuje přenos informace 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 20
Objekty Interface a Entita Úlohou objektu Interface je překládat aktérův vstup na události v systému a přeložit události, o které se zajímá aktér, na něco, co může být prezentováno aktérovi Každý aktér by měl mít svůj interface, někteří jich budou potřebovat více. Objekty Entity modelují dlouhodobě udržovanou informaci, např. mezi případy užití. 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 21
Objekty řízení Objekty Řízení typicky propojují ostatní objekty do jediného celku, který tvoří jeden případ užití. Jsou typicky pomíjivé (nejméně trvanlivé), často žijí pouze po dobu provádění příslušného případu užití. Pouze několik (dva až pět) objektů řízení na průměrný případ užití. Pokud máme jediný objekt řízení na jeden p.u., tak jsou p.u. příliš malé. 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 22
Princip Model Pohled Řízení Objekt Entita reprezentuje uložená data (DB tabulky, soubory) Objekt Interface objekt na rozhraní systému (okna, dialogy, menu) Objekt Řízení reprezentuje přenos informace (aplikační logika) Model Pohled Řízení 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 23
Princip Model Pohled Řízení Průvodní princip: Oddělení zájmů, úkolů Model zachycuje základní charakteristiky dat, ale nezaměřuje se na všechny způsoby použití. Objekty entit vedou k třídám. Může existovat více pohledů na jeden model. Objekty rozhraní vedou ke třídám. Řídící objekty Řídící objekty poskytují způsoby, jak měnit a extrahovat informaci z modelu. Nemusí to být samostatné třídy, při návrhu často vedou k metodám asociovaným s objekty rozhraní a entitními objekty. 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 24
Pravidla diagramu robustnosti Povolená propojení ne ANO ne ne ANO ne ANO ne ne ANO ANO ANO ne ne ANO ne Smysl pravidel: Aktéři mohou se systémem komunikovat pouze přes interfacy. Nikdo, kromě řídících objektů, nemůže přímo sahat na entity. Je vhodnější, když entitní třídy, které můžeme zvažovat izolovaně, o sobě vzájemně neví. Místo toho jsou mezi ně vloženy řídící třídy, které znají obě entitní třídy. Vychází se z konceptu Model Pohled Řízení 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 25
Příklad 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 26
Princip nezávislosti Pokud dvě entitní třídy spolu interagují v aplikaci nebo v případu užití, ale obecně o sobě nemusí vědět, pak je vhodnější místo přímého propojení vložit mezi ně řídící třídu. To není dogma, ale doporučení... 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 27
Příklad 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 28
AR: Aktualizace statického modelu dynamické modely prototyp GUI př ípady užití diagram robustnosti sekvenční diagram statické modely kód model aplikační domény diagram tříd d 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 29
AR: Aktualizace statického modelu Před ukončením analýzy robustnosti a přechodem k modelování interakcí je nutné aktualizovat statický model aplikační oblasti. přidání nově nalezených tříd Všechny entitní objekty s diag. robustonosti jsou třídy v diagramu tříd. přidání důleřitých atributů do tříd Na základě sledování toku dat mezi objekty rozhraní a entitními objekty. operace nepřidávat zatím nemáme dostatek informací ke správnému návrhovému rozhodnutí, je lepší počkat na modely interakcí. nemodelovat objekty rozhraní jako třídy Na rozdíl od entit, objekty rozhraní jsou součástí přesnějšího řešení. V modelu tříd ale zatím zachycujeme jen problémovou oblast. Proto je vhodnější očkat až na dynamický model interakcí. 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 30
Doug Rosenberg Analýza předmětné oblasti není kompletní, dokud není zkonstruován diagram robustnosti, který zahrnuje třídy aplikační oblasti vystopovány (vysledovány) všechny případy užití na diagramu robustnosti. D.R. však netrvá na tom, aby byly diagramy robustnosti udržovány i po ukončení iniciální analýzy. 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 31
10 největších přínosů AR 1. Vyplňuje sémantickou mezeru mezi analýzou (případy užití) a návrhem (sekvenční diagramy). 2. Poskytuje přehled o tom, co systém dělá (případy užití) a jak systém pracuje (sekvenční diagramy). 3. Umožňuje kontrolu znovupoužití případů užití. 4. Pomáhá při rozmístění objektů v modelu GUI logika data pro systémy clientserver. 5. Pomáhá při rozdělení objektů v modelu model pohled řízení. 6. Diagramy robustnosti se vytvářejí rychleji a čtou snadněji než sekvenční diagramy. 7. Umožňuje aplikovat syntaktická pravidla na případy užití (např. aktéři komunikují pouze z objekty rozhraní ). 8. Poskytuje kontrolu rozumnosti a úplnosti vašich případů užití. 9. Nutí vás psát případy užití správným jazykem. 10.Nutí vás psát případy užití konzistentním stylem. 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 32
Komponentová architektura Zdá se, že stejný princip je v pozadí toho, co se nazývá Component based Software Architecture : komponenta interfejs nebo entita konektor kontroler, řízení 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 33
Modelování interakcí dynamické modely prototyp GUI př ípady užití diagram robustnosti sekvenční diagram statické modely kód model aplikační domény diagram tříd d 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 34
Modelování interakcí Alokuje chování mezi objekty rozhraní, entitami a objekty řízení. Rosenberg: Nesnažte se alokovat chování mezi objekty dříve, než máte dobrou představu o tom, co jednotlivé objekty znamenají. Raději s vraťte k analýze robustonosti. Ukázuje detailní interakce mezi objekty asociovanými s jednotlivými případy užití. Pro každou jednotku chování v případech užití je nutné najít nezbytné zprávy/metody, které fungují jako stimuly objektů provádějicích požadované akce. Interakce mezi aktéry a systémem je dána případy užití, interakce uvnitř systému je dána řídícími objekty v diagramu robustosti. Rozmísťuje operace do objektů a dokončuje rozmístění atributů. Během modelování interakcí se provádí aktualizace modelu tříd. 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 35
Modelování interakcí: postup Prostř edky: Sekvenční diagramy (sequence diagrams) pro jednotlivé toky událostí v případech užití. Postup: 1. Zkopírujte text z případu užití na levou stranu. 2. Přidejte entitní objekty z diagramu robustnosti. 3. Přidejte objekty rozhraní a aktéry z diagramu robustnosti. 4. Přetvořte řídící objekty z diagramu robustnosti, jeden po druhém, na konkrétní skupiny metod a zpráv a/nebo na reálné kontrolní objekty/třídy. 5. Aktualizujte statický model Dokončení atributů a metod, přidání pomocných tříd, návrhové vzory... Každý objekt by měl mít pouze jednu osobnost, tj. měl by vykazovat pouze úzký typ chování. Schizofrenní objekty dekomponujte pomocí agregace. Nalezení interagujících objektů (body 1. 3.) je při použití analýzy robustnosti triviální. Nalezení modelu interakcí (bod 4.) je s diagramem robustnosti mnohem snažší. 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 36
Implementace dynamické modely prototyp GUI pří pady užití diagram robustnosti sekvenční diagram statické modely kód model aplikační domény diagram tříd diagram komponent 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 37
Implementace Podle potřeby vytvořte diagramy umístění a diagramy komponent, které budou využity během implementační fáze. Napište/generujte kód Proveďte testování jednotek a integrační testy Proveďte testy systému a uživatelské validační testy, s použitím případů užití jako black box testů (bez použití strukturálních modelů) 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 38
Př: jednoduché a špatné řešení... 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 39
v notaci diagramu robustnosti... 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 40
...realističtější řešení 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 41
Př: jednoduché a špatné řešení... Ridic Tranvaj Dispecer prideltramvaj vytvorjizdu 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 42
...diagram robustnosti... Dispecer FormRozpisuJizd PrideleniTramvaje RozpisJizd VyhledaniVolnych Ridic Tramvaj 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 43
...realističtější řešení Dispecer FormRozpisuJizd Ridic Tramvaj RozpisJizd otevri vypisdvojice vyhledejvolne vyhledejvolne vytvorrozpis pridejjizdy 30. 3. 2005 PA103: OO metody návrhu IS R. Ošlejšek, J.Sochor, FI MU Brno 44