Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:2009:miw09_metamodelwikiplugin [2009/03/04 21:43]
jsi08
pl:miw:2009:miw09_metamodelwikiplugin [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Opis ====== ====== Opis ======
 Marcin Godlewski <​godlewski.marcin@op.pl>​ 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. Add Wiki plugin to display metamodels (UML class diagrams) from XMI code OR create wiki plugin to display them from UMLGraph notation.
 Input: Input:
Linia 7: Linia 8:
   * [[http://​www.umlgraph.org/​|UMLGraph]]   * [[http://​www.umlgraph.org/​|UMLGraph]]
 Output: Output:
-  * Wiki with plugin ​+  * Wiki with plugin
  
-====== ​Spotkania ​====== +====== ​Prezentacja ​====== 
-===== 20090305 ====+[[https://​ai.ia.agh.edu.pl/​wiki/​pl:​miw:​2009:​miw09_metamodelwikiplugin:​prezentacja|Prezentacja projektu]].
  
 ====== Projekt ====== ====== 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 ====== ====== Sprawozdanie ======
-====== ​Prezentacja ​======+ 
 +===== 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 ====== ====== Materiały ======
 +
 +[[http://​www.dokuwiki.org/​dokuwiki|DokuWiki]]
 +
 +[[http://​www.dokuwiki.org/​plugins|DokuWiki plugins]]
 +
pl/miw/2009/miw09_metamodelwikiplugin.1236199412.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