CSE460 Lecture 14

CSE460 Lecture 14

Software Analysis and Design
Dependency Principles
(202009)

B546a9b97d993392e4b22b74b99b91fe?s=128

Javier Gonzalez

July 14, 2020
Tweet

Transcript

  1. jgs CSE 460 Software Analysis and Design Lecture 14: Dependency

    Principles Dr. Javier Gonzalez-Sanchez javiergs@asu.edu javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  2. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 2 jgs

    Announcement § Assignment 02 is due Wednesday (September 23) o Analysis - Use case diagram o Design - Class Diagram o Implementation - Source Code
  3. jgs Dependency Principles Decoupling

  4. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 4 jgs

    Instability § Indicates whether the package is mainly used by other artifacts (stable – hard to change) or if it mainly depends on other artifacts (instable – changeable). § Instability = Cout (Cin + Cout) § It is a value 0 to 1: 0 only incoming dependencies to 1 (only outgoing dependencies)
  5. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 5 jgs

    • Instability = Cout (Cin + Cout) 2. Stable Abstraction Principle
  6. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 6 jgs

    3. Stable Dependency Principles § Every dependency between modules should terminate on a module whose Instability metric is less than or equal to the depending module's Instability metric. § Every dependency between modules should terminate on a module whose Abstractness metric is greater than or equal to the depending module's Abstractness metric.
  7. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 7 jgs

    Evaluate our Pac-man Design
  8. jgs CSE 460 Software Analysis and Design Javier Gonzalez-Sanchez javiergs@asu.edu

    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.