Understanding Software Architecture: Definitions, Design Goals, Classifications, and Common Pitfalls
This article explains the concept of software architecture, distinguishes it from frameworks, outlines its components, design objectives, classification methods such as RUP 4+1 and TOGAF, evolution from monoliths to micro‑services, evaluation criteria, typical misconceptions, and recommends essential reading for architects.
In the software industry, the definition of "architecture" varies widely; before discussing it, we first clarify the concept to ensure effective communication.
1. What Is Architecture
Architecture exists at multiple levels—Linux, MySQL, JVM, and the business system built on them. Understanding it requires distinguishing systems, subsystems, modules, components, frameworks, and architecture.
1.1 System and Subsystem
A system is a group of related entities operating under rules to achieve capabilities beyond individual parts. Subsystems are systems that belong to a larger system.
1.2 Module and Component
Modules are logical units for decomposition; components are physical units (services, databases, containers, etc.) that can be reused.
1.3 Framework vs Architecture
Frameworks provide standards and basic functions (e.g., MVC, Spring); architecture defines the overall structure and relationships among components.
In TOGAF9, architecture is a formal description of a system's components, their relationships, and governing principles.
2. Purpose of Architecture Design
Without architecture, systems become chaotic as they grow from monoliths to distributed or micro‑service structures, leading to unclear boundaries, tight coupling, monitoring difficulties, and technology sprawl.
Architecture aims to make rational decisions, define a clear system skeleton, establish collaboration, and set constraints to manage complexity and improve efficiency.
3. Architecture Classification
Two common methods are RUP 4+1 (logical, development, physical, process, and scenario views) and TOGAF9 (business, application, data, technology, code, deployment architectures).
RUP 4+1 Views
Logical View
Development View
Physical View
Process View
Scenario View
TOGAF 9 Views
Business Architecture
Application Architecture
Data Architecture
Technology Architecture
Code Architecture
Deployment (Topology) Architecture
4. Architecture Levels
The pyramid model shows four levels: system, application, module, and code, each inheriting the constraints of the level above.
5. Strategic vs Tactical Design
Strategic design (business architecture) guides overall direction; tactical design (application architecture) translates strategy into concrete solutions, followed by technical selection.
6. Evolution of Application Architecture
Monolithic → Distributed → Micro‑services, each stage improving scalability, maintainability, and technology flexibility while introducing new operational challenges.
7. Measuring Architecture Reasonableness
Reasonable architecture satisfies current business needs, is efficient, forward‑compatible, stable, high‑performance, extensible, reusable, and secure.
8. Common Architecture Pitfalls
Over‑design without practical grounding
Ignoring non‑functional requirements
Premature decisions
Blindly copying large‑company solutions
Technology for technology's sake
9. Recommended Books
Large‑Scale Web Architecture: Core Principles and Case Studies
Core Technologies of Billion‑Scale Traffic Websites
Architecture Is the Future
Distributed Service Architecture: Principles, Design, and Practice
Talking About Architecture
The 12 Practices of a Software Architect
DataFunSummit
Official account of the DataFun community, dedicated to sharing big data and AI industry summit news and speaker talks, with regular downloadable resource packs.
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.