<< 実践 ドメイン駆動設計 : オブジェクトの生成 | main | 実践 ICONIXプロセス : 問題空間から解決空間へ >>

実践 ICONIXプロセス : シーケンス図とクラス図

ICONIXプロセスは、動的モデルと静的モデルの二つの流れが基本構造。

動的モデル

画面の紙芝居→ユースケース→ロバストネス図→シーケンス図

静的モデル

ドメインモデル(概念クラス図)→実装モデル(詳細クラス図)→コード

動的モデルと静的モデルの同期

コードは(静的モデルの)詳細クラス図から作成する。(できれば自動生成する)
しかし、実装の設計は、(動的モデル)のシーケンス図で行う。シーケンス図を描きながら、操作(メソッド)をクラスに割り当てる決定をしていく。

実際には、モデリングツールを使って、シーケンス図を描く作業をしながら、詳細クラス図も同時に更新してしまうところがポイント。

動的なシーケンス図で考えながら、静的なクラス図も更新する。

シーケンス図でクラス設計

デザインパターンと呼ばれるものは(静的な)クラス図での説明を良く見かける。
Eric Evans のドメイン駆動設計(DDD)でも、中心は、クラス図である。
クラス図があって、サンプルコードがある、という説明が多い。

クラス設計というと、クラス図つまり静的モデルのイメージが強く、シーケンス図でクラス設計、というのは、違和感があるかもしれない。

しかし、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