SlideShare a Scribd company logo
Software Architecture: Foundations, Theory, and Practice
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
Analysis of
Software Architectures
Software Architecture
Horia Constantin & original authors
Software Architecture: Foundations, Theory, and Practice
2
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
 Objective: Not needing to read that chapter of the
book unless you have a really specific question.
 Assumption: minimal participation from you
 Tip for not getting bored: ASK QUESTIONS
whenever something is unclear.
Software Architecture: Foundations, Theory, and Practice
Architectural Analysis in a Nutshell
3
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
4
Software Architecture: Foundations, Theory, and Practice
What Is Architectural Analysis?
 Architectural analysis is the activity of
discovering important system properties
using the system’s architectural models.
 Important to know
1. which questions to ask
2. why to ask them
3. how to ask them
4. how to ensure that they can be answered
5
Software Architecture: Foundations, Theory, and Practice
Take home! – summary slide
 Analysis means:
Setting a goal (what do we want to analyze?)
Defining the scope (what area are we focusing on?)
Defining the concern – not sure about this one
Establishing the formality level
(optional) Analysis type/automation?(how will the
analysis be done?)
 Don’t forget about the economical analysis of
architecture!
6
Software Architecture: Foundations, Theory, and Practice
What is the purpose of analysis?
 Early (before development), useful answers about
relevant architectural aspects
 discover components to be grabbed off the shelf.
 Just having the architecture is not enough…
7
Software Architecture: Foundations, Theory, and Practice
8
Software Architecture: Foundations, Theory, and Practice
Architectural Analysis Goals
 The four “C”s
Completeness
Consistency
Compatibility
Correctness
9
Software Architecture: Foundations, Theory, and Practice
Architectural Analysis Goals –
Completeness
 Does the architecture capture all of a system's key
functional and non-functional requirements?
 Have all elements been fully modeled in the notation?
 Have all design decisions been properly captured?
10
Client Client Client
Server
Incomplete!
Client Client
Server
Complete
Client
Server
Software Architecture: Foundations, Theory, and Practice
Architectural Analysis Goals –
Consistency
 Ensures that different model elements do not
contradict one another
 Dimensions of architectural consistency
Name
Interface
Behavior
Interaction
Refinement
11
Software Architecture: Foundations, Theory, and Practice
Consistency fun test incoming
12
Software Architecture: Foundations, Theory, and Practice
Name Consistency
 Component and connector names
 Component service names
 May be non-trivial to establish at the architectural level
Multiple system elements/services with identical
names
Loose coupling via publish-subscribe or
asynchronous event broadcast
Dynamically adaptable architectures
13
Software Architecture: Foundations, Theory, and Practice
Interface Consistency
 Encompasses name consistency
 Also involves parameter lists in component services
 A rich spectrum of choices at the architectural level
 Example: matching provided and required interfaces
ReqInt: getSubQ(Natural first, Natural last, Boolean remove)
returns FIFOQueue;
ProvInt1: getSubQ(Index first, Index last)
returns FIFOQueue;
ProvInt2: getSubQ(Natural first, Natural last, Boolean remove)
returns Queue;
14
Software Architecture: Foundations, Theory, and Practice
Behavioral Consistency
 Names and interfaces of interacting components may match, but
behaviors need not
 Example: subtraction
subtract(Integer x, Integer y) returns Integer;
Can we be sure what the subtract operation does?
15
Software Architecture: Foundations, Theory, and Practice
Interaction Consistency
16
 Names, interfaces, and behaviors of interacting
components may match, yet they may still be unable
to interact properly
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
Refinement Consistency
 Architectural models are refined during the design
process
 A relationship must be maintained between higher and
lower level models
All elements are preserved in the lower level model
All design decisions are preserved in the lower-level
model
No new design decisions violate existing design
decisions
17
Software Architecture: Foundations, Theory, and Practice
Refinement Consistency Example
18
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
Consistency test?
19
A. Dequeue function in one interface only
polls the queue and the other one also
removes the element
B. Interface present in Product Architecture
is missing in the zoomed-in module
architecture
C. Invoke an operation after a close event or
before a component has been initialized
D. Included in another type
E. Client: getSubQ(Natural first, Natural
last, Boolean remove) Server:
getSubQ(Index first, Index last)
1. Name
2. Interface
3. Behavior
4. Interaction
5. Refinement
Software Architecture: Foundations, Theory, and Practice
Architectural Analysis Goals –
Compatibility
 Ensures that the architectural model adheres to
