270 likes | 389 Views
Modelování, MDA a UML Martin Molhanec. MDA Day 22.8.2007. Osobní názor. Já si myslel od prvního okamžiku, že modely jsou k tomu, abychom podle nich vyvíjeli! Čili MDA je naprosto normální a přirozená věc! OK, chápu, že MDA klade na vývoj dle modelů akcent
E N D
Modelování, MDA a UMLMartin Molhanec MDA Day 22.8.2007
Osobní názor • Já si myslel od prvního okamžiku, že modely jsou k tomu, abychom podle nich vyvíjeli! • Čili MDA je naprosto normální a přirozená věc! • OK, chápu, že • MDA klade na vývoj dle modelů akcent • Model je zdroj a nikoliv jenom dokumentace. • MDA se snaží udělat v modelech pořádek • Co použít v analýze, návrhu a v implementaci.
Moje dvě cesty k MDA v letošním roce • Tvorba software 2002„UML – několik kritických poznámek„ • Tvorba software 2003„Objektové metodologie – jejich užití a výklad“ • Tvorba software 2004„Kritika některých výkladů objektově orientovaného paradigmatu“ • Objekty 2004„Několik poznámek k porozumění objektového paradigmatu“ • Tvorba software 2005„Zásady konceptuálního totálně objektově orientovaného modelování“ • Objekty 2005„Konceptuální modelování“ • Tvorba software 2006„Konceptuální modelování, formální základy a ontologie“ • Objekty 2006„Ontologické základy konceptuální normalizace“ • Tvorba software 2007„Modely, modelování, MDA a UML“
Typy modelů • Jaké vlastně existují? • Jak je klasifikovat? • Proč je tolik různých modelů? • Postupné zužování původního pojmu v čase. • Postupné rozšiřování původního pojmu v čase. • Přenesení významu původního pojmu v čase. (Čili, dnes se tím myslí něco jiného než před lety.) • Jeden název označuje více pojmů. • Jeden pojem má více názvů. • Pojem se šíři díky firemní či jiné agresivitě. Je sice určitým způsobem nesprávný, ale přesto se nakonec vžije jeho nekorektní užívání. • Pojem není správný, ale z určitých důvodů (tradice, zvyklost, hrdost) se nekorektně používá stále. • Jiné chápání daného pojmu ve světě IT a v jiných světech mimo IT.
Typy modelů • Datový • Logický • Konceptuální • Objektový • Entitně-vztahový • Relační • Ontologický • Na platformě nezávislý • Na platformě závislý • Business • Fyzický • Případů užití • Dynamický • Kontextový • Funkční • Procesní • Datových toků • Objektově-relační • Uživatelský • ...
MDE – MDA - MDD • Více názvů pro jedno paradigma • Každý zdůrazňuje jeho určitý aspekt • MDE (Model-Driven Engineering)Inženýrství řízené modelem • Zdůrazňuje systematické užití modelů jako primární během životního cyklu inženýrského úsilí • Je použitelné v oblasti softwarového, datového a systémového inženýrství!
MDE – MDA - MDD • Více názvů pro jedno paradigma • Každý zdůrazňuje jeho určitý aspekt • MDA (Model-Driven Architecture)Architektura řízená modelem • Je jeden způsob návrhu architektury softwarových systémů založený na paradigmatu MDE • V roku 2001 byl přijat sdružením OMG a stal se jeho registrovanou značkou
MDE – MDA - MDD • Více názvů pro jedno paradigma • Každý zdůrazňuje jeho určitý aspekt • MDD (Model-Driven Development)Vývoj řízený modelem • Je jeden způsob vývoje softwarových systémů založený na paradigmatu MDE • V roku 2001 byl přijat sdružením OMG a stal se jeho registrovanou značkou Všechny pojmy jsou do určité míry zaměnitelné a také se tak děje.
Metamodel MDA abstrakce realizace analýza implementace návrh požadavky business technologie
Hierarchie modelů v MDA • Business Model (CIM = Computation Independent Model) • Tento model tvoří nejvyšší konceptuální úroveň všech modelů. Je postaven na ontologii pro danou doménu. Je určen pro definování všech požadavků uživatele na činnost daného systému. • Platform Independent Model (PIM) • Jedná se o celou řadu modelů. Tyto modely můžeme označit za logické. Vycházejí z CIM a obsahují návrh řešení systému. • Platform Specific Model (PSM) • Je logický model pro určitou platformu (objektově orientovaná, relační, strukturovaná, objektově-relační, atp.) • Platform Description Model (PDM) • Je metamodel určité platformy. Abstrakce odpovídající konkrétnímu virtuálnímu výpočetnímu systému (relační, objektový,…)
Hierarchie modelů v MDA • Business Model (CIM = Computation Independent Model) • Tento model tvoří nejvyšší konceptuální úroveň všech modelů. Je postaven na ontologii pro danou doménu. Je určen pro definování všech požadavků uživatele na činnost daného systému. • Platform Independent Model (PIM) • Jedná se o celou řadu modelů. Tyto modely můžeme označit za logické. Vycházejí z CIM a obsahují návrh řešení systému. • Platform Specific Model (PSM) • Je logický model pro určitou platformu (objektově orientovaná, relační, strukturovaná, objektově-relační, atp.) • Platform Description Model (PDM) • Je metamodel určité platformy. Abstrakce odpovídající konkrétnímu virtuálnímu výpočetnímu systému (relační, objektový,…) PROBLÉM Samotná definice hierarchie modelů v rámci MDA není zcela jasná! Je předmětem četných vědeckých a odborných prací. Není pravděpodobně jediné správné řešení. Je nutné spíše uvažovat o MDE jako o určitém paradigmatu!
Vlastní koncepty • Koncepce modelů je založena na ontologii. Jedině ontologie dovoluje dostatečně přesně stanovit vlastnosti a vztahy mezi různými typy modelů. • Ontologie je metamodel pro modelování celého universa. To je však v praxi neuchopitelné. • Z ontologie je možné odvodit různé konceptuální modely, které představují různý úhel pohledu na svět. Například pohled na statickou stránku universa (datový model), pohled na chování objektů v universu (procesní model), pohled na funkcionalitu systému v universu (model požadavků), aj. • Různé konceptuální modely lze chápat jako podtypy univerzálního ontologického modelu (ontologie). • Extenze konceptuálních modelů může být rozdílná. Zajímá nás buď extenze vztažená na samotný IT systém (IT model), a nebo na všechny objekty určitého systému tento IT systém obsahující (business model). • S ohledem na určitou platformu (paradigma: relační, objektové, strukturované, aj.) se definují modely nižší úrovně (PSM) na základě restrikce intenze modelu PIM. • Modely PDM představují metamodel pro určitou konkrétní softwarovou platformu. Například: C++, Pascal, RDBMS, OODBMS, XML, atp. • Existují transformace mezi modely PIM ↔ PSM ↔ PDM.
Vlastní koncepty • Koncepce modelů je založena na ontologii. Jedině ontologie dovoluje dostatečně přesně stanovit vlastnosti a vztahy mezi různými typy modelů. • Ontologie je metamodel pro modelování celého universa. To je však v praxi neuchopitelné. • Z ontologie je možné odvodit různé konceptuální modely, které představují různý úhel pohledu na svět. Například pohled na statickou stránku universa (datový model), pohled na chování objektů v universu (procesní model), pohled na funkcionalitu systému v universu (model požadavků), aj. • Různé konceptuální modely lze chápat jako podtypy univerzálního ontologického modelu (ontologie). • Extenze konceptuálních modelů může být rozdílná. Zajímá nás buď extenze vztažená na samotný IT systém (IT model), a nebo na všechny objekty určitého systému tento IT systém obsahující (business model). • S ohledem na určitou platformu (paradigma: relační, objektové, strukturované, aj.) se definují modely nižší úrovně (PSM) na základě restrikce intenze modelu PIM. • Modely PDM představují metamodel pro určitou konkrétní softwarovou platformu. Například: C++, Pascal, RDBMS, OODBMS, XML, atp. • Existují transformace mezi modely PIM ↔ PSM ↔ PDM.
Vlastní koncepty • Koncepce modelů je založena na ontologii. Jedině ontologie dovoluje dostatečně přesně stanovit vlastnosti a vztahy mezi různými typy modelů. • Ontologie je metamodel pro modelování celého universa. To je však v praxi neuchopitelné. • Z ontologie je možné odvodit různé konceptuální modely, které představují různý úhel pohledu na svět. Například pohled na statickou stránku universa (datový model), pohled na chování objektů v universu (procesní model), pohled na funkcionalitu systému v universu (model požadavků), aj. • Různé konceptuální modely lze chápat jako podtypy univerzálního ontologického modelu (ontologie). • Extenze konceptuálních modelů může být rozdílná. Zajímá nás buď extenze vztažená na samotný IT systém (IT model), a nebo na všechny objekty určitého systému tento IT systém obsahující (business model). • S ohledem na určitou platformu (paradigma: relační, objektové, strukturované, aj.) se definují modely nižší úrovně (PSM) na základě restrikce intenze modelu PIM. • Modely PDM představují metamodel pro určitou konkrétní softwarovou platformu. Například: C++, Pascal, RDBMS, OODBMS, XML, atp. • Existují transformace mezi modely PIM ↔ PSM ↔ PDM.
Moje dvě cesty k MDA v letošním roce • Tvorba software 2002„UML – několik kritických poznámek„ • Tvorba software 2003„Objektové metodologie – jejich užití a výklad“ • Tvorba software 2004„Kritika některých výkladů objektově orientovaného paradigmatu“ • Objekty 2004„Několik poznámek k porozumění objektového paradigmatu“ • Tvorba software 2005„Zásady konceptuálního totálně objektově orientovaného modelování“ • Objekty 2005„Konceptuální modelování“ • Tvorba software 2006„Konceptuální modelování, formální základy a ontologie“ • Objekty 2006„Ontologické základy konceptuální normalizace“ • Tvorba software 2007„Modely, modelování, MDA a UML“ • Tvorba software 2001„Tvorba webových sídel jako inženýrský úkol“ • Objekty 2001„Object-Oriented Hypermedia Design Model“ • Tvorba software 2002„Metodologie OOHDM, jazyk Lua a tvorba webových aplikací“ • Tvorba software 2003„Metodologie orientované na tvorbu webových sídel“ • Objekty 2003„WebML – Objektově orientovaná metodika pro tvorbu webových sídel“ • Tvorba software 2004„Metodiky orientované na tvorbu webových sídel“ • Tvorba software 2005„Metodika UWE (UML based Web Engineering)“ • Tvorba software 2006„Novinky ve webových metodikách a metodika OntoWeaver“ • Tvorba software 2007„Novinky ve webových metodikách a metodika WebRE/UWE“
UWE Obecně lze konstatovat, že většina webových metodik je v podstatě MDA • UWE (UML Web Engineering) • Metodika navržená Norou Koch (Ludwig-Maximilians-Universität München) v roce 2000 • Hlavní rysy • použití standardní notace UML ve všech jejich modelech, • přesná definice metodiky, tj. přesný a podrobný popis způsobu vytváření všech jednotlivých modelů a • specifikace omezení (constraints), které zvyšují přesnost jednotlivých modelů. • Vývojový cyklus • analýzy požadavků (requirement analysis), jejímž výsledkem je model užití (use case model), • konceptuálního návrhu (conceptual design), jehož výsledkem je konceptuální model (conceptual model), • návrhu navigace (navigation design), jehož výsledkem je model navigačního prostoru a struktury (navigation space and structure model) a • návrhu prezentace (presentation design), jeho výsledkem je prezentační model (presentational model).
UWE + MDD Autoři metodiky UWE se snaží svojí metodiku vylepšit s pomocí koncepce MDD (Model Driven Development.) • Business Model (CIM = Computation Independent Model) • Platform Independent Design Models (PIM) • Platform Specification Models (PSM)
UWE + MDD Autoři metodiky UWE se snaží svojí metodiku vylepšit s pomocí koncepce MDD (Model Driven Development.) • Business Model (CIM = Computation Independent Model) • Platform Independent Design Models (PIM) • Platform Specification Models (PSM)
UWE + MDD Platform Independent Design Models (PIM) • Content model(model obsahu) • Navigational model(model navigace) • Process model(procesní model) • Presentation model(prezentační model)
UWE + MDD Autoři metodiky UWE se snaží svojí metodiku vylepšit s pomocí koncepce MDD (Model Driven Development.) • Business Model (CIM = Computation Independent Model) • Platform Independent Design Models (PIM) • Platform Specification Models (PSM)
Vztah mezi WebRE a UWE Jedná se vlastně o dva různé modely. Přechod mezi nimi je založen na transformaci. Pro popis transformace se využívá QVT (Queries/Views/Transformations)
WebRE/UWE • Práce dále pokračují • Projekt MAEWA (Modellbasierte Entwicklung von Web-Anwendungen). • Rozvoj v oblastech: • Modelování webových aplikací řízených workflow. • Automatizované generování webových aplikací. • Validace modelů a kódu webových aplikací.
Trendy ve webových metodikách • Snaha o využití moderních konceptů vývoje systémů, jako je například MDA, MDD, MDE. • Snaha o pevné teoretické základy postavené na ontologiích. • Snaha o přesný a formální popis jednotlivých metod, pojmů a diagramů. Například s využitím deskriptivní logiky. • Snaha o metodický přesný popis přechodů mezi jednotlivými modely v té které metodice užívanými. Například od konceptuálního modelu k modelu navigace a prezentace. • Snaha o využití standardních nástrojů jaké jsou UML, XML a další. • Snaha o pokrytí celého životního cyklu vývoje produktu. • Snaha o poskytnutí profesionálního nástroje typu CASE uživatelovi.
Moje dvě cesty k MDA v letošním roce • Tvorba software 2002„UML – několik kritických poznámek„ • Tvorba software 2003„Objektové metodologie – jejich užití a výklad“ • Tvorba software 2004„Kritika některých výkladů objektově orientovaného paradigmatu“ • Objekty 2004„Několik poznámek k porozumění objektového paradigmatu“ • Tvorba software 2005„Zásady konceptuálního totálně objektově orientovaného modelování“ • Objekty 2005„Konceptuální modelování“ • Tvorba software 2006„Konceptuální modelování, formální základy a ontologie“ • Objekty 2006„Ontologické základy konceptuální normalizace“ • Tvorba software 2007„Modely, modelování, MDA a UML“ • Tvorba software 2001„Tvorba webových sídel jako inženýrský úkol“ • Objekty 2001„Object-Oriented Hypermedia Design Model“ • Tvorba software 2002„Metodologie OOHDM, jazyk Lua a tvorba webových aplikací“ • Tvorba software 2003„Metodologie orientované na tvorbu webových sídel“ • Objekty 2003„WebML – Objektově orientovaná metodika pro tvorbu webových sídel“ • Tvorba software 2004„Metodiky orientované na tvorbu webových sídel“ • Tvorba software 2005„Metodika UWE (UML based Web Engineering)“ • Tvorba software 2006„Novinky ve webových metodikách a metodika OntoWeaver“ • Tvorba software 2007„Novinky ve webových metodikách a metodika WebRE/UWE“ MDA je logické završení snahyo správné a efektivní využití modelování ve všech fázích životního cyklu produktu.
Moje dvě cesty k MDA v letošním roce KONEC • Tvorba software 2002„UML – několik kritických poznámek„ • Tvorba software 2003„Objektové metodologie – jejich užití a výklad“ • Tvorba software 2004„Kritika některých výkladů objektově orientovaného paradigmatu“ • Objekty 2004„Několik poznámek k porozumění objektového paradigmatu“ • Tvorba software 2005„Zásady konceptuálního totálně objektově orientovaného modelování“ • Objekty 2005„Konceptuální modelování“ • Tvorba software 2006„Konceptuální modelování, formální základy a ontologie“ • Objekty 2006„Ontologické základy konceptuální normalizace“ • Tvorba software 2007„Modely, modelování, MDA a UML“ • Tvorba software 2001„Tvorba webových sídel jako inženýrský úkol“ • Objekty 2001„Object-Oriented Hypermedia Design Model“ • Tvorba software 2002„Metodologie OOHDM, jazyk Lua a tvorba webových aplikací“ • Tvorba software 2003„Metodologie orientované na tvorbu webových sídel“ • Objekty 2003„WebML – Objektově orientovaná metodika pro tvorbu webových sídel“ • Tvorba software 2004„Metodiky orientované na tvorbu webových sídel“ • Tvorba software 2005„Metodika UWE (UML based Web Engineering)“ • Tvorba software 2006„Novinky ve webových metodikách a metodika OntoWeaver“ • Tvorba software 2007„Novinky ve webových metodikách a metodika WebRE/UWE“