Generování a synchronizace zdrojových kódů

Aplikace Enterprise Architect je velmi mocný nástroj softwarového inženýrství. Kromě vytváření zpětné dokumentace a prvotních modelů umožňuje také automatizované generování kódu, reverzní inženýring zdrojových kódů a synchronizaci mezi zdrojovým kódem a modelem.

Generování kódu
Enterprise Architect podporuje generování kódu přímo z UML modelů. Jednoduše vezme UML diagram tříd nebo model rozhraní a vytvoří zdrojový kód, který lze snadno včlenit do existujícího projektu a zkompilovat. Při návrhu UML modelu je třeba věnovat maximální pozornost volbě atributů, které se stanou proměnnými a volbě operací, které se ve zdrojovém kódu projeví jako metody.

Před samotným vygenerováním kódu je vhodné nastavit potřebné parametry v nabídce Tools | Options | Source Code Engineering. Tady je možné zvolit preferovaný programovací jazyk, nastavit implicitní konstruktory a destruktory, metody pro rozhraní, jmenné prostory a další. Co se týče výstupních programovacích jazyků, lze si ještě u každého zvolit jeho specifické nastavení. K dispozici jsou tyto jazyky:

  • ActionScript
  • C
  • C#
  • C++
  • Delphi
  • PHP
  • Java
  • Python
  • Visual Basic
  • Visual Basic .NET

Kromě digramu tříd, je možné generovat zdrojový kód i z UML diagramů chování jako jsou:

  • diagram stavů
  • sekvenční diagram (diagram interakcí) a
  • diagram aktivit.

Při pokročilejším generování zdrojových kódů z aplikace Enterprise Architect je vhodné použít tzv. Code Template Framework (CTF), který podporuje složitější customizaci generování zdrojového kódu prostřednictvím speciálních šablon. Ty mimo jiné umožňují také generování zdrojového kódu v jiném jazyce než implicitně podporuje Enterprise Architect.

Pro ty, kdo používají vývojová prostředí Eclipse nebo Visual Studio, jsou určena rozšíření MDG Integration for Eclipse a MDG Integration for Visual Studio, která integrují schopnosti Enterprise Architecta do těchto oblíbených vývojových nástrojů a nabízejí zefektivnění práce a více možností pro automatizované generování kódu z připravených UML modelů.

Synchronizace
Synchronizace mezi zdrojovým kódem a jeho UML modelem umožňuje exportovat provedené změny ve zdrojovém kódu do modelu nebo naopak z modelu do zdrojového kódu. Stačí si vybrat, jestli chceme jako zdroj použít model nebo zdrojový kód. Takže například v případě modelu jako zdroje vytvoříme jednoduchý UML model, necháme si vygenerovat příslušný kód a můžeme model dále měnit. Při následující synchronizaci se vygeneruje další kód, který odráží provedené změny v modelu a přidá se k dříve vytvořenému kódu. Původní kód se nemaže, pouze se přidává další. Synchronizace kódu navíc nemění těla metod.

Reverzní inženýrství
Reverzní inženýring umožňuje importovat existující zdrojový kód do UML diagramů. Kód se namapuje na příslušné UML reprezentace a vytvoří se jejich vzájemné vztahy. V případě jazyka Java se například třídy namapují na UML diagram tříd, proměnné na atributy, metody na operace a interakce mezi Java třídami budou reprezentovat vhodné UML konektory v diagramu tříd.

Importovat zdrojový kód do aplikace Enterprise Architect lze po jednotlivých souborech příkazem Import from source file(s) z kontextového menu cílového diagramu v okně Project Browser nebo ve formě adresářové struktury ze stejné kontextové nabídky příkazem Code Engineering | Import Source Directory.

V současné době podporuje Enterprise Architect reverzní inženýrství těchto programovacích jazyků:

  • ActionScript
  • Ada 2005
  • C
  • C#
  • C++
  • Delphi
  • PHP
  • Java
  • Python
  • SystemC
  • Verilog
  • VHDL
  • Visual Basic
  • Visual Basic .NET

Kromě toho lze použít i některé binární formáty jako je javovský .jar nebo PE soubor technologie .NET (.exe nebo .dll). Import binárního souboru se provádí příkazem Code Engineering | Import Binary Module z kontextové nabídky cílového diagramu v okně Project Browser. Pro reverzní inženýring z jiných jazyků pak lze použít některá rozšíření MDG Technologies.

Závěr
Enterprise Architect nabízí řadu možností jak generovat zdrojový kód z UML modelů do několika programovacích jazyků. K dispozici je pokročilý framework CTF a rozšíření MDG Technologies do nejpoužívanějších vývojových prostředí. Synchronizace mezi modelem a zdrojovým kódem udržuje váš kód stále aktuální a reverzní inženýring umožňuje mapování existujících zdrojových kódů a binárních souborů na UML diagramy.

Zaujaly Vás možnosti automatizovaného generování kódu, synchronizace a reverzního inženýrství? Chcete se dozvědět více? Rádi byste tyto možnosti využili ve své praxi? Kontaktujte nás a využijte služeb našich certifikovaných školitelů. Společnost Dataprojekt s.r.o. nabízí obecná školení aplikace Enterprise Architect i osobní konzultace nad konkrétními problémy z praxe.

Leave a comment

Filtered HTML

  • Webové a e-mailové adresy jsou automaticky převedeny na odkazy.
  • Povolené HTML značky: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Řádky a odstavce se zalomí automaticky.

Plain text

  • Nejsou povoleny HTML značky.
  • Webové a e-mailové adresy jsou automaticky převedeny na odkazy.
  • Řádky a odstavce se zalomí automaticky.
Image CAPTCHA
Enter the characters shown in the image.