前文介绍了系统用例,在这一节中,我们将讨论的是 用例描述 和 逻辑模型 的工作。
从任何一个环节我们都会看到用例,但是仅仅依靠用例本身的图来描述用例是不够的,为什么呢?因为用例它所要描述的是一个场景,换句话说,就是用例是描述了某件详细的事情。如果作为一个场景的话必然要考虑这么几个问题:
l 谁在这个场景中做事?
l 什么时候进入这个场景?
l 这个场景在做什么?
l 这个场景有没有特殊规则?
l 这个场景结束后会有什么情况?
l 这个场景和别的场景会有什么联系?
考虑这几个问题的话,那我们就可以开始描述我们的用例了,这步工作我们就称为用例描述。
好了,我们针对这几个问题一个个来给出它们的标准定名:
l 谁在这个场景中做事?
我们称之为 参与者
l 怎么会进入这个场景?
我们称之为 前置条件
l 这个场景在做什么?
我们称之为 基本操作流程、可选操作流程
l 这个场景有没有特殊规则?
我们称之为 业务规则
l 这个场景结束后会有什么情况?
我们称之为 后置条件
l 这个场景和别的场景会有什么联系?
我们称之为 相关用例
读过我之前一篇的朋友一定会记得用例分为 业务用例 和 系统用例 两种。针对这两种用例,相对来说都会根据这些标准定名来描述用例。
只是,有许多人习惯在 业务用例 中不作描述,或者只是简单的描述一下,这点我认为无所谓,因为业务用例是描述企业的组织机构中各部门的业务,它的用例实在是很粗的,它本身的目标只在于可以及时得在谈需求时记录下企业的业务。 不过我认为最好的做法是在业务用例的阶段,我们需要将业务用例划分出来,然后根据调研的结果将业务流程清晰的描述出来,表达的方式就不用太过拘泥,最简单的就可以是“我做 1-> 我做 2-> 我做 3… ”。
而在 系统用例 部分则不得不清晰得来表明每个用例的场景,演示系统的需求,描述系统的功能。那么这里我们就用一个例子来说明一下这些描述吧。
根据之前曾经给出的一组用例来看:
我们来描述“提取商品信息”这个用例(请注意这是 系统用例 )。
参与者:
商品管理员
参与者的意思是,谁在对这个用例进行使用
前置条件:
1. 商品管理员登陆 XXX 系统后拥有能够操作该用例的权限
2. 商品信息的名称、生产日期可以被商品管理员获取作为条件
前置条件的意思是,在怎样的前提下,该用例才有可能被使用。
基本操作流程:
商品管理员输入商品名称和信息 -> 系统提取对应的商品并显示所有商品信息
可选操作流程:
商品管理员输入商品名称和信息 -> 系统无法根据条件得到对应商品信息,系统提示商品管理员重新输入条件
基本操作流程和可选操作流程的意思是,描述用例中基本的操作步骤和系统的反应结果,以及针对同一操作步骤可能会出现的另一种可能性。
业务规则:
1. 在提取商品信息的时候必须满足不能提取“安全锁”类型的商品
业务规则的意思是,在整个用例的场景中,无法在前置条件或后置条件以及基本操作流程和可选操作流程中描述的一些特殊业务规则。该业务规则是隐含的却是必须的。
后置条件:
1. 被提取的商品其状态全部变成“已查看”状态的商品
后置条件的意思是,在用例结束后会产生怎样的一个结果,而该结果可能会对今后的其他用例产生一定的影响。
相关用例:
扩展的用例:打印商品信息、更新商品信息
被包含的用例:获取商品单价
相关用例的意思是,能够在用例的描述中查看到当前用例与其他用例的关系,一般只有直接与当前用例相关的用例才会被作为相关用例,而且需要使用“扩展的用例”和“被包含的用例”来清晰的定义。
这样,我们的系统用例就完成了,虽然很烦琐,但是能够清晰的告之你的客户 , 你的系统将会做什么,不是一件令人很愉快的事吗?
完成了这一步后,我们接着的工作就需要进入 逻辑模型 了。逻辑模型对于我们来说,是为了展示这个系统是怎样做的。因此它牵涉到的内容就比较多了。而一般而言,对于逻辑模型,我们通常分为做三步:
Step-1 :业务对象模型
业务对象模型描述的是现行的业务活动对象之间的关系,是通过从业务用例视图中调研描述的结果以及角色和客户交付的文档中的对象演化而来,通过对象合作来实现。
Step-2 :分析模型
分析模型属于推进用例的实现,它是在系统用例模型和业务对象模型基础上更进一步的对一个用例的实现说明。它更多的是告诉了我们,针对某个用例,系统会怎样实现。而在这里我们就会引出一个新名词“用例实现”,也会看到“类”。
Step-3 :设计模型
设计模型和分析模型一样,其实也是告诉了我们针对某个用例系统会怎样实现,只是设计模型更抽象,它已经要求带入了实现技术的概念。
在下一篇中,我们将继续讨论究竟怎样做逻辑模型中的业务对象模型、分析模型。由于设计模型已经进入了标准的设计阶段,而业务对象模型和分析模型则相对属于过渡,因此对于设计模型我将可能在其他文章中进行补充。