Skip to navigation | Skip to main content | Skip to footer
Menu
Menu

COMP62542 Pattern-Based Software Development syllabus 2018-2019

COMP62542 Pattern-Based Software Development

Level 6
Credits: 15
Enrolled students: 21

Course leader: Liping Zhao


Additional staff: view all staff

Requisites

  • Pre-Requisite (Compulsory): COMP61511

Additional requirements

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

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

Assessment methods

  • 50% Written exam
  • 50% Coursework
Timetable
SemesterEventLocationDayTimeGroup
Sem 2 w25-27 Lecture 2.15 Mon 10:00 - 13:00 -
Sem 2 w25-27 Lab 2.25B Mon 14:00 - 17:00 -
Sem 2 w32-33 Lecture 2.15 Mon 10:00 - 15:00 -
Sem 2 w32-33 Lab 2.25B Mon 15:00 - 17:00 -
Themes to which this unit belongs
  • Software Engineering 2
  • Computer Science units for ACSwITM students (semester 2)

Overview

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.

 

Aims

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.

Syllabus

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 methods

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

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

Study hours

Knowledge

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
  • Leadership
  • Project management
  • Problem solving
  • Research
  • Written communication

Learning outcomes

Programme outcomeUnit learning outcomesAssessment
A1Describe a range of software patterns giving examples of their use
  • Lab assessment
  • Examination
B2 B3 C1Select and apply design patterns to practical software design problems
  • Group coursework
  • Examination
B2 B3 C1Understand the benefits and pitfalls of the design patterns.
  • Examination
  • Group coursework
D1Work effectively in a small team to achieve 2 and 3 above
  • Group coursework

Reading list

TitleAuthorISBNPublisherYearCore
Design patterns: elements of reusable Object-Oriented softwareGamma, E. et al0201633612Addison Wesley1994