Software Architecture and Development Practices module (CS31007)
This module aims to develop students' ability to write high-quality, maintainable, and secure software
You will develop the ability to write high-quality, maintainable, and secure software.
You will focus on software design principles, code review practices, secure coding, and test-driven development.
You will gain practical experience in areas such as:
- improving code quality
- applying design patterns
- writing effective tests
- conducting professional code reviews
What you will learn
In this module, you will:
- write clean and maintainable code
- refactor code to remove code 'smells'
- apply common software design patterns
- perform unit testing and Test-Driven Development (TDD)
- conduct effective code reviews
- apply version control best practices
- identify secure coding principles
- apply defensive programming techniques
By the end of the module you will be able to:
- explain and apply software design patterns in real-world scenarios
- analyse and revise software quality using refactoring techniques
- demonstrate the importance of unit testing and implement test-driven development
- perform code reviews and provide constructive feedback
- write unit and integration tests using appropriate tools and frameworks
- work collaboratively using version control and peer review processes
Assignments / assessment
- Code Review & Refactoring Exercise (50%)
- Software Development Project with Testing & Security Focus (50%)
Teaching methods / timetable
You will learn by taking a hands-on approach. Lectures and/or lecture videos will introduce the main concepts to you. You will explore these concepts further during tutorials and/or practical lab sessions. Coursework assignments will be used to consolidate and demonstrate your learning.
Courses
This module is available on the following courses: