Syllabuses - UG

CS252 - Software Engineering 2

TIMETABLETEACHING MATERIAL
Credits20
Level2
SemesterTerm 3
AvailabilityAvailable to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development and BSc Hons Digital and Technology Solutions.
PrerequisitesCS114 Software Engineering 1 or equivalent experience.
Learning Activities Breakdown12 tutorials, online study and coursework consisting of quizzes, individual assignments and a group assignment.
AssessmentThe class is assessed 100% by coursework which will consist of weekly quizzes, practical work and a group assignment.
LecturerWarren 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: 

  1. Produce a design by identifying, from a requirements specification, necessary classes, their relationships, and their interactions. 
  2. Implement a given design and verify and validate the implementation. 
  3. Be familiar with the main tools and technologies used to support the development and management of software systems. 
  4. Work as part of a team to design, build, test and deliver a software system. 
  5. Understand the key components involved in designing, building and testing a software system. 

Syllabus

  1. 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. 
  2. Design Principles: Coupling, Cohesion, Refactoring, Clean Code (OCP, DRY, SRP, LSP), Introduction to Design Patterns. 
  3. Project Management and Process Models: Agile, Traditional, Management Issues, Management Techniques, etc. 
  4. Testing in the Large: Test-driven development, Multi-Class Testing, System Testing, Mocking, Testing Frameworks e.g. JUnit. 
  5. Software in the Large Tools: Build, Deployment, Testing, Version Control (e.g. Git), etc. 
  6. 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: 2022-12-14 17:27:50