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
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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ů.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
Ú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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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. Metamodelování vychází z principů čtyřvrstvé architektury tak, jak ilustruje následující obrázek.
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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. Vrstva meta-metamodelu určuje sémantiku a strukturu meta-metadat, čímž popisuje metamodel. 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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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,
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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,
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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]
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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]
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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ů
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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]
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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]
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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
Cena (EUR) € 9 500 € 5 500 € 1 000 € 2 000
Pro víceuživatelskou verzi Tabulka 1 – Ceník MetaEdit+ [3]
Ceny jsou stejné pro všechny platformy a jsou cenami za každou instalaci produktu MetaEdit+.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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ě
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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é
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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)
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
27
[9]
Obrázek 20 - ArgoUML - Diagram tříd
[10]
Obrázek 21 - Tvorba Use Case Diagram
[11]
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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.
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
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 BerlinInstitut 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
4IT450 - Nástroje meta-CASE (charakteristika, vývoj, přehled trhu, trendy)
33