Tomsovi

  • Increase font size
  • Default font size
  • Decrease font size
Domů Honza School 5. ročník Diplomová práce - Automatizované modelování - 4.9 Enterprise Architect

Diplomová práce - Automatizované modelování - 4.9 Enterprise Architect

E-mail Print PDF
Article Index
Diplomová práce - Automatizované modelování
Obsah
1 Úvod
1.2 Typografické konvence
Tabulka 1: Slovník zkratek
2 Cíl práce
3 Metodika
4 Přehled vlastností modelovacích nástrojů
4.1 Úloha modelování v běžném životě
4.1 Úloha modelování v běžném životě - pokračování
4.1.1 Vhodnost použití objektových nástrojů pro modelování a transformace
4.2 Architektura řízená modelem - Model Driven Architecture
4.2.1 The Object Management Group
4.2.2 Základní cíle a přístupy MDA
4.2.3 Platforma
4.2.4 Hierarchie modelů dle MDA
4.2.5 Model nezávislý na počítačovém zpracování
4.2.6 Model nezávislý na platformě
4.2.7 Mapování a značkování
4.2.8 Model specifický ke konkrétní platformě
4.2.9 Zdrojový kód aplikace
4.3 MDA a Oracle Designer
4.4 Vlastní zkušenost
4.5 Vlastnosti modelovacích nástrojů
4.6 Craft.CASE
4.7 Eclipse Modeling Framework
4.8 Omondo EclipseUML2
4.9 Enterprise Architect
5 Transformační modelovací jazyky
5.2 Eclipse Modelling Framework
5.4 XSLT
Část II - Projekt
6 Vlastní projekt
7 Požadavky na informační systém
8 Analýza
8.1 Model případů užití
8.2 Doménový objektový model
9 Design informačního systému
10 Aplikace Architektury řízené modelem (MDA)
11 Vývoj generátoru
12 Generování kódu z modelu
13 Závěr
Literatura
Přílohy
A Případy užití
A.1 Hlavní případy užití
A.2 Správa skupin parametrů
A.3 Správa parametrů
A.4 Správa modelů
B Sada šablon EA pro generování kódu v jazyku Smalltalk
C Vygenerované zdrojové kódy FSM v jazyku Smalltalk
D UML profil systému DecisionMaker
E Podpůrné třídy metamodelu UML
F Generátor entit aplikace DecisionMaker
G Zdrojový kód aplikace DecisionMaker
All Pages

4.9 Enterprise Architect

Výrobce: Sparx Systems
Platforma: Microsoft Windows
Enterprise Architect 7.5 je profesionální prostředí pro vizuální modelování se
silnou podporou UML 2.1 a příbuznými standardy. Je uzpůsoben zejména pro tvorbu
software v rámci Unifikovaného procesu (Unified process). Podporuje životní cyklus
projektu od sběru požadavků až po generování kódu aplikace.
Tento CASE má jako výchozí úložiště databázi MS Access, avšak v tzv. Corporate
Edition podporuje i použití externí relační databáze jako Oracle nebo MS
SQL Server. Pro souběžný přístup k repository pěti a více uživatelů se jedná o
doporučovanou variantu z výkonnostních důvodů.
Co se týče podpory verzování, Enterprise Architect toto přímo nepodporuje.
V každém okamžiku tedy lze pracovat a prohlížet pouze aktuální verzi modelu.
Existuje však možnost vytváření tzv. záklaní konfigurace (baseline), proti níž lze
následně porovnávat aktuální stav, resp. jinou baseline. Jelikož se s tímto nástrojem
setkávám denně v zaměstnání, musím konstatovat z vlastní zkušenosti, že pro řízení
vývojových prací tato informace není dostatečná. Je-li model používán jako zadání
pro vývojáře, pak vydefinování práce v druhé a další iteraci pouze na základě výše
popsaného porovnání modelů je nepoužitelné a tvůrci modelu tak musí doplňovat
dodatečné informace týkající se změn modelu.

Obrázek 11: Enterprise Architect - Diagram tříd
Obrázek 11: Enterprise Architect - Diagram tříd FSM

4.9.1 Podpora MDA

Nástroj Enterprise Architect se hrdě hlásí k podpoře Architektury řízené modelem.
Ačkoli některé funkcionality by jistě bylo možné vyřešit lépe a intuitivněji, celkově se
s tímto tvrzením dá souhlasit, jak ukáži v dalším textu na konkrétních vlastnostech.
Obrázek 12: Enterprise Architect - Editace chování operace
Obrázek 12: Enterprise Architect - Editace chování operace. Je zde patrné, že lze
přímo do modelu zapsat zdrojový kód v libovolném programovacím jazyce, avšak
bez jakékoli syntaktické kontroly, o zvýraznění syntaxe a automatickém doplňování
nemluvě.

Podpora vlastních UML profilů

