1 用例一定是和使用系统的目标相关的。在写用例之前,先要确定好目标,即goal ---> use case。
2 goal就是用户所做工作的goal,需要系统帮他达成。一个goal必须是可观察得到的且有价值的goal。
3 一个use case (ESP级)对应一个goal,描述达成goal所要经历的scenario。
4 一个use case一定描述的是系统需要做什么,而不是怎么做(black-box style)。
5 “登录系统”严格来讲不是一个goal,自然也就不是一个use case(ESP级),因为用户使用系统的目标肯
定不会是登录系统。
用例在需求分析方面的作用是巨大的,但是如何确定一个用例有时是很困难的,特别是对于我这样的一个novice。通过这本书,我知道了可以通过goal来确定一个用例,那么,最重要的工作其实就是确定goal了。下面的两段是对一个个人彩票系统的goals的分析,代表了我不同阶段对于goal的理解。
个人彩票系统goal分析(阶段一)
goal 1:添加用户
goal 2:删除用户
goal 3:修改用户
goal 4:为用户添加自选彩票
goal 5:为用户修改自选彩票
goal 6:为用户删除自选彩票
goal 7:查询x用户的中奖情况
goal 8:查询x用户的x期所有自选彩票
goal 9:添加正选号码
goal 10:删除正选号码
goal 11:修改正选号码
个人彩票系统goal分析(阶段二)
goal 1:查询x用户在x一期购买的自选彩票的情况
goal 2:查询x期的正选号码
goal 3:查询x用户在x期的中奖情况
goal 4:管理x期正选彩票
goal 5:管理x用户购买彩票的情况
我个人认为阶段二的分析是真正站在了用户的角度来考虑需求。阶段一中的所有goal,其实也可以算是goal,但是它们却都不是最终的goal,而只是为最终的goal来服务的。试想,我使用个人彩票系统是为了“添加用户”?还是“为用户添加自选彩票”?恐怕都不是。
经过这个过程,我觉得在检查已列出的系统的目标的时候,可以在前面加上“我使用这个系统是为了”几个字,看看读出来以后对用户来说是不是真正的有实际意义。这应该能有所帮助。