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 6: | Line 6: | ||
class diagrams --------- to show the relationships between objects and classes | class diagrams --------- to show the relationships between objects and classes | ||
sequence diagrams ------ to show time dependency of information flow | sequence diagrams ------ to show time dependency of information flow | ||
[[Erlang_programming_language/Tutorials/Processes|Example]] | |||
collaboration diagrams - to show time dependency of information flow between objects | 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 | use case diagrams ------ to show a high level example of system functionality as it relates to |
Revision as of 10:56, 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 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 | +-------------+