Vysoká Škola Ekonomická - Fakulta informatiky a statistiky. 4IT450 CASE Computer aided systems engineering



Podobné dokumenty
Vysoká škola ekonomická v Praze

Unifikovaný modelovací jazyk UML

7 Jazyk UML (Unified Modeling Language)

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

7 Jazyk UML (Unified Modeling Language)

Komputerizace problémových domén

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

UML - Unified Modeling Language

UML: Unified Modeling Language

Vysoká škola ekonomická v Praze. Fakulta informatiky a statistiky. Katedra informačních technologií. Nástroje meta-case

Communist Party of Nepal (Unified Marxist-Leninist) Unified Modeling Language University of Massachusetts Lowell User-mode Linux.

Vysoká škola ekonomická v Praze. Fakulta informatiky a statistiky. Katedra informačních technologií. Nástroje meta-case

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Plug-in pro správu požadavků a sledování postupu vývoje

2. Konceptuální model dat, E-R konceptuální model

EXTRAKT z české technické normy

Statistica, kdo je kdo?

TÉMATICKÝ OKRUH Softwarové inženýrství

CASE nástroje. Jaroslav Žáček

Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Katedra informačních technologií

Modelování řízené případy užití

UML. Unified Modeling Language. Součásti UML

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Správa a sledování SOA systémů v Oracle SOA Suite

Návrh softwarových systémů - architektura softwarových systémů

SYSTÉM PRO KONFIGURACI KOMUNIKAČNÍCH TERMINÁLŮ A VIZUALIZACI STAVOVÝCH DAT Z KOLEJOVÝCH VOZIDEL

Modelování webových služeb v UML

Unifikovaný modelovací jazyk UML 1

VYUŽITÍ REGIONÁLNÍCH FUNKCÍ A WWW ROZHRANÍ V INTEGROVANÉM KNIHOVNÍM SYSTÉMU KPWINSQL

Principy UML. Clear View Training 2005 v2.2 1

Univerzita Pardubice Fakulta ekonomicko-správní Ústav systémového inženýrství a informatiky

TRANSFORMACE RELAČNÍHO DATOVÉHO MODELU NA OBJEKTOVÝ TRANSFORMATION OF RELATIONAL TO OBJECT DATA MODEL

Modelování procesů s využitím MS Visio.

6 Objektově-orientovaný vývoj programového vybavení

Základy programování Operační systémy (UNIX) doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

Základy analýzy. autor. Jan Novotný února 2007

MYBIZ - Řešení pro zpřístupnění dat ze stávajících aplikací na mobilních zařízeních (Mobilize your business!) Požadavky zákazníka.

Využití SysML pro tvorbu modelů v systémovém inženýrství

Modelování podnikových procesů

Návrh softwarových systémů - architektura softwarových systémů

ELEKTRONICKÁ PORODNÍ KNIHA POPIS APLIKACE Michal Huptych, Petr Janků, Lenka Lhotská

CASE. Jaroslav Žáček

Česká zemědělská univerzita v Praze. Provozně ekonomická fakulta. Katedra informačních technologií

MBI - technologická realizace modelu

Kolaborativní aplikace

Nástroje meta-case (charakteristika, přehled trhu, trendy)

XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS

Databázové systémy trocha teorie

Modelem řízený vývoj. SWI 1 Jan Kryštof

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

RUP - Disciplíny. Jaroslav Žáček jaroslav.zacek@osu.cz

TECHNIKY A CASE NÁSTROJE VÝVOJE IS

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika

Microsoft Office 2003 Souhrnný technický dokument white paper

Metody popisu systému, základy UML

PV207. Business Process Management

IMPLEMENTACE SYSTÉMU GROUPWISE NA PEF ČZU V PRAZE IMPLEMENTATION OF THE SYSTEM GROUPWISE ON THE PEF ČZU PRAGUE. Jiří Vaněk, Jan Jarolímek

Modelování informačních systémů s využitím jazyka UML. Jaroslav Šmarda

Komponentní technologie

Databázový systém Matylda

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75

Metodika. Architecture First. Rudolf Pecinovský

Vývoj informačních systémů. Přehled témat a úkolů

Analýza publikačního systému. KÚ Zlínského kraje

ROZVOJ ICT A PDA ZAŘÍZENÍ THE DEVELOPMENT OF ICT AND PDA DEVICES Jiří Vaněk

Vývoj informačních systémů. Přehled témat a úkolů

7.5 Diagram tříd pokročilé techniky

Sem vložte zadání Vaší práce.

Téma 5. Ovladače přístrojů Instrument Drivers (ID)

EXTRAKT z mezinárodní normy

Návrh IS - UML. Jaroslav Žáček

Příloha č. 1 Servisní smlouvy. Katalog služeb. S2_P1_Katalog služeb

Funkční analýza Předmět Informační systémy. Daniela Szturcová

1.1. Správa a provozní podpora APV ROS, HW ROS a základního SW

Návrh IS - UML. Jaroslav Žáček

Přehled systému Microsoft SQL Server. Komu je kniha určena Struktura knihy Nejvhodnější výchozí bod pro čtení knihy Konvence a struktura knihy

InTouch 8.0 Subsystém distribuovaných alarmů

MapleCloud a jeho použ ití. Vladimír Žák

Výzvy využívání otevřených dat v ČR

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Optimalizace podnikových procesů fakultní nemocnice

Architektura aplikace

Řízení SW projektů. Lekce 1 Základní pojmy a jejich vztahy. přednáška pro studenty FJFI ČVUT. zimní semestr 2012

Tvorba informačních systémů

Architektury Informačních systémů. Jaroslav Žáček

Metodika analýzy. Příloha č. 1

Návrh aplikace. Project Westpon. Inteligentní simulátor budov. Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

RETAIL PROCESS TRACKER VIZUALIZACE OBCHODNÍCH PROCESŮ VAŠEHO INFORMAČNÍHO SYSTÉMU

