Unified Modeling Language: Difference between revisions
Jump to navigation
Jump to search
imported>Eric Evers No edit summary |
imported>Eric Evers mNo edit summary |
||
Line 12: | Line 12: | ||
information flow between a system and its users | information flow between a system and its users | ||
state diagrams --------- to show how messages change the state of objects over time | state diagrams --------- to show how messages change the state of objects over time | ||
[[State_diagram| | [[State_diagram|Example]] | ||
component diagrams ----- to show how objects are contained | component diagrams ----- to show how objects are contained | ||
deployment diagrams ---- to show time dependencies in deployment | deployment diagrams ---- to show time dependencies in deployment |
Revision as of 11:20, 17 November 2008
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 Example 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 Example 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 | +--------+
---------------------------------------------------------- Inner Class example: Tree_search is an inner class of tree. Arrowhead type: Oplus(plus in a circle). Arrow direction: From part to whole. Purpose: Tree_search is a Search, but Tree_Search is an inner class of tree. Only trees need a tree_search class so it is hidden. Some languages do not support inner classes. Java does.
+--------+ +---------+ | tree | | search | +--------+ +---------+ ⊕ / \ | | | | +-------------+ | tree_search | +-------------+