Organizácia cvičení a podmienky udelenia zápočtu

Ciele predmetu
  1. Cieľom cvičení je naučiť študentov základy modelovania, metamodelovania a generatívneho programovania.
  2. 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.
  3. 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.

    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:
    • externý jazyk
      • implementovaný jazykový procesor
      • generovaný jazykový procesor
      • XML jazyk
    • interný jazyk
    Zoznam všetkých cieľov praktickej časti predmetu nájdete tu.
Podmienky pre získanie zápočtu
Vyučujúci

Prednášajúci:
Cvičiaci:
Zdroje
  1. Metaprogramovanie odkaz.
  2. Generatívne programovanie
    • K. Czarnecki, U. Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, 2000, 832 p. ISBN 0201309777.
  3. 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.
  4. Modelom riadený vývoj softvéru (MDSD)
    • T. Stahl, M. Voelter: Model-Driven Software Development: Technology, Engineering, Management. Wiley, 2006, 444 p. ISBN 0470025700.
  5. 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.
  6. 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.
  7. 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.
comments powered by Disqus