ソフトウェア開発メモ

日々のソフトウェア設計、実装で考えている、気づいた事を書いています。それが真実か否かは保証しません。悪しからず。

責務駆動設計について(責務駆動設計≠責務駆動分析)

はじめに

上記について、再度、本を読んだり調べたりした結果、責務からクラスを抽出するものと勘違いしていました。設計という名前の通り、責務を本格的に考えるのは設計フェーズのようです。他の手法同様、分析工程ではまずクラスを抽出します。

 そこでどういう方法でクラスを抽出しているかざっくり調べてみました。若干責務視点のフレーバーがあるもののICONIX等のプロセスとそんなに変わらないようです?。

*1まじめに勉強したい人は、ちゃんと本なりそれなりの見識を持った人のサイトで調べてください。あくまで雑感です。勘違いしている可能性があります。

クラス抽出の方法について

以下の2つの本から調べました。

  1. Amazon.co.jp: 組込みソフトウェア開発のための オブジェクト指向モデリング (組込みエンジニア教科書): SESSAME WG2: 本
  2. Amazon.co.jp: オブジェクトデザイン (Object Oriented SELECTION): レベッカ・ワーフスブラック, アラン・マクキーン, 株式会社オージス総研 藤井 拓, 辻 博靖, 井藤 晶子, 山口 雅之, 林 直樹: 本

これより、1を組み込みオブジェクト指向モデリング、2をオブジェクトデザインとします。

システム文章の記述

組み込みオブジェクト指向モデリング

  • 具現化するシステムの本質部分をとらえる。モデリング

オブジェクトデザイン

クラス抽出の観点

クラス抽出は以下の観点で行います。事前の名詞抽出とか類似システムの解析とかは個々では扱いません。

組み込みオブジェクト指向モデリング

  • 有形物
  • 役割
  • 出来事
  • 相互作用
  • 仕様

オブジェクトデザイン

  • システムが行う作業
  • オブジェクトの構造とグループ
  • アプリケーションが知っている実際の物事を表す必要があるもの。
  • 判断アクティビティ、制御アクティビティ、調整アクティビィティ
  • ハードウェアデバイス
  • ソフトウェア内を流れる情報

クラス候補のふるい落としと整理

抽出したクラスを以下の方法で整理整頓します。

組み込みオブジェクト指向モデリング

  • キークラスの発見
  • 適切な抽象化

オブジェクトデザイン

  • 共通概念を探す

クラス候補のふるい落としと整理

 じゃあ、責務はどう見つけているんだという事については次回書きたいと思います。

PS:相変わらず、設計手法の本を読むのって難しいですね。なんか思想書、哲学書みたいだし。

*1: