CS993 – Software Engineering

Credits 20
Level 5
Semester 2
Prerequisites CS995 and CS994
Availability Possible elective
Contact Lectures: 20 | Tutorials: 0 | Labs: 40
Assignment: 70 | Self Study: 70
Assessment Lab exercises (10 x 2%) | Group Project Report (30%) | Individual Project Report (50%)
Resit The resit assessment will be an individual assignment (100%)
Lecturer Mr William Wallace

General Aims

This module aims to:

  • Develop an understanding of the software development life-cycle;
  • Develop an understanding of the tools used to develop large scale software;
  • Develop an understanding of developing software in a group environment;
  • Develop an understanding of how software engineers operate in industry;
  • Develop an understanding of how the tools are used to control the complexity of developing large software in groups.

Learning Outcomes

After completing this module participants will be able to:

  • Understand the key components involved in designing, building and testing a software system;
  • Gain experience of the software development processes typically used within industry;
  • Be familiar with the main tools and technologies used to support the development and management of software systems;
  • Understand how to work as part of a team to design, build, test and deliver a software system.


  • The importance of users and capturing and communication requirements (e.g. via use cases);
  • Principles of software architecture and design; key elements of UML and design patterns;
  • Implementation considerations: coding practices, idioms, implementation-related design principles;
  • Testing: principles and supporting frameworks (e.g. n- Unit);
  • Source code control and build tools (e.g. Git, Maven…);
  • Software development processes (primarily Agile development methodology).

Recommended Text/Reading*

* This list is indicative only – the class lecturer may recommend alternative reading material. Please do not purchase any of the reading material listed below until you have confirmed with the class lecturer that it will be used for this class.

Beginning Software Engineering. R. Stephens, Sybex (electronic copy available in library).