Modelの構造とViewの活用

Created: 2028-08-10

Modelは、Bounded Contextに必要な事実、概念、規則、振る舞いを現実世界から抽出・蒸留し、一貫した意味境界で扱えるように構成した抽象です。

第4回では、Modelの構造と、そのModelを扱うためのViewを説明します。形式構造を具体的に示し、UPとの連続性を明確にするため、Object Modelを中心的な説明対象として使います。

Domain Modelは概念、関係、規則、判断という意味の軸を、Use Case ModelはActor、Goal、Scenario、Outcomeという意図の軸を与えます。二つのModel軸からCapabilityとAspectをModel要素として構成・確認し、複雑なModelはDomain View、Use Case View、品質属性系ViewなどからPurposeに応じて扱います。Object Modelは、この構造を形式的に説明するための中心であり、Model全体の上位概念ではありません。

記事の全体像

第4回の全体像: ModelをDomain ModelとUse Case Modelの二つの軸で組織し、CapabilityとAspectを構成します。形式構造はObject Modelを中心に説明し、複雑なModelはPurposeとConcernに応じたViewから扱います。 review summary

シリーズにおける位置付け

第3回では、Object ModelKnowledge Model (知識モデル)、Literate ModelとDomain Modelの関係を整理しました。第4回ではModelの構造を主題とし、Domain ModelとUse Case Modelを二つの軸として読み、その複雑な構造を目的別のViewから扱う方法を説明します。形式構造の説明ではObject Modelを中心に置き、三つのModelとの構成関係は二つの軸とView Systemを説明した後に接続します。

第4回の中心はModelの構造とViewの活用です。Object Modelを用いて形式構造を説明し、Domain ModelとUse Case Modelを二つの軸として整理した後、終盤でObject ModelKnowledge Model、Literate Modelとの構成関係、およびExecution Modeling (実行モデリング)による実装・実行への接続を示します。

Bounded Contextに必要な抽象としてのModel

現実世界には、現在の状態、過去の経緯、将来の可能性、暗黙のルール、例外、複数の解釈、未観測の事実が含まれます。Modelは、そのうちBounded ContextのPurposeとConcernに必要な範囲を選択して表現します。

Modelに含める情報と省略する情報は、PurposeとConcernに基づいて決定します。省略した範囲、前提、粒度を記録することで、選択の妥当性を確認できます。Modelの境界は、そのModelが答える問いの範囲を表します。

Bounded Contextが現実世界をModelへ蒸留する

Bounded Contextは、どの言語、意味、規則、責務を一貫して扱うかを定めるドメイン側の意味境界です。そのContextに必要な範囲を現実世界から抽出し、名称を統一し、概念と規則を整理して、実行へ接続できるModelへ蒸留します。

bounded context model

Bounded Contextはドメイン側の意味境界を表します。Execution Contextは、Modelを実行するruntime、resource、transaction、security、deployment条件を扱うプラットフォーム側の実行環境を表します。

PurposeとConcern

Purposeは、そのモデルを何の判断、対話、変換、実行に使うかを定めます。同じ業務対象でも、用語を合意するためのモデル、業務規則を検証するモデル、状態変化を実装するモデル、運用障害を分析するモデルでは、必要な情報が異なります。

Concernは、そのPurposeを満たすためにモデルが答えるべき問いや利害です。たとえば「誰がこの規則を所有するか」「どの状態遷移が許されるか」「判断の根拠は何か」「障害時にも処理を継続できるか」は異なるConcernです。Concernを列挙すると、モデルへ含める情報と検証条件を具体化できます。

PerspectiveとViewpoint

Perspectiveは、対象を見る位置と選択規則です。利用者、業務担当者、開発者、運用者といった立場だけでなく、現在と将来、構造と振る舞い、概念と実装、全体と詳細などの違いもPerspectiveになります。

Viewpointは、同種のViewを繰り返し構成し、解釈し、検証するための規約です。対象とするConcern、使用するモデル種別、表記法、分析方法、整合規則を定めます。Perspectiveが「どこから見るか」を与えるのに対し、Viewpointは「どの規約でViewを作り、読むか」を再利用可能にします。

