|
|
pl:miw:2009:miw09_metamodelwikiplugin:prezentacja [2009/07/07 22:35] jsi08 |
pl:miw:2009:miw09_metamodelwikiplugin:prezentacja [2019/06/27 15:50] |
====== 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łady ===== | |
| |
Poniżej widoczne są przykładowe efekty działania pluginów: | |
| |
<code> | |
<uml seq> | |
actor(A,""); | |
object(T,":OTaker"); | |
object(F,":OFulfill"); | |
step(); | |
| |
message(A,T,"submitOrder"); | |
message(T,F,"placeOrder"); | |
message(F,A,"acknowledgeOrder"); | |
| |
step(); | |
complete(A); | |
complete(T); | |
complete(F); | |
</uml seq> | |
</code> | |
| |
{{:pl:miw:2009:miw09_metamodelwikiplugin:seq_diagram.png|}} | |
| |
<code> | |
<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> | |
</code> | |
| |
{{:pl:miw:2009:miw09_metamodelwikiplugin:class_diagram.png|}} | |
| |
===== Instalacja ===== | |
| |
Najprostszym sposobem na zainstalowanie pluginów jest użycie Plugin Managera. | |
| |
Można również "ręcznie" umieścić rozpakowane archiwa {{:pl:miw:2009:miw09_metamodelwikiplugin:umlclass.zip}}, {{:pl:miw:2009:miw09_metamodelwikiplugin:umlsequence.zip}} w katalogu dokuwiki/lib/plugins/ . | |