SlideShare a Scribd company logo
1 of 58
Tips & Tricks for documenting Software
architecture
Karthikeyan VK
Karthik_3030@yahoo.com
@karthik3030
https://blogs.karthikeyanvk.in
Enter Text
Why Document Software Architecture?
Record important decisions.
One place to understand, how different system works with each
other.
Makes your platform scalable.
Common understanding among stakeholders
https://blogs.karthikeyanvk.in
Enter Text
Good software architecture doc means?
Strong and easy to maintain even on add/change in features.
Domain concepts and boundary clearly specified.
Flexible, extensible, and usable for the long term.
Responds positively to change.
https://blogs.karthikeyanvk.in
Enter Text
Mindset to Build architecture document
Everything changes.
Address only what customer wants
Address all stakeholders
Don’t over-architect
Decision tracker
https://blogs.karthikeyanvk.in
Enter Text
Architecture documentation – Principles
Addressing Stakeholder concerns
Effective Communication (KISS)
Should be structured, Fluid in nature
Pragmatic, addresses real world & practical concerns
Flexible
Technology agnostic
https://blogs.karthikeyanvk.in
Enter Text
Principles architecture document
Integrate with Software life cycle
Aligns with Engineering practises and quality management
standards.
https://blogs.karthikeyanvk.in
Enter Text
Architecture Document
Viewpoints
Perspectives
https://blogs.karthikeyanvk.in
Enter Text
What is Architectural Concern
https://blogs.karthikeyanvk.in
A concern is a requirement, an objective, an intention for that
architecture.
Every viewpoint has its own concern
E.g.:- Development Viewpoint – Module organization Concern
E.g.:- Functional viewpoint - External interfaces
Enter Text
What is a Models
https://blogs.karthikeyanvk.in
A model is a abstract representation of some aspects of
architecture.
Helps to understand.
Medium to communicate.
Eg:- Entity-relationship model, state transition model
Enter Text
Why Viewpoints
https://blogs.karthikeyanvk.in
Architecture document is very complex because it tries to
capture everything in a single place
Such a model is hard to understand and is unlikely to clearly
identify the architecture’s most important features.
Viewpoint attack the problem from different directions
simultaneously.
Enter Text
What is a Viewpoint
https://blogs.karthikeyanvk.in
Each viewpoint address the concerns .
It defines the stakeholders whose concerns are reflected in the
viewpoint and the guidelines, principles, and template models
for constructing its views.
Enter Text
Different types of Viewpoints
https://blogs.karthikeyanvk.in
Functional
Information
Concurrency *
Development
Deployment
Operational
Enter Text
Why Viewpoints ?
https://blogs.karthikeyanvk.in
A. Representing everything in a single model is complex,
viewpoints attacks using different models and views
B. Just another way of representing the architecture, nothing
different
Enter Text
Functional Viewpoints
https://blogs.karthikeyanvk.in
Describes the relationships, dependencies, and interactions
between the system and its environment.
People, Systems, and External entities with which it interacts.
Enter Text
Functional Viewpoint - Concerns
https://blogs.karthikeyanvk.in
Functional capabilities
External interfaces
Internal structure
Functional design qualities
Enter Text
Functional Viewpoint - Concerns
https://blogs.karthikeyanvk.in
Functional design Philosphy
Separation of concerns
Cohesion/Coupling
Element Interaction
Flexibility
Overall Coherence
Enter Text
Functional Viewpoint - Models
https://blogs.karthikeyanvk.in
Functional Structure models
Functional Elements
Interfaces
Connectors
External Entities.
Enter Text
Petshop
https://blogs.karthikeyanvk.in
Enter Text
Models - Petshop
https://blogs.karthikeyanvk.in
Enter Text
Functional Viewpoint - Pitfalls
https://blogs.karthikeyanvk.in
 Poorly defined interfaces
 Poorly understood responsibilities
 Infrastructure modelled as functional elements
Overloaded view
Enter Text
Functional Viewpoint - Pitfalls
https://blogs.karthikeyanvk.in
Diagrams without element definitions
Difficulty in reconciling the needs of multiple stakeholders
 Wrong Level of detail
 ‘God’ elements
