UML、ワークフローデータの可視化ツールplantUML
PlantUML は、オープンソースの様々なデータモデルを自動で描画可能なツールとなり、AT&T研究所が提供しているオープンソースの描画ツールであるgraphvizをベースとしている。以下に示すような様々なダイアグラムを素早く作成するためのコンポーネントとなる。
シーケンス図とは、システムの概要・仕様・処理の流れを記載した図のことで、システム開発の設計書として使用されるものとなる。クラス・オブジェクト間のやり取りを、時間軸に沿って一定の書式に則って記載する点が特徴で、設計時のみならず、開発・保守・運用フェーズにおいてもシステムの詳細を把握するためにも使用されます。
ユースケース図とは、システムがどのように機能すべきか(ユースケース)、およびその外部環境(アクター)を表すものとなる。エンドユーザの視点からシステムについて見ることができ、そのため、エンドユーザや領域の専門家とコミュニケートして、要求に対する相互の理解を保証することができる。また、システムの外部と内部との境界をはっきりさせることができるものでもある。
クラス図とはUMLの基本となる図のひとつで、システムを構成するクラスとそれらの関係を表現するものとなる。また、各クラスが保持する属性(プロパティ)や操作(メソッド)も表現する。
オブジェクト図とは、ソフトウェアの設計などに用いられるUML(Unified Modeling Language)で規定された図の一つで、実際の場面において登場する具体的なオブジェクトとそれらの間の関係を表したものとなる。クラス図との違いはシステムの内部構造を具体的なオブジェクトで示すか、抽象的なクラスで示すかとなり、一般にシステム開発のアウトプットとして作成するのは、クラス図となり、オブジェクト図はクラス図を導く過程や補助として使う。
アクティビティ図(フローチャート)とはUMLの一種で「システム実行の流れと条件分岐」を図解したものとなる。具体的には、ある作業の開始から終了までの機能を、実行される順序どおりに記述したものになる。
システムの流れを記述するのがUMLだが、アクティビティ図では「実体の制御の流れ」について描写している。実体の制御とは「どのような行動(アクティビティ)が発生するか」を指す。よってアクティビティ図はほかのUML図に比べ「どのような行動が発生するのか」を視覚的に理解しやすいものとなる。
コンポーネント図とは、ソフトウェアの設計などに用いられるUML(Unified Modeling Language)で規定された図の一つで、システムを構成する要素間の関係を表したものとなる。規模の大きなソフトウェアは通常、複数の実行ファイルやライブラリファイル、モジュールといったソフトウェア部品の組み合わせとして実装される。コンポーネント図はシステムがどのようなコンポーネント群から構成され、それらの相互の依存関係はどうなっているかといった内容を記述する。
UMLの配置図 は、処理ノードやそのノード上で動くコンポーネントが実行時にどう構成されるかを静的に表す。違う言い方をすると、配置図には、システムのハードウェアと、そのハードウェアにインストールされたソフトウェア、種類の異なるマシン同士を接続するためのミドルウェアを表すものとなる。
状態遷移図(ステートマシン図)はある状態がどう移り変わるか(遷移)ということを図面化して一覧性を高めたものとなる。ソフトウェアの設計の際に状態遷移図を作成すれば、テスト項目の漏れや抜けを防ぐことができる。
タイミング図とは、クラスやオブジェクトの状態を時系列で表す図となる。状態遷移を起こすタイミング(きっかけ)や他のオブジェクトに対するメッセージなどを表現することが出来る。
以下のような、UML以外の図もサポートしている。
さらに次のような機能もある。
- ハイパーリンクとツールチップ
- Creole: テキストの修飾、絵文字、unicode、アイコン
- OpenIconicアイコン
- Spriteアイコン
- AsciiMathによる数式
plantUMLの利用の仕方には様々な方法がある。
- Javaとしての利用(windowsの場合の利用方法は基本的にこちらとなる)
Javaとして利用するには、まずPlantUMLのjarファイルを公式ダウンロードページよりダウンロード、さらにベースとなるgraphvizを公式ダウンロードページよりダウンロード、それぞれをファイルに格納し、plantuml.jarをターミナルで実行する。その際にgraphivizに含まれるdot.exeの場所を指定する。
> java -jar plantuml.jar -graphvizdot C:\Graphviz\bin\dot.exe ...
- Macでの利用
Macではbrewを使って利用することもできる。
> brew install graphviz
> brew install plantuml
text editorでUMLファイルを作り
//architecture.uml
@startuml
actor User
participant "First Class" as A
participant "Second Class" as B
participant "Last Class" as C
User -> A: DoWork
activate A
A -> B: Create Request
activate B
B -> C: DoWork
activate C
@enduml
実行する。
$ plantuml architecture.uml
以下のような結果が出力される。
- webツール(plant UML editor)の利用
Webツール(plantUML editor)を使うとインストールなしで利用できる。
- アプリケーションに仕込む方法
データベースのデータを検索/変換してUMLの形で出力するというアプリケーションを考えた場合、最もシンプルな形態はJavaを利用するもので、”汎用アプリケーション構築環境であるJavaとScalaとKoltlin“に記述してあるように、ライブラリとして利用するものとなる。JVM上で動作するLISPであるClojureを使って、”ClojureとJavaの連携“に記載しているような方法を使ってライブラリとして利用する。
サーバーとしてplantUMLを立ち上げで、APIを介してやりとりする手法もある。
また、Javascriptで利用するものとしては、Jqueryと統合する形態や、”JavaScriptを用いてPlantUMLを呼び出す“等や、node-plantUML等の手法もある。
コメント
[…] UML、ワークフローデータの可視化ツールplantUML […]