はじめに
astah*のプラグイン機構は、astah*に自作機能を追加し、機能拡張を実現する仕組みです。プラグインを作成することで、メニューや拡張ビューなど、 astah*のGUIに独自のコンポーネントを追加できます。本チュートリアルでは、サンプルを中心にプラグインの作り方を紹介します。尚、本チュートリアルは、下記環境バージョンを使って作成しました。
ソフトウェア | バージョン |
OS | Windows10, Ubuntu Linux 11.10 |
Java | Oracle JDK7 |
astah* | professional, UML, community 6.8, SysML 1.1 |
Eclipse | 3.7.1 |
IntelliJ IDEA | 11.1 |
astah* プラグイン機構の仕組み

astah*のプラグイン機構は、起動時にastah*インストールフォルダ配下のpluginsフォルダにあるプラグインファイルをロードします。プラグインは、OSGi Bundle形式のjarファイルである必要があります。
プラグインの開発中、プラグインフォルダ配下にコピーしなくても良いよう、また、Bundleへのパッケージングを自動的に行うなど、開発を楽にする開発環境を用意しています。
それでは早速astah*のプラグイン開発環境を構築してみましょう。
開発環境の構築
astah*のプラグイン開発環境として、astah* Plug-in SDKを配布しています。
この astah* Plug-in SDKは、Maven3をベースにカスタマイズしたものです。ここではastah*のプラグインの開発環境を構築しましょう。
なお、プラグイン開発環境のシステム要件は、astah*に準じます。
まず配布されているPlug-in SDKを適当なフォルダに展開します。次に以下に挙げる環境変数を設定します。

・環境変数「ASDK_HOME」を追加し、展開したフォルダを指定する
例: set ASDK_HOME=C:\dev\astah-plugin-SDK-1.0
・環境変数「PATH」にastah* Plug-in SDKの実行ファイルがある「%ASDK_HOME%\bin」フォルダを追加する(Linux/Mac OSXでは「$ASDK_HOME/bin」)
例: set PATH=%ASDK_HOME%\bin;%PATH%
以上の作業が終了したら、次のコマンドを入力してみましょう。
> asdk
以下のような出力が得られれば、astah* Plug-in SDKのインストールは完了です。
> astah* Plug-in SDK version: 1.0
次に、任意のテキストエディタで%ASDK_HOME%¥conf¥settings.xmlを開きます。
初期設定では、astah* professionalのWindows環境が有効になっています。
使用するエディションとOSに対応するidのprofileを有効にしてください。必要があればパスも変更します。
<profile> <id>astah-professional-windows</id>
<!-- このIDの[professional]はastahのエディション、
[windows]はosです --> <activation> <activeByDefault>false</activeByDefault> <file> <exists>
C:/Program Files/astah-professional/astah-pro.jar
</exists> <!--- ココ --> </file> </activation> <properties> <astahPath>
C:/Program Files/astah-professional
</astahPath><!--ココ --> <astahEdition>professional</astahEdition> </properties> <pluginRepositories> <pluginRepository> <id>local_astah_repository</id> <name>Local Astah* Plugin Repository</name> <url>file://${env.M2_HOME}/repository/</url> <layout>default</layout> <snapshots> <enabled>true</enabled> </snapshots> <releases> <updatePolicy>never</updatePolicy> </releases> </pluginRepository> </pluginRepositories> </profile>
次にastah* Plug-in SDKからastah*が起動できることを確認するために、下記のコマンドを入力してみましょう。
> astah-launch
うまく行くと、お使いのastah*が起動します。

