Course - Modern Software Engineering - IDIG4110
Modern Software Engineering
New from the academic year 2026/2027
About
About the course
Course content
This course builds on foundational concepts of software engineering and focuses on an in-depth discussion and application of contemporary software engineering practices in the context of development of secure and robust software systems. The course takes into account state-of-the-art theory, professional practice, as well as cross-cutting aspects such as compliance, ethics and sustainability. This course targets graduate students that have a foundational understanding and experience with software engineering and development.
This course covers the following topics:
- Concepts
- Introduction to responsible software engineering
- Architecture modelling: languages and principles
- Principles of requirements engineering
- Process
- Development processes and collaboration modes
- Design of secure software and system architectures
- Implementation of requirements engineering
- Quality
- Software quality and trustworthiness, including trade-off analyses
- Risk management
- Software testing and validation
- Emerging topics in software engineering
- AI-enabled software engineering
Learning outcome
Knowledge
- Explain key concepts of responsible software engineering, including ethical, social, and professional responsibilities.
- Describe and apply principles of risk management in the context of software engineering projects.
- Analyze and justify different software quality attributes (including security) based on project-specific characteristics and constraints.
- Explain domain-specific modeling approaches (e.g., risk modelling, quality modelling, service modelling, feature modelling)
- Understand and apply AI-related concepts such as machine learning and agentic engineering
- Develop and customise architectural models using different architectural views and paradigms.
- Perform and evaluate trade-off analyses in architectural design to compare and justify architectural decisions.
Skills
- Plan, design, and manage secure and scalable software-enabled systems using appropriate engineering processes and tools.
- Critically select and apply AI techniques and tools to support the design, development, and validation of software systems.
- Evaluate human- or AI-generated architecture, code, and tests against requirements, including security, quality standards, and system constraints.
- Plan and execute systematic risk assessments, documenting risks, mitigation strategies, and decision rationales in the context of software engineering.
General Competences
- Demonstrate the ability to justify the professional application of state-of-the-art software engineering principles in project work and decision-making.
- Apply and reflect on best practices for inclusive, collaborative, and efficient teamwork in software engineering contexts.
- Recognize and explain dilemmas and analyze trade-offs as part of the software engineering process.
- Integrate and evaluate human-centered principles and best practices (e.g., ethics, usability, communication, stakeholder engagement) throughout the software engineering process.
Learning methods and activities
- Lectures
- Class presentation
- Group work
- Reflection
- Supervision
Further on evaluation
(the information may be changed until June 15th)
The portfolio consists of:
- Written deliveries based on assignments (e.g., report on development project, report on research topic)
- Classroom presentations
- Individual oral assessment
The precise composition of the portfolio is provided during the first sessions of the course.
Specific conditions
Admission to a programme of study is required:
Applied Computer Science (MACS)
Informatics (MSIT)
Subject areas
- Computer Science