Software Architecture Cheat Sheet for Daily Usage

Software Architecture smells and heuristics

Ali Zeynalli
3 min readAug 5, 2021
Photo by Jacob Sapp on Unsplash

Having clean software architecture and staying conform to pre-defined design principles from start of the project is one of the best ways to avoid possible technical debt in the future of that software system. Clean Software Design is a key point for an effective software product.
Let us have a look at some important principles, rules, guidelines that ensure a clean software design:

Principles:

  1. Loose Coupling — if classes use each other, they are coupled together. The less classes are coupled, the easier is to change them.
  2. High Cohesion — degree to which elements of a whole belong together. Components of the class should be highly cohesive.
  3. Locality — Changes, maintenance, extensions are only local. This leads to no harming whole environment.
  4. Removeable — Software Components should be easily removeable.
  5. Small Components — software system should be only of small components ideally each doing only one task.

Class Design:

  1. Single Responsibility Principle (SRP) — class should do only one task.
  2. Open Closed Principle (OCP) — class should be…

--

--

Ali Zeynalli

IT-Architect | BMW Group | M.Sc. Technical University of Berlin