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

More Related Content

PDF
Software Architecture: Introduction
PDF
Introduction to SOFTWARE ARCHITECTURE
PPTX
Architecture vs Design
PDF
Software Architecture: Design Decisions
PPTX
Software architecture and software design
PPT
Software Architecture
PPTX
Software Architecture Design for Begginers
PPTX
Software Architecture vs design
Software Architecture: Introduction
Introduction to SOFTWARE ARCHITECTURE
Architecture vs Design
Software Architecture: Design Decisions
Software architecture and software design
Software Architecture
Software Architecture Design for Begginers
Software Architecture vs design

What's hot (20)

PDF
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
PPTX
Basics of Software Architecture for .NET Developers
PDF
Software Architecture and Design Introduction
PPT
24 dssa and_product_lines
PDF
2 - Architetture Software - Software architecture
PDF
10 - Architetture Software - More architectural styles
PDF
Software Architecture by Reuse, Composition and Customization
PDF
software architecture
PPTX
Fundamentals Of Software Architecture
PPTX
A summary of software architecture guide
PPTX
The Role of the Software Architect
PPTX
unit 5 Architectural design
PDF
Principles of software architecture design
PDF
Software architecture for developers by Simon Brown
PPTX
Software Architecture Course - Part III Taxonomies - Definitions
PPTX
Layered Software Architecture
PPTX
Software Architecture
PDF
What a Good Software Architect Does
PDF
Architecture: where do you start?
PPT
5 software design
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Basics of Software Architecture for .NET Developers
Software Architecture and Design Introduction
24 dssa and_product_lines
2 - Architetture Software - Software architecture
10 - Architetture Software - More architectural styles
Software Architecture by Reuse, Composition and Customization
software architecture
Fundamentals Of Software Architecture
A summary of software architecture guide
The Role of the Software Architect
unit 5 Architectural design
Principles of software architecture design
Software architecture for developers by Simon Brown
Software Architecture Course - Part III Taxonomies - Definitions
Layered Software Architecture
Software Architecture
What a Good Software Architect Does
Architecture: where do you start?
5 software design
Ad

Viewers also liked (20)

PPTX
Software Architecture and Design - An Overview
PDF
Data Warehouse Back to Basics: Dimensional Modeling
PDF
Using cyclomatic complexity to measure code complexity
PPTX
Decision Table Based Testing
PDF
software engineering
PPTX
Mobile application architecture
PPTX
Requirements Engineering (CS 5032 2012)
PPT
Unit 8
PPT
Formal Specification in Software Engineering SE9
PDF
Mobile Application Architecture Strategy
PPT
Cocomo
PDF
Software Engineering - chp5- software architecture
PPTX
Functional point analysis
PPT
Software Testing Techniques
PDF
Practices of Good Software Architects
PDF
Structured Analysis and Structured Design
PPTX
Software Development Process
PPT
Software quality
PPT
Software Testing
Software Architecture and Design - An Overview
Data Warehouse Back to Basics: Dimensional Modeling
Using cyclomatic complexity to measure code complexity
Decision Table Based Testing
software engineering
Mobile application architecture
Requirements Engineering (CS 5032 2012)
Unit 8
Formal Specification in Software Engineering SE9
Mobile Application Architecture Strategy
Cocomo
Software Engineering - chp5- software architecture
Functional point analysis
Software Testing Techniques
Practices of Good Software Architects
Structured Analysis and Structured Design
Software Development Process
Software quality
Software Testing
Ad

Similar to Software Architecture: introduction to the abstraction (20)

PDF
Software Architecture: Introduction to the Abstraction
PPTX
Software Architecture: Introduction to the abstraction (May 2014_Split)
PPTX
Software architecture introduction to the abstraction gssi_nov2013
PPTX
L06 The Architecting Process
PPTX
Software Architecture Views and Viewpoints
DOC
Prasad_CTP
PPTX
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
PPTX
Tool-Driven Technology Transfer in Software Engineering
PPT
02 architectures in_context
PDF
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
PDF
[2015/2016] Software systems engineering PRINCIPLES
PPTX
PhD defense: David Ameller
PPT
Cs 1023 lec 3 architecture (week 1)
PPT
Cs 1023 lec 3 architecture (week 1)
PPT
Chapter1
PPTX
Chapter 1,2,3 Module I -Foundations for SD.pptx
PPT
Technical Architecture
DOCX
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
PPT
Brian muirhead v1-27-12
PDF
TMPA-2017: Stemming Architectural Decay in Software Systems
Software Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the abstraction (May 2014_Split)
Software architecture introduction to the abstraction gssi_nov2013
L06 The Architecting Process
Software Architecture Views and Viewpoints
Prasad_CTP
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
Tool-Driven Technology Transfer in Software Engineering
02 architectures in_context
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
[2015/2016] Software systems engineering PRINCIPLES
PhD defense: David Ameller
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
Chapter1
Chapter 1,2,3 Module I -Foundations for SD.pptx
Technical Architecture
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
Brian muirhead v1-27-12
TMPA-2017: Stemming Architectural Decay in Software Systems

More from Henry Muccini (20)

