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
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