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

CSC308 Lecture 18

CSC308 Lecture 18

Software Engineering I
Software Architecture
(202302)

Javier Gonzalez-Sanchez
PRO

November 02, 2022
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSC 308
    Software Engineering 1
    Lecture 18:
    Software Architecture I
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View Slide

  2. jgs
    Previously …

    View Slide

  3. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 3
    GoF Patterns

    View Slide

  4. jgs
    Next Step
    Software Architecture

    View Slide

  5. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 5
    Timeline
    1989 Beck
    OO Thinking Architecture
    1993 Gamma et al.
    GoF Patterns
    1994 Garlan

    View Slide

  6. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 6
    § 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.
    Definition

    View Slide

  7. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 7
    § Define separate branches for each major function
    § Coordinate communication between modules
    § Limit propagation of side effects
    § Facilitate extensibility, modifiability and reuse
    Architecture Goals

    View Slide

  8. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 8
    1. Model-View-Controller (MVC)
    2. Layered Architecture
    3. Repository Architecture (Blackboard)
    4. Client-Server architecture
    Architectural Patterns

    View Slide

  9. jgs
    Architecture Patterns
    Model-View-Controller

    View Slide

  10. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 10
    Model-View-Controller (This is NOT UML)

    View Slide

  11. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 11
    Model-View-Controller

    View Slide

  12. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 12
    Implementation :: View

    View Slide

  13. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 13
    Implementation :: Controller

    View Slide

  14. jgs
    Architecture Patterns
    Blackboard

    View Slide

  15. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 15
    Blackboard

    View Slide

  16. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 16
    Drafting an Implementation

    View Slide

  17. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 17
    § 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) ?
    What about Blackboard

    View Slide

  18. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 18
    Implementation :: Classroom

    View Slide

  19. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 19
    Implementation :: Professor

    View Slide

  20. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 20
    Implementation :: Student

    View Slide

  21. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 21
    Implementation :: Blackboard

    View Slide

  22. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 22
    Drafting an Implementation

    View Slide

  23. jgs
    To Be Continued…

    View Slide

  24. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 24
    Questions

    View Slide

  25. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 25
    Office Hours
    Tuesday and Thursday 3 - 5 pm
    But an appointment required
    Sent me an email – [email protected]

    View Slide

  26. jgs

    View Slide

  27. jgs
    CSC 308
    Software Engineering 1
    Lab 18:
    Software Architecture
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View Slide

  28. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 28
    Let’s Work
    Does my code for
    MVC and Blackboard
    Work?

    View Slide

  29. jgs
    CSC 308 Software Engineering I
    Javier Gonzalez-Sanchez, Ph.D.
    [email protected]
    Winter 2023
    Copyright. These slides can only be used as study material for the class CSC308 at Cal Poly.
    They cannot be distributed or used for another purpose.

    View Slide