SOFTWARE ARCHITECTURES

Academic year
2022/2023 Syllabus of previous years
Official course title
SOFTWARE ARCHITECTURES
Course code
CM0639 (AF:398320 AR:215018)
Modality
On campus classes
ECTS credits
6 out of 12 of SOFTWARE ARCHITECTURES AND DEVELOPMENT METHODOLOGY
Degree level
Master's Degree Programme (DM270)
Educational sector code
INF/01
Period
1st Semester
Course year
1
Where
VENEZIA
Moodle
Go to Moodle page
The main goal of this course is to teach the fundamentals of software architectures (and in particular what aspects should be taken into account when evaluating what architecture to choose to develop a software system), and the most important architectural patterns that are nowadays adopted in modern software systems.
- Understanding what are the main characteristics of a software architecture to take into account when designing a software system
- Discerning the different types of existing software architectures with respect to their characteristics
- Choosing an appropriate software architecture (or a combination of several architectures) when designing a software system
Deep knowledge of imperative and object-oriented programming languages. High-level understanding of the main object-oriented patterns, and Web and/or cloud applications.
Software architecture characteristics:
- Modularity and coupling
- Operational characteristics: availability, performance, scalability, recoverability
- Structural characteristics: deployability, configurability, extensibility, upgradeability
- Measurement of characteristics
Architectural patterns:
- Monolithic vs. distributed architectures
- Layered
- Pipeline
- Microkernel
- Event-driven
- Space based
- Microservice
Development of software architectures using a modern technology (such as Spring) and several of its technologies (such as Spring Boot, Spring REST, Spring for Apache Kafka, Spring Web).
Mark Richards, Neal Ford: “Fundamentals of Software Architecture”,O'Reilly Media, January 2020
Written exam and group project or weekly exercise sessions.
Lectures with slides and demos of software developments. Programming exercises, also performed in the classroom.
English
written
Definitive programme.
Last update of the programme: 20/06/2022