ソフトウェア開発メモ

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

類似モデル参考法によるクラス抽出について

書籍「実践UML」や「ドメイン駆動設計」等で、まず最初に類似の既存モデルを参考にクラス構成を考える事をまず検討しろと言われている?。ただし、具体的にどういう方法でという事は記載されていない。ドメイン駆動設計の本には会話形式で記載があるが、パッと読むとヒューリスティックにやっているっぽい。

まあ、自身のつたない経験から箇条書きにしてみる。

  • (ドキュメントが十分でない場合)既存のクラスモデルを咀嚼して背景となる要求を暴き出す。これが一番の難しいかなと思う。作業者の豊富な経験が必要。

  • 既存のクラスモデルが巨大な場合、特化した構成を考える。

    • いらないクラスを削除する。
    • いらない抽象化はなくす。
    • いらないメソッドはなくす。
    • などなど
  • 既存のクラスモデルでの要求仕様と、今回の要求仕様との相違点を洗い出し、既存のモデルを再構成する。
  • 既存と今回のとのユキビタス言語(クラス名、属性名、メソッド名)のすり合わせを行い、調和させ、一つの言語を再構成する。
  • 既存モデルからプラットホーム依存のクラスをはずして、今回のプラットホームに再構成したモデルを乗せてみる。

て書いていて、要は既存モデルを十分咀嚼して、対象のアプリ向けに再構築する能力が必要なんだと思う。そのためには、分析/設計手法に習熟する事が必要。付け焼き刃だと痛い目にあう。