Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Model-based Software Development 

    A tantárgy neve magyarul / Name of the subject in Hungarian: Modellalapú szoftverfejlesztés

    Last updated: 2024. február 18.

    Budapest University of Technology and Economics
    Faculty of Electrical Engineering and Informatics
    MSc Computer Engineering,
    Software Development main specialization
    Course ID Semester Assessment Credit Tantárgyfélév
    VIAUMA22   2/1/0/v 5  
    3. Course coordinator and department Dr. Mezei Gergely,
    4. Instructors
    Dr Gergely Mezei, Associate professor, AUT
    Dr Ferenc Somogyi, Senior lecturer, AUT
    Dr Balázs Simon, Associate professor, IIT
    Dr Oszkár Semeráth, Senior lecturer, MIT
    5. Required knowledge Software modeling basics, object-oriented programming
    6. Pre-requisites
    Kötelező:
    NEM
    (TárgyEredmény( "BMEVIAUMA01", "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUMA01", "FELVETEL", AktualisFelev()) > 0
    VAGY
    TárgyEredmény( "BMEVIMIMA00", "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIMIMA00", "FELVETEL", AktualisFelev()) > 0)

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

    7. Objectives, learning outcomes and obtained knowledge The purpose of the course is for students to learn the basics of model-driven software development, including the concept of domain-specific languages (textual and graphic languages). Students learn how to create such languages and how to process them. By completing the subject, students can understand and apply the model processing to process software models and generate different software products (source code, configuration file, etc.)
    8. Synopsis
    Lectures:
     
    1. Model-driven development, domain-specific modeling. Characteristics of domain-specific languages, their use, examples. 

    2. Processing of textual languages/models, structure of compilers. Grouping of text languages. Operation and characteristics of interpreters. Projection editors.

    3. Basic concepts and steps of lexical analysis, regular expressions, tokenization. Basics of syntactic analysis, derivation tree, concrete and abstract syntax tree. Context-independent grammars.

    4. Syntactic analysis: left recursion, top-down parsing (BFS, DFS), LL(1) analysis. 

    5. Tasks of semantic analysis: design and management of symbol tables, type system, static and dynamic type analysis. Attribute grammars.

    6. The task of optimization. Basic block, the levels of optimization. Transformation, Static Single Assignment (SSA), graph representation, fi-function, optimization techniques.

    7. Code generation techniques. Interoperability between languages, the IL language. Code obfuscation.

    8. Modeling based on a metamodel, the basics of metamodelling. Extension possibilities of UML, UML Profile. Modeling based on Blockly. MOF and Eclipse-Modeling Framework (EMF). Constraints in models, OCL.

    9. Concept of concrete and abstract syntax. Concrete syntax of textual and graphical languages. Semantics of models.

    10. Processing of models, grouping of processing methods. Model transformations.

    11. Transformation of models, graph transformations.

    12. Model-based development. Support for extensibility: characteristics of generative and generic programming, Support for product families: feature modeling. Multiplatform developments: MDA. Model simulation

    13. Outlook: modeling/DSL development in the wider world/current challenges
     

     
    Practice:

    1. Introduction to the Unified Modeling Language

    2. How to develop a textual language? Introduction to compilers in practice

    3. Editing environment for text languages, translation program based on Xtext.
     
    4. Semantic analysis, compiler architectures, LLVM, Roslyn 

    5. Metamodeling in practice using EMF.

    6. Model processing, graph transformation in practice.

    7. Reserve / consultation.
    9. Method of instruction Lecture and practice
    10. Assessment
    During mid-term:
    - 5 homework assignments to be completed at home related to the exercises
    - 1 mid-term test

    The condition for obtaining the signature is to solve at least 3 of the 5 homework assignments at a sufficient level, as well as an acceptable (at least sufficient level) solution of the midterm test.

    The condition for admission to the exam is the existence of a signature.
    The midterm results are included in the exam in the following way:

    - each homework is worth 0-2 points (max. 10 points)
    - 0-14 points can be obtained for the mid-term test


    During the exam period: Written exam
    11. Recaps It is possible to write the mid-term exam again on the supplement week.
    Homework assignments cannot be repeated.
    12. Consultations Upon request
    13. References, textbooks and resources
    Krysztof Czarnecki, Ulrich Eisenecker, Generative Programming: Methods, Tools, and Applications, Addison-Wesley, 2000. 

    Steven Kelly, Juha-Pekka Tolvanen, Domain-Specific Modeling: Enabling Full Code Generation, Wiley-IEEE Computer Society Press, 2008. 

    Martin Fowler, Domain-Specific Languages, Addison-Wesley Professional, 2010 

    14. Required learning hours and assignment
    Lectures42
    Prepare for lectures14
    Prepare for mid-term exam20
    Prepare for exam44
    Homework30
    Sum150
    15. Syllabus prepared by
    Dr Gergely Mezei, Associate professor, AUT
    Dr Ferenc Somogyi, Senior lecturer, AUT
    Dr Balázs Simon, Associate professor, IIT
    Dr Oszkár Semeráth, Senior lecturer, MIT