guidelines and constraints of
a style
a reference architecture
an architectural standard
20
Software Architecture: Foundations, Theory, and Practice
Architectural Analysis Goals –
Correctness
 Ensures that
1. the architectural model fully realizes a system
specification
2. the system’s implementation fully realizes the
architecture
 Inclusion of OTS elements impacts correctness – what
proposition is not respected?
21
Software Architecture: Foundations, Theory, and Practice
Architectural Analysis Goals?
 The four “C”s – TEST
C _ _ _ _ _ _ _ _ _ _ _
C _ _ _ _ _ _ _ _ _ _
C _ _ _ _ _ _ _ _ _ _ _ _
C _ _ _ _ _ _ _ _ _ _
22
Software Architecture: Foundations, Theory, and Practice
Scope of Architectural Analysis
 Component- and connector-level
 Subsystem- and system-level
 Data exchanged in a system or subsystem
Data structure
Data flow
Properties of data exchange
 Architectures at different abstraction levels
 Comparison of two or more architectures
Processing
Data
Interaction
Configuration
Non-functional properties
23
Software Architecture: Foundations, Theory, and Practice
Data Exchange Example
24
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Open question: How would you fix this?
Software Architecture: Foundations, Theory, and Practice
Scope of Architectural Analysis
 Component- and connector-level
 Subsystem- and system-level
 Data exchanged in a system or subsystem
Data structure
Data flow
Properties of data exchange
 Architectures at different abstraction levels
 Comparison of two or more architectures
25
Software Architecture: Foundations, Theory, and Practice
Architectural Concern Being
Analyzed
 Structural characteristics
 Behavioral characteristics
 Interaction characteristics
 Non-functional characteristics
 Food for thought: does this classification add any value?
26
Software Architecture: Foundations, Theory, and Practice
Level of Formality
 Informal models
 Semi-formal models
 Formal models
27
Software Architecture: Foundations, Theory, and Practice
Informal Architectural Models
and Analysis
 Helps architects get
clarification from
system customers
 Helps managers
ensure project
scope
 Not as useful to
developers
28
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
Formal Architectural Models and
Analysis
 Helps architects
determine
component
composability
 Helps developers
with
implementation-
level decisions
 Helps with locating
and selecting
appropriate OTS
components
 Helps with
automated code
generation.
 Not as useful for
discussions with
non-technical
stakeholders
29
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Component UserInterface
Port getValues
Port calculate
Computation
Connector Call
Role Caller =
Role Callee =
Glue =
Configuration LunarLander
Instances
DS : DataStore
C : Calculation
UI : UserInterface
CtoUIgetValues, CtoUIstoreValues, UItoC, UItoDS : Call
Attachments
C.getValues as CtoUIgetValues.Caller
DS.getValues as CtoUIgetValues.Callee
C.storeValues as CtoUIstoreValues.Caller
DS.storeValues as CtoUIstoreValues.Callee
UI.calculate as UItoC.Caller
C.calulate as UItoC.Callee
UI.getValues as UItoDS.Caller
DS.getValues as UItoDS.Callee
End LunarLander.
Software Architecture: Foundations, Theory, and Practice
Type of Analysis
 Static analysis (e.g. compilers)
 Dynamic analysis (executing the model)
 Scenario-driven analysis
Can be both static and dynamic
30
Software Architecture: Foundations, Theory, and Practice
Level of Automation
 Manual
 Partially automated
 Fully automated
31
Software Architecture: Foundations, Theory, and Practice
Analysis Stakeholders – different
views
32
Stakeholder Goal Scope Formality
Architect All All All
Developer Cnst, comp C&C, subsystem Semi, formal
Manager Cmplt, corr, comp ??? Informal
Customer Cmplt, corr ??? Informal
Vendor comp C&C Semi
Abbr Name
Cnst Consistency
Comp Compatibility
Cmplt Completeness
Corr Correctness
Software Architecture: Foundations, Theory, and Practice
Project Management triangle
 Where is the economical
analysis?
 See Chapter 23 from
Software Architecture in
Practice (3rd Edition)
 Cost Benefit Analysis
Method – method with 9
activities
33
Software Architecture: Foundations, Theory, and Practice
Take home! – summary slide
 Analysis means:
Setting a goal (what do we want to analyze?)
Defining the scope (what area are we focusing on?)
Defining the concern – not sure about this one
Establishing the formality level
(optional) Analysis type/automation?(how will the
analysis be done?)
 Don’t forget about the economical analysis of
