Software
Architecture
DESIGN AND PATTERNS
Content
 Important Terms
 Usage of Patterns
 Three Principal Layers
 Example
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“
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.
Usage of Patterns
 Reasons :
 Part of software documentation
 Reduce time consuption
 Reduce costs of application maintance
 Language neutral
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.
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
Usage of Patterns
 Three Principal Layers
 Presentation layer
 Data source layer
 Domain logic layer
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
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
Three Principal Layers
 Domain logic layer
 Logic that is the real point of the system
 Examples:
 Transaction Script
 Domain Model
 Table Module
 Service Layer
Three Principal Layers
 Best practice : One layer – one solution.
Example
Example
Example
Example
Thank you
 Questions?

Software Architecture Design Patterns

  • 1.
  • 2.
    Content  Important Terms Usage of Patterns  Three Principal Layers  Example
  • 3.
    Important Terms  SoftwareArchitecture  „ Software architecture is the high level structure of a software system, the discipline of creating such structures, and the documentation of these structures“
  • 4.
    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.
  • 5.
    Usage of Patterns Reasons :  Part of software documentation  Reduce time consuption  Reduce costs of application maintance  Language neutral
  • 6.
    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.
  • 7.
    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
  • 8.
    Usage of Patterns Three Principal Layers  Presentation layer  Data source layer  Domain logic layer
  • 9.
    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
  • 10.
    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
  • 11.
    Three Principal Layers Domain logic layer  Logic that is the real point of the system  Examples:  Transaction Script  Domain Model  Table Module  Service Layer
  • 12.
    Three Principal Layers Best practice : One layer – one solution.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.