production
Skip to Content

CS3028: PRINCIPLES OF SOFTWARE ENGINEERING (2017-2018)

Last modified: 25 May 2018 11:16


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. Groupwork (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 Old 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?

  • Any Undergraduate Programme (Studied)
  • One of CS2015 Data Management (Passed) or CS2506 Human-Computer Interaction (Passed) or CS2521 Algorithmic Problem Solving (Passed)

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

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

1st Attempt

1 two hour written examination (75%);
continuous assessment (25%). 

Continuous assessment includes 1 teamwork project white paper (10 pages); 1  teamwork project initial technical report (10 pages); 1 proof-of concept software release.

Resit

1 two hour written examination (75%).
As it is not possible to resit the teamwork-based coursework, an alternative individual equivalent task will be assigned to the student in case of resit of the coursework component.

Formative Assessment

Collective verbal team discussion with groupwork project guides (every fortnights)  and with course organiser (every month or so). Individual MyAberdeen-based technical assignments(every two weeks)  with team leader reporting.

Feedback

Due to the groupwork-based nature of most assignments, feedback is provided by team guides (and by the course organiser) during the appropriate meetings (see above). Feedback for individual tasks is verbally provided as part of the team strength discussion between the course organiser and the team leaders.

Course Learning Outcomes

None.

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.