K-INFO
HU
EN
Login

Automated Software Engineering

Automatizált szoftverfejlesztés
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Subject name (Hungarian, English)
Automatizált szoftverfejlesztés
Automated Software Engineering
Subject code BMEVIMIAC20
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 2 2 0
type (linked/independent) derived course
Assessment type vizsga
Credits 5
Subject coordinator
DR. Semeráth Oszkár
position: egyetemi docens
Responsible department
Mesterséges Intelligencia és Rendszertervezés Tanszék
Faculty Villamosmérnöki és Informatikai Kar
Subject website
Primary curriculum type
Direct prerequisites – Strong prerequisite none
Direct prerequisites – Weak prerequisite none
Direct prerequisites – Parallel prerequisite none
Direct prerequisites – Milestone prerequisite none
Direct prerequisites – Exclusion none

Objectives

Programme

1. Introduction. Automation in software development. What software artifacts are involved in the different phases of software development, what are the development steps in each phase, how can they be automated?

2. Continuous integration and automation options. Automated compilation, transformation and testing.

Exercise: build automation (Gradle) and continuous integration (GitHub Actions).

3. Language engineering, Domain-Specific Languages. Modelling, metamodeling, graph-based models in theory and practice.

Exercise: Ecore, example EMF languages.

4. Context-free grammars. Concepts of grammars, language design, grammar analysis.

Exercise: language design with Xtext technology.

5. Editor functions, modern development tools. What are the features of a modern development tool? How can they be extended and customised?

Exercise: Eclipse plugin, Language Server Protocol and CodeMirror.

6. Code generation and model transformations. Code generators and compilers. Code generation technologies. Graph and model transformations.

Exercise: Code generation.

7. Simulation and debugging. Model interpretation, model semantics. Observability and controllability.

Exercise: Running models in simulators.

8. Representing program code with models. Concepts of control flow and data flow.

Exercise: Abstract syntax tree and code analysis.

9. Checking source code with static analysis techniques. Application and extension of pattern-based static verification techniques.

Exercise: Creating a new rule for a static analysis tool (SonarLint).

10. Testing techniques, coverage metrics. Test design and generation methods, automated testing.

Exercise: measuring different coverage metrics (JaCoCo).

11. Maintainable and efficient unit testing. Test patterns and what to avoid (test smell). Implementation of isolation using test doubles (stub, mock).

Exercise: refactoring unit tests, isolation (Mockito).

12. Performance measurement and metrics. Design and execution of performance tests, evaluation of measurement data.

Exercise: measuring performance metrics using Java Microbenchmark Harness (JMH) and VisualVM.

13. Statistical analysis of test and measurement results. Visualisation of measurement data, data analysis. Analysis of quality indicators.

Exercise: analysis of software testing and performance measurement data using Jupyter Notebook.

14. Industry case study, invited speaker.

This course introduces to the language engineering process and the automation features of intelligent development environments. This includes the design of context-free grammars, the process of parsing, the implementation of automated continuous integration processes, and the implementation and statistic analysis, testing and performance measurement techniques. The aim of the course is to familiarise students with state-of-the-art technologies available in the field and to give them experience in automating language design and development.

Learning outcomes

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Knowledge

No learning outcomes recorded.

Skills

No learning outcomes recorded.

Attitudes

No learning outcomes recorded.

Autonomy and responsibility

No learning outcomes recorded.

Oktatási módszertan

Lecture and laboratory exercises.

Tanulástámogató anyagok

Online források
Slides and materials on the course websiteMartin Fowler,; Rebecca Parsons, „Domain Specific Languages", Addison-Wesley, 2010.Anneke G. Kleppe,; „Software Language Engineering", Addison-Wesley, 2008.Gerard Meszaros,; „xUnit Test Patterns", Addison-Wesley, 2007.Jez Humble, David; Farley, „Continuous Delivery", Addison-Wesley, 2010.

Recommended preliminary knowledge for completing the subject

Knowledge type competencies
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Before taking the course, the students should be able to (K2) understand and explain source code writtend in imperative programming language(K3) develop non-trivial programs based on high level specification(K3) using structure models
Skill type competencies
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Recommended (non-compulsory) preliminary competencies
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Before taking the course, the students should be able to (K2) understand and explain source code writtend in imperative programming language(K3) develop non-trivial programs based on high level specification(K3) using structure models
General rules
Requirements: To obtain the signature the students must successfully complete a home assignment. Written exam in the exam period. Additional possibilities: The home assignment can be handed in late in the week after the deadline.
Assessment methods
In-term assessments

No detailed assessments provided.

Weight of in-term assessments

No weights provided.

Exam-period assessments

No detailed assessments provided.

Weight of exam elements

No weights provided.

Grade calculation

No grade thresholds provided.

Attendance requirements

No attendance requirements provided.

Rules for retake and resubmission

Not provided.

Short description

Not provided.

Detailed description

Not provided.

Recommended courses

Not provided.

Workload to complete the subject

No workload breakdown provided.

Validity of subject requirements
Requirements valid from:
Requirements valid until:
Curriculum placement

No curriculum placements recorded for this subject version.