Home > Architecture > Layering

Layering

Layering is one of the most common techniques that software designers use to break apart a complicated software system. It serves to help us in Separation of Concerns.

Advantages of Layering

  • Reuse of Layers
  • Standardization possibilities
  • Dependencies are kept local
  • Exchangeability
  • Raise the level of Abstraction

Some of the Drawbacks

  • Cascades of changing behavior (Ex: Adding a field to the database and its ripple effect in all the layers)
  • Lower efficiency
  • Layers lacks support for the easy recombination and reuse of components.

POSA Volume 1 and PoEAA are good places to read more stuff on this.

We’ll look into some of the popular schools of thought on layering.

POSA: Pattern Oriented Software Architecture

PoEAA: Patterns of Enterprise Application Architecture

Categories: Architecture
  1. Srinivasan
    September 5, 2009 at 9:53 am

    Sendhil, I would look forward to your blogs on Layering. when I ask young people on layering, i get interesting answers

  1. November 19, 2010 at 11:01 pm

Leave a comment