1. Acyclic Dependency Principle (ADP): Avoid dependency cycles . 2. Stable Dependency Principle (SDP): Every dependency between modules a and b should terminate on a module whose Ia < Ib or Aa > Ab 3. Stable Abstraction Principle (SAP): More stable a package is, the more abstract it should be.
public class Foo { Bar b= new Bar(new Car()); public Foo (Car c) { c.doIt(b); } public void m (Delta d) { d.action(b); } } public class System { public ... main ( ...) { Foo f = new Foo(); //... } } • Tangled: • ISystem = • IFoo = • IBar • Afoo • Any candidate for “painful” zone:
1. Download and install STAN https://stan4j.com Stand alone or Eclipse plug-in 1. Metrics 2. Ca, Ce, I, A, D. 2. Distance Plot 3. Dependency Graph 4. Violations Report
6 1. Download and install STAN https://stan4j.com 2. For your Project3 submit in a document: § Ca, Ce, I, A, D. § Violations report § Distance plot § Dependency Graph § One or two paragraphs conclusion § Add only the name of participating team members § Individual submissions are OK 3. Due: Tonight 11:59 PM. (Blackboard à Homeworks à Quiz 6)