モデリング思考実験

作業ステップ

  1. ユースケースの識別
  2. 概念モデル(クラス図)の作成
    1. グローバル識別子の識別
    2. グローバル識別子から概念モデルクラスの導出
    3. 概念モデルクラスをものこと分析し関連を識別
    4. 概念モデル(クラス図)の作成
  3. 分析モデル(クラス図)の作成
    1. 概念モデルクラスごとに台帳を作成
    2. 台帳のデータバリエーションを整理し一般化する
    3. 台帳からオブジェクト図を作成し分析クラス図に整理
      • ステレオタイプと関係の分析
      • 内部エンティティの識別(仮想・説明・ストア)
      • 構造バリエーションの識別
      • 状態バリエーションの識別
      • ビジネスルールの識別
      • ロールタイプの導入
  4. ロバストネス分析
    1. ユースケースコントローラの配置
    2. バウンダリの配置
    3. サービス(ユーザ機能)の識別
    4. ビジネスルールの識別
    5. エンティティの配置
    6. 分析モデル(クラス図)へのビジネスルールの反映
  5. 設計モデル(関心事に分離されたドメインモデル)の作成
    1. 開発単位(ユースケース/サービス)の識別
    2. 分析モデルの切り出し
    3. 設計クラス(Entity・Value)の導出
    4. 設計クラス(Role)の導出
    5. 設計クラス(Specification)の導出
内部エンティティの識別

グローバル識別子をもっていないエンティティ。
特定のエンティティに混入しているものを識別する。本質的にもとのエンティティの属性でないもの。従属性やライフサイクルの違いで判断される。
メタ構造的な関係においても、自エンティティのパワータイプである説明型、リソース(説明)型のエンティティ(M1)のインスタンス(M0)の数量を管理するストア型が識別できる。なお、ストア型としてはエンティティのイベントの数量を管理する場合もある。
内部イベントは分析では状態バリエーションとして取り扱う。

構造バリエーションの識別

エンティティレベルの属性や処理ルールの構造的なバリエーションの違いを表現する

状態バリエーションの識別

内部イベントで変化する状態を表現する。

ビジネスルールの識別

ビジネス上取り決められたルールを表現する。
典型的なルールは導出項目と検証処理である。
検証処理は構造制約や操作制約を考える。
ただし、追加などの更新処理は変更が有効か対象クラスの整合性を検証する処理が通常存在するが、分析モデルではシンプルさを保つために暗黙的な検証処理として明示せず、設計・実装時に取り扱う。

メモ

概念モデルの属性の特性から分析クラスを導出する方法

  • 生成時以外のタイミングで設定される属性
    • 状態クラスの属性
    • 内部イベントの属性(分析時は状態クラスのみで明示しない)
  • 生成時に設定されない場合は必ず設定されない属性
    • 派生クラスの属性
  • ○○名の属性(識別子を持たないエンティティ)
    • 内部エンティティ(仮想型)
  • エンティティを説明するための属性
    • 内部エンティティ(説明型)
  • エンティティの数量を管理する属性
    • 内部エンティティ(ストア型)
  • 組み合わせルールや導出項目の決定表をあらわすデータ
    • ルールクラス
  • 国際通貨型、範囲型など個別の業務ロジックに依存しない非組込クラス
    • 汎用クラス
  • リソースとリソースの関係
    • 親子関係
    • 説明−ものの関係
    • 相互作用(イベントでの関連)