Enter Text
Information Viewpoints
https://blogs.karthikeyanvk.in
Describes the system’s functional elements, their responsibilities,
interfaces, and primary interactions
It drives the shape of other system structures such as the
information structure, concurrency structure, deployment
structure.
Basically everything you do with database or any storage.
Enter Text
Information Viewpoint - Concerns
https://blogs.karthikeyanvk.in
Structure and content
Purpose and usage / Ownership
Mappings
Storage models/Flow/Consistency/Quality
Timeliness, latency, and age.
Enter Text
Information Viewpoint - Models
https://blogs.karthikeyanvk.in
Static information structure models
Information flow models
Information lifecycle models
Enter Text
Information Viewpoint - Models
https://blogs.karthikeyanvk.in
Metadata models
Data Format
Meaning
Data Structure
Data Context
Data Quality
Enter Text
Information Viewpoint - Models
https://blogs.karthikeyanvk.in
Enter Text
Information Viewpoint - Pitfalls
https://blogs.karthikeyanvk.in
Overloaded central database
Inconsistent distributed databases
Poor information quality
Representation incompatibilities
Enter Text
Development Viewpoints
https://blogs.karthikeyanvk.in
Describes the architecture that supports the software
development process.
Development views communicate the aspects of the architecture
of interest to those stakeholders involved in building, testing,
maintaining, and enhancing the system.
Enter Text
Development Viewpoint - Concerns
https://blogs.karthikeyanvk.in
Module organization
Common processing
Standardization of design/Design patterns
Standardization of testing
Instrumentation
Codeline organization
Enter Text
Development Viewpoint - Models
https://blogs.karthikeyanvk.in
 Module structure
 Common design or Design patterns
 Codeline models or how code is organized in your Source control
Enter Text
Development Viewpoint - Models
https://blogs.karthikeyanvk.in
Enter Text
Development Models – Petshop
https://blogs.karthikeyanvk.in
Enter Text
Development Viewpoint - Pitfalls
https://blogs.karthikeyanvk.in
Too much detail
Lack of developer focus
Lack of precision
Problems with the specified environment or maturity of the
technology
Enter Text Deployment Viewpoints
https://blogs.karthikeyanvk.in
Enter Text
Deployment Viewpoints
https://blogs.karthikeyanvk.in
Describes the environment into which the system will be
deployed, including capturing the dependencies the system has
on its runtime environment.
This view captures the hardware environment that your system
needs
Enter Text
Deployment Viewpoint - Concerns
https://blogs.karthikeyanvk.in
Runtime platform required
Specification and quantity of hardware or hosting required
Third-party software requirements
 Technology compatibility
Network requirements/Capacity
Physical constraints
Enter Text
Deployment Viewpoint - Models
https://blogs.karthikeyanvk.in
 Runtime platform models
Network models
Technology dependency models
Intermodal relationships
Enter Text
Deployment Viewpoint - Models
https://blogs.karthikeyanvk.in
Enter Text
Deployment Models - Petshop
https://blogs.karthikeyanvk.in
Enter Text
Deployment Viewpoint - Pitfalls
https://blogs.karthikeyanvk.in
Unclear or inaccurate dependencies
Unproven technology
Unsuitable or missing service-level agreements
Lack of specialist technical knowledge
Enter Text
Deployment Viewpoint - Pitfalls
https://blogs.karthikeyanvk.in
Late consideration of the deployment environment
Ignoring inter-site complexities
Inappropriate headroom provision
Not specifying a disaster recovery environment
Enter Text
Operational Viewpoints
https://blogs.karthikeyanvk.in
Enter Text
Operational Viewpoints
https://blogs.karthikeyanvk.in
Describes how the system will be operated, administered, and
supported when it is running in its production environment.
The aim of the Operational viewpoint is to identify system-wide
strategies for addressing the operational concerns
Enter Text
Operational Viewpoint - Concerns
https://blogs.karthikeyanvk.in
Installation and upgrade
Functional migration
Data migration
Operational monitoring and control
Alerting
Enter Text
Operational Viewpoint - Concerns
https://blogs.karthikeyanvk.in
Configuration management
Performance monitoring
Support
Backup and restore
Operation in third-party environments
Enter Text
Operational Viewpoint - Models
https://blogs.karthikeyanvk.in
Installation models
Migration models
Configuration management models
Administration models
Support models
Enter Text
Operational Viewpoint - Models
https://blogs.karthikeyanvk.in
Enter Text
Operational Viewpoint - Pitfalls
https://blogs.karthikeyanvk.in
Lack of engagement with the operational staff
Lack of backout planning
Lack of migration planning
Insufficient migration window
Missing management tools
Production environment constraints or no sandbox
Enter Text
What are Perspectives
https://blogs.karthikeyanvk.in
All the –ities
Security, quality, Availability, Scalability.
Resilience
Performance
Evolution
Enter Text
Perspectives - Performance
https://blogs.karthikeyanvk.in
If your system requires high performance, you need to manage
the time-based behaviour of elements and the frequency and
volume of inter-element communication.
Enter Text
Perspectives – Evolution/Maintainability
https://blogs.karthikeyanvk.in
If modifiability is important, you need to assign responsibilities to
elements such that changes to the system do not have far-
reaching consequences.
Enter Text
Perspectives - Security
https://blogs.karthikeyanvk.in
If your system must be highly secure, you need to manage and
protect inter-element communication and which elements are
allowed to access which information.
You may also need to introduce specialized elements (such as a
trusted kernel or containers) into the architecture.
Enter Text
Perspectives - Scalability
https://blogs.karthikeyanvk.in
If you believe scalability will be needed in your system, you have
to carefully localize the use of resources to facilitate the
introduction of higher-capacity replacements.
Enter Text
7 - Simple tips & Tricks to follow
https://blogs.karthikeyanvk.in
Think in paper.
Build simple table structure document, whereever possible.
Use the whiteboard and take photo and save the model in
document
Explain the models to your developers/stakeholders and
brainstorm
Enter Text
https://blogs.karthikeyanvk.in
Add explanation for every Diagram of every viewpoint
Your visual diagram should have a legend.
Add Brief details on path not taken in every viewpoint and
why it was not taken.
7 - Simple tips & Tricks to follow
Enter Text
References
@karthik3030
• http://www.ece.ubc.ca/~matei/EECE417/BASS/ch02lev1sec4.html
https://blogs.karthikeyanvk.in
Enter Text
Networking and more
@karthik3030
• https://www.facebook.com/aspiringDotnetArchitects/
• https://www.meetup.com/Chennai-Microsoft-Azure-User-Group/
• https://www.youtube.com/channel/UCJxa58lDcDj4tYQIHh7ORxA
https://blogs.karthikeyanvk.in
Enter Text
@karthik3030
Thank you
/Q&A
https://blogs.karthikeyanvk.in

