Mariusz Postol

Mariusz Postol

  • 419
  • 3.8k
  • 45.3k

Program Layered Architecture Benefits

Jun 20 2024 7:40 PM

Hierarchical architecture is often contrasted with spaghetti architecture if spaghetti can be called architecture at all. To prove there is no alternative let's summarize what we got in return for the layered architecture.

  1. Separating the layers allows you to carry out design work independently assuming that the API, i.e. the layer interface, is abstract. This way, a program can be developed in parallel. There are two benefits: we can employ additional specialists and shorten the product development time and time to market.
  2. The layered architecture enables portability from platform to platform.
  3. The lack of cyclic references improves modifications and limits side effects. This way maintenance costs can be reduced.
  4. Efficiency of the design process may be increased by applying the principle of separation of concerns, i.e. good planning of layers will avoid being distracted by solving several threads at the same time.
  5. Layers can not only be implemented into separate projects but implemented on other physical machines. (a) Executing the same layer in parallel on many computers horizontal scalability is deployed. (b) The ability to execute individual layers on independent hardware platforms means vertical scalability.

Can you provide any additional benefit tightly coupled with layered architecture?

 


Answers (4)