Unified Modeling Language

From Citizendium
Revision as of 07:23, 29 October 2008 by imported>Eric Evers
Jump to navigation Jump to search

Unified Modeling Language

UML is a standard for diagramming program design and development.

The main types of diagrams that belong to UML are:

class diagrams --------- to show the relationships between objects and classes
sequence diagrams ------ to show time dependency of information flow
collaboration diagrams - to show time dependency of information flow between objects
use case diagrams ------ to show a high level example of system functionality as it relates to 
                          information flow between a system and its users
state diagrams --------- to show how messages change the state of objects over time
component diagrams ----- to show how objects are contained
deployment diagrams ---- to show time dependencies in deployment
entity relationship diagrams -

James Rumbaugh, Ivar Jacobson and Grady Booch are together considered the main contributors to UML historically. Together they formed Rational Software.

Class Diagrams use implements, composition and aggregation relationships.

----------------------------------------------------
Implementation example:  A fedora is a (type of) hat. 
Arrowhead type:          Unfilled closed triangle.
Arrow direction:         From example to category.
+--------+
| hat    |
+--------+
   / \
    |
    |
+--------+
| fedora |
+--------+
 
------------------------------------------------------------------
Composition example:  A heart is a non-removable part of a person. 
Arrowhead type:       Solid diamond.
Arrow direction:      From part to whole.
+--------+
| person |
+--------+
    ♦
    |
    |
+--------+
| heart  |
+--------+
----------------------------------------------------------
Aggregation example:  A hat is a removable part of a person. 
Arrowhead type:       Unfilled-diamond(lozenge).
Arrow direction:      From part to whole.
+--------+
| person |
+--------+
    ◊
    |
    |
+--------+
|  hat   |
+--------+