Integrace OpenOffice.org a Javy. CZJUG, , Robert Vojta

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová

Relační databáze a povaha dat

Metodické postupy tvorby architektury

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

Business Process Modeling Notation

Příloha č. 18. Specifikace bloku PŘÍPRAVA. Příloha k zadávací dokumentaci veřejné zakázky Integrační nástroje, vstupní a výstupní subsystém

Novinky ve standardu UML 2.0

Control Section s.r.o.

Architektury Informačních systémů. Jaroslav Žáček

IBM SPSS Decision Trees

Transkript:

Vysoká Škola Ekonomická - Fakulta informatiky a statistiky 4IT450 CASE Computer aided systems engineering Nástroje meta-case (charakteristika, vývoj, přehled trhu, trendy) Přednášející: Doc. Ing. Václav ŘEPA, CSc. seminární práce Apfelthaler Jan Burianová Monika Cerman Michal Cibulka Ondřej Fořt David Lorenc Ondřej

Anotace Tato práce je zaměřena na srovnání CASE a metacase nástrojů, definování jejich vlastností a rozdílů, vývoji a trendů. V práci jsme se také zaměřili na popis některých metacase nástrojů. 2

Obsah Anotace... 2 Úvod... 4 Charakteristika metamodelování... 5 Principy a výhody metamodelování... 5 Využití metamodelování... 6 Princip MetaCASE a rozdíl oproti CASE... 6 Metody metacase modelování... 7 COMMA... 8 GOPRR... 8 Rodina standardů OMG... 8 Přehled trhu... 10 ConceptBase... 10 Metatřídy a task flow... 10 OMG modelování... 11 Data flow... 12 MetaEdit+... 14 Úvod... 14 Architektura... 15 Method Workbench... 15 Definice konceptů... 16 Výběr pravidel... 16 Kreslení symbolů... 17 Tvorba generátorů... 17 MetaEdit+ jako CASE nástroj... 18 Editor diagramů... 18 Editor matic... 19 Editor tabulek... 19 Prohlížeče... 20 Generátor kódů a zpráv... 20 MetaEdit+ ceník... 21 Metaview... 22 Úvod... 22 Metaview architektura... 22 Meta vrstva... 23 Environment vrstva... 23 User vrstva... 24 Databáze, přístup a celkové zařízení... 25 Uživatelské rozhraní... 25 Cena... 26 ArgoUML... 27 Coral... 29 Allfusion Component Modeler... 30 Trend (meta)case nástrojů... 31 Závěr... 32 Zdroje... 33

Úvod V této práci se budeme zabývat jednak významem metamodelování, vymezíme vlastnosti CASE a metacase nástrojů a popíšeme mezi nimi rozdíly. Dále popíšeme, jaký vývoj a trendy zaznamenaly metacase nástroje. Velká část této práce je věnována samotným metacase nástrojům. Tato práce má také sloužit k aktualizaci předchozích prací s touto tématikou. 4

Charakteristika metamodelování Principy a výhody metamodelování Metamodelování je činnost, při které se vytváří model nebo schématický popis na vyšší úrovni abstrakce tak, že předmětem tohoto modelu je něco, co samo o sobě vyjadřuje model něčeho jiného. Výhodou metamodelování je konzistentní způsob popisu odlišných datových struktur, z nichž se tvoří jednotný vyšší interoperabilní systém. obrázek. Metamodelování vychází z principů čtyřvrstvé architektury tak, jak ilustruje následující Vrstva metametamodelu - meta-metamodel Meta-metamodel Vrstva metamodelu - metamodel - meta-metada Vrstva modelu - model - metadata Vrstva dat - data Obrázek 1 Princip čtyřvrstvého principu metamodelování Vrstva dat reprezentuje fyzicky popisovaná data, v tomto případě vztah referenta s automobilem. Vrstva modelu obsahuje metadata, jež popisují data ve vrstvě dat. Metadata jsou shrnuta do modelů a určují strukturu dat. 5

Vrstva metamodelu zahrnuje popis (tj. meta-metadata) definující strukturu a sémantiku metadat. Z meta-metadat jsou neformálně tvořeny metamodely. Metamodel je abstraktním jazykem pro popis různých druhů dat. metamodel. Vrstva meta-metamodelu určuje sémantiku a strukturu meta-metadat, čímž popisuje Přestože tento konkrétní příklad předkládá pouze jeden model a (hlavně) jeden metamodel, tak mezi hlavní výhody principu čtyř vrstev patří podpora mnoha modelů a metamodelů. Tak jako třída Auto popisuje mnoho instancí automobilů na datové vrstvě, tak Třída, Atribut a Skládání na vrstvě metamodelu popisují mnoho tříd, atributů a asociací na vrstvě modelu. To samé platí ve vztahu meta-metamodelu a metamodelu. [1] Hlavní přínosy a výhody čtyřvrstvé architektury spatřujeme zejména v jednoduchém přidávání nových metadat a jejich souvislostí, a dále pak v podpoře všech modelovacích metodik a modelů. Využití metamodelování Metamodelování je používáno pro tvorbu nových metodologií, pro tvorbu návrhu informačních systémů pomocí generických modelů, dále napomáhá při integraci systémů a při implementaci metodologií v CASE nástrojích. Metamodelování je základním prvkem vývoje nových metodologií (ME Method Engineering). Nabízí také prostředky k nalezení společných vlastností různých metodologií, jejich standardizaci a případnou možnost jejich vzájemné spolupráce. Metamodelování dovoluje popsat jednotným způsobem odlišné datové struktury více systémů, což poskytuje možnost skládat tyto struktury dohromady ve vyšší systém, který dokáže pracovat s daty systémů, ze kterých je sestaven, a tím pomoci k jejich integraci. A naopak, metamodel poskytuje dobrou abstrakci systému a pomáhá nám k dobrému rozdělení systému na podsystémy a tím pomáhá zvládat komplexní projekty. Princip MetaCASE a rozdíl oproti CASE CASE nástroje jsou založeny na dvoustupňové architektuře. Návrhy, které vytvoříme, jsou uloženy v tzv. repozitoři, jejíž schéma je zkompilováno do CASE nástroje. Zde se určuje, jaké druhy modelů mohou být v CASE nástroji vytvořeny a jakým způsobem. Dále se zde udržují veškeré informace o projektu, např. také seznam všech provedených kroků. V případě využití CASE nástroje může tvůrce definovat a měnit pouze metody. Je to z toho důvodu, že jsou natvrdo uloženy ve zkompilovaném kódu. MetaCASE nástroje jsou založeny na třístupňové architektuře. 6

