The goal of this course is to provide a common foundation in software engineering for students from various backgrounds. It aims to provide a shared terminology that enables experts in business informatics to be able to work seamlessly with software developers. The course introduces the fundamentals of modern software development methodologies and life cycle models, with a focusing in detail on Scrum and Kanban. The course covers requirements analysis and software architecture, both in theory and in practice. During the practical classes, the students explore and document the requirements of a software system.
Then, during the second half of the semester, they design its architecture. For requirements analysis, the course applies user story mapping in accordance with the agile principles. For the software design, the course uses the C4 model, which is a set of hierarchical diagrams describing the architecture of a software system. The practical classes are workshops in which the students work in teams on the project assignment under an instructor’s guidance. During the second half of the semester, lectures also cover topics such as code quality, code review, testing and automation.
subject outline
- software architecture
- SDLC, scrum, kanban
- requirement analysis, user story mapping
- UML, C4
- design patterns
- interfaces, implementation planning
- wireframing, clean clode
- code quality, code review
- testing, working with legacy code
- CI, automatization, devops
evaluation
The groups submit their requirement analysis and the software design as a set of diagrams (user story map, C4, etc.) and text. Furthermore the work is also presented orally on 10 October and 2 December, respectively. The main aspect of the evaluation is the proper application of the learnt methodologies, the agile, group-based design process. Both the requirement analysis and the software design graded independently, but represent 35% of the final grade, and the individual midterm provides 30%. The midterm consists of 50 multiple-choice questions (1 point each), with a total of 50 points available. The midterm scores counted as percentage, and should reach a passing grade on its own.
The final grade is the weighted mean of requirements analysis (35%) + design (35%) + midterm (30%). For example, requirements analysis (90×0.35) + design (85×0.35) + midterm (70×0.3) = 82.25 (4).
Activity during lectures may be rewarded up to 5 percentage point, based on the instructor’s subjective judgment, which added to the final score.
Only the failed midterm can be retaken (9 December 2026), not possible to improve a passing score.
- requirements analysis and software design
- team work, where each team member gets the same grade expressed as a point (0–100)
- midterm: individual
- Moodle test
- 50 random multiple-choice questions
(1 point each) - scores to grade conversion in the table
- each part should reach passing grade separately
- activity during lectures may be rewarded up to 5 percentage point
| score | % | grade |
|---|---|---|
| 0-25 | 0-50 | 1 |
| 26-33 | 51-66 | 2 |
| 34-38 | 67-76 | 3 |
| 39-42 | 77-86 | 4 |
| 43-50 | 87-100 | 5 |
minimum requirements
- passing midterm
- accepted, at least satisfactory requirement analysis and software design
- the software design must cover each elements of the requirement analysis
- the requirement analysis must meet the predefined constraints, and discover further feasibility conditions
student activities
- participating on the lectures, learning the theoretical materials
- participating on the practical sessions, team-work applying user story mapping and with C4 modelling
- reviewing the work of the team members, risk storming
- collaboration between teams
learning outcomes
skills
- historical overview of software development methodologies
- knowledge of scrum and kanban methodologies
- the concept and role of system requirements
- system requirements modeling techniques (user story mapping)
- problem and topic area analysis techniques
- system design using the C4 model
- the importance of code quality, testing, and automation
knowledge
After successfully completing the course, students will be able to:
- present the most important software development methodologies
- conduct research to effectively identify and understand system requirements
- apply the user story mapping method for requirements specification
- create a software architecture using the C4 model
- perform the most important feasibility studies
attitudes
- effective communication with development project participants and stakeholders
- effective, solution-oriented cooperation with system programmers and testers
autonomy and responsibilities
- students will be able to participate in information system development projects based on modern methodologies, either as team members or, after gaining sufficient experience, as leaders of smaller projects or sub-projects
- they will be able to make responsible decisions on planning and implementation issues
literature
- Patton, J., & Economy, P. (2014). User story mapping: discover the whole story, build the right product. ” O’Reilly Media, Inc.”.
- Brown, S. (2026). The C4 Model: Visualizing Software Architecture. ” O’Reilly Media, Inc.”.
- https://pintergreg.github.io/software-engineering/