Layered Architecture
In the previous pages, we decomposed a software product horizontally into use cases. In this page, we look at a second, complementary form of decomposition: layering.
Use cases answer the question: What business responsibilities does the product implement?
Layers answer a different question: What type of work is being performed?
Layered architecture does not introduce new responsibilities. It organizes existing responsibilities so they can evolve independently.
A single use case typically requires several different kinds of work:
If these responsibilities are mixed inside the same components, the use case becomes hard to maintain and hard to test. Changes in one concern create unintended effects in others.
Layering separates responsibilities by their nature. It keeps each type of work in its own conceptual place.
In this book, the functional architecture of a business software product naturally forms four logic layers:
The diagram below shows how responsibilities are distributed across the four logic layers.
Dependencies follow the processing flow shown in the diagram.
Use cases and layers complement each other.
This means a single use case may contain components from multiple layers. At the same time, a single layer may contain components belonging to many use cases.
Together, use cases and layers form the software architecture.
When use cases are isolated and layers are respected:
Layering is therefore not a stylistic preference. It preserves clarity as systems grow.
Table of Content Software Architecture Previous: Use Cases Architecture Next: Functional Architecture
Business Process Programming in .Net
© 20042026 Laskarzhevsky Software Inc.
Unless otherwise noted, the content of this website is licensed under the
Creative Commons Attribution 4.0 International License (CC BY 4.0).
Code examples are provided under the MIT License.
You are free to share and adapt the material provided that appropriate
credit is given and any modifications are clearly indicated.
The information provided on this website is for educational purposes only.
The author and publisher make no warranties regarding the completeness
or suitability of the information and are not responsible for any damages
resulting from its use.