Software Architecture Cheat Sheet
3 min readJan 5, 2020
Good Architecture is when the changes costs grow linearly.
Architects Types
Architecture Quality Attributes
- Performance — shows the response of the system to performing certain actions for a certain period of time.
- Interoperability is an attribute of the system or part of the system that is responsible for its operation and the transmission of data and its exchange with other external systems.
- Usability is one of the most important attributes, because, unlike in cases with other attributes, users can see directly how well this attribute of the system is worked out.
- Reliability is an attribute of the system responsible for the ability to continue to operate under predefined conditions.
- Availability is part of reliability and is expressed as the ratio of the available system time to the total working time.
- Security is responsible for the ability of the system to reduce the likelihood of malicious or accidental actions as well as the possibility of theft or loss of information.
- Maintainability is the ability of the system to support changes.
- Modifiability determines how many common changes need to be made to the system to make changes to each individual item.
- Testability shows how well the system allows performing tests, according to predefined criteria.
- Scalability is the ability of the system to handle load increases without decreasing performance, or the possibility to rapidly increase the load.
- Reusability/ Portability is a chance of using a component or system in other components/systems with small or no change.
- Supportability is the ability of the system to provide useful information for identifying and solving problems.
Sources
- Quality attributes in Software Architecture. September 22, 2017
- 12 software architecture quality attributes. May 3, 2018
Architecture Patterns
- Layered pattern
- Client-server pattern
- Master-slave pattern
- Pipe-filter pattern
- Broker pattern
- Peer-to-peer pattern
- Event-bus pattern
- Model-view-controller pattern
- Blackboard pattern
- Interpreter pattern
Sources
DDD — Domain-Driven Design
The Place of the Architecture in the Solution Delivery Flow
Sources
Views VS Viewpoints
A view is what you see. It is always specific to the architecture for which it is created.
A viewpoint is where you are looking from — the vantage point or perspective that determines what you see. Viewpoints are generic and can be stored in libraries for re-use.
Sources
Architecture Frameworks
Sources
What would you add to the list?