关于用例的理解和疑问
先发表一下我对用例的理解。用例能对参与者提供一定的功能。他是站在参与者角度的。用例是分析功能性需求的好手。而很大一部分系统都是以解决功能性需求为核心。用例也是系统开发的驱动力。本人还认为,如果用例编写的足够细致,在测试阶段也可以用来作为系统功能是否实现的准则。
系统开发人员依次是系统分析人员,设计人员,用例说明人员,用户界面设计人员,coder。他们都是使用用例,是捕获,分析,精化,设计需求的阶段。到最后coder拿到用例实现(包括类图,时序图或者协作图等)实施。当然,实际上一个人可以兼顾几个角色,但是总是有这几个角色所起的作用所在。
我的疑问:
如何编写有效用例?
我看过一本书,他的观点:用例是精确的反应系统功能片断。如果真要是“精确”的反应,那整个需求分析过程就是灾难。可要是大概的描述一下,能捕获需求吗?这个问题可能还是用例粒度问题。
比如:
用例1:浏览页面
主执行者:浏览者
范围:公司业务运作
层次:业务概要
前置条件:浏览者打开浏览器,进入到网站任何一个页面
触发事件:通过链接或直接进入网站
主成功场景:
1.系统识别访问者身份,并根据身份显示页面
2.浏览者根据自己的爱好和需要浏览页面,点击链接
3.系统根据用户要求显示页面
4.浏览者购买书籍
说明一下,这个系统是类似www.china-pub.com的网站。这里引用了一小段,只做讨论之用,并没有其他什么意思,希望原作者不要见怪。
首先我觉得“浏览页面”不是一个有效用例。
“1.系统识别访问者身份,并根据身份显示页面”。其中“显示页面”包括什么,应该是该用例提供给浏览着一个信息列表吧。具体地说应该是该用例向浏览着提供一类书籍的列表。
“2.浏览者根据自己的爱好和需要浏览页面,点击链接”。前面半句可以完全不需要,或者说不是系统关心,解决的问题。“浏览者根据自己的爱好和需要浏览页面”这个应该是参与者的行为,不在用例的范围内。“链接”又是一个什么呢?这里不能精确的说明,会有歧义。
最后一点不在该用例的范围之内。