Fast-track your application

If you're a final year student in our Faculty of Science and Engineering, you are eligible to fast-track your application for this course. Log in using your University details and submit your interest online.

Learn more about fast-tracking your application for this course

MSc ACS: Artificial Intelligence / Course details

Year of entry: 2022

Coronavirus information for applicants and offer-holders

We understand that prospective students and offer-holders may have concerns about the ongoing coronavirus outbreak. The University is following the advice from Universities UK, Public Health England and the Foreign and Commonwealth Office.

Read our latest coronavirus information

Course unit details:
Pattern-Based Software Development

Unit code COMP62542
Credit rating 15
Unit level FHEQ level 7 – master's degree or fourth year of an integrated master's degree
Teaching period(s) Semester 2
Offered by Department of Computer Science
Available as a free choice unit? Yes


Design patterns are reusable design solutions to recurring design problems in some design contexts. Each design pattern has a specific motivation or purpose (WHY, WHY NOT), addresses a specific problem (WHAT), offers a specific design solution (HOW), and works in a specific design context (WHEN).

In addition to being a design aid, software design patterns also serve as a common vocabulary for software developers to communicate, document and explore design alternatives, and a learning tool, to help you, the student, to learn best practice in programming and a disciplined way to design programs.

Software patterns first became widely known through the famous 1992 “Gang of Four” (GoF) book, called Design Patterns, although the notion of patterns in this sense originated with the architect Christopher Alexander in the 1970s. Since the GoF book, many other design patterns have been identified, but few are as significant as the GoF design patterns.

Patterns can be applied from design to all other aspects of software development, such as coding, testing, requirements capture, software architecture, and so on. The focus of this course unit is on the software design patterns.


Unit title Unit code Requirement type Description
Software Engineering Concepts in Practice COMP61511 Pre-Requisite Compulsory

The students are required to have the knowledge of the following areas:

  1. Software engineering concepts and development process
  2. Java programming language


This course unit will introduce 19 software design patterns from the GoF book and one software architectural pattern to the students. Students will learn how to use these patterns to the design and implementation of complex object-oriented software systems in the following ways:

  • At the design level, students will learn how to use patterns to design better software and how to use the Unified Modelling Language (UML) to represent patterns.
  • At the implementation, students will learn how to implement patterns using Java programming language.
  • Students will be required to put their learning into practice by undertaking a group project in which they will be asked to design and implement a complex object-oriented software system.

Learning outcomes

  • Describe a range of software patterns giving examples of their use

  • Select and apply design patterns to practical software design problems

  • Understand the benefits and pitfalls of the design patterns.

  • Work effectively in a small team to achieve 2 and 3 above


The course will cover the following topics:

  • Motivation, principles and concepts behind design patterns
  • Description of design patterns by using a standard template
  • Representation of design patterns by using UML Class Diagram
  • Detailed explanation and illustration of patterns, from design to implementation, with examples
  • Software architecture
  • Relationships between the fundamental principles of object-oriented program design and design patterns


Teaching and learning methods

  • Lectures (10 hours)
  • Laboratories (20 hours)

Knowledge and understanding

On successful completion of this course unit a student will be able to learn:

  1. What design patterns are for, how they work and why they are needed.
  2. How the design patterns can help solve software design problems.
  3. When and why to use each pattern, and the consequence of using the pattern.
  4. How to use design patterns to design and implement adaptable object-oriented software systems.
  5. How to use design patterns to design software architecture.
  6. The relationship between the design patterns and the fundamental principles of object-oriented program design.

Employability skills

Analytical skills
Group/team working
Project management
Problem solving
Written communication

Assessment methods

Method Weight
Written exam 30%
Written assignment (inc essay) 70%

Feedback methods

  • Formative feedback is available every week during the lab session.
  • Summative feedback to the coursework will be provided in written at the end of coursework assessment

Recommended reading

COMP62542 reading list can be found on the Department of Computer Science website for current students. 

Study hours

Independent study hours
Independent study 150

Teaching staff

Staff member Role
Liping Zhao Unit coordinator

Return to course details