Software Engineering (Autumn 2024)
Official course description, subject to change:
Course info
Programme
Staff
Course semester
Exam
Abstract
The course introduces the organization of and activities in professional software engineering. Starting with the introduction of different life cycle models, the course then delves into software project management, delving in particular into agile development. Further, the course introduces the students to Requirements Engineering, Object-Oriented Analysis and Design, configuration management and software quality management. Special emphasis is put on how the choice and organization of the software development process influences software product qualities and the software quality-in-use.
The course is taught as a project course: In lieu of exercises, the students will apply the methods, techniques and tools in a small project working in teams.
Description
Software
engineering is the branch of computer science that addresses the organization
of and the methods, tools and techniques used in the whole software lifecycle:
how do we get from an idea for some IT support to a piece of software used by
the intended beneficiaries.
Modern software products are not developed by individual programmers, but by entire teams, which sometimes are very large. Collaboration both within the team and with the potential intended users is therefore at the core of software engineering.
The course introduces students to professional software engineering, enabling them to competently act as a project member as well as to take over management responsibility for minor projects. Special emphasis is put on how the choice and organization of the software development process influences software product qualities and the software quality-in-use.
The course brings together a combination of central themes in software engineering. Specifically, it introduces students to:
- a process-based perspective on software engineering
- different ways of organizing the software engineering (development models)
- supporting process areas, such as project management, configuration management, and product quality management
- object-oriented analysis and design, leading up to requirements specification and low-fidelity prototypes.
- different quality dimensions, such as software in use qualities, software product qualities, and how to address them through different testing techniques.
Formal prerequisites
The student must always meet the admission requirements of the IT University.
Intended learning outcomes
After the course, the student should be able to:
- Characterise the organizational context in which professional software development takes place.
- Discuss major software process models and motivate the choice of a development approach based on project context.
- Discuss and apply major activities of project management, quality assurance and configuration management.
- Recognize the purpose of software analysis and design and develop basic models in UML to this end for a given case project..
- Account for the purpose requirements specifications, design and test specifications, and develop such specifications in the context of a given case project.
- Argue the importance of different quality dimensions in professional software development and reflect how they influence the choice of software processes, methods and tools.
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.