root/gaphor-doc/trunk/gaphor-uml.xml

Revision 764, 8.7 kB (checked in by wrobell, 3 years ago)

- do not put dot at the end of a title

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 <?xml version="1.0"?>
2 <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3     "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
4 >
5 <appendix id="app-datamodel">
6   <title>Gaphor's datamodel</title>
7
8   <para>Gaphor has a data model based upon UML 2.0. UML 2.0 has a revised
9   meta model (from which the data model is derived) that is designed to
10   be more usable within modeling tools.</para>
11
12   <para>The meta model is split up in several packages. The packages currently
13   used in Gaphor are:
14     <variablelist>
15       <varlistentry>
16         <term>Kernel</term>
17         <listitem>
18           <para>Contains the basic needs for UML models. Amongst those is
19           the definition of a <classname>Class</classname>.
20           </para>
21         </listitem>
22       </varlistentry>
23       <varlistentry>
24         <term>Dependencies</term>
25         <listitem>
26           <para>Dependencies, relationships, etc. are defined here.
27           </para>
28         </listitem>
29       </varlistentry>
30       <varlistentry>
31         <term>Interfaces</term>
32         <listitem>
33           <para>... interfaces...
34           </para>
35         </listitem>
36       </varlistentry>
37       <varlistentry>
38         <term>UseCases</term>
39         <listitem>
40           <para>Contains Use Case related data.
41           </para>
42         </listitem>
43       </varlistentry>
44       <varlistentry>
45         <term>Presentations</term>
46         <listitem>
47           <para>This package is added especially for Gaphor. It contains some
48           extensions to the data model, such as the class
49           <classname>Diagram</classname> and a relationship between diagram
50           items and model elements.
51           </para>
52         </listitem>
53       </varlistentry>
54     </variablelist>
55   </para>
56   <para>All classes are put in one Python module: <classname>UML</classname>.
57   For the remainder of this chapter, the packages are split up as they are
58   in the official UML documentation.
59   </para>
60
61   <figure id="fig-overview" float="1">
62     <title>Gaphor's data model</title>
63     <graphic fileref="overview.png"/>
64   </figure>
65
66   <section>
67     <title>Kernel package</title>
68
69     <para>The Kernel package described the core modeling concepts. Basically
70     all functionallity given by an UML model is related to this package.
71     Here you can find the definition of <classname>Class</classname>,
72     <classname>Package</classname>, attributes and operations, as well as
73     associations.
74     </para>
75
76     <figure id="fig-kernel-root" float="0">
77       <title>Kernel::Root</title>
78       <graphic fileref="UML2 DataModel/Classes/Kernel/Root.png"/>
79     </figure>
80
81     <figure id="fig-kernel-namespaces" float="0">
82       <title>Kernel::Namespaces</title>
83       <graphic fileref="UML2 DataModel/Classes/Kernel/Namespaces.png"/>
84     </figure>
85
86     <figure id="fig-kernel-mult" float="0">
87       <title>Kernel::Multiplicities</title>
88       <graphic fileref="UML2 DataModel/Classes/Kernel/Multiplicities.png"/>
89     </figure>
90
91     <figure id="fig-kernel-expr" float="0">
92       <title>Kernel::Expressions</title>
93       <graphic fileref="UML2 DataModel/Classes/Kernel/Expressions.png"/>
94     </figure>
95
96     <figure id="fig-kernel-constraints" float="0">
97       <title>Kernel::Constraints</title>
98       <graphic fileref="UML2 DataModel/Classes/Kernel/Constraints.png"/>
99     </figure>
100
101     <figure id="fig-kernel-inst" float="0">
102       <title>Kernel::Instances</title>
103       <graphic fileref="UML2 DataModel/Classes/Kernel/Instances.png"/>
104     </figure>
105
106     <figure id="fig-kernel-classifiers" float="0">
107       <title>Kernel::Classifiers</title>
108       <graphic fileref="UML2 DataModel/Classes/Kernel/Classifiers.png"/>
109     </figure>
110
111     <figure id="fig-kernel-feat" float="0">
112       <title>Kernel::Features</title>
113       <graphic fileref="UML2 DataModel/Classes/Kernel/Features.png"/>
114     </figure>
115
116     <figure id="fig-kernel-oper" float="0">
117       <title>Kernel::Operations</title>
118       <graphic fileref="UML2 DataModel/Classes/Kernel/Operations.png"/>
119     </figure>
120
121     <figure id="fig-kernel-classes" float="0">
122       <title>Kernel::Classes</title>
123       <graphic fileref="UML2 DataModel/Classes/Kernel/Classes.png"/>
124     </figure>
125
126     <figure id="fig-kernel-datatypes" float="0">
127       <title>Kernel::DataTypes</title>
128       <graphic fileref="UML2 DataModel/Classes/Kernel/DataTypes.png"/>
129     </figure>
130
131     <figure id="fig-kernel-packages" float="0">
132       <title>Kernel::Packages</title>
133       <graphic fileref="UML2 DataModel/Classes/Kernel/Packages.png"/>
134     </figure>
135
136   </section>
137
138   <section>
139     <title>Dependencies</title>
140     <para>All sorts of dependencies...
141     </para>
142     <figure id="fig-dependencies" float="0">
143       <title>Dependencies</title>
144       <graphic fileref="UML2 DataModel/Classes/Dependencies/Dependencies.png"/>
145     </figure>
146   </section>
147
148   <section>
149     <title>Interfaces</title>
150     <para>
151     </para>
152     <figure id="fig-interfaces" float="0">
153       <title>Interfaces</title>
154       <graphic fileref="UML2 DataModel/Classes/Interfaces/Interfaces.png"/>
155     </figure>
156   </section>
157
158   <section>
159     <title>Components</title>
160     <para>
161     </para>
162     <figure id="fig-components" float="0">
163       <title>Components</title>
164       <graphic fileref="UML2 DataModel/Components/Components.png"/>
165     </figure>
166   </section>
167
168   <section>
169     <title>Deployment</title>
170     <para>
171     </para>
172     <figure id="fig-artifacts" float="0">
173       <title>Artifacts</title>
174       <graphic fileref="UML2 DataModel/Deployments/Artifacts.png"/>
175     </figure>
176     <figure id="fig-node" float="0">
177       <title>Node</title>
178       <graphic fileref="UML2 DataModel/Deployments/Node.png"/>
179     </figure>
180   </section>
181
182   <section>
183     <title>Behavioral modeling</title>
184     <para>
185     </para>
186     <figure id="fig-basic-behaviors" float="0">
187       <title>Basic behaviors</title>
188       <graphic fileref="UML2 DataModel/CommonBehaviors/BasicBehaviors/CommonBehaviors.png"/>
189     </figure>
190     <figure id="fig-reception" float="0">
191       <title>Reception</title>
192       <graphic fileref="UML2 DataModel/CommonBehaviors/Communications/Reception.png"/>
193     </figure>
194
195     <figure id="fig-actions" float="0">
196       <title>Actions</title>
197       <graphic fileref="UML2 DataModel/Activities/BasicActivities//Actions.png"/>
198     </figure>
199     <figure id="fig-flows" float="0">
200       <title>Flows</title>
201       <graphic fileref="UML2 DataModel/Activities/BasicActivities/Flows.png"/>
202     </figure>
203     <figure id="fig-nodes" float="0">
204       <title>Nodes</title>
205       <graphic fileref="UML2 DataModel/Activities/BasicActivities/Nodes.png"/>
206     </figure>
207     <figure id="fig-groups" float="0">
208       <title>Groups</title>
209       <graphic fileref="UML2 DataModel/Activities/BasicActivities/Groups.png"/>
210     </figure>
211     <figure id="fig-control-nodes" float="0">
212       <title>Control nodes</title>
213       <graphic fileref="UML2 DataModel/Activities/BasicActivities/Control nodes.png"/>
214     </figure>
215   </section>
216
217   <section>
218     <title>Use Cases</title>
219     <para>Use Cases are also added to Gaphor. They are basically quite easy to
220     implement and for several reasons have been the first model elements ever
221     created in Gaphor.
222     </para>
223
224     <figure id="fig-usecases" float="0">
225       <title>UseCases</title>
226       <graphic fileref="UML2 DataModel/UseCases/UseCases.png"/>
227     </figure>
228
229     <para>We have to define the relationship between an
230     <classname>Actor</classname> or <classname>UseCase</classname> and a
231     <classname>Property</classname>. This way associations can be made.
232     </para>
233
234     <figure id="fig-usecases-extra" float="0">
235       <title>UseCases</title>
236       <graphic fileref="UML2 DataModel/UseCases/UseCases_extra.png"/>
237     </figure>
238
239   </section>
240
241   <section>
242     <title>Profiles and stereotypes</title>
243
244     <para>Profiles are the basic means to extend the usability of UML.
245     </para>
246
247     <figure id="fig-profiles" float="0">
248       <title>Profiles</title>
249       <graphic fileref="UML2 DataModel/AuxilaryConstructs/Profiles/Profiles.png"/>
250     </figure>
251
252     <para>The UML specification does not describe a uniform way to apply a
253     stereotype to a model elements. <xref linkend="fig-stereotypes"/> describes
254     the way Gaphor handles this.
255     </para>
256
257     <figure id="fig-stereotypes" float="0">
258       <title>Stereotypes</title>
259       <graphic fileref="UML2 DataModel/AuxilaryConstructs/Stereotypes/Stereotypes.png"/>
260     </figure>
261
262   </section>
263
264   <section>
265     <title>Presentations</title>
266
267     <para>The Presentations package describes the relationship between model
268     elements and their representation in a diagram. The UML 2.0 specification,
269     as defined by the OMG, has no special classes and structures for
270     integrating diagrams into a model.
271     </para>
272
273     <figure id="fig-presentations" float="0">
274       <title>Presentations</title>
275       <graphic fileref="UML2 DataModel/AuxilaryConstructs/Presentations/Presentations.png"/>
276     </figure>
277
278     <para>The items as found in the module <literal>gaphor.diagram</literal>
279     are all inherited from <classname>Presentation</classname>.</para>
280   </section>
281
282 </appendix>
283 <!-- vi:sw=2:tw=78:tabstop=2:sts=2
284 -->
Note: See TracBrowser for help on using the browser.