Tomsovi

  • Zvětšit velikost písma
  • Výchozí velikost písma
  • Zmenšit velikost písma
Domů Honza Škola 5. ročník Diplomová práce - Automatizované modelování - 4.4 Vlastní zkušenost

Diplomová práce - Automatizované modelování - 4.4 Vlastní zkušenost

Email Tisk PDF
seznam článků
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
Všechny strany

4.4 Vlastní zkušenost

Dle mé vlastní zkušenosti je třeba přísliby populárních, ale i odborných publikací a
článků o MDA brát s určitou rezervou.
V případě generování aplikací z modelu, resp. transformace modelů, je třeba
vždy zvažovat jak přínosy tak nevýhody.
V bakalářské práci [Tomsa, 2007] popisuji situaci na projektu údržby a rozvoje
Informačního systému katastru nemovitostí (ISKN). Hlavní část tohoto systému je
tvořena databází Oracle a klientskou aplikací v Oracle Forms a Oracle Reports.
Datový model, logika v databázi i klientská část jsou z velké části generovány z
CASE Oracle Designer.
Ačkoli tento přístup v minulosti měl své výhody, domnívám se, že ve stávající
fázi projektu (po více než deseti letech od začátku) již nevýhody převyšují přínosy.

Síla generování je, kromě zvýšení úrovně abstrakce, v jeho hromadnosti. Změnou
šablony, resp. obecně úpravou parametrů transformace, lze hromadně změnit velké
množství nebo všech artefaktů, např. obrazovek aplikace.
Nevýhody (oproti "ručnímu" programování) jsou podle mého názoru následující:
  • omezení vyplývající z použití generátoru - některé problémy je třeba obcházet;
    to, co by v ručně upraveném kódu bylo provedeno za hodinu, může v CASE trvat i řádově déle.
  • programování v prostředí CASE
    • tj. v podstatě se nejedná o modelování, nýbrž o snahu přimět generátor,
      aby vytvořil něco, co by vývojář sám zvládl několikanásobně rychleji.
    • CASE není pro programování nejvhodnější - oproti standardnímu
      vývojovému prostředí chybí mnoho funkcí, které vývojáři usnadňují práci
      (obecně např. zvýraznění syntaxe, automatické doplňování, refaktoring)
  • svázanost s prostředím, které se nerozvíjí
  • pro nově příchozí vývojáře nutnost naučit se další nástroj - to snižuje flexibilitu
    co do velikosti týmu vývojářů
  • v případě problémů (např. chyb) se tím zvyšuje počet jejich potenciálních zdrojů
    - vývojář musí řešit více otázek: "Udělal jsem chybu v kódu?", "Došlo k chybě
    při generování?", "Přizpůsobil jsem svůj kód dostatečně generátoru?", apod.
  • několikanásobně komplikovanější konfigurační řízení
Zatímco hromadné akce se typicky dějí zřídka (v pozdější fázi vývoje/údržbě
s rozestupem v řádu let), běžné úpravy a opravy můžou probíhat i denně.
Jestliže jsme nuceni odmítat požadavky uživatelů protože "platforma to sice
umožňuje, ale my to neumíme vygenerovat", nebo jsme nuceni vymýšlet krkolomné
konstrukce, jak v generovaném prostředí dosáhnout funkcionality, kterou bychom
"ručně" naprogramovali v řádu minut, pak podle mého názoru nazrál čas k přehodnocení
přístupu a zvážení, zda by v danou chvíli již nebylo ekonomičtější postupovat
klasickým stylem, tj. ručními lokálními úpravami.