architecture!
34

More Related Content

What's hot

unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural designdevika g
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design pptfarazimlak
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principlessaurabhshertukde
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsGatte Ravindranath
 
SE_Lec 10_ Software Code of Ethics
SE_Lec 10_ Software Code of EthicsSE_Lec 10_ Software Code of Ethics
SE_Lec 10_ Software Code of EthicsAmr E. Mohamed
 
Architecture Review
Architecture ReviewArchitecture Review
Architecture ReviewHimanshu
 
Design patterns difference between interview questions
Design patterns   difference between interview questionsDesign patterns   difference between interview questions
Design patterns difference between interview questionsUmar Ali
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsdeep sharma
 
User profiles. Personas
User profiles. PersonasUser profiles. Personas
User profiles. PersonasDCU_MPIUA
 
Lecture 9 understanding requirements
Lecture 9   understanding requirementsLecture 9   understanding requirements
Lecture 9 understanding requirementsIIUI
 
Architecture Design
Architecture DesignArchitecture Design
Architecture DesignSaqib Raza
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural stylesMajong DevJfu
 

What's hot (20)

unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design Patterns
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
SE_Lec 10_ Software Code of Ethics
SE_Lec 10_ Software Code of EthicsSE_Lec 10_ Software Code of Ethics
SE_Lec 10_ Software Code of Ethics
 
Architecture Review
Architecture ReviewArchitecture Review
Architecture Review
 
Prototyping
PrototypingPrototyping
Prototyping
 
Design patterns difference between interview questions
Design patterns   difference between interview questionsDesign patterns   difference between interview questions
Design patterns difference between interview questions
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
User profiles. Personas
User profiles. PersonasUser profiles. Personas
User profiles. Personas
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Lecture 9 understanding requirements
Lecture 9   understanding requirementsLecture 9   understanding requirements
Lecture 9 understanding requirements
 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
 
Chapter 16
Chapter 16Chapter 16
Chapter 16
 
PROTOTYPE MODEL
PROTOTYPE MODELPROTOTYPE MODEL
PROTOTYPE MODEL
 
Product metrics
Product metricsProduct metrics
Product metrics
 
Software design
Software designSoftware design
Software design
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural styles
 

Similar to Analysis of software architectures

13 analysis of_software_architectures
13 analysis of_software_architectures13 analysis of_software_architectures
13 analysis of_software_architecturesMajong DevJfu
 
Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)stanbridge
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)stanbridge
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)stanbridge
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdfAkilaGamage2
 
Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)stanbridge
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)stanbridge
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.pptRohanBorgalli
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 
07 software connectors (2)
07 software connectors (2)07 software connectors (2)
07 software connectors (2)Jaya Chavan
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 
14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniquesMajong DevJfu
 
09 introduction to_modeling
09 introduction to_modeling09 introduction to_modeling
09 introduction to_modelingMajong DevJfu
 
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)Henry Muccini
 

Similar to Analysis of software architectures (20)

13 analysis of_software_architectures
13 analysis of_software_architectures13 analysis of_software_architectures
13 analysis of_software_architectures
 
Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdf
 
Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 
07 software connectors (2)
07 software connectors (2)07 software connectors (2)
07 software connectors (2)
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniques
 
09 introduction to_modeling
09 introduction to_modeling09 introduction to_modeling
09 introduction to_modeling
 
03 basic concepts
03 basic concepts03 basic concepts
03 basic concepts
 
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
 

Recently uploaded

PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesThousandEyes
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsVlad Stirbu
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»QADay
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsPaul Groth
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance
 

Recently uploaded (20)

PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 