More Related Content

What's hot

The java enterprise edition (Servlet Basic)
The java enterprise edition (Servlet Basic)The java enterprise edition (Servlet Basic)
The java enterprise edition (Servlet Basic)
Atul Saurabh
 
Oracle ATG Commerce - Launch Management Framework
Oracle ATG Commerce - Launch Management FrameworkOracle ATG Commerce - Launch Management Framework
Oracle ATG Commerce - Launch Management Framework
Keyur Shah
 
PeopleSoft WorkCenter Presentation 20150901
PeopleSoft WorkCenter Presentation 20150901PeopleSoft WorkCenter Presentation 20150901
PeopleSoft WorkCenter Presentation 20150901
Telly Ipock
 
Anatomy Of A Driver Presentation 09 15 2008
Anatomy Of A Driver Presentation   09 15 2008Anatomy Of A Driver Presentation   09 15 2008
Anatomy Of A Driver Presentation 09 15 2008
ctindale
 

What's hot (19)

The java enterprise edition (Servlet Basic)
The java enterprise edition (Servlet Basic)The java enterprise edition (Servlet Basic)
The java enterprise edition (Servlet Basic)
 
Spira: BI And Custom Reporting
Spira: BI And Custom ReportingSpira: BI And Custom Reporting
Spira: BI And Custom Reporting
 
Interview questions
Interview questionsInterview questions
Interview questions
 
#SPFestSEA Introduction to #MicrosoftGraph
#SPFestSEA Introduction to #MicrosoftGraph#SPFestSEA Introduction to #MicrosoftGraph
#SPFestSEA Introduction to #MicrosoftGraph
 
Pega Cssa Training With Real-time Project @santhoopega123@gmail.com&Whatsup@8...
Pega Cssa Training With Real-time Project @santhoopega123@gmail.com&Whatsup@8...Pega Cssa Training With Real-time Project @santhoopega123@gmail.com&Whatsup@8...
Pega Cssa Training With Real-time Project @santhoopega123@gmail.com&Whatsup@8...
 
Oracle ATG Commerce - Launch Management Framework
Oracle ATG Commerce - Launch Management FrameworkOracle ATG Commerce - Launch Management Framework
Oracle ATG Commerce - Launch Management Framework
 
Symantec I3 - Inquire & Cluster
Symantec I3 - Inquire & Cluster Symantec I3 - Inquire & Cluster
Symantec I3 - Inquire & Cluster
 
Control Transactions using PowerCenter
Control Transactions using PowerCenterControl Transactions using PowerCenter
Control Transactions using PowerCenter
 
Case Study_Employee skill assessment software
Case Study_Employee skill assessment softwareCase Study_Employee skill assessment software
Case Study_Employee skill assessment software
 
Top Ten Reasons Why Developers Don't Adopt ABAC
Top Ten Reasons Why Developers Don't Adopt ABACTop Ten Reasons Why Developers Don't Adopt ABAC
Top Ten Reasons Why Developers Don't Adopt ABAC
 
Salesforce Development Best Practices
Salesforce Development Best PracticesSalesforce Development Best Practices
Salesforce Development Best Practices
 
Enterprise Integration - Solution Patterns From the Field
Enterprise Integration - Solution Patterns From the FieldEnterprise Integration - Solution Patterns From the Field
Enterprise Integration - Solution Patterns From the Field
 
