Advanced System Design
Module code: CO4205
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 keep making 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, namely 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 local computations) and how they coordinate with each other by some communication mechanisms. This module provides an introduction to modelling techniques for distributed applications.