237:
initiative is the capacity to transform a model into another model. For example, one might want to transform a platform-independent domain model into a Java platform-specific model for implementation. It is also possible to refactor UML models to produce more concise and well-formed UML models. It is
116:
refers to the ability of a UML tool to perform code generation from models, and model generation from code (a.k.a., reverse engineering), while keeping both the model and the code semantically consistent with each other. Code generation and reverse engineering are explained in more detail below.
104:
software is generally agreed upon by software developers. When developers draw diagrams of object-oriented software, they usually follow the UML notation. On the other hand, it is often debated whether those diagrams are needed at all, during what stages of the software development process they
189:
to place the symbols in a way that the user can understand the diagram. For example, the symbols should be placed at such locations on the drawing pane that they don't overlap. Usually, the user of such a functionality of a UML tool has to manually edit those automatically generated diagrams to
141:
An often cited criticism is that the UML diagrams lack the detail that is needed to contain the same information as is covered with the program source: Jack W. Reeves states that the final embodiment of the design lies in the source code. (His often quoted statement that "the Code
190:
attain some meaningfulness. It also often doesn't make sense to draw diagrams of the whole program source, as that represents just too much detail to be of interest at the level of the UML diagrams.
344:
146:
the design" has been misinterpreted to mean that there is no need for intermediate- and high-level software-design artifacts, such as UML diagrams or software-requirements documents).
54:
is used broadly here to include application programs which are not exclusively focused on UML, but which support some functions of the
Unified Modeling Language, either as an
130:
in this context means that the user creates UML diagrams, which have some connected model data, and the UML tool derives from the diagrams part or all of the
271:
17:
296:
276:
105:
should be used, and how (if at all) they should be kept up to date. The primacy of software code often leads to the diagrams being deprecated.
349:
179:
Diagram data is normally not contained with the program source, such that the UML tool, at least in the initial step, has to create some
379:
172:
The source code often has much more detailed information than one would want to see in design diagrams. This problem is addressed by
161:
model data and corresponding graphical UML diagrams from it (as opposed to the somewhat broader meaning described in the article "
134:
for the software system. In some tools the user can provide a skeleton of the program source code, in the form of a source code
255:
173:
101:
209:
programming language, which are notoriously hard to convert automatically to UML diagrams in their full complexity.
234:
32:
286:
218:
138:, where predefined tokens are then replaced with program source code parts during the code generation process.
41:
222:
135:
113:
126:
316:
194:
45:
27:
162:
374:
185:
339:
97:; that is diagrams that follow the graphical notation of the Unified Modeling Language.
368:
334:
281:
243:
157:
in this context means, that the UML tool reads program source code as input and
131:
30:
that supports some or all of the notation and semantics associated with the
225:, which allows the importation of UML diagrams from one model to another.
238:
possible to generate UML models from other modeling notations, such as
94:
353:
317:
http://www.developerdotstar.com/mag/articles/reeves_design_main.html
221:(XMI) is the format for UML model interchange. XMI does not support
206:
183:
of the graphical symbols of the UML notation or use some automatic
259:
100:
The use of UML diagrams as a means to draw diagrams of – mostly –
250:
for
Queries/Views/Transformations. One example of an open-source
239:
291:
251:
247:
359:
74:
UML tools support the following kinds of functionality:
168:Some of the challenges of reverse engineering are:
8:
246:. The standard that supports this is called
343:) is being considered for deletion. See
309:
272:List of Unified Modeling Language tools
18:List of Unified Modeling Language tools
297:Specification and Description Language
277:List of requirements engineering tools
7:
193:There are language features of some
174:software architecture reconstruction
233:A key concept associated with the
40:), which is the industry standard
14:
347:to help reach a consensus. ›
66:of their overall functionality.
1:
214:Model and diagram interchange
396:
15:
380:Unified Modeling Language
235:model-driven architecture
33:Unified Modeling Language
345:templates for discussion
287:Model-driven engineering
219:XML Metadata Interchange
42:general-purpose modeling
223:UML Diagram Interchange
114:Round-trip engineering
109:Round-trip engineering
85:in this context means
70:Kinds of Functionality
195:programming languages
242:, which is itself a
229:Model transformation
46:software engineering
28:software application
360:UML Tools Directory
163:Reverse engineering
155:Reverse engineering
150:Reverse engineering
258:language built by
203:function templates
319:by Jack W. Reeves
254:-solution is the
387:
320:
314:
186:layout algorithm
395:
394:
390:
389:
388:
386:
385:
384:
365:
364:
348:
329:
324:
323:
315:
311:
306:
268:
231:
216:
152:
127:Code generation
123:
121:Code generation
111:
102:object-oriented
80:
72:
20:
12:
11:
5:
393:
391:
383:
382:
377:
367:
366:
363:
362:
357:
332:
328:
327:External links
325:
322:
321:
308:
307:
305:
302:
301:
300:
294:
289:
284:
279:
274:
267:
264:
230:
227:
215:
212:
211:
210:
191:
177:
151:
148:
122:
119:
110:
107:
79:
76:
71:
68:
13:
10:
9:
6:
4:
3:
2:
392:
381:
378:
376:
373:
372:
370:
361:
358:
355:
351:
346:
342:
341:
336:
331:
330:
326:
318:
313:
310:
303:
298:
295:
293:
290:
288:
285:
283:
280:
278:
275:
273:
270:
269:
265:
263:
261:
257:
253:
249:
245:
241:
236:
228:
226:
224:
220:
213:
208:
204:
200:
196:
192:
188:
187:
182:
181:random layout
178:
175:
171:
170:
169:
166:
164:
160:
156:
149:
147:
145:
139:
137:
133:
129:
128:
120:
118:
115:
108:
106:
103:
98:
96:
92:
88:
84:
77:
75:
69:
67:
65:
61:
57:
53:
49:
47:
44:language for
43:
39:
35:
34:
29:
25:
19:
338:
312:
282:Metamodeling
232:
217:
202:
198:
184:
180:
167:
158:
154:
153:
143:
140:
125:
124:
112:
99:
90:
86:
82:
81:
73:
63:
59:
55:
51:
50:
37:
31:
23:
21:
333:‹ The
244:UML profile
132:source code
83:Diagramming
78:Diagramming
369:Categories
304:References
16:See also:
375:UML tools
350:UML Tools
60:component
335:template
266:See also
136:template
95:diagrams
87:creating
62:or as a
52:UML tool
24:UML tool
337:below (
205:of the
197:, like
159:derives
91:editing
58:, as a
354:Curlie
340:Curlie
199:class-
56:add-on
299:(SDL)
260:INRIA
26:is a
240:BPMN
165:").
93:UML
89:and
64:part
352:at
292:QVT
256:ATL
252:QVT
248:QVT
207:C++
201:or
38:UML
371::
262:.
144:is
48:.
22:A
356:.
176:.
36:(
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.