请教定单建模问题

              
sixiang3310
07-09-21 9 619

banq大哥你好 ,上次你给我提示后我看了一下《分析模式》
现我把类图改了
Conversion:为两单位的转换
例如:糖 :1箱=10包,1包=20袋,则糖有两个Conversion
largerUnit:箱 largerUnit:包
smallUnit:包 smallUnit:袋
ratio:10 ratio:20

Orderline 定单行
Quantity 数量
QuantyConversion 数量转换
例如242袋糖转为1箱2包2袋

请问banq大哥这样设计有问题吗?







[该贴被sixiang3310于2007年09月21日 21:24修改过]

banq
2007-09-22 10:42

初步看不错,不过由于引入单位细节处理,模型显得复杂,整个图有些蜘蛛网倾向,这是数据库实体建模最容易范得毛病,我们需要避免。

需要关注重点,你的核心模型是Order OrderLine ,不要将换算类跨出Product范围,去和Orderline的属性Quantity发生关联。单位换算应该只限于Prodcut这个核心模型周围,因为单位确实应该是Product的一个属性。

虽然OrderLine中会有数量单位,但是这个单位是因为Product带出的单位。

所以,建模应该对主次以及属性归属(也就是聚合关系)进行确认。不能将对象属性和对象并列在一起,打个比喻就是儿子老子并列在一起,他们是一家的。

在管理系统中,有时由于企业有各种数据表单原因,在这些表单中,对象属性被打散了作为数据并列在表单项目中,因为我们不期望发明这些表单的人有对象意识,他们只是感觉需要那个数据项目就列出来,而我们分析时,则不能这样糊涂,特别如果按照数据表实体模型来分析,看到这些数据项目正好是数据表的字段,就以讹传讹,自以为拷贝不走样放应到软件中了,实际由于没有认识到表单后面的对象本质,最后整个管理软件系统从源头就陷入浮于表面,直至难以维护和拓展。

现在很多做管理软件的公司如金碟和用友,他们吹嘘ERP和SOA很厉害,真不知道他们是按照什么分析方法来做他们软件的,软件出生之时就畸形了,再加入什么时髦概念SOA,SAAS等,又都是浮华表面,能长久吗?


btw:楼主以后问问题需要接着上一个帖子,这样给别人浏览时,能够方便学习和讨
论。
http://www.jdon.com/jivejdon/thread/32716.html
[该贴被banq于2007年09月22日 10:43修改过]

sixiang3310
2007-09-22 15:46

先谢谢banq大哥,从j道中真的学到很多东西,我也希望自己能在j道的指引下和j道一起成长!

sixiang3310
2007-09-23 12:26


banq大哥 你说的不要将换算类跨出Product范围,去和Orderline的属性Quantity发生关联,这个我明白了。
可你说orderline 不应用数量单位,因为product中有这些单位
如果只是以箱、包、袋单个单位的入货或出货那当然是,可是系统要求
同时用到三个单位怎办?
例如甲从仓库中领了1箱+2包+3袋糖
如果不建立3个数量分别代表,那单用数字怎样解决呢?
(对了类图中的Orderline和Quantity应市1对多关系,我画措了)

banq
2007-09-23 19:36

是的,这个问题正是"分析模式"这本书这个章节提出的解决方案,引入Observation这样一个类,让Orderline只和Observation发生关联,并且引入phenomenon类型:






2Go 1 2 下一页