Software Architecture and Development Practices module (CS31007)

This module aims to develop students' ability to write high-quality, maintainable, and secure software

Credits
20
Module code
CS31007
Level
3
Semester
Semester 2
School
School of Science and Engineering
Discipline
Computing

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: