モデリングの5段階
ここまでオブジェクト指向プログラミングの段階論を解説したが、モデリングにも段階論がある。羽生田氏はモデリングの5段階について以下のように説明した。
まず第1段階は「箱と矢印」で、物事を整理するための方法論である。この方法で、要求や要求の中に出てきた重要な用語を整理する。次の第2段階のUML(統一モデリング言語)について羽生田氏は、「箱と矢印にちょっとだけ毛が生えた程度の表記統一をしようと軽い気持ちで使うのが無難。ただ難しい表記法や細かい文法の詳細は覚える必要がありません」と言い切る。
第3段階の概念モデリングは、ドメインや業務の構造を導入したモデリングだ。第4段階では企画・要求のレベルのモデリングが導入される。これにはビジネスキャンバスやステークホルダ分析といった概念を用いる。そして、これらの概念とオブジェクト指向プログラミングを統合するのが、第5段階のDDDの活動である。
羽生田氏は、特に重要だという第3段階のドメイン(概念)モデリングについてさらに深掘りした。これに取り組むためには、該当の業務分野のエキスパートと「モブモデリング」を積み重ねることが重要だ。「(ドメインモデリングは)オブジェクト指向プログラミングと違って設計原則がまとめられていません。そのため、どうしても業務分野ごとにノウハウというのを学んでいく必要があります」と羽生田氏。
とはいえ、すべての分野に利用できるパターンはある。羽生田氏が提唱する「5W1Hビジネスモデルパターン」と「モノ・コト・バに基づくカテゴリ表」だ。何か事象が発生したときにその構造をみんなで整理するためにこれらの考え方を活用できるという。
さらに羽生田氏はドメインモデルの本質について「人間はどうしても思考してしまう動物なので、その業務をそのままモデル化することは、現実にはあり得ない。素直なモデルと思っていてもそれは人類の長い歴史があって、素直に見ていると思い込んでいるだけ」と補足する。
また、ソリューションのレベルのモデルと業務領域のモデルは、重なってしまっているそうだ。それを解きほぐし、どこまでが共通の了解事項で、どこからが自分たちが新たに考え出した発想概念なのかを整理し、モデルの中に取り込む必要があるわけだ。
「とはいえ、深いモデルを作り上げるためには発明が大事です。発見と発明を繰り返しながら、業務の現場のエキスパートと一緒に仮説検証していくことがモデリングの際には重要だと思います」