This document discusses principles of code structural analysis. It covers package cohesion principles like release reuse equivalency and common closure principle. It also discusses package coupling principles like the acyclic dependencies principle and abstractness of a package. Class design principles like the SOLID principles of dependency inversion and interface segregation are also summarized. It provides an example of analyzing structure using metrics like package instability and introduces the tool Stan4j for structural analysis.