SlideShare a Scribd company logo
Software
Architect
Documentation
Guide Book
January 20
2015
By SalimBhonhariya(CloudArchitect)
Designed
Software
Guide Book
1
1
Contents
Context..............................................................................................................................................3
What isthisall about?Designdetailswhichcontaindetailsnecessarytobuildthe systembutnot
needed to reason about failure. These details are not architectural...................................................3
Functional Overview...........................................................................................................................3
What does the system do?..............................................................................................................3
Functional requirements:................................................................................................................3
Context:.........................................................................................................................................3
Container:......................................................................................................................................3
Component:...................................................................................................................................3
Classes:..........................................................................................................................................3
Quality Attributes...............................................................................................................................4
Are there any significant non-functional requirements?....................................................................4
Constraints.........................................................................................................................................4
Are there any significant constraints? ..............................................................................................4
Principles ...........................................................................................................................................4
What design and development principles have been adopted? .........................................................4
Software Architecture.........................................................................................................................5
What does the big picture looklike and how is the system architecture?...........................................5
External Interfaces..............................................................................................................................6
What are the external systems interfaces?.......................................................................................6
Code..................................................................................................................................................6
Implementation details need to be explained?.................................................................................6
Structure ...................................................................................................................................6
Vision ........................................................................................................................................6
Technical Risks.........................................................................................................................6
Data...................................................................................................................................................7
What does the data model looklike andwhere it is being stored?.....................................................7
Infrastructure Architecture..................................................................................................................7
What does the target deploymentenvironment look like?................................................................7
Deployment.......................................................................................................................................7
What is the mapping between software andinfrastructure? .............................................................7
2
2
Operation and Support .......................................................................................................................7
How will people operates and support the system............................................................................7
Decision Log.......................................................................................................................................7
What decisions are takenwhile designing this document? ................................................................7
3
3
Context
What is this all about? Design details which contain details necessary to build
the system but not needed to reason about failure. These details are not
architectural.
Functional Overview
What does the system do?
Functional requirements: Requirements drive architecture. You need to know
vaguely what you’re building, irrespective of how you capture and record those
requirements (i.e. user stories, use cases, requirements specifications, acceptance
tests, etc.).
Explain how your software system works at various levels of abstraction? What
concepts and levels of abstraction would you use to do this?
Use UML to visualize the design of your software.
Create software architecture diagrams for your software system which represent
the codebase
Context: A high-level diagram that sets the scene; including key system
dependencies and actors.
Container: A container diagram shows the high-level technology choices, how
responsibilities are distributed across them and how the containers
communicate.
Component: For each container, a component diagram lets you see the key
logical components and their relationships.
Classes: This is an optional level of detail and I will draw a small number of high-
level UML class diagrams if I want to explain how a particular pattern or
component will be (or has been) implemented. The factors that prompt me to
draw class diagrams for parts of the software system include the complexity of
4
4
the software plus the size and experience of the team. Any UML diagrams that I
do draw tend to be sketches rather than comprehensive models
Quality Attributes
Are there any significant non-functional requirements?
The non-functional requirements (e.g. performance, scalability, security, etc.) are
usually technical in nature and are hard to retrofit. They ideally need to be baked
into the initial design and ignoring these qualities will lead you to a software system
that is either over- or under-engineered.
Constraints
Are there any significant constraints?
Constraints: The real-world usually has constraints; ranging from approved
technology lists, prescribed integration standards, target deployment environment,
size of team, etc. Again, not considering these could cause you to deliver a
software system that doesn’t complement your environment, adding unnecessary
friction.
Principles
What design and development principles have been adopted?
Principles: These are the things that you want to adopt in an attempt to provide
consistency and clarity to the software. From a design perspective, this includes
things like your decomposition strategy (e.g. layers vs components vs micro-
services), separation of concerns, architectural patterns, etc. Explicitly outlining a
starting set of principles is essential so that the team building the software starts
out heading in the same direction.
5
5
Software Architecture
What does the big picture look like and how is the system architecture?
Model of all possible failures in the system called risk and reason about those
risks. When the system fails you know that you have a reason to fail and how to fix
it.
You include the details in the model only if you have reason about failure about the
system to identify. You omit other design details.
Details design is architectural only if it can be traced back to avoiding failure risk.
That is how we know that the information detail is architectural.
The model helps you reason about and failure you are worried about. Detail you
have in model is architectural.
Cross-cutting concerns such as logging and exception handling.
Security; including authentication, authorization and confidentiality of sensitive
data.
Performance, scalability, availability and other quality attributes.
Audit and other regulatory requirements.
Real-world constraints of the environment.
Interoperability/integration with other software systems.
Operational, support and maintenance requirements.
Consistency of structure and approach to solving problems/implementing features
across the codebase.
Technology choices.
6
6
External Interfaces
What are the external systems interfaces?
Code
Implementation details need to be explained?
Structure
1. What: Understand the significant structural elements and how they fit
together, based upon requirements and constraints.
2. How: Design and decomposition down to containers and components.
Vision
3. What: Create Technical strategy, Vision, Roadmap and communicate
a vision for the team to work with.
4. How: Context, container and component diagrams.
Technical Risks
5. What: Identify and mitigate the highest priority risks. To insure that the
architecture works.
6. How: Risk-storming and concrete experiments
7. Project Documentation
7
7
Data
What does the data model look like and where it is being stored?
Infrastructure Architecture
What does the target deployment environment look like?
Deployment
What is the mapping between software and infrastructure?
Operationand Support
How will people operates and support the system.
DecisionLog
What decisions are taken while designing this document?

