Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:miw:2009:miw09_metamodelwikiplugin [2009/07/08 10:36]
jsi08
pl:miw:2009:miw09_metamodelwikiplugin [2019/06/27 15:50]
Linia 1: Linia 1:
-====== Opis ====== 
-Marcin Godlewski <​godlewski.marcin@op.pl>​ 
-==== MetamodelWikiPlugin ==== 
-Add Wiki plugin to display metamodels (UML class diagrams) from XMI code OR create wiki plugin to display them from UMLGraph notation. 
-Input: 
-  * [[http://​carlosmanzanares.com/​blog/?​p=23|Wiki UML tool]] 
-  * [[http://​www.twiki.org/​|TWiki]] 
-  * [[http://​www.umlgraph.org/​|UMLGraph]] 
-Output: 
-  * Wiki with plugin 
- 
-====== Prezentacja ====== 
-[[https://​ai.ia.agh.edu.pl/​wiki/​pl:​miw:​2009:​miw09_metamodelwikiplugin:​prezentacja|Prezentacja projektu]]. 
- 
-====== Projekt ====== 
- 
-Projekt stanowią dwa pluginy do Dokuwiki: Umlclass Plugin generujący diagramy klas oraz Umlsequence Plugin generujący diagramy sekwencji, zgodne z UML. Diagramy mogą być używane niezależnie,​ jednak do działania wymagają częściowo tego samego oprogramowania. Mogą być więc traktowane jako 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 [[http://​www.umlgraph.org/​|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):​ 
-<​code>​ 
-<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> 
-</​code>​ 
- 
-efekt wygenerowany przez plugin: 
- 
-{{:​pl:​miw:​2009:​miw09_metamodelwikiplugin:​seq_diagram.png|}} 
- 
-składnia (przykład ze strony http://​www.umlgraph.org):​ 
-<​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>​ 
- 
-efekt wygenerowany przez plugin: 
- 
-{{:​pl:​miw:​2009:​miw09_metamodelwikiplugin:​class_diagram.png|}} 
- 
-====== Pluginy do pobrania ====== 
- 
-Diagramy klas: 
-{{:​pl:​miw:​2009:​miw09_metamodelwikiplugin:​umlclass.zip}} 
- 
-Diagramy sekwencji: 
-{{:​pl:​miw:​2009:​miw09_metamodelwikiplugin:​umlsequence.zip}} 
- 
-====== Spotkania ====== 
- 
-[[https://​ai.ia.agh.edu.pl/​wiki/​pl:​miw:​2009:​miw09_metamodelwikiplugin:​spotkania|Notatki ze spotkań projektowych]]. 
- 
-====== Materiały ====== 
- 
-[[http://​www.dokuwiki.org/​dokuwiki|DokuWiki]] 
- 
-[[http://​www.dokuwiki.org/​plugins|DokuWiki plugins]] 
  
pl/miw/2009/miw09_metamodelwikiplugin.txt · ostatnio zmienione: 2019/06/27 15:50 (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