製品事業部の松田です。(読みやすくなるモデルを描くコツ「りりぃメソッド」連載中)
普段、astah*の製品開発やサポート、astah*のプラグイン開発等をしています。
私は、昨年からETロボコンに実行委員として関わっており、沢山のチームのモデル図を見てきましたが、同一クラスを指定しているのに、クラス図とシーケンス図で操作名の異なる図を多く見かけました。本来、同一クラスの同じ操作であれば、名前が一致しなくてはなりません。astah*には、これを自動で合わせる機能がありますが、あまり知られていないようなので紹介します。
既存のクラスをシーケンス図で使う
astah*では、作成したクラスを、シーケンス図のライフラインのベースクラスに設定することで、クラス図とのトレーサビリティを保ちながら動的設計をすることができます。
例として、運搬車が走ることを説明するためのクラス図を描いてみました。
この図で作成したクラスを用いてシーケンス図を作成しましょう。
まず、シーケンス図を作成します。
Transporterクラスを、構造ツリーからシーケンス図にドラッグ&ドロップすると、図上に、Transporterクラスをベースクラスとして持つライフラインが作成されます。
また、ライフラインをシーケンス図で作成した後に、ベースクラスを設定する事もできます。
図上で、ライフラインのラベルに「:Driver」と入力すると、ベースクラスにDriverクラスが設定されます。また、ライフラインのプロパティビューのベースタブからも設定できます。
これで、同一のモデルを、クラス図とシーケンス図の両図で扱え、クラス図側で行ったクラス名などの変更も、シーケンス図に反映されるようになります。
クラスに定義した操作を指定してメッセージを描く
astah*では、メッセージに操作を指定することで、クラス図側で操作名やパラメタを変更した場合、シーケンス図にも反映されるよう設定できます。
メッセージを作成し、コンテンツアシストから「run」を選択します。
クラス図上で変更した操作名が、シーケンス図に反映されるようになりました。
コンテンツアシストが出ない設定になっている方は、メッセージを選択してプロパティビューのベースタブの操作から設定することも可能です。
シーケンス図からクラスに操作を追加する
astah*では、シーケンス図から操作を追加してクラス図に反映させることも可能です。
ベースクラスが設定されたライフラインにメッセージを作成し、ベースタブから操作を新規作成します。
操作ダイアログからメッセージの名前や返り値、パラメータなどを設定できます。
いかがでしたか?ご参考になれば嬉しいです!
(2018/07/19 追記)
本記事をお試しいただく際におすすめの機能や設定をまとめました。是非こちらもご覧ください。
「クラス図とシーケンス図のトレーサビリティを保ちながら設計する」への2件のフィードバック