if dependency relationships were drawn between every class and the types of it's attributes, the class diagram becomes cluttered very quickly
this dependency is obvious if the type is indicated for each attribute
if a subclass sets an attribute to null, implements a method returning null or throwing a NotImplementedException, it really isn't a subclass, or the superclass needs to be decomposed
7.
Aggregation and Composition Guidelines
object is made up of other objects
aggregation
“is part of” relationships
whole-part relationship between two
objects
Composition
stronger
form of aggregation where the whole and parts have
coincident lifetimes, and it
is very common for the whole to manage the lifecycle of its parts
Apply the Sentence Rule for Aggregation
Depict the Whole to the Left of the Part
Don’t Worry About Getting the Diamonds Right
associations, aggregation, composition, dependencies,
inheritance, and realizations
line on a UML
class diagram
defines a cohesive set of behaviors
Indicate Visibility Only On Design Models
Design Class Diagrams Should Reflect Language Naming Conventions