Software Architecture

LM Informatica

Dipartimento di Informatica - DISI

Università di Bologna

Docente: Paolo Ciancarini

This course is in English.

Software Architecture is the discipline which studies the form of software systems as the product of social design activities.
Software Architecture extends Software Engineering to System Engineering and Organizational Engineering.
Every software system has an architecture, in the same sense that any building has a form that is the consequence of its function and the needs of its stakeholders.
We present the most important extra-functional properties of large software systems and study how their structure and components can be reused.

Presentazioni / Slides from lectures 2019-20


The business of software

Software architecture

Quality attributes of software architectures

Modeling a software architecture

Architectural kata

The role of software architecture in the lifecycle

Architecture Design Process (ADD)

ADD Case study: big data architecture

Architectural styles for software systems: pipes&filters, repositories

Architectural styles for software systems: client-server

Architectural styles for software systems: MVC and variants

Architectural styles for software systems: service oriented architectures - SOA

Architectural styles for software systems: cloud computing

Architectural styles for software systems: peer to peer

Instructions for the report and the presentation

Useful references

Slides from the book Foundations of Software Architecture

The architecture of open source applications

Software architecting according to Grady Booch

Software architecture at the Software Engineering Institute

IEEE standards (to be accessed inside UniBo's network)

Archimate (notation for Enterprise Architecture)

Eclipse (ambiente di progettazione software)

Enterprise architect (tool for architecting with UML)

Rational Rhapsody (ool for architecting with UML)

Archi (ool for architecting with Archimate)

AcmeStudio (tool for software architecting )

papers on software architecture

Martin Fowler bliki (blog+wiki)

International Association of Software Architects

Letture suggerite / Suggested Readings

Prequisito: Letture di Ingegneria del Software

Perry & Wolf: Foundations for the Study of Software Architecture

Garlan & Shaw: An introduction to Software Architecture

Monroe & Kompanek & Melton & Garlan: Architectural Styles, Design Patterns, and Objects, IEEE Software 1997

Abowd & Allen & Garlan: Formalyzing Style to Understand Descriptions of Software Architecture

Tracz: DSSA (Domain Specific Software Architecture) pedagogical example

Google Scholar (per cercare articoli)

Last updated Oct 8 2019