1. Nejnižší vrstva zahrnuje modely, tj. systémové návrhy. Model zachycuje první abstrakci nad entitami a vztahy mezi nimi. 2. Prostřední vrstva je Metamodel. Metamodel obsahuje definici jazyka pro vytvoření modelu, dále obsahuje strukturu a sémantiku metadat. 3. Nejvyšší vrstva je meta-metamodel. Jedná se o jazyk ke specifikaci metamodelu. V architektuře jsou všechny tři vrstvy vzájemně propojené. Model je založený na určitém metamodelu, který je založen na metamodelovacím jazyku. Můžeme říci, že vyšší vrstva vytváří metodiku pro nižší vrstvu. Používáním metacase nástrojů můžeme odstranit omezení v CASE nástrojích, tj. fixně zkompilovaný kód. Toho dosáhneme přidáním jedné úrovně nad metody. Obrázek 2 - Rozdíl mezi CASE a MetaCASE Metody metacase modelování Pro tuto oblast existuje velmi málo dostupných zdrojů, proto jsme si dovolili citovat jeden dostupný zdroj, ve kterém jsou metody metacase modelování velmi dobře a přehledně vysvětleny. Metamodelovací metody definují rámec pro metamodelování, který obvykle obsahuje definici meta-metamodelu a metamodelovacího jazyku, pomocí kterého je definován metamodel. Pro potřeby metamodelování v informačním a softwarovém inženýrství bylo vyvinuto mnoho přístupů pro tvorbu metamodelu - COMMA, GOPRR, MOF, OPRR, CoCoA, 7

NIAM, COOM atd. V dalších odstavcích jsou popsány tři metamodelovací rámce, které jsou vhodné pro definici metodik. COMMA Projekt COMMA (Common Object Methodology Architecture) se snažil identifikovat společné jádro všech objektově orientovaných metodologií, následně reprezentovat tyto základní pojmy pomocí metamodelu a vytvořit metamodely nejrozšířenějších objektově orientovaných metodologií. COMMA používá tyto základní pojmy: Pojem (Concept) má jméno a atributy, Dědění (Inheritance) vyjadřuje relaci specializace, Asociace (Association) vyjadřuje vztah mezi pojmy, Agregace (Aggregation) vyjadřuje skládání, je to speciální případ asociace, Role (Role) objevuje se, když objekt přijímá charakteristiky jiného objektu. Role je dočasná a objekt může mít i více rolí najednou. Hlavním výsledkem projektu COMMA je vytvoření velmi jednoduchého (ale mocného) objektově orientovaného metamodelovacího jazyku. Nevýhodou je, že tento projekt již skončil a neexistuje napojení na CASE nástroje. GOPRR Metamodelovací jazyk GOPRR (Graph-Object-Property-Role-Relationship) vznikl jako součást disertační práce rozšířením jazyka OPRR. Základními prvky metamodelovacího jazyka GOPRR, už podle názvu, jsou: Diagram (Graph) je kolekce objektů, vztahů a rolí, která definuje co a jak lze spojovat dohromady. Objekt (Object) definuje entitu, která může existovat sama o sobě. Vlastnost (Property) charakterizuje graf, objekt, roli nebo vztah. Vztah (Relationship) existuje mezi dvěma a více objekty. Role existuje mezi vztahem a objektem. Rodina standardů OMG Standardy OMG (Object Management Group) jsou založeny na čtyřvrstvé architektuře. Vrstvu meta-metamodelu popisuje standard MOF (Meta Object Facility). OMG definuje několik metamodelů založených na MOF: metamodel UML (Unified Modeling Language) standard pro objektový modelovací jazyk, 8

metamodel IDL (Interface Definition Language) standard popisující objektová rozhraní tříd pro standard distribuovaných objektů CORBA a jejich mapování do různých programovacích jazyků. metamodel CDW (Common Data Warehouse) standard definující architekturu datových skladů. Data mezi metamodely založenými na MOF mohou být vyměňována pomocí formátu XMI (XML Metadata Interchange). MOF je samovysvětlující, tj. definuje sám sebe (a tedy neexistuje meta-metametamodel). Základními koncepty MOF jsou: třídy (Class) modelují metaobjekty, asociace (Assotiation) modelují binární relace mezi metaobjekty, datové typy (data Type) modelují primitivní data, balíček (Package) slouží k modularizaci modelu. Metamodel UML úzce vychází z MOF a liší se jenom v drobnostech (např. umožňuje vícenásobné asociace). Například třída v UML je definována jako instance třídy Class v UML metamodelu. Tato třída je definována jako instance třídy Class z MOF modelu (metametamodelu). A nakonec třída Class z MOF modelu je definována sama sebou. 9

