Matt Can Code  

 

1. 概念建摸的目的
概念建摸的目的就是找出最能客观表示需求的概念结构,利用好它,能更有效地与领域专家进行需求确认;也因为OO的良好概念特性,让程序实现人更好地理解领域结构,为之后的设计过程做准备,并最好地适应将来的需求更改或扩展.
几乎软件工程所有阶段,概念建摸的和用例建摸都可能迭代更新,齐头并进,互相补充.概念建摸最初阶段是在用例文本中根据用例图所指定的角色和系统之间的交互行为寻找出有关
的词汇,并构成属性,类,组合,关联,继承五种元素或关系.
2.  领域建模的基本原则
属性,关联,类三元素对应的建模原则:
1)判断类中一个变量是一个属性还是一个关联原则:
如果变量可以由String或Int等值类型的变量来表示,就应该是一个属性,否则的话,就应该用
一个引用类型(关联)来表示,简单的一个问题也可以作为一个衡量标准,该元素"是什么还是哪一个?",如果是什么可以解答这个问题的话,就是属性,
否则就是关联.
例如一个系统,你可以在用户类实体中找到该用户的地址属性,符合"地址是***原则",属性就确定了,但如果做的是公安局的人口调查
系统,这时住处地址会成为一个类型,你和与你同住的人的用户类型会引用这个地址类型实体,这符合"地址是哪一个"原则
2)元数据类型:

元数据(Meta Data),就是描述数据的数据。

那么一个元数据类型实例就是为其引用实体提供描述性讯息的实体,以下 Product的实例提供了产品的名称及供货商,售价,详细描述等信息,Product实体被某个订单细项引用,Product实体描述了该订单项的产品细节,那么Product本身就是一个元数据类型。

 

 

所谓的知识层(Knowledge Level),就是元数据类型概念的延伸,元数据如果还包含着其他关联的信息,那么这些关联的信息将为引用元数据的实体提供更多的资讯。

Martin FowlerObservation 模式中提到的Phenomenon Type(现象类型)就是其中的元数据,它聚合了Phenomena(现象),形成更丰富的知识层。Observation(诊断)关联Phenomenon Type来表明诊断内容,由Phenomenon Type关联的Phenomena说明这次诊断的结果。一次诊断就可以由知识层的提供的信息来完成。知识层是相对稳定的,引用知识层的进行具体操作的实体类型(在这里是Observation)称为操作层(Operation Level)。但对Martin哥有点疑问的是他没有把Category Observation 关联到Phenomenon Type,那么如何知道该诊断是对应哪种Phenomenon Type;不知道Phenomenon Type的话医生如何获取Phenomena。(根据书中描述,Phenomenon Type应该是个Aggregation Root. 因为PhenomenaPhenomenon TypeSingle-Value的映射)。 

所谓的知识层(Knowledge Level),就是元数据类型概念的延伸,元数据如果还包含着其他关联的信息,那么这些关联的信息将为引用元数据的实体提供更多的资讯。

Martin FowlerObservation 模式中提到的Phenomenon Type(现象类型)就是其中的元数据,它聚合了Phenomena(现象),形成更丰富的知识层。Observation(诊断)关联Phenomenon Type来表明诊断内容,由Phenomenon Type关联的Phenomena说明这次诊断的结果。一次诊断就可以由知识层的提供的信息来完成。知识层是相对稳定的,引用知识层的进行具体操作的实体类型(在这里是Observation)称为操作层(Operation Level)。但对Martin哥有点疑问的是他没有把Category Observation 关联到Phenomenon Type,那么如何知道该诊断是对应哪种Phenomenon Type;不知道Phenomenon Type的话医生如何获取Phenomena。(根据书中描述,Phenomenon Type应该是个Aggregation Root. 因为PhenomenaPhenomenon TypeSingle-Value的映射)。

 

详细请参照http://news.csdn.net/n/20050510/21139.html

MARTIN FOWLER的《Reusable Analysis Pattern


 

 

posted on 2007-01-15 14:22  Matt Yeung  阅读(515)  评论(1编辑  收藏  举报