Model driven architecture: Porovnání verzí

Smazaný obsah Přidaný obsah
Oprava gramatické chyby
JAnDbot (diskuse | příspěvky)
m typo; kosmetické úpravy
Řádek 1:
'''MDA''', '''Model Driven Architecture''' (Modelem řízená [[architektura]]) je [[specifikace]] konsorcia [[OMG]] <ref name="OMG">OMG: „MDA Guide Version 1.0.1“, el. zdroj: http://www.omg.org/docs/omg/03-06-01.pdf, June 2007</ref> založená na pevně stanovených standardech této skupiny. Tento [[koncept]] přináší „nový“ přístup v oblasti vývoje a především údržby informačních systémů, který je založen na klasickém [[OOP]]. Hlavní myšlenkou MDA je oddělit business a aplikační logiku od technologické platformy. Tato myšlenka není nikterak nová, potřeba vytvářet analytický a návrhový [[model]] tu existuje poměrně dlouho. To, co MDA přináší nového, jsou postupy a způsoby, jak tyto modely správně transformovat. Primárními cíli tohoto přístupu jsou zajištění přenosnosti, interoperability (součinnosti) a znovupoužitelnosti díky oddělené architektury.
 
'''MDA poskytuje obecný přístup jak:'''
* Specifikovat systém nezávisle na platformě na které je systém vystavěn
* Specifikovat [[platformy]]
* Vybrat konkrétní platformu
* Transformovat systém podle zvolené platformy
 
'''MDA člení architekturu na čtyři úrovně:'''
* Model nezávislý na počítačovém zpracování ([[CIM]])
* Model nezávislý na platformě ([[PIM]])
* Model specifický na konkrétní platformě ([[PSM]])
* [[Zdrojový kód]] [[aplikace]] (výsledná implementace)
 
== Computation Independent Model (CIM) ==
Model, též známý jako [[doménový model]], se zaměřuje výhradně na prostředí a obecné požadavky systému a jeho detailní struktura a konkrétní zpracování jsou v této fázi skryté nebo dosud neurčené. Tento model reflektuje „business“ požadavky zákazníka a pomáhá přesně popsat to, co se od systému očekává. Proto musí být nezávislý na technickém zpracování a popisovat systém čistě věcně a logicky. Předpokládá se, že uživatel těchto modelů je člověk, který není obeznámen s modely nebo konstrukcemi užívaných k vyjádření funkčnosti těch požadavků, které jsou právě specifikované v CIM. Nejčastějšími uživateli tohoto typu modelů jsou „business“ analytici případně sami uživatelé systému. Tento druh zobrazení neslouží pouze jako prostředek k pochopení problémů a vymezení problémové oblasti, ale také jako jakýsi sdílený zdroj pojmů (slovník problémové oblasti), které se používají v jiných modelech (úrovních MDA) nebo pro další [[modelovaní]] na stejné úrovni. Ve skutečnosti mohou být tyto modely např. procesní modely, [[Use case]] diagramy případně diagramy činností.
 
== Platform Independent Model (PIM) ==
Tento model se zabývá tou částí kompletní specifikace systému, která se nemění podle konkrétního druhu zvolené platformy. PIM totiž zprostředkovává určitou míru nezávislosti konkrétního řešení dané problémové oblasti tak, aby se hodila na různé platformy podobného typu. Popisuje chování (algoritmy) a strukturu aplikace opravdu jen v těch mezích, které zajistí jeho přenositelnost mezi různými technologickými řešeními. Oproti předcházejícímu modelu je doplněn o ty informace (algoritmy, principy, pravidla, omezení…), které jsou nezbytně důležité k řešení dané problémové oblasti prostřednictvím informačních technologií. Ovšem je důležité poznamenat, že tento model přesně nevychází z CIM, nýbrž si z něho obvykle [[IT]] analytik vybere pouze to podstatné, co se považuje za smysluplné pro potřeby počítačového zpracování konkrétní problémové oblasti. Transformace z modelu CIM do PIM obvykle neprobíhá automaticky, je to dáno především odlišným charakterem těchto modelů, kde PIM je model struktury (objektový model), kdežto CIM je spíše procesní model. Tento přechod probíhá skrze Use Case scénáře, které přiblíží procesní model k objektovému. Velkou výhodou PIM modelu je jeho znovupoužitelnost a proto může posloužit jako výchozí bod pro různá zadání.
 
== Platform Specific Model (PSM) ==
Řádek 24:
== Transformace modelu PIM do PSM ==
Jedná se o proces aplikace konkrétních transformačních pravidel na model nezávislý na platformě, jenž vyústí v PSM. Otázkou je, jaká transformační pravidla mají být použita u konkrétních elementů z PSM. MDA specifikace popisuje hned několik způsobů, jak vytvořit (mapovat) tyto vazby (v čemž spočívá asi jeho největší přínos).
Jednou z možností je mapovat přes meta-modely, kdy jednotlivé typy elementů jak v PIM tak v PSM, jsou specifikovány ve dvou odlišných tzv. [[MOF]] („Meta Object Facility“) meta-modelech. V tomto případě jsou určena jasná mapovací pravidla (algoritmy) určující protějšky ke konkrétním typům v meta-modelu PIM z meta-modelu PSM. Jedná se vlastně o překlad z meta jazyka uřčeného pro modelování v PIM do meta jazyka sloužícího k vyjádření typově různých elementů závislých na dané platformě (viz. následující obr.).
[[Soubor:transformation_PIM2PSM.jpg|none|PIM transformace do PSM]]
Dalším přístupem je mapování prostřednictvím tzv. značek. Těmito značkami se označí jednotlivé elementy a tím se určuje, jakým způsobem budou transformovány. Slouží tedy jako identifikátory pro transformační pravidla. Jednoduchým příkladem značky by mohla být „Entita“, která může být aplikována na nějakou třídu nebo jiný objekt z PIM. Složitější ukázkou je případ, kdy je více elementů modelu osázeno značkami, které dohromady tvoří identifikovatelnou sadu. K této sadě je jasně definována transformační šablona např. v podobě [[návrhového vzoru]]. A aby to nebylo jednoduché, je také možno jednomu elementu přiřadit více značek. To indikuje, že tento prvek hraje roli ve více než jednom mapování a proto také bude podle každého z nich transformován. Ve výsledku se to může projevit jak dodatečnou vlastností stejně tak jako novým elementem v PSM.