R在阅读了需求分析师N的用例后,颇有一些想法,于是R去找N进行探讨。原因是这样的,请见用例模型,如图1.17所示。
分析师
图1.17 系统用例1
这个用例模型是需求分析师N在完成了需求调研后所画的,N的说法是“库存管理员在查询分销商的信息后,将得到分销商一览界面,接着库存管理员可以选择一个分销商,对该分销商的详细信息进行修改”。在N的脑海中,这样的用例模型将会产生如下的界面原型,如图1.18、1.19所示。
图1.18 分销商一览
图1.19 分销商修改
图1.18所表示的是“分销商一览界面”,通过对每个分销商名字链接的单击,可以进入图1.19的“分销商修改界面”。N认为自己的用例没有画错,图1.17用例的字面上解释是“查询分销商信息用例包含了修改分销商信息用例”,所以图1.18和1.19完全可以通过图1.17的用例模型来画出。但是事实怎么样呢?R是怎么理解的呢?
另一张用例模型图
对于N的解释,R并没有去争辩什么,只是,R也画了一张用例模型图,并作出了解释。如图1.20所示。
图1.20 系统用例2
图1.20的用例模型与图1.17的用例模型最大的不同,在于“查询分销商业信息”和“修改分销商信息”之间的箭头被改成了反向,并且线上的注解从“include”变成了“extend”。R说图1.20的用例模型的含义是“修改分销商信息用例从查询分销商信息用例扩展而来”,同样可以表述图1.18和1.19。
这下N也觉得诧异了,R的说法不无道理,从字面上说,先通过得到分销商信息的一览界面,然后扩展出修改分销商信息的界面是很正确的。难道两个不同的画法可以表明同一个问题吗?或者extend和include是可以互相转换的吗?
更多的用例模型画法
在解释1.5.2节所提出的问题前,请读者不妨再看另两张用例模型的画法,请不要吃惊和迷惑,因为从字面上来看,这两张用例模型的画法同样可以达到图1.17的用例模型所要表述的内容。如图1.21、图1.22所示。
图1.22 系统用例4
图1.21字面上的意思是,在修改分销商信息的用例中,将会包含查询分销商信息的用例,所以,同样是先查询分销商信息一览然后进行修改。
图1.22字面上的意思是,查询分销商信息的用例是从修改分销商信息扩展而来的,因为主业务是要做修改分销商信息。
这又如何呢?读者是不是觉得已经很混乱了呢?
理解extend和include
要想找到真正的答案,理解清楚extend和include是非常重要的,这是关键。
(1)extend是扩展的意思,它的含义是当B用例是从A用例扩展而来的,那么就应该用箭头从B指向A,并注明extend。所谓扩展,就是对于A用例来说,并不一定要存在的,即就算把B用例去除,A用例依然可以运转下去。
(2)include是包含的意思,它的含义是当B用例是被A用例包含的,那么就应该用箭头从A指向B,并注明include。所谓包含,就是对于A用例来说必须存在,即不能把B用例去除,否则A用例将无法运转。
注意:从主动和被动方面,可以轻松记得箭头的指向,包含(include)必然是己方主动的,那箭头应该对着对方,扩展(extend)必然是他方主动的,那箭头就应该指向己方。
篇幅问题 更多在http://www.xiezezhun.com/48.html