Objekty v analýze a návrhu

Mnoho lidí (bohužel) degraduje objektově orientované programování pouze na deklaraci nějakých tříd a vytváření ob...


Mnoho lidí (bohužel) degraduje objektově orientované programování pouze na
deklaraci nějakých tříd a vytváření objektů. Tato představa je ovšem dosti
zkreslená. Objektové techniky vedou analytiky k tomu, aby získali jiný pohled
na realitu a aby byli schopni nějakým způsobem lépe podchytit fungování
určitého systému.
Je tedy třeba si uvědomit, že ne každý program, který ve finále implementuje
nějaké třídy, je skutečně navrhován objektově a naopak, že objektově navržený
program nakonec nemusí žádné třídy používat.
Jinak řečeno objektově orientované analytické techniky jsou postupy, které se
odehrávají v hlavě programátora analytika a kterými se řídí při analýze
problému a návrhu aplikace. To, jestli bude výsledná aplikace programována
pomocí tříd a objektů, s tím nemá nic společného.
Objektové techniky
Objektové techniky vedou analytiky k tomu, aby modelovali vymezený systém
pomocí jakýchsi "objektů", které budou nějakým způsobem vystihovat určitý výsek
reality tohoto systému. K tomu se při objektové analýze používá řada modelů a
diagramů.
Centrem všeho je objektový model, který zachycuje jednak dědičnost tříd, ale
také asociace (vztahy neboli odkazy) mezi jednotlivými třídami. V tomto smyslu
je datový model rozšířením datového modelu ze strukturované analýzy. I v
objektové analýze se používá funkční model, který mapuje datové toky uvnitř
vymezeného systému.
Do značné míry jde o obdobu těch modelů, které se používaly u strukturovaných
technik. Další modely jsou potom pro objektové metodiky specifické. Jedním z
nich je dynamický model, který zachycuje interakce mezi objekty, které jsou
reakcí na jednu konkrétní událost. V případě složitější dynamiky se také
používá stavový model, který zachycuje stavy objektu a popisuje, v jakých
situacích může objekt mezi těmito stavy přecházet.
Některé objektově orientované metodiky pracují také s tzv. "modelem jednání".
Ten (obvykle v textové podobě) zachycuje různé scénáře použití zkoumaného
systému. Tento model by měl být (po pečlivém vypracování v součinnosti se
zákazníkem) základem pro další modelování zkoumaného systému.
Objektově orientované metodiky doporučují iterativní analytické postupy.
Ukazuje se, že analýzu nelze provést konzistentně "na první pokus". Proto je
potřeba se k jednotlivým modelům znovu vracet a opravovat je tak, aby
korespondovaly s realitou a současně mezi sebou navzájem. K udržování
konzistence jednotlivých modelů navzájem mohou napomoci vhodné CASE nástroje,
ale jejich možnosti nejsou neomezené a konzistenci je do jisté míry nutné
hlídat ručně. V případě řešení "konzistence s realitou" je role analytika
nezastupitelná.
Na základě ověřených analytických modelů může být teprve vytvářen design (ve
smyslu "architektury") aplikace. Zde se rozhoduje o tom, jakým způsobem budou
jednotlivé třídy implementovány tedy jestli budou implementovány jako nějaká
třída v konkrétním programovacím jazyce či nějak jinak (jako více tříd apod.).
Někde ano, někde ne
Techniky objektové analýzy a návrhu se příliš nehodí pro tvorbu "klasických"
databázových aplikací (v angličtině výstižněji nazýváno data-centric
applications). To jsou aplikace typu "evidence čehosi", které se celé točí
okolo několika datových zdrojů a mají malou dynamiku (a kde dynamický a stavový
model prakticky zanikají). Naopak velice vhodné a účinné se objektové techniky
jeví pro analýzu systémů pracujících v reálném čase, které mají složitou
dynamiku a kde stav jednoho objektu ovlivňuje chování dalších objektů.
Objektové techniky analýzy a návrhu vycházejí z podobných principů jako
techniky strukturované. Snaží se díky soustavě různých modelů nahlížet na
problém komplexně z několika úhlů pohledu a pomocí určitých zásad vést
analytika k uvažování o objektech, které jsou jistým obrazem reálného světa.
Objektové techniky jsou sice pro řešení některých úloh příliš těžkopádné, ale
velice pomáhají při analýze takových problémů, kde stav jednoho objektu
ovlivňuje chování dalších objektů a kde de facto souvisí vše se vším.
1 0461 / pen









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.