Università degli Studi dell’Aquila
Henry Muccini
DISIM, University of L’Aquila
henry.muccini@univaq.it, @muccinihenry, www...
2
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
referen...
Researcher at the University of L’Aquila, Italy
Teaching
4
Research
Services
5
 Closest airports: Rome
Fiumicino, Rome Ciampino,
Pescara
 1 hour driving from Rome
 45 mins driving to the cost
 15 m...
Very close to…
Pescara,Teramo, Giulianova,
Alba Adriatica, Roseto,…
Campo Imperatore, Campo
Felice, Gran Sasso
SOFTWARE ARCHITECTURE: INTRODUCTION TO THE ABSTRACTION
11
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 si...
The Software Architecture is the
earliest model of the whole software
system created along the software
lifecycle
 A set ...
Software Architecture definitions
Perry and Wolf, ’92 (aspects):
→“Architecture is concerned with the selection of archite...
18
Let us reason about the
Gaudi’s Sagrada Familia
The power of abstraction…
19
STM-4/16
ADM
ADM
STM-1/4
ADM
ADM ADM
SXC
4/1
Urban Level
SXA
STM-1/4
ADM
ADM ADM
ADM
STM-4/16
ADM
ADM
Regional level
STM-1...
Java
Development
Tools
Plugin
Development
Environment
JFace
SWT
Workbench
Workspace
Runtime
User Interface
Core
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
Architectural constraints
and requirements
Ideas
Constraints
Req1:..
Req2:..
Req3:..
………
Architectural
requirements
C2
C3
...
But which Architecture?
Implications on privacy, confidentiality, performance,
scalability, maintainability, etc.
But which Architecture?
Implications on privacy, confidentiality, performance,
scalability, maintainability, etc.
The Software Architecture is the
earliest model of the whole software
system created along the software
lifecycle
 A set ...
Architecture Design Decisions
Decisions about:
Selected components/interfaces/connectors
Distribution/Configuration of
com...
Architecture as a set of design decisions
29
A set of architecture design decisions taken to generate
the architecture art...
But, which is the right abstraction!?!
30
the right abstraction…
31
At which abstraction?
Implications on privacy, confidentiality, performance,
scalability, maintainability, etc.
and, which is the right architecture!?!
34
the right architecture…
35
Architectural constraints
and requirements
Ideas
Constraints
Req1:..
Req2:..
Req3:..
………
Archit...
The Software Architecture is the
earliest model of the whole software
system created along the software
lifecycle
 A set ...
38
Architectural Views
User1
Router Server
Timer
AlarmUR AlarmRS (c)
Check1
Nofunc
Clock
AckSR (c)
AckRU1
User2
AlarmUR1
A...
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
Perform...
Using multiple views has become standard
practice in industry
• IEEE Std 1471 (2000) -> … -> ISO/IEC/IEEE 42010 (2011)
• B...
The Software Architecture is the
earliest model of the whole software
system created along the software
lifecycle
 A set ...
Prescriptive vs descriptive use of an architectural
language
“A set of design rules that identify the kinds of components
and connectors that may be used to compose a system
or subsys...
The Classical Style
The Californian Style
“A set of design rules that identify the kinds of components
and connectors that may be used to compose a system
or subsys...
Some Architectural Styles
47
Application
Presentation
Session
Transport
Network
Data Link
Physical
Application
Presentatio...
but... why to care?
48
Why to care?
All the software systems have an architecture
 All the critical/complex systems must have it carefully and
...
Why to care?
A wrong architecture produces a wrong system
 Electronic Voting Systems
 Bad architecting of FT software:
...
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 ...
A bad architecture can imply a spaghetti code
system
53
Perry, D. E.; Wolf, A. L. (1992). "Foundations for the study of software
architecture". ACM SIGSOFT Software Engineering ...
Software Architecture: Introduction to the abstraction (May 2014_Split)
Software Architecture: Introduction to the abstraction (May 2014_Split)
Upcoming SlideShare
Loading in …5
×

Software Architecture: Introduction to the abstraction (May 2014_Split)

777 views

Published on

