Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

Software Architecture
and Design

Prof. Cesare Pautasso
http://www.pautasso.info
[email protected]
@pautasso

Software Architecture

Firmitatis

Venustatis

Utilitatis

De Architectura

Vitruvio, 23BC

The Art and Science of Building

Architecting, the planning and building of structures, is as old as human societies – and as modern as the exploration of the solar system

Eberhardt Rechtin, 1991

Forces

When do you need an architect?

Small

One Person can build it

Medium

An experienced team can build it

Large

Do not try this without an architect

Ultra-Large

Was this designed by an architect?

CodeCity, Richard Wettel

How Large?

Always choose the appropriate tools for the size of the project you are working on

How Large?

Not easy to measure software size: LOC, GB, $

How Large?

NameSizeTime

How Large?

MLOC
OS/X 10.486
Windows Vista50
Windows XP40
Debian 4.0283

Software Architecture

As the size and complexity of a software system increase, the design decisions and the global structure of a system become more important than the selection of specific algorithms and data structures.

Context

Why Software Architecture?

Hiding Complexity

Abstraction

The difficult part is to know which details to leave out and which should be emphasized

Communication

Representation

Visualization

Visualization

Quality

Evolution

Stewart Brands

Why Software Architecture?

  1. Manage complexity through abstraction
  2. Communicate, remember and share global design decisions among the team
  3. Visualize and represent relevant aspects (structure, behavior, deployment, …) of a software system
  4. Understand, predict and control how the design impacts quality attributes of a system
  5. Define a flexible foundation for the maintenance and future evolution of the system

Course Overview

Final Presentation

The Architecture of Open Source Software Systems

  1. Everyone is assigned a different system
  2. Gather information about it (starting from *)
  3. Give a presentation about its architecture during the second part of the semester

*Amy Brown and Greg Wilson (eds.) The Architecture of Open Source Applications, 2012

Textbook

Richard N. Taylor, Nenad Medvidovic, Eric M. Dashofy, Software Architecture: Foundations, Theory and Practice, John-Wiley, January 2009, ISBN 9780470167748

References

Use a spacebar or arrow keys to navigate