クラス図とシーケンス図のトレーサビリティを保ちながら設計する

トレーサビリティ

製品事業部の松田です。(読みやすくなるモデルを描くコツ「りりぃメソッド」連載中)
普段、astah*の製品開発やサポート、astah*のプラグイン開発等をしています。

私は、昨年からETロボコンに実行委員として関わっており、沢山のチームのモデル図を見てきましたが、同一クラスを指定しているのに、クラス図とシーケンス図で操作名の異なる図を多く見かけました。本来、同一クラスの同じ操作であれば、名前が一致しなくてはなりません。astah*には、これを自動で合わせる機能がありますが、あまり知られていないようなので紹介します。


既存のクラスをシーケンス図で使う

astah*では、作成したクラスを、シーケンス図のライフラインのベースクラスに設定することで、クラス図とのトレーサビリティを保ちながら動的設計をすることができます。

例として、運搬車が走ることを説明するためのクラス図を描いてみました。
traceability 001
この図で作成したクラスを用いてシーケンス図を作成しましょう。
まず、シーケンス図を作成します。

Transporterクラスを、構造ツリーからシーケンス図にドラッグ&ドロップすると、図上に、Transporterクラスをベースクラスとして持つライフラインが作成されます。
traceability 002

また、ライフラインをシーケンス図で作成した後に、ベースクラスを設定する事もできます。
図上で、ライフラインのラベルに「:Driver」と入力すると、ベースクラスにDriverクラスが設定されます。また、ライフラインのプロパティビューのベースタブからも設定できます。
traceability-003

これで、同一のモデルを、クラス図とシーケンス図の両図で扱え、クラス図側で行ったクラス名などの変更も、シーケンス図に反映されるようになります。

traceability-004


クラスに定義した操作を指定してメッセージを描く

astah*では、メッセージに操作を指定することで、クラス図側で操作名やパラメタを変更した場合、シーケンス図にも反映されるよう設定できます。

メッセージを作成し、コンテンツアシストから「run」を選択します。
traceability-005

クラス図上で変更した操作名が、シーケンス図に反映されるようになりました。traceability-007

コンテンツアシストが出ない設定になっている方は、メッセージを選択してプロパティビューのベースタブの操作から設定することも可能です。
traceability-006


シーケンス図からクラスに操作を追加する

astah*では、シーケンス図から操作を追加してクラス図に反映させることも可能です。

ベースクラスが設定されたライフラインにメッセージを作成し、ベースタブから操作を新規作成します。
traceability-008

操作ダイアログからメッセージの名前や返り値、パラメータなどを設定できます。
traceability-009

クラス図にも反映されました。
traceability-010


いかがでしたか?ご参考になれば嬉しいです!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s