Using logic apps for dynamics 365 integration
Using logic apps for dynamics 365 integrationUsing logic apps for dynamics 365 integration
Using logic apps for dynamics 365 integration
 
Rest Assured
Rest AssuredRest Assured
Rest Assured
 
PeopleSoft WorkCenter Presentation 20150901
PeopleSoft WorkCenter Presentation 20150901PeopleSoft WorkCenter Presentation 20150901
PeopleSoft WorkCenter Presentation 20150901
 
Microsoft sc 900 exam dumps 2021
Microsoft sc 900 exam dumps 2021Microsoft sc 900 exam dumps 2021
Microsoft sc 900 exam dumps 2021
 
Surgient v5.0 Announcement
Surgient v5.0 AnnouncementSurgient v5.0 Announcement
Surgient v5.0 Announcement
 
Software architecture patterns
Software architecture patternsSoftware architecture patterns
Software architecture patterns
 
Anatomy Of A Driver Presentation 09 15 2008
Anatomy Of A Driver Presentation   09 15 2008Anatomy Of A Driver Presentation   09 15 2008
Anatomy Of A Driver Presentation 09 15 2008
 

Similar to Tips & Tricks to build software architecture document

Enterprise Architecture Toolkit Overview
Enterprise Architecture Toolkit OverviewEnterprise Architecture Toolkit Overview
Enterprise Architecture Toolkit Overview
Mike Walker
 
Super applied in a sitecore migration project
Super applied in a sitecore migration projectSuper applied in a sitecore migration project
Super applied in a sitecore migration project
dodoshelu
 
4850 - Senior Java Developer
4850 - Senior Java Developer4850 - Senior Java Developer
4850 - Senior Java Developer
JAlgate
 
PLA and the SC 2002-04-15
PLA and the SC 2002-04-15PLA and the SC 2002-04-15
PLA and the SC 2002-04-15
Jay van Zyl
 
Ferraz Ia252 Developing An Information Architecture
Ferraz Ia252 Developing An Information ArchitectureFerraz Ia252 Developing An Information Architecture
Ferraz Ia252 Developing An Information Architecture
mferraz
 

Similar to Tips & Tricks to build software architecture document (20)

Unit2 2
Unit2 2Unit2 2
Unit2 2
 
Enterprise Architecture Toolkit Overview
Enterprise Architecture Toolkit OverviewEnterprise Architecture Toolkit Overview
Enterprise Architecture Toolkit Overview
 
The Role Of An Architect
The Role Of An ArchitectThe Role Of An Architect
The Role Of An Architect
 
Super applied in a sitecore migration project
Super applied in a sitecore migration projectSuper applied in a sitecore migration project
Super applied in a sitecore migration project
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
Business analyst
Business analystBusiness analyst
Business analyst
 
3 analysis and design overview
3 analysis and design overview3 analysis and design overview
3 analysis and design overview
 
Criteria For EA Tool Selection
Criteria For EA Tool SelectionCriteria For EA Tool Selection
Criteria For EA Tool Selection
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
Technical Architecture
Technical ArchitectureTechnical Architecture
Technical Architecture
 
Fostering MBSE in Engineering Culture
Fostering MBSE in Engineering CultureFostering MBSE in Engineering Culture
Fostering MBSE in Engineering Culture
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference Architecture
 
4850 - Senior Java Developer
4850 - Senior Java Developer4850 - Senior Java Developer
4850 - Senior Java Developer
 
PLA and the SC 2002-04-15
PLA and the SC 2002-04-15PLA and the SC 2002-04-15
PLA and the SC 2002-04-15
 
Ferraz Ia252 Developing An Information Architecture
Ferraz Ia252 Developing An Information ArchitectureFerraz Ia252 Developing An Information Architecture
Ferraz Ia252 Developing An Information Architecture
 
Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471
 
40411923 business-analyst
40411923 business-analyst40411923 business-analyst
40411923 business-analyst
 
Enterprise Architecture
Enterprise ArchitectureEnterprise Architecture
Enterprise Architecture
 

More from Karthikeyan VK

How to become a Software Architect.pptx
How to become a Software Architect.pptxHow to become a Software Architect.pptx
How to become a Software Architect.pptx
Karthikeyan VK
 
Convert monolithic .Net Applications to microservices With Principles
Convert monolithic .Net Applications to microservices With PrinciplesConvert monolithic .Net Applications to microservices With Principles
Convert monolithic .Net Applications to microservices With Principles
Karthikeyan VK
 

More from Karthikeyan VK (20)

GCD ChatGPT.pptx
GCD ChatGPT.pptxGCD ChatGPT.pptx
GCD ChatGPT.pptx
 
DataScience-101
DataScience-101DataScience-101
DataScience-101
 
How to become a Software Architect.pptx
How to become a Software Architect.pptxHow to become a Software Architect.pptx
How to become a Software Architect.pptx
 
