*   UML 2.0 defines *13* types of diagrams
    ...these can be categorized in different ways, here is one
    such categorization:

    *   structure diagrams
        *   class diagram
        *   object diagram
        *   component diagram
        *   composite structure diagram
	*   package diagram
	*   deployment diagram

    *   behavior diagrams
        *   use case diagrams
        *   activity diagram
	*   state machine diagram

    *   interaction diagrams - derived from the more-general
        behavior diagrams
	*   sequence diagram
	*   communication diagram
	*   timing diagram
	*   interaction overview diagram

*   Jalote Chapter 7 - Coding and Unit Testing --
    *   Weinberg's experiment

    *   coding and testing are inter-related --
        and remember that MAINTENANCE is greatly affected
	by HOW coding and testing are done;

    *   that old maxim:
        code should be written so other PEOPLE can read it...

*   "bad smells"
    *   things in working/passing-unit-test code that
        suggest refactoring MAY be desired;

*   Code inspection - another technique often used at
    the "unit" level
    *   IS recognized as an industry best practice
    *   main goal of a code inspection to detect defects
        in work products
    *   conducted by group of programmers FOR programmers
        (review done by PEERS)
    *   we're talking about this as a STRUCTURED process,
        with defined roles for participants
    *   review data is recorded, used for monitoring effectiveness

    *   can be broken into phases:
        *   planning phase
	*   preparation and overview phase
	*   group review meeting phase
	*   rework and follow-up phase