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

CSC308 Lecture 18

CSC308 Lecture 18

Software Engineering I
Software Architecture
(202302)

Javier Gonzalez-Sanchez

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

    5 Timeline 1989 Beck OO Thinking Architecture 1993 Gamma et al. GoF Patterns 1994 Garlan
  3. 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
  4. 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
  5. 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
  6. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    10 Model-View-Controller (This is NOT UML)
  7. 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
  8. 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]
  9. jgs

  10. 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
  11. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    28 Let’s Work Does my code for MVC and Blackboard Work?
  12. 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.