用例是一系列相关的成功和失败场景的集合,这些场景描述了一个参与者使用一个系统来支持一个目标。用例是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。
对于复杂业务,场景多而复杂,在编制用例时很难不遗漏一些业务和需求,且这些需求还可能发生变化,所以编制完整用例非常困难。
用例图是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系。通过用例图,人们可以获知系统不同种类的用户和用例。用例图也经常和其他图表配合使用。
参与者(Actor) 参与者是与系统交互的人或物。包括开发系统用户和与开发的系统有关联的其他系统。在UML图中用一个小人表示。
用例(use case) 用例是参与者可以感受到的系统服务或功能单元。在UML图中用椭圆表示。
系统边界(system boundaries) 系统与系统之间的边界。在UML图中用矩形表示。
关系(relation) 用例图中的关系有4种:关联,泛化,包含和扩展。
关联:表示参与者和用例之间的交互,任何一方都可发送或可接收消息。在UML图中用直线表示。
泛化:用例的泛化指的是一个父用例可以被特化形成多个子用例,类似于继承。在UML图中用空心箭头表示,箭头指向的是父用例。
包含:包含关系用来把一个较复杂的用例所表示的功能分解成较小的步骤。在UML图中用带箭头的虚线段加< >表示,箭头指向被包含的用例。
扩展:扩展关系是指用例功能的延伸。与包含关系不同的是,扩展用例是可选的,如果缺少扩展用例。不会影响到基用例的完整性。在UML图中用带箭头的虚线段加< >表示,箭头指向基用例。
因为在相似的系统中,用户的需求是相似的,所以这些系统有着类似的功能,提供给用户类似的服务,因此它们的用例图是相似的。
在Asg_RH用例图中,当搜索不到用户指定的城市时,会提供用户搜索地点的服务;而在当今时代的去哪儿定旅馆业务中,不会出现搜索不到的情况,该系统利用先进的技术,智能匹配与用户输入最接近的城市。从对比中可以发现,不同时代对于相同的业务有可能有不同的需求,因此在软件发展的过程中,我们需要更新用例图,采用更先进的技术,展现、突出创新业务。
对于不同方面的创新的用例,使用不同颜色背景的用例图表示,直观地观察其在系统中的作用。如果创新位于较高的父级,则作用比较大。如果是子类或者是被包括的关系,则作用相对较小。