Unified Modeling Language: Difference between revisions
Jump to navigation
Jump to search
imported>Eric Evers No edit summary |
imported>Eric Evers No edit summary |
||
Line 64: | Line 64: | ||
| hat | | | 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 | | |||
+-------------+ |
Revision as of 21:35, 3 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 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 | +-------------+