Přehled trhu V následující kapitole se budeme zabývat jednotlivými metacase nástroji, které jsou dostupné na trhu. U každého nástroje bude následovat jeho popis, pohled do historie, popis funkcionalit, které budou doplněny vhodnými obrázky, a popřípadě bude uvedena i cenová relace, za kterou lze daný nástroj pořídit. Nástroje, kterými se budeme zabývat, jsou: ConceptBase MetaEdit+ Metaview ArgoUML Coral Allfusion Component Modeler ConceptBase ConceptBase je víceuživatelský (multi-user) databázový systém, který pracuje s objektové orientovanými daty. Velkou výhodou tohoto systému je možnost zobrazování dat na jakékoliv úrovni abstrakce dat (data, třídy, metatřídy, meta metatřídy atd.). Systém je postaven na grafickém uživatelském prostředí, které je postaveno na architektuře klient / server. ConceptBase byl vyvinut na univerzitě v Aachenu společně s univerzitou v Tilburgu. Verze 6.1.2 ConceptBase je podporována operačními systémy Linux, Solaris, a Windows. Tento systém je šířen zdarma a pro nekomerční užití. Metatřídy a task flow Definice metamodelu v ConceptBase je tvořena pomocí metatříd. Následující obrázek ilustruje dokument a task flow mezi agenty. 10

Obrázek 3 ConceptBase - task a dokument flow V horní části obrázku je naznačeno jak v metamodelu proudí dokumenty mezi agenty. Zde červený agent reprezentuje pouze možnou změnu barvy v editoru a následné odlišení od ostatních agentů. OMG modelování Samotné metamodelování je v ConceptBase založeno na abstrakci typu OMG (M0=data level, M1=model nebo schéma level, M2=meta level, M3=meta meta level, atd.). Zde je možné navrhovat modelovací jazyky (M2 level), založené na předem definovaných pravidlech (M3 level), k vytváření samotných datových modelů (M1 level) a reprezentovat přesná data (toky) na M0 levelu. 11

Obrázek 4 ConceptBase - OMG modelování Zde je vidět, jak jsou jednotlivé objekty instancí jiných objektů v metamodelu. Toto znázorňuje zelená šipka vedoucí z horní části obrázku (meta meta model) až dolů, kde jsou jednotlivé datové objekty. Data flow Data flow mezi třídami v ConceptBase je založena na logickém vyjádření členství tříd, jak ilustruje následující obrázek. 12

Obrázek 5 ConceptBase - dataflow Na obrázku je společnost s touto síťovou architekturou a jednotlivými komunikačními kanály mezi objekty. Hub unit dostává informace od 2 zdrojů, a zprávu odesílá dál do nejméně 2 jednotek. ConceptBase dokáže podle počtu incoming a outgoing zpráv jednotlivé objekty dělit a zabarvovat. [2] 13

MetaEdit+ Úvod Metacase je společně s produktem MetaEdit+ jedním z nejvýznamnějších poskytovatelů produktů pro doménově specifické modelování. MetaEdit+ 2.0, první verze MetaEdit+, byla vytvořena v roce 1995 pro Windows. MetaEdit+ 2.5 byla vydána v roce 1996, s přidáním možností pro více uživatelů a podpory pro Solaris a HP-UX. MetaEdit+ 3.0 byl vydán v 1999, s podporou pro Linux a významnými novými funkcionalitami. Konečně MetaEdit+ 4.0 byl vytvořen v roce 2004 a obsahoval kromě všech výše uvedených funkcionalit také podporu Mac OS X. MetaEdit+ může být využíván jako MetaCASE nástroj, ale také jako klasický CASE nástroj. V prvním případě umožňuje definici modelovacích metod a generátorů kódů, v druhém případě je možné tyto metody využívat přímo jako CASE nástroj, přičemž tvorba CASE nástrojů bude zautomatizována pomocí MetaEdit+. Tímto se ukazuje jedna z výhod MetaEdit+ - náklady na implementaci doménově specifického modelovacího nástroje odpadají. Editor od firmy Metacase se skládá ze dvou částí - Method Workbench a MetaEdit+ jako CASE nástroj. V části Method Workbench se definují modelovací metody/jazyk sestávající se z konceptů, pravidel, notací a kódového generátoru. Kromě vytvořených definic metod bude poté automaticky vytvořen CASE nástroj, a MetaEdit+ k němu vytvoří příslušné nástroje jako editor diagramů, generátory a prohlížeče. Method Workbench MetaEdit+ Obrázek 6 Vývojové prostředí MetaEdit+ [3] [6] 14

Architektura Následující obrázek ukazuje obecnou skladbu nástroje MetaEdit+. Obrázek 7 Architektura MetaEdit+ [3] V Object Repository databázi dochází s pomocí Method Workbench k tvorbě definic metod, ke třídění informací a jejich ukládání podle projektů. MetaEdit+ používá metody automaticky tím, že si je vyžádá právě z objektu Repository. Nejdůležitější částí nástroje MetaEdit+ je v tomto případě MetaEngine, který stanovuje rozhraní mezi moduly, a Object Repository, která zajišťuje konzistenci mezi jednotlivými nástroji. Moduly se dělí do čtyř skupin: Nástroje pro úpravu modelů (Editor diagramů, editor matic, editor tabulek), Vyhledávací a dotazovací nástroje (Prohlížeč, generátor kódu a zpráv), Nástroje pro řízení metod (Method Tool, konektivita API & XML). K tomu se ještě řadí nástroje řízení metod v části Method Workbench (jako objektový a grafový nástroj, editor symbolů apod.). Method Workbench Doménově specifické modelování s nástrojem MetaEdit+ umožňuje pojmout následující oblasti: Definice konceptů metod s pomocí předloženého formuláře (GOPPRR) Definice pravidel Kreslení symbolů Tvorba generátorů 15

