mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 13:31:49 +00:00
6d678c927c
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@808 a592a061-630c-0410-9148-cb99ea01b6c8
120 lines
2.9 KiB
Plaintext
120 lines
2.9 KiB
Plaintext
Here is a reference to the UML class diagram symbols:
|
|
(Taken from a number of sources.)
|
|
|
|
Class
|
|
-----
|
|
A Class description containing a
|
|
____________
|
|
| Class Name |
|
|
|------------|
|
|
| Attributes |
|
|
|------------|
|
|
| Operations |
|
|
|____________|
|
|
|
|
Association
|
|
-----------
|
|
An association represents a physical or conceptual connection
|
|
betwen objects. This is represented by a line between the two objects.
|
|
If the association has a name it would often be written on top.
|
|
|
|
AssocName
|
|
Class1 ----------- Class2
|
|
|
|
There is a possiblity of a multidirectional association that would be
|
|
represented by a diamond connecting the related sets.
|
|
|
|
|
|
Class1 -----<O>---- Class3
|
|
|
|
|
Class2
|
|
|
|
Arrows can be used to indicate the navigablity of a association.
|
|
So an arrow from one class to another would indicate that Class1
|
|
uses the services of Class2 but Class2 is not aware of Class1.
|
|
It also indicates that nature of Class2 scope. Since there
|
|
is no aggregation relationship here, Class2 may outlive Class1
|
|
instances. This would be used to indicate a pointer or reference
|
|
relationship.
|
|
|
|
Class1 -------> Class2
|
|
|
|
In some places it is necessary to represent that a Class can
|
|
be associated with a set instead of a single instance. This
|
|
will be represented by a star at the end of the association.
|
|
|
|
Class1 ------->* Class2
|
|
|
|
Composition (Strong Aggregation)
|
|
---------
|
|
This means that Class2 is a part of Class1. It is a strong form
|
|
of aggregation in that when Class1 is destroyed Class2 goes with it.
|
|
|
|
The symbol for a composition relationship is a diamond filled to an arrow.
|
|
|
|
Class1 <*>-----> Class2
|
|
|
|
Aggregation
|
|
-----------
|
|
A weaker form of aggregation than composition is represented with
|
|
an unfilled diamond. It still demotes the life time of Class2 is
|
|
restricted to Class1, but Class2 is not part of Class1. This may
|
|
be implemented by a pointer in Class1 to Class2 with the dtor
|
|
destroying Class2.
|
|
|
|
Class1 <>------> Class2
|
|
|
|
|
|
Inheritance
|
|
-----------
|
|
|
|
Inheratance is indicated with an triangle pointing up to the
|
|
class form which the other derives. (Having no triangles a
|
|
A will do.)
|
|
|
|
Class1
|
|
A
|
|
|
|
|
Class2
|
|
|
|
|
|
So now a quick example:
|
|
|
|
+--> Shape
|
|
| A
|
|
parent_ | |
|
|
| | points_
|
|
+--- Polygon <>------------->* Point
|
|
|
|
This would indicate that a Polygon is derived from a Shape. It also
|
|
indicates that Polygon can have a reference to a Shape. Further,
|
|
Polygon contains a set of Points that it is responsible for.
|
|
|
|
This might be implemented like
|
|
|
|
class Shape
|
|
{//...
|
|
};
|
|
|
|
class Polygon: public Shape
|
|
{
|
|
private:
|
|
Shape* parent_;
|
|
list<auto_ptr<Point>> points_;
|
|
public:
|
|
//...
|
|
};
|
|
|
|
|
|
References:
|
|
UML Class Diagrams
|
|
Robert C. Martin
|
|
Engineering Notebook Column
|
|
C++ Report, August, 1997
|
|
http://www.oma.com/PDF/umlClassDiagrams.pdf
|
|
|
|
OML Object Model
|
|
http://wwwis.cs.utwente.nl:8080/dmrg/MEE/misop007/
|
|
|
|
|