Software Design

Software Architectures

Integrated course, 4.00 ECTS


Course content

Introduction to technical aspects of software architectures based on architectural prototypes: (i) Layered Architectures; (ii) Distributed architectures; (iii) Component-based architectures; (iv) Service-Oriented Architectures; (v) Analysis of current trends in the area of software architectures.

Learning outcomes

On completion of the course, students have fundamental knowledge about design patterns, software architectures and the development of dynamic Web applications.

Recommended or required reading and other learning resources / tools

Erich Gamma and Richard Helm and Ralph Johnson and John Vlissides, Design Patterns, 1995

Martin Fowler, Patterns of Enterprise Application Architecture, 2003
Eric Evans, Domain-Driven Design, 2004
Gregor Hope and Bobby Woolf, Enterprise Integration Patterns, 2004
Clemens Szyperski, Component Software, 2002
Robert Daigneau, Service Design Patterns, 2012
Sam Newman, Building Microservices, 2015

Mario Casciaro and Luciano Mammino, Node.js Design Patterns, Edition 2, Publisher Packt Publishing Ltd, 2016
Jos Dirksen,, Three.js Essentials, Packt Publishing Ltd. July,2014
Andreas Anyuru, Professional WebGL Programming, , John Wiley & Sons, 2012
Professional Journals: ACM, IEEE

Mode of delivery

2 ECTS lecture; 2 ECTS tutorial

Prerequisites and co-requisites

Software Engineering 3

Assessment methods and criteria

Lecture: Final Exam; Tutorial: Continuous Assessment