Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

jgs Previously …

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

jgs Next Step Software Architecture

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

jgs Architecture Patterns Model-View-Controller

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

jgs Architecture Patterns Blackboard

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

jgs To Be Continued…

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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]

Slide 26

Slide 26 text

jgs

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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.