More Related Content

DOCX
Software Design Document
PDF
Sdd template
DOC
Software design specification
PDF
Software Architecture Document Final
PDF
Software design
PDF
FYPJ - Cerebral Android App Development (Report)
PDF
Database
DOC
Srs example webapp
Software Design Document
Sdd template
Software design specification
Software Architecture Document Final
Software design
FYPJ - Cerebral Android App Development (Report)
Database
Srs example webapp

What's hot (20)

DOCX
High level design document template
PDF
Sample SRS format
DOC
Srs for virtual eucation
DOCX
Software requirement specification(SRS)
PDF
Software Requirement Specification For Smart Internet Cafe
PDF
An Introduction to Software Architecture
DOCX
Software Requirements Specification Final
PDF
Azure Active Directory | Microsoft Azure Tutorial for Beginners | Azure 70-53...
PPTX
Real-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoT
DOCX
database Assingment NCC Education l4dc
PPTX
Microsoft Azure
PPTX
Software requirement and specification
PPTX
Software requirements specification (srs) by Dan Dharma
PPTX
Monitor Azure HDInsight with Azure Log Analytics
PDF
Software Engineering Lab Manual
DOC
Social Networking Website Project Report
DOCX
Srs document
PDF
High Level Solution Document for VDI Project
PDF
Software Requirements Specification on Student Information System (SRS on SIS)
PPTX
Google Cloud Platform
High level design document template
Sample SRS format
Srs for virtual eucation
Software requirement specification(SRS)
Software Requirement Specification For Smart Internet Cafe
An Introduction to Software Architecture
Software Requirements Specification Final
Azure Active Directory | Microsoft Azure Tutorial for Beginners | Azure 70-53...
Real-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoT
database Assingment NCC Education l4dc
Microsoft Azure
Software requirement and specification
Software requirements specification (srs) by Dan Dharma
Monitor Azure HDInsight with Azure Log Analytics
Software Engineering Lab Manual
Social Networking Website Project Report
Srs document
High Level Solution Document for VDI Project
Software Requirements Specification on Student Information System (SRS on SIS)
Google Cloud Platform
Ad

Similar to Software architect design documentation template (20)

PPTX
A summary of software architecture guide
PDF
software-architecture-patterns
PDF
Software architecture-patterns
PDF
Software arquitectura patron diseño
PPT
Design Concepts software engineering.ppt
PDF
Software architecture for developers
PPTX
System analysis and design
PDF
L16 Documenting Software
PPTX
Unit2 2
PDF
020170482 x
PPT
PPT
PDF
Software Architecture and Design Introduction
PDF
Block 1 ms-034 unit-2
PPT
Chapter1
PDF
Are You an Accidental or Intentional Architect?
PDF
dynamic and implementation uml diagram.pdf
DOC
Softwareenggineering lab manual
PPTX
Aspect Oriented Programming - AOP/AOSD
DOCX
IT 600 Final Project Milestone Two Template Analytical Organi.docx
A summary of software architecture guide
software-architecture-patterns
Software architecture-patterns
Software arquitectura patron diseño
Design Concepts software engineering.ppt
Software architecture for developers
System analysis and design
L16 Documenting Software
Unit2 2
020170482 x
Software Architecture and Design Introduction
Block 1 ms-034 unit-2
Chapter1
Are You an Accidental or Intentional Architect?
dynamic and implementation uml diagram.pdf
Softwareenggineering lab manual
Aspect Oriented Programming - AOP/AOSD
IT 600 Final Project Milestone Two Template Analytical Organi.docx
Ad

