UMLThese are my personal notes that I use as a quick help in my work.
|
|
These are my personal notes
See also index.html
UML is overseen by the Object Management Group (OMG): www.omg.org. Stands for Unified Modeling Language.
See basics of data modelling in SQL notes
Object (static) <-- link --> message (dynamic)
Often three types of objects: actors that send messages, agents that are between
and servers that generally repond to messages.
Object = state (set of attributes) + behavior (set of operations, triggered
by messages from the outside) + identity
Objects are grouped into classes:
Classe name |
+Public Attribute: data type |
+Public Operation( ) |
Responsabilities |
Exceptions |
As objects are instances of classes, so are links instances of relationships.
Persistence is not well handled by programming languages. Generally, data bases are used.
Links |
|
Message sSynchronization |
|
Collaboration diagrams (show relations but no notion of time) and sequece diagrams. |
Associations are bidirectional links. |
|||||||||
A qualifier introduces a type of key. For each value of the qualifier, there are four instances of the object on the right. |
|||||||||
Aggregations describe stronger links, of the master-slave
type. Aggregations are asymetrical associations where one side plays a stronger role than the other. Could be read as "<main class> consists of <details>". Note that in aggregations, each part can have an existence on its own. |
|||||||||
Composition: the "detail" is an attribute; the cardinality is 0 or 1 (the attribute has a value or is null). Note that in a composition, the parts have no separate existence. |
|||||||||
Generalization - inheritance The super class can be abstract. Abstract classes group characteristics of several classes; Not all programming laguages offer multiple inheritance. |
|||||||||
Interface
(use the image uml_object_representation.GIF ??) |
|||||||||
An association may have a class that contains attributes of the association. Particularly useful for M to N cardinality. |
|||||||||
Packages allow a definition of a name space |
|
||||||||
Types of classes:
|
Logical view |
Component view |
|
Use case view | ||
(view of processes) | Deployment view |
Nine diagrams:
Structural diagrams
Dynamic diagrams:
Categories of objects:
Metaclassification:
Navigation:
A collaboration is a set of classes and other elements that describe a use case. Patterns are generic collaborations. |
|
Use case diagram: each use case is a set of scenarios.
|
|
Object representation (objects as instances of classes):
|
|
State diagrams
|
|
An activity diagram is a type of state-transition diagram
that shows the workflow. A bar indicates simultaneous triggers. Either several incoming triggers are synchronized, or several outgoing triggers (but not both). Swimlanes (travées) are like columns indicating the activities of one actor. |
|
Component diagrams show the physical elements of a system
(code, script, file, ...). Five standard "stereotypes": <<document>>, <<executable>>, <<file>>, <<library>>, <<table>>. Dependancies show with arrows indicating an element - - - - uses services - - -> of another element. In the case of an interface or API, an element - - - uses - - -> interface represented by a circle ---- element. A task has a seperate execution flow (thread). |
|
Deployment diagrams show the physical layout. Each physical resource is shown as a node. Generally, each node has memory and most have execution capabilities. A component - - - uses or resides on - - -> a node. One node is connected --- type of cable --- to another. |
Martin Fowler: UML Distilled