Understanding Software Architecture: Concepts, Layers, and Evolution
This article explains the fundamental concepts of software architecture, including definitions of systems, subsystems, modules, components, and frameworks, outlines various architectural layers such as business, application, data, code, technical, and deployment, and discusses evolution from monolithic to distributed and microservice architectures along with common pitfalls and evaluation criteria.
In software engineering, the term "architecture" is often debated; this article first defines architecture as the top‑level structure of a software system, a systematic decision made under resource constraints that outlines subsystems, modules, components, and their interactions.
Key concepts include:
System and Subsystem: a system is a group of related entities working together, while a subsystem is a part of a larger system.
Module and Component: modules are logical units, components are physical units; modules decompose complexity, components can be services, databases, networks, containers, etc.
Framework vs Architecture: frameworks provide standardized implementations (e.g., MVC, Spring), whereas architecture defines the overall structure.
The article classifies architecture into several layers:
Business Architecture – strategic view, business planning, domain modeling.
Application Architecture – logical view, defines applications, their boundaries, and collaboration.
Data Architecture – guides database and storage design.
Code Architecture – provides coding standards, module organization, and project structure.
Technical Architecture – selects runtime components (LVS, Nginx, Tomcat, etc.) and addresses non‑functional requirements.
Deployment Topology – physical nodes, high‑availability, networking, and hardware mapping.
Architecture levels are described as a pyramid: system level, application level, module level, and code level, each building upon the one below.
Strategic design (business architecture) guides tactical design (application architecture), which in turn informs technical implementation.
Evolution paths are presented:
Monolithic applications – simple three‑tier structure (web, business logic, database).
Distributed applications – services split by business functions, improving scalability and maintainability.
Microservices – fine‑grained services focusing on single business capabilities, offering faster deployment and technology diversity, but requiring higher operational effort.
Common architectural pitfalls are listed, such as over‑designing for uncertain futures, ignoring non‑functional requirements, and making premature decisions.
Reasonable architecture should satisfy business needs, be stable, performant, extensible, reusable, and secure, with metrics covering availability, efficiency, documentation, scalability, and security.
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.
Top Architect
Top Architect focuses on sharing practical architecture knowledge, covering enterprise, system, website, large‑scale distributed, and high‑availability architectures, plus architecture adjustments using internet technologies. We welcome idea‑driven, sharing‑oriented architects to exchange and learn together.
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.
