Slide 1

Slide 1 text

jgs CSE 564 Software Design Lecture 25: Final Review Dr. Javier Gonzalez-Sanchez [email protected] javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment

Slide 2

Slide 2 text

jgs Structural Complexity Instability, Abstractness, and Distance

Slide 3

Slide 3 text

jgs 564 00000100 Example

Slide 4

Slide 4 text

jgs 564 00000100 • Instability = Cout (Cin + Cout) Stable Abstraction Principle (SAP)

Slide 5

Slide 5 text

jgs 564 00000100 Distance § Distance: how far a package is away from the Main Sequence § D = A + I – 1 § Values -1 to 1 § Absolute Distance |D|

Slide 6

Slide 6 text

jgs 564 00000100 Example ITeamA = 6 / 0 + 6 = 1 ATeamA = 0 DTeamA = 0 + 1 – 1 = 0 IJlabel = 0 / 4 + 0 = 0 AJlabel = 0 DJlabel = 0 + 0 – 1 = -1 |Djlabel | = 1 Pain Zone (just an example!)

Slide 7

Slide 7 text

jgs 564 00000100 Stable Dependency Principle (SDP) § Every dependency between modules should terminate on a module whose Instability is less than or equal to the depending module's Instability. § Every dependency between modules should terminate on a module whose Abstractness is greater than or equal to the depending module's Abstractness.

Slide 8

Slide 8 text

jgs 564 00000100 Structural Metrics Instability = Cout (Cin + Cout) D = A + I – 1

Slide 9

Slide 9 text

jgs Final Exam Review 24 lectures

Slide 10

Slide 10 text

jgs The following slides shows some examples related to some topics This is NOT a comprehensive list of topics Topics in the exam can be found Weeks 2 to 16 (Lectures 1 to 24)

Slide 11

Slide 11 text

jgs 564 00000100 Object Oriented Relationships Association Directed Association Reflexive Association Multiplicity Aggregation Composition Generalization Realization

Slide 12

Slide 12 text

jgs 564 00000100 Design Principles There are five key design principles to consider in Object-Oriented: § Single Responsibility Principle (SRP) § Open-Closed Principle (OCP) § Liskov Substitution Principle (LSP) a child should always be better than its parent. § Interface Segregation Principle (ISP) broke up interfaces § Dependency Inversion Principle (DIP) do not call us, we will call you

Slide 13

Slide 13 text

jgs 564 00000100 SRP Example

Slide 14

Slide 14 text

jgs 564 00000100 OCP Example

Slide 15

Slide 15 text

jgs 564 00000100 DIP Example

Slide 16

Slide 16 text

jgs 564 00000100 GoF Patterns

Slide 17

Slide 17 text

jgs 564 00000100 Strategy

Slide 18

Slide 18 text

jgs 564 00000100 Composite

Slide 19

Slide 19 text

jgs 564 00000100 Adapter

Slide 20

Slide 20 text

jgs 564 00000100 Chain of Responsibility

Slide 21

Slide 21 text

jgs 564 00000100 Bridge

Slide 22

Slide 22 text

jgs 564 00000100 Idea 2 Main Factory Gift Ball Box Envelop Handler Supervisor Bin GUI

Slide 23

Slide 23 text

jgs 564 00000100 Problem

Slide 24

Slide 24 text

jgs 564 00000100 Model-View-Controller

Slide 25

Slide 25 text

jgs 564 00000100 Blackboard

Slide 26

Slide 26 text

jgs 564 00000100 Client-Server Client-Server

Slide 27

Slide 27 text

jgs 564 00000100 • Instability = Cout (Cin + Cout) Stable Abstraction Principle (SAP)

Slide 28

Slide 28 text

jgs 564 00000100 Distance § Distance: how far a package is away from the Main Sequence § D = A + I – 1 § Values -1 to 1 § Absolute Distance |D|

Slide 29

Slide 29 text

jgs CSE 564 Computer Systems Fundamentals Javier Gonzalez-Sanchez [email protected] Fall 2020 Disclaimer. These slides can only be used as study material for the class CSE564 at ASU. They cannot be distributed or used for another purpose.