Module Overview

Software Design

This module is concerned with imparting an in-depth understanding of software design and related methodologies. It is about enabling one to understand and have some experience of different techniques in software design, and their role in the overall lifecycle process in which the approach might be embedded. The use of CASE tools is emphasised.

Module Code

SENG 9810

ECTS Credits

5

*Curricular information is subject to change

Software lifecycle process models, Unified Process, XP and Agile / lightweight methodologies. 

Principles of software design. 

Design representations, structure charts and data flow diagrams, UML. 

Design methodologies, functional design, object-oriented analysis and design, refactoring. 

Design patterns, analysis patterns, system architecture patterns. 

Test Driven Design. 

Design by contract. Code Verification. 

Model Driven Architecture, Model Driven Development, statecharts and action languages. aspect- oriented development. 

Concurrency, Petri Nets. 

Use of CASE tools. 

Case studies for analysis and discussion.

The module is designed to be delivered within a blended learning model, employing mixed modes (online and face to face) of learning, teaching and assessment.

TU059 will be delivered primarily in a face-to-face mode while TU060 will be delivered in a blended mode.

 
Practical hands-on laboratory classes will be used to allow students to familiarise themselves with the techniques taught and tools used in the module. 

 It is also envisaged that case studies will be used for group discussion and critical analysis. 

Students will be expected to develop independence in, and responsibility for their own learning.

Module Content & Assessment
Assessment Breakdown %
Formal Examination60
Other Assessment(s)40