Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

jgs Previously … GoF Patterns

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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)

Slide 5

Slide 5 text

jgs 564 00010100 Questions

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

jgs Next Step Software Architecture

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

jgs Architecture Patterns Model-View-Controller

Slide 14

Slide 14 text

jgs 564 00010100 Model-View-Controller

Slide 15

Slide 15 text

jgs 564 00010100 Implementation :: View

Slide 16

Slide 16 text

jgs 564 00010100 Implementation :: Controller

Slide 17

Slide 17 text

jgs Architecture Patterns Blackboard

Slide 18

Slide 18 text

jgs 564 00010100 Blackboard

Slide 19

Slide 19 text

jgs 564 00010100 Drafting an Implementation

Slide 20

Slide 20 text

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) ?

Slide 21

Slide 21 text

jgs 564 00010100 Implementation :: Classroom

Slide 22

Slide 22 text

jgs 564 00010100 Implementation :: Professor

Slide 23

Slide 23 text

jgs 564 00010100 Implementation :: Student

Slide 24

Slide 24 text

jgs 564 00010100 Implementation :: Blackboard

Slide 25

Slide 25 text

jgs 564 00010100 Drafting an Implementation

Slide 26

Slide 26 text

jgs 564 00010100 Let’s Work

Slide 27

Slide 27 text

jgs To be continued …

Slide 28

Slide 28 text

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.