What Exactly Is Software Architecture? Clarifying Systems, Modules, and Frameworks
This article demystifies software architecture by defining systems, subsystems, modules, components, and frameworks, illustrating their relationships with real‑world examples and diagrams, and proposing a concise definition of architecture as the top‑level structure of a software system.
System and Subsystem
According to Wikipedia, a system is a group of interrelated elements that operate under a set of rules to achieve a function that individual elements cannot accomplish alone. Key points:
Association : Elements must be related; unrelated items stacked together do not form a system.
Rules : Elements follow coordinated rules rather than acting independently.
Capability : The system exhibits capabilities beyond the sum of its parts.
A subsystem is simply a system that exists as part of a larger system, sharing the same definition but viewed from a different perspective.
Example with WeChat:
WeChat itself is a system containing chat, login, payment, Moments, etc.
Moments is a subsystem that includes feeds, comments, likes.
Comments may further contain anti‑spam, moderation, publishing, storage subsystems.
Some subsystems (e.g., storage) consist of modules/components such as MySQL or Redis, which are infrastructure rather than business subsystems.
Module and Component
Modules and components are often confused. Wikipedia defines:
Software module – a cohesive, tightly coupled unit of software that includes code and data structures, exposing interfaces for functionality.
Software component – a self‑contained, language‑independent, reusable unit that can be assembled into applications.
The distinction lies in perspective:
Modules are logical partitions aimed at responsibility separation.
Components are physical units designed for reuse and replaceability.
Example: In a simple student‑information‑management system, logical modules might be "login", "profile", "grades", while physical components could be Nginx, a web server, and MySQL.
Framework and Architecture
A software framework provides a set of conventions (e.g., MVC, MVP, MVVM) and basic functionalities (e.g., Spring MVC’s annotations, security, JPA) to help developers implement those conventions.
In contrast, software architecture describes the top‑level structure of a system, the guiding principles, and how components are organized.
Common confusion arises when people say “MVC architecture” or “MVP architecture”. The underlying issue is that “architecture” refers to the structural view, while “framework” refers to the concrete implementation that supports a particular convention.
Different Architectural Views
Using the student‑management system example, three architectural views are illustrated:
• Business‑logic view (functional decomposition).
• Physical deployment view (servers, databases, network).
• Development‑standard view (e.g., MVC framework), which can also be called an “MVC architecture”.
These views correspond to the classic “4+1” architectural model used in RUP.
Re‑defining Architecture
Based on Wikipedia, the article proposes a concise definition: Software architecture is the top‑level structure of a software system. This definition ties together the earlier concepts:
The system consists of interrelated individuals (subsystems, modules, components).
Rules dictate how those individuals cooperate.
The “top‑level structure” distinguishes architecture from lower‑level subsystem or component designs.
Conclusion
The article clarifies the often‑confused terms “system”, “subsystem”, “module”, “component”, “framework”, and “architecture”, and offers a unified definition of architecture as the top‑level structural view of a software system. Readers are encouraged to reflect on how their own understanding of architecture aligns with this definition.
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.
IT Architects Alliance
Discussion and exchange on system, internet, large‑scale distributed, high‑availability, and high‑performance architectures, as well as big data, machine learning, AI, and architecture adjustments with internet technologies. Includes real‑world large‑scale architecture case studies. Open to architects who have ideas and enjoy sharing.
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.
