Software Architecture Cheat Sheet

Valentin Grigoryevsky
3 min readJan 5, 2020

Good Architecture is when the changes costs grow linearly.

Architects Types

Architects Types
Credit: Alexey Prokopchuk

Architecture Quality Attributes

  1. Performance — shows the response of the system to performing certain actions for a certain period of time.
  2. 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.
  3. 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.
  4. Reliability is an attribute of the system responsible for the ability to continue to operate under predefined conditions.
  5. Availability is part of reliability and is expressed as the ratio of the available system time to the total working time.
  6. 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.
  7. Maintainability is the ability of the system to support changes.
  8. Modifiability determines how many common changes need to be made to the system to make changes to each individual item.
  9. Testability shows how well the system allows performing tests, according to predefined criteria.
  10. Scalability is the ability of the system to handle load increases without decreasing performance, or the possibility to rapidly increase the load.
  11. Reusability/ Portability is a chance of using a component or system in other components/systems with small or no change.
  12. Supportability is the ability of the system to provide useful information for identifying and solving problems.

Sources

Architecture Patterns

Architecture Patterns
Credit: Vijini Mallawaarachchi
  1. Layered pattern
  2. Client-server pattern
  3. Master-slave pattern
  4. Pipe-filter pattern
  5. Broker pattern
  6. Peer-to-peer pattern
  7. Event-bus pattern
  8. Model-view-controller pattern
  9. Blackboard pattern
  10. Interpreter pattern

Sources

DDD — Domain-Driven Design

Software Technical Architecture
Software Technical Architecture

The Place of the Architecture in the Solution Delivery Flow

Software Engineering Information Model
Software Engineering Information Model

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

Credit: avolutionsoftware.com

What would you add to the list?

--

--