この区別は、Architecture Viewが特定のConcernへ答え、Architecture ViewpointがViewの構成・解釈・利用の規約を定める ISO 42010:2022 の考え方と整合します。SimpleModelingでは、その考え方をArchitectureだけでなく、モデリング活動全般へ拡張して使用します。

Modelの構成とViewの活用

Modelの構成とViewの構成は役割が異なります。Modelの構成では、Bounded ContextのPurposeとConcernに従って現実世界から必要なものを選択・変換し、意味、識別子、規則、振る舞いを持つ構造へ組み立てます。Modelを扱うときには、PerspectiveとViewpointに従って確認対象を選択し、Viewとして可視化します。

model construction and views

Model構成とView選択では、選択した情報に加えて、除外した情報、前提、粒度、時間範囲、選択規則を記録します。この記録を使って、Modelの境界と、現在のPurposeに必要なViewを確認します。Viewで見つかった不足や矛盾は、必要に応じてModelの構造と現実世界についての理解へ反映します。

Modelが必要な意味と機能を保持する

Modelは、概念、関係、規則、制約に加えて、Bounded Contextに必要な状態変化、Command、Event、Workflow、Policy、Calculation、Decisionなどの機能を保持します。実装、検証、知識、運用へ接続されるworking abstractionとして使用します。

機能が増えるにつれて、Modelに含まれる概念、振る舞い、制約、品質の関係も増えます。一つの図に含める情報量が多いと、目的に必要な抽象を読み取りにくくなります。PurposeとConcernに応じたViewを使い、確認対象を限定します。

二つのModel軸と明示的なModel要素

SimpleModelingでは、Domain ModelとUse Case ModelをModel構成の二つの軸として扱います。Domain Modelは概念、関係、規則、判断という意味の軸を、Use Case ModelはActor、Goal、Scenario、Outcomeという意図の軸を与えます。二つを直交する同格の軸として読み合わせ、同じModelの要素を異なる方向から構成・確認します。本稿では形式構造を具体化し、UPとの連続性を示すためにObject Modelを中心に説明します。

二つの軸から、CapabilityとAspectを明示的なModel要素として構成します。Capabilityは「Modelが何をできるか」を表し、Command、Event、Workflow、Policy、Decisionなどの機能を一つの識別可能な単位へまとめます。Aspectは「どの条件でそのCapabilityが成立するか」を表し、Performance、Observability、Security、Reliabilityなどの品質条件を重ねます。AspectはCapabilityの成立条件として、Capabilityと同時に設計・検証します。

model elements

Glossaryを意味と同一性の背骨にする

Glossary (用語集)は、Ubiquitous Languageの用語名、意味、境界、同義語、識別子を管理し、Domain ModelとUse Case Modelの両方へ同じ語彙とIDを供給します。自然文、形式的なModel要素、複数のView、テスト、実装が参照する概念の同一性を、この語彙とIDで追跡します。

共有IDは、表示名が変わった場合や、Viewごとに異なる情報だけが見える場合にも、概念の同一性を保ちます。Glossaryは、Domain ModelとUse Case Modelの二つの軸、Model要素、View Systemを接続する意味上の背骨です。

Viewで複雑なModelを扱いやすくする

Viewは、複雑なModelを理解・検証・利用するときに、PurposeとConcernに必要な要素、関係、振る舞い、品質を取り出すための確認可能な表現です。図、文章、表、CML (Cozy Modeling Language)用語集、Knowledge Graph、実行トレースを表現手段として使用できます。Viewの意味と同一性は、ModelとGlossaryを参照します。

Domain Viewを意味上の参照点にする

Domain Viewは、Domain Modelの意味軸から、Bounded Context内で一貫して使うUbiquitous Language、概念、関係、規則、境界をPurposeに応じて可視化します。他のViewに現れるActor、Goal、Capability、状態、Event、品質上の対象をModel内の同じ要素へ対応付ける、View間の意味上の参照点として使用します。

各ViewはPurposeに必要な抽象を示し、名称、識別子、規則、境界をDomain ViewとGlossaryへ対応付けます。この対応によって、各Viewが同じModelのどの部分を扱うかを追跡できます。

Use Case Viewと品質属性系View

Use Case Viewは、ActorのGoalからScenarioをたどり、Modelが提供するCapability、観測可能なOutcome、例外を結びます。Domain Viewは対象の意味を示し、Use Case Viewは誰のために何を達成し、Modelの機能をどのように使うかを示します。Use Case Viewは、他のViewと同格に位置付けます。

品質属性系Viewは、Reliability、Performance、Security、Operability、Observability、Evolvabilityなど、複数の機能を横断する条件をConcernごとに可視化します。Domain ViewとUse Case Viewへ品質属性系Viewを重ね、Capabilityが成立する負荷、障害 (defect)、権限、運用、変更の条件を確認します。

Use Case Modelを開発全体のTraceabilityにする

Use Case Viewと開発全体の接続は、元になるUse Case Modelの情報構造によって成立します。Use Case ModelはActor、Goal、Scenario、Outcomeを一つの物語とUse Case IDとして保持します。OutcomeをCapabilityと実装へ、ScenarioとOutcomeを受入基準とテストケースへ、ActorとScenarioをマニュアルへ、Use Case IDを開発工程の作業単位と進捗管理へ直接対応付けます。

たとえば UC-ORDER-01 というUse Case IDを持つ注文確定の物語では、自然文のGoalとScenarioをCapability、Code、Acceptance、Test、Manual、Development Process (開発プロセス)へ接続します。この対応は、変更の影響を開発全体で追跡する軸になります。Use Case Modelは、要求の説明と、物語から実装成果物への対応付けを担います。

use case traceability

目的に応じて選ぶView Catalog

View Catalogは、Modelを確認する目的に応じて拡張する開いた集合です。Domain ViewやUse Case Viewに加え、Performance、Observability、Security、Reliability、Availability、Testabilityなどの品質属性系Viewを登録できます。PurposeとConcernが必要なViewpointを選び、その規約に従ってModelからViewを構成します。

Viewは、Purposeに必要なものを選んで構成します。View GroupとViewpointについても、必要な交点だけをViewとして具体化します。

view catalog

UPの4+1 View GroupsとSimpleModelingの拡張

SimpleModelingはUPUnified Process)を土台とし、Logical、Process、Development、Deployment、Scenarioからなる4+1 Viewを、選択可能な五つのArchitecture View Groupとして継承します。View GroupはArchitectureを構成する関心領域のまとまりであり、各Groupの具体的なViewはPurposeに応じて選びます。

SimpleModelingの差分は、Domain、Performance、ObservabilityなどのViewpointを複数のView Groupへ横断的に適用できることです。たとえばPerformance Viewpointから、目的に必要なLogical、Process、DeploymentなどのPerformance Viewを構成し、それらをComposite Performance Viewとして合成できます。UPの構成要素を保持したまま、Domainと品質属性 (Quality Attribute)のConcernをGroup横断で追跡できるView Systemへ拡張します。

up 4plus1 view system

複数Viewと対応関係

同じModelに対して、Domain View、Use Case View、品質属性系View、Execution Modelingが生成する実行具体化Viewを相補的に構成できます。それぞれが異なるConcernを扱います。

複数Viewが共有する概念、境界、規則、識別子は、対応関係を明示します。Glossaryは名称と意味を接続し、対応表や参照リンクはModel要素間の関係を示します。対応できない項目は、現実世界の理解、Viewの選択条件、Modelの表現を再確認する対象になります。

注文確定を選択したViewから確認する

注文確定Capabilityを例にします。Glossaryで共有したCapability IDを CAP-ORDER-CONFIRM とします。Domain Viewでは注文、在庫、支払いの規則を、Use Case Viewでは購入者のGoalと例外を、Performance Viewでは二秒以内という条件を、Observability Viewでは遅延と失敗の検知を確認します。

各Viewは異なるConcernを示し、共有Capability IDによって一つの注文確定Capabilityへ対応付けられます。このIDをたどることで、目的に応じて選んだ複数Viewが同じCapabilityを異なる側面から扱っていることを確認できます。

confirm order views

モデル品質を四つに分ける

SimpleModelingでは、ModelとViewの品質をClarity、Consistency、Validity、Accuracyの四つの尺度で評価します。

品質 確認する問い

明確性

読者とAIが同じ意味として解釈できるか。

一貫性

Model内およびView間で定義や関係が衝突していないか。

妥当性

Purposeに必要なConcernへ答えているか。

正確性

選択した範囲の事実と規則が現実世界に合っているか。