PPTX
Human Behaviour Centred Design
PDF
How cultural heritage, cyber-physical spaces, and software engineering can wo...
PDF
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
PDF
Turismo 4.0: l'ICT a supporto del turismo sostenibile
PDF
Sustainable Tourism - IoT and crowd management
PDF
Software Engineering at the age of the Internet of Things
PDF
The influence of Group Decision Making on Architecture Design Decisions
PDF
An IoT Software Architecture for an Evacuable Building Architecture
PDF
Web Engineering L8: User-centered Design (8/8)
PDF
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
PDF
Web Engineering L6: Software Architecture for the Web (6/8)
PDF
Web Engineering L5: Content Model (5/8)
PDF
Web Engineering L3: Project Planning (3/8)
PDF
Web Engineering L2: Requirements Elicitation for the Web (2/8)
PDF
Web Engineering L1: introduction to Web Engineering (1/8)
PDF
Web Engineering L4: Requirements and Planning in concrete (4/8)
PDF
Collaborative aspects of Decision Making and its impact on Sustainability
PDF
Engineering Cyber Physical Spaces
PDF
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
PDF
Exploring the Temporal Aspects of Software Architecture
Human Behaviour Centred Design
How cultural heritage, cyber-physical spaces, and software engineering can wo...
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
Turismo 4.0: l'ICT a supporto del turismo sostenibile
Sustainable Tourism - IoT and crowd management
Software Engineering at the age of the Internet of Things
The influence of Group Decision Making on Architecture Design Decisions
An IoT Software Architecture for an Evacuable Building Architecture
Web Engineering L8: User-centered Design (8/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L5: Content Model (5/8)
Web Engineering L3: Project Planning (3/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)
Collaborative aspects of Decision Making and its impact on Sustainability
Engineering Cyber Physical Spaces
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
Exploring the Temporal Aspects of Software Architecture

Recently uploaded (20)

PDF
V02-Session-4-Leadership-Through-Assessment-MLB.pdf
PDF
Developing speaking skill_learning_mater.pdf
DOCX
HELMET DETECTION AND BIOMETRIC BASED VEHICLESECURITY USING MACHINE LEARNING.docx
PDF
BA-1ST(Education)-Education and Society.pdf
PPTX
Power of Gratitude: Honouring our teachers
PDF
HSE and their team are going through the hazards of the issues with learning ...
PDF
GSA-Past-Papers-2010-2024-2.pdf CSS examination
PDF
BA-1ST(Education)-Education and Society.pdf
PDF
3-Elementary-Education-Prototype-Syllabi-Compendium.pdf
PDF
NGÂN HÀNG CÂU HỎI TÁCH CHỌN LỌC THEO CHUYÊN ĐỀ TỪ ĐỀ THI THỬ TN THPT 2025 TIẾ...
PDF
Design and Evaluation of a Inonotus obliquus-AgNP-Maltodextrin Delivery Syste...
PDF
Unleashing the Potential of the Cultural and creative industries
PDF
WHAT NURSES SAY_ COMMUNICATION BEHAVIORS ASSOCIATED WITH THE COMP.pdf
PDF
IDA Textbook Grade 10 .pdf download link if 1st link isn't working so hard to...
PPTX
macro complete discussion with given activities
PDF
BÀI GIẢNG POWER POINT TIẾNG ANH 6 - I LEARN SMART WORLD - CẢ NĂM - NĂM 2025 (...
PPTX
ENGlishGrade8_Quarter2_WEEK1_LESSON1.pptx
PDF
Jana-Ojana Finals 2025 - School Quiz by Pragya - UEMK Quiz Club
PPTX
Environmental Sciences and Sustainability Chapter 2
V02-Session-4-Leadership-Through-Assessment-MLB.pdf
Developing speaking skill_learning_mater.pdf
HELMET DETECTION AND BIOMETRIC BASED VEHICLESECURITY USING MACHINE LEARNING.docx
BA-1ST(Education)-Education and Society.pdf
Power of Gratitude: Honouring our teachers
HSE and their team are going through the hazards of the issues with learning ...
GSA-Past-Papers-2010-2024-2.pdf CSS examination
BA-1ST(Education)-Education and Society.pdf
3-Elementary-Education-Prototype-Syllabi-Compendium.pdf
NGÂN HÀNG CÂU HỎI TÁCH CHỌN LỌC THEO CHUYÊN ĐỀ TỪ ĐỀ THI THỬ TN THPT 2025 TIẾ...
Design and Evaluation of a Inonotus obliquus-AgNP-Maltodextrin Delivery Syste...
Unleashing the Potential of the Cultural and creative industries
WHAT NURSES SAY_ COMMUNICATION BEHAVIORS ASSOCIATED WITH THE COMP.pdf
IDA Textbook Grade 10 .pdf download link if 1st link isn't working so hard to...
macro complete discussion with given activities
BÀI GIẢNG POWER POINT TIẾNG ANH 6 - I LEARN SMART WORLD - CẢ NĂM - NĂM 2025 (...
ENGlishGrade8_Quarter2_WEEK1_LESSON1.pptx
Jana-Ojana Finals 2025 - School Quiz by Pragya - UEMK Quiz Club
Environmental Sciences and Sustainability Chapter 2

Software Architecture: introduction to the abstraction

  • 1. Software Architecture: Introduction to 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 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
  • 4. 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
  • 5. 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
  • 6. Software Engineering SEA Group Software System Engineered Software System
  • 7. Process: Architecture as an artefact SEA Group Requirements Drives Software Architecture Implementation Low Level Design
  • 8. 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
  • 10. 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
  • 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 us reason about the Gaudi’s Sagrada Familia SEA Group
  • 13. 13 The power of abstraction… SEA Group
  • 14. 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
  • 15. Development Environment SEA Group 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 Architectural constraints 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 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
  • 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 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
  • 24. But, which is the right abstraction!?! 24 SEA Group
  • 25. the right abstraction… 25 SEA Group
  • 26. At which abstraction? Implications on privacy, confidentiality, performance, SEA Group scalability, maintainability, etc.
  • 27. 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.”
  • 28. and, which is the 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 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
  • 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/IEEE 42010 - 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 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)
  • 36. 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
  • 37. SEA Group The Classical Style The Californian Style
  • 38. 38 but... why to 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 architecture can 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