How to Craft an Architecture Vision: From Philosophy to Practical Design
This article explains how to formulate an architecture vision and goals, outlines the hierarchical levels of vision from system-wide to code-level, describes the process of deriving vision from requirements, and details quality attributes and design principles for effective software architecture.
Architecture vision answers three philosophical questions: Who am I? (the current situation), Where did I come from? (the cause of the problem), and Where am I going? (the vision and goals).
1. Introduction: Architecture Design Steps
Architecture design fits well with the waterfall model, especially for systems needing architectural upgrades. The waterfall model divides a project into clear phases with defined inputs and outputs, emphasizing documentation.
Advantages of the waterfall model include:
Simple, direct, clear thinking, and explicit requirements.
Comprehensive, continuously updated documentation.
Its benefits are:
Ensures overall system grasp, high product quality, and early defect detection.
Provides good extensibility and maintainability.
2. Architecture Vision and Goals
Vision is broad and abstract, while goals are concrete and measurable. Vision guides the direction; goals are specific targets that realize the vision.
Examples of vision: high availability, high performance, high scalability. Goals: concrete metrics such as 99.99% availability.
3. Levels of Architecture Vision
Vision is scoped to a particular software range (global system, subsystem/module, or code level). Once defined, all design principles within that scope must not contradict the vision.
We categorize vision into:
1) Global System (Architecture Patterns)
Global vision is expressed as principles or architectural patterns, described in natural language or pseudo‑code, e.g., a three‑tier architecture with defined classification principles and objectives.
2) Subsystem/Module Level
Here the vision is more concrete, addressing specific domains like UI design, domain model, or persistence layer, while ensuring consistency with the global vision. Contract interfaces may be defined to prevent uncontrolled changes.
3) Code‑Level Vision (Design Patterns)
This level details class responsibilities and relationships, often using class diagrams, and requires review by the sub‑team.
4. Forming the Architecture Vision
The source of vision is the requirements, especially those concerning system fundamentals (interactive, distributed, etc.). After gathering influencing requirements, they are prioritized to shape the vision.
1) Background of Problem or Requirement
Consider company background, business characteristics, system characteristics (complexity, coupling, data distribution, development model), and technical characteristics (technology stack, version uniformity, open‑source components).
2) Propose Expected Goals (Vision Scope)
Goals stem from stakeholder expectations, covering business responsiveness, system quality, development efficiency, and operation level, e.g., reducing coupling, improving performance, enhancing maintainability, and establishing monitoring.
3) Define Specific Architecture Goals
Goals translate vision into measurable targets such as correctness, availability (e.g., 99.99%), development efficiency, scalability, security, extensibility, high performance, and maintainability.
5. Determine Architecture Quality Requirements
6. Standardize Overall Design Principles
7. Relationship Between Vision, Goals, and Requirement Analysis
Defining architecture goals early aligns the design with stakeholder needs. Vision helps evaluate the reasonableness of requirements and ensures flexibility for future changes.
Source: https://blog.csdn.net/hguisu/article/details/80748295
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
ITFLY8 Architecture Home
ITFLY8 Architecture Home - focused on architecture knowledge sharing and exchange, covering project management and product design. Includes large-scale distributed website architecture (high performance, high availability, caching, message queues...), design patterns, architecture patterns, big data, project management (SCRUM, PMP, Prince2), product design, and more.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
