Obsah
N-AP04
Zadání
Objektově-orientovaná analýza požadavků, vlastnosti objektů, principy abstrakce a dekompozice. Vývoj OO metod, historie a kritika.
Vypracování
Objektově-orientovaná analýza požadavků
http://labe.felk.cvut.cz/vyuka/X33PTE/PTE-10.pdf
Objekty a třídy
Analýza je založena na principech objektového programování. Jak už název napovídá vystupují v něm objekty, což jsou instance tříd objektů. Např. já jsem instancí třídy osoba. Třídy jsou obecnou kategorií objektů, které mají stejné vlastnosti a mohou provádět stejné operace. Objekty mají strukturu, která se skládá z:
- Vlastností (atributů) – (váha osoby, výška osoby)
- Chování – operací, metod, které objekt může provádět (osoba může jíst, číst, psát, …)
Asociace tříd
Asociace označuje stav, kdy nějaká třída má vztah s jinou třídou.
Asociace - Agregace
- Speciální případ pro vztah celek-část.
- Součásti agregace mohou fungovat nezávisle na sobě.
- Symbol prázdného diamantu
- Tranzitivní - pokud je pist součástí motoru a motor součástí auta, pak je i pist součástí auta
- Asymetrická - pokud je motor součástí auta, pak auto není součástí motoru
- Sémantika: totéž co asociace, pouze zdůrazňuje vztah celek-část, součásti mohou existovat nezávisle na celku, součást může být sdílena více celky
Asociace - Kompozice
- Silnější forma agregace.
- Opět je tranzitivní a asymetrická.
- Části nemají mimo celek smysl.
- symbol plného diamantu
- Sémantika: na úrovni instancí (objektů) části neexistují vně celku. Každá část patří pouze do jednoho celku, části nelze sdílet. Je-li celek zničen, musí zničit i svoje součásti.
Z objektového programování se přenáší následující principy:
Abstrakce
- Znamená filtrování reálných objektů tak, že zbudou jen ty vlastnosti z reálného světa, které jsou pro budování informačního systému potřeba.
Dědičnost
- Objekty dědí atributy a operace po své třídě nebo třída dědí po jiné třídě.
Polymorfismus
- Operace může mít v různých třídách objektů stejné jméno, ale každá třída objektů bude operaci provádět jinak.
Zapouzdření
- Objekty skrývají provádění svých operací před ostatními objekty a před okolním světem. Objekt má pro komunikaci s okolním světem rozhraní, pomocí kterého je okolní svět může přimět k vyvolání nějaké činnosti a zbytek operací ukrývá.
Komunikace mezi objekty (předávání zpráv)
- Objekty mezi sebou komunikují – zasílají si zprávy. Zasílání zpráv je v podstatě vždy žádost o provedení operací.
Vlastnosti objektů
Objekty kombinují data a funkce do podoby uzavřené, soudržné jednotky. Objekty ukrývají data za vrstvou funkcí (operací) - data jsou přístupná pouze skrze operace.
Každý objekt má:
- Jednoznačnou identitu - odlišení objektů od ostatních (stejných) objektů. Každý objekt má unikátní výskyt v prostoru a v čase. Každý objekt je jednoznačně identifikovatelný. Identita je určena: hodnotami atributů, adresou v paměti, …
- Stav - hodnoty atributů uchovávají data objektů. Data objektů definují jeho stav. Stav je určen hodnotami atributů a vazbami/vztahy na ostatní objekty v daném časovém okamžiku.
- Chování - operace, které je možné s objektem provádět. Operace často mění stav a často závisí na aktuálním stavu (na aktuálních datech). Chování vyjadřuje jak objekt koná a reaguje. Chování je specifikováno operacemi. Každá operace tedy definuje část chování objektu. Chování se může měnit v závislosti na stavu (např chováni tiskárny při stavu DošlaNáplň). Vyvolání operace může vést ke změně stavu. Implementace operace se nazývá metoda.
Principy abstrakce a dekompozice
Dekompozice
- Dekompozice pomáhá systémovému analytikovi a dalším členům řešitelského týmu rozložit systém na menší, lépe zvládnutelné a srozumitelnější subsystémy.
- Zajišťuje soustředění pozornosti na jednu oblast (subsystém) v daném čase bez interference od ostatních částí.
- Umožňuje, aby se pozornost soustředila na tu část systému, která je zajímavá pro určité publikum, aniž by byli posluchači mateni pro ně nepodstatnými detaily.
- Umožňuje postavit různé části systému v nezávislých časech a různými lidmi.
Abstrakce
Abstrakce spočívá v zjednodušení objektu z reálného světa tak, aby vyhovoval potřebám modelu informačního systému. Během procesu abstarkce se objektu ponechají pouze ty metody a atributy, které jsou pro informační systém podstatné.
Vývoj OO metod, historie a kritika
- UML patří mezi modelovací techniky, která se snaží kombinovat různé přístupy z různých oblastí např. ERD ze strukturované analýzy, toky práce z procesního řízení atd. UML poskytuje sadu nástrojů pro vytváření modelů, ale nedefinuje jak tyto modely použít (metodika např. RUP – Rational Unified Process).
- UML se vyvíjí od druhé poloviny 90. let (Booch, Jacobson, Rumbaugh, Gamma) hlavně z use-case, ale také nejrůznějších dalších technik.
- UML je pro začátečníka příliš komplexní a rozsáhlý, pokud se snaží používat všechny diagramy.
- UML také neřeší mapování objektového modelu na relační.
- UML také nemá syntax pro návrhové vzory.
