こんにちは。モデリング事業部の藤戸と細合です。
本日は新たにリリースした「astah* PlantUML Plugin」をご紹介します。
みなさんは「PlantUML」をご存知ですか。
PlantUMLとはテキストでUML図などを作成できる言語/ツールです。ここ数年で、各種エディタのプラグインや様々なWikiサービスにおいてMarkdown内に書けるようになっているなど、対応しているツールやサービスが増えていることを知っている方も多いのではないでしょうか。
チェンジビジョンのエンジニアである我々も、もちろんPlantUMLを知っていました。今回「PlantUML Plugin」を開発したのは、たくさんの人に使われているPlantUMLと繋がることで、astahユーザにとって嬉しいことがあると思ったからです。また、PlantUMLは知っているけれどastahは知らないという皆さんにもアピールできるのではないかと考えました。
astah* PlantUML Pluginでできること
本プラグインは、astahとPlantUML間でクラス図、シーケンス図、ステートマシン図、アクティビティ図を相互変換できます。astah*で作成・編集したモデルをPlantUMLに変換したり、PlantUMLでテキスト記述した要素をastah*の図に変換したりといったことが可能です。(対応/未対応の項目はREADMEに詳しく記載していますのでご確認ください。)
両者の間で図を相互変換できることで、 作成物をそれぞれで再利用できます。さらに、astahへのモデル入出力方法としてPlantUML言語を用いることで、テキストを扱える様々なツールやサービスに対応しやすくなるとも思います。
活用方法に大きな可能性を感じるこのプラグインをぜひ多くの方に使っていただき、少しでもastah*に触れる、使用する機会が増えれば嬉しい限りです。
プラグインのインストール方法や使い方はReadmeも参照してください。
使い方 基本編
このプラグインでは、PlantUMLからastah、astahからPlantUMLへの変換を行うことができます。

まずは、PlantUMLからastahへの変換を一緒に体験してみましょう。
astah* professionalを起動してプラグインのインストールが完了した皆さんは、新規プロジェクトを作成して、拡張ビューのPlantUML Viewを開いてください。
左側のエディタにPlantUMLでクラス名や属性、操作を記述すると、右のプレビューにPlantUMLから生成した画像が表示されます。
エディタに書いたPlantUMLは逐次評価され、構文エラーがある場合は下部のステータスバーにエラー箇所が表示されます。
例えば以下のようなPlantUMLを記述すると、
@startuml
class Alice {
int id
}
class Bob {
int age
}
Alice *-->Bob
@enduml
次の図が生成されます。

この状態で「toAstah」を押すと、astahに変換されます。初回の変換時はPlantUMLの図の位置関係が保持されます。
生成されたastahの図を編集して、PlantUMLに戻してみましょう。Carolを追加し「toPlant」をクリックすると図が変わりました。

astahで定義したモデルをPlantUMLに変換できました。ただし、残念ながらastahの位置情報は消えてしまいます。
このように、PlantUMLとastahを相互に行き来することができます。
現在対応しているのはクラス図、シーケンス図、ステートマシン図、アクティビティ図の一部の項目です。
使い方 応用編
モデルとテキストを相互に行き来できると、モデルの応用範囲が広がります。
例えば、Excelの仕様書をテキスト加工してクラス図として読み込むことができます。

従来も、テキストをastahに張り付けることで1行を1クラスとして一括で取り込むことができましたが、属性および操作も一緒に読み込む方法はありませんでした。 astah* PlantUML Pluginを使う場合、テキストに加工する手間はありますが、大量の情報を読み込む際に有用だと思います。
一方、モデルをテキストに出力する例では、例えばProtocol bufferのひな型として利用することもできそうです。

これまでも専用のプラグインを作成すればテキストの入力や出力は行えましたが、それぞれ固有の実装が必要でした。その点、今回のプラグインでテキスト形式のモデル(PlantUML)を介することで、テキスト処理だけで汎用的にモデルを扱うことができそうです。

astah* PlantUML Pluginは、どなたでも無償でご利用いただけます。PlantUMLやテキストモデリングに興味のある方はぜひ試してみてください!
※astah*プラグインは、サポートサービスの対象外です。
ご意見・ご要望・Pull RequestはGithubへお寄せください。
「astah* PlantUML Plugin」への3件のフィードバック