Blockchain workshop 101
Blockchain workshop 101Blockchain workshop 101
Blockchain workshop 101
 
Event Streaming Architecture - Deep Dive
Event Streaming Architecture - Deep DiveEvent Streaming Architecture - Deep Dive
Event Streaming Architecture - Deep Dive
 
Anti patterns
Anti patternsAnti patterns
Anti patterns
 
How to double your productivity as a developer
How to double your productivity as a developerHow to double your productivity as a developer
How to double your productivity as a developer
 
How to be an expert in Debugging .Net Applications
How to be an expert in Debugging .Net ApplicationsHow to be an expert in Debugging .Net Applications
How to be an expert in Debugging .Net Applications
 
Chat bot LUIS
Chat bot LUISChat bot LUIS
Chat bot LUIS
 
Cloud design pattern using azure
Cloud design pattern using azureCloud design pattern using azure
Cloud design pattern using azure
 
Enterprise security kubernetes
Enterprise security kubernetesEnterprise security kubernetes
Enterprise security kubernetes
 
Save Azure Cost
Save Azure CostSave Azure Cost
Save Azure Cost
 
Learning graphql .Net
Learning graphql .NetLearning graphql .Net
Learning graphql .Net
 
Azure devspaces
Azure devspacesAzure devspaces
Azure devspaces
 
Azure Event Grid
Azure Event Grid Azure Event Grid
Azure Event Grid
 
Machine Learning Basics using Azure ML
Machine Learning Basics using Azure MLMachine Learning Basics using Azure ML
Machine Learning Basics using Azure ML
 
Convert monolithic .Net Applications to microservices With Principles
Convert monolithic .Net Applications to microservices With PrinciplesConvert monolithic .Net Applications to microservices With Principles
Convert monolithic .Net Applications to microservices With Principles
 
Cognitive Intelligence using azure search
Cognitive Intelligence using azure searchCognitive Intelligence using azure search
Cognitive Intelligence using azure search
 
Convert monolithic .Net Applications to microservices
Convert monolithic .Net Applications to microservicesConvert monolithic .Net Applications to microservices
Convert monolithic .Net Applications to microservices
 
Azure container instances
Azure container instancesAzure container instances
Azure container instances
 

Recently uploaded

Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
gajnagarg
 
Resume all my skills and educations and achievement
Resume all my skills and educations and  achievement Resume all my skills and educations and  achievement
Resume all my skills and educations and achievement
210303105569
 
Design-System - FinTech - Isadora Agency
Design-System - FinTech - Isadora AgencyDesign-System - FinTech - Isadora Agency
Design-System - FinTech - Isadora Agency
Isadora Agency
 
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
gajnagarg
 
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
CristineGraceAcuyan
 
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
HyderabadDolls
 
Salkhia @ Cheap Call Girls In Kolkata | Book 8005736733 Extreme Naughty Call ...
Salkhia @ Cheap Call Girls In Kolkata | Book 8005736733 Extreme Naughty Call ...Salkhia @ Cheap Call Girls In Kolkata | Book 8005736733 Extreme Naughty Call ...
Salkhia @ Cheap Call Girls In Kolkata | Book 8005736733 Extreme Naughty Call ...
HyderabadDolls
 
9352852248 Call Girls Naroda Escort Service Available 24×7 In Naroda
9352852248 Call Girls  Naroda Escort Service Available 24×7 In Naroda9352852248 Call Girls  Naroda Escort Service Available 24×7 In Naroda
9352852248 Call Girls Naroda Escort Service Available 24×7 In Naroda
gargpaaro
 

Recently uploaded (20)

Gamestore case study UI UX by Amgad Ibrahim
Gamestore case study UI UX by Amgad IbrahimGamestore case study UI UX by Amgad Ibrahim
Gamestore case study UI UX by Amgad Ibrahim
 
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
 
LANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEK
LANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEKLANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEK
LANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEK
 
Resume all my skills and educations and achievement
Resume all my skills and educations and  achievement Resume all my skills and educations and  achievement
Resume all my skills and educations and achievement
 
Design-System - FinTech - Isadora Agency
Design-System - FinTech - Isadora AgencyDesign-System - FinTech - Isadora Agency
Design-System - FinTech - Isadora Agency
 
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
 
High Profile Escorts Nerul WhatsApp +91-9930687706, Best Service
High Profile Escorts Nerul WhatsApp +91-9930687706, Best ServiceHigh Profile Escorts Nerul WhatsApp +91-9930687706, Best Service
High Profile Escorts Nerul WhatsApp +91-9930687706, Best Service
 
