To jest stara wersja strony!


View page as slide show ~~SLIDY_SLIDESHOW~~

MIW 2009 MetamodelWikiPlugin

Zrealizował: Marcin Godlewski

Cel projektu

Celem projektu było stworzenie pluginu do DokuWiki pozwalającego na tworzenie na stronach wiki diagramów UML.

Realizacja

W ramach projektu stworzono dwa niezależne pluginy do generowania diagramów klas oraz diagramów sekwencji.

Działanie pluginów opiera się o wykorzystanie programów UMLGraph, Graphviz oraz GNUPlotutils.

Pluginy pozwalają na generowanie i umieszczanie na stronie plików png zawierających diagramy.

Działanie

Aby stworzyć diagram klas należy umieścić pomiędzy znacznikami <uml class> i </uml class> definicję klas przy użyciu składni Javy i znaczników javadoc.

Diagram sekwencji definiujemy pomiędzy znacznikami <uml seq> i </uml seq> przy użyciu składni UMLGraph'a.

Przykład

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:

Przykład 2

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:

Instalacja

Najprostszym sposobem na zainstalowanie pluginów jest użycie Plugin Managera.

Można również „ręcznie” umieścić rozpakowane archiwa umlclass.zip, umlsequence.zip w katalogu dokuwiki/lib/plugins/ .

pl/miw/2009/miw09_metamodelwikiplugin/prezentacja.1247040071.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0