Software architecture

Objectives and outcomes

Familiarising with the structure of the software system, its elements and connections among the elements of the software system. Getting to know different modern software architectures and domain of their application. Students understand the importance of quality software architecture, understand several contemporary styles of software architecture, and know how to choose and apply the appropriate software architecture depending on the type of software and the filed of use.

Lectures

The importance of a good software architecture. Basic principles of a quality software architecture. The role of a software architect in software development. Software architecture design using UML. The process of designing software architecture. The overview of the most famous software architecture patterns – layered, structural, presentation, service, hybrid. A case study analysis for each design pattern. Criteria for choosing the appropriate form. Design of layered software architecture and the selection of software components in each layer.

Practical classes

Analysis of case studies of project patterns covered in lectures. Development of a prototype software application according to the chosen software architecture pattern. Discussion on positive and negative aspects of different software architectures and their applications.