概念建摸的目的就是找出最能客观表示需求的概念结构,利用好它,能更有效地与领域专家进行需求确认;也因为OO的良好概念特性,让程序实现人更好地理解领域结构,为之后的设计过程做准备,并最好地适应将来的需求更改或扩展.
的词汇,并构成属性,类,组合,关联,继承五种元素或关系.
属性,关联,类三元素对应的建模原则:
如果变量可以由String或Int等值类型的变量来表示,就应该是一个属性,否则的话,就应该用
一个引用类型(关联)来表示,简单的一个问题也可以作为一个衡量标准,该元素"是什么还是哪一个?",如果是什么可以解答这个问题的话,就是属性,
否则就是关联.
例如一个系统,你可以在用户类实体中找到该用户的地址属性,符合"地址是***原则",属性就确定了,但如果做的是公安局的人口调查
系统,这时住处地址会成为一个类型,你和与你同住的人的用户类型会引用这个地址类型实体,这符合"地址是哪一个"原则
元数据(Meta Data),就是描述数据的数据。
那么一个元数据类型实例就是为其引用实体提供描述性讯息的实体,以下 Product的实例提供了产品的名称及供货商,售价,详细描述等信息,Product实体被某个订单细项引用,Product实体描述了该订单项的产品细节,那么Product本身就是一个元数据类型。
所谓的知识层(Knowledge Level),就是元数据类型概念的延伸,元数据如果还包含着其他关联的信息,那么这些关联的信息将为引用元数据的实体提供更多的资讯。
Martin Fowler的Observation 模式中提到的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. 因为Phenomena对Phenomenon Type是Single-Value的映射)。
所谓的知识层(Knowledge Level),就是元数据类型概念的延伸,元数据如果还包含着其他关联的信息,那么这些关联的信息将为引用元数据的实体提供更多的资讯。
Martin Fowler的Observation 模式中提到的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. 因为Phenomena对Phenomenon Type是Single-Value的映射)。
详细请参照http://news.csdn.net/n/20050510/21139.html
和MARTIN FOWLER的《Reusable Analysis Pattern》