Applying Architectural Styles and Patterns - PowerPoint PPT Presentation

About This Presentation
Title:

Applying Architectural Styles and Patterns

Description:

... experience from the software engineering community design productivity can be improved. ... An architectural style is a framework for a solution and not ... – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 18
Provided by: robertw8
Learn more at: https://www.ecs.csun.edu
Category:

less

Transcript and Presenter's Notes

Title: Applying Architectural Styles and Patterns


1
Applying Architectural Styles and Patterns
2
Outline
  • Defining Architectural Patterns and Style
  • The activation model
  • Styles and Quality Attributes
  • Common Architectural Styles
  • Dataflow systems
  • Call-and-return systems
  • Independent components
  • Virtual machines
  • Respositories

3
Introduction
  • Relying solely on design operators to design an
    architecture can be a slow process.
  • By utilizing existing design experience from the
    software engineering community design
    productivity can be improved.
  • There are two types of reusable architectural
    products
  • Product families
  • Architectural styles and patterns

4
Architectural Style
  • It is a type of metamodel that prescribes a set
    of elements and their relationships that
    characterize a system based on the style.
  • These elements are expressed as components and
    connectors.
  • Their relationships are the constraints on how
    components and connectors may be combined.

5
Architectural Patterns
  • A pattern is a solution that strikes some balance
    between competing forces.
  • However, what makes it a pattern is the fact that
    it is recurring.
  • If a design solution in its essential distilled
    form is found in multiple systems and is a
    successful design, then this solution is a
    pattern.

6
Architectural Patterns (Contd)
  • A pattern language is a set of patterns, together
    with the rules for describing how patterns are
    created and how they must be arranged with
    respect to other patterns.
  • The patterns are the vocabulary of the language,
    and the rules for their implementation and
    combination are the grammar.
  • Patterns in a pattern language can be constructed
    from other patterns.

7
Architectural Styles
  • An architectural style is a framework for a
    solution and not really a solution itself.
  • The selection of a style limits the scope of the
    solution space.
  • According to Ivar Jacobson, the architectural
    style of a system is the denotation of the
    modeling languages used when modeling the
    system.
  • It includes the guiding principles and
    prescriptions that the other development model
    elements must satisfy.

8
Architectural Styles (Contd)
  • It is the foundation of a philosophy of building.
  • An architectural style defines a vocabulary of
    components and connector types and a set of
    constraints on how they can be combined.
  • Most applications, however, are a combination of
    styles, i.e., they have a heterogeneous
    architectural style.
  • There are many parameters that we can use to
    characterize software architecture
  • The way in which control is passed between
    components (activation model)
  • The quality attribute emphasis (e.g.,
    maintainability and performance)

9
Activation Model
  • This model describes how components are activated
    and how information is passed between them (the
    control principle of the architecture).
  • In classic procedural languages and their
    object-oriented derivatives, method invocation
    and method execution are bound, i.e., method
    execution follows immediately from method
    invocation.
  • In languages like Smalltalk method invocation and
    method execution are decoupled.

10
Activation Model (Contd)
  • At the design level you can simulate these
    activation models in the language level.
  • Synchronous communication means that the client
    component activates a server component and then
    waits for a response.
  • A variation of this is the balking model in which
    a component may reject a request for any reason.

11
Activation Model (Contd)
  • Another variation is the timeout in which a
    client component assumes that the server has
    failed to complete a request after a certain
    amount of time.
  • Asynchronous communication means that the client
    doesnt wait on a response from the server before
    continuing.
  • In the delegating pattern, a client component
    invokes a server component and provides an
    address to which the response is to be sent.

12
Activation Model Patterns of Information Passing
  • Data elements can be passed directly between
    processing elements (pipes and filters).
  • Data elements may also be shared in a central
    store and accessed by different processing
    elements (repository).

13
Uses of the Activation Model
  • To compare different architectural styles.
  • To identify the appropriate architectural style
    for the entire system or the best combination of
    architectural styles.

14
Styles and Quality Attributes
  • Each style emphasizes a set of quality attributes
    while de-emphasizing another set.
  • Pipes and filters emphasizes reusability and
    adaptability but sacrifices maintainability with
    respect to changes in data representation.
  • Object-oriented systems emphasize maintainability
    but are not easily reused

15
Styles and Quality Attributes (Contd)
  • Repository-based systems emphasize adaptability
    and performance but are not highly reusable or
    maintainable in terms of changes to algorithms or
    data representations
  • Styles can be combined in order to exhibit
    different quality attributes.

16
Common Architectural Styles (Adapted from Shaw
and Garlan)
  • Dataflow systems
  • Batch sequential
  • Pipes and filters
  • Call-and-return systems
  • Main program and subroutine
  • Object-oriented systems
  • Hierarchical layers

17
Common Architectural Styles (Contd))
  • Independent components
  • Communicating processes
  • Event systems
  • Virtual machines
  • Interpretors
  • Rule-based systems
  • Repositories
  • Databases
  • Hypertext systems
  • Blackboards
Write a Comment
User Comments (0)
About PowerShow.com