Opis
Add Wiki plugin to display metamodels (UML class diagrams) from XMI code OR create wiki plugin to display them from UMLGraph notation.
Input:
Output:
Prezentacja
Projekt
Projekt stanowią dwa pluginy do Dokuwiki: Umlclass Plugin generujący diagramy klas oraz Umlsequence Plugin generujący diagramy sekwencji, zgodne z UML. Pluginy mogą być używane niezależnie, jednak do działania wymagają częściowo tego samego oprogramowania. Mogą być więc traktowane jako jedna całość.
Sprawozdanie
Używanie pluginów
1. Umlclass Plugin - aby stworzyć na stronie diagram klas należy umieścić w wiki opis klas przy użyciu składni Javy i znaczników javadoc pomiedzy znacznikami <uml class> i </uml class>. Na stronie wynikowej opis tekstowy zostanie zastąpiony plikiem png.
2. Umlsequence Plugin - aby stworzyć na stronie diagram sekwencji należy umieścić w wiki opis diagramów sekwencji (opis składni http://www.umlgraph.org/doc/index.html) pomiędzy znacznikami <uml seq> i </uml seq> (w opisie diagramu nie należy umieszczać wierszy '.PS', 'copy „sequence.pic”;' i '.PE' - są one dodawane automatycznie). Na stronie wynikowej opis tekstowy zostanie zastąpiony plikiem png.
Instalacja
Pluginy można instalować za pomocą Plugin Managera (http://www.dokuwiki.org/plugin:plugin) lub ręcznie w sposób opisany poniżej.
1. Umlclass Plugin - do tworzenia grafiki png używa pakietu UMLGraph, który z kolei wykorzystuje program Graphviz, sam natomiast jest napisany w Javie.
Aby zainstalować plugin należy umieścić syntax.php w katalogu dokuwiki/lib/plugins/umlclass/ . Zainstalowane muszą być JDK (może być to OpenJDK), Graphviz i UMLGraph (instrukcja na stronie UMLGraph). UMLGraph musi znajdować się w ścieżce przeszukiwania. Częstym problemem po instalacji UMLGrapha jest niespełnienie wymogu aby tools.jar (składnik JDK) i UmlGrpah.jar znajdowały się w tym samym katalogu. Jest to konieczne aby UMLGraph działał poprawnie.
2. Umlsequence Plugin - do tworzenia grafiki używa programu pic2plot z pakietu GNUPlotutils oraz UMLGraph'a.
Aby zainstalować plugin należy umieścić syntax.php w katalogu dokuwiki/lib/plugins/umlsequence/ . Dodatkowo zainstalowany musi być program pic2plot z pakietu GNUPlotutils. Plik sequence.pic będący częścią UMLGraph'a musi znajdować się w katalogu dokuwiki/lib/plugins/umlsequence/ .
Przykłady działania
Poniżej widoczne są przykładowe efekty działania pluginów:
składnia (przykład ze strony http://www.umlgraph.org):
<uml seq>
boxwid = 1.3;
# Define the objects
object(B,":Web Browser");
object(W,":Workstation Kernel");
object(S,":Server Kernel");
object(D,":DNS Server");
step();
# Message sequences
active(B);
active(D);
active(W);
active(S);
message(D,S,"select");
inactive(D);
message(B,W,"socket");
message(B,W,"connect");
message(B,W,"sendto");
message(W,W,"send packet");
message(W,S,"DNS A query");
message(B,W,"recvfrom");
inactive(B);
message(S,S,"receive packet");
rmessage(S,D,"select returns");
active(D);
message(D,S,"recvfrom");
message(D,S,"sendto");
message(S,S,"send packet");
message(S,W,"DNS A reply");
message(W,W,"receive packet");
rmessage(W,B,"recvfrom returns");
active(B);
message(B,W,"close");
complete(B);
complete(W);
complete(S);
complete(D);
</uml seq>
efekt wygenerowany przez plugin:
składnia (przykład ze strony http://www.umlgraph.org):
<uml class>
/*
* Advanced relationships
* UML User Guide p. 137
*/
/**
* @opt attributes
* @opt operations
* @hidden
*/
class UMLOptions {}
class Controller {}
class EmbeddedAgent {}
class PowerManager {}
/**
* @extends Controller
* @extends EmbeddedAgent
* @navassoc - - - PowerManager
*/
class SetTopController implements URLStreamHandler {
int authorizationLevel;
void startUp() {}
void shutDown() {}
void connect() {}
}
/** @depend - <friend> - SetTopController */
class ChannelIterator {}
interface URLStreamHandler {
void OpenConnection();
void parseURL();
void setURL();
void toExternalForm();
}
</uml class>
efekt wygenerowany przez plugin:
Pluginy do pobrania
Spotkania
Materiały