is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves". – Alan Kay. Pioneering work on object-oriented programming ACM Queue. Vol. 2, No. 9 - Dec/Jan 2004-2005
is as bad as their absence when needed. • A design that is more than what we need smells. • Design principles are not a perfume to be liberally scattered all over the system. 19
C c1 = new C(); } public void method() { B b = new B(); b.sleep(); } } public class Y { A [] a = new A[5]; } public class A extends B { C c1, c2; public A() { c1 = new C(); } public void method() { D d = new D(); d.working(); } } public class X { public void m() { B var = new A(); double x = Math.sqrt(5); } } 30
needed to run software, including the code, runtime, libraries, dependencies, and configuration files. 3. A container is a runtime instance of an image. It encapsulates the execution environment for a specific application or process, including the filesystem, environment variables, network settings, and runtime options. 1. A text file that contains instructions for building a Docker image
- submit your Java files b) Software Design - your UML class diagram c) Metrics (Code and Structure) d) Links to your GitHub repository e) Link to your video of the Final Presentation 44
diagram. (Show what is important and make it easy to read for the audience) :: notes :: (you can use colors for the newly added classes) • What did you do that make this design “good”. • Do you achieve SOLID? • Do you improve A, I, or D? (show the 2D plot regarding where your classes are in terms of the pain zone) 48
diagram with boxes is fine) • Describe your design. Could it be easy for a new developer to reuse, modify or extend what you have created? • Show a class diagram (Explain it and describe the details) • Be sure the diagram and code match. • What components were developed by each team member? What were the criteria for splitting the work (components, classes, methods)? 49
KIS • Code Metrics: LOC, eLOC, lLOC, CC • Structure Metrics: Abstractness, Instability, Distance • Does the product have a “good” quality? • What features were Unit Tested? • Services? 52
the latest version from the GitHub release and know how to run it? •Consider using a JMenuBar, JPopupMenu •Consider making your JAR file executable (see next) 55