Return code is: 501, ReasonPhrase:HTTPS Required
あるいは
Could not transfer artifact xxx from/to central
等のエラーが発生する場合があります。
その場合は、こちらのエラー対応方法をご確認ください。
プラグインを作ろう!
作成したプラグインをastah*にインストールする
作成したプラグインは、astah*プラグインプロジェクトにあるtargetフォルダの中に[artiactId]-[version].jarという名前で生成されています。この.jarファイルを、astah*インストールフォルダ\pluginsへコピーすればインストールは完了です。 プラグインがインストールされたかどうかの確認は、astah*の[ヘルプ]-[プラグイン一覧]を開いて確認します。
※astah* バージョン7.2から[プラグイン一覧]の開き方が変わりました。
プラグインをリリースする
プラグインのリリース前に、開発したastah*のバージョンと、動作対象エディションを設定しておきましょう。設定を行うと、対象外のastah*環境では、プラグインを起動しなくなります。
pom.xmlを開き、<properties>タグのastah-versionとastah-editionに指定します。
<properties> <bundle.symbolicName>
com.change_vision.astah.sample
</bundle.symbolicName> <bundle.namespace>
com.change_vision.astah
</bundle.namespace> <plugin.install>true</plugin.install> <astah.version>6.6</astah.version> <astah.edition>all</astah.edition> </properties>
astah.versionには開発に利用したastah*のバージョンを書きましょう。空欄にした場合は、全てのバージョンが動作対象となります。astah-editionに指定するキー名は、下記の表を参照してください。
Edition | Value |
全エディション対応 | 空欄、またはallか、* (astah.versionは1.1にしてください) |
professional | pro、またはprofessional |
UML | uml、またはUML |
SysML | sysml |
community | com、またはCommunity |
think | think |
メニューID一覧
Name | ID |
ファイル | file |
編集 | edit |
図 | diagram |
整列 | alignment |
表示 | view |
ツール | tool |
ウィンドウ | window |
ヘルプ | help |
プロジェクトの新規作成 | file/new |
テンプレートからプロジェクトの新規作成 | file/new_template |
プロジェクトを開く | file/open |
プロジェクトを保存 | file/save |
プロジェクトの別名保存 | file/saveas |
プロジェクトを閉じる | file/close |
プロジェクトをマージ | file/import_model_by_uuid |
参照プロジェクト管理 | file/refer_model_management |
プロジェクトの簡易比較 | file/compare_project |
印刷設定(プロジェクト) | file/print_setup |
印刷設定(図) | file/print_setup_dgm |
印刷プレビュー | file/print_preview |
印刷 | file/print |
まとめて印刷プレビュー | file/preview_multi |
図をまとめて印刷 | file/print_multi |
終了する | file/exit |
編集を取り消す | edit/undo |
編集をやり直す | edit/redo |
コピー | edit/copy |
クリップボードにコピー | edit/copys |
貼り付け | edit/paste |
スタイルのコピー | edit/style_copy |
スタイルの貼り付け | edit/style_paste |
モデルの削除 | edit/delete_from_model |
図からの削除 | edit/delete_from_diagram |
線のスタイル | edit/line_style |
共有表記 | edit/shared_style |
アイコン変更 | edit/stereotype |
色の設定 | edit/set_color |
線色の設定 | edit/set_line_color |
文字色の設定 | edit/set_font_color |
ステレオタイプ指定の色設定 | edit/stereotype_color |
ダイアグラム上の検索 | edit/dgm_search |
全選択 | edit/select_all |
順序 | edit/arrange_depth |
クラス図 | diagram/class_diagram |
ユースケース図 | diagram/usecase_diagram |
ステートマシン図 | diagram/state_chart_diagram |
アクティビティ図 | diagram/activity_diagram |
シーケンス図 | diagram/sequence_diagram |
コミュニケーションズ | diagram/collaboration_diagram |
コンポーネント図 | diagram/component_diagram |
配置図 | diagram/deployment_diagram |
合成構造図 | diagram/compositestructure_diagram |
フローチャート | diagram/flow_chart_diagram |
データフロー図 | diagram/data_flow_diagram |
ER図 | diagram/er_diagram |
CRUD | diagram/crud_diagram |
マインドマップ | diagram/mind_map_diagram |
要求図 | diagram/requirement_diagram |
要求テーブル | diagram/requirement_table |
横の整列 | alignment/align_horizontally |
縦の整列 | alignment/align_vertically |
サイズ揃え | alignment/align_size |
全図要素の自動レイアウト | alignment/auto_layout |
選択図要素の自動レイアウト | alignment/partial_layout |
標準の倍率にする | view/zoom |
拡大する | view/zoom_in |
縮小する | view/zoom_out |
全体表示 | view/fit_window |
前の図 | view/drop_down_back_list |
次の図 | view/drop_down_forward_list |
プロジェクトビューの表示/非表示 | view/show_hide_project_view |
プラグインビューの表示/非表示 | view/show_hide_plugin_view |
ルック&フィールの変更 | view/ui |
別名の表示 | view/alias |
図を画像ファイルに出力 | tool/export_image |
HTML作成(javadoc) | tool/export_html |
クラス一覧 | tool/export_csv |
XML入出力 | tool/xmi |
RTFドキュメント作成 | tool/export_rtf |
マインドマップ | tool/mindmap |
Java | tool/java |
C# | tool/c_sharp |
C++ | tool/c_plus |
ER図 | tool/er |
CRUD | tool/crud |
要求 | tool/requirement |
トレーサビリティマップ | tool/traceability |
テンプレートの設定 | tool/template |
リンク切れハイパーリンクの検索 | tool/search_invalid_hyperlinks |
ユーザー定義タグ付き値の反映 | tool/update_custom_taggedvalue |
外部ツール | tool/external_tool |
モデル補正 | tool/correct_model |
ライセンス設定 | tool/check_license |
プロジェクト設定 | tool/project_property |
システムプロパティ | tool/system_property |
閉じる | window/close_current |
左側のタブを全て閉じる | window/close_left |
右側のタブを全て閉じる | window/close_right |
他のタブを閉じる | window/close_other |
全て閉じる | window/close_all |
整列 | window/alignment |
astah* ウェブサイト | help/jude_home |
astah* コミュニティサイト | help/jude_community |
astah* リファレンスマニュアル | help/jude_help |
ようこそastah* professionalへ | help/welcome |
バグ報告 | help/bug_info_community |
サポートへの問い合わせ | help/jude_support_site |
プラグイン一覧 | help/plugin_list |
ソフトウェアの更新確認 | help/check_version |
バージョン情報 | help/version |
SDKコマンド一覧
Command | Description |
asdk | バージョンを表示 |
astah-generate-project | プラグインプロジェクトを生成 |
astah-sysml-generate-project | astah* SysMLプラグインプロジェクトを生成 |
astah-launch | プラグインファイルを読み込んでastah*を起動 |
astah-debug | デバッグ用44000ポートを開いて起動 |