Software Architecture: Introduction to the abstraction 
Henry Muccini 
henry.muccini@univaq.it, @muccinihenry, henrymuccini.com 
DISIM 
Dep.nt of Information Engineering, Computer Science and Mathematics 
University of L’Aquila, Italy
2 
SEA Group 
W 
E 
L 
C 
O 
M 
E
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. 
SEA Group 
Henry Muccini
Software Architecture in Practice (3rd Edition) (SEI Series 
in Software Engineering) Hardcover – October 5, 2012, 
by Len Bass , Paul Clements, Rick Kazman 
SEA Group 
 Chapters: 1, 2, 3, 4, 15, 17, 19, 25, 26 
LinkedIn groups on Software Architecture 
 SATURN 
https://www.linkedin.com/groups?home=&gid=153925 
 Software Engineering Productivity – Software Architecture 
https://www.linkedin.com/groups?home=&gid=2967358 
 97 Things Every Software Architect Should Know 
https://www.linkedin.com/groups?mostRecent=&gid=183565 
7&trk=my_groups-tile-flipgrp 
4
Research interests 
on developing methods and tools for the 
analysis and design of software architectures 
SEA Group 
→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
Software Engineering 
SEA Group 
Software System Engineered Software System
Process: Architecture as an artefact 
SEA Group 
Requirements 
Drives 
Software 
Architecture 
Implementation 
Low Level Design
Process: Architecture towards the process 
SEA Group 
• The architecture includes a collection of views 
Models 
• The architecture is NOT a single fase in the software 
development process 
Views 
Use Case 
Model 
Design 
Model 
Depl. 
Model 
Impl. 
Model 
Test 
Model 
Analysis 
Model
SEA Group
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 interfaces 
A set of architecture design decisions 
Focus on set of views and viewpoints 
Written according to architectural styles 
SEA Group
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 
–” 
SEA Group
12 
Let us reason about the 
Gaudi’s Sagrada Familia 
SEA Group
13 
The power of abstraction… 
SEA Group
SEA Group 
TELECOM ITALIA NETWORK ARCHITECTURE 
ADM 
STM-4/16 
ADM 
STM-1/4 
ADM ADM 
ADM 
SXC 
4/1 
ADM 
ADM 
ADM 
ADM 
ADM 
ADM 
ADM 
ADM ADM 
ADM 
Urban Level 
SXA 
STM-1/4 
ADM 
STM-4/16 
ADM 
Regional level 
SXA 
ADM 
ADM 
ADM ADM 
STM-1/4 
ADM 
SXA 
WDM 
STM-4/16 
ADM 
WL 
STM-16 Ring 
National Level 
ADM 
ADM 
ADM 
WL 
ADM 
ADM 
ADM 
ADM 
ADM 
ADM 
ADM 
ADM 
ADM 
STM-16 Ring
Development 
Environment 
SEA Group 
Plugin 
Java 
Development 
Tools 
SWT 
JFace 
Core 
Workspace 
Workbench 
Runtime 
User Interface
SEA Group 
standard 
standard 
standard 
standard 
standard 
p 
r 
o 
c 
e 
s 
s 
laws
Privacy e confidentiality 
Autenticity 
Need of Standards 
Shared Process Management 
Scalability 
Docs digitalization 
SEA Group
SEA Group 
Architectural constraints 
and requirements 
Ideas 
Constraints 
Req1:.. 
Req2:.. 
Req3:.. 
……… 
Architectural 
requirements 
C2 
C3 
C1 
C4 
Software 
Architecture 
Software 
Architecture 
synthesis 
Evaluation and 
Decisions making
But which Architecture? 
Implications on privacy, confidentiality, performance, 
SEA Group 
scalability, maintainability, etc.
But which Architecture? 
Implications on privacy, confidentiality, performance, 
SEA Group 
scalability, maintainability, etc.
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 interfaces 
A set of architecture design decisions 
Focus on set of views and viewpoints 
Written according to architectural styles
Architecture Design Decisions 
Decisions about: 
SEA Group 
Selected components/interfaces/connectors 
Distribution/Configuration of 
components/connectors 
Expected behavior 
SA Styles, Patterns and Tactics 
HW/SW/Deployment and other views 
Components’ Nesting and sub-systems 
NF attributes
23 
Architecture as a set of design decisions 
A set of architecture design decisions taken to generate 
SEA Group 
the architecture artifact 
Design 
problem 
sub-problem 
(or issue) 
sub-problem 
(or issue) 
Design 
option 
Design 
option 
Design 
option 
Design 
option 
Problem space 
Solution 
space 
Alternative 
solutions 
Alternative 
solutions 
Decision = 
best option 
Decision = 
best option 
Best, with respect 
to some criterion 
Jansen, 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!?! 
24 
SEA Group
the right abstraction… 
25 
SEA Group
At which abstraction? 
Implications on privacy, confidentiality, performance, 
SEA Group 
scalability, maintainability, etc.
SEA Group ISO/IEC/IEEE 42010 - International Standard for Systems and Software Engineering – Architectural 
Description, 2011 
“The practices of recording 
software, system and 
enterprise architectures so 
that architectures can be 
understood, documented, 
analysed and realized.”
and, which is the right architecture!?! 
28 
SEA Group
the right architecture… 
29 
The one that satisfies at best the 
requirements and constraints 
The “less” risky one 
SEA Group 
Architectural constraints 
and requirements 
Ideas 
Constraints 
Req1:.. 
Req2:.. 
Req3:.. 
……… 
Architectural 
requirements 
C2 
C3 
C1 
C4 
Software 
Architecture 
Software 
Architecture 
synthesis 
Evaluation and 
Decisions making
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 interfaces 
A set of architecture design decisions 
Focus on set of views and viewpoints 
Written according to architectural styles
SEA Group
Architectural Views 
32 
User1 
SEA Group 
AlarmUR AlarmRS (c) 
Router Server 
Timer 
Check1 
Nofunc 
Clock 
AckSR (c) 
AckRU1 
User2 
AlarmUR1 
AlarmUR2 
Check2 
Check 
AckRU2 
3 
2 0 1 
4 
5
SEA Group ISO/IEC/IEEE 42010 - International Standard for Systems and Software Engineering – Architectural 
Description, 2011
SEA Group 
Logical 
View 
Object 
Model of 
Design 
End-user 
Functionality 
Implementation (Development) 
View 
Programmers 
Software management 
Process 
View 
Use Case 
View 
System integrators 
Performance 
Scalability 
Throughput 
Deployment View 
Conceptual Physical 
Static 
Organization of 
the Software 
Concurrency 
and 
Synchronizati 
on 
Software 
Mapping To 
Hw 
System 
engineering 
System topology 
Delivery, 
installation 
Communication 
RUP 4+1 views
Using multiple views has become standard 
practice in industry 
SEA Group 
• 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 interfaces 
A set of architecture design decisions 
Focus on set of views and viewpoints 
Written according to architectural styles
SEA Group 
The Classical Style 
The Californian Style
38 
but... why to care? 
SEA Group
Why to care? 
All the software systems have an architecture 
SEA Group 
 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 
SEA Group 
 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? 
The Best Jobs of 
2014 
“For the first time, our 
No. 1 job overall isn’t 
from the health care 
industry, it’s a tech 
job.” 
[http://goo.gl/WdxMjh] 
SEA Group
A bad architecture can imply a spaghetti code 
system 
SEA Group
Perry, 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.) 
43 
SEA Group

Software Architecture: introduction to the abstraction

  • 1.
    Software Architecture: Introductionto the abstraction Henry Muccini [email protected], @muccinihenry, henrymuccini.com DISIM Dep.nt of Information Engineering, Computer Science and Mathematics University of L’Aquila, Italy
  • 2.
    2 SEA Group W E L C O M E
  • 3.
    The material inthese slides may be freely reproduced and distributed, partially or totally, as far as an explicit reference or acknowledge to the authors is preserved. SEA Group Henry Muccini
  • 4.
    Software Architecture inPractice (3rd Edition) (SEI Series in Software Engineering) Hardcover – October 5, 2012, by Len Bass , Paul Clements, Rick Kazman SEA Group  Chapters: 1, 2, 3, 4, 15, 17, 19, 25, 26 LinkedIn groups on Software Architecture  SATURN https://www.linkedin.com/groups?home=&gid=153925  Software Engineering Productivity – Software Architecture https://www.linkedin.com/groups?home=&gid=2967358  97 Things Every Software Architect Should Know https://www.linkedin.com/groups?mostRecent=&gid=183565 7&trk=my_groups-tile-flipgrp 4
  • 5.
    Research interests ondeveloping methods and tools for the analysis and design of software architectures SEA Group →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
  • 6.
    Software Engineering SEAGroup Software System Engineered Software System
  • 7.
    Process: Architecture asan artefact SEA Group Requirements Drives Software Architecture Implementation Low Level Design
  • 8.
    Process: Architecture towardsthe process SEA Group • The architecture includes a collection of views Models • The architecture is NOT a single fase in the software development process Views Use Case Model Design Model Depl. Model Impl. Model Test Model Analysis Model
  • 9.
  • 10.
    The Software Architectureis the earliest model of the whole software system created along the software lifecycle  A set of components and connectors communicating through interfaces A set of architecture design decisions Focus on set of views and viewpoints Written according to architectural styles SEA Group
  • 11.
    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 –” SEA Group
  • 12.
    12 Let usreason about the Gaudi’s Sagrada Familia SEA Group
  • 13.
    13 The powerof abstraction… SEA Group
  • 14.
    SEA Group TELECOMITALIA NETWORK ARCHITECTURE ADM STM-4/16 ADM STM-1/4 ADM ADM ADM SXC 4/1 ADM ADM ADM ADM ADM ADM ADM ADM ADM ADM Urban Level SXA STM-1/4 ADM STM-4/16 ADM Regional level SXA ADM ADM ADM ADM STM-1/4 ADM SXA WDM STM-4/16 ADM WL STM-16 Ring National Level ADM ADM ADM WL ADM ADM ADM ADM ADM ADM ADM ADM ADM STM-16 Ring
  • 15.
    Development Environment SEAGroup Plugin Java Development Tools SWT JFace Core Workspace Workbench Runtime User Interface
  • 16.
    SEA Group standard standard standard standard standard p r o c e s s laws
  • 17.
    Privacy e confidentiality Autenticity Need of Standards Shared Process Management Scalability Docs digitalization SEA Group
  • 18.
    SEA Group Architecturalconstraints and requirements Ideas Constraints Req1:.. Req2:.. Req3:.. ……… Architectural requirements C2 C3 C1 C4 Software Architecture Software Architecture synthesis Evaluation and Decisions making
  • 19.
    But which Architecture? Implications on privacy, confidentiality, performance, SEA Group scalability, maintainability, etc.
  • 20.
    But which Architecture? Implications on privacy, confidentiality, performance, SEA Group scalability, maintainability, etc.
  • 21.
    The Software Architectureis the earliest model of the whole software system created along the software lifecycle  A set of components and connectors communicating through interfaces A set of architecture design decisions Focus on set of views and viewpoints Written according to architectural styles
  • 22.
    Architecture Design Decisions Decisions about: SEA Group Selected components/interfaces/connectors Distribution/Configuration of components/connectors Expected behavior SA Styles, Patterns and Tactics HW/SW/Deployment and other views Components’ Nesting and sub-systems NF attributes
  • 23.
    23 Architecture asa set of design decisions A set of architecture design decisions taken to generate SEA Group the architecture artifact Design problem sub-problem (or issue) sub-problem (or issue) Design option Design option Design option Design option Problem space Solution space Alternative solutions Alternative solutions Decision = best option Decision = best option Best, with respect to some criterion Jansen, 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
  • 24.
    But, which isthe right abstraction!?! 24 SEA Group
  • 25.
  • 26.
    At which abstraction? Implications on privacy, confidentiality, performance, SEA Group scalability, maintainability, etc.
  • 27.
    SEA Group ISO/IEC/IEEE42010 - International Standard for Systems and Software Engineering – Architectural Description, 2011 “The practices of recording software, system and enterprise architectures so that architectures can be understood, documented, analysed and realized.”
  • 28.
    and, which isthe right architecture!?! 28 SEA Group
  • 29.
    the right architecture… 29 The one that satisfies at best the requirements and constraints The “less” risky one SEA Group Architectural constraints and requirements Ideas Constraints Req1:.. Req2:.. Req3:.. ……… Architectural requirements C2 C3 C1 C4 Software Architecture Software Architecture synthesis Evaluation and Decisions making
  • 30.
    The Software Architectureis the earliest model of the whole software system created along the software lifecycle  A set of components and connectors communicating through interfaces A set of architecture design decisions Focus on set of views and viewpoints Written according to architectural styles
  • 31.
  • 32.
    Architectural Views 32 User1 SEA Group AlarmUR AlarmRS (c) Router Server Timer Check1 Nofunc Clock AckSR (c) AckRU1 User2 AlarmUR1 AlarmUR2 Check2 Check AckRU2 3 2 0 1 4 5
  • 33.
    SEA Group ISO/IEC/IEEE42010 - International Standard for Systems and Software Engineering – Architectural Description, 2011
  • 34.
    SEA Group Logical View Object Model of Design End-user Functionality Implementation (Development) View Programmers Software management Process View Use Case View System integrators Performance Scalability Throughput Deployment View Conceptual Physical Static Organization of the Software Concurrency and Synchronizati on Software Mapping To Hw System engineering System topology Delivery, installation Communication RUP 4+1 views
  • 35.
    Using multiple viewshas become standard practice in industry SEA Group • 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)
  • 36.
    The Software Architectureis the earliest model of the whole software system created along the software lifecycle  A set of components and connectors communicating through interfaces A set of architecture design decisions Focus on set of views and viewpoints Written according to architectural styles
  • 37.
    SEA Group TheClassical Style The Californian Style
  • 38.
    38 but... whyto care? SEA Group
  • 39.
    Why to care? All the software systems have an architecture SEA Group  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
  • 40.
    Why to care? A wrong architecture produces a wrong system SEA Group  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
  • 41.
    Why to care? The Best Jobs of 2014 “For the first time, our No. 1 job overall isn’t from the health care industry, it’s a tech job.” [http://goo.gl/WdxMjh] SEA Group
  • 42.
    A bad architecturecan imply a spaghetti code system SEA Group
  • 43.
    Perry, 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.) 43 SEA Group