Advanced Software Construction Techniques
Keywords |
Classification |
Keyword |
OFICIAL |
Software Engineering |
Instance: 2023/2024 - 1S 
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 |
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