$30 off During Our Annual Pro Sale. View Details »

CSE564 Lecture 22

CSE564 Lecture 22

Software Design
Software Architecture
(202211)

Javier Gonzalez-Sanchez
PRO

September 22, 2020
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSE 564
    Software Design
    Lecture 22: Software Architecture
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View Slide

  2. jgs
    Previously …
    GoF Patterns

    View Slide

  3. jgs
    564 00010100
    GUI
    Box
    Name1
    Name2
    class Name1 {
    }
    class Name2 {
    method(){
    Name1
    Cat
    }
    }
    class Cat
    extends Name1 {
    Car
    }
    class Car {
    }
    Cat
    7. Allow
    Drag and Drop
    Car

    View Slide

  4. jgs
    564 00010100
    § UML Class Diagram
    § Model-View-Controller
    § Observer
    § Singleton (Blackboard)
    § Decorator
    § Other: chain of responsibilities, strategy, bridge,
    § Source Code
    § JavaDoc (Classes and Methods)

    View Slide

  5. jgs
    564 00010100
    Questions

    View Slide

  6. jgs
    564 00010100
    It is This Time of the Semester When …

    View Slide

  7. jgs
    564 00010100
    It is This Time of the Semester When …
    § Do NOT be a Grade Grubber
    § Grading is done by applying the same policies to all students as it
    is described in the syllabus.
    § It is unethical to bring to your instructor's attention the possible
    impact of your course grade on your plans, including graduation,
    scholarships, jobs, etc.
    Do not send requests to your
    instructor asking for a grade you
    did not earn with your work.

    View Slide

  8. jgs
    Next Step
    Software Architecture

    View Slide

  9. jgs
    564 00010100
    Timeline
    1989 Beck
    OO Thinking Architecture
    1993 Gamma et al.
    GoF Patterns
    1994 Garlan

    View Slide

  10. jgs
    564 00010100
    Definition
    § Software design
    It is responsible for the code level design: what each class is doing, its
    relationships, and scope.
    § Software architecture
    It is responsible for the skeleton and the high-level organization of a
    software.
    It identifies the main structural modules (or components) in a system and
    the relationships between them.

    View Slide

  11. jgs
    564 00010100
    Architecture Goals
    § Define separate branches for each major function
    § Coordinate communication between modules
    § Limit propagation of side effects
    § Facilitate extensibility, modifiability and reuse

    View Slide

  12. jgs
    564 00010100
    Architectural Patterns
    1. Model-View-Controller (MVC)
    2. Layered Architecture
    3. Repository Architecture (Blackboard)
    4. Client-Server architecture

    View Slide

  13. jgs
    Architecture Patterns
    Model-View-Controller

    View Slide

  14. jgs
    564 00010100
    Model-View-Controller

    View Slide

  15. jgs
    564 00010100
    Implementation :: View

    View Slide

  16. jgs
    564 00010100
    Implementation :: Controller

    View Slide

  17. jgs
    Architecture Patterns
    Blackboard

    View Slide

  18. jgs
    564 00010100
    Blackboard

    View Slide

  19. jgs
    564 00010100
    Drafting an Implementation

    View Slide

  20. jgs
    564 00010100
    What about Blackboard
    § Singleton (yes or not)?
    § Create Blackboard in main method (yes or not)?
    § Connection between Blackboard and Professor (association, aggregation,
    composition, realization, generalization) ?
    § Connection between Blackboard and Student (association, aggregation,
    composition, realization, generalization) ?
    § Connection between Blackboard and Classroom (association, aggregation,
    composition, realization, generalization) ?

    View Slide

  21. jgs
    564 00010100
    Implementation :: Classroom

    View Slide

  22. jgs
    564 00010100
    Implementation :: Professor

    View Slide

  23. jgs
    564 00010100
    Implementation :: Student

    View Slide

  24. jgs
    564 00010100
    Implementation :: Blackboard

    View Slide

  25. jgs
    564 00010100
    Drafting an Implementation

    View Slide

  26. jgs
    564 00010100
    Let’s Work

    View Slide

  27. jgs
    To be continued …

    View Slide

  28. jgs
    CSE 564 Software Design
    Javier Gonzalez-Sanchez, Ph.D.
    [email protected]
    Fall 2021
    Copyright. These slides can only be used as study material for the class CSE564 at ASU.
    They cannot be distributed or used for another purpose.

    View Slide