Definice konceptů V závislosti na aplikační doméně mohou z požadovaných výstupů vzniknou koncepty, které měly být definovány, produktové komponenty, produktová architektura, charakteristika produktových linií a pod. Tvorba konceptů metod probíhá nejprve pomocí vyplnění tzv. MetaEdit+ formuláře: Object Tool, Property Tool, Relationship Tool, Role Tool, Port Tool a Graph Tool. V Object Tool jsou definovány základní koncepty modelovacího jazyka, hlavními prvky konceptů jsou přitom objekty jako symboly, procesy, tlačítka, zprávy atd. Vlastnosti těchto objektů budou definovány v Property Tool. Relationship Tool slouží k definici vazeb a symbolů mezi objekty, a v Role Tool jsou poté následně stanoveny koncové body těchto vazeb. Pro vazby lze pomocí Port Tool definovat omezení. Konečně Graph slouží k vedení a správě specifikací celé modelovací techniky. Obrázek 8 Definice konceptů [3] [6] Výběr pravidel Pomocí definice pravidel modelovacího jazyka bude popsáno chování jednotlivých doménových konceptů mezi sebou navzájem. Pravidla informují o tom, jak jsou koncepty identifikovány a propojeny navzájem mezi sebou. Vzniklá pravidla lze později měnit, ve chvíli, kdy MetaEdit+ provede tzv. Update celého modelu. Pro definici pravidel se nabízejí dvě možnosti: vazby a omezení. Vazby popisují vztahy mezi objekty a omezení popisují omezení těchto vztahů a vazeb např. počet vzájemných vazeb. 16

Obrázek 9 Výběr pravidel [3] [6] Kreslení symbolů S pomocí editoru symbolů lze graficky vytvořit objekty, které poté budou využity v editoru diagramů a matic. Často využívané symboly nebo jejich části mohou být uloženy do knihovny symbolů a později znovu využity. Obrázek 10 Kreslení symbolů [3] [6] Tvorba generátorů Díky Report Browser se mohou tvořit reporty, které zkoušejí konsistenci modelu, analyzují propojení modelu, produkují datové slovníky a dokumentaci, vytvářejí kódové a 17

konfigurační informace nebo exportují jiné modely do jiných programů. Díky vlastnímu skriptovacímu jazyku je možné kreslit/tisknout návrhy v různých formátech, vygenerované výstupy ukládat v různých datech, formátech apod. Obrázek 11 Tvorba generátorů [3] [6] MetaEdit+ jako CASE nástroj Pro zavedení nástroje MetaEdit+ jako CASE nástroje nabízí MetaEdit+ celou řadu nástrojů, které přes Object Repository mohou dosáhnout na vytvořené koncepty metod. Repository se stará o konzistentní data tak, aby byly možné změny metod během současné aktualizace modelu. Editor diagramů S pomocí editoru diagramů umožňuje MetaEdit+ modelování grafů jako diagramů. Objekty mohou být do editoru vkládány, stejně tak vazby a omezení zůstávají zachovány. Vedle funkcí pro formátování a komentáře dává editor diagramů k dispozici velké množství vlastních diagramů. Obrázek 12 Editor diagramů [3] [6] 18

Editor matic Editor matic podporuje modelování jako matice. Na dvou osách jsou zobrazovány objekty, a v buňkách vazby jednotlivých objektů mezi sebou, to znamená role nebo vztah. Funkcionalita zahrnuje diagonalizaci, třídění, přidávání objektů a vztahů stejně jako výstupů a formátování. Obrázek 13 Editor matic [3] [6] Editor tabulek Vedle editoru diagramů a matic je možné také modelování grafů podle tabulek. Objekty jsou poté zobrazeny jako tabulky s vlastnostmi ve sloupcích a instancemi v řádcích. I zde nástroj poskytuje velké množství možností formátování, generování kódů apod. Obrázek 14 Editor tabulek [3] [6] 19

Prohlížeče MetaEdit+ nabízí více druhů prohlížečů. Prohlížeče slouží k vyhledávání přehledů o modelech a jejich elementech. Jsou nabízeny tři různé prohlížeče: typový, grafický a metamodelový. Všechny tři prohlížeče mají hierarchickou stavbu projektů, díky které je velmi jednoduché dostat se k příslušným grafům, konkrétním objektům a jejich vlastnostem. S grafickým prohlížečem je možné sledovat jednotlivé grafy, v typovém prohlížeči instance všech definovaných metatypů, a metamodelový prohlížeč ukazuje metamodelovací techniky s příslušnými komponentami. Obrázek 15 Prohlížeče [3] [6] Generátor kódů a zpráv Pomocí generátoru budou definovány generátory kódů a různé druhy zpráv to znamená, jak a které hodnoty a texty z modelů budou extrahovány. Reporty mohou být dále použity při generování kódů nebo konfiguračních dat, vytváření dokumentace, udržování a kontrole konzistence a spojení mezi modely a jinými programy z hlediska exportu. MetaEdit+ nabízí předdefinované zprávy pro všechny grafy. Všechny reporty byly implementovány pomocí reportového prohlížeče a také s jeho pomocí mohou být dále editovány. Předdefinované reporty zahrnují: generátor kódů, reporty dokumentace a standardní reporty. 20

Obrázek 16 generátor kódů a zpráv [3] [6] MetaEdit+ ceník Licence MetaEdit+ MetaEdit+ Workbench pro tvorbu vlastního modelovacího a generovacího nástroje MetaEdit+ Pro podporu uživatelsky definovaných modelovacích jazyků a generátorů MetaEdit+ API Interface pro přístup do MetaEdit+ přes XML MetaEdit+ Server Pro víceuživatelskou verzi Cena (EUR) 9 500 5 500 1 000 2 000 MetaEdit+. Tabulka 1 Ceník MetaEdit+ [3] Ceny jsou stejné pro všechny platformy a jsou cenami za každou instalaci produktu 21

Metaview Úvod Metaview jako CASE metasystém poskytuje flexibilní a na prostředí nezávislou podporu pro softwarový vývoj. Metaview patří do skupiny MetaCASE nástrojů používajících Entity-Relation (ER) meta-modelovaní. Metaview projekt je výsledkem úsilí univerzit Alberta a Saskatchewan v Kanadě. Projekt vycházel z McAllisterových Ph.D. tezí z roku 1988. Výsledkem tohoto projektu je Metaview MetaCASE nástroj, který je zejména výzkumným nástrojem. Jeho vývoj pokračuje v oblastech jako začlenění methodology knowledge do MetaCASE nástrojů a lepší prezentace agregace v meta-modelovacích technikách používaných Metaview. Metaview architektura Na obrázku 17 jsou pomocí data flow diagramu nastíněny hlavní rysy Metaview architektury. Shodně jako u data flow diagramu jsou objekty označeny P pro procesy, S pro datové sklady a bez popisku pro externí uživatele a vývojáře pracující se systémem. Šipky zobrazují tok informací mezi objekty. Tento diagram rozděluje systém do tří vrstev. Obrázek 17 Metaview architektura 22

