Transcript UML

Rumbaugh

OMT

Object Modeling Technic

Objektový modelovací jazyk

Historie objektového přístupu

1966 první objektově orientovaný jazyk Simula (O.-J. Dahl, K. Nygaard)

1967

Simula67 : třídy, dědičnost, polymorfizmus

70. léta

první čistě objektový programovací jazyk Smalltalk : pojem objekt (Xerox)

80. léta

éra smíšených jazyků Turbo Pascal, C++ : umožňovaly programovat objektově, ale tento přístup nevyžadovaly

přelom 80. a 90. let

řada metod pro OOA a OOD + CASE Např.: OMT, kniha : Object-Oriented Modeling and Design, Prentice Hall, 1991 (J. Rumbaugh (General Electric) a další)

Historie objektového přístupu

1994 J. Rumbaugh se přidává k G. Boochovi a firmě Rational Software 1995 Unified Method verze 0.8 (G. Booch, J. Rumbaugh) 1995 I. Jacobson (Objectory) se přidává k G. Boochovi a J. Rumbaughovi (pokud se někde dočtete o The Three Amigos či Los Tres Buddies, tak vězte, že je to přezdívka tria Booch+Rumbaugh, Jacobson 1996 UML 0.9, 0.91 do prací na UML se zapojují např.: Digital Equiment, HP, i-Logix, IBM, MCI, Microsoft, Oracle, TI, Unisys 1997 rational : 1.0, 1.1 OMG "adoptovalo" UML UML 1.0 (OMG) = UML 1.1 : standard, většinou nazývaný 1.1

OMT analýza

• • •

Objektový model - OM

– Rovina tříd/objektů nebo-li reprezentace pojmů ( přístroj, role, atd.)

Dynamický model - DM

– Funkcionální popis chování systému(scénáře) – STD - State Transition Diagram

Funkční model - FM

– Toky dat (DFD)

O bjektový model

(OM - Object Model)

Objektový model

obsahuje definice tříd a jejich vztahů společně s atributy a metodami (proto by byl asi lepší překlad názvu modelu jako model tříd, název objektový model může být terminologicky zavádějící). Objektový model zachycuje statickou strukturu systému.

D ynamický model

(DM - Dynamic Model)

Dynamicky model

zachycuje dynamiku objektů a změny jejich stavů. Zabývá se chováním objektů v čase a tokem zpráv a kontroly mezi objekty. Dynamický model zahrnuje stavové diagramy (STD - State Transition Diagram) pro každou třídu nebo pro důležité části návrhu. Dále pak diagramy interakcí. Součástí DM je také celková mapa událostí (Event Trace Diagram) a diagram událostí.

F unkční model

(FM - Functional Model)

Funkční model

pak popisuje funkční závislosti systému, je podobný diagramu datových toků. Popisuje, co systém dělá (nezabyvá se tím, jak to dělá).

Fáze vývoje objektově orientovaného IS • analýza

  porozumět a namodelovat část reality, kterou bude systém obsahovat vytvořit objektový, dynamický a funkční model

• systémový design

  Dekomponování systému na podsystémy určit celkovou architekturu systému

• objektový design

 Optimalizací modelů analýzy z hlediska konceptu implementace  Návrh datových struktur na základě analýzy a architektury systému

• Implementace

  Programován vlastní počítačový systém Vlastní vytváření funkčního programu/kódu, někdy bývá generován přímo z CASE systémů

• testování

 průběžně ve fázích inkrementálního vývoje

Tvorba objektového modelu

• Vytvořit slovní popisy modelovaného problému. • Určit třídy objektů. • Zrušit nepotřebné a chybné třídy. • Připravit knihovnu znalostí (data dictionary) • Určit asociace mezi třídami. • Zrušit nepotřebné a chybné asociace. • Určit atributy tříd. • Zrušit nepotřebné a chybné atributy. • Určit vazby dědičnosti. • Projít vše znova a určit nedostatky.

• • • • • •

Tvorba dynamického modelu

Určit use cases a připravit scénáře typických interakčních sekvencí. Určit události mezi objekty a připravit mapu událostí pro každý scénář. Vytvořit diagram událostí systému. Vytvořit stavové diagramy pro třídy s významným dynamickým chováním. Zkontrolovat konzistenci a úplnost událostí sdílených mezi stavovými diagramy.

Tvorba funkčního modelu

• Určit vstupní a výstupní hodnoty. • Vytvořit diagramy datových toků pro vyjádření funkčních závislostí. • Popsat každou funkci, co dělá. • Určit omezení. • Specifikovat optimalizační kriteria

Lexikální analýza

• Analýza OMT disponuje velmi silným nástrojem pro popis systému a tím je lexikální analýza. • Je to metoda, pomocí které je možné strukturovaně, téměř strojově, sestavit diagramy na základě slovního popisu. • Lexikální analýza se provádí tak, že z daného textu vybereme nejdříve

podstatná jména

– což jsou adepti na

třídy třídového diagramu UML –

a z tohoto seznamu následně vybereme ta, která se stanou třídami našeho právě se formujícího modelu.

• Podobným způsobem vytvoříme ze sloves asociace a operace.

• A z přídavných jmen atributy tříd.

Formování objektového modelu

Krok 1a: Objevování a evidence objektů a tříd – Seznam podstatných jmen Krok 1b: Analýza a selekce sestrojeného seznamu objektů – Vyloučení nesprávných nebo nepotřebných objektů • Nadbytečné objekty (synonyma) • Irelevantní třídy (beze vztahu k řešenému problému) • Neurčité objekty (příliš široký vyznám „význam“) • Atributy ( „objekty“ popisující vlastnosti jiných objektů) • Operace • Role (nedůležité role nějakých objektů) • Implementační konstrukty (algoritmus, GUI)

Formování objektového modelu,

Krok 2: Příprava slovníku dat – Sémantický popis objektů, vztahů, atributů,… v systému – Vytváří se postupně Krok 3a: Objevování a evidence vazeb – V textu odpovídají slovesům a slovesným frázím • Umístění (fyzická pozice, symbolická podřízenost) • Cílené akce („řídí“, „nakládá“) • Komunikace („vysílá odezvu“) • Vlastnictví a dispozice („zaměstnává“) • Rozdělení zodpovědnosti („zajišťuje“)

Formování objektového modelu,

Krok 3b:Analýza a selekce sestrojeného seznamu vazeb – Vazby mezi zrušenými objekty – Nadbytečné vazby – Irelevantní vazby – Operace (akce jako operace v objektech) – Implementační vazby – Trojné vazby ( volba ) – Odvozené vazby („zjednodušování“)

Formování objektového modelu,

Krok 4a:Objevování a evidence atributů – Vlastnosti individuálních objektů ( váha délka, datum, atd. ) – Přídavná jména a jejich skupiny – Cílené kladení otázek na atributy Krok 4b: Analýza a selekce atributů – Atributy objektů, které byly zrušeny – Objekty – Kvantifikátory vazeb – Některá jména – Identifikátory – Atributy vazeb – Interní hodnoty – Heterogenní atributy

Formování objektového modelu,

Krok 5: Objevování, evidence, analýza a selekce operací Krok 6: Organizace a zjednodušení tříd Krok 7: Ověření a iterativní zjemňování modelu

Formování dynamického modelu

• Sekvence událostí systému ( tedy mohou to být i fragmenty ) • Diagramy interakcí objektů, stavové diagramy • „Scénáře“ Krok 1: Objevování a evidence událostí probíhajících mezi objekty – Seznam objektů – Seznam událostí Krok 2: Sestrojení scénáře – Sekvence událostí popisující modelovaný fragment chování systému. Graf (události, objekty, čas )

Formování dynamického modelu,

Krok 3: Konstrukce stavového diagramu – Každý stav má(nemusí) specifikované tři skupiny událostí • „Entry“ – událost, která systém do stavu přivedla • „Exit“ – událost, která se uděje při opouštění stavu • „Do“ – aktivita, která se bude během pobytu ve stavu provádět • „Action“ – událost, která se provede jenom za určité podmínky Krok 4: Ověření konzistence – Každá událost má svého odesílatele a příjemce – Stavy, kromě počátečních a koncových mají své předchůdce a potomky/následovníky – Vzájemná korespondence jednotlivých diagramů vůči sobě

Formování funkčního modelu

• Vstupní data->transformace->výstupní data • Iterace prohlubování/dekompozice Krok 1:Formování datových modelů a vstupů a výstupů Krok 2:Kreslení funkčních závislostí Krok 3:Popis funkcí Krok 4:Nalezení omezujících podmínek Krok 5:Specifikace optimalizačních kriterii

Příklad - Garáž

Navrhněte IS pro placenou garáž, která má implementovaný automatický provoz. Při vjezdu do garáže si zákazník, pokud je náhodným zákazníkem z automatického terminálu po stisku tlačítka „Návštěvnická karta“ vezme dočasnou návštěvnickou kartu, po odebrání karty se otevře závora.

Pokud je zákazník stály, tak má kartu stálého zákazníka, kterou si musí před vjezdem do garáže koupit v kanceláři majitele garáže, která je mimo budovu garáže. Stálý zákazník při vjezdu vloží svou kartu do terminálu. Terminál ověří totožnost karty, a pokud je karta v pořádku vrátí ji zákazníkovi a otevře se závora. V průběhu ověřování platnosti karty se na displeji ukáže výše kreditu na kartě.

V prostorách garáže je automatický terminál, kde je možné dobít kredit a tím zaplatit parkovné. Stálý zákazník dobíjí podle toho jestli je to potřeba. Náhodný zákazník musí vždy dojít k terminálu a zaplatit parkovné.

Při odjezdu zákazník vloží svou kartu, pokud se jednalo o dočasnou kartu a bylo zaplaceno parkovné, tak si jí terminál nechá v sobě a otevře se závora. Pokud se jedná o stálého zákazníka a výše kreditu je dostatečná, tak kartu po odečtení potřebné platby vrátí a otevře se závora.

• • • •

Zadání:

Příklad: Prodej lístků v ND

Národní divadlo, jako každoročně vydává plán představení na sezónu v daném roce. Tento plán je volně distribuován (např. na letácích, bilbordech, internetu, atd.). Potenciální divák si po přečtení toho plánu rozhodne, na jaké představení se případně půjde podívat. Jako první věc kterou musí udělat je, že si za rezervuje nebo přímo zakoupí v lístek v některých možných pokladnách distributorů lístků. Rezervace lístků je v podstatě jednoduchá. Stačí přijít k pokladně nebo na detašované pracoviště, slušně pozdraví a požádá paní za pokladnou o možnost rezervace lísku na předem vybrané představení v určitý den a v určitou hodinu, kdy se ono představení hraje. Paní pokladní po zadání těchto údajů do počítače ji systém oznámí/neoznámí počet volných místenek a jejich lokální umístění v sále. Budoucí divák si vybere umístění a počet míst. Dále je požádán o své jméno, příjmení, adresa, telefon, atd. Pak následuje upozornění na cenu rezervovaných lístků a možnost platby. Divák, také vyslechne upozornění o automatické zrušení rezervace 48 hodin před představením pokud si divák lísky nezaplatí-nevyzvedne v pokladně ND nebo je nějakého důvodu zrušeno představení. Prodej lístků probíhá obdobným způsobem. Budoucí divák přistoupí k pokladně, slušně pozdraví a požádá paní za pokladnou o možnost koupit si lístky na představení, přičemž zadá název, datum a čas přestavení. Paní pokladní zjistí v počítači volná místa a udělá nabídku volných míst v určitém sále. Divák si vybere umístění a počet míst (vstupenek). Paní pokladní udělá objednávku a vytiskne lístky. „ Divák“ zaplatí a převezme vstupenky. Lístky je možno zakoupit na všechny scény ND. Přičemž cena vstupenek je určena představením, časem a umístění sedadla.

Doporučené weby

• OMT http://objekty.vse.cz/Objekty/MetodikyANotace-OMT • OO, UML, analýza, metodologie http://mpavus.wz.cz/index.php

• UML - Unified Modeling Language http://www.osu.cz/katedry/kip/aktuality/sbornik99/mohlanec1.html