This programme is designed for software professionals, architects, and senior system design engineers. Managers of architecture teams will also benefit from this programme.
The programme aims to form part of the evolutionary path that a software developer takes to become a software architect, allowing each student to advance their technical career path.
Students will learn about the role of a software architect in creating an extensible and maintainable software solution by applying abstract knowledge and patterns to software architecture, and design. The traditional role of a software architect will also be critically assessed in the face of agile development methodologies and the adoption of tools, and practices that avoid or decouple up front systems or architectural design.
The programme is taught by industry and academic experts who are either practicing software architects, senior technical architects or research active academics in the field.
Software architecture spans a number of pillars which include the application, system, software and enterprise. Application architecture represent the fundamental building blocks of software and at this layer an architect needs to make decisions about the programming language, the constructs, libraries and frameworks that will be used to develop software.
It is rare that an application lives in isolation and typically a system is composed of multiple collaborating applications. At this system level, software architects focus on issues such as reliability, interoperability and integration.
Software architecture is also concerned with the significant elements of the software system from the structure and design of the code to deployment of that code to the live environment. At this layer, a software architect will focus on security, reliability, authentication, performance etc. Across these pillars, software architects make architectural decisions that shape a system and design decisions to ensure his/ her vision is realised.
The MSc in Software Architecture & Design programme will provide students with the principles and concepts involved in the analysis and design of large software systems. The programme was developed with significant input from industry's leading experts.
The programme is focused on developing a holistic view, seeing the bigger picture to understand how a software system works as a whole. This approach helps to differentiate software development and software architecture, it also helps to understand how somebody progresses from software development to a software architecture role.