`
czxzz
  • 浏览: 34310 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类

用例中extend,include的区别

uml 
阅读更多

R在阅读了需求分析师N的用例后,颇有一些想法,于是R去找N进行探讨。原因是这样的,请见用例模型,如图1.17所示。

分析师

 

 

http://hiphotos.baidu.com/guoyu132/pic/item/76422b443c5e2289b3b7dc72.jpg 

1.17 系统用例1

这个用例模型是需求分析师N在完成了需求调研后所画的,N的说法是库存管理员在查询分销商的信息后,将得到分销商一览界面,接着库存管理员可以选择一个分销商,对该分销商的详细信息进行修改。在N的脑海中,这样的用例模型将会产生如下的界面原型,如图1.181.19所示。 
 http://hiphotos.baidu.com/guoyu132/pic/item/aaa926afb5b7d8c77dd92a72.jpg
1.18 分销商一览 
http://hiphotos.baidu.com/guoyu132/pic/item/f04023ecc478182c63d09f73.jpg
1.19 分销商修改 


1.18所表示的是分销商一览界面,通过对每个分销商名字链接的单击,可以进入图1.19分销商修改界面N认为自己的用例没有画错,图1.17用例的字面上解释是查询分销商信息用例包含了修改分销商信息用例,所以图1.181.19完全可以通过图1.17的用例模型来画出。但是事实怎么样呢?R是怎么理解的呢?

另一张用例模型图 
对于N的解释,R并没有去争辩什么,只是,R也画了一张用例模型图,并作出了解释。如图1.20所示。

 

http://hiphotos.baidu.com/guoyu132/pic/item/834678d31c476ad4a8ec9a73.jpg

1.20 系统用例2

 

1.20的用例模型与图1.17的用例模型最大的不同,在于查询分销商业信息修改分销商信息之间的箭头被改成了反向,并且线上的注解从“include”变成了“extend”R说图1.20的用例模型的含义是修改分销商信息用例从查询分销商信息用例扩展而来,同样可以表述图1.181.19 
这下N也觉得诧异了,R的说法不无道理,从字面上说,先通过得到分销商信息的一览界面,然后扩展出修改分销商信息的界面是很正确的。难道两个不同的画法可以表明同一个问题吗?或者extendinclude是可以互相转换的吗?

更多的用例模型画法 
在解释1.5.2节所提出的问题前,请读者不妨再看另两张用例模型的画法,请不要吃惊和迷惑,因为从字面上来看,这两张用例模型的画法同样可以达到图1.17的用例模型所要表述的内容。如图1.21、图1.22所示。

http://hiphotos.baidu.com/guoyu132/pic/item/b6b39bdfe487f11862279873.jpg

 

1.21 系统用例
http://hiphotos.baidu.com/guoyu132/pic/item/834678d31c476ad4a8ec9a73.jpg

 

1.22 系统用例4

 

1.21字面上的意思是,在修改分销商信息的用例中,将会包含查询分销商信息的用例,所以,同样是先查询分销商信息一览然后进行修改。 
1.22字面上的意思是,查询分销商信息的用例是从修改分销商信息扩展而来的,因为主业务是要做修改分销商信息。
 
这又如何呢?读者是不是觉得已经很混乱了呢?

 

理解extendinclude 
要想找到真正的答案,理解清楚extendinclude是非常重要的,这是关键。

1extend是扩展的意思,它的含义是当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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics