• Non ci sono risultati.

Software Architecture

N/A
N/A
Protected

Academic year: 2021

Condividi "Software Architecture"

Copied!
18
0
0

Testo completo

(1)

Software Architecture

Laurea Magistrale in Informatica

Paolo Ciancarini

(2)

Goal

The course “Software Architecture”

studies the form of software systems as the product of social design activities.

Software Architecture extends Software

Engineering to System Engineering and

Organizational Engineering.

(3)

Prerequisites

• Prerequisites:

• Be able to program with an o-o language like Java

• Know the generic structure of an operating system and of a compiler

• Basic notions of software engineering: software process, design principles

• Basic notions of UML: class and seq diagrams

• IMPORTANT: you should be able to recognize

and use the main software design patterns

(4)

Effort and scheduling

• Effort : 6 cfu

• Course duration: from sept to december

• Class hours:

• Mon 16.30-18.30 room Ercolani 3

• Wed 8.30-11.30 room Ercolani 3

(5)

Software and architecture

Software industry: born in the ’60, so still young and with unique problems

Software systems are large and complex:

Google is 2 billions LOC

Architecture: ancient design discipline Software Architecture: a new discipline,

different from Software Engineering

(6)

From Quora

A software engineer executes a plan that is created by a software architect.

A software architect creates a blue print of the software to create. The software architect creates also a plan that has provisions for different business and technical requirements.

A software engineer reads the plan or the design created by software architect and starts implementing in the language of choice most suitable to the plan.

The resulting software is the one that finally serves users in achieving their objectives.

A software engineer has to understand requirements, read high level design, create low level design, unit tests, code, and any relevant documentation.

Software architect’s job responsibilities are reading requirements, adding

technical requirements, understanding long term vision, creating high level design, creating testing strategy, doing code review and explaining overall approach to stakeholders.

(7)
(8)
(9)

Syllabus

• Software: engineering vs architecting

• The qualities of software systems

• Describing software architectures

• Architecting with agile methods

• Languages for software architecting

• Architectural styles

• Special styles: interactive, distributed, cloud

• Model Driven Architecture

• Enterprise architecture

• Evaluating a software architecture

(10)

Exam

• Attending class 10%

• Report on a sw architecture topic 50%

• Presentation of the report 40%

• Warning: students who cannot attend my class (eg. student workers) will receive

additional tasks (they have to ask me for

them)

(11)

Additional tasks

• Additional readings and written

summaries

(12)

Channels

• Web: www.cs.unibo.it/~cianca/wwwpages/archsw.html

• Twitter: @paolociancarini

• Telegram: @paoloci

• Facebook page Software Architecture UNIBO

• Dropbox

• Linkedin

(13)

Textbook

Main

H.Cervantes & R. Kazman, Designing

Software Architectures, AddisonWesley 2016

Additional material will be distributed

during the course

(14)

Other books

• AA.VV., The architecture of Open Source applications, aosabook.org

• Bass et al., Software Architecture in Practice, 3

rd

ed., AddisonWesley, 2013

• Clements et al., Documenting Software Architectures, 2

nd

ed., AddisonWesley, 2010

• Rozanski & Woods, Software Systems Architecture, 2

nd

ed., AddisonWesley, 2012

• Taylor, Medvidovic, and Dashofy, Software Architecture:

Foundations, Theory, and Practice, Wiley, 2009

www.softwarearchitecturebook.com

(15)

Main sources for papers

Google scholar scholar.google.com

IEEE Transactions on Software Engineering

ACM Transactions on Software Engineering and Methodology

IEEE Software

WICSA/ECSA: Conference on Software Architecture

SATURN Sw architecture conference

www.sei.cmu.edu/saturn

(16)

Useful web sites

Major web sites:

www.sei.cmu.edu/architecture/

www.handbookofsoftwarearchitecture.com www.bredemeyer.com

Blogs

blog.softwarearchitecture.com

IASA (int. assoc. of sw architects): www.iasahome.org

(17)

Background references

on software engineering:

Bruegge & Dutoit, OO Sw Engineering, Pearson, 3ed., 2010 Pressman, Software Engineering, 8 edition, 2015

on modeling software:

Arlow & Neustadt, UML2 and Unified Process, McGraw Hill, 2007

(18)

Questions?

Riferimenti

Documenti correlati

n [An architectural style] defines a family of systems in terms of a pattern of structural organization. More specifically, an architectural style defines a vocabulary of

n If quality attributes are in the main scope, the Architecture Tradeoff Analysis Method (ATAM) exploits scenarios as a context for the actual architecture, thus determining the

Examples include the International Standard Organization's Open Systems Interconnection Reference Model (a layered network architecture) [12], the NIST/ECMA Reference Model (a

•  Descrivere un diagramma dei casi d’uso di un sistema di biglietteria su sito Web per viaggi low cost in aereo. •  Evidenziare almeno le operazioni di i) acquisto biglietto sola

Th us, whilst the multi-level dimension is constitutive for the European legal order, the early move of the CJEU towards testing equivalence fi ts nicely into the perspective of

This was apparent from its comments on the Draft Constitution, where it sought to confine the President’s duties to chairing the European Council, and representing the Union in

Un modulo che non è una foglia in questa gerarchia non è altro che un contenitore di moduli di livello più basso (ad esempio, una classe Java è “semplicemente” un contenitore

• pre classe → pre sottoclasse , cioè la precondizione di un metodo della classe deve implicare la precondizione del metodo ridefinito nella sottoclasse;. • post sottoclasse →