シーケンスチャート自動作成ツール (AMSM)

English

What is AMSM? これは何をするものか?

Direction: In recent days, you will be asked to demonstrate how how well you understand writing the sequence chart.

指示: 今日では、書かれているシーケンスチャートをどの程度理解しているかが問われます。

You will read a question and four response written for the sequence chart.
Select the best response to the question mark the letter (A),(B),(C), or (D).

あなたは1つの質問と、4つの応答をシーケンスチャートのために読むでしょう。
質問に対して最も適切な応答を選び、(A),(B),(C),または(D)のいずれかをマークしてください。

Look at the graphic. Are you happy that you can create the sequence when you open the declaration?

画像を見てください。貴方は宣言に飛ぶとともにシーケンスチャートが生成できたらうれしいと思いますか?

Statement (C),"Sure," is the best description of the graphic, so you should select the answer (c) and install this plug-in into Eclipse.

(C)の文「もちろん」がこの画像を最も適切に表しているので、(C)を選び、このプラグインをEclipseにインストールします。

Table of contents. テーブルおぶコンテンツ

Tutorial. チュートリアル編

Typically image. 代表イメージ

こんな感じです。

Step 1: Open declaration. Eclipse上でジャンプをする

Java Editor -> pop-up menu -> Ando Manual Sequence Maker -> Open Declaration.

専用のジャンプ機能でジャンプしてください。
Javaのエディタ上で、メソッドを選択し右クリックして出てくるポップアップメニューから、 "Ando Manual Sequence Maker"→"Open Declaration"をクリックします。

Enjoy!

Enjoy!

さぁ、楽しもう!
PlantUMLにシーケンスが表示されましたね!
後はPlantUMLの画面を右クリックしてExportで保存すれば仕様書などにも張り付けられます。
Copyを使うとクリップボードに画像イメージが入るのでワードやパワポに直接ペーストするとさらに工数が短縮できますね。

[Etc] Block. [参考]ブロックの配置

Java Editor -> pop-up menu -> Ando Manual Sequence Maker -> Add Block.

ブロックも配置することができます。
Javaのエディタ上でブロックを置きたい範囲を選択した後、 メソッドを選択し右クリックして出てくるポップアップメニューから、 "Ando Manual Sequence Maker"→"Add Block"をクリックします。

次に出てくるダイアログで引くブロックの種別を決めます。
タイプによりどのブロックが使われるかグラフィカルに決まります。
メッセージのテキストは基本そのまま入りますが、 PluntUMLに対する指示語が入っているとそれを実行しますので注意です(逆にいろいろ色付けできます)。

結果はこんな感じです。
それっぽいものが出てきましたね。

[Etc] Outline. [参考]アウトライン

アウトライン表示をさせると取ったデータが木構造ででてきます。
間違って線を引いてしまった場合やメッセージを変更したい場合などはこちらで調整してください。
メッセージはPlantUMLの構文がむき出しになっているので、位置なども変更可能です(note rightをnote leftに変えたりとか)。

[Etc] Call Hierarchy View. [参考]Call Hierarchy View からの作図

メソッドの呼び元を探すときに使うCall Hierarchy Viewからもシーケンスを作図できるようにしました。
かなり便利です。
ツリーから選択すればツリーの左側の親節に向かって線を引きます。

[Etc] throw and thread. [参考]throw や thread

throw や thread は自動(?)では引けないので、手動で引いてください。
呼び元と呼び先を指定すれば簡単に作図ができます。

How to install. インストール方法編

How to install PluntUML. インストール方法:PluntUML

シーケンスチャートを作図するためのPlantUML eclipseをインストールしてください。

How to install AMSM. インストール方法:AMSM

This is update site.

PlantUMLがインストールできたのなら、同じようなやり方でAMSMをインストールしてください。
update siteは以下になります。

その他

動作確認環境は?
Java8 SDK 以上(λ式やstreamを使っているので……)。
Eclipse 4.6.1 以上。
ライセンスは?
劣化GPL (LGPL)です。
ソースが見たい
binary build内に梱包したので勝手に見てね☆
免責事項
このソフトウェアはOSSです。 このソフトウェアを使用して発生したいかなる問題についても責任を負いません。

更新履歴

