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

CSC308 Lecture 15

CSC308 Lecture 15

Software Engineering I
Software Architecture
(202210)

Javier Gonzalez-Sanchez
PRO

October 28, 2022
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs CSC 308 Software Engineering I Lecture 15: Software Architecture

    Dr. Javier Gonzalez-Sanchez [email protected] users.csc.calpoly.edu/~javiergs | javiergs.com Building 14 -227 Office Hours: By appointment
  2. jgs Previously … GoF Patterns

  3. jgs Fall 2022 | 00000010 GoF Patterns

  4. jgs Next Step Software Architecture

  5. jgs Fall 2022 | 00000010 Timeline 1989 Beck OO Thinking

    Architecture 1993 Gamma et al. GoF Patterns 1994 Garlan
  6. jgs Fall 2022 | 00000010 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.
  7. jgs Fall 2022 | 00000010 Architecture Goals § Define separate

    branches for each major function § Coordinate communication between modules § Limit propagation of side effects § Facilitate extensibility, modifiability and reuse
  8. jgs Fall 2022 | 00000010 Architectural Patterns 1. Model-View-Controller (MVC)

    2. Layered Architecture 3. Repository Architecture (Blackboard) 4. Client-Server architecture
  9. jgs Architecture Patterns Model-View-Controller

  10. jgs Fall 2022 | 00000010 Model-View-Controller

  11. jgs Fall 2022 | 00000010 Model-View-Controller

  12. jgs Fall 2022 | 00000010 Implementation :: View

  13. jgs Fall 2022 | 00000010 Implementation :: Controller

  14. jgs Architecture Patterns Blackboard

  15. jgs Fall 2022 | 00000010 Blackboard

  16. jgs Fall 2022 | 00000010 Drafting an Implementation

  17. jgs Fall 2022 | 00000010 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) ?
  18. jgs Fall 2022 | 00000010 Implementation :: Classroom

  19. jgs Fall 2022 | 00000010 Implementation :: Professor

  20. jgs Fall 2022 | 00000010 Implementation :: Student

  21. jgs Fall 2022 | 00000010 Implementation :: Blackboard

  22. jgs Fall 2022 | 00000010 Drafting an Implementation

  23. jgs Client-Server

  24. jgs Fall 2022 | 00000010 Client-Server

  25. jgs Fall 2022 | 00000010 Client-Server

  26. jgs Fall 2022 | 00000010 Client-Server Description § 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.
  27. jgs Fall 2022 | 00000010 Implementation :: Server chrestomathy: https://www.javatpoint.com/socket-programming

  28. jgs Fall 2022 | 00000010 Implementation :: Client chrestomathy: https://www.javatpoint.com/socket-programming

  29. jgs Fall 2022 | 00000010 Questions

  30. jgs

  31. jgs CSC 308 Software Engineering I Lab 15: Tools: Astah

    Dr. Javier Gonzalez-Sanchez [email protected] users.csc.calpoly.edu/~javiergs | javiergs.com Building 14 -227 Office Hours: By appointment
  32. jgs Test Yourselves

  33. jgs Fall 2022 | 00000010 Project – User selects Line

    and clicks Run ✅
  34. jgs Fall 2022 | 00000010 Team Work

  35. jgs Fall 2022 | 00000010 Questions

  36. jgs CSC 308 Software Engineering I Javier Gonzalez-Sanchez, Ph.D. [email protected]

    Fall 2022 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.