Analysis of software architectures

  • 1. Software Architecture: Foundations, Theory, and Practice Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures Software Architecture Horia Constantin & original authors
  • 2. Software Architecture: Foundations, Theory, and Practice 2 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.  Objective: Not needing to read that chapter of the book unless you have a really specific question.  Assumption: minimal participation from you  Tip for not getting bored: ASK QUESTIONS whenever something is unclear.
  • 3. Software Architecture: Foundations, Theory, and Practice Architectural Analysis in a Nutshell 3 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 4. Software Architecture: Foundations, Theory, and Practice 4
  • 5. Software Architecture: Foundations, Theory, and Practice What Is Architectural Analysis?  Architectural analysis is the activity of discovering important system properties using the system’s architectural models.  Important to know 1. which questions to ask 2. why to ask them 3. how to ask them 4. how to ensure that they can be answered 5
  • 6. Software Architecture: Foundations, Theory, and Practice Take home! – summary slide  Analysis means: Setting a goal (what do we want to analyze?) Defining the scope (what area are we focusing on?) Defining the concern – not sure about this one Establishing the formality level (optional) Analysis type/automation?(how will the analysis be done?)  Don’t forget about the economical analysis of architecture! 6
  • 7. Software Architecture: Foundations, Theory, and Practice What is the purpose of analysis?  Early (before development), useful answers about relevant architectural aspects  discover components to be grabbed off the shelf.  Just having the architecture is not enough… 7
  • 8. Software Architecture: Foundations, Theory, and Practice 8
  • 9. Software Architecture: Foundations, Theory, and Practice Architectural Analysis Goals  The four “C”s Completeness Consistency Compatibility Correctness 9
  • 10. Software Architecture: Foundations, Theory, and Practice Architectural Analysis Goals – Completeness  Does the architecture capture all of a system's key functional and non-functional requirements?  Have all elements been fully modeled in the notation?  Have all design decisions been properly captured? 10 Client Client Client Server Incomplete! Client Client Server Complete Client Server
  • 11. Software Architecture: Foundations, Theory, and Practice Architectural Analysis Goals – Consistency  Ensures that different model elements do not contradict one another  Dimensions of architectural consistency Name Interface Behavior Interaction Refinement 11
  • 12. Software Architecture: Foundations, Theory, and Practice Consistency fun test incoming 12
  • 13. Software Architecture: Foundations, Theory, and Practice Name Consistency  Component and connector names  Component service names  May be non-trivial to establish at the architectural level Multiple system elements/services with identical names Loose coupling via publish-subscribe or asynchronous event broadcast Dynamically adaptable architectures 13
  • 14. Software Architecture: Foundations, Theory, and Practice Interface Consistency  Encompasses name consistency  Also involves parameter lists in component services  A rich spectrum of choices at the architectural level  Example: matching provided and required interfaces ReqInt: getSubQ(Natural first, Natural last, Boolean remove) returns FIFOQueue; ProvInt1: getSubQ(Index first, Index last) returns FIFOQueue; ProvInt2: getSubQ(Natural first, Natural last, Boolean remove) returns Queue; 14
  • 15. Software Architecture: Foundations, Theory, and Practice Behavioral Consistency  Names and interfaces of interacting components may match, but behaviors need not  Example: subtraction subtract(Integer x, Integer y) returns Integer; Can we be sure what the subtract operation does? 15
  • 16. Software Architecture: Foundations, Theory, and Practice Interaction Consistency 16  Names, interfaces, and behaviors of interacting components may match, yet they may still be unable to interact properly Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 17. Software Architecture: Foundations, Theory, and Practice Refinement Consistency  Architectural models are refined during the design process  A relationship must be maintained between higher and lower level models All elements are preserved in the lower level model All design decisions are preserved in the lower-level model No new design decisions violate existing design decisions 17
  • 18. Software Architecture: Foundations, Theory, and Practice Refinement Consistency Example 18 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 19. Software Architecture: Foundations, Theory, and Practice Consistency test? 19 A. Dequeue function in one interface only polls the queue and the other one also removes the element B. Interface present in Product Architecture is missing in the zoomed-in module architecture C. Invoke an operation after a close event or before a component has been initialized D. Included in another type E. Client: getSubQ(Natural first, Natural last, Boolean remove) Server: getSubQ(Index first, Index last) 1. Name 2. Interface 3. Behavior 4. Interaction 5. Refinement
  • 20. Software Architecture: Foundations, Theory, and Practice Architectural Analysis Goals – Compatibility  Ensures that the architectural model adheres to guidelines and constraints of a style a reference architecture an architectural standard 20
  • 21. Software Architecture: Foundations, Theory, and Practice Architectural Analysis Goals – Correctness  Ensures that 1. the architectural model fully realizes a system specification 2. the system’s implementation fully realizes the architecture  Inclusion of OTS elements impacts correctness – what proposition is not respected? 21
  • 22. Software Architecture: Foundations, Theory, and Practice Architectural Analysis Goals?  The four “C”s – TEST C _ _ _ _ _ _ _ _ _ _ _ C _ _ _ _ _ _ _ _ _ _ C _ _ _ _ _ _ _ _ _ _ _ _ C _ _ _ _ _ _ _ _ _ _ 22
  • 23. Software Architecture: Foundations, Theory, and Practice Scope of Architectural Analysis  Component- and connector-level  Subsystem- and system-level  Data exchanged in a system or subsystem Data structure Data flow Properties of data exchange  Architectures at different abstraction levels  Comparison of two or more architectures Processing Data Interaction Configuration Non-functional properties 23
  • 24. Software Architecture: Foundations, Theory, and Practice Data Exchange Example 24 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission. Open question: How would you fix this?
  • 25. Software Architecture: Foundations, Theory, and Practice Scope of Architectural Analysis  Component- and connector-level  Subsystem- and system-level  Data exchanged in a system or subsystem Data structure Data flow Properties of data exchange  Architectures at different abstraction levels  Comparison of two or more architectures 25
  • 26. Software Architecture: Foundations, Theory, and Practice Architectural Concern Being Analyzed  Structural characteristics  Behavioral characteristics  Interaction characteristics  Non-functional characteristics  Food for thought: does this classification add any value? 26
  • 27. Software Architecture: Foundations, Theory, and Practice Level of Formality  Informal models  Semi-formal models  Formal models 27
  • 28. Software Architecture: Foundations, Theory, and Practice Informal Architectural Models and Analysis  Helps architects get clarification from system customers  Helps managers ensure project scope  Not as useful to developers 28 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 29. Software Architecture: Foundations, Theory, and Practice Formal Architectural Models and Analysis  Helps architects determine component composability  Helps developers with implementation- level decisions  Helps with locating and selecting appropriate OTS components  Helps with automated code generation.  Not as useful for discussions with non-technical stakeholders 29 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission. Component UserInterface Port getValues Port calculate Computation Connector Call Role Caller = Role Callee = Glue = Configuration LunarLander Instances DS : DataStore C : Calculation UI : UserInterface CtoUIgetValues, CtoUIstoreValues, UItoC, UItoDS : Call Attachments C.getValues as CtoUIgetValues.Caller DS.getValues as CtoUIgetValues.Callee C.storeValues as CtoUIstoreValues.Caller DS.storeValues as CtoUIstoreValues.Callee UI.calculate as UItoC.Caller C.calulate as UItoC.Callee UI.getValues as UItoDS.Caller DS.getValues as UItoDS.Callee End LunarLander.
  • 30. Software Architecture: Foundations, Theory, and Practice Type of Analysis  Static analysis (e.g. compilers)  Dynamic analysis (executing the model)  Scenario-driven analysis Can be both static and dynamic 30
  • 31. Software Architecture: Foundations, Theory, and Practice Level of Automation  Manual  Partially automated  Fully automated 31
  • 32. Software Architecture: Foundations, Theory, and Practice Analysis Stakeholders – different views 32 Stakeholder Goal Scope Formality Architect All All All Developer Cnst, comp C&C, subsystem Semi, formal Manager Cmplt, corr, comp ??? Informal Customer Cmplt, corr ??? Informal Vendor comp C&C Semi Abbr Name Cnst Consistency Comp Compatibility Cmplt Completeness Corr Correctness
  • 33. Software Architecture: Foundations, Theory, and Practice Project Management triangle  Where is the economical analysis?  See Chapter 23 from Software Architecture in Practice (3rd Edition)  Cost Benefit Analysis Method – method with 9 activities 33
  • 34. Software Architecture: Foundations, Theory, and Practice Take home! – summary slide  Analysis means: Setting a goal (what do we want to analyze?) Defining the scope (what area are we focusing on?) Defining the concern – not sure about this one Establishing the formality level (optional) Analysis type/automation?(how will the analysis be done?)  Don’t forget about the economical analysis of architecture! 34

