production
Skip to Content

CS3028: PRINCIPLES OF SOFTWARE ENGINEERING (2020-2021)

Last modified: 20 Oct 2020 16:45


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
Co-ordinators
  • 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?

None.

What courses cannot be taken with this course?

None.

Are there a limited number of places available?

No

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

  • 1 Practical during University weeks 8 - 18

More Information about Week Numbers


In light of Covid-19 and the move to blended learning delivery the assessment information advertised for courses may be subject to change. All updates for first-half session courses will be actioned no later than 1700 (GMT) on 18 September 2020. All updates for second half-session courses will be actioned in advance of second half-session teaching starting. Please check back regularly for updates.

Summative Assessments

Small Group Project 25%

Online Exam 75%

Formative Assessment

There are no assessments for this course.

Course Learning Outcomes

Knowledge LevelThinking SkillOutcome

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.