Use case 定义:用例定义了一组用例实例,其中每个实例都是系统所执行的一系列操作,这些操作生成特定主角可以观察的值。
一个完整的用例定义由参与者、前置条件、场景、后置条件构成。
用例的特征:
用例是相对独立的。
这就意味着它不需要与其他用例交互而独立完成参与者的目的,也就是说用例在功能上是完备的。用例本质体现了参与者的愿望,不能完整达到参与者的愿望的不能称作为用例。例如取钱时一个有效地用例,填写取款单却不是。因为完成的目的是取钱,而不是填取款单。
用例的执行结果对参与者来说是可观察的和有意义的
例如有一个后台进程监控参与者在系统里面的操作,并在参与者删除数据库之前执行备份操作。虽然它是系统的一个必要组成部分,但是它在需求阶段却不应该作为用例的实现。应为这是一个后台进程,对于参与者来说是不可观察的,它应该作为系统需求在补充规约中定义而不是一个用户需求。又比如说登录系统是一个有效地用例,但是输入密码却不是。这是应为登录系统对参与者有意义,这样他可以获得身份认证和授权,但单纯的输入密码却没有意义的,输入完了呢?有什么结果?这都是没有意义的。
这件事情必须有一个参与者发起。不存在没有参与者的用例,用例不应该自动启动,也不应该主动启动另一个用例。
用例总是由一个参与者发起的,参与者的愿望是这个用例存在的原因。例如从ATM取钱是一个有效地用例,ATM吐钞却不是。
用例必然是以动宾短语形式出现的
用例必须有一个动作和动作的受体。例如喝水是一个有效地用例,而“喝”和“水”却不是。喝不能构成一个完整的事件,因此不能用来命名用例。
一个用例就是一个需求单元、分析单元、设计单元、开发单元、测试单元甚至是部署单元
一旦决定了用例,软件开发工作的其他活动都以这个用例为基础,围绕着他来进行。