Editor's Notes

  1. I read the chapter twice and the whole book once.
  2. As you will listen to me going through the concepts I’m sure that you will see the analysis is not something really complex. Arthur Dent : “I think we have different value systems.” Ford Prefect : “Well mine’s better.” — Douglas Adams, Mostly Harmless
  3. 4c c&c, system level, data or arch vs arch? Analysis type – static/dynamic, use case.
  4. can help identify inappropriate or incorrect design decisions after you’ve created it, it will change and for that, you need to think about it, to analyze it and see how the new requirements fit the old arch. Analysis is usually a default action when you have an architecture.
  5. The image that I’ve always missed from the book… the real reason for which we have software architecture. Always during this presentation keep in mind that we are talking about big software products… if you are a startup you definitely don’t need a formal architecture. If you are designing lunar lander, it is definitely not
  6. There is a difference between internal and external… internal is easier and can be automated.
  7. Could happen even if no architectural design decisions are invalidated
  8. Think of a getTime function that is expected to return the current hour and minute, but actually returns the time since the system has been started.
  9. a component's provided operations are accessed in a manner that violates certain interaction constraints They happen when the the component's interaction protocol (state-transition diagrams) is not respected.
  10. Details can be lost when zooming in or out.
  11. Both high and low level elements are incomplete. And once it is a connector, and once a component. But it’s not visible in the picture.
  12.   The difficulty of this part depends on the formality by which the guidelines and constraints are specified. If formal it’s easy. This could fail for a ots product that is integrated to an existing architecture.
  13. The architecture takes into account all specifications. The implementation fully realizes the architecture and nothing more. Second proposition is not respected. System may include structural elements, functionality, and non-functional properties that are not part of the architecture
  14. Completeness Consistency Compatibility Correctness
  15. Scope – what will the analysis focus on? Comp & connector - a full analysis of the interfaces as well as its connection to the next element Subsystem- and system-level composition of components at system or subsystem level. How there components interact with each other (What sometimes happens is that you have a component with some characteristics that are good, but you integrate it with another with also good characteristics, but the 2 are incompatible and cancel each others advantages.) caching component vs real time data component Data exchanged in a system or subsystem such as typed versus untyped or discrete versus streamed point-to-point versus broadcast, and any other problems that might appear from this exchange. consistency, security, and latency.
  16. Flow of data and properties of data exchange
  17. Architectures at different abstraction levels - refinement inconsistencies. Comparison of two or more architectures – ensuring the COMPATIBILITY of a given system's architecture with a reference architecture/style/pattern encompasses all the previous scopes.
  18. A really short slide… Answers the what are we studying from the architecture question… What it does: architecture is well formed?; adherence to architectural constraints, patterns, and styles; system concurrency and distribution; connectivity, composition internal behaviours of individual components + the composite behaviour of all to make the desired system behaviour Interaction Characteristics - the numbers and types of distinct software connectors, and their values for different connector dimensions; establish whether the architecture will actually be able to fulfill some of its requirements. Non-Functional Characteristics - cut across multiple components and connectors, which makes them particularly difficult to assess.  architectural analysis techniques focusing on these characteristics are scarce.
  19. What the system's stakeholders want to be able to analyze will influence what software architects capture in their architectural models. Informal Models - boxes-and-lines diagrams support informal and manual analyses by various stakeholders, but they can be ambiguous and lack detail. Semiformal Models - most models used in practice; think of uml that is not 100% precise, but is a lot more precise that native language. Analysis can be manual or partially automated. Formal Models - formally defined syntax, formally defined semantics; automated analysis only for technical stakeholders; in practice they have scalability problems because they are hard to create.
  20. Go for the easy one... just thinking about it for a while can make problems emerge and you can fix them in the planning stage, when the cost is minimum. (native language or even visio diagrams)
  21. (semantics and syntactic rules). Remember that automated code generation still requires that templates are made by the developers.
  22. Static Analysis - inferring the properties of a software system from one or more of its models, without actually executing those models; model adheres to the syntactic rules of the modeling notation. Good for all models. Dynamic Analysis - executing or simulating the execution of a model of the software system; the system semantics should be executable. Scenario-Based Analysis - For large and complex software systems, specific-use cases are identified that represent the most important or most frequently occurring system usage scenarios, and the analysis is focused on those
  23. In general, an architectural model provided in a more formal notation will be more amenable to automated analysis than a model provided in a more informal notation Manual - requires significant human involvement, expensive; many non-functional properties, which are critical to the success of most all software systems, are understood at the level of intuition, anecdote, and informal guideline; requires a detailed process that must be followed by the system architects and other stakeholders participating in the analysis. Partially Automated - Most architecture modeling notations presented in Chapter 6 are amenable to ensuring a given architectural description's syntactic correctness, as well as different degrees of semantic correctness Fully Automated - in practice, fully automated architectural analysis techniques must be combined with other techniques, which themselves may need human intervention, in order to get more comprehensive answers.
  24. You have heard a lot about arch analysis. Listen to what you should be taking home. 4c c&c, system level, data or arch vs arch? Analysis type – static/dynamic, use case.