所在位置:答疑 - 内容   
从序列图转换得到的系统用例图也难以避免会存在一定程度的时间先后关系吧
 

利昂 (26***185) 2012-05-02 09:53:19
潘老师,请教个问题。您说过系统用例之间不能有先后关系,但是系统用例是由业务序列图转换而来,而序列图从上到下的生命线本来就体现了一种时间上的先后关系,所以从序列图转换得到的系统用例图也难以避免会存在一定程度的时间先后关系吧?
潘加宇 (3504847) 2012-05-02 10:42:09
系统的用例是某个系统对外提供的服务,只要满足前置条件就可以进行。它和组织的流程是多对多的,一个系统用例可能会在多个组织流程中发挥作用,一个组织流程也会用到多个系统的多个用例。你看到"有一定的顺序",那只是因为你只研究了一个组织流程。
可以这样类比:用例就相当于一个类的操作,如何调用一个类的各个操作,这里面的先后顺序不是由这个类自己规定的,不同的场景(序列图)中,调用者会根据需要按照不同顺序调用该类的不同操作。
你有以上想法,可能是这样的概念没有理清楚:
(1)业务流程的步骤和系统用例的区别。可能有100个业务流程,一个业务流程可能有100步,但根据愿景,你的系统很可能只需要提供1-2个用例
(2)用例的前置条件和达到这个条件的行为的区别。例如,发货用例的前置条件是"系统中存在待发货的订单",但不代表前置条件是"顾客下单""录单员录订单""管理员批量导入订单".....某个状态和可能会导致达到某个状态的行为之间同样存在多对多的关系。
多对多关系就是软件的复杂性所在,因为计算机无法直接推导,只能由人脑来权衡一个接近最优的多对多映射方案。

利昂 (26***185) 2012-05-02 11:14:39
潘老师,我简单总结下,您看我理解得对不:
1.系统用例:业务流程 = n:n
2.某个业务流程中按顺序发生的两个系统用例,前一个用例并不是后一个用例的前置条件
潘加宇 (3504847) 2012-05-02 11:15:45
理解得对

利昂 (26***185) 2012-05-02 11:31:40
多谢老师,对OOAD有有进一步认识了