Module Catalogues

Software Architectures

Module Title Software Architectures
Module Level Level 4
Module Credits 5.00
Academic Year 2024/25
Semester SEM2

Aims and Fit of Module

The aim of this module is to train students on the principles of software architectures based on distributed computing technology, the design of complex applications and the deployment techniques. This ranges from the conventional techniques such as Java RMI to the web-based middleware techniques such as web services. The module will equip the students with experience and skills of applying these techniques to distributed systems.
This is an option module MSc Applied Informatics and MSc Financial Computing, to provide students with an opportunity to exercise techniques for complex software development.

Learning outcomes

A. Acquire an in-depth knowledge of software architectures for complex applications; B. Effectively design and implement a distributed computing system to specifications in a creative and consistent manner; C. Critically evaluate distributed systems using relevant technologies; D. Critically analyse the practical and theoretical problems which exist in distributed computing systems. E. Understand and participate in the legal, social, ethical and professional framework in the development of distributed systems.

Method of teaching and learning

Formal lectures:
Students will be expected to attend three hours of formal lectures in a typical week plus a one hour of supervised lab session. In some weeks, in lieu of lectures, we will have seminars where we discuss papers relevant to the lectures. Towards the end of the module, students will have the opportunity to present their projects in front of the class.
Private study:
In a typical week, students will be expected to devote six hours of unsupervised time to private study. The time allowed per week for private study will typically include three hours for revision of course material and background reading, with three hours for completion of practical work
The assessment consists of coursework and a written exam. The coursework contains three parts: a design of a distributed system, a critical evaluation of an existing system, and a project to develop a new distributed system. The written exam evaluates the students’ critical understanding of the theory components of the module.