Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:2009:miw09_metamodelwikiplugin [2009/04/08 00:25] jsi08 |
pl:miw:2009:miw09_metamodelwikiplugin [2009/07/08 11:09] jsi08 |
* [[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]]. |
| |
===== 20090408 ==== | ====== Projekt ====== |
Prototyp: | |
Instalacja - umieścić syntax.php w dokuwiki/lib/plugins/metamodel | |
{{:pl:miw:2009:miw09_metamodelwikiplugin:syntax.php.zip}} | |
| |
===== 20090319 ==== | 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ść. |
* proto | |
| |
===== 20090305 ==== | ====== Sprawozdanie ====== |
* graphviz plugin | |
| ===== 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> | <code> |
<uml file="zzz.xmi"> | <uml seq> |
class Person { | |
String Name; | 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() {} |
} | } |
| |
class Employee extends Person {} | /** @depend - <friend> - SetTopController */ |
| class ChannelIterator {} |
| |
class Client extends Person {} | interface URLStreamHandler { |
</uml> | void OpenConnection(); |
| void parseURL(); |
| void setURL(); |
| void toExternalForm(); |
| } |
| </uml class> |
</code> | </code> |
| |
{{:pl:miw:2009:miw09_metamodelwikiplugin:umlgraph-class-eg.gif|}} | 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]]. |
| |
====== Projekt ====== | |
====== Sprawozdanie ====== | |
====== Prezentacja ====== | |
====== Materiały ====== | ====== Materiały ====== |
| |
| [[http://www.dokuwiki.org/dokuwiki|DokuWiki]] |
| |
| [[http://www.dokuwiki.org/plugins|DokuWiki plugins]] |
| |