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
Dědičnost
Polymorfismus
Zapouzdření
Komunikace mezi objekty (předávání zpráv)
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.
Nahoru