1.1.1
初版:とにかくコンセプトとその場の勢いと現実逃避だけで作ってます。きっとバグ多数!
1.1.2
outline から該当クラスへジャンプできるようにした。大変だった。
1.1.3
インナークラスがシーケンスに出ないなどの数々のバグを直した。
1.1.4
Javaのソースコードでだけポップアップメニューを開くようにした。
手動で呼び元、呼び先が指定できるようにした(インタフェース対策)。
手動で呼び元、呼び先(例外用)が指定できるようにした。
ソースがないときのジャンプ時のメソッド名が空だったのを、呼び元のライン行に変更した。
1.1.5
例外発生時の戻り線がおかしかったので修正。
例外発生時の戻り線を赤色に修正。
設定で footboxを付けられるようにした
設定で ライン行を付けられるようにした。
設定で 開始位置を付けられるようにした。
elseを実装した。alt, par, loop で領域選択した中にmessageとして入れます。中になければ単体で出ます。
フィーチャーにライセンスとかまじめに書いた。
1.1.6
メッセージ投入が分かりずらいのでオペレーション毎に画像投入。
アウトラインでクリップボードへのコピーと、アップダウンを追加。
1.1.7
デフォルトではエディタがフォーカスされたらPluntUMLに更新実施するように変更。
1.1.8
説明にアウトラインを追加。
サーチ用のView(Call Hierarchy View)にメニューが出ていたのを潰した(正常動作しない)。
1.1.9
サーチ用のView(Call Hierarchy View)にメニューを出してシーケンスが作れるようにした。
1.1.10
説明にCall Hierarchy View を追加。
サーチ用のView(Call Hierarchy View)にメニューを出してシーケンスが作れるようにしたが、 呼び元のライン行がメソッドの先頭だったのを呼んだ行に修正。
1.1.11
Call Hierarchy Viewにメッセージを追加しました。
From-Toの指定でスレッドが指定できるようにしました。
Online Viewの画面でメッセージが変更できるようにしました(これないと結構ストレスたまる)。
Online Viewの画面でメッセージが変更時に横線ならスレッドが指定が変更できるようにしました。
encodeを System.getProperty("file.encoding"); ではなく、FileDocumentProvider から取るようにしました。
1.1.12
participant の発生順改善。シーケンス順に正しくクラスが並ぶように修正しました。
ソースのないクラスファイルへジャンプしたとき、活性化線や(Same)の文字が出ないようにしました。
このページの説明を強化しました。
1.1.13
英語の勉強しながらこのページを英語にしました。
ブロックのメッセージが変更できないのを修正しました。
アウトラインに表示されるメッセージが気に入らないので修正しました。
ダイアログの高さがwindows7で見たときに低かったので多少大きくしました。
1.1.14
Quick Type Hierarchy に対応しました。
インタフェースがあるときのジャンプって困ってたんだよね…。
というか、こんな便利な機能があることを今まで知らなかったなんて…
1.1.15
ウィザードの強化をしました。
ウィザードで指定したファイルが存在するときはそのファイルを開くだけ(デフォルトを書き込まない)ようにしました。

線を引いたとき、ASMSが開いていなければ勝手にウィザードを開くようにしました。
このページからウィザードを開く説明を削除しました。

AMSMで画面を更新したとき、PlantUMLが存在していなければ勝手に開くようにしました。
このページからPlantUMLを開く説明を削除しました。
PlantUMLへの描画のタイミングで、「AMSMをフォーカスしたとき」を、 「AMSMをクリックしたとき&AMSMを開いたとき」に変更しました。
PlantUMLのビューを閉じたときにAMSMがフォーカスしてdisposeのviewに書き込みを行おうとするバグを修正しました。
1.1.15
このページのmetaタグにkeywordを入れました。
メッセージを追加するときのtypeについて、変更してたらそれを記憶して次回も同じ種別とするようにしました。
throwの線を引いたとき、クラス名部分が省略されない不具合を修正しました。
threadの線を引いたとき、呼び先のメソッド名が表示されるようにしました。
ウィザードで参照したとき、表示されるダイアログのデフォルト位置を自身のフォルダに変更しました。
1.1.16
note型のメッセージと||型のメッセージが別メニューになっていたのを結合しました。
1.1.17
EclipseがNeon.2、PlantUMLがバージョンアップされていたので念のためビルドしなおした。
1.1.18
使っていたらNullPointerExceptionが出ていたので"がッ"っと直した。