ツールやAIは、明確性と一貫性の確認を広く支援できます。妥当性と正確性には、Purposeを持つ利用者、ドメインエキスパート、観測結果、実行結果が必要です。SimpleModelingは、構造を厳密にすることと、現実世界に対する正しさを保証することを区別します。

この四つはModelとViewの評価尺度です。品質属性系Viewは、ReliabilityやSecurityなど、Modelが実現する性質を可視化します。評価尺度と可視化対象の品質属性は、それぞれ別の役割を持ちます。

反復するモデリング循環

ModelとViewは反復的に更新します。Bounded ContextのPurposeとConcernに従って現実世界からModelを蒸留し、PerspectiveとViewpointに従ってViewを構成し、シナリオ、レビュー、テスト、実行結果で検証します。見つかった不足や矛盾は、View、Model、Bounded Contextの境界、Concern、Viewの選択規則、現実世界についての理解へ反映します。

この循環により、Modelは知識と実行結果を取り込みながら更新されるworking abstractionとして機能します。

三つの構成元Modelと実現経路

第4回ではModelを主題とし、形式構造の説明ではObject Modelを中心に置きます。終盤では、Domain ModelとUse Case Modelを構成する三つのModelの寄与と、実行への具体化を次のように整理します。

構成元Model 寄与

Object Model

Object、型、責務、関係、制約、状態、振る舞いを形式構造として保持します。

Knowledge Model

概念の根拠、出典、意味関係、探索経路を知識構造として保持します。

文芸モデル

文脈、意図、説明、Goal、Scenarioを自然文と構造化要素で保持します。

Domain Modeling (ドメイン・モデリング)は、三つのModelに重なるDomain領域から、PurposeとConcernに必要なDomain Model Viewを構成します。Use Case Modelingも同じ三つのModelから、Actor、Goal、Scenario、Outcomeに必要なUse Case Modelを構成します。Object Model上の共有要素とGlossaryのIDが、二つの構成と各Viewを対応付けます。

Execution Modelingは、Domain ModelとUse Case Modelから選択した形式構造をCML、実装、テスト、実行環境へ具体化・接続します。レビュー、テスト、実行で見つかった不足は、Object Modelを中心とする構造、Knowledge Modelの根拠、Literate Modelの文脈と意図、Bounded Context、View選択へ反映します。

AIでModelとViewを扱う

AIは、依頼で指定されていないPurpose、Concern、Perspective、粒度を推定して補います。利用者はこれらの選択条件を明示し、AIが採用した条件と照合します。生成結果は、どの問いに答えるViewとして構成されたかを含めて確認します。

Bounded Context、Purpose、Concern、Perspective、Viewpoint、除外範囲、求めるViewを明示すると、AIは選択条件に沿ってModelを探索し、候補となる抽象と対応関係をViewとして提示できます。人間は、その選択のPurposeに対する妥当性と、現実世界に対する正確性をレビューします。レビュー対象には、生成結果、参照したBounded ContextのModel、構成したViewを含めます。

AIが物語のModelを実装へ接続する

AI以前のUse Case ModelとLiterate Model(文芸モデル (literate model))は、要求、設計意図、前提を自然文で説明し、関係者の合意を形成するために利用されていました。自然文からModel要素、実装、テスト、マニュアルへの対応付けと変更同期は、主に人間が担当していました。

AIはGlossaryの意味と識別子を基準に、Goal、Scenario、OutcomeをCapability、Aspect、Code、Test、Manualへ対応付け、変更時に関連する成果物を探索して同期できます。この接続により、Use Case ModelとLiterate Modelは、説明と合意に加えて実装成果物と同期する開発Modelとして利用できます。SimpleModelingでは、このAI接続された物語を方法論の一つの軸として扱います。

AIは対応付け、一貫性確認、変更候補の提示を支援します。人間は、Goalの業務目的に対する妥当性、AspectのCapability成立条件としての十分性、Purpose、正確性を判断します。

literate model ai

方法論上の設計判断

設計判断 意味

現実世界とモデルを分ける

Modelを、選択と省略を説明できる現実世界の抽象として扱います。

Bounded Contextを意味境界にする

現実世界から何を蒸留するかをドメイン側の一貫した言語・意味・規則で定め、Execution Contextと区別します。

PurposeとConcernから始める

