This slide shows the step by step process on how to build an architecture document that addresses all stakeholders concerns using viewpoints and perspectives.
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
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
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
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
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
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