SHE Level 3
SCQF Credit Points 20.00
ECTS Credit Points 10.00
Module Code M3I324181
Module Leader Bobby Law
School School of Computing, Engineering and Built Environment
Subject Computing
  • B (January start)
  • A (September start)
  • C (May start)

Pre-Requisite Knowledge

Object Oriented Analysis & Design (or Equivalent)

Summary of Content

This module covers proven good software development practices used in the creation of software systems. Traditional design patterns, architectural patterns and enterprise patterns are investigated using the Unified Modelling Language (UML) and program code examples where appropriate. This includes patterns used when integrating with legacy systems. The main focus of the module is the concept of improving design through the use of these widely applied patterns including their application to existing designs through refactoring. Detailed coverage is included of the traditional Gang of Four (GOF) patterns due to their continued importance and their influence on both current and emerging patterns.


REVIEW OF OO DESIGN PRINCIPLES and THE UNIFIED MODELLING LANGUAGE (UML) OO Design Principles: encapsulation, polymorphism, inheritance versus composition, strong typing, cohesion, coupling, implementation and interface inheritance SOLID: Single responsibility, open-closed principle, Liskov substitution, interface segregation and dependency inversion UML diagrams and techniques: class diagram, sequence diagram, activity diagram, state diagram TRADITIONAL DESIGN PATTERNS and GANG OF FOUR (GOF) - Patterns background: Definition of the term Pattern, How Patterns are identified, History of the Patterns movement - Gang of Four (GOF) Behavioural Patterns; Strategy, Command, Iterator and Observer - GOF Creational Patterns; Factory Method, Abstract Factory, Builder and Singleton - GOF Structural Patterns; Facade, Proxy, Adapter, Composite, Decorator - Programing Idioms and Design Patterns - Application of design patterns during development including the refactoring of existing systems ARCHITECTURAL PATTERNS - Software architecture: characteristics of good architecture, relationship with design and design patterns - Traditional Architectural Patterns: MVC, Layers, Tier - Introduction to Enterprise Design Patterns ENTERPRISE DESIGN PATTERNS - Integration Patterns: Data Accesss Object (DAO), Data Transfer Object (DTO), Asynchronous Resource Integrator, Web Service Broker - Business Component Patterns: Persistent Domain Object (PDO),Session Fae7ade, - Infrastucture Patterns: Interceptors, Service Starter, Singleton, Resource Binder, Dependency Injection Extender

Learning Outcomes

On successful completion of this module, students should be able to:1. Demonstrate a comprehensive understanding of UML and OO design principles and the use of UML for design visualisation2. Assess the use of patterns in the design of software systems3. Develop UML models for design patterns using currently available software modelling tools4. Evaluate and apply design patterns, architectural patterns and enterprise patterns to the development of software systems and the refactoring of existing systems.5. Analyse legacy software components and system architecture, with review of the source code if available, to determine how integration with new and existing systems may be achieved

Teaching / Learning Strategy

The University 'Strategy for Learning' documentation has informed the learning and teaching strategy for this module. The module material will be introduced through lectures, while practical exercises, based on the lecture material, will be given to students for their laboratory sessions. Tutorials will be used to help explain and elaborate on both the lecture material and the laboratory exercises. Full use will be made of GCU Learn to provide Lecture-based and related study materials, along with sample solutions of Tutorial and Laboratory exercises, thus encouraging the development of independent learning and allowing self-reflective feedback on student performance. Staff-based feedback on student performance for submitted work will be provided in line with the University feedback policy, with summative feedback and grades on the coursework assessment utilising GCU Learn. The additional interactive discussion features of GCU Learn will be utilised, as appropriate to the module, to stimulate independent and flexible student learning outwith scheduled class time

Indicative Reading

Ernest, M (2011) Java Design Patterns, Oracle Corporation Fowler, M , (2003) UML Distilled, 3rd Edition, Addison Wesley Professional, ISBN: 0321193687 Larman, C (2011) Applying UML and Patterns, Prentice Hall PTR, ISBN: 0131489062 Gamma et al., E (1995)Design Patterns, Addison Wesley, ISBN: 0201633612 Fowler, M (2011) Patterns of Enterprise Application Architecture, Addison Wesley, ISBN: 0321127420

Transferrable Skills

D1 Specialist knowledge and application D2 Critical thinking and problem solving D3 Critical analysis D4 Communication skills, written, oral and listening D5 Numeracy D7 Computer literacy D8 Self confidence, self discipline & self reliance (independent working) D9 Awareness of strengths and weaknesses D10 Creativity, innovation & independent thinking D15 Ability to prioritise tasks and time management D16 Interpersonal skills, team working and leadership

Module Structure

Activity Total Hours
Lectures (FT) 24.00
Independent Learning (FT) 134.00
Tutorials (FT) 12.00
Practicals (FT) 12.00
Assessment (FT) 18.00

Assessment Methods

Component Duration Weighting Threshold Description
Course Work 02 n/a 50.00 35% Written Report
Course Work 01 n/a 50.00 35% Practically Based Assignment