APPLICATION ARCHITECTURE AND DESIGN PATTERNS

SHE Level 3
SCQF Credit Points 20.00
ECTS Credit Points 10.00
Module Code M3I325081
Module Leader Mike Mannion
School School of Computing, Engineering and Built Environment
Subject Computing
Trimester
  • A (September 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. The percentage of work-based learning as represented by the proportion of the Activity Types which take place off campus is 88%. The percentage of directly related work-based assessment directly related to the student's workplace, is around 10% when factoring in local practices for deploying and using design patterns.

Syllabus

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, Tiers - 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

Work based education aims to maximise the direct and digitally mediated contact time with students by practicing teaching and learning strategies that use authentic work based scenarios and encourage action learning, enquiry based learning and peer learning. All these approaches aim to directly involve the students in the process of learning and to encourage sharing of learning between students. The module team will determine the level and accuracy of knowledge acquisition at key points in the delivery, inputting when necessary either directly or with the support of external experts who will add to the authenticity, the credibility and application of the education and learning in the workplace. The University 'Strategy for Learning' documentation has informed the learning and teaching strategy for this module. All lecture, tutorial and assessment material will be available online using GCU Learn well in advance of its presentation and discussion. Sample solutions will also be made available online thus encouraging the development of independent learning and allowing self-reflective feedback on student performance. Within the material significant use is made of signposting to other materials related to the students' industry sector. The module material will be introduced through lectures, while seminars will be used to help explain and elaborate on both the lecture material and problem sheets. Regular short in-class student presentations in groups and as individuals will be an important feature of learning by i) applying theory to workplace application contexts; ii) receiving feedback directly; iii) receiving feedback indirectly through watching others. 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 Taylor, R., Medvidovic, N., Dashofy, E M (2010) Software Architecture: foundations, Theory and Practice, Wiley, ISBN 9780470167748 Bass, L., Clements, P., Kazman, R., (2013) Software Architecture in Practice, Addison-Wesley, ISBN 9780321815736 Sommerville, I. (2016) Software Engineering, 10th Edition, Pearson, Chapters 5 (section 5.5), 6, 7 Pressman, R., (2016) Software Engineering: A Practitioner's Approach, McGraw-Hill, Chapters on Design Concepts, Architectural Design and Pattern-based Design, esp Chapters 12, 13, 16.

Transferrable Skills

Specialist knowledge and application Critical thinking and problem solving Critical analysis Communication skills, written, oral and listening Numeracy Computer literacy Self confidence, self discipline & self reliance (independent working) Awareness of strengths and weaknesses Creativity, innovation & independent thinking Ability to prioritise tasks and time management Interpersonal skills, team working and leadership Gain additional industry focussed competence in the application of the knowledge and practical skills obtained on this programme. Develop an understanding of the practical considerations that constrain the application of theory in the workplace.

Module Structure

Activity Total Hours
Independent Learning (FT) 110.00
Seminars (FT) 24.00
Practicals (FT) 24.00
Assessment (FT) 18.00
Lectures (FT) 24.00

Assessment Methods

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