記法や技術より先に、答える問いと利用目的を定めます。

Model構成とView選択を分ける

Modelが保持する構造と、Purposeに応じてViewへ取り出す情報を区別します。

複数Viewを許容する

異なるConcernに答えるViewを相補的に扱い、共有概念は対応付けます。

Domain Viewを意味上の参照点にする

Domain ViewとGlossaryを使って、複数Viewを同じModelの意味と識別子へ対応付けます。

三つのModelから二つの目的別構成を作る

Object、Knowledge、Literateの寄与からDomain ModelとUse Case Modelを構成し、CapabilityとAspectを同じModel要素へ対応付けます。Object Modelは形式構造の説明に使用します。

UPの4+1を継承・拡張する

五つのView Groupを保持し、横断Viewpoint、目的に必要な交点、Composite Viewを追加します。

Use Case Viewを同格にし物語をTraceabilityへ使う

Use Case Viewを他のViewと同格に置き、Use Case Modelの物語とIDを実装、テスト、マニュアル、工程へ直接対応付けます。

AI接続された物語を重要軸にする

Use Case ModelとLiterate Modelを実装成果物へ対応付け、変更を同期しつつ、GoalとAspectの判断は人間に残します。

品質を分けて確認する

明確性・一貫性と、妥当性・正確性を別の尺度で評価します。

根拠から反復する

レビュー、テスト、実行結果をModelと選択条件へ戻します。

次回

本稿ではModelの構造とViewの活用を整理し、形式構造の説明ではObject Modelを中心に置きました。Domain ModelとUse Case ModelはObject、Knowledge、Literateの寄与から目的別に構成され、その複雑なModelはUPの4+1を継承・拡張したViewから扱い、Execution Modelingによって実装と実行へ接続します。次回はObject Modeling (オブジェクト・モデリング)の個別技法として、Object、型、制約、責務、協調を詳しく扱います。

参照

用語集

オブジェクト・モデル (Object Model)

Undefined

UP (Unified Process)

UMLを基盤とし、反復型・ユースケース駆動・アーキテクチャ中心のプロセスモデル。Rational Unified Process (RUP) などの派生形を持ち、CBD(コンポーネント指向開発)の実践基盤となる。

ドメイン・モデル (Domain Model)

Undefined

知識モデル (Knowledge Model)

Knowledge Modelとは、知識を概念、関係、規則、事例、根拠、出典などによって構造化したモデルです。人間とAIが知識を探索、参照、検証、再利用できる形で表します。

実行モデリング (Execution Modeling)

Execution Modelingとは、要求の受付、処理の契機、状態変化、処理の流れ、ObjectやComponentの協調をモデル化する活動です。システムが何を契機に、どの規則に従って、どのように動作するかを明らかにします。

妥当性確認 (validation)

Validation(妥当性確認)とは、システムや機能が利用目的や要求仕様に対して妥当であるかを確認する行為である。

用語集 (Glossary)

Glossaryとは、対象領域で使用する用語について、名称、意味、境界、同義語、識別子を管理する知識資源です。関係者が同じ用語を同じ意味で扱うための共通基盤になります。

CML (Cozy Modeling Language)

CMLは、Cozyモデルを記述するための文芸モデル記述言語です。 SimpleModelingにおける分析モデルの中核を担うDSL(ドメイン固有言語)として設計されています。 モデル要素とその関係性を自然言語に近い文体で記述できるよう工夫されており、AIによる支援や自動生成との高い親和性を備えています。 CMLで記述された文芸モデルは、設計モデル、プログラムコード、技術文書などに変換可能な中間表現として機能します。

障害 (defect)

成果物(設計書、仕様書、コードなど)に存在する不完全さや不足。要求や仕様を満たさず、修正や置換が必要となる状態。ISO/IEC 24765 に基づく。

開発プロセス (Development Process)

Undefined

品質属性 (Quality Attribute)

Quality Attributeとは、ソフトウェアが機能を実行できることに加えて、どの程度の品質で要求を満たすかを表す特性です。Security、Performance、Availability、Reliability、Resilience、Observability、Maintainabilityなどが含まれます。

文芸モデル (literate model)

Undefined

ドメイン・モデリング (Domain Modeling)

Undefined

オブジェクト・モデリング (Object Modeling)

Undefined