Meta vrstva Je nejvyšší vrstva v hierarchii Metaview systému. V této vrstvě vývojáři vytvoří všeobecné komponenty nástroje a nadefinují strukturu jednoho nebo více meta-modelů potřebných k zachycení prezentovaných informací. Hlavními komponentami Meta vrstvy jsou Metaview Software Library (S1), Tool Components Library (S2) a Metaview Tools Library (S3). Problém definování meta-modelovacích technik je dvojí. Pokud je meta-model příliš jednoduchý, pak může být vhodný k modelování ve většině případů ale nemusí být dostačující pro použití u sofistikovaných metodik. Na druhou stranu pokud je příliš komplikovaný, je obtížné s ním pracovat a může příliš ztěžovat modelování nových metodik nebo to dokonce znemožňovat. Práce v této vrstvě by měla být provedena pouze jednou. Všechny softwarové komponenty a meta-modely jsou nezávislé na metodách softwarového vývoje (software development methods - SDM). Environment vrstva V Environment vrstvě, která je prostřední vrstvou Metaview hierarchie, jsou použity některé z komponent vytvořené v Meta vrstvě. Na této vrstvě definujeme prostředí softwarového vývoje pro konečného uživatele. Některé metody softwarového vývoje (SDM) jsou zde modelovány. Proces modelování vytváří formální popis SDM. Pro přesné vyjádření konceptu meta-modelu ve vhodné a čitelné formě byl definován speciální jazyk Environment Definition Language (EDL). Pro popsání omezení metod používáme Environment Constraint Language (ECL). ECL a EDL jsou zkompilovány a jejich objektový kód je uložen v Method Library (S4). Obrázek 18 Proces modelování v Environment vrstvě 23

Některé z těchto komponent nebo všechny mohou být později použity v konfiguraci systému. Během konfigurace se vyberou odpovídající nástroje, které jsou potom nakonfigurovány. Konfigurací nástroje rozumíme transformování všeobecného nástroje z knihovny a daných vývojových metod do specializovaného celku. Ten může být později použit pro přístup k softwarovým specifikacím vyvinutých v rámci daného SDM. Pro univerzální nástroje neznamená tento proces nic, resp. jejich všeobecné a nakonfigurované varianty jsou naprosto shodné. Zkonfigurovaný systém, doplněný o software z Meta vrstvy, je poté předán konečnému uživateli, kterým je systémový softwarový vývojář. Obrázek 19 Konfigurování systému User vrstva Na této vrstvě jsou vytvářeny a modifikovány softwarové specifikace používající nakonfigurovaný Metaview systém. Specifická informace je uložena v databázi (sklad). Metaview nástroje nepřistupují do databáze přímo, ale přesněji přes rozdělovač, zvaný Projekt Deamon. Projekt Deamon je server, který obhospodařuje veškerou komunikaci s nástroji. Obstarává multi-přístup a je odpovědný za konzistenci softwarového skladu (myšlena kolekce softwarových specifikací vyvinuta rozličnými SDM). Během specifické 24

vývojové relace může několik uživatelů pracovat současně na vývoji obecné softwarové specifikace. V Meta vrstvě jsou dva typy softwarů vyvinutých dvěmi různými druhy vývojářů. Metaview definer popíše jeden typ softwaru, který vytvoří Metaview software library (S1) knihovna, a Tool definer specifikuje potřebný nástroj zformulovaný Metaview tools library (S3) knihovnou. Hlavní rozdíl mezi těmito dvěma typy softwarů je, že programy z Metaview software library (S1) nejsou přímo zobrazitelné konečnému uživateli. Ve skutečnosti je používá v Environment vrstvě Metod definer pro formulaci Methods library (S4). Mimo to Software process engeneer používá všechny tři knihovny (S1,S3 a S4) ke konfiguraci a systému (viz Environment vrstva) a tvorbě přizpůsobeného CASE nástroje. Systém developer v User vrstvě používá tento nástroj k tvorbě softwarového systému v rámci Systém repository (S5). Databáze, přístup a celkové zařízení Meta-model definovaný pro Metaview je EARA/GE (Entity Agregate Relationship Atribute with Graphical Extensions). Ten je navržen pro popis rozdílných softwarových vývojových metodik. Entity, relace a atributy jsou příbuzné konceptu z ER (Entity Relationship) modelovací techniky. Nicméně Metaview rozšiřuje tento koncept tak, aby obsahoval specializace, agregace a jisté všeobecné elementy. Tato rozšíření dovolují datovou abstrakci a modelování hierarchických vlastností artefaktů a komponent softwarového systému během řídícího procesu. To dovoluje znázornit heterogenní kolekce entit a relací jako jednoduchou entitu. Mimo to, grafické rozšíření EARA modelu podporuje grafické znázornění softwarových objektů. Metaview umožňuje modelovat komplexní OO metodiku (OMT), nicméně s omezeními. Tato omezení jsou nejvíce viditelná při kompletním modelování komplexního prostředí. Mezi tato omezení patří i nemožnost vytvoření dvou relací se stejným účastníkem. Datovým skladem v Metaview jsou různé knihovny komponent, nástrojů, softwarů a metod. Knihovny komponent a nástrojů (S2 a S3) podporují uživatelské rozhraní. Softwarová knihovna se stará o databázový management a funkční prostředky používané procesem softwarového inženýrství. Knihovna metod (S4) obsahuje popisy metodik softwarového vývoje. Softwarový sklad, též označován jako databáze specifikací, obsahuje vyvinuté softwary. Uživatelské rozhraní Metaview systém je X Window mnohauživatelský systém. Mimo meta definer a tool definer jsou zde tři typy uživatelů se třemi rozdílnými rozhraními. 25