Ashiyana Colony - Virgin Call Girls Lucknow - Phone 9548273370 Escorts Servic...
Ashiyana Colony - Virgin Call Girls Lucknow - Phone 9548273370 Escorts Servic...Ashiyana Colony - Virgin Call Girls Lucknow - Phone 9548273370 Escorts Servic...
Ashiyana Colony - Virgin Call Girls Lucknow - Phone 9548273370 Escorts Servic...
 
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
 
Raebareli Girl Whatsapp Number 📞 8617370543 | Girls Number for Friendship
Raebareli Girl Whatsapp Number 📞 8617370543 | Girls Number for FriendshipRaebareli Girl Whatsapp Number 📞 8617370543 | Girls Number for Friendship
Raebareli Girl Whatsapp Number 📞 8617370543 | Girls Number for Friendship
 
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
 
Branding in the Psychedelic Landscape Report.pdf
Branding in the Psychedelic Landscape Report.pdfBranding in the Psychedelic Landscape Report.pdf
Branding in the Psychedelic Landscape Report.pdf
 
Salkhia @ Cheap Call Girls In Kolkata | Book 8005736733 Extreme Naughty Call ...
Salkhia @ Cheap Call Girls In Kolkata | Book 8005736733 Extreme Naughty Call ...Salkhia @ Cheap Call Girls In Kolkata | Book 8005736733 Extreme Naughty Call ...
Salkhia @ Cheap Call Girls In Kolkata | Book 8005736733 Extreme Naughty Call ...
 
Abu Dhabi Call girls Service0556255850 Call girls in Abu Dhabi
Abu Dhabi Call girls Service0556255850 Call girls in Abu DhabiAbu Dhabi Call girls Service0556255850 Call girls in Abu Dhabi
Abu Dhabi Call girls Service0556255850 Call girls in Abu Dhabi
 
9352852248 Call Girls Naroda Escort Service Available 24×7 In Naroda
9352852248 Call Girls  Naroda Escort Service Available 24×7 In Naroda9352852248 Call Girls  Naroda Escort Service Available 24×7 In Naroda
9352852248 Call Girls Naroda Escort Service Available 24×7 In Naroda
 
Bhubaneswar🌹Vip Call Girls Chandrashekharpur ❤Heer 9777949614 💟 Full Trusted ...
Bhubaneswar🌹Vip Call Girls Chandrashekharpur ❤Heer 9777949614 💟 Full Trusted ...Bhubaneswar🌹Vip Call Girls Chandrashekharpur ❤Heer 9777949614 💟 Full Trusted ...
Bhubaneswar🌹Vip Call Girls Chandrashekharpur ❤Heer 9777949614 💟 Full Trusted ...
 
Just Call Vip call girls Fatehpur Escorts ☎️8617370543 Two shot with one girl...
Just Call Vip call girls Fatehpur Escorts ☎️8617370543 Two shot with one girl...Just Call Vip call girls Fatehpur Escorts ☎️8617370543 Two shot with one girl...
Just Call Vip call girls Fatehpur Escorts ☎️8617370543 Two shot with one girl...
 
Mohanlalganj ! Call Girls in Lucknow - 450+ Call Girl Cash Payment 9548273370...
Mohanlalganj ! Call Girls in Lucknow - 450+ Call Girl Cash Payment 9548273370...Mohanlalganj ! Call Girls in Lucknow - 450+ Call Girl Cash Payment 9548273370...
Mohanlalganj ! Call Girls in Lucknow - 450+ Call Girl Cash Payment 9548273370...
 
Essential UI/UX Design Principles: A Comprehensive Guide
Essential UI/UX Design Principles: A Comprehensive GuideEssential UI/UX Design Principles: A Comprehensive Guide
Essential UI/UX Design Principles: A Comprehensive Guide
 
Only Cash On Delivery Call Girls Service In Mysore Enjoy 24/7 Escort Service
Only Cash On Delivery Call Girls Service In Mysore Enjoy 24/7 Escort ServiceOnly Cash On Delivery Call Girls Service In Mysore Enjoy 24/7 Escort Service
Only Cash On Delivery Call Girls Service In Mysore Enjoy 24/7 Escort Service
 

Tips & Tricks to build software architecture document

  • 1. Tips & Tricks for documenting Software architecture Karthikeyan VK Karthik_3030@yahoo.com @karthik3030 https://blogs.karthikeyanvk.in
  • 2. Enter Text Why Document Software Architecture? Record important decisions. One place to understand, how different system works with each other. Makes your platform scalable. Common understanding among stakeholders https://blogs.karthikeyanvk.in
  • 3. Enter Text Good software architecture doc means? Strong and easy to maintain even on add/change in features. Domain concepts and boundary clearly specified. Flexible, extensible, and usable for the long term. Responds positively to change. https://blogs.karthikeyanvk.in
  • 4. Enter Text Mindset to Build architecture document Everything changes. Address only what customer wants Address all stakeholders Don’t over-architect Decision tracker https://blogs.karthikeyanvk.in
  • 5. Enter Text Architecture documentation – Principles Addressing Stakeholder concerns Effective Communication (KISS) Should be structured, Fluid in nature Pragmatic, addresses real world & practical concerns Flexible Technology agnostic https://blogs.karthikeyanvk.in
  • 6. Enter Text Principles architecture document Integrate with Software life cycle Aligns with Engineering practises and quality management standards. https://blogs.karthikeyanvk.in
  • 8. Enter Text What is Architectural Concern https://blogs.karthikeyanvk.in A concern is a requirement, an objective, an intention for that architecture. Every viewpoint has its own concern E.g.:- Development Viewpoint – Module organization Concern E.g.:- Functional viewpoint - External interfaces
  • 9. Enter Text What is a Models https://blogs.karthikeyanvk.in A model is a abstract representation of some aspects of architecture. Helps to understand. Medium to communicate. Eg:- Entity-relationship model, state transition model
  • 10. Enter Text Why Viewpoints https://blogs.karthikeyanvk.in Architecture document is very complex because it tries to capture everything in a single place Such a model is hard to understand and is unlikely to clearly identify the architecture’s most important features. Viewpoint attack the problem from different directions simultaneously.
  • 11. Enter Text What is a Viewpoint https://blogs.karthikeyanvk.in Each viewpoint address the concerns . It defines the stakeholders whose concerns are reflected in the viewpoint and the guidelines, principles, and template models for constructing its views.
  • 12. Enter Text Different types of Viewpoints https://blogs.karthikeyanvk.in Functional Information Concurrency * Development Deployment Operational
  • 13. Enter Text Why Viewpoints ? https://blogs.karthikeyanvk.in A. Representing everything in a single model is complex, viewpoints attacks using different models and views B. Just another way of representing the architecture, nothing different
  • 14. Enter Text Functional Viewpoints https://blogs.karthikeyanvk.in Describes the relationships, dependencies, and interactions between the system and its environment. People, Systems, and External entities with which it interacts.
  • 15. Enter Text Functional Viewpoint - Concerns https://blogs.karthikeyanvk.in Functional capabilities External interfaces Internal structure Functional design qualities
  • 16. Enter Text Functional Viewpoint - Concerns https://blogs.karthikeyanvk.in Functional design Philosphy Separation of concerns Cohesion/Coupling Element Interaction Flexibility Overall Coherence
  • 17. Enter Text Functional Viewpoint - Models https://blogs.karthikeyanvk.in Functional Structure models Functional Elements Interfaces Connectors External Entities.
  • 19. Enter Text Models - Petshop https://blogs.karthikeyanvk.in
  • 20. Enter Text Functional Viewpoint - Pitfalls https://blogs.karthikeyanvk.in  Poorly defined interfaces  Poorly understood responsibilities  Infrastructure modelled as functional elements Overloaded view
  • 21. Enter Text Functional Viewpoint - Pitfalls https://blogs.karthikeyanvk.in Diagrams without element definitions Difficulty in reconciling the needs of multiple stakeholders  Wrong Level of detail  ‘God’ elements
  • 22. Enter Text Information Viewpoints https://blogs.karthikeyanvk.in Describes the system’s functional elements, their responsibilities, interfaces, and primary interactions It drives the shape of other system structures such as the information structure, concurrency structure, deployment structure. Basically everything you do with database or any storage.
  • 23. Enter Text Information Viewpoint - Concerns https://blogs.karthikeyanvk.in Structure and content Purpose and usage / Ownership Mappings Storage models/Flow/Consistency/Quality Timeliness, latency, and age.
  • 24. Enter Text Information Viewpoint - Models https://blogs.karthikeyanvk.in Static information structure models Information flow models Information lifecycle models
  • 25. Enter Text Information Viewpoint - Models https://blogs.karthikeyanvk.in Metadata models Data Format Meaning Data Structure Data Context Data Quality
  • 26. Enter Text Information Viewpoint - Models https://blogs.karthikeyanvk.in
  • 27. Enter Text Information Viewpoint - Pitfalls https://blogs.karthikeyanvk.in Overloaded central database Inconsistent distributed databases Poor information quality Representation incompatibilities
  • 28. Enter Text Development Viewpoints https://blogs.karthikeyanvk.in Describes the architecture that supports the software development process. Development views communicate the aspects of the architecture of interest to those stakeholders involved in building, testing, maintaining, and enhancing the system.
  • 29. Enter Text Development Viewpoint - Concerns https://blogs.karthikeyanvk.in Module organization Common processing Standardization of design/Design patterns Standardization of testing Instrumentation Codeline organization
  • 30. Enter Text Development Viewpoint - Models https://blogs.karthikeyanvk.in  Module structure  Common design or Design patterns  Codeline models or how code is organized in your Source control
  • 31. Enter Text Development Viewpoint - Models https://blogs.karthikeyanvk.in
  • 32. Enter Text Development Models – Petshop https://blogs.karthikeyanvk.in
  • 33. Enter Text Development Viewpoint - Pitfalls https://blogs.karthikeyanvk.in Too much detail Lack of developer focus Lack of precision Problems with the specified environment or maturity of the technology
  • 34. Enter Text Deployment Viewpoints https://blogs.karthikeyanvk.in
  • 35. Enter Text Deployment Viewpoints https://blogs.karthikeyanvk.in Describes the environment into which the system will be deployed, including capturing the dependencies the system has on its runtime environment. This view captures the hardware environment that your system needs
  • 36. Enter Text Deployment Viewpoint - Concerns https://blogs.karthikeyanvk.in Runtime platform required Specification and quantity of hardware or hosting required Third-party software requirements  Technology compatibility Network requirements/Capacity Physical constraints
  • 37. Enter Text Deployment Viewpoint - Models https://blogs.karthikeyanvk.in  Runtime platform models Network models Technology dependency models Intermodal relationships
  • 38. Enter Text Deployment Viewpoint - Models https://blogs.karthikeyanvk.in
  • 39. Enter Text Deployment Models - Petshop https://blogs.karthikeyanvk.in
  • 40. Enter Text Deployment Viewpoint - Pitfalls https://blogs.karthikeyanvk.in Unclear or inaccurate dependencies Unproven technology Unsuitable or missing service-level agreements Lack of specialist technical knowledge
  • 41. Enter Text Deployment Viewpoint - Pitfalls https://blogs.karthikeyanvk.in Late consideration of the deployment environment Ignoring inter-site complexities Inappropriate headroom provision Not specifying a disaster recovery environment
  • 43. Enter Text Operational Viewpoints https://blogs.karthikeyanvk.in Describes how the system will be operated, administered, and supported when it is running in its production environment. The aim of the Operational viewpoint is to identify system-wide strategies for addressing the operational concerns
  • 44. Enter Text Operational Viewpoint - Concerns https://blogs.karthikeyanvk.in Installation and upgrade Functional migration Data migration Operational monitoring and control Alerting
  • 45. Enter Text Operational Viewpoint - Concerns https://blogs.karthikeyanvk.in Configuration management Performance monitoring Support Backup and restore Operation in third-party environments
  • 46. Enter Text Operational Viewpoint - Models https://blogs.karthikeyanvk.in Installation models Migration models Configuration management models Administration models Support models
  • 47. Enter Text Operational Viewpoint - Models https://blogs.karthikeyanvk.in
  • 48. Enter Text Operational Viewpoint - Pitfalls https://blogs.karthikeyanvk.in Lack of engagement with the operational staff Lack of backout planning Lack of migration planning Insufficient migration window Missing management tools Production environment constraints or no sandbox
  • 49. Enter Text What are Perspectives https://blogs.karthikeyanvk.in All the –ities Security, quality, Availability, Scalability. Resilience Performance Evolution
  • 50. Enter Text Perspectives - Performance https://blogs.karthikeyanvk.in If your system requires high performance, you need to manage the time-based behaviour of elements and the frequency and volume of inter-element communication.
  • 51. Enter Text Perspectives – Evolution/Maintainability https://blogs.karthikeyanvk.in If modifiability is important, you need to assign responsibilities to elements such that changes to the system do not have far- reaching consequences.
  • 52. Enter Text Perspectives - Security https://blogs.karthikeyanvk.in If your system must be highly secure, you need to manage and protect inter-element communication and which elements are allowed to access which information. You may also need to introduce specialized elements (such as a trusted kernel or containers) into the architecture.
  • 53. Enter Text Perspectives - Scalability https://blogs.karthikeyanvk.in If you believe scalability will be needed in your system, you have to carefully localize the use of resources to facilitate the introduction of higher-capacity replacements.
  • 54. Enter Text 7 - Simple tips & Tricks to follow https://blogs.karthikeyanvk.in Think in paper. Build simple table structure document, whereever possible. Use the whiteboard and take photo and save the model in document Explain the models to your developers/stakeholders and brainstorm
  • 55. Enter Text https://blogs.karthikeyanvk.in Add explanation for every Diagram of every viewpoint Your visual diagram should have a legend. Add Brief details on path not taken in every viewpoint and why it was not taken. 7 - Simple tips & Tricks to follow
  • 57. Enter Text Networking and more @karthik3030 • https://www.facebook.com/aspiringDotnetArchitects/ • https://www.meetup.com/Chennai-Microsoft-Azure-User-Group/ • https://www.youtube.com/channel/UCJxa58lDcDj4tYQIHh7ORxA https://blogs.karthikeyanvk.in