第157章 理论模型到对象模型
157.1 提出背景
第156章建立了ICAI领域对象模型:
DomainObject=IndividualObject+CognitiveObject+BehaviorObject+MemoryObject+MaintenanceObjectDomainObject= IndividualObject+ CognitiveObject+ BehaviorObject+ MemoryObject+ MaintenanceObject
但是,领域对象并不是凭空产生的。
例如,理论中定义“状态”:
StateState
工程中却需要最终得到:
class CognitiveState
{
protected $id;
protected $objectId;
protected $stateType;
protected $value;
protected $condition;
protected $time;
}
从:
StateState
到:
CognitiveStateCognitiveState
中间必须存在一个严格的转换过程。
因此,ICAI需要建立:
理论概念→数学模型→逻辑模型→数据对象→Domain Object→对象关系\boxed{ 理论概念 \rightarrow 数学模型 \rightarrow 逻辑模型 \rightarrow 数据对象 \rightarrow Domain\ Object \rightarrow 对象关系 }
这条路径解决的是:
ICAI理论如何不失真的进入软件工程。
157.2 理论模型到对象模型的定义
**理论模型到对象模型(Theory Model to Object Model)**是指将ICAI理论中的概念经过形式化定义、数学表达、逻辑结构和数据结构转换,最终形成具有明确身份、属性、状态、关系和职责的领域对象的工程过程。
形式化表示:
Concept→MathematicalModel→LogicalModel→DataObject→DomainObject→ObjectRelation\boxed{ Concept \rightarrow MathematicalModel \rightarrow LogicalModel \rightarrow DataObject \rightarrow DomainObject \rightarrow ObjectRelation }
其中:
- ConceptConcept:理论概念;
- MathematicalModelMathematicalModel:数学模型;
- LogicalModelLogicalModel:逻辑模型;
- DataObjectDataObject:数据对象;
- DomainObjectDomainObject:领域对象;
- ObjectRelationObjectRelation:对象关系。
157.3 为什么不能直接从理论到代码
如果直接:
Theory→PHPClassTheory \rightarrow PHPClass
容易出现两个问题。
第一,理论结构可能没有被完整表达。
第二,程序Class可能按照程序员习惯建立,而不是按照理论职责建立。
因此:
Theory≠PHPClassTheory\neq PHPClass
正确路径必须是:
Theory→Model→Object→ClassTheory \rightarrow Model \rightarrow Object \rightarrow Class
即:
理论先形式化→模型再对象化→对象再程序化\boxed{ 理论先形式化 \rightarrow 模型再对象化 \rightarrow 对象再程序化 }
157.4 第一层:理论概念
157.4.1 理论概念定义
**理论概念(Theoretical Concept)**是ICAI理论中用于描述某种稳定实体、属性、状态、关系、过程或机制的基本概念。
例如:
ObjectObject AttributeAttribute StateState RelationRelation KnowledgeKnowledge GoalGoal CapabilityCapability MethodMethod DecisionDecision BehaviorBehavior MemoryMemory RiskRisk
这些概念构成ICAI理论的基本元素。
157.5 理论概念的作用
理论概念首先回答:
系统需要认识和处理什么?
例如:
ObjectObject
回答:
什么是对象?
StateState
回答:
对象现在是什么状态?
RelationRelation
回答:
对象与其他对象是什么关系?
GoalGoal
回答:
个体希望达到什么状态?
CapabilityCapability
回答:
个体能够做什么?
因此:
Concept→Meaning→RoleConcept \rightarrow Meaning \rightarrow Role
理论概念必须先明确含义,才能进入工程。
157.6 理论概念不能直接作为数据字段
例如理论中:
CapabilityCapability
不是简单:
capability = 1
能力至少需要表达:
Capability={Ability,Object,Condition,State,Range,Resource,Method,Result}Capability= \{ Ability, Object, Condition, State, Range, Resource, Method, Result \}
因此:
Concept→StructureConcept \rightarrow Structure
理论概念首先必须被结构化。
157.7 第二层:数学模型
157.7.1 数学模型定义
**数学模型(Mathematical Model)**是使用集合、函数、关系、状态、条件、公式等形式表达理论概念结构和变化规律的模型。
例如对象:
O={ID,Type,Attribute,State,Relation,History}O= \{ ID, Type, Attribute, State, Relation, History \}
状态:
S={ObjectID,StateType,Value,Condition,Time}S= \{ ObjectID, StateType, Value, Condition, Time \}
关系:
R={Subject,Type,Object,Direction,Condition,State}R= \{ Subject, Type, Object, Direction, Condition, State \}
157.8 数学模型的作用
数学模型解决:
理论概念内部究竟由什么构成?
例如:
State=f(Attribute,Condition,Rule)State=f(Attribute,Condition,Rule)
说明状态不是孤立数据,而是由属性、条件和规则共同决定。
又如:
Goal=CurrentState→TargetStateGoal= CurrentState \rightarrow TargetState
说明目标具有状态转换结构。
再如:
RiskScore=P×IRiskScore=P\times I
其中:
- PP:风险发生概率;
- II:风险影响;
- RiskScoreRiskScore:风险得分。
因此:
Concept→MathematicalStructureConcept \rightarrow MathematicalStructure
157.9 数学模型与工程结构
数学模型不能直接运行。
例如:
O={ID,Type,Attribute,State,Relation}O= \{ ID,Type,Attribute,State,Relation \}
这是数学结构,不是PHP对象。
因此还必须经过:
MathematicalModel→LogicalModelMathematicalModel \rightarrow LogicalModel
157.10 第三层:逻辑模型
157.10.1 逻辑模型定义
**逻辑模型(Logical Model)**是将数学模型转换为程序可以执行的条件、规则、判断、关系和流程结构。
例如:
Object→StateObject \rightarrow State
可以转换为:
读取对象
↓
读取属性
↓
读取当前状态
↓
检查条件
↓
应用规则
↓
计算新状态
数学:
S=f(A,C,R)S=f(A,C,R)
逻辑:
Attribute+Condition+Rule→StateAttribute + Condition + Rule \rightarrow State
157.11 逻辑模型的基本形式
ICAI逻辑模型主要包括:
Logic={Condition,Rule,Relation,Transition,Calculation,Validation}Logic= \{ Condition, Rule, Relation, Transition, Calculation, Validation \}
例如条件:
Condition=TrueCondition=True
规则:
Condition→ActionCondition \rightarrow Action
状态转换:
S1→EventS2S_1\xrightarrow{Event}S_2
验证:
Valid=Condition∧Rule∧ConstraintValid= Condition \land Rule \land Constraint
157.12 数学模型与逻辑模型的区别
二者不能混淆:
MathematicalModel≠LogicalModelMathematicalModel\neq LogicalModel
数学模型强调:
StructureStructure
逻辑模型强调:
OperationOperation
例如:
Goal=CurrentState→TargetStateGoal= CurrentState \rightarrow TargetState
属于结构表达。
而:
如果 CurrentState != TargetState
↓
目标未完成
↓
继续执行
属于逻辑表达。
因此:
数学模型描述结构\boxed{ 数学模型描述结构 } 逻辑模型描述如何计算和判断\boxed{ 逻辑模型描述如何计算和判断 }
157.13 第四层:数据对象
157.13.1 数据对象定义
**数据对象(Data Object)**是将逻辑模型转换为程序能够保存、读取、传递和更新的数据结构。
例如理论:
StateState
数学:
S={ObjectID,StateType,Value,Condition,Time}S= \{ ObjectID, StateType, Value, Condition, Time \}
逻辑:
Object→StateObject \rightarrow State
数据对象:
$state = array(
'object_id' => 1001,
'state_type' => 'running',
'value' => 1,
'condition' => 'normal',
'time' => time()
);
此时已经从理论结构进入程序数据结构。
157.14 数据对象的作用
数据对象主要解决:
数据如何被程序保存和传递?
因此:
LogicalModel→DataStructureLogicalModel \rightarrow DataStructure
数据对象可以采用:
- 数组;
- 标量;
- JSON结构;
- DTO;
- 数据传输对象;
- 数据库映射结构。
但是:
DataObject≠DomainObjectDataObject\neq DomainObject
这是ICAI工程必须严格保持的区别。
157.15 数据对象与Domain Object的区别
数据对象主要负责:
DataData
领域对象负责:
DomainMeaning+Structure+State+ResponsibilityDomainMeaning+ Structure+ State+ Responsibility
因此:
DataObject=数据表达\boxed{ DataObject=数据表达 } DomainObject=领域表达\boxed{ DomainObject=领域表达 }
例如:
$state = array(
'object_id' => 1001,
'state_type' => 'running'
);
只是数据结构。
而:
class CognitiveState
{
protected $id;
protected $objectId;
protected $stateType;
protected $value;
protected $condition;
protected $time;
}
则是领域对象。
157.16 第五层:Domain Object
157.16.1 Domain Object形成
当数据结构已经明确其理论含义、生命周期和领域职责以后,可以建立Domain Object。
转换:
DataObject→DomainObjectDataObject \rightarrow DomainObject
例如:
State→CognitiveStateState \rightarrow CognitiveState
最终:
class CognitiveState
{
protected $id;
protected $objectId;
protected $stateType;
protected $value;
protected $condition;
protected $time;
public function getObjectId()
{
return $this->objectId;
}
public function getStateType()
{
return $this->stateType;
}
public function getValue()
{
return $this->value;
}
}
157.17 Domain Object必须具有领域意义
一个Class并不自动成为Domain Object。
例如:
class DataHelper
{
}
这不是ICAI领域对象。
而:
class CognitiveState
{
}
因为它对应:
StateState
并且具有明确的领域职责,所以属于Domain Object。
因此:
DomainObject=TheoryMeaning+ObjectStructure+DomainResponsibility\boxed{ DomainObject = TheoryMeaning + ObjectStructure + DomainResponsibility }
157.18 理论概念到Domain Object的完整转换
建立:
Concept→MathematicalModel→LogicalModel→DataObject→DomainObject\boxed{ Concept \rightarrow MathematicalModel \rightarrow LogicalModel \rightarrow DataObject \rightarrow DomainObject }
例如“状态”:
StateState
↓
S={ObjectID,Type,Value,Condition,Time}S= \{ ObjectID, Type, Value, Condition, Time \}
↓
Object→StateObject \rightarrow State
↓
$state = array(...);
↓
class CognitiveState
{
}
这才完成一次完整的理论对象化。
157.19 对象关系
157.19.1 对象关系定义
**对象关系(Object Relation)**是指两个或者多个Domain Object之间按照ICAI理论建立的具有明确语义的关联结构。
形式:
ObjectA→Relation→ObjectB\boxed{ Object_A \rightarrow Relation \rightarrow Object_B }
对象关系不是程序中的简单引用,而是具有理论语义的关系。
157.20 对象关系的基本结构
R={Subject,Type,Object,Direction,Condition,State,Time}R= \{ Subject, Type, Object, Direction, Condition, State, Time \}
例如:
Customer→PlacesOrder→OrderCustomer \rightarrow PlacesOrder \rightarrow Order
程序对象:
CustomerObject
↓
CognitiveRelation
↓
OrderObject
157.21 对象关系不是对象属性
必须区分:
Attribute≠RelationAttribute\neq Relation
例如:
Product.price = 100
属于属性。
而:
Customer → Purchases → Product
属于关系。
因此:
Attribute→描述对象自身Attribute \rightarrow 描述对象自身 Relation→连接不同对象Relation \rightarrow 连接不同对象
157.22 对象关系不是程序引用
例如:
$order->customer = $customer;
只是程序对象之间的引用。
而:
Customer→PlacesOrder→OrderCustomer \rightarrow PlacesOrder \rightarrow Order
是ICAI认知关系。
因此:
ProgramReference≠CognitiveRelationProgramReference\neq CognitiveRelation
但是可以建立:
CognitiveRelation→ProgramRelationCognitiveRelation \rightarrow ProgramRelation
157.23 对象关系的方向
关系具有方向:
A→BA\rightarrow B
通常不等于:
B→AB\rightarrow A
例如:
Customer→PlacesOrder→OrderCustomer \rightarrow PlacesOrder \rightarrow Order
不能直接认为:
Order→PlacesOrder→CustomerOrder \rightarrow PlacesOrder \rightarrow Customer
如果需要反向关系,应明确建立:
Order→BelongsTo→CustomerOrder \rightarrow BelongsTo \rightarrow Customer
因此:
Direction(R)Direction(R)
属于对象关系的重要结构。
157.24 对象关系形成
领域对象之间通过关系形成更大的领域模型:
DomainObject1+Relation+DomainObject2DomainObject_1 + Relation + DomainObject_2
形成:
DomainStructureDomainStructure
进一步:
DomainObject→Relation→DomainObjectDomainObject \rightarrow Relation \rightarrow DomainObject
最终:
DomainGraph=(V,E)\boxed{ DomainGraph=(V,E) }
其中:
- VV:领域对象集合;
- EE:对象关系集合。
157.25 个体对象模型
以机器个体为例:
IndividualObjectIndividualObject
内部包含:
CognitiveObjectCognitiveObject BehaviorObjectBehaviorObject MemoryObjectMemoryObject MaintenanceObjectMaintenanceObject
形成:
IndividualObject
│
├── CognitiveObject
│
├── BehaviorObject
│
├── MemoryObject
│
└── MaintenanceObject
关系:
Individual→hasCognition→CognitionIndividual \rightarrow hasCognition \rightarrow Cognition Individual→hasBehavior→BehaviorIndividual \rightarrow hasBehavior \rightarrow Behavior Individual→hasMemory→MemoryIndividual \rightarrow hasMemory \rightarrow Memory Individual→hasMaintenance→MaintenanceIndividual \rightarrow hasMaintenance \rightarrow Maintenance
157.26 认知对象模型
认知领域:
CognitiveObjectCognitiveObject
内部形成:
CognitiveObject
│
├── Attribute
├── State
├── Relation
├── Scene
├── Knowledge
├── Need
├── Goal
└── Capability
核心关系:
Object→AttributeObject \rightarrow Attribute Object→StateObject \rightarrow State Object→RelationObject \rightarrow Relation Scene→KnowledgeScene \rightarrow Knowledge StateDifference→NeedStateDifference \rightarrow Need Need→GoalNeed \rightarrow Goal Goal→CapabilityGoal \rightarrow Capability
157.27 行为对象模型
行为领域:
BehaviorObjectBehaviorObject
内部:
BehaviorObject
│
├── Method
├── Decision
├── Behavior
├── Action
├── Result
└── Feedback
形成:
Method→Decision→Behavior→Action→Result→FeedbackMethod \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Result \rightarrow Feedback
这不是简单的Class继承,而是领域对象之间的运行关系。
157.28 记忆对象模型
记忆领域:
MemoryObject
│
├── Memory
├── Experience
├── History
├── InitialMemory
└── HistoricalData
核心:
Result→Feedback→MemoryResult \rightarrow Feedback \rightarrow Memory Memory→ExperienceMemory \rightarrow Experience Event→HistoryEvent \rightarrow History
因此:
MemoryObject=Memory+Experience+HistoryMemoryObject = Memory+ Experience+ History
157.29 维护对象模型
维护领域:
MaintenanceObject
│
├── Risk
├── Protection
├── Conflict
├── Diagnosis
├── Repair
└── Verification
形成:
Risk→ProtectionRisk \rightarrow Protection Conflict→ResolutionConflict \rightarrow Resolution Anomaly→Diagnosis→Repair→VerificationAnomaly \rightarrow Diagnosis \rightarrow Repair \rightarrow Verification
因此:
MaintenanceObject=Risk+Protection+Conflict+Diagnosis+Repair+VerificationMaintenanceObject = Risk+ Protection+ Conflict+ Diagnosis+ Repair+ Verification
157.30 从单个概念到完整对象体系
以“目标”为例:
第一步:理论概念
GoalGoal
第二步:数学模型
Goal=CurrentState→TargetStateGoal= CurrentState \rightarrow TargetState
第三步:逻辑模型
读取当前状态
↓
读取目标状态
↓
比较状态
↓
判断目标是否完成
第四步:数据对象
$goal = array(
'current_state' => $currentState,
'target_state' => $targetState
);
第五步:Domain Object
class CognitiveGoal
{
protected $id;
protected $objectId;
protected $currentState;
protected $targetState;
protected $condition;
protected $priority;
protected $status;
}
第六步:对象关系
Need→GoalNeed \rightarrow Goal Goal→CapabilityGoal \rightarrow Capability Goal→MethodGoal \rightarrow Method
至此,“目标”才真正进入ICAI工程对象体系。
157.31 理论到对象的统一转换规则
可以建立统一规则:
Concept→Definition→Formula→Logic→Data→DomainObject→Relation\boxed{ Concept \rightarrow Definition \rightarrow Formula \rightarrow Logic \rightarrow Data \rightarrow DomainObject \rightarrow Relation }
其中:
Definition定义概念含义。
Formula描述结构和计算。
Logic描述判断和过程。
Data定义程序数据结构。
DomainObject定义领域对象。
Relation定义对象之间的领域关系。
157.32 一个理论概念不一定只对应一个对象
理论概念复杂时,可以形成多个领域对象。
例如:
CapabilityCapability
可以拆分:
Capability
├── Capability
├── CapabilityRequirement
├── CapabilityState
├── CapabilityRange
└── CapabilityEvaluation
原因是:
Concept→SubStructure→DomainObjectsConcept \rightarrow SubStructure \rightarrow DomainObjects
因此:
OneConcept→MultipleDomainObjectsOneConcept\rightarrow MultipleDomainObjects
是允许的。
157.33 多个理论概念也可以形成一个组合对象
例如机器个体:
MachineIndividualMachineIndividual
本身就是:
Identity+Type+Structure+Cognition+Behavior+Memory+MaintenanceIdentity+ Type+ Structure+ Cognition+ Behavior+ Memory+ Maintenance
因此:
MultipleConcepts→AggregateDomainObjectMultipleConcepts \rightarrow AggregateDomainObject
形成:
MachineIndividualMachineIndividual
这就是领域对象组合。
157.34 聚合对象
**聚合对象(Aggregate Object)**是由多个具有明确领域职责的Domain Object组成,并由一个根对象维护整体边界的对象结构。
机器个体可以作为根:
MachineIndividualMachineIndividual
其内部聚合:
CognitiveObjectCognitiveObject BehaviorObjectBehaviorObject MemoryObjectMemoryObject MaintenanceObjectMaintenanceObject
因此:
MachineIndividual=Aggregate(Cognition,Behavior,Memory,Maintenance)\boxed{ MachineIndividual = Aggregate( Cognition, Behavior, Memory, Maintenance ) }
157.35 对象关系的三层结构
ICAI对象关系可以分为三层。
第一层:结构关系
表示对象属于什么结构:
Individual→CognitionIndividual \rightarrow Cognition
第二层:认知关系
表示对象之间认知上的关系:
ObjectA→Relation→ObjectBObject_A \rightarrow Relation \rightarrow Object_B
第三层:运行关系
表示对象在运行过程中的关系:
Decision→Behavior→ActionDecision \rightarrow Behavior \rightarrow Action
因此:
ObjectRelation=StructuralRelation+CognitiveRelation+RuntimeRelationObjectRelation= StructuralRelation+ CognitiveRelation+ RuntimeRelation
157.36 对象模型与Runtime
领域对象进入运行环境后:
DomainObject→RuntimeObjectDomainObject \rightarrow RuntimeObject
Runtime对象保存当前运行状态:
RuntimeObject=DomainObject+CurrentContext+CurrentStateRuntimeObject= DomainObject+ CurrentContext+ CurrentState
因此:
DomainObjectt→RuntimeObjecttDomainObject_t \rightarrow RuntimeObject_t
当发生事件:
Event→StateChangeEvent \rightarrow StateChange
形成:
RuntimeObjectt→RuntimeObjectt+1RuntimeObject_t \rightarrow RuntimeObject_{t+1}
157.37 理论模型到Runtime的完整链
最终建立:
TheoryConcept→MathematicalModel→LogicalModel→DataObject→DomainObject→ObjectRelation→RuntimeObject\boxed{ TheoryConcept \rightarrow MathematicalModel \rightarrow LogicalModel \rightarrow DataObject \rightarrow DomainObject \rightarrow ObjectRelation \rightarrow RuntimeObject }
这条链完成了从理论到程序运行的完整转换。
157.38 PHP工程映射
完整工程结构:
theory/
↓
model/
↓
domain/
│
├── individual/
├── cognitive/
├── behavior/
├── memory/
└── maintenance/
↓
service/
↓
engine/
↓
repository/
↓
runtime/
其中:
theory→modeltheory \rightarrow model
完成理论定义。
model→domainmodel \rightarrow domain
完成对象化。
domain→service/enginedomain \rightarrow service/engine
完成业务和计算。
domain→repositorydomain \rightarrow repository
完成持久化。
domain+engine→runtimedomain+engine \rightarrow runtime
完成运行。
157.39 完整工程链
ICAI最终形成:
Theory→Formalization→MathematicalModel→LogicalModel→DataObject→DomainObject→ObjectRelation→Service→Engine→Repository→MySQL→Runtime\boxed{ Theory \rightarrow Formalization \rightarrow MathematicalModel \rightarrow LogicalModel \rightarrow DataObject \rightarrow DomainObject \rightarrow ObjectRelation \rightarrow Service \rightarrow Engine \rightarrow Repository \rightarrow MySQL \rightarrow Runtime }
这是一条完整的理论工程化路径。
157.40 理论模型转换的验证
理论进入工程以后还必须验证:
Theory↔DomainObjectTheory \leftrightarrow DomainObject
建立:
ModelMappingValid=Concept∧Structure∧Logic∧Data∧Object∧RelationModelMappingValid = Concept \land Structure \land Logic \land Data \land Object \land Relation
如果理论中存在:
ConceptAConcept_A
但工程中完全没有对应结构:
Mapping(ConceptA)=∅Mapping(Concept_A)=\varnothing
则说明理论尚未完成工程映射。
反过来,如果程序中存在大量没有理论来源的核心对象:
ProgramObject↚TheoryProgramObject\not\leftarrow Theory
也需要检查其必要性和领域职责。
157.41 理论与工程的一致性
建立核心原则:
TheoryStructure↔DomainStructure\boxed{ TheoryStructure \leftrightarrow DomainStructure }
进一步:
TheoryRelation↔ObjectRelation\boxed{ TheoryRelation \leftrightarrow ObjectRelation }
再进一步:
TheoryProcess↔RuntimeProcess\boxed{ TheoryProcess \leftrightarrow RuntimeProcess }
例如理论:
Goal→Capability→Method→Decision→BehaviorGoal \rightarrow Capability \rightarrow Method \rightarrow Decision \rightarrow Behavior
工程也必须能够表达:
CognitiveGoal
↓
CognitiveCapability
↓
CognitiveMethod
↓
CognitiveDecision
↓
CognitiveBehavior
否则理论和工程之间就产生结构断裂。
157.42 ICAI对象模型的最终结构
最终:
ICAI Theory
│
├── Theory Concepts
│
├── Mathematical Models
│
├── Logical Models
│
├── Data Objects
│
├── Domain Objects
│ │
│ ├── Individual Object
│ ├── Cognitive Object
│ ├── Behavior Object
│ ├── Memory Object
│ └── Maintenance Object
│
├── Object Relations
│
└── Runtime Objects
统一:
Theory→Model→Object→Relation→Runtime\boxed{ Theory \rightarrow Model \rightarrow Object \rightarrow Relation \rightarrow Runtime }
157.43 本章总结
第157章建立了ICAI从理论模型进入对象模型的完整工程转换机制。
第一层是:
理论概念\boxed{理论概念}
回答:
系统需要描述什么?
第二层是:
数学模型\boxed{数学模型}
回答:
这个概念由什么结构组成?
第三层是:
逻辑模型\boxed{逻辑模型}
回答:
系统如何判断、计算和变化?
第四层是:
数据对象\boxed{数据对象}
回答:
程序如何保存和传递这些数据?
第五层是:
Domain Object\boxed{Domain\ Object}
回答:
这个概念在软件领域中由什么对象承担?
第六层是:
对象关系\boxed{对象关系}
回答:
不同领域对象如何按照ICAI理论建立关系?
最终进入:
RuntimeObject\boxed{RuntimeObject}
回答:
这些对象如何在实际程序运行中协同工作?
因此形成完整转换链:
理论概念→数学模型→逻辑模型→数据对象→DomainObject→对象关系→RuntimeObject\boxed{ 理论概念 \rightarrow 数学模型 \rightarrow 逻辑模型 \rightarrow 数据对象 \rightarrow DomainObject \rightarrow 对象关系 \rightarrow RuntimeObject }
进一步进入完整软件工程:
ICAI理论→形式化→数学模型→逻辑模型→数据结构→领域对象→对象关系→Service→Engine→Repository→MySQL→Runtime\boxed{ ICAI理论 \rightarrow 形式化 \rightarrow 数学模型 \rightarrow 逻辑模型 \rightarrow 数据结构 \rightarrow 领域对象 \rightarrow 对象关系 \rightarrow Service \rightarrow Engine \rightarrow Repository \rightarrow MySQL \rightarrow Runtime }
本章最重要的工程原则是:
理论不能直接跳到代码\boxed{ 理论不能直接跳到代码 }
而必须经过:
概念→模型→逻辑→数据→对象→关系→运行\boxed{ 概念 \rightarrow 模型 \rightarrow 逻辑 \rightarrow 数据 \rightarrow 对象 \rightarrow 关系 \rightarrow 运行 }
由此,ICAI理论中的对象、认知、行为、记忆和维护结构才能真正进入程序系统,并最终形成一个具有内部对象体系和对象关系的机器个体Runtime。
因此,理论模型到对象模型实际上建立了ICAI理论与软件工程之间最重要的一座桥梁:
Theory↔DomainObject↔Runtime\boxed{ Theory \leftrightarrow DomainObject \leftrightarrow Runtime }
它使ICAI不再只是理论上的概念集合,而成为能够按照统一模型逐步实现为程序对象、对象关系和机器个体Runtime的完整工程体系。