SlideShare a Scribd company logo
1
Confidential
Fast and effective analysis of architecture
diagrams
May 2020
Igor Kolosov
2
Confidential
Black-box technique is not a panacea
● Test cases are challenging to design without having precise
functional specifications
● It is challenging to identify tricky inputs if the test cases are
not developed based on specifications
● It is challenging to identify all possible inputs in the limited
testing time. As a result, writing test cases may be slow and
painful
● There are chances of having unidentified paths during the
testing process
● There is a high probability of repeating tests already
performed by the developer
● The tester can never be sure of how much of the SUT has
been tested
3
Confidential
Benefits of architecture visualization for QA
● Speeds up an understanding of the system and its context
● Unifies vision of the system across team members
● Represents complicated things in a relatively simple way via
visual pseudo-language
● Builds neural connections in your brain
● Improves collaboration
● Helps to refine architecture
● Helps to build sufficient test coverage
● Helps to spot major system weaknesses and bottlenecks
● Helps to ask the right questions
4
Confidential
Common case: chaotic analysis algorithm
Presentation stage
● Listen to presenter’s 5-minute mumbling about diagram
● Catch yourself on thought like “Whatever, I’ll take a look at attachment”
● Secretly keep an eye on your messenger or YouTube
● Yawn
● Mimic serious face
Independent analysis
● Open diagram attachment in a couple of days
● Zoom
● Look here
● And there
● Read some label
● Stare at the monitor a little bit
● Unzoom
● Repeat several times chaotically
● Memorize 10%
5
Confidential
What’s wrong with chaotic analysis?
● Huge amounts of time wasted
● Low efficiency
● Low memorization
● High forgetfulness
● System vision is unclear
● Unstructured (or missing) inputs for test coverage
● Completely fails on really complex diagrams
6
Confidential
Example: Amazon microservice death star
7
Confidential
Root causes
● Big gap in background knowledge
● Not enough practical experience
● No process
● Visuals are unfamiliar
● High complexity
● Lack of time
● Rushing
● Procrastination
● Fear of the unknown
● Focus issues
● No clear goal
8
Confidential
From chaos to process: finding approach
● Top-down information processing
We form our perceptions starting with a big object, concept,
or idea before working our way toward more detailed
information. In other words, top-down processing happens
when we work from the general to the specific—the big
picture to the tiny details.
● Bottom-up information processing
We piece together objects, concepts, or ideas to give rise to
more complex systems, thus making the original systems
sub-systems of the emergent system. In other words,
bottom-up processing happens when we work from specifics
to the big picture
9
Confidential
From chaos to process: finding approach
● Top-down information processing
We form our perceptions starting with a big object, concept,
or idea before working our way toward more detailed
information. In other words, top-down processing happens
when we work from the general to the specific—the big
picture to the tiny details.
● Bottom-up information processing
We piece together objects, concepts, or ideas to give rise to
more complex systems, thus making the original systems
sub-systems of the emergent system. In other words,
bottom-up processing happens when we work from specifics
to the big picture
10
Confidential
From chaos to process: simple top-down algorithm
1. Set your goal
2. Qualify big picture
● define diagram type
● define relative complexity
● define business domain
● define the purpose of the system
3. Define architecture style
4. Define key system layers
5. Define interaction points
● define interaction points for end users
● define public access points for 3rd-party
6. Define technical stack
7. Define component groups
8. Define key components and their role
9. Define key data types
10. Follow critical paths
11. Define sizes and amounts
12. Assess extensibility and scalability
13. Define open questions
11
Confidential
Useful basic inputs for system understanding
● Identify your end-user audience (typical user profile, user
roles, user groups etc.)
● Collect info about your business domain specifics
● Ask about integration with 3rd-party systems
● Identify key use cases for the system
● Ask about existence of NFRs such as scalability, stability,
performance etc.
● Check existence of SLAs
● Try to understand which security measures system will
incorporate
● Ask about domain regulations, protocols and standards
● Think about unusual tools or emulators. Do you need
something custom to test this properly?
12
Confidential
Tips for optimization: let’s speed-up!
● Get familiar with different diagram types
● Get familiar with various architecture styles
● Keep an eye on up-to-date notations & icon sets
● Try to build a couple of diagrams on your own
● Write down notes during the analysis
● Write down your questions
● Follow the same process
● Practice the analysis
● Use your imagination for solid brain connections
● Try to understand your business domain specifics
13
Confidential
Useful links
● UML tutorials
https://www.uml.org/resource-hub.htm
https://www.tutorialspoint.com/uml/index.htm
● Lots of user-friendly info about architecture and system
design
https://github.com/donnemartin/system-design-primer
● Azure Architecture Center
https://docs.microsoft.com/en-us/azure/architecture/
● AWS Architecture Center
https://aws.amazon.com/architecture
● Google Cloud solutions
https://cloud.google.com/solutions
14
Confidential
Example: E-commerce website running in a secured App
Service Environment
15
Confidential
Example: data flow
1. Customer accesses the public website in browser.
2. Browser pulls static resources and product images from Azure Content Delivery Network.
3. Content Delivery Network pulls product images from blob storage.
4. Customer searches for products.
5. Public website pulls product catalog from product database.
6. Page output is cached in the Azure Cache for Redis.
7. Customer creates new orders.
8. Public website invokes orders web service.
9. Orders web service saves/loads orders from Azure SQL Database.
10. Employee accesses the admin website in browser.
11. Employee authenticates against Azure Active Directory (Azure AD).
12. Employee searches orders.
13. Admin website invokes orders web service.
16
Confidential
Example: components
1. App Service: Quickly create powerful cloud apps for web and mobile
2. Web Apps: An App Service Web App runs in a single region, accessible to web and mobile browsers
3. Azure SQL Database: Managed, intelligent SQL in the cloud
4. API Apps: Publish APIs to external, partner, and employee developers securely and at scale.
5. Application Insights: Detect, triage, and diagnose issues in your web apps and services
6. Application Gateway: Build secure, scalable, and highly available web front ends in Azure
7. Azure Cache for Redis: Power applications with high-throughput, low-latency data access
8. Content Delivery Network: Ensure secure, reliable content delivery with broad global reach
9. Azure Active Directory: Synchronize on-premises directories and enable single sign-on
10. Blob Storage: Azure Blob storage is a Massively scalable object storage for any type of unstructured
data—images, videos, audio, documents, and more—easily and cost-effectively.
17
Confidential
How to memorize effectively?
● Imagination is a powerful tool
● Mnemonic techniques are not something mythical
● Mnemonic techniques are working for complex IT stuff like
design patterns or system architecture too
● If you are skeptical, try it at least once then decide
● Not each method will work for you. Find the most effective for
you personally
● Useful articles
https://artofmemory.com/wiki/Main_Page
18
Confidential
Short video about Memory Palace technique
19
Confidential
19
Q&A
20
Confidential
20
STAY SAFE
STAY HEALTHY
STAY POSITIVE!

