<< 実践 ICONIXプロセス : 設計の腕を上げる | main | 実践 ICONIXプロセス : 詳細設計のまとめ >>

実践 ICONIXプロセス : シーケンス図アンチパターン

ICONIXプロセスでは、シーケンス図は、ユースケースを実現する実装クラス図を完成させるための手段です。
一般的なUMLシーケンス図の描き方からは逸脱するところがある。
重要なのは、手段より目的。

シーケンス図を描く時に犯しがちな誤り。

活性区間

オブジェクトの活性区間は、重要な概念です。
しかし、問題は、活性区間を思うように描くのはかなりたいへん。Enterprise Architect は良く出来ているモデリングツールだと思いますが、それでも、活性区間は思うように描けない。特に修正がたいへん。

活性区間にこだわるのは、やめましょう。
ICONIXプロセスのシーケンス図は、クラス図に操作を定義するための手段です。このためには活性区間は何も意味を持ちません。

最初から、活性区間の表示をオフにしてシーケンス図を描けばそれで十分です。

内部の動作

シーケンス図を描き出すと、フレームワークのオブジェクトまで描き出す人がよくいます。あるユースケースを実現するためのオブジェクトの協調動作を正確に描こうとすれば、そこまで描くことは必要。

しかし、ICONIXプロセスのシーケンス図の目的には、そこまで描くことは何の役にも立ちません。
むしろノイズが多くなって邪魔になる。 内部の深くまで踏み込み過ぎですね。

重要なのは、自分たちが設計するクラスに操作を割り当てることです。ただ、これだけが目的です。
ですから、内部のオブジェクトに深入りはしないこと。

フレームワークの内部の動作をシーケンス図で描いてみることは、勉強としては、とても良いことだと思います。
でも、ICONIXプロセスのシーケンス図作成(詳細設計)の作業とは全く別です。

ICONIXプロセスで言えば「テクニカルアーキテクチャ」の作業の一部として、フレームワークの動作を描いてみることは役に立つかもしれません。

順番の整合性

シーケンス図は、名前の通りオブジェクトの動作の順番(シーケンス)通りに描いていくのが原則です。

ICONIXプロセスでは、ユースケース記述の実現を描くことが目的。ユースケース記述には、基本コースと(複数の)代替コースがあります。ひとつひとつのコースは順番に描くことができますが、全体としては、一つのシーケンスにはなりません。

元もとのシーケンス図の記法からすれば、コースごとに別のシーケンス図を描くのが正しい。

しかし、ICONIXプロセスでは、代替コースを含めて、一枚にシーケンス図にひとつのユースケース記述を絵にすることを強調します。

シーケンス図を描くことは、ユースケースの実現方法を検討することが目的。そして、代替コースだけ独立させて検討すると、ユースケース全体の整合性が崩れても気が付かない。何か代替コースについて問題が起きたり、修正が必要になった時の、他のコースとの関連や影響を見落とすことになる。

ユースケースを小さな単位に分割することは良いことですが、ユースケースを基本コースと代替コースという個別のコースにばらばらにすることは、良いことではありません。

コメント
コメントする









この記事のトラックバックURL
トラックバック
calendar
     12
3456789
10111213141516
17181920212223
24252627282930
<< September 2017 >>
システム設計日記を検索
プロフィール
リンク
システム開発日記(実装編)
有限会社 システム設計
twitter @masuda220
selected entries
recent comment
  • 番号より名前。 ニーモニックコードより名前。 【パターン】
    師子乃 (03/10)
  • Smart UI が優れている?
    masuda220 (03/10)
  • Smart UI が優れている?
    kagehiens (03/09)
  • オブジェクト指向プログラミングの教え方?
    masuda220 (12/05)
  • オブジェクト指向プログラミングの教え方?
    ZACKY (12/04)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    kompiro (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    JHashimoto (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (02/28)
recent trackback
categories
archives
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM