Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
090416_STATNICE_Zaklady_softwaroveho_inzenyrstv...doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.51 Mб
Скачать
  1. Jaký je rozdíl mezi strukturovanými a objektovými metodikami?

Kritéria pro kategorizaci metodik:

přístup k vývoji - strukturované metodiky, RAD metodiky, objektově orientované metodiky, metodiky pro komponentový vývoj, metodiky pro vývoj orientovaný na služby

V průběhu devadesátých let získaly značnou popularitu programové systémy na podporu vývoje informačního systému - systémy CASE.

Členění návrhu systému do etap se ustálilo na tyto etapy:

  • analýza - vzniká logické řešení problému, bez ohledu na prostředí, ve kterém poběží, a bez ohledu na způsob, kterým bude systém realizován.

  • design - přizpůsobení logického řešení provozním podmínkám. (U datového modelu to obvykle znamená zavádět redundanci, protože rozsáhlé normalizované databáze mívají neúnosnou dobu odezvy.)

  • implementace - Teprve v této etapě se systém skutečně vytváří - tj. programuje.

Problém implementace řeší strukturované programování (Dijkstra a Jackson) a další programovací techniky. Problémy analýzy řeší metodiky, v prvé řadě strukturované metodiky.

Strukturované metodiky

F unkční i datový rozklad mají doplňující se výhody a nevýhody, bylo potřeba je nějak sjednotit. Nepřišlo se na nic lepšího, než na to, že se budou vytvářet paralelně a stále se budou během této tvorby porovnávat. Tak vznikla naše další zbraň proti složitosti - porovnávání modelů. Je to podobná myšlenka, která se s úspěchem používá například ve strojírenství, architektuře i jinde. Jako plán budoucího trojrozměrného výrobku (součástky nebo domu) mám několik dvourozměrných plánů - nárys, bokorys, půdorys.

V obdélníčku je uveden typ hierarchického rozkladu a obvyklý typ techniky. DFD je Data Flow Diagram, tj. diagram datových toků, E-R diagram je Entity Relationship diagram , tj. diagram entit a vztahů. Rozdíl oproti programování je asi v tom, že složitost informačního systému lze charakterizovat více než třemi rozměry.

Návrh informačního systému se tak stává dvouúrovňovým procesem:

  • Úroveň modelů. Systém se nenavrhuje jako celek, ale vytváří se několik modelů (pohledů), každý model si všímá některých aspektů a jiné opomíjí.

  • Jednotlivé modely se vytvářejí pomocí hierarchického rozkladu (obvykle).

Podstatou použití modelů je to, že jeden model podrobně rozpracovává některé aspekty systému a jiné aspekty opomíjí. Druhý model rozpracovává tyto opomíjené aspekty a opomíjí některé aspekty rozpracovávané prvým modelem. Je nutné, aby dva modely měly některý rozpracovávaný aspekt společný, aby je bylo možno porovnávat - to znamená, aby změna jednoho modelu ovlivnila model druhý.

Kolem strukturálního návrhu bylo vykonáno mnoho metodické práce, ať již v návrzích různých modelů a dílčích modelů (v některých metodikách jejich počet přesahuje desítku), tak v celkových zásadách práce. Následuje výčet nejvýraznějších charakteristik.

  • etapisace - návrh informačního systému byl rozdělen na několik etap, každá je charakterizována určitým dílčím úkolem. Jsou to: formulace zadání, analýza, design, implementace, testování, předání do provozu a provoz.

  • návrat v postupu - i když metodiky obsahují jisté prvky sebekontroly, je nutné do nich zařadit možnost kdykoliv se z jedné etapy vrátit zpět a opravit nebo upravit část předchozí etapy nebo etap.

  • nejasný design - většina metodik je dobře propracovaná v etapě analýzy a dosti na rozpacích v etapě designu. Utíkají se k takovým nemetodickým popisům, jako jsou stromy volání procedur, nebo se snaží použít strukturované programování jako prostředek mezimodulového návrhu řízení.

Někdo kdysi pejorativně označil strukturální metodiky jako ”vodopádový model” a někteří kritici tuto asociaci berou doslovně a tvrdí, že je zakázáno vracet se do již ukončených etap. Strukturální metodika to naopak doporučuje, na druhé straně je třeba připustit, že tyto metodiky se svým velkým množstvím navzájem provázaných modelů působí poněkud neohrabaným dojmem a člověk se instinktivně takovému návratu vyhýbá.

Objektové metodika

V současné době se v oblasti analyzy a návrhu informačních systémů hovoří o objektově orientovanych metodikách a modelech. Všichni návrháři i producenti modelovacích nástrojů zdůrazňují plnou podporu objektovych metodik (v současnosti zejména UML, viz kapitola o metodikách).

Je nutné hned na začátku zmínit fakt, že objektově orientovaná analyza a design (OOAD) není něčím, co by dokázalo plně nahradit všechny předcházející metodiky ve všech oblastech analýzy a návrhu. Zaměřuje se spíše na popis systému, přičemž po jejím boku mají stále důležité místo diagramy datových a procesních toků.

Základní koncepty objektového přístupu

Všechny následující prvky jsou využívány v UML. Znázornění v modelech UML je přímo popsáno u prvků, které se v diagramech objevují. Důvodem je fakt, že mi nepřipadá vhodné rozdělit vyklad “teoreticky” (tj. prvek objektové metodiky) a “prakticky” (tj. znázornění prvku objektové metodiky). Notace UML je v současné době de facto jedinou používanou objektovou notací v analýze (přičemž využívá všech prvků a dřívějších notací objektového přístupu).

Abstrakce - Výběr vlastností (atributů) a operací (metod) objektu, které je třeba v modelu uvažovat.

Třída - Třídy představují zobecnění reálnych objektů modelovaných v zájmové oblasti. Třída se znázorňuje jako obdélník, přičemž se uvnitř čarou odděluje oblast pro název třídy, pro atributy a pro metody. Každý objekt třídy má své popisné charakteristiky (např. barva, velikost), tzv. atributy. Každý atribut může mít přiřazené omezení (znázorňuje se ve složených závorkách), např. rozsah hodnot, kterých může nabývat. Dále se objekty, které jsou prvky definované třídy, nějak chovají. Toto chování se popisuje prostřednictvím tzv. metod. Popisné charakteristiky metod se nazývají příznaky (signatury). Atributy i metody je možné uspořádat do skupin, název skupiny se pak označuje stereotypem (viz kapitola o metodice UML níže). Odpovědnost třídy popisuje např. výstup (“hodnotu”), který má třída poskytovat.

Třída se označuje jako abstraktní, jestliže se v modelu nevyskytují žádné její instance (objekty). Může se například jednat o nadtřídy při použití dědičnosti. Pokud je třída abstraktní, píše se její jméno kurzívou. Jedna třída může přímo využívat jinou třídu (např. příznak operace jedné třídy využívá třídu jinou - např. metoda “zobraz menu” u jedné třídy a třída “menu”). Jedná se o vztah závislosti. Závislost se znázorňuje čárkovanou čarou začínající např. u dané metody a zakončenou u druhé třídy prázdným trojúhelníkem.

Rozhraní (interface) je skupina operací, které určují chování třídy a její vztah k jiným třídám. Rozhraní nemá žádné atributy, jedná se pouze o skupinu metod. Třída rozhraní se značí stereotypem «rozhraní». Vztah mezi třídou a rozhraním se nazývá realizace. Realizace se znázorňuje přerušovanou čarou zakončenou nevybarveným trojúhelníkem na straně rozhraní. Rozhraní může být zjednodušeně znázorněno i kroužkem spojeným čarou se třídou.

Další důležitou vlastností třídy je viditelnost jejích atributů a metod ostatním třídám (viz zapouzdření). Existují tři úrovně viditelnosti, public (veřejná), private (soukromá) a protected. U protected mohou používat atributy a metody pouze potomci dané třídy (viz dědičnost). Soukromé atributy a metody může používat pouze původní třída. Veřejné atributy a metody může využívat kterákoliv třída. V notaci UML se veřejný atribut nebo metoda označují “+” před nimi. Protected se označují “#” a soukromý “-”.

Dědičnost

Každý objekt dědí atributy a metody třídy, do které patří, i nadtřídy, pokud existuje. V UML se dědičnost nazývá zobecnění. Všude, kde se vyskytuje nadtřída, může se vyskytovat i podtřída.  Dědičnost se značí čarou zakončenou na straně nadtřídy (obvykle se označuje jako rodič, podtřída pak jako potomek) nevybarveným trojúhelníkem.  Do podtřídy se pak už neuvádí všechny atributy a metody, které jsou uvedeny u nadtřídy.  Má-li třída jednoho rodiče, nazýváme tento stav jednoduchou dědičností, má-li jich více, jedná se o vícenásobnou dědičnost. Pokud třída rodiče nemá, jedná se o bázovou (základní) třídu. Pokud třída nemá potomky, hovoříme o listové třídě.

Polymorfismus

Znalost třídy, jak provést určitou operaci, která může být obecně společná pro více tříd.

Zapouzdření

Jedná se o skrývání informací objektů tříd před okolím. Informace se zpřístupňují přes definovaný okruh metod. Dochází tedy na rozlišování dat a operací soukromých (nejsou z vnějšku viditelné ani přístupné) a veřejných (z vnějšku použitelné).

Synergie a objektová struktura

Synergie znamená, že objekt je spojením dat a chování. Objektová struktura vyjadřuje důraz na to, co objekt je, než jak je užit.

Asociace

Vyjadřuje fakt, že objekty jsou mezi sebou ve vzájemném vztahu. Asociace mezi dvěma objekty mohou být jednosměrné i obousměrné. Směr asociace se znázorňuje vybarvenym trojúhelníkem u názvu asociace. Každá třída hraje v asociaci určitou roli. Role se zapisují na konce asociace ke třídám, s nimiž souvisejí. Asociaci může být přiřazeno určité pravidlo, omezující podmínka. Je pak umístěna ve složených závorkách. Násobnost asociace vyjadřuje, kolik objektů jedné třídy se vztahuje ke kolika objektům druhé třídy. Konkrétní počet se zapisuje konkrétním číslem (popř. intervalem), neurčitý počet (N) se značí hvězdičkou. Jestliže jsou dvě třídy ve vztahu 1:0 nebo 1:1, je druhá třída pro první třídu volitelná (nepovinná). Kvalifikátor u třídy určuje, podle jakého atributu se v asociaci vyhledává (např. ve vazbě 1:M kvalifikátor říká, podle kterého atributu se konkrétní objekt ve vazbě z M objektů druhé třídy vyhledá). Znázorňuje se v obdélníku vedle třídy, kde se vyhledávání provádí, z něho pak pokračuje asociační čára. Asociace může být tzv. reflexivní. Jedná se o asociaci mezi jednou a tou samou třídou. Nastává to v případech, kdy objekt třídy může “hrát” více rolí. Dvě asociace (nebo více asociací) může mít vůči sobě vztah nebo (dochází k jedné asociaci nebo ke druhé, jedná se tedy o určité omezení každé z asociací). Vztah nebo se znázorňuje čárkovanou čarou (spojnicí) mezi asociacemi, kterých se týká. Asociace může mít atributy a metody, jedná se pak o asociační (vazební) třídu. Asociační třída je spojena s asociací čárkovanou čarou.