Principles of Modeling
    - First, The choice of what models to create has
    a profound influence on how a problem is attacked and how a solution is
    shaped.
 
    - Second, Every model may be expressed at
    different levels of precision.
 
    - Third, The best models are connected to
    reality. 
 
    - Fourth,No single model or view is sufficient.
    Every nontrivial system is best approached through a small set of nearly
    independent models with multiple viewpoints.
 
Three major elements: 
    - the UML's basic building blocks
 
    - the rules that dictate
    how those building blocks may be put together
 
    - some common mechanisms that
    apply throughout the UML
    
 
The vocabulary of the UML encompasses three kinds of building blocks:
    - 
    Things
 
    - 
    Relationships
 
    - 
    Diagrams
 
Three kinds of relationships that are most important: dependencies, generalizations, and associations.
    - Dependencies are using relationships. For example, pipes depend on the water heater to heat the water they carry.
 
    - Associations are structural relationships among instances. For example, rooms consist of walls and other things; walls themselves may have embedded doors and windows; pipes may pass through walls.
 
    - Generalizations connect generalized classes to more-specialized ones in what is known as subclass/superclass or child/parent relationships. For example, a picture window is a kind of window with very large, fixed panes; a patio window is a kind of window with panes that open side to side.