layering

7
Samnang Chhun | MCTS: Windows Applications | myLab(Yoolk) Layering

Upload: samnang-chhun

Post on 06-May-2015

502 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Layering

Samnang Chhun | MCTS: Windows Applications | myLab(Yoolk)

Layering

Page 2: Layering

Agenda

What Is “Layering”?Pros & Cons Dividing into LayersLayers and TiersCommon Layers in Information System

Page 3: Layering

What Is "Layering"?

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.

Page 4: Layering

Pros & Cons Dividing into Layers

Pros

• 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 solution.• You minimize dependencies between layers.• Various components of the solution are independently deployed, maintained, and updated, on different time schedules.

Cons

• Layers encapsulate some, but not all, things well. As a result you sometimes get cascading changes.

• Extra layers can harm performance.

Page 5: Layering

Layers and Tiers

Often the two are used as synonyms, but most people see tier as implying a physical separation.

Page 6: Layering

Common Layers in Information System 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 Services, etc)

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 "Domain" layer.

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 maintenance, etc.

Page 7: Layering