Go to:
Logótipo
You are here: Start > M.EIC044

Advanced Software Construction Techniques

Code: M.EIC044     Acronym: TACS

Keywords
Classification Keyword
OFICIAL Software Engineering

Instance: 2023/2024 - 1S Ícone do Moodle

Active? Yes
Web Page: https://moodle2324.up.pt/course/view.php?id=5967
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Master in Informatics and Computing Engineering

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
M.EIC 25 Syllabus 2 - 6 39 162
Mais informaçõesLast updated on 2023-08-31.

Fields changed: Learning outcomes and competences, Métodos de ensino e atividades de aprendizagem, Bibliografia Complementar, Programa, Bibliografia Obrigatória, Avaliação especial

Teaching language

English

Objectives

Students are expected to be able to identify and apply advanced techniques for specifying, synthesizing, and manipulating executable artifacts (code) at different stages of the software development lifecycle, in order to enhance certain quality attributes, such as reliability, flexibility, testability and performance. In particular, it is of interest to teach how to minimize the time spent in "programming", by automating the various facets of this activity.

Learning outcomes and competences


  • Identify problems that are adequate to be solved using automatic programming techniques;

  • Design domain-specific models/meta-models

  • Process instances of textual specifications with parsing combinators, alongside with execution mechanisms;

  • Apply code/behavior generation/derivation techniques from high-level specifications;

  • Employ metaprogramming techniques;

  • Employ techniques for automatic program verification;

  • Other advanced development techniques.

Working method

Presencial

Program


  • Model-Driven Engineering


    • Models, Metamodels and Meta-metamodels


      • Domain Specific Languages

      • Internal

      • External

      • Visual vs Text-Based

      • Source-code generation



  • Parser Combinators

  • Metaprogramming

  • Automatic Programming


    • High-Level Specifications

    • Program Synthesis and Program Derivation


  • Automatic verification of programs

Mandatory literature

Marco Brambilla; Model-driven software engineering in practice. ISBN: 978-3-031-02549-5

Complementary Bibliography

Martin Fowler; Domain Specific Languages, Addison-Wesley Signature Series, 2010
Markus Volter; Model-Driven Software Development: Technology, Engineering, Management, Wiley Software Patterns Series, 2006
Dave Steinberg, Frank Budinsky, Marcelo Paternostro, Ed Merks; EMF - Eclipse Modeling Framework (2nd Edition), 2008

Teaching methods and learning activities

The course will take place in a flipped classroom mode, where students will have to study the topics of each class independently, following the instructions of the teacher.

The theoretical-practical classes will have a first part of discussion of each subject pre-studied by the students, where relevant points and potential doubts will be discussed. In a second part, students will dedicate themselves to a practical project. This project will grow incrementally and will result in a system based on metamodels with a domain-specific executable language, first through simple interpretation techniques and finally code generation.

Evaluation Type

Distributed evaluation without final exam

Assessment Components

Designation Weight (%)
Participação presencial 10,00
Teste 20,00
Trabalho prático ou de projeto 70,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Elaboração de projeto 162,00
Frequência das aulas 39,00
Total: 201,00

Eligibility for exams

All components have a minimum rating of 40%. 

Calculation formula of final grade

N = 0.1 * P + 0.2 * T + 0.7 * E

Special assessment (TE, DA, ...)

N = 0.3 * T + 0.7 * E
Recommend this page Top
Copyright 1996-2025 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2025-06-15 at 06:40:58 | Acceptable Use Policy | Data Protection Policy | Complaint Portal