Software architecture introduction to the abstraction gssi_nov2013

Post on 09-May-2015

1.003 views 0 download

description

This seminar lecture, provided at the Gran Sasso Science Institute, provides an overview on the role of abstraction in software architectures.

Transcript of Software architecture introduction to the abstraction gssi_nov2013

Università degli Studi dell’Aquila

1

Software Architecture: introduction to the abstraction

Henry Muccini DISIM, University of L’Aquila

henry.muccini@univaq.it, @muccinihenry, henrymuccini.com

@Gran Sasso Science Instutitue (GSSI) – Nov. 2013

2

Wel

com

e

W

E

L

C

O

M

E

Copyright Notice

The material in these slides may be freely reproduced and distributed, partially or totally, as far as an explicit reference or acknowledge to the authors is preserved.

Henry Muccini

4

Myself: Main expertise: Software Architecture

Description, verification and validation Software Architecture:

Guest member of the IFIP WG on Software Architecture Research on Architecture Description (with MDE)

SA-based Testing: special Issue on “Software Architecture For Code Testing AndAnalysis” PC co-chair of AST 2013 @ ICSE 2013 Director of the TAROT 2013 software testing school Cooperation with some partner Universities in Spaign and China

Resilience: SC chair of the SERENE workshop (http://serene.uni.lu/Workshops/) Co-founder of the ERCIM WG on Resilience

New interests: Architecting Wireless Sensor Networks Architecting Mobile-Enabled Systems

My

Back

grou

ndResearch interests

on developing methods and tools for the analysis and design of software architectures

→Architecture-driven Model-based Testing→Model-checking Architectures→Architecting Fault Tolerant Systems→Interoperable and Multi-view Software Architecture

Descriptions

Other→Global Software Engineering Education→Architecting Wireless Sensor Network→Model Driven Engineering

So far…

Software Engineering

Engineered Software SystemSoftware System

Software Architecture

Implementation

Low Level Design

Process: Architecture as an artefact

Requirements

Drives

Process: Architecture towards the process

• The architecture includes a collection of views• The architecture is NOT a single fase in the software

development process

Views

Models

Use CaseModel

DesignModel

Depl.Model

Impl.Model

TestModel

AnalysisModel

Ok, but, …What is an architecture?!!

The Software Architecture is the earliest model of the whole software system created along the software lifecycle

A set of components and connectors communicating through interfacesA set of architecture design decisionsFocus on set of views and viewpointsWritten according to architectural styles

Soft

war

e A

rchi

tect

ure

13

Let us reason about the Gaudi’s Sagrada Familia

Soft

war

e/Sy

stem

Arc

hite

ctur

e

Software Architecture definitions

Perry and Wolf, ’92 (aspects):→“Architecture is concerned with the selection of architectural elements, their interactions, and the constraints on those elements and their interactions necessary to provide a framework in which to satisfy the requirements and serve as a basis for the design.”

→Elements are divided into processing elements, data elements and connection elements

Garlan and Shaw, ’93 (elements):→ Architecture for a specific system may be captured as “a collection of computational components - or simply components - together with a description of the interactions between these components - the connectors –”

The power of abstraction…

15

STM-4/16

ADMADM

ADMADM

STM-1/4

ADMADM

ADMADM ADMADM

SXC4/1

SXC4/1

Urban Level

SXASXA

STM-1/4

ADMADM

ADMADM ADMADM

ADMADM

STM-4/16

ADMADM

ADMADM

Regional level

STM-1/4

ADMADM

ADMADM

ADMADM ADMADM

SXASXA

TELECOM ITALIA NETWORK ARCHITECTURE

WDM

STM-4/16

ADMADM

ADMADM

SXASXA

WLWL

STM-16 Ring

National Level

ADMADMADMADM

ADMADM

ADMADMADMADM

ADMADM

ADMADMADMADM

ADMADM WLWL ADMADMADMADM

ADMADM

ADMADMADMADM

ADMADM

ADMADMADMADM

ADMADM

STM-16 Ring

Exam

ple

Exam

ple:

Ecl

ipse

Arc

hite

ctur

e

Java Development

Tools

Plugin Development Environment

JFace

SWT

Workbench

WorkspaceRuntime

User Interface

Core

eGov Architecture: basics

standard

standardstandard

standard

standard

process

laws

(some of the) Requirements for e-Gov

Privacy e confidentiality

Autenticity

Need of Standards

Shared Process Management

Scalability

Docs digitalization

SA General workflow

Architectural constraints and requirements

Ideas

Constraints

Req1:..Req2:..Req3:..………

Architectural requirements

C2

C3C1

C4

Software Architecture

Software Architecture

synthesis

Evaluation and Decisions making

SA with Decentralized data SA with Centralized Data

But which Architecture?

Implications on privacy, confidentiality, performance, scalability, maintainability, etc.

SA with Centralized Data, v1

But which Architecture?

Implications on privacy, confidentiality, performance, scalability, maintainability, etc.

SA with Centralized Data, v2

The Software Architecture is the earliest model of the whole software system created along the software lifecycle

A set of components and connectors communicating through interfacesA set of architecture design decisionsFocus on set of views and viewpointsWritten according to architectural styles

Soft

war

e A

rchi

tect

ure

SA with Centralized

Data, v1

SA with Centralized

Data, v2

Architecture Design Decisions

Decisions about:

Selected components/interfaces/connectorsDistribution/Configuration of

components/connectorsExpected behavior

SA Styles, Patterns and TacticsHW/SW/Deployment and other views

Components’ Nesting and sub-systemsNF attributes

Architecture as a set of design decisions25

A set of architecture design decisions taken to generate the architecture artifact

Designproblem

sub-problem

(or issue)

sub-problem (or issue)

Designoption

Designoption

Designoption

Designoption

Problem space

Solution space

Alternativesolutions

Alternativesolutions

Decision =best option

Decision =best option

Best, with respect to some

criterionJansen, A.; Bosch, J., "Software Architecture as a Set of Architectural Design Decisions," Software Architecture, 2005. WICSA 2005. 5th Working IEEE/IFIP

Conference on , vol., no., pp.109,120, 2005. doi: 10.1109/WICSA.2005.61

But, which is the right abstraction!?!

26

the right abstraction…27

Architecture Descriptions

ISO/IEC/IEEE 42010 - International Standard for Systems and Software Engineering – Architectural Description, 2011

“The practices of recordingsoftware, system and

enterprise architectures so that architectures can be understood, documented,

analysed and realized.”

and, which is the right architecture!?!

29

the right architecture…30

Architectural constraints and requirements

Ideas

Constraints

Req1:..Req2:..Req3:..………

Architectural requirements

C2

C3C1

C4

Software Architecture

Software Architecture

synthesis

Evaluation and Decisions making

The one that satisfies at best the requirements and constraints

The “less” risky one

The Software Architecture is the earliest model of the whole software system created along the software lifecycle

A set of components and connectors communicating through interfacesA set of architecture design decisionsFocus on set of views and viewpointsWritten according to architectural styles

Soft

war

e A

rchi

tect

ure

Views and Viewpoints

33

Architectural Views Vie

ws

User1

Router Server

Timer

AlarmUR AlarmRS (c)Check1

Nofunc

Clock

AckSR (c)

AckRU1

User2

AlarmUR1

AlarmUR2

Check2

Check

AckRU2

0 12

3

4

5

ISO/IEC/IEEE 42010: 2011

ISO/IEC/IEEE 42010 - International Standard for Systems and Software Engineering – Architectural Description, 2011

Logical View

End-user

Functionality

Implementation (Development) View

Programmers Software management

Process View

PerformanceScalability

Throughput

System integrators

Deployment View

Conceptual Physical

Use Case View

Object Model of Design

Static Organization of the Software

Concurrency and Synchronization

Software Mapping To HwSystem engineering

System topology Delivery, installation

Communication

RUP 4+1 views

Multiple views

Using multiple views has become standard practice in industry

• IEEE Std 1471 (2000) -> … -> ISO/IEC/IEEE 42010 (2011) • Based on a survey we conducted with 48 practitioners

[Survey2012], and about the usage of ALs in industry 85% uses multiple views

[Survey2012] “What Industry needs from Architectural Languages: A Survey”, I. Malavolta, P. Lago, H. Muccini, P. Pelliccione, A. Tang (under review)

The Software Architecture is the earliest model of the whole software system created along the software lifecycle

A set of components and connectors communicating through interfacesA set of architecture design decisionsFocus on set of views and viewpointsWritten according to architectural styles

Soft

war

e A

rchi

tect

ure

The Classical Style

The Gothic Style

The Californian Style

but... why to care?

39

Why to care?

All the software systems have an architecture All the critical/complex systems must have it carefully and

explicitly specified

Architecture-level decisions impact the scalability, performance, testability, functioning of the produced system

Even if the code is perfectly written, a wrong architecture produces a wrong system

Why to care?

A wrong architecture produces a wrong system Electronic Voting Systems Bad architecting of FT software:

Tens of thousands of people around the large cities weren’t able to travel by train Thursday morning. No trains from and to Amsterdam and Airport Schiphol from early morning until after the morning rush hour. A failure in the back-up system was the cause. The system therefore didn’t start. And then the signals and switches could not be operated. Both primary and backup failed, hence no operations. (april 2012)

the Interim Report on Causes of the August 14th 2003 Blackout in the US and Canada clearly shows that the problem was mostly caused by badly designed fault tolerance, including various architectural issues: poor diagnostics of component failures, longer-than-estimated time for component recovery, failure to involve all necessary components in recovery, inconsistent system state after recovery, failures of alarm systems. (2003)

Denver Airport

Why to care?

“Bad” Architecting

A bad architecture can imply a spaghetti code system

Some ReferencesPerry, D. E.; Wolf, A. L. (1992). "Foundations for the study of software architecture". ACM SIGSOFT Software Engineering Notes 17 (4): 40.doi:10.1145/141874.141884.

Garlan & Shaw (1994). "An Introduction to Software Architecture". Retrieved 2012-09-13.

ISO/IEC/IEEE (2011). "ISO/IEC/IEEE 42010:2011 Systems and software engineering -- Architecture description". Retrieved 2012-09-12.

Kruchten, Philippe (1995, November). Architectural Blueprints — The “4+1” View Model of Software Architecture. IEEE Software 12 (6), pp. 42-50.

Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice, Third Edition. Addison Wesley, 2012, ISBN 0-321-81573-4 (This book, now in third edition, eloquently covers the fundamental concepts of the discipline. The theme is centered around achieving quality attributes of a system.)

44