Advanced Software Engineering 15 ECTS (Autumn 2019)
Official course description:
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 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.
Learning activities
In
the seminar track, the lectures are combined with student centered learning
activities, especially reading, analysis and discussion of scientific
literature related to the topics and presentation of the results. The learning activities are chosen so that students learn to understand,
analyse and relate academic literature to practical or research problems. The course literature will consist of a compendium of ca 20 scientific articles.
For the empirical project, the student teams will cooperate with companies and
systematically study some software engineering practice or method. The project
can involve practical contribution to the company, e.g. in the form of adding static
analysis to the development environment and configuring it. Besides
supervision, you will present your project once during the term.
Mandatory activities
1) Students work in teams on an empirical project.
2) The students will be expected to shortly present and prepare the discussion of a number of articles throughout the course.
The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.
Course literature
The course literature is published in the course page in LearnIT.
Ordinary exam
Exam type:D: Submission of written work with following oral, external (7-trinsskala)
Exam variation:
D2G: Submission of written work for groups with following oral exam supplemented by the work submitted. The group has a shared responsibility for the content of the report.
Exam description:
Students submit a project report based on the empirical project. The project report is expected to contain a motivation and discussion of the empirical method; a presentation of the empirical results; and a discussion that relates the results to the relevant literature.
The oral exam will consist of a group presentation and questioning regarding the project and an individual part examining the curriculum.
Group examination type: Mixed Exam 1.
Duration of Group Presentation and questioning: 15 minutes.
Duration of Individual part exam: 20 minutes.
The individual part of the examination will start with a short presentation by the student of a randomly selected article out of ca 15 articles that have been discussed in the course and are part of the curriculum. To prepare the short presentation you will have 30 minutes preparation time on the same day. The questioning in the individual part of the examination will also cover the whole curriculum.
Group size: up to three students.