More Related Content

Similar to Fast and effective analysis of architecture diagrams

Architecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedArchitecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons Learned
João Pedro Martins
 
Rapid app building with loopback framework
Rapid app building with loopback frameworkRapid app building with loopback framework
Rapid app building with loopback framework
Thomas Papaspiros
 
Network Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspectiveNetwork Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspective
Walid Shaari
 
AJAY Profile
AJAY ProfileAJAY Profile
AJAY ProfileAjay V
 
ML_Internship Presentation_Infidata_2021.pptx
ML_Internship Presentation_Infidata_2021.pptxML_Internship Presentation_Infidata_2021.pptx
ML_Internship Presentation_Infidata_2021.pptx
AltafSMT
 
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
Liming Zhu
 
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
Roberto Pérez Alcolea
 
Strangle The Monolith: A Data Driven Approach
Strangle The Monolith: A Data Driven ApproachStrangle The Monolith: A Data Driven Approach
Strangle The Monolith: A Data Driven Approach
VMware Tanzu
 
hari_duche_updated
hari_duche_updatedhari_duche_updated
hari_duche_updatedHari Duche
 
Accelerating workloads and bursting data with Google Dataproc & Alluxio
Accelerating workloads and bursting data with Google Dataproc & AlluxioAccelerating workloads and bursting data with Google Dataproc & Alluxio
Accelerating workloads and bursting data with Google Dataproc & Alluxio
Alluxio, Inc.
 