This is an introductory presentation on Software Architecture that I made at the University of Split, in Croatia.
It shows what does it mean abstraction and why it is so important.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
777
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Software Architecture: Introduction to the abstraction (May 2014_Split)

  1. 1. Università degli Studi dell’Aquila Henry Muccini DISIM, University of L’Aquila henry.muccini@univaq.it, @muccinihenry, www.henrymuccini.com @University of SPLIT, Croatia – May 2014
  2. 2. 2 W E L C O M E
  3. 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. Henry Muccini
  4. 4. Researcher at the University of L’Aquila, Italy Teaching 4
  5. 5. Research Services 5
  6. 6.  Closest airports: Rome Fiumicino, Rome Ciampino, Pescara  1 hour driving from Rome  45 mins driving to the cost  15 minutes driving to the mountains L’Aquila: where is it?
  7. 7. Very close to… Pescara,Teramo, Giulianova, Alba Adriatica, Roseto,… Campo Imperatore, Campo Felice, Gran Sasso
  8. 8. SOFTWARE ARCHITECTURE: INTRODUCTION TO THE ABSTRACTION 11
  9. 9. Software Engineering Engineered Software SystemSoftware System
  10. 10. Software Architecture Implementation Low Level Design Process: Architecture as an artefact Requirements Drives
  11. 11. 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 Case Model Design Model Depl. Model Impl. Model Test Model Analysis Model
  12. 12. 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
  13. 13. 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 –”
  14. 14. 18 Let us reason about the Gaudi’s Sagrada Familia
  15. 15. The power of abstraction… 19
  16. 16. STM-4/16 ADM ADM STM-1/4 ADM ADM ADM SXC 4/1 Urban Level SXA STM-1/4 ADM ADM ADM ADM STM-4/16 ADM ADM Regional level STM-1/4 ADM ADM ADM ADM SXA TELECOM ITALIA NETWORK ARCHITECTURE WDM STM-4/16 ADM ADM SXA WL STM-16 Ring National Level ADM ADM ADM ADM ADM ADM ADM ADM ADM WL ADM ADM ADM ADM ADM ADM ADM ADM ADM STM-16 Ring
  17. 17. Java Development Tools Plugin Development Environment JFace SWT Workbench Workspace Runtime User Interface Core
  18. 18. standard standard standard standard standard p r o c e s s laws
  19. 19. Privacy e confidentiality Autenticity Need of Standards Shared Process Management Scalability Docs digitalization
  20. 20. Architectural constraints and requirements Ideas Constraints Req1:.. Req2:.. Req3:.. ……… Architectural requirements C2 C3 C1 C4 Software Architecture Software Architecture synthesis Evaluation and Decisions making
  21. 21. But which Architecture? Implications on privacy, confidentiality, performance, scalability, maintainability, etc.
  22. 22. But which Architecture? Implications on privacy, confidentiality, performance, scalability, maintainability, etc.
  23. 23. 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
  24. 24. Architecture Design Decisions Decisions about: 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
  25. 25. Architecture as a set of design decisions 29 A set of architecture design decisions taken to generate 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
  26. 26. But, which is the right abstraction!?! 30
  27. 27. the right abstraction… 31
  28. 28. At which abstraction? Implications on privacy, confidentiality, performance, scalability, maintainability, etc.
  29. 29. and, which is the right architecture!?! 34
  30. 30. the right architecture… 35 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 one that satisfies at best the requirements and constraints The “less” risky one
  31. 31. 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. 32. 38 Architectural Views User1 Router Server Timer AlarmUR AlarmRS (c) Check1 Nofunc Clock AckSR (c) AckRU1 User2 AlarmUR1 AlarmUR2 Check2 Check AckRU2 0 12 3 4 5
  33. 33. ISO/IEC/IEEE 42010 - International Standard for Systems and Software Engineering – Architectural Description, 2011
  34. 34. Logical View End-user Functionality Implementation (Development) View Programmers Software management Process View Performance Scalability 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
  35. 35. 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)
  36. 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. 37. Prescriptive vs descriptive use of an architectural language
  38. 38. “A set of design rules that identify the kinds of components and connectors that may be used to compose a system or subsystem, together with local or global constraints on the way the composition is done” (Shaw & Clements, 1996) A set of constraints you put on your development to elicit desirable properties from your software architecture. Topological Behavioral Communication-oriented etc. etc. IMP
  39. 39. The Classical Style The Californian Style
  40. 40. “A set of design rules that identify the kinds of components and connectors that may be used to compose a system or subsystem, together with local or global constraints on the way the composition is done” (Shaw & Clements, 1996) A set of constraints you put on your development to elicit desirable properties from your software architecture. Topological Behavioral Communication-oriented etc. etc. IMP
  41. 41. Some Architectural Styles 47 Application Presentation Session Transport Network Data Link Physical Application Presentation Session Transport Network Data Link Physical Network Data Link Physical Network Data Link Physical
  42. 42. but... why to care? 48
  43. 43. 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
  44. 44. 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
  45. 45. 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]
  46. 46. A bad architecture can imply a spaghetti code system
  47. 47. 53
  48. 48. 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.) 54

×