Automated Software Engineering
A tantárgyleírás hatályossága
| Subject name (Hungarian, English) |
Automatizált szoftverfejlesztés
Automated Software Engineering
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Subject code | BMEVIMIAC20 | ||||||||||||
| Subject type | — | ||||||||||||
| Training Level | — | ||||||||||||
| Course types and hours (weekly/semester) |
|
||||||||||||
| Assessment type | vizsga | ||||||||||||
| Credits | 5 | ||||||||||||
| Subject coordinator |
DR. Semeráth Oszkár
position: egyetemi docens
contact:
semerath.oszkar@vik.bme.hu
|
||||||||||||
| 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
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.
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
Tanulástámogató anyagok
Online források
Recommended preliminary knowledge for completing the subject
General rules
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
Curriculum placement
No curriculum placements recorded for this subject version.