この記事を読むのに必要な時間:およそ 1 分
ビジネスに寄り添ってしなやかに進化する一方で,人々がより人間的に働くための道具立てとなるような,あるべき基幹系システムの姿を素描することが,本書の狙いです。その姿を実現するうえでのカギとして,分散/疎結合化とデータモデリングに焦点をあてます。
第1部は,本書全体の基調を設定します。すなわち,基幹系システムをあらためて定義し,帳簿の役割とデータモデリングに正当な注意を向けます。
基幹系システムの存在意義は,企業の活動を指示・制御することにあります。指示と制御のためには,構造化されたビジネス記録,すなわち帳簿が必要です。基幹系システムは「記録のシステム」(SoR)とも呼ばれますが,記録は,それ自体が目的ではなく,活動を指示・制御する手段です。
デジタル技術が生む新たなビジネスモデルを支えるために,新たな基幹系システムと帳簿デザインが必要です。既成のビジネスにおいても,紙帳簿を踏襲したデザインから脱皮し,現代の技術を十分に活かした基幹系システムを生み出すことが重要です。データモデリングは,デジタル時代に即した新たな帳簿をデザインする営為です。
基幹系システムを適切に設計するには,UI設計やデータベース設計と区別して,データモデリングを正しく位置付ける必要があります。このために,「ユースケースに依存しない帳簿デザイン」「データモデルの等価性」という概念がカギとなります。
第2部では,基幹系システムのデザインとデータモデリングについて,新たな視点を導入します。
分散/疎結合化のためにマイクロサービスを含む技術が提案されてきましたが,それらは「分離」の枠組みであって「分割」の枠組みではありません。本書は,分割に焦点をあて,基幹系システムの全体を活動のシステム(SoA)と経営管理のシステム(SoM)に区分します。この2者をさらにブレークダウンするとともに,帳簿に対する要請が2者間で大きく異なることを示し,それぞれについて,残管理,多次元データモデルとバージョン管理といった中核的なパターンを見いだします。
加えて,情報システムのデータモデルとソフトウェアのデータモデルという区別を提示します。後者に可変性を導入することが,要件変化へのしなやかな適応とユーザーの主体性回復に結びつくことを示します。
分散/疎結合化のためには,第2部で扱った大域的構造の識別だけではなく,横断的な関心事に対応することが必要です。第3部では,主要な横断的関心事として,帳簿の分割と整合性の確保,サブシステム間でのマスターの共有,活動と経営管理のシステムの疎結合化を挙げ,問題の所在と解決の手がかりを示します。
以上3部が基幹系システムの設計とデータモデル自体を扱っているのに対して,最後の第4部「モデリングのファウンデーション」は,データモデルという道具立てにまつわる諸問題を検討します。「ファウンデーション」は「土台」を意味します。
ファウンデーションに属するテーマとして,メタモデルと図的記法から検討を始めます。次に,メタモデルの力不足や理解不足によって生じる擬似問題——偶有的な複雑さ——を分析し,さらには,モデリングをいつもわかりにくくする概念モデルにまつわる混乱を解消します。これらの検討は,データモデリングに混入する「雑音」を除去する役割を果たします。こうした雑音は,適用領域に内在するのではなく,道具立て自体が生んでいるのです。
最後に,ソフトウェア設計の指針として昨今重視されているドメイン駆動設計について検討します。これは,個別に見ても意味ある検討ですが,対比を通じて,システム/ソフトウェア設計に関して本書が提示してきた諸概念の輪郭を明瞭にするものでもあります。
(「はじめに」より)