mirror of https://github.com/dspinellis/UMLGraph
68 lines
1.1 KiB
XML
68 lines
1.1 KiB
XML
<?xml version="1.0" ?>
|
|
<notes>
|
|
The following diagram, based on the diagram appearing on p. 70 of
|
|
UML Distilled, contains self calls, object activation,
|
|
self-deleted objects, and asynchronous messages.
|
|
<h2>Diagram</h2>
|
|
<img src="dist-52.gif" alt="UML Distilled: Concurrent processes and activations" />
|
|
<h2>Diagram Source Code</h2>
|
|
<fmtcode ext="pic">
|
|
# UML Distilled: Figure 5-2 p. 70
|
|
|
|
.PS
|
|
|
|
copy "sequence.pic";
|
|
|
|
boxwid = 1.3;
|
|
|
|
# Define the objects
|
|
pobject(X);
|
|
pobject(T);
|
|
pobject(C);
|
|
pobject(A1);
|
|
pobject(A2);
|
|
|
|
# Message sequences
|
|
cmessage(X,T,"a: Transaction");
|
|
active(T);
|
|
async();
|
|
cmessage(T,C,"a: TransCoord");
|
|
inactive(T);
|
|
active(C);
|
|
cmessage(C,A1,"a1: TransCheck");
|
|
active(A1);
|
|
cmessage(C,A2,"a2: TransCheck");
|
|
active(A2);
|
|
message(A1,C,"ok");
|
|
sync();
|
|
step();
|
|
active(C);
|
|
message(C,C,"all done?");
|
|
inactive(C);
|
|
async();
|
|
step();
|
|
delete(A1);
|
|
inactive(C);
|
|
step();
|
|
message(A2,C,"ok");
|
|
active(C);
|
|
sync();
|
|
step();
|
|
active(C);
|
|
message(C,C,"all done?");
|
|
inactive(C);
|
|
async();
|
|
step();
|
|
delete(A2);
|
|
message(C,T,"beValid");
|
|
inactive(C);
|
|
active(T);
|
|
step();
|
|
|
|
complete(T);
|
|
complete(C);
|
|
|
|
.PE
|
|
</fmtcode>
|
|
</notes>
|