Modelem řízený vývoj (MDA)

Modelem řízený vývoj a modelem řízená architektura, doménový (CIM), konceptuální (PIM), logický (PSM) a fyzický model, transformace modelů. Reverzní inženýrství.

 

Jednou z často citovaných zkratek poslední doby je MDA (Model Driven Architecture), nebo MDD (Model Driven Development). MDA (modelem řízená architektura) Tento koncept přináší „nový“ přístup v oblasti vývoje a především údržby IS, který je založen na klasickém OOP(Objektově orientované programování). Hlavní myšlenkou MDA je oddělit business a aplikační logiku od technologické platformy. Základní princip těchto přístupů spočívá v tom, že se při tvorbě aplikace využívá nějaký model. Přesněji: model je základním artefaktem, podle kterého se vše ostatní řídí. 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.

MDD – Model Driven Development:

·         Model vzniká vždy. Někdy bohužel jen v hlavách vývojářů.

·         Model je kombinací textu a diagramů.

·         Model by měl být „čitelný“ i bez diagramů.

·         Diagramy „pouze“ usnadňují pochopení základní myšlenky popisovaného.

·         Každý digram by měl obsahovat pouze jednu myšlenku.

·         Vytváření modelu je tedy převážně mentální úsilí vyúsťující v psaní textu a kreslení diagramů.

Proč modely vytvářet?

·         „Zaměstnanci přicházejí a odcházejí, modely zůstávají.“

·         Znovupoužitelnost (firemní know-how).

·         Sledovatelnost realizace požadavků.

·         Zvýšení udržovatelnosti produktu.

·         Možnost kontroly, animace.

·         Možnost automatizovaného zpracování.

Rozčlenění architektury

·         Computation Independent Model (CIM)

·         Platform Independent Model (PIM)

·         Platform Specific Model (PSM)

 


 

 

Computation Independent Model (CIM) - Model nezávislý na počítačovém zpracování modeluje procesy a definuje slovník pojmů modelované oblasti. Model, též známý jako doménový model (popisuje modelovanou skutečnost tak, jak je), 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.

 

Co obsahuje CIM:

·         Požadavky (Funkční požadavky a Obecné, nefunkční požadavky)

·         Business procesy

·         Účastníci – aktéři

·         Případy užití (use cases)

·         Entity systému

 

Platform Independent Model (PIM) model se zabývá tou částí kompletní specifikace systému, která se nemění podle konkrétního druhu zvolené platformy

·         PIM = Platform Independent Model, česky „konceptuální model“.

·         Popisuje modelovaný systém, ale nezabývá se detaily řešení pro určitou platformu.

·         Při vytváření modelu PIM sice vycházíme z doménového modelu CIM, ale to neznamená, že by musel být striktně podmnožinou doménového modelu. Informace a služby mohou být strukturovány zcela jinak.

·         Konceptuální model může být naznačovat určitý architektonický styl, nebo může být vhodný pro různé architektury.

Platform Specific Model (PSM) - česky „logický model“. Poslední model specifikace MDA, který je již závislý na cílové platformě, kombinuje PIM s konkrétním technologickým řešením (např. .NET, J2EE).

 

·         Vytváří se poté, co si architekt systému vybere určitou platformu, která umožňuje implementaci systému (s jistou zajištěnou kvalitou).

·         Architekt má představu o vybrané platformě a převádí konceptuální model na model logický. Někdy se tato transformace prezentuje formou manuálů, někdy zůstává v architektově mozku.

·         MDA vyžaduje podrobné logické modely, které poslouží při implementaci

Transformace modelů

Transformace mezi modelem CIM a modelem PIM je zcela manuální. Obvyklým postupem je transformace firemních procesů do akcí uživatele, což je zachyceno diagramem případů užití. Specifikace MDA se ale touto transformací nezabývá.

 

Přínosem MDA je hlavně automatizace transformací mezi modely PIM a PSM. Specifikace MDA rozděluje transformace mezi těmito modely do čtyř kategorií:

·         Návrhář může na základě prostudování platformově nezávislého modelu vytvořit

manuálně platformově specifický model.

·         Návrhář může po rozboru platformově nezávislého modelu použít ke zjednodušení

práce s tvorbou platformově specifického modelu již vytvořené šablony.

·         Na platformově nezávislý model se použije algoritmus, který vytvoří kostru

platformově specifického modelu. Tu pak návrhář manuálně doplní. K doplnění může

použít šablony z bodu 2.

·         Algoritmus použitý na kompletní platformově nezávislý model vytvoří kompletní

platformově specifický model.

 

Reverzní inženýrství.

Zatím jsme uvažovali postup od modelu ke kódu. Tomuto postupu se říká také dopředné

inženýrství (forward engineering). Obrácený postup - získávání modelu z kódu, či z modelu

nižší úrovně se nazývá zpětné inženýrství (reverse engineering).

Zpětné inženýrství je často využíváno pro získání softwarové dokumentace, která umožní například:

·         analyzovat určité proprietární datové formáty (pro zvýšení interoperability),

·         odhalit slabiny

·         pochopit funkci databázových modelů

·         odhalit funkci kódu počítačových programů

·         odstranění ochrany proti kopírování počítačových her, aplikací, operačních systémů apod. (tzv. cracking)

·         vyhledávání bezpečnostních chyb (viz programátorská chyba, zranitelnost, exploit)

 

Reverzní postup je složitější a zatím tato problematika není uspokojivě zvládnuta. Reverzní transformace jsou užitečné, pokud například najdeme při testování chybu, která je zjevně v analýze, a chceme opravu této chyby promítnout zpět do analytických modelů.