Samnang Chhun | MCTS: Windows Applications | myLab(Yoolk)
What Is “Layering”?
Pros & Cons Dividing into Layers
Layers and Tiers
Common Layers in Information System
Is one of the most common techniques that
software designers use to break apart a
complicated software system.
Each layer is a package of software that has
a well-defined interface and a few well-
known dependencies with other layers.
Each layer implements one technical
function within the application. E.g. a data
access layer is responsible for
encapsulating the technical means for
accessing a database.
• You can understand a single layer as a coherent whole without
knowing much about the other layers.
• Separation of concerns among components.
• Components should be reusable by multiple applications.
• Independent teams should be able to work on parts of the
• You minimize dependencies between layers.
• Various components of the solution are independently deployed,
maintained, and updated, on different time schedules.
• Layers encapsulate some, but not all, things well. As a result you
sometimes get cascading changes.
• Extra layers can harm performance.
Often the two are used as synonyms, but
most people see tier as implying a physical
UI / UX Layer: The actual user interface, be
it a Windows application or an API set
consumed by a developer (Windows, Web,
PocketPC, Windows Services, Web
Application Layer: The process of
coordinating all the other layers to create an
application's true functionality, independent
of the UI / UX that it is implemented with
Business Layer: The real business
process being modeled - often called the
Services Layer: Interfaces and hooks into
external resources, such as hardware
dependencies, web services, etc
Data Persistence Layer: Often called the
Data Access Layer, this object set is
responsible for persisting data to the
datastore being used in the application
(Oracle, SQL Server, XML, etc.)
Unit Testing Layer(s): The only layer
that spans the process of other layers. Unit
Testing and Test Driven
Development/Design allow us to ensure that
the code works every time, provides easier