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



https://eu.bbcollab.com/guest/fede7a5542ff45ca95c30c43db26ae2a

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
development;
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
assessors;
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
application.

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

Assessment ComponentBrief DescriptionLearning Outcomes Addressed% of totalWeek setWeek Due
Group programming exercisePractice of online group programming techniquesLO104% for group48
Group project requirements specificationAnalyse and document the requirements for the group projectLO65% for group812
Group project
architecture
Application of an appropriate
architectural model in a
team-based application
under development
LO15% for
group
812

Group project
architecture
Implementation of a thin slice of project functionality
across all architectural
components.
LO1 6% for group1214
Group
development
project
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. 40%
of the marks are group-wide,
and 40% is individual.
Criteria for evaluation are:
Application of agile
process to group project
Application of
appropriate systems’
algorithms in group
project;
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.
LO2, LO3,
LO4, LO5,
LO6, LO7,
LO8, LO9.
40% for
group;
40% for
individual
624

Reassessment Details

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: ST3009

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

None

Module Website

Blackboard