Advanced Computer Science: Multi-Core Computing [MSc]

Pattern-Based Software Development


Unit code: COMP62542
Credit Rating: 15
Unit level: Level 6
Teaching period(s): Semester 2
Offered by School of Computer Science
Available as a free choice unit?: Y

Requisites

Prerequisite

Aims

This course unit will introduce students to a wide range of software patterns, with particular emphasis on design patterns and e-business patterns. As well as a theoretical understanding of patterns students will gain practical experience of applying them through laboratory case studies.

Overview

This course unit will introduce students to a wide range of software patterns, with particular emphasis on design patterns and e-business patterns. As well as a theoretical understanding of patterns students will gain practical experience of applying them through laboratory case studies. Patterns capture existing best practice, and so are identified or discovered rather than invented. 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. Design patterns are solutions to recurring software design problems.

Teaching and learning methods

Lectures

20 hours of lectures.

Laboratories

40 hours of labs

Learning outcomes

Learning outcomes are detailed on the COMP61532 course unit syllabus page on the School of Computer Science's website for current students.

Knowledge and understanding

  • The notion of a pattern and of different kinds of software patterns;
  • The relationship between business requirements and e-business application architectures;
  • IBM Patterns for e-business as solutions for e-business application system design;
  • Commonly used software patterns, especially design patterns
  • The use of patterns for designing an e-business system based on a real world case study.

Intellectual skills

  • Demonstrate a good understanding of IBM Patterns for e-business design and their approach;
  • Demonstrate a competence in applying patterns to the e-business design.
  • Demonstrate competence in selecting and applying design patterns to construct software

Practical skills

  • Apply the pattern approach to two practical situations, one focussing on e-business patterns and one on design patterns.

Transferable skills and personal qualities

  • Independently gather, sift, synthesise and organise material from a variety of sources, and critically evaluate the extent to which it might contribute to current developments in the field.
  • Improve one's own approach to professionalism through planning, monitoring, critical evaluation and reflection.
  • Demonstrate an ability to collaborate with other people through group work.
  • Prepare a coherent and well structured written report.

Employability skills

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

Assessment methods

  • Written exam - 50%
  • Written assignment (inc essay) - 50%

Syllabus

  • Introduction to patterns; pattern descriptions; types of software pattern; problem-oriented vs. solution-oriented patterns
  • Overview of IBM Patterns for e-business and e-business architectural design
  • E-business patterns: Self-service, Collaboration, Information Aggregation, Extended Enterprise; Integration patterns; Composite patterns.
  • Case study applying e-business patterns and their relationship to business processes
  • Introduction to business process modelling
  • Design patterns: Singleton, Strategy, Composite, Proxy, Item Description, State, Command, Observer. Relationship to GRASP patterns.
  • Software architecture patterns and Service-oriented architectures
  • Examples of patterns for coding, testing and concurrency control.

Recommended reading

COMP61532 reading list can be found on the School of Computer Science website for current students.

Feedback methods

The feedback to the coursework on this course will be provided in written.

Study hours

  • Independent study hours - 73 hours

Teaching staff

Liping Zhao - Unit coordinator

▲ Up to the top