- Cieľom cvičení je naučiť študentov základy modelovania, metamodelovania a generatívneho programovania.
- Výsledkom bude systém schopný vygenerovať rôzne verzie konzolových aplikácií na základe vopred definovaného jednoduchého modelu systému.
- V predmete budú predstavené a využité rôzne prístupy k modelovaniu, generovaniu kódu a budú použité tri rôzne jazykové procesory.
-
Na každom cvičení cvičiaci uvedie študentov do problematiky a tí následne riešia
jednoduché úlohy s pomocou týchto materiálov. Svoje návrhy, riešenia a nejasnosti
konzultujú s cvičiacim. Po vyriešení všetkých úloh študenti pokračujú v práci
na svojich zadaniach. V tom im pomáhajú doplňujúce úlohy uvedené na konci každého cvičenia.
- externý jazyk
- implementovaný jazykový procesor
- generovaný jazykový procesor
- XML jazyk
- interný jazyk
Zadanie:
Vytvorte konzolovú aplikáciu umožňujúcu realizáciu základných operácií pri práci s entitami. Entita reprezentuje objekt reálneho sveta s jednoznačnou identitou (napr. zamestnanec, oddelenie, auto, účet, faktúra). S týmito entitami aplikácia umožňuje vykonávanie základných operácií – vytváranie, menenie, mazanie a výpis CRUD. Vzhľadom na to, že cieľom je vytvárať systém pre rôznych zákazníkov pôsobiacich v rôznych doménach, bude aplikácia vytvorená generatívnym prístupom. Pre jednotlivých zákazníkov bude s ohľadom na doménu ich pôsobenia špecifikovaný systém prostredníctvom jednoduchých doménovo-špecifických jazykov. Model systému má byť špecifikovaný prostredníctvom viacerých počítačových jazykov v kompozícii. Model systému bude rozširovaný postupne na jednotlivých cvičeniach. Súčasne s konkretizáciou modelu budú rozširované/vytvárané počítačové jazyky určené na vyjadrenie tohto modelu. Použité počítačové jazyky na vyjadrenie modelu budú mať rôznu formu konkrétnej syntaxe:
- Ani jedna neospravedlnená neúčasť.
- Maximálne 3 ospravedlnené neúčasti - spôsob náhrady určí cvičiaci.
- Získanie aspoň 16 z 30 možných bodov za cvičenia.
-
Priebežné hodnotenia počas semestra v štyroch termínoch.
Body je možné získať za dodržanie stanoveného termínu a
vypracovanie úloh pre daný termín:
- 1. termín, (4. týždeň), úlohy 1, 2, max 5 bodov.
- 2. termín, (7. týždeň), úlohy 3, 4, max 5 bodov.
- 3. termín, (10. týždeň), úlohy 6, 7, max 5 bodov.
- 4. termín, (13. týždeň), úlohy 8, 9, max 5 bodov.
- Aktivita a prístup k riešeniu úloh max 10 bodov.
Pri každom odovzdávaní je nutné prezentovať a obhájiť riešenie: vytvorené nástroje a aj vygenerovanú aplikáciu. Zadanie bude odovzdané v elektronickej podobe v poslednom termíne do systému Moodle. Súčasťou odovzdania je vygenerovaná aplikácia a všetky vytvorené nástroje použité pre generovanie aplikácie. Vygenerovaná aplikácia bude prezentovaná cvičiacemu a bude predvedená jej funkčnosť a funkčnosť vytvorených nástrojov na generovanie aplikácie. Zadanie je individuálne.
- Ing. Sergej Chodarev, PhD. , kontakt
- Ing. Michaela Bačíková , kontakt
- Ing. Milan Nosáľ , kontakt
- Metaprogramovanie odkaz.
-
Generatívne programovanie
- K. Czarnecki, U. Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, 2000, 832 p. ISBN 0201309777.
-
Jazyky všeobecného použitia vs. doménovo-špecifické jazyky
- M. Mernik, J. Heering, A. M. Sloane: When and how to develop domain-specific languages. ACM Computing Surveys, 37(4):316–344, 2005.
- M. Fowler: Domain Specific Languages. Addison-Wesley Professional (2010), 640 p., ISBN 0321712943.
-
Modelom riadený vývoj softvéru (MDSD)
- T. Stahl, M. Voelter: Model-Driven Software Development: Technology, Engineering, Management. Wiley, 2006, 444 p. ISBN 0470025700.
-
Modely vs. programy
- J. Greenfield, K. Short, S. Cook, S. Kent: Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley, 2004, 500 p. ISBN 0471202843.
-
Softvérová architektúra
- L. Bass, P. Clements, R. Kazman: Software Architecture in Practice, Second Edition. Addison Wesley, 2003. 560 p. ISBN 0-321-15495-9.
- J. Bosch: Design and Use of Software Architectures. Addison-Wesley, 2000. 368 p. ISBN 0201674947.
-
DRY princíp (Don't repeat yourself)
- A. Hunt, D. Thomas: The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley Professional, 1999. 352 p. ISBN 978-0201616224.