Official course description, subject to change:
Basic info last published 18/03-20

Advanced Software Engineering 15 ECTS

Course info
Language:
English
ECTS points:
15.0
Course code:
KSADVSE1KU
Participants max:
20
Offered to guest students:
yes
Offered to exchange students:
Offered as a single subject:
yes
Price (single subject):
21250 DKK (incl. vat)
Programme
Level:
MSc. Master
Programme:
MSc in Computer Science
Staff
Course manager
Full Professor
Teacher
Assistant Professor
Teacher
Associate Professor
Teacher
Associate Professor
Course semester
Semester
Efterår 2020
Start
24 August 2020
End
22 January 2021
Exam
Exam type
ordinær
Internal/External
ekstern censur
Grade Scale
7-trinsskala
Exam Language
GB
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 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, organizing and supporting the design and development of software.

The Advanced Software Engineering course further 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 not (only) to provide knowledge about specific ways of developing software but 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 organized 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 discuss the process dimension of software engineering in relation to 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 that will be taken up 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
- How to do Useful things with Software: 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 2 to 3 students study an industrial software project and based on the initial results support the company with 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 specialization 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 problems at hand.
  • Discuss the advantages and disadvantages of different methods, principles and practices presented to organise and support software development.
  • Empirically investigate software engineering practice 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.