CS252 - Software Engineering 2
TIMETABLE | TEACHING MATERIAL |
Credits | 20 |
Level | 2 |
Semester | Term 3 |
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 | CS114 Software Engineering 1 or equivalent experience. |
Learning Activities Breakdown | 12 tutorials, online study and coursework consisting of quizzes, individual assignments and a group assignment. |
Assessment | The class is assessed 100% by coursework which will consist of weekly quizzes, practical work and a group assignment. |
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: 2022-12-14 17:27:50