我倒不觉得参展方是主体,展览会是供参会人员物色产品的平台,的核心应该是“产品”。物色到心仪的产品后需要知道如何去得到产品,那势必需要知道谁提供的,所以产品必须与供应商发生关系。也就是说我看到产品必须是某个供应商的产品

是不是应该引入一个"展示计划".



我同意apexCloud的观点。产品是需要和展示区联系的。正常情况的一个用户故事是:

一个人需要找某种产品。通过产品展示区,或通过展示区找产品。产品和参展方是多对多关系。
如果产品和特定展位绑定的,那么这个人只要有产品或特定展位的ID,就可以完成这个故事。

个人认为: 将“公司和产品”画上关联的还是有些数据库思维。至少没有认识到对象世界中关联和依赖的区别。

高聚合,低关联,找出组成关系,其他关联就不需要,显然,公司/举办单位的组成元素是公司名称,地址等信息,产品和公司就是有关系,也不是关联,是依赖,是通过操作动作如生产 销售 入库 出库 展示等活动才发生关系,不是天然组成,缺其不可的静态关联关系。

打个比喻,一个人去打球,那么人就和球是关联吗?这是通过打球这个活动才会发生关系,一个销售员输入销售单,那么销售员就和销售单发生关联吗?那么我们岂不是将软件系统所有实体都和人或单位发生关联,这是一张错综复杂的数据库表,根本无助分解需求。

我们还是以订单 产品 生产厂商为案例,在这个案例中,我们也并没有把生产厂商和产品发生关联,而订单显然由产品和生产厂商组成,是一种天然静态关系,没有产品或生产厂商元素的订单就丧失订单特点(或者称约束)。
纯理论的老问题.长方形和正方形的继承关系 :
http://www.jdon.com/article/31041.html

如果对产品展示有特别关注,那么楼上引入“展示计划”的方案值得考虑。

[该贴被banq于2007-11-28 11:24修改过]

将“公司和产品”画上关联是不是有数据库的思维我不知道,我也不知道描述一个现实的时候我是不是在使用OO思维,因为我并不关注到底使用什么思维,我关注的是把现实描述清楚,描述清楚了后进行设计时会对可扩展性进行论证(但前提是把现实描述清楚).
之所以公司与产品会存在必然的联系,是因为现在是一次展会,离开供应商的产品存在没有意义(脱离这次展会看产品,它就可以存在,展会中需要的XXX提供的XX产品,或许可以考虑剔除供应商的概念,应该那是描述产品的一个特性,但在剔除时需要考虑参展方这个概念,因为它也是展会的主要对象之一),所以供应商是必须存在,并且每一个产品都必须具有供应商.
展会当然是以展示产品为主,至于是不是应该具有展会计划那是另外一会事情,预先安排产品在那里展示这是必须进行的,如果这称之为展示计划,那么就有这概念.
描述展会特性还会有很多不止一个展会计划,这需要具体需求具体分析.目前我的图当中还只描述了一种核心概况,在分析下去还回延伸出很多,至于延伸多少那要看具体需求
[该贴被apexCloud于2007-11-28 12:05修改过]
[该贴被apexCloud于2007-11-28 12:06修改过]

看了apexCloud 的两张图,发现我上传的图3对应apexCloud的图1,我的图2对应apexCloud的图2.

apexCloud图中看出,先是产品再到供应商,我暂时把产品忽略,如果有产品的话我觉得是先到供应商再到产品。

对主办方来说,展会为采购方和参展商提供平台。只会关注到展区下有哪些参展商,不关注具体的产品。

对于参展商来说,如果在这类的展区中,就展出相应的产品。

在前面我提到:“整个需求是通过这个网站,让去看展会的人能更好地了解到展商的信息,参加展会的人虽然最终目的是产品,但通过这个网站系统更多是想了解他感兴趣的产品的展商,而不是产品本身,当找到展商后,可能才会去找这个展商的产品或者是展商在某个展会的某个展区展示的产品”

zhufengit 提到的“展示计划”,其实已经融入了我提到的展会实例中:某届展会(展会实例)有哪些展区,参展商在某届展会(展会实例)展出哪些产品。

产品展示区与产品应该不是一对多的关系的。有了展会实例,同一产品展示区有多个产品,同一产品也在多个产品展示区(2006年广交会工业区和2007年某展会工业区,都有这个产品)

我觉得如果有一个这样展会的网站,那么这个展会网站的主要作用不是为了取代实际的展会,只是为实际的展会提供服务,比如让参展的人更好地了解这次展会相关的信息。最想了解的是展会和参展商,所以我觉得它们是最核心的。


我的这份设计图如何,请大家评论。

有几点说明:

1.我觉得可能没有必要吧展会和展会实例分离出来 - 当然需要根据需求而定

2.展区,展位,展馆都可以看作展位,可以归为是CompositeObject

3.参展公司/举办公司与展会之间的关系可以通过角色进行说明,不一定要把参展公司和举办单位分离出来,而且举办单位可能不止一个(?)



修改一下,刚才那个有个地方表述不清



贴个我想的



To hundred007 :
不好意思,前段时间由于个人有些事情,所以一直没来上网,没有回答你问我的问题,对不起!

下面我先针对你说的需求谈一点我的看法,然后再把我之前说的概念明确一下,最后回答你提的几个疑问。

>>>“整个需求是通过这个网站,让去看展会的人能更好地了解到展商的信息,参加展会的人虽然最终目的是产品,但通过这个网站系统更多是想了解他感兴趣的产品的展商,而不是产品本身,当找到展商后,可能才会去找这个展商的产品或者是展商在某个展会的某个展区展示的产品。(可以去展示某类产品的展区找展商,很少是找展商下的产品然后找到展商),这是我对展会网站的理解,因为我觉得展会网站是不会替代展会本身的,展会网站只是对展会提供服务。”

我的看法是:还是不能把需求看得太死,对于展会这样的系统,凭常识我们也可以知道有的人可能更多是想了解他感兴趣的产品类别的展商,但也可能有的人是更想了解他熟悉的展商的产品类别,那么是不是要产品类别关联展商而展商又关联产品类别了吗?这样的话那不是造成双向关联了吗?而这是我们建模时需要特别注意的,出现双向关联时要特别小心,banq也多次说过双向关联基本上是没有实际意义的,应该杜绝的。所以楼主这样的需求理解跟你怎么设计系统并没多大决定性的影响。关键还是在理解展会的本质,理出基本概念,核心概念。

展会的本质是什么?怎么给它下一个定义?我在前面也提过一下我的理解,如“对于广交会的例子,正如楼主所述,广交会实例和公司是最重要的两个概念,广交会其实就是主办方提供一个交流的平台,很多公司聚到这个平台上展示自己的产品。”、“所以广交会实例描述的其实是“展期—展区—产品类别—公司”这么一个关系,即“在某一展期的某一展区展示什么产品,有哪些公司参展”的一个详细信息集合。” 我在这里想再提取一下它的本质,我觉得展会的本质就是一次活动,既然是活动那就有时间、地点、人物、动作、对象,所以展会就是由主办方举办的在某个时间某个地方有众多公司参与的展示各自产品的一次展示活动,它由众多的原子展示活动组成,原子展示活动那就是“展期—展区—产品类别—公司”,即某公司在某展期内在某展区展示自己产品的活动。展期、展区、产品类别、公司只有在一次具体的展示活动中才发生关联关系。所以我说“所以在这个例子中,展区不能直接和产品类别关联,也不能直接和公司关联,同样,产品类别也不能和公司直接关联。”,也不用提取什么展区定义和展区实例了,在一次具体的原子展示活动中展区就是一个实例。说白了,如果大家对采购订单或生产订单有所了解的话就更好理解了,展会其实就相当于采购订单,原子展示活动就是采购订单的明细。这里有一个重要的概念我前面没有明确提出的就是原子展示活动,但就是我之前说的“详细信息集合”中的详细信息。展会是实体,这个应该好理解,但是原子展示活动也是实体,为什么这么说呢?因为实体是指能够唯一标识自己以此区别于其他实体的事物,可以是看得见摸得着的东西,也可以是逻辑上的事物,原子展示活动是后者,同一公司两次在同一展区展示相同产品类别也是不同的展示活动,因为时间不可能相同,对应于四色原型的话就是MI,是整个展会系统的核心动态交互过程。

上面的描述我没有明确独立产品类别和产品的概念,我假设只关心产品类别而不关心具体的产品。所以我上面说的产品有时就是产品类别,可以从上下文含义中辨别。

下面回答你提的几个问题:
1. killer的图看得不清楚,是不是每个实例都是与展会关联?除此外其它实例间没有直接关联?那么在操作中是怎样从展区找到展商,如果能找到,那不是展区和展商就有关联吗?
>展期,展区,产品类别,公司都不和任何其他关联。原子展示活动和展期,展区,产品类别,公司关联。注意一点,这里不是展期,展区,产品类别,公司和原子展示活动关联,这个关联顺序是非常重要的,正如“上海”和“海上”的区别。从展区找到展商是展会按展区找展商的职责。
2. 疑问一
>从上面的展会本质描述中可了解。
3. 疑问二
>从上面的展会本质描述中可了解。
4. 疑问三
>现实中有关联就是有关联,看你把握它的本质,本质关联以外的就是冗余关联。
5. 疑问四
>细节问题,可以自己灵活取舍。
6. 疑问五
>产品类别和展区没有关联。
7. 从分析层面看,区分好职责能更能反映客观事物,从具体的实现层面来看,区分职责在是不是为了更好地放置代码吗?……从代码的放置来看,这样对吗?
>对。

其他问题banq做了回答,肯定比我回答的好。我也从中吸取养分!:)

个人观点,仅供参考!

to gougou3250:
你的图中展位和展商关联,我觉得不妥,理由可以见我前面的分析。另外参展商和举办商继承公司也不妥,因为一个公司即可以是参展商也可以同时是举办商,这只是公司的具体角色问题而已。

个人意见
1、对问题域中相关元素的定义不足
2、UML图缺少语义描述。
3、明确您的建模是领域模型?还是分析模型?还是设计模型?
4、双向关联并非没有意义,而是尽量避免。业务如此也是正确的!
5、缺少对问题域的抽象。

在这个问题里,公司、产品是实体么?需要区分它们哪个是哪个吗?
就是说,问题描述中,是否需要确认某个公司曾经在哪届展会的哪个展区展示过什么东西?
还是仅仅需要知道在哪届展会的哪个展区有谁参加(公司),展示了什么东西(产品)?

>展期,展区,产品类别,公司都不和任何其他关联。原子展示活动和展期,展区,产品类别,公司关联。注意一点,这里不是展期,展区,产品类别,公司和原子展示活动关联,这个关联顺序是非常重要的,正如“上海”和“海上”的区别。从展区找到展商是展会按展区找展商的职责。


killer

发表文章: 106
注册时间: 2007年07月17日 15:40
给他发消息

回复:re:请教建模的问题,如实客观世界时的性能问题 发表: 2007年11月17日 16:57 回复
晕,怎么图片传上来成了这样?

/////////////////////////////////////////////////////////
图片看不清楚,不明白原子展示活动怎样和展会关联的?

killer的帖子总给人豁然开朗的感觉,期望看到killer更多的高见