software architecture introduction to the abstraction gssi_nov2013
DESCRIPTION
This seminar lecture, provided at the Gran Sasso Science Institute, provides an overview on the role of abstraction in software architectures.TRANSCRIPT
Università degli Studi dell’Aquila
1
Software Architecture: introduction to the abstraction
Henry Muccini DISIM, University of L’Aquila
[email protected], @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