Please send questions to st10@humboldt.edu .

UML - Unified Modeling Language

*   GRAPHICAL language for:

    visualizing,
    specifying,
    constructing, and
    documenting

    ...the artifacts for a software-intensive system

*   UML is trying to offer a STANDARD way to write a system's
    blueprints, including conceptual things such as:

    business processes
    system functions

    ...as well as concreate things such as:

    programming language statements
    database schemas
    reusable software components

*   the important point: UML is a LANGUAGE for specifying,
    rather than itself a method or procedure;

    the UML can depict the definition of a software system;
    it can help one to detail the artifacts in the system,
    to help document it, and to help construct it --
    ...it is the language that the blueprints are written in;

*   the 1st UML reading describes modeling as:

    "Modeling is the designing of software applications before coding"

     ...makes the claim that modeling can be a way to check one's
        design against one's requirements;

    UML tries to help by providing a language for specifying,
    visualizing, and documenting models of software systems,
    including their design and structure

*   note that UML can be used to model at different levels of
    abstraction - more overall big-picture, drilled-in detail, etc;

*   the 1st UML reading mentions 13 types of UML diagram in UML 2.0;
    some of the others only mention 8-9 types;

    *   that 1st reference also divides those 13 into 3 categories:

        *   6 that are used to represent static application structure,
        *   3 that are used to represent general types of behavior
	    (more dynamic)
        *   4 that are used to represent different aspects of interactions

    <--- below indicates that multiple references include that
         diagram type (it is part of the 9 often mentioned)

    *   those used to represent static application structure include:
        *   class diagram  <---
        *   object diagram <---
        *   component diagram <---
        *   composite structure diagram
        *   package diagram
        *   deployment diagram <---

    *   those used to represent behavior/more dynamic aspects include:
        *   use case diagram <---
            [used by some methodologies during requirements gathering]
        *   activity diagram <---
        *   state machine diagram <---

    *   those used to represent interactions, all derived from
        the more-general behavioral diagrams, include:
        *   sequence diagram <---
        *   communication diagram
        *   timing diagram
        *   interaction overview diagram