Na Environment vrstvě method definer spolupracuje se systémem používajícím EDL a ECL zdrojové kódy a vytvářejícím grafické objekty za pomoci jednoduchého grafického editoru. Tyto zdrojové kódy jsou kompilovány pomocí ECL a EDL kompilátorů. Jsou vytvořeny tabulky definující objekty a množiny omezení. Momentální kompilátory nedokáží zvládnout grafické aspekty objektů včetně jejich grafických omezení. Proto se grafické tabulky a omezení dělají manuálně. Konfiguraci CASE nástroje, používaného softwarovými vývojáři, provádí software process engineer, který vybere jednu nebo více metod pro konfiguraci nástroje. Databázový engine je též přizpůsobován, a project deamon je vytvořen pro kontrolu soudržnosti a úplnosti. Tato konfigurace vyžaduje velké znalosti metodik, nástrojů a vývoje systému. Veškerá práce je manuální bez pomoci systému. Na User vrstvě project deamon inicializuje a kontroluje server. To umožňuje mnoha uživatelský přístup a zajišťuje zamykací mechanismy. Vývojář přistupuje a modifikuje databázové specifikace přes rozhraní postavené na Metaview Graphical Editor (MGED). Tento nástroj dovoluje grafickou editaci objektů dané databáze. Operace jako vytvoření, editace nebo smazání objektů a ikon jsou umožněny pomocí grafických prvků. Cena Metaview projekt patří do skupiny výzkumných nástrojů a je volně k dispozici. 26

ArgoUML ArgoUML je nástroj pro práci s jazykem UML a UML diagramy. Aplikace ArgoUML je napsán v jazyce Java, lze ho tedy snadno použít na jakékoli platformě, která Javu podporuje. Aplikace je šířena pod licencí BSD OpenSource. Je tedy možné ji rozšiřovat o další funkce, případně stávající funkce upravovat dle vlastní potřeby. V současné době je k dispozici ArgoUML ve verzi 0.22. V této verzi již aplikace dokáže pracovat s jazyky C++, C# a PHP (dokonce i PHP5). Tato verze ArgoUML 0.22 podporuje jazyk UML 1.4. O podpoře jazyka UML 2.0 se uvažuje v budoucnosti a je to jeden z hlavních cílů. UML diagramy se vyvářejí graficky. V této aplikaci je možné vytvářet všech 9 typů UML 1.4 diagramů: Statická struktura Diagram tříd (Class Diagram) Diagram nasazení (Deployment Diagram) Objektový a komponentový diagram (v jednom) (Object Diagram, Component Diagram) Dynamická struktura Diagram použití (Use Case Diagram) Diagram aktivit (Activity Diagram) Diagram spolupráce (Collaboration Diagram) Stavový diagram (State Chart Diagram) Sekvenční diagram (Sequence Diagram) Výhody a nevýhody ArgoUML 0.22 napsán v jazyce Java = snadné použití na různých platformách s Java Runtime Environment dobrá funkcionalita velká podpora UML diagramů intuitivní a příjemné grafické prostředí pomalý, kvůli jazyku Java nemožnost práce více členů týmu na diagramu v jednom čase ArgoUML používá pro výměnu dat s jinými nástroji, případně pro zajištění bezpečnosti, výměnný formát XMI (výměnný formát založený na XML) 27

[9] Obrázek 20 - ArgoUML - Diagram tříd [10] Obrázek 21 - Tvorba Use Case Diagram [11] 28

Coral Coral Open-source metamodelovací nástroj, vyvíjený na akademické půdě finské univerzity v Abo v rámci projektu CREST, může být používán k vývoji vlastního modelovacího jazyka nebo jako nástroj pro vývoj jiných modelovacích nástrojů. Coral umožňuje vytvářet modely ve standardech UML 1.1, 1.3, 1.4 a 1.5, nepodporuje UML 2.0 a v současné době se nepočítá s podporou UML verze 2.0 ani v budoucnosti. Metamodelovací jádro využívá SMD. Podporuje výměnu modelů mezi nástroji využívajícími standard OMG. V rámci výměny musí být modely vytvořeny v nástroji, který podporuje formát XMI a pro přenos používá formát XMI-DI. Zároveň podporuje kopírování a vkládání elementů ve formátu XMI. obrázek 22 - Kopírování a vkládání elementů ve formátu XMI Jádro Coralu slouží jako knihovna pro správu uživatelem definovaného modelovacího jazyka. K úpravě modelů pak slouží grafický editor nebo konzole. 29

Allfusion Component Modeler Jedná se o robustní modelovací nástroj založený na UML, který slouží pro znázornění, navrhování a udržování komponent. Allfusion Component Modeler částečně vychází z původního modelovacího nástroje Paradigm Plus, který byl vyvíjen firmou Platinum. Po jejím zakoupení společností CA vývoj produktu pokračoval, a v roce 2003 došlo k integraci s vlastním produktem CA pod názvem Allfusion Component Modeler. Produkt je integrován do skupiny nástrojů Allfusion, kam patří dále např. ERWin Data Modeler (datová analýza, obousměrná synchronizace databází), Process Modeler (analýza procesů) nebo Model Manager (správa, slučování modelů, analýza změn, kontrola verzí). Podle počtu zakoupených nástrojů se odvíjí i cena, samotná licence celého balíku Allfusion Modeling Suite 7.1 je 6995 dolarů, cena licence s roční podporou 6995 dolarů, a licence s tříletou podporou stojí 11190 dolarů. Jednou z velkých předností Allfusion Component Modeleru je možnost reverse-engineeringu, která tak umožňuje přehledně zobrazit v modelu již existující entity a objekty. Před začátkem modelování je nutné zvolit jeden z podporovaných přístupů k objektovému modelování, přičemž program podporuje metody Booch, Coad/Yourdon, Fusion, OOCL, OOIE, OMT a pochopitelně dnes asi nejpoužívanější UML. Dodržování standardů zajišťuje integrovaný validační nástroj Model Xpert Engine. Ve vnitřní repositoři se pak objekty ukládají v jednotném formátu, nezávisle na zvolené metodě. Program obsahuje skriptovací jazyk, který umožňuje generovat kód do jednotlivých jazyků a databází nebo přímé generování dokumentace. 30

