CS252 - Software Engineering 2
| TIMETABLE | TEACHING MATERIAL |
| Credits | 20 |
| Level | 2 |
| Semester | Term 3 |
| Mode of Delivery |
|
| Availability | Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development and BSc Hons Digital and Technology Solutions. |
| Prerequisites | CS120 Introduction to Software Engineering or equivalent experience. |
| Learning Activities Breakdown | 12 tutorials, online study and coursework consisting of quizzes, individual assignments and a group assignment. |
| Items of Assessment | 3 |
| Assessment | The class is assessed 100% by coursework, which will consist of practical work and a group assignment. |
| ILO Assessment Mapping | |
| Pedagogical Methods Used to Support Competency Development | |
| Resit | The resit is 100% coursework. |
| Lecturer | Warren Chan |
Aims and Objectives
The aim of the class is to further the participants’ skills and experience in the design, development and testing of larger scale software systems.
Learning Outcomes
After completing this class participants will be able to:
- Produce a design by identifying, from a requirements specification, necessary classes, their relationships, and their interactions.
- Implement a given design and verify and validate the implementation.
- Be familiar with the main tools and technologies used to support the development and management of software systems.
- Work as part of a team to design, build, test and deliver a software system.
- Understand the key components involved in designing, building and testing a software system.
Syllabus
- Object-Oriented Analysis and Design: Requirements Analysis and Requirements Modelling, Feature Lists, Use Cases, Class Diagrams and other OO Model Representations. Modelling Techniques e.g. Mapping Use Cases to Designs, CRC Cards.
- Design Principles: Coupling, Cohesion, Refactoring, Clean Code (OCP, DRY, SRP, LSP), Introduction to Design Patterns.
- Project Management and Process Models: Agile, Traditional, Management Issues, Management Techniques, etc.
- Testing in the Large: Test-driven development, Multi-Class Testing, System Testing, Mocking, Testing Frameworks e.g. JUnit.
- Software in the Large Tools: Build, Deployment, Testing, Version Control (e.g. Git), etc.
- Software Maintenance: Issues and Techniques, Bug Fixing, Feature Addition, etc.
Recommended 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.
Reading material recommendations will be made available via Myplace, the University's VLE.
Last updated: 2026-09-18 10:00:55