Exploring Unified Modeling Language (UML), a non-proprietary graphical language for modeling (visualizing, specifying, constructing, and documenting) software systems as well as other systems, processes and structures including hardware, databases, organizations, and businesses. The idea is to architect as opposed create ad hoc, to have blueprints instead of napkins. UML was released in 1997 by the OMG (Object Management Group) as a fusion of predecessors such as Booch, OMT, OOSE and Class-Relation.
My goal is to eventaully make a more general graphs and charts section. Graph Theory, graphs, charts, flowcharting, UML, Venn/Euler/Johnston, etc.
"Higher" UML is general, intuitive, and natural. "Lower" UML is more syntax specific as it gets closer to the hardcore details of implementation.
The UML model consists of different types of diagrams which may also be combined.
UML v1.5 consists of 9 types of diagrams.
Class Diagram. Things form into classes. Displays what interacts but not how. Each class may show name, properties/attributes, and methods/capabilities.
Object Diagram. Instances of classes.
Component. Breaking things down into parts that can be worked upon separately.
Use Case Diagram. System from user's point of view. Models the interaction of actors with systems.
Sequence. Interaction of objects over time. Time follows the arrow between objects/actors and flows left-to-right as well as top-to-bottom.
Collaboration. How parts of the system work together. Sequence & Collaboration diagrams can usually translate into each other. *Not in UML 2.0.
Activity. What happens with an object in a use case or sequence. Very similar to the traditional Flowchart.
State. State of objects at a given time.
Deployment. The physical hardware, connections, and relation to the process.