Trend (meta)case nástrojů Nástroje CASE prožívaly doby své největší popularity v 90. letech minulého století, kdy technologický trend předurčil tyto nástroje k podpoře vývoje informačních systémů. Avšak postupem doby začalo být mnohem zajímavější sledovat co stojí za těmito CASE nástroji. Lidé se začali věnovat více metodikám vývoje informačních systémů a jejich vlastnímu vývoji. Pro tyto metodiky byly typické charakteristiky jako konzistentnost, kompletnost a ochota nebo přizpůsobivost novým věcem, nejen v technologické ale i logické rovině při zachování společného rysu (principu) všech metodik abstrakce. Princip abstrakce napomáhá analytikům rozdělit rozsáhlý a složitý problém na více celků, jež se dají lépe a rychleji myšlenkově pojmout. Proto vznikají (meta)metodiky na vyšší úrovni abstrakce tak, že sami popisují formou modelu něco, co je modelem něčeho jiného. Tento fakt kopíruje trh CASE nástrojů, kde se výrobci (vývojáři) řídí trendem k přechodu na metacase řešení, která nejsou použitelná pouze pro jednu metodiku, nýbrž jsou přizpůsobivá pro více metodik. 31

Závěr Cílem naší práce bylo představení metamodelování, popis jeho významu, dále pak srovnání CASE a metacase nástrojů a uvedení několika příkladů těchto nástrojů, které jsou dostupné na trhu. V první části práce jsme se snažili vysvětlit pojem metamodelování, popsat možnosti jeho využití a porovnat metacase nástroje s CASE nástroji. Závěrem této první části naší práce bylo zjištění, že metacase nástroje odstraňují omezení v CASE nástrojích, kterým je fixně zkompilovaný kód, který neumožňuje definici vlastního modelovacího jazyka. V další části práce jsme se zaměřili na popis metod metacase modelování. Metody COMMA, GOPR a standardy OMG byly podrobněji představeny a popsány. Velkou část práce jsme zaměřili na popis jednotlivých metacase nástrojů dostupných na trhu. Nástroje ConceptBase, MetaEdit+, Metaview, ArgoUML, Coral a Allfusion Component Modeler byly představeny z pohledu jednotlivých funkcionalit, které byly doplněny obrázky pro lepší pochopení dané problematiky. Kromě historie vývoje těchto produktu jsme se u některých zaměřili i na jejich konkrétnější účel a dostupnost, popřípadě i cenovou relaci, za kterou je možné tyto nástroje pořídit. Na závěr jsme uvedli několik trendů, které se týkají oblasti metacase a které vypovídají o tom, že v prostředí CASE nástrojů je stále patrnější přechod k metacase nástrojům, který bude ještě nějaký čas trvat a který je způsoben již zmíněným menším omezením metacase nástrojů oproti tradičním CASE. V práci jsme používali různé druhy zdrojů, které jsou uvedeny v závěrečné části. Převážná většina z nich jsou internetové zdroje, které byly využívány hlavně z důvodu jejich aktuálnosti a dostupnosti. 32

Zdroje [1] Pícka, M: Metamodelování v praxi, Katedra informačního inženýrství, PEF ČZU Praha [2] ConceptCase, A database System for Metamodeling and Method Engereenig, dostupné z http://conceptbase.cc/ [3] METACASE, webové stránky společnosti, dostupné z http://www.metacase.com [cit.1.12.2006] [4] Kelly, S.: Comparison of Eclipse EMF/GEF and MetaEdit+ for DSM 1 Introduction, dostupné z http://www.softmetaware.com/oopsla2004/kelly.pdf [cit. 1.12.2006] [5] Wikipedia, otevřená encyklopedie, dotupné z: http://en.wikipedia.org/wiki/metaedit+ [cit. 1.12.2006] [6] Will, S.: Domänenspezifische Modellierung mit MetaEdit+, Freie Universität Berlin- Institut für Informatik, 2006, dostupné z: http://page.mi.fu-berlin.de/~will/metaedit.doc [cit. 1.12.2006] [7] Metaview Projekt, dostupné z http://web.cs.ualberta.ca/~softeng/metaview/project.shtml [8] CASE Environments and MetaCASE Tools, dostupné z http://www.cs.queensu.ca/techreports/reports/1997-403.pdf [9] Tigris.org, OpenSource Software Integration Tools. [www stránka], [cit. 5.12.2006], dostupné z http://argouml.tigris.org/features.html Stránka obsahuje seznam kompletních informací o aplikaci ArgoUML. [10] Tigris.org, OpenSource Software Integration Tools. [www stránka], [cit. 5.12.2006], dostupné z http://argouml.tigris.org/tours/ui.html Stránka obsahuje grafické náhledy na aplikaci ArgoUMl a tvorbu diagramů. [11] Tigris.org, OpenSource Software Integration Tools. [www stránka], [cit. 5.12.2006], dostupné z http://argouml.tigris.org/tours/bdusecasediagram.html Stránka obsahuje grafické náhledy na aplikaci ArgoUMl a tvorbu diagramů. [12] Coral, Coral Metamodel Toolkit. [www stránka], [cit. 18.12.2006], dostupné z http://crestwiki.abo.fi/confluence/display/crl/home [13] Allfusion Modeling Suite, dostupné z http://www3.ca.com/smb/product.aspx?id=5291&culture=en-us 33