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

CSE460 Lecture 25

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

CSE460 Lecture 25

Software Analysis and Design
Structural Complexity
(202104)

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs CSE 460 Software Analysis and Design Lecture 25: Structural

    Complexity Dr. Javier Gonzalez-Sanchez [email protected] javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  2. jgs 564 00010100 Announcements § Assignment 06 is due tonight

    We have done a total of quizzes and 6 assignments (4.1666% each) § Final Exam is scheduled Wednesday April 21 (during lecture time) A review scheduled for Monday
  3. jgs 564 00010100 • Instability = Cout (Cin + Cout)

    Stable Abstraction Principle (SAP)
  4. jgs 564 00010100 Distance § Distance: how far a package

    is away from the Main Sequence § D = A + I – 1 § Values -1 to 1 § Absolute Distance |D|
  5. jgs 564 00010100 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!)
  6. jgs 564 00010100 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.
  7. jgs CSE 460 Software Analysis and Design Javier Gonzalez-Sanchez [email protected]

    Fall 2020 Disclaimer. These slides can only be used as study material for the class CSE460 at ASU. They cannot be distributed or used for another purpose.