Skip to Content


Last modified: 31 May 2022 13:05

Course Overview

Students will develop large commercial and industrial software systems as a team-based effort that puts technical quality at centre stage. The module will focus on the early stage of software development, encompassing team building, requirements specification, architectural and detailed design, and software construction. Group work (where each team of students will develop a system selected using a business planning exercise) will guide the software engineering learning process. Teams will be encouraged to have an active, agile approach to problem solving through the guided study, evaluation and integration of practically relevant software engineering concepts, methods, and tools.

Course Details

Study Type Undergraduate Level 3
Session First Sub Session Credit Points 15 credits (7.5 ECTS credits)
Campus Aberdeen Sustained Study No
  • Dr Ernesto Compatangelo

Qualification Prerequisites

  • Either Programme Level 3 or Programme Level 4

What courses & programmes must have been taken before this course?

What other courses must be taken with this course?


What courses cannot be taken with this course?


Are there a limited number of places available?


Course Description

Course Aims

Principles of software engineering aims at providing students with both an in-width and an in-depth understanding of disciplined approaches to the software development process, which facilitates the further in-depth understanding gained during the subsequent practice-based sibling course in term two.
Teamwork-based practicals focusing on the preliminary stage of a software development project chosen by students aims at complementing the learning process. 

Main Learning Outcomes

  • Operative knowledge of software development paradigms and of their role in the software development process.
  • Operative knowledge of project management concepts, methodologies, and tasks.
  • Operative knowledge of software requirements elicitation and analysis principles and techniques.
  • Operative knowledge of software design principles and pattern-based design techniques.
  • Operative knowledge of quality assurance principles and techniques, with particular emphasis on software testing methodologies and techniques.

Course Content

  • Introduction to software engineering: Software development paradigms, software lifecycle, the Unified Paradigm.
  • Project management issues: Team organisation, time and cost estimation, risk analysis.

  • Software analysis and design issues: Requirements elicitation, developing a system specification through use cases, architectural design, detailed design, design patterns.

  • Software implementation and quality issues: Testing strategies and methods; quality assurance and management; software verification and validation; software documentation and maintenance.

Contact Teaching Time

Information on contact teaching time is available from the course guide.

Teaching Breakdown

More Information about Week Numbers

Details, including assessments, may be subject to change until 31 August 2023 for 1st half-session courses and 22 December 2023 for 2nd half-session courses.

Summative Assessments

Alternative Assessment

Small Group Project 25%

Online Exam 75%

Alternative Resit Assessment

Where a student fails the course overall they will be afforded the opportunity to resit those parts of the course that they failed (pass marks will be carried forward).


Formative Assessment

There are no assessments for this course.

Course Learning Outcomes

Knowledge LevelThinking SkillOutcome
FactualRememberILO’s for this course are available in the course guide.

Compatibility Mode

We have detected that you are have compatibility mode enabled or are using an old version of Internet Explorer. You either need to switch off compatibility mode for this site or upgrade your browser.