More from Salim M Bhonhariya (7)

PDF
Software Developer’s Project Documentation Template
DOCX
SSO to Office365 using Active Directory Credentials
DOCX
Decide if PhoneGap is for you as your mobile platform selection
DOCX
Azure Service Bus Performance Checklist
DOCX
Use corporate login from mobile applications to access on
DOCX
Azure to on premise integration
PDF
Azure applications performance checklist
Software Developer’s Project Documentation Template
SSO to Office365 using Active Directory Credentials
Decide if PhoneGap is for you as your mobile platform selection
Azure Service Bus Performance Checklist
Use corporate login from mobile applications to access on
Azure to on premise integration
Azure applications performance checklist

Recently uploaded (20)

PDF
Emailing DDDX-MBCaEiB.pdf DDD_Europe_2022_Intro_to_Context_Mapping_pdf-165590...
PDF
YOW2022-BNE-MinimalViableArchitecture.pdf
PPTX
Complete Guide to Microsoft PowerPoint 2019 – Features, Tools, and Tips"
PPTX
YV PROFILE PROJECTS PROFILE PRES. DESIGN
PPTX
mahatma gandhi bus terminal in india Case Study.pptx
PPTX
LITERATURE CASE STUDY DESIGN SEMESTER 5.pptx
PDF
Urban Design Final Project-Context
PDF
Interior Structure and Construction A1 NGYANQI
PPTX
An introduction to AI in research and reference management
PPTX
Entrepreneur intro, origin, process, method
PPTX
rapid fire quiz in your house is your india.pptx
PPTX
DOC-20250430-WA0014._20250714_235747_0000.pptx
PPTX
Media And Information Literacy for Grade 12
PPTX
Special finishes, classification and types, explanation
PDF
The Advantages of Working With a Design-Build Studio
DOCX
actividad 20% informatica microsoft project
PDF
Design Thinking - Module 1 - Introduction To Design Thinking - Dr. Rohan Dasg...
PPT
Machine printing techniques and plangi dyeing
PPTX
AD Bungalow Case studies Sem 2.pptxvwewev
PPTX
BSCS lesson 3.pptxnbbjbb mnbkjbkbbkbbkjb
Emailing DDDX-MBCaEiB.pdf DDD_Europe_2022_Intro_to_Context_Mapping_pdf-165590...
YOW2022-BNE-MinimalViableArchitecture.pdf
Complete Guide to Microsoft PowerPoint 2019 – Features, Tools, and Tips"
YV PROFILE PROJECTS PROFILE PRES. DESIGN
mahatma gandhi bus terminal in india Case Study.pptx
LITERATURE CASE STUDY DESIGN SEMESTER 5.pptx
Urban Design Final Project-Context
Interior Structure and Construction A1 NGYANQI
An introduction to AI in research and reference management
Entrepreneur intro, origin, process, method
rapid fire quiz in your house is your india.pptx
DOC-20250430-WA0014._20250714_235747_0000.pptx
Media And Information Literacy for Grade 12
Special finishes, classification and types, explanation
The Advantages of Working With a Design-Build Studio
actividad 20% informatica microsoft project
Design Thinking - Module 1 - Introduction To Design Thinking - Dr. Rohan Dasg...
Machine printing techniques and plangi dyeing
AD Bungalow Case studies Sem 2.pptxvwewev
BSCS lesson 3.pptxnbbjbb mnbkjbkbbkbbkjb