Workshop: Delivering chnages for applications and databases
Workshop: Delivering chnages for applications and databasesWorkshop: Delivering chnages for applications and databases
Workshop: Delivering chnages for applications and databases
Eduardo Piairo
 
MySql_PlSQL_7yrs_CV
MySql_PlSQL_7yrs_CVMySql_PlSQL_7yrs_CV
MySql_PlSQL_7yrs_CVsathisha D R
 
A Primer for Your Next Data Science Proof of Concept on the Cloud
A Primer for Your Next Data Science Proof of Concept on the CloudA Primer for Your Next Data Science Proof of Concept on the Cloud
A Primer for Your Next Data Science Proof of Concept on the Cloud
Alton Alexander
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory Teams
ICS
 
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
StormForge .io
 
Machine Learning Infrastructure
Machine Learning InfrastructureMachine Learning Infrastructure
Machine Learning Infrastructure
SigOpt
 
CISSP Week 13
CISSP Week 13CISSP Week 13
CISSP Week 13jemtallon
 

Similar to Fast and effective analysis of architecture diagrams (20)

Architecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedArchitecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons Learned
 
Rapid app building with loopback framework
Rapid app building with loopback frameworkRapid app building with loopback framework
Rapid app building with loopback framework
 
resume4
resume4resume4
resume4
 
Network Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspectiveNetwork Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspective
 
AJAY Profile
AJAY ProfileAJAY Profile
AJAY Profile
 
ML_Internship Presentation_Infidata_2021.pptx
ML_Internship Presentation_Infidata_2021.pptxML_Internship Presentation_Infidata_2021.pptx
ML_Internship Presentation_Infidata_2021.pptx
 
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
 
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
 
Strangle The Monolith: A Data Driven Approach
Strangle The Monolith: A Data Driven ApproachStrangle The Monolith: A Data Driven Approach
Strangle The Monolith: A Data Driven Approach
 
hari_duche_updated
hari_duche_updatedhari_duche_updated
hari_duche_updated
 
Accelerating workloads and bursting data with Google Dataproc & Alluxio
Accelerating workloads and bursting data with Google Dataproc & AlluxioAccelerating workloads and bursting data with Google Dataproc & Alluxio
Accelerating workloads and bursting data with Google Dataproc & Alluxio
 
Workshop: Delivering chnages for applications and databases
Workshop: Delivering chnages for applications and databasesWorkshop: Delivering chnages for applications and databases
Workshop: Delivering chnages for applications and databases
 
MySql_PlSQL_7yrs_CV
MySql_PlSQL_7yrs_CVMySql_PlSQL_7yrs_CV
MySql_PlSQL_7yrs_CV
 
A Primer for Your Next Data Science Proof of Concept on the Cloud
A Primer for Your Next Data Science Proof of Concept on the CloudA Primer for Your Next Data Science Proof of Concept on the Cloud
A Primer for Your Next Data Science Proof of Concept on the Cloud
 
Fathima Resume
Fathima ResumeFathima Resume
Fathima Resume
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory Teams
 
Resume_shai.docx
Resume_shai.docxResume_shai.docx
Resume_shai.docx
 
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
 
Machine Learning Infrastructure
Machine Learning InfrastructureMachine Learning Infrastructure
Machine Learning Infrastructure
 
CISSP Week 13
CISSP Week 13CISSP Week 13
CISSP Week 13
 

More from GlobalLogic Ukraine

GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Ukraine
 
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic Ukraine
 
Штучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptxШтучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptx
GlobalLogic Ukraine
 
Задачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptxЗадачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptx
GlobalLogic Ukraine
 
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptxЩо треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
GlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Ukraine
 
JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"
GlobalLogic Ukraine
 
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic Ukraine
 
Страх і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic EducationСтрах і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic Education
GlobalLogic Ukraine
 
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic Ukraine
 
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic Ukraine
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?
GlobalLogic Ukraine
 
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Ukraine
 
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Ukraine
 
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic Ukraine
 
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
GlobalLogic Ukraine
 
GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Ukraine
 
C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"
GlobalLogic Ukraine
 
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Ukraine
 

More from GlobalLogic Ukraine (20)

GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
 
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
 
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
 
Штучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptxШтучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptx
 
Задачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptxЗадачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptx
 
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptxЩо треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
 
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
 
JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"
 
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
 
Страх і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic EducationСтрах і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic Education
 
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
 
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?
 
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
 
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
 
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
 
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
 
GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"
 
C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"
 
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
 

Recently uploaded

Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
TeeVichai
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
AmarGB2
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
Massimo Talia
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
Osamah Alsalih
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
WENKENLI1
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
SupreethSP4
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
bakpo1
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
Kerry Sado
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
gerogepatton
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
gdsczhcet
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
AafreenAbuthahir2
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
AJAYKUMARPUND1
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
Jayaprasanna4
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
ydteq
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Dr.Costas Sachpazis
 

Recently uploaded (20)

Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 

Fast and effective analysis of architecture diagrams

  • 1. 1 Confidential Fast and effective analysis of architecture diagrams May 2020 Igor Kolosov
  • 2. 2 Confidential Black-box technique is not a panacea ● Test cases are challenging to design without having precise functional specifications ● It is challenging to identify tricky inputs if the test cases are not developed based on specifications ● It is challenging to identify all possible inputs in the limited testing time. As a result, writing test cases may be slow and painful ● There are chances of having unidentified paths during the testing process ● There is a high probability of repeating tests already performed by the developer ● The tester can never be sure of how much of the SUT has been tested
  • 3. 3 Confidential Benefits of architecture visualization for QA ● Speeds up an understanding of the system and its context ● Unifies vision of the system across team members ● Represents complicated things in a relatively simple way via visual pseudo-language ● Builds neural connections in your brain ● Improves collaboration ● Helps to refine architecture ● Helps to build sufficient test coverage ● Helps to spot major system weaknesses and bottlenecks ● Helps to ask the right questions
  • 4. 4 Confidential Common case: chaotic analysis algorithm Presentation stage ● Listen to presenter’s 5-minute mumbling about diagram ● Catch yourself on thought like “Whatever, I’ll take a look at attachment” ● Secretly keep an eye on your messenger or YouTube ● Yawn ● Mimic serious face Independent analysis ● Open diagram attachment in a couple of days ● Zoom ● Look here ● And there ● Read some label ● Stare at the monitor a little bit ● Unzoom ● Repeat several times chaotically ● Memorize 10%
  • 5. 5 Confidential What’s wrong with chaotic analysis? ● Huge amounts of time wasted ● Low efficiency ● Low memorization ● High forgetfulness ● System vision is unclear ● Unstructured (or missing) inputs for test coverage ● Completely fails on really complex diagrams
  • 7. 7 Confidential Root causes ● Big gap in background knowledge ● Not enough practical experience ● No process ● Visuals are unfamiliar ● High complexity ● Lack of time ● Rushing ● Procrastination ● Fear of the unknown ● Focus issues ● No clear goal
  • 8. 8 Confidential From chaos to process: finding approach ● Top-down information processing We form our perceptions starting with a big object, concept, or idea before working our way toward more detailed information. In other words, top-down processing happens when we work from the general to the specific—the big picture to the tiny details. ● Bottom-up information processing We piece together objects, concepts, or ideas to give rise to more complex systems, thus making the original systems sub-systems of the emergent system. In other words, bottom-up processing happens when we work from specifics to the big picture
  • 9. 9 Confidential From chaos to process: finding approach ● Top-down information processing We form our perceptions starting with a big object, concept, or idea before working our way toward more detailed information. In other words, top-down processing happens when we work from the general to the specific—the big picture to the tiny details. ● Bottom-up information processing We piece together objects, concepts, or ideas to give rise to more complex systems, thus making the original systems sub-systems of the emergent system. In other words, bottom-up processing happens when we work from specifics to the big picture
  • 10. 10 Confidential From chaos to process: simple top-down algorithm 1. Set your goal 2. Qualify big picture ● define diagram type ● define relative complexity ● define business domain ● define the purpose of the system 3. Define architecture style 4. Define key system layers 5. Define interaction points ● define interaction points for end users ● define public access points for 3rd-party 6. Define technical stack 7. Define component groups 8. Define key components and their role 9. Define key data types 10. Follow critical paths 11. Define sizes and amounts 12. Assess extensibility and scalability 13. Define open questions
  • 11. 11 Confidential Useful basic inputs for system understanding ● Identify your end-user audience (typical user profile, user roles, user groups etc.) ● Collect info about your business domain specifics ● Ask about integration with 3rd-party systems ● Identify key use cases for the system ● Ask about existence of NFRs such as scalability, stability, performance etc. ● Check existence of SLAs ● Try to understand which security measures system will incorporate ● Ask about domain regulations, protocols and standards ● Think about unusual tools or emulators. Do you need something custom to test this properly?
  • 12. 12 Confidential Tips for optimization: let’s speed-up! ● Get familiar with different diagram types ● Get familiar with various architecture styles ● Keep an eye on up-to-date notations & icon sets ● Try to build a couple of diagrams on your own ● Write down notes during the analysis ● Write down your questions ● Follow the same process ● Practice the analysis ● Use your imagination for solid brain connections ● Try to understand your business domain specifics
  • 13. 13 Confidential Useful links ● UML tutorials https://www.uml.org/resource-hub.htm https://www.tutorialspoint.com/uml/index.htm ● Lots of user-friendly info about architecture and system design https://github.com/donnemartin/system-design-primer ● Azure Architecture Center https://docs.microsoft.com/en-us/azure/architecture/ ● AWS Architecture Center https://aws.amazon.com/architecture ● Google Cloud solutions https://cloud.google.com/solutions
  • 14. 14 Confidential Example: E-commerce website running in a secured App Service Environment
  • 15. 15 Confidential Example: data flow 1. Customer accesses the public website in browser. 2. Browser pulls static resources and product images from Azure Content Delivery Network. 3. Content Delivery Network pulls product images from blob storage. 4. Customer searches for products. 5. Public website pulls product catalog from product database. 6. Page output is cached in the Azure Cache for Redis. 7. Customer creates new orders. 8. Public website invokes orders web service. 9. Orders web service saves/loads orders from Azure SQL Database. 10. Employee accesses the admin website in browser. 11. Employee authenticates against Azure Active Directory (Azure AD). 12. Employee searches orders. 13. Admin website invokes orders web service.
  • 16. 16 Confidential Example: components 1. App Service: Quickly create powerful cloud apps for web and mobile 2. Web Apps: An App Service Web App runs in a single region, accessible to web and mobile browsers 3. Azure SQL Database: Managed, intelligent SQL in the cloud 4. API Apps: Publish APIs to external, partner, and employee developers securely and at scale. 5. Application Insights: Detect, triage, and diagnose issues in your web apps and services 6. Application Gateway: Build secure, scalable, and highly available web front ends in Azure 7. Azure Cache for Redis: Power applications with high-throughput, low-latency data access 8. Content Delivery Network: Ensure secure, reliable content delivery with broad global reach 9. Azure Active Directory: Synchronize on-premises directories and enable single sign-on 10. Blob Storage: Azure Blob storage is a Massively scalable object storage for any type of unstructured data—images, videos, audio, documents, and more—easily and cost-effectively.
  • 17. 17 Confidential How to memorize effectively? ● Imagination is a powerful tool ● Mnemonic techniques are not something mythical ● Mnemonic techniques are working for complex IT stuff like design patterns or system architecture too ● If you are skeptical, try it at least once then decide ● Not each method will work for you. Find the most effective for you personally ● Useful articles https://artofmemory.com/wiki/Main_Page
  • 18. 18 Confidential Short video about Memory Palace technique