Advanced System Design
Module code: CO7205
Complexity is a recurrent issue in software engineering. Since the early days of IT, building complex software systems has been a major challenge and the problems that it raises often make headlines on the press. In order to address these problems, more and more emphasis is being put into techniques that support the higher levels of system design: advanced modelling languages and software architecture. These levels allow us to move away from code and understand how systems are required to operate based on models. Models reflect an abstract architecture for the software system in the sense that they are organised in terms of components that perform relatively simple computations and connectors that coordinate the interactions between the components. This module provides an introduction to the topic of software architecture in general and modelling techniques for service-oriented architecture in particular.