Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:2009:miw09_metamodelwikiplugin [2009/07/06 13:23] jsi08 |
pl:miw:2009:miw09_metamodelwikiplugin [2019/06/27 15:50] (aktualna) |
* [[http://www.umlgraph.org/|UMLGraph]] | * [[http://www.umlgraph.org/|UMLGraph]] |
Output: | Output: |
* Wiki with plugin | * Wiki with plugin |
| |
====== Spotkania ====== | ====== Prezentacja ====== |
| [[https://ai.ia.agh.edu.pl/wiki/pl:miw:2009:miw09_metamodelwikiplugin:prezentacja|Prezentacja projektu]]. |
| |
===== 20090528 ==== | ====== Projekt ====== |
| |
Wersja 2 - dwa niezależne pluginy do diagramów klas i diagramów sekwencji. | 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ść. |
| |
===== 20090408 ==== | ====== Sprawozdanie ====== |
| |
Plugin do diagramów klas - wersja wstępna. | ===== Używanie pluginów ===== |
| |
**Problem do rozwiązania:** | 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. |
| |
W wyniku pracy pluginu powstaje plik o nazwie metamodel_plugin*.png, gdzie * jest sumą md5 dla pliku tekstowego zawierającego treść umieszczoną przez użytkownika pomiędzy znacznikami <uml> i </uml>. Plik ten zawiera grafikę (diagramy) umieszczaną na stronie. Problemem jest to, iż w wyniku zmian w treści stron niektóre z tych plików mogą stać się bezużyteczne, a nie są one w żaden sposób usuwane. Powstaje pytanie jak usuwać nieużywane pliki metamodel_plugin*.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. |
| |
===== 20090319 ==== | ===== Instalacja ===== |
* proto | |
| |
===== 20090305 ==== | Pluginy można instalować za pomocą Plugin Managera ([[http://www.dokuwiki.org/plugin:plugin]]) lub ręcznie w sposób opisany poniżej. |
* graphviz plugin | |
| 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> | <code> |
<uml file="zzz.xmi"> | <uml seq> |
class Person { | |
String Name; | |
} | |
| |
class Employee extends Person {} | boxwid = 1.3; |
| |
class Client extends Person {} | # Define the objects |
</uml> | 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> | </code> |
| |
{{:pl:miw:2009:miw09_metamodelwikiplugin:umlgraph-class-eg.gif|}} | efekt wygenerowany przez plugin: |
| |
====== Projekt ====== | {{:pl:miw:2009:miw09_metamodelwikiplugin:seq_diagram.png|}} |
| |
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ść. | składnia (przykład ze strony http://www.umlgraph.org): |
| <code> |
| <uml class> |
| /* |
| * Advanced relationships |
| * UML User Guide p. 137 |
| */ |
| |
====== Sprawozdanie ====== | /** |
| * @opt attributes |
| * @opt operations |
| * @hidden |
| */ |
| class UMLOptions {} |
| |
1. Używanie pluginów: | class Controller {} |
| class EmbeddedAgent {} |
| class PowerManager {} |
| |
1.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. | /** |
| * @extends Controller |
| * @extends EmbeddedAgent |
| * @navassoc - - - PowerManager |
| */ |
| class SetTopController implements URLStreamHandler { |
| int authorizationLevel; |
| void startUp() {} |
| void shutDown() {} |
| void connect() {} |
| } |
| |
1.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. | /** @depend - <friend> - SetTopController */ |
| class ChannelIterator {} |
| |
2. Instalacja | interface URLStreamHandler { |
| void OpenConnection(); |
| void parseURL(); |
| void setURL(); |
| void toExternalForm(); |
| } |
| </uml class> |
| </code> |
| |
2.1. Umlclass Plugin - do tworzenia grafiki png używa pakietu UMLGraph, który z kolei wykorzystuje program Graphviz, sam natomiast jest napisany w Javie. | efekt wygenerowany przez plugin: |
Aby zainstalować plugin należy umieścić syntax.php w katalogu dokuwiki/lib/plugins/umlclass/ . Zainstalowane muszą być JDK, 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.2. Umlsequence Plugin - do tworzenia grafiki używa programu pic2plot z pakietu GNUPlotutils oraz UMLGraph'a. | {{:pl:miw:2009:miw09_metamodelwikiplugin:class_diagram.png|}} |
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/ . | |
| |
====== Pluginy do pobrania ====== | ====== Pluginy do pobrania ====== |
| |
{{:pl:miw:2009:miw09_metamodelwikiplugin:plugin.zip}} | 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]] |