Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSE360 Lecture 22

CSE360 Lecture 22

Introduction to Software Engineering
Software Architecture II
(201806)

Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. CSE360
    Introduction to Software Engineering
    Lecture 22:
    Software Architecture II
    Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu
    Office Hours: By appointment

    View full-size slide

  2. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 2
    Previously
    • “horizontal” and “vertical” partitioning
    • define separate branches for each major function
    • coordinate communication between modules
    • design so that decision making and work are
    stratified
    • results in propagation of fewer side effects
    • results in software that is easier to extend

    View full-size slide

  3. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 3
    Architectural Patterns
    • Model-View-Controller (MVC)
    • Layered Architecture
    • Repository architecture (Blackboard)
    • Client-Server architecture

    View full-size slide

  4. Model-View-Controller
    Architecture Pattern

    View full-size slide

  5. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 5
    Model-View-Controller

    View full-size slide

  6. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 6
    MVC Implementation
    Subject

    View full-size slide

  7. Layered Architecture
    Architecture Patterns

    View full-size slide

  8. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 8
    A generic layered architecture
    User interface
    Core business logic/application functionality
    System utilities
    System support (OS, database etc.)
    User interface management
    Authentication and authorization

    View full-size slide

  9. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 9
    Layered architecture
    Description Organizes the system into layers with related functionality
    associated with each layer.
    A layer provides services to the layer above it so the lowest-level
    layers represent core services that are likely to be used throughout
    the system.
    When used Used when :
    • building new facilities on top of existing systems;
    • the development is spread across several teams with each
    team responsibility for a layer of functionality;
    • there is a requirement for multi-level security.
    Advantages Allows replacement of entire layers so long as the interface is
    maintained.
    Redundant facilities (e.g., authentication) can be provided in each
    layer to increase the dependability of the system.
    Disadvantages In practice, providing a clean separation between layers is often
    difficult and a high-level layer may have to interact directly with
    lower-level layers rather than through the layer immediately below
    it.
    Performance can be a problem because of multiple levels of
    interpretation of a service request as it is processed at each layer.

    View full-size slide

  10. Client-Server
    Architecture Patterns

    View full-size slide

  11. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 11
    Client-Server

    View full-size slide

  12. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 12
    Client-Server
    Description The functionality of the system is organized into services.
    Each service delivered from a separate server.
    Clients are users of these services and access servers to make use of
    them.
    When used Used when data has to be accessed from a range of locations.
    May also be used when the load on a system is variable.
    Advantages Distributed system
    Disadvantages Each service is a single point of failure so susceptible to denial of
    service attacks or server failure.
    Performance may be unpredictable because it depends on the
    network as well as the system.

    View full-size slide

  13. Blackboard
    Architecture Patterns

    View full-size slide

  14. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 14
    Blackboard

    View full-size slide

  15. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 15
    Blackboard
    Description All data in a system is managed in a central repository
    Components do not interact directly, only through the repository.
    When used when you have a system in which large volumes of information are
    generated that has to be stored for a long time.
    When the inclusion of data in the repository triggers an action or tool.
    Advantages Components can be independent—they do not need to know of the
    existence of other components.
    Changes made by one component can be propagated to all
    components.
    Disadvantages The repository is a single point of failure so problems in the repository
    affect the whole system.
    May be inefficiencies in organizing all communication through the
    repository.

    View full-size slide

  16. CSE360 – Introduction to Software Engineering
    Javier G onzalez-Sanchez
    javiergs@ asu.edu
    Sum m er 2017
    Disclaim er. These slides can only be used as study m aterial for the class C SE360 at ASU. They cannot be distributed or used for another purpose.

    View full-size slide