Advanced Software Engineering 15 ECTS
Course info
Programme
Staff
Course semester
Exam
Abstract
The purpose of this course is to give a thorough
understanding of innovative processes, methods, and tools for software
engineering as well as an introduction to a number of theoretical concepts that
allow you to reflect on how those processes, methods, and tools support
software engineering as a cooperative activity. The course is designed to
enable the student to embrace future methodological developments in software
engineering. The course combines theoretical reflection of software engineering
and hands-on engagement with industrial or open source software engineering practice.
Description
Software
engineering today is more and more diversifying: contract development and
in-house development has long been complemented by generic software product
development and implementation. The provisioning of software as services via
cloud servers again changes the game. Agile development is complemented by
continuous software engineering and the DevOps model. More and more end users
customise and configure their software. To address these challenges, software
engineering is conceptualised as 'designing design' (Floyd), that means
structuring, organising and supporting the design and development of software.
The Advanced Software Engineering course deepens the reflection on the process
side of software engineering and the interaction between processes, technical
design and the use context of the software. The goal is to enable the
participants to evaluate and compare different methods and approaches. The
empirical part of the course and possible practical experience are used to challenge
research results and vice versa.
The course is organised in a seminar track and an empirical project. In the
seminar we discuss core topics of software engineering as well as new
developments and relate it to current research. The students are provided with
a number of theoretical concepts to relate the software processes to the
context of use and the technical design. The specific topics will be updated
from year to year by the teacher team based on current research developments.
Example for themes are:
• Software Process models: History, Agile development,
Continuous Software Engineering/DevOps
• Product Quality, Quality in Use, Process Quality, Software
Process Improvement
• Project Management, Managing and leading people
• Requirements Engineering, Requirements Analysis, Modelling
Languages, Compliance
• User Analytics, End User Development, User Driven
Innovation
• Software Evolution, Dependency Management, Technical Depth,
Software Visualisation
• Software (Product) Ecosystems
• Global Software development, Open Source
For empirical project, small groups of 1 to 3 students study an industrial
software project or an open source project. Based on the initial results they
might point to possible improvements.
Formal prerequisites
The
student should have read an introductory course in software development and -
maybe as part of it - participated in a small team project of at least six team
members.
Further, you are expected to have read the Software Architecture course as the first part of the specialisation in Software Engineering.
Moreover, the student must always meet the admission requirements of the IT University.Intended learning outcomes
After the course, the student should be able to:
- Analyse, discuss and relate current research in software engineering to practical software engineering problems
- Discuss the advantages and disadvantages of different methods, principles and practices presented to organise and support software development.
- Empirically investigate software engineering practices and report about the findings reflecting on relevant concepts from research literature.
- Identify practice problems and discuss potential remedies based on research literature.
Ordinary exam
Exam type:D: Submission of written work with following oral, External (7-point scale)
Exam variation:
D2G: Submission for groups with following oral exam supplemented by the submission. Shared responsibility for the report.