Model driven architecture: Porovnání verzí

Přidáno 27 bajtů ,  před 4 lety
m
Robot: přidáno {{Autoritní data}}; kosmetické úpravy
m (Editace uživatele 46.33.102.35 (diskuse) vráceny do předchozího stavu, jehož autorem je Hubipe)
m (Robot: přidáno {{Autoritní data}}; kosmetické úpravy)
'''MDA''', '''Model Driven Architecture''' (modelem řízená [[architektura]]) je [[specifikace]] konsorcia [[Object Management Group|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 [[standard]]ech 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 [[Objektově orientované programování|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é architektuře.
 
== Obecný přístup ==
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žádné|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.
[[Soubor:transformation_PIM2PSM_nextway.jpg|nonežádné|PIM transformace do PSM]]
V reálu se k transformaci používá obvykle kombinace obou výše uvedených přístupů. Mapování pomocí meta-modelu totiž v sobě skrývá omezení, které nedovoluje více instancím jedno typu z PIM přiřadit různé protějšky z PSM. Tato neschopnost, dodatečně přidat potřebné informace, dělá tento způsob silně deterministickým. Proto některé charakteristické typy s PIM musejí být opatřeny značkou za účelem detailnějšího specifikování. Na druhou stranu každá transformace jednotlivých elementů v sobě předpokládá určitá typová omezení, kterých by se každý návrhář měl držet, aby výsledná transformace měla vůbec nějaký smysl. To znamená, že každý typ elementu v PIM má implicitně definovanou sadu značek, kterými ho lze označit. Výsledkem každé transformace je, jak již bylo uvedeno, platformově specifický model a dále záznam o transformaci. Ten v sobě zahrnuje mapu, která ukazuje jaké druhy transformací byly použity pro konkrétní druhy mapování, což umožňuje provádět transformaci i v opačném směru. Tyto informace v důsledku pomáhají lépe synchronizovat jednotlivé vrstvy na různých úrovních abstrakce a tak dosáhnout lepší konzistence.
 
=== Reference ===
<references />
{{Autoritní data}}
 
[[Kategorie:Architektura]]
1 361 498

editací