CS7CS3 – Advanced Software Engineering

Module CodeCS7CS2
Module NameAdvanced Software Engineering
ECTS Weighting[1]10 ECTS
Semester taughtSemester 1 & 2
Module Coordinator/s  

Guest access to Collaborate Ultra

Tuesday 13/10/2020 @ 10:00
Professor Siobhán Clarke


Module Learning Outcomes

On successful completion of this module, students will be able to:

LO1. assess the theory of classic architecture principles and apply an
appropriate architectural model in a team-based application under
LO2. evaluate the quality of object-oriented code against standard principles;
LO3. refactor object-oriented code to conform to standard OO principles;
LO4. apply test-driven design principles;
LO5. assess the theory of team-based software development, and of agile
processes, and apply in a group project;
LO6. analyse, specify, design, write and test a large-scale, team-based
application solving a complex problem;
LO7. select and apply appropriate structuring mechanisms, data placement
strategies and code quality techniques for large-scale applications;
LO8. document and demonstrate a large-scale, team-based application to
LO9. investigate current state of the art in any software engineering topic.

LO10: apply online group programming techniques

Module Content

The purpose of this course is to expose students to the advanced theory and
practice of contemporary software engineering techniques and team-based
software development; and to the current state of the art in software engineering
research. A core aim of this course is to provide students with experience of
developing a large-scale application.

Upon completion of the course students will have gained experience of analysing,
specifying, designing and implementing a large-scale application, as part of a team.

The projects will be strand specific. In addition to addressing debugging and testing
challenges, they will also have been exposed to the challenges posed by
communicating with team members and other stakeholders (e.g., potential
funders), project management, code integration and demonstrating such an

Teaching and learning Methods

Teaching and learning methods will include a combination of lectures with the
whole class, and group conversations on learning outcomes with each project group
during their practice sessions.

Assessment Details

Reassessment Details

Assessment ComponentBrief DescriptionLearning Outcomes Addressed% of totalWeek setWeek Due
Group project requirements specificationAnalyse and document the requirements for the group projectLO610% for group812
Group project
Application of an appropriate
architectural model in a
team-based application
under development
LO110% for

Group project
Implementation of a thin slice of project functionality
across all architectural
LO1 10% for group1214
Evaluation is based on the
end-of-year project
documentation, a
demonstration to the course
lecturer and, where relevant,
other stakeholders, an oral
examination within teams,
and peer assessment. 35%
of the marks are group-wide,
and 35% is individual.
Criteria for evaluation are:
Application of agile
process to group project
Application of
appropriate systems’
algorithms in group
Code quality within
group project codebase;
Individualised assessment,
against the three evaluation
criteria, is based on teammembers’ peer reviews,
combined with lecturer/TA
observation throughout the
semester, and Q&A on
software engineering theory.
Individual mark must be
passed–i.e., 17.5%–in order to pass
the module.
LO2, LO3,
LO4, LO5,
LO6, LO7,
LO8, LO9.
35% for
35% for
individual (Individual
mark must be
passed–i.e., 17.5%–in
order to pass
the module)

SUPPLEMENTAL ASSESSMENT: Examination (2 hours, 100%)

Contact Hours and Indicative Student Workload

Contact Hours (scheduled hours per student over full module), broken down by:98 hours
Lecture18 hours
Laboratory80 hours
Tutorial or seminar0 hours
Other0 hours
Independent study (outside scheduled contact hours), broken down by:122 hours
Working in project groups122 hours
Total Hours220 hours

Recommended Reading List

Module Pre-requisites

Prerequisite modules:

Other/alternative non-module prerequisites: Students should be able to:

  • write object-oriented code at an honours BSc level
  • understand distributed systems concepts

Module Co-requisites


Module Website