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

CSE360 Lecture 21

CSE360 Lecture 21

Introduction to Software Engineering
Software Architecture
(201806)

Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

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

    View full-size slide

  2. Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 2
    Architectural design
    • Architectural design is concerned with
    understanding how a software system should be
    organized and designing the overall structure of
    that system.
    • Architecture links design and requirements. It
    identifies the main structural components in a
    system and the relationships between them.

    View full-size slide

  3. Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 3
    Architectural representations
    • Simple, informal block diagrams showing entities
    and relationships are the most frequently used
    method for documenting software architectures.
    • But these have been criticized because they lack
    semantics, do not show the types of relationships
    between entities nor the visible properties of entities
    in the architecture.
    • However, they are useful for communication with
    stakeholders and for project planning.

    View full-size slide

  4. Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 4
    Architectural design decisions
    Is there a generic application
    architecture that can act as a
    template for the system that is
    being designed?
    How will the system be
    distributed across hardware
    cores or processors?
    What architectural patterns or
    styles might be used?
    What will be the fundamental
    approach used to structure
    the system?
    How will the structural
    components in the system be
    decomposed into
    sub-components?
    What strategy will be used to
    control the operation of the
    components in the system?
    What architectural organization
    is best for delivering the
    non-functional requirements
    of the system?
    How should the architecture
    of the system be
    documented?
    ?

    View full-size slide

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

    View full-size slide

  6. Model-View-Controller
    Architecture Pattern

    View full-size slide

  7. Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 7
    Model-View-Controller

    View full-size slide

  8. Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 8
    Example

    View full-size slide

  9. Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 9
    Model-View-Controller
    Description Separates presentation and interaction from the system data into three
    logical components:
    • Model component manages the system data and associated operations
    on that data.
    • View component defines and manages how the data is presented to the
    user.
    • Controller component manages user interaction (e.g., key presses,
    mouse clicks, etc.) and passes these interactions to the View and the
    Model.
    When used Used when there are multiple ways to view and interact with data. Also used
    when the future requirements for interaction and presentation of data are
    unknown.
    Advantages Allows the data to change independently of its representation and vice
    versa. Supports presentation of the same data in different ways with
    changes made in one representation shown in all of them.
    Disadvantages Can involve additional code and code complexity when the data model
    and interactions are simple.

    View full-size slide

  10. Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 10
    MVC Implementation
    Subject

    View full-size slide

  11. 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