Enterprise Architect umožňuje vytváření vlastních UML profilů včetně
možnosti úpravy grafické reprezentace elementů na základě jejich stereotypů a tagovan
ých hodnot.
UML profil lze vytvořit přímo v prostředí Enterprise Architectu jako diagram
obsahující metatřídy a stereotypy. Viz např. Obrázek 21 nebo ?? (na straně 68).
Takto vytvořený diagram se vyexportuje do formátu XMI (příklad viz příloha D)
a následně naimportuje jako UML profil.
Při vytvoření metadřídy CASE uživateli dá na výběr elementů, které mají být
metadřídou reprezentovány. Tento výběr je bohužel omezen - chybí např: Control
a Table, přičemž Control (reprezentující třídu se stereotypem «control») hraje v
metodice Unified Process velmi významnou roli.
Toto chování naznačuje, že se Enterprise Architect ke elementům chová různě
nikoli jen na základě jejich stereotypů, ale i na základě "způsobu vzniku", což je
nestandardní a někdy to může komplikovat práci.
Pro úpravu grafické reprezentace elementů v rámci profilu nabízí Enterprise Architect
možnost použití formátu Windows metafile, případně skriptovací jazyk (tzv.
Shape script). Ten umožňuje uzpůsobit si profil až do vlastního grafického doménově
specifického jazyka. Bohužel tento skriptovací jazyk má opět některá nepříjemná
omezení, která tuto (jinak vítanou) vlastnost poněkud degradují.

Generování kódu

V souladu s koncepcí MDA Enterprise Architect nabízí generování kódu z
modelu. Slouží mu pro to tzv. Code Template Framework tvořený metamodelem
a jednoduchým skriptovacím jazykem.
Tento CASE obsahuje výchozí sadu šablon pro jazyky C, C#, C++, Java,
Delphi, PHP, Python a ActionScript. Umožňuje zároveň vytváření vlastní podpory
pro generování téměř libovolného programovacího jazyka.
V příloze B je ukázán příklad nově vytvořené šablony pro generování tříd v
jazyku Smalltalk. Na obrázku 14 je pak vidět třída Smalltalku naimportovaná v
prostředí Pharo. Tomuto zobrazení ještě předchází import vygenerovaného souboru
FSM.st do prostředí Pharo - viz obrázek 13. Opět demonstrováno na příkladu objektového
modelu Mealyho konečného automatu. Kompletní vygenerovaný zdrojový
kód je pak možno nalézt v příloze C.
Obrázek 12 ukazuje, že v Enterprise Architectu sice lze ve vlastnostech operace
(záložka Behavior - chování) zapsat kód v libovolném programovacím jazyku.
Zároveň ale ukazuje slabinu takovéhoto přístupu, neboť zde chybí jakékoli syntaktická
kontrola, o refaktoringu, zvýraznění syntaxe a automatickém doplňování ani
nemluvě.

Transformační šablony

Enterprise Architect (opět v duchu MDA) umožňuje rovněž transformaci mezi
modely. Transformační šablony jsou silně založeny na šalonách pro generování kódu
a používají tedy stejný skriptovací jazyk s poměrně malými možnostmi rozšíření.
Obrázek 13: Pharo - import vygenerovaného souboru
Obrázek 13: Pharo - import vygenerovaného souboru (tlačítkem filein).
Zabudované jsou transformační šablony pro DDL, C#, Java, EJB a XSD.
Vytvoření šablony vlastní je dle dokumentace možné, avšak troufám si odhadnout,
že vzhledem k ne zcela intuitivnímu proprietárnímu jazyku to nebude zrovna snadné.

MDG technologie

Enterprise Architect obsahuje funkcionalitu pro vytvoření tzv. MDG technologie
(MDG = Model Driven Generator), což je sada UML profilů (včetně speciálních typů
diagramů), transformačních a generovacích šablon a obrázků (např. pro vlastní ikony
elementů). Pomocí takovéto sady lze rozšířit možnosti tohoto CASE o zcela nové
vlastnosti a přízpůsobit ho tak např. nějaké specifické doménové oblasti.
Pomocí této formátu lze např. Enterprise Architect rozšířit o podporu BPMN
- Business Process Modeling Notation - grafický jazyk určený pro popis business
procesů.

Shrnutí

Vzhledem k tomu, že s nástrojem Enterprise Architect mám nejbohatší
zkušenosti, použil jsem jej pro realizaci projektu v kapitole 6.

Obrázek 14: Pharo - Class Browser s vygenerovanou třídou FSM
Obrázek 14: Pharo - Class Browser s vygenerovanou třídou FSM.

Obrázek 15: Pharo - Class Browser s metodou processSignal vygenerované třídy FSM
Obrázek 15: Pharo - Class Browser s metodou processSignal vygenerované třídy FSM.
Na obrázku je patrné zvýraznění syntaxe různými barvami a styly textu.
Dále jsou patrné metody pro přístup k členským proměnným (accessors) vytvořené
automaticky refaktorováním.