17
Software Architecture DESIGN AND PATTERNS

Software Architecture Design Patterns

Embed Size (px)

Citation preview

Page 1: Software Architecture Design Patterns

Software

ArchitectureDESIGN AND PATTERNS

Page 2: Software Architecture Design Patterns

Content

Important Terms

Usage of Patterns

Three Principal Layers

Example

Page 3: Software Architecture Design Patterns

Important Terms

Software Architecture

„ Software architecture is the high level structure of a software system,

the discipline of creating such structures, and the documentation of

these structures“

Page 4: Software Architecture Design Patterns

Important Terms

Pattern

An architectural pattern is a general, reusable solution to a commonly

occurring problem in software architecture within a given

context. Architectural patterns are similar to software design

patterns but have a broader scope.

Page 5: Software Architecture Design Patterns

Usage of Patterns

Reasons :

Part of software documentation

Reduce time consuption

Reduce costs of application maintance

Language neutral

Page 6: Software Architecture Design Patterns

Usage of Patterns

Layering is common technique of defining a parts of application

where patterns should be applyed.

A program layer is an independent operating component of a software program.

Page 7: Software Architecture Design Patterns

Usage of Patterns

Benefits of layering :

You can understanding of a single layer as a coherent whole without

knowing much about the other layers

You can substitute layers with alternative implementations of the same

basic services

You minimize dependencies between layers

Once you have a layer built, you can use it for many higher-level

services

Page 8: Software Architecture Design Patterns

Usage of Patterns

Three Principal Layers

Presentation layer

Data source layer

Domain logic layer

Page 9: Software Architecture Design Patterns

Three Principal Layers

Presentation layer

Provision of services, display of information (e.g., in Windows or HTML, handling of user request (mouse clicks, keyboard hits), HTTP requests, command-line invocations, batch API)

Examples:

Model View Controller

Page Controller

Front Controller

Template View

Transform View

Two Step View

Application Controller

Page 10: Software Architecture Design Patterns

Three Principal Layers

Data source layer

Communication with databases, messaging systems, transaction

managers, other packages

Examples:

Table Data Gateway

Row Data Gateway

Active Record

Data Mapper

Page 11: Software Architecture Design Patterns

Three Principal Layers

Domain logic layer

Logic that is the real point of the system

Examples:

Transaction Script

Domain Model

Table Module

Service Layer

Page 12: Software Architecture Design Patterns

Three Principal Layers

Best practice : One layer – one solution.

Page 13: Software Architecture Design Patterns

Example

Page 14: Software Architecture Design Patterns

Example

Page 15: Software Architecture Design Patterns

Example

Page 16: Software Architecture Design Patterns

Example

Page 17: Software Architecture Design Patterns

Thank you

Questions?