参与者和用例
参与者是与系统交互的某人或某事。用例是根据操作顺序的一个系统描述。它为参与者产生了一个看的见的结果或数据值。以下是用例的一些特征:
· 被参与者初始化
· 模拟参与者和系统之间的交互
· 描述操作的序列
· 获取功能需求
· 为参与者提供数据值
· 表示完整的和有意义的事件流
用例的目的是促使开发者、顾客和用户之间对系统应做些什么达成一致。用例在开发者和顾客之间达成了某种契约。它同时也是用例实现的基础,它在程序设计中起到了非常重要的作用。另外,你可以从用例中产生序列图,协作图和类图。此外,你可以从用例产生用户文档。用例可能还在计划迭代的技术内容方面有帮助,并且使系统开发者更好地了解系统的意图。最后,你可以使用它们作为测试例程的输入。
用例图显示了参与者和用例之间的关系。在本文我们使用一个在线书店作为项目的一个例子。图4 展示了这个项目的用例图。
图4. 用例图
用例的通用格式是:
1、简要描述
2、事件流
· 基本流程
· 可选流程 1
· 可选流程 2
3、特殊需求
4、前提条件
5、后置条件
6、扩展点
7、环境图
8、活动图
基本流程包括最通常的一系列行为,此步骤发生在每件事正确运转的时候。可选流程表现了流程的变更,包括不很普遍的情况和错误条件。环境图是用例图的一部分,向参与者和其它用例显示了特殊用例之间的关联。活动图是一个解释用例的流程图。环境图和活动图不是必须的,但是可以帮助你可视化用例和它在项目中的位置。
在我们的在线书店项目中,用例的基本流程的安置顺序也许像这样:
· B1 用户在浏览器输入**的地址。
系统显示登陆界面。
· B2 用户输入电子邮件地址和密码。
系统确认正确的登陆,显示主页,并且提示输入搜索字符串
· B3 用户输入搜索字符串—书名的一部分。
系统返回与搜索标准匹配的全部书籍。
· B4 用户选择一本书。
系统显示这本书的详细信息。
· B5 用户把这本书放在购物车中。
购物车中的货物显示给用户
· B6 用户选择"进入到结帐" 选项。
系统索要送货地址。
· B7 用户确认送货地址。
系统显示送货选项。
· B8 用户选择送货选项。
系统询问使用哪种信用卡。
· B9 用户确认储存在系统中的信用卡。
系统请求最终确认此次订购。
· B10 用户订购。
系统返回确认数量。