Software architect design documentation template

  • 1. Software Architect Documentation Guide Book January 20 2015 By SalimBhonhariya(CloudArchitect) Designed Software Guide Book
  • 2. 1 1 Contents Context..............................................................................................................................................3 What isthisall about?Designdetailswhichcontaindetailsnecessarytobuildthe systembutnot needed to reason about failure. These details are not architectural...................................................3 Functional Overview...........................................................................................................................3 What does the system do?..............................................................................................................3 Functional requirements:................................................................................................................3 Context:.........................................................................................................................................3 Container:......................................................................................................................................3 Component:...................................................................................................................................3 Classes:..........................................................................................................................................3 Quality Attributes...............................................................................................................................4 Are there any significant non-functional requirements?....................................................................4 Constraints.........................................................................................................................................4 Are there any significant constraints? ..............................................................................................4 Principles ...........................................................................................................................................4 What design and development principles have been adopted? .........................................................4 Software Architecture.........................................................................................................................5 What does the big picture looklike and how is the system architecture?...........................................5 External Interfaces..............................................................................................................................6 What are the external systems interfaces?.......................................................................................6 Code..................................................................................................................................................6 Implementation details need to be explained?.................................................................................6 Structure ...................................................................................................................................6 Vision ........................................................................................................................................6 Technical Risks.........................................................................................................................6 Data...................................................................................................................................................7 What does the data model looklike andwhere it is being stored?.....................................................7 Infrastructure Architecture..................................................................................................................7 What does the target deploymentenvironment look like?................................................................7 Deployment.......................................................................................................................................7 What is the mapping between software andinfrastructure? .............................................................7
  • 3. 2 2 Operation and Support .......................................................................................................................7 How will people operates and support the system............................................................................7 Decision Log.......................................................................................................................................7 What decisions are takenwhile designing this document? ................................................................7
  • 4. 3 3 Context What is this all about? Design details which contain details necessary to build the system but not needed to reason about failure. These details are not architectural. Functional Overview What does the system do? Functional requirements: Requirements drive architecture. You need to know vaguely what you’re building, irrespective of how you capture and record those requirements (i.e. user stories, use cases, requirements specifications, acceptance tests, etc.). Explain how your software system works at various levels of abstraction? What concepts and levels of abstraction would you use to do this? Use UML to visualize the design of your software. Create software architecture diagrams for your software system which represent the codebase Context: A high-level diagram that sets the scene; including key system dependencies and actors. Container: A container diagram shows the high-level technology choices, how responsibilities are distributed across them and how the containers communicate. Component: For each container, a component diagram lets you see the key logical components and their relationships. Classes: This is an optional level of detail and I will draw a small number of high- level UML class diagrams if I want to explain how a particular pattern or component will be (or has been) implemented. The factors that prompt me to draw class diagrams for parts of the software system include the complexity of
  • 5. 4 4 the software plus the size and experience of the team. Any UML diagrams that I do draw tend to be sketches rather than comprehensive models Quality Attributes Are there any significant non-functional requirements? The non-functional requirements (e.g. performance, scalability, security, etc.) are usually technical in nature and are hard to retrofit. They ideally need to be baked into the initial design and ignoring these qualities will lead you to a software system that is either over- or under-engineered. Constraints Are there any significant constraints? Constraints: The real-world usually has constraints; ranging from approved technology lists, prescribed integration standards, target deployment environment, size of team, etc. Again, not considering these could cause you to deliver a software system that doesn’t complement your environment, adding unnecessary friction. Principles What design and development principles have been adopted? Principles: These are the things that you want to adopt in an attempt to provide consistency and clarity to the software. From a design perspective, this includes things like your decomposition strategy (e.g. layers vs components vs micro- services), separation of concerns, architectural patterns, etc. Explicitly outlining a starting set of principles is essential so that the team building the software starts out heading in the same direction.
  • 6. 5 5 Software Architecture What does the big picture look like and how is the system architecture? Model of all possible failures in the system called risk and reason about those risks. When the system fails you know that you have a reason to fail and how to fix it. You include the details in the model only if you have reason about failure about the system to identify. You omit other design details. Details design is architectural only if it can be traced back to avoiding failure risk. That is how we know that the information detail is architectural. The model helps you reason about and failure you are worried about. Detail you have in model is architectural. Cross-cutting concerns such as logging and exception handling. Security; including authentication, authorization and confidentiality of sensitive data. Performance, scalability, availability and other quality attributes. Audit and other regulatory requirements. Real-world constraints of the environment. Interoperability/integration with other software systems. Operational, support and maintenance requirements. Consistency of structure and approach to solving problems/implementing features across the codebase. Technology choices.
  • 7. 6 6 External Interfaces What are the external systems interfaces? Code Implementation details need to be explained? Structure 1. What: Understand the significant structural elements and how they fit together, based upon requirements and constraints. 2. How: Design and decomposition down to containers and components. Vision 3. What: Create Technical strategy, Vision, Roadmap and communicate a vision for the team to work with. 4. How: Context, container and component diagrams. Technical Risks 5. What: Identify and mitigate the highest priority risks. To insure that the architecture works. 6. How: Risk-storming and concrete experiments 7. Project Documentation
  • 8. 7 7 Data What does the data model look like and where it is being stored? Infrastructure Architecture What does the target deployment environment look like? Deployment What is the mapping between software and infrastructure? Operationand Support How will people operates and support the system. DecisionLog What decisions are taken while designing this document?