UML-2-用例图_第1页
UML-2-用例图_第2页
UML-2-用例图_第3页
UML-2-用例图_第4页
UML-2-用例图_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用例图用例图Use Case DiagramUse Case DiagramUMLUML及建模工具及建模工具用例图用例图v1 1 基于用例的系统行为建模基于用例的系统行为建模v2 2 用例图用例图v3 3 用例图的表示方法用例图的表示方法v4 4 总结总结1 1 基于用例的系统行为建模基于用例的系统行为建模v系统的行为系统的行为( (即功能即功能) )是由用户提出的需求所决定的是由用户提出的需求所决定的v现在,我们开始面对客户倾听他们讲述关于所要开现在,我们开始面对客户倾听他们讲述关于所要开发项目的需求:发项目的需求: 这是一个生产计划系统这是一个生产计划系统 (Produce Plan Sy

2、stem) (Produce Plan System) 项目,我们简称它为项目,我们简称它为PPSPPS项目项目 PPSPPS项目要解决的首要问题是如何根据订单量来保项目要解决的首要问题是如何根据订单量来保证原材料的最低库存量证原材料的最低库存量 根据用户的描述,我们可以初步确定根据用户的描述,我们可以初步确定PPSPPS系统具有系统具有以下行为特征:创建销售订单、取消订单、创建以下行为特征:创建销售订单、取消订单、创建生产计划单、创建采购合同、取消采购合同、零生产计划单、创建采购合同、取消采购合同、零配件出库、零配件入库、计算预计可用库存量等配件出库、零配件入库、计算预计可用库存量等 1 1

3、 基于用例的系统行为建模基于用例的系统行为建模v我们需要对我们需要对PPSPPS的需求进行细化,即把一个大的需求进行细化,即把一个大问题分解和抽象为若干个子问题问题分解和抽象为若干个子问题v这些子问题就是我们的用例这些子问题就是我们的用例(Use Case)(Use Case),用,用例描述的是系统行为,例描述的是系统行为,UMLUML用用例图来为系用用例图来为系统行为建模统行为建模2 2 用例图用例图v用例图用例图 (Use Case Diagram) (Use Case Diagram) 主要用于描述主要用于描述系统的行为及各种功能之间的关系,是描述系统的行为及各种功能之间的关系,是描述参

4、与者参与者(Actors)(Actors)与用例以及用例与用例之间关与用例以及用例与用例之间关系的图系的图v用例图从用户和外部系统的角度,分析和考用例图从用户和外部系统的角度,分析和考察系统的行为,并通过参与者与系统之间的察系统的行为,并通过参与者与系统之间的交互关系描述系统对外提供的功能特性交互关系描述系统对外提供的功能特性 Use Case Diagram = Actors + Use Cases + Relationships2 2 用例图用例图vUMLUML的用例图由参与者、用例及它们之间的的用例图由参与者、用例及它们之间的关系组成关系组成v它的表达方式为:它的表达方式为: 用例图用例

5、图 = = 参与者参与者 + + 用例用例 + + 关系关系3 3 用例图的表示方法用例图的表示方法v3.1 3.1 参与者参与者v3.2 3.2 用例用例v3.3 3.3 用例之间的关系用例之间的关系3.1 3.1 参与者参与者vUMLUML官方文档对参与者的定义是:官方文档对参与者的定义是:actoractor是在是在系统之外系统之外与系统交互的某人或某事物。与系统交互的某人或某事物。v参与者是用例的启动者参与者是用例的启动者v参与者处于用例的外部并且能够初始化一个参与者处于用例的外部并且能够初始化一个用例,但它并不是所描述系统的一部分,它用例,但它并不是所描述系统的一部分,它可能是人或其

6、他外界系统可能是人或其他外界系统3.1 3.1 参与者参与者planner图2-1 参与者的符号 3.1 3.1 参与者参与者v在在UML2.0UML2.0中,参与者的符号被表示为图中,参与者的符号被表示为图2-22-2的形式:的形式:Actorplanner图2-2 UML2.0表示参与者的方法 3.1 3.1 参与者参与者v图图2-22-2中的中的是一个构造型是一个构造型 (Stereotype)(Stereotype),表示当前的,表示当前的UMLUML元素表达的元素表达的是参与者的概念是参与者的概念一个问题一个问题v小王到银行去开户,向大厅经理询问了办理小王到银行去开户,向大厅经理询问

7、了办理手续,填写了表单,交给柜台职员,拿到了手续,填写了表单,交给柜台职员,拿到了银行存折。在这个场景中,谁是参与者?银行存折。在这个场景中,谁是参与者?系统边界是系统边界是什么?什么?1,谁对系统有着明确的目标和要求并且主动发出动作?2,系统为谁服务?参与者可以非人参与者可以非人v每天自动统计网页访问量,生成统计报表,每天自动统计网页访问量,生成统计报表,并发送至管理员信箱。这个需求的参与者是并发送至管理员信箱。这个需求的参与者是谁?谁?计算机系统、计时器、传感器、JMS消息任何需求都有一个启动者任何需求都有一个启动者v任何功能性需求都有一个启动者,如果找不任何功能性需求都有一个启动者,如果

8、找不到启动者,那可以肯定的说,这不是一个功到启动者,那可以肯定的说,这不是一个功能性需求。能性需求。v例如:客户提出要建立的系统界面要很友好,例如:客户提出要建立的系统界面要很友好,每个页面上都有操作提示。每个页面上都有操作提示。非功能需求发现参与者发现参与者v参与者来源:涉众分析、客户的岗位设置、参与者来源:涉众分析、客户的岗位设置、客户代表访谈。客户代表访谈。v以下问题可以帮助确定参与者:以下问题可以帮助确定参与者:n 谁负责提供、使用和删除信息?谁负责提供、使用和删除信息?n 谁将使用此功能谁将使用此功能?n 谁对某个特定的功能感兴趣?谁对某个特定的功能感兴趣?n 在组织中的什么地方使用

9、系统?在组织中的什么地方使用系统?n 谁负责支持和维护系统?谁负责支持和维护系统?n 系统有哪些外部资源?系统有哪些外部资源?n 其它还有哪些系统与该系统进行交互?其它还有哪些系统与该系统进行交互?参与者情况分析参与者情况分析参与者情况分析参与者情况分析参与者情况分析参与者情况分析参与者情况分析参与者情况分析3.2 3.2 用例用例vBoochBooch等人在等人在19991999年出版的年出版的Unified Unified Modeling Language User GuideModeling Language User Guide中将用例中将用例定义为:定义为: “若干动作序列集合的描

10、述,包括由系统若干动作序列集合的描述,包括由系统执行并产生可观察的、对某参与者有价值执行并产生可观察的、对某参与者有价值的结果的变体的结果的变体”vRationalRational统一过程统一过程(Rational Unified (Rational Unified ProcessProcess,RUP)RUP)将用例定义为:将用例定义为: “一系列包含变量的动作描述,系统由此一系列包含变量的动作描述,系统由此对特定用户产生有价值的可见结果对特定用户产生有价值的可见结果” 3.2 3.2 用例用例v简单的说,用例就是对一组动作序列的描述,简单的说,用例就是对一组动作序列的描述,系统执行该动作序

11、列来为系统的参与者产生系统执行该动作序列来为系统的参与者产生一个可观察的结果。一个可观察的结果。v这个动作序列就是业务工作步骤,是用户和这个动作序列就是业务工作步骤,是用户和系统之间的交互过程。系统之间的交互过程。v用例反映用户的需求,而不是反映开发人员用例反映用户的需求,而不是反映开发人员的愿望。的愿望。用例与面向对象的关系用例与面向对象的关系v用例是用例是UMLUML建模中最最重要的一个元素。之建模中最最重要的一个元素。之所以说它重要,是因为所以说它重要,是因为UMLUML是面向对象的,是面向对象的,除了用例之外,其它元素都是除了用例之外,其它元素都是“封装封装”的,的,“独立独立”的。的

12、。v正是用例将这些独立的封装的对象驱动起来,正是用例将这些独立的封装的对象驱动起来,引发他们之间的联系。引发他们之间的联系。用例的构成用例的构成用例的构成用例的构成v一个完整的用例定义是由参与者、前置条件、一个完整的用例定义是由参与者、前置条件、场景、后置条件构成的。场景、后置条件构成的。v一个系统的功能性是由一些对系统有愿望的一个系统的功能性是由一些对系统有愿望的参与者要做的一些事情构成的,这些事情完参与者要做的一些事情构成的,这些事情完成后就达成了参与者的一个愿望,当全部参成后就达成了参与者的一个愿望,当全部参与者的愿望都通过用例来达到了,那么这个与者的愿望都通过用例来达到了,那么这个系统

13、就被确定下来了。捕捉功能性需求,这系统就被确定下来了。捕捉功能性需求,这就是用例的作用。就是用例的作用。用例的特征用例的特征v用例是相对独立的用例是相对独立的,它不需要与其它用例交它不需要与其它用例交互而互而独自独自完成参与者的完成参与者的目的目的。v例如取钱是一个有效的用例,而填写取款单例如取钱是一个有效的用例,而填写取款单不是。用例本质体现了系统参与者的愿望,不是。用例本质体现了系统参与者的愿望,不能完整达到参与者愿望的不是用例。不能完整达到参与者愿望的不是用例。用例的特征用例的特征v用例的执行结果对参与者来说是可观测和有用例的执行结果对参与者来说是可观测和有意义的。意义的。v例如有一个后

14、台进程监控参与者在系统里的例如有一个后台进程监控参与者在系统里的操作,并在参与者删除数据之前执行备份操操作,并在参与者删除数据之前执行备份操作。虽然是系统功能必须的一个部分,但是作。虽然是系统功能必须的一个部分,但是在需求阶段不应该作为用例出现,因为对参在需求阶段不应该作为用例出现,因为对参与者是不可观察的。与者是不可观察的。用例的特征用例的特征v这件事必须由一个参与者发起,不存在没有这件事必须由一个参与者发起,不存在没有参与者的用例。参与者的愿望是这个用例出参与者的用例。参与者的愿望是这个用例出现的原因现的原因用例的特征用例的特征v用例必然是以用例必然是以动宾短语动宾短语形式出现的。很多不形

15、式出现的。很多不对的描述形式比如:对的描述形式比如:“计算计算”、“统计统计”、“报表报表”、“输出输出”、“录入录入”用例的特征用例的特征v一个用例就是一个需求单元、分析单元、设一个用例就是一个需求单元、分析单元、设计单元、开发单元、测试单元甚至部署单元。计单元、开发单元、测试单元甚至部署单元。用例的粒度用例的粒度v粒度是很令人困惑的问题。比如:粒度是很令人困惑的问题。比如:ATMATM取钱取钱的场景中,取钱、读卡、验证账号、打印回的场景中,取钱、读卡、验证账号、打印回执单等都是可能的用例。到底该使用什么粒执单等都是可能的用例。到底该使用什么粒度去划分合适?度去划分合适?v项目过程中不同的阶

16、段使用不同的用例粒度。项目过程中不同的阶段使用不同的用例粒度。3.2 3.2 用例用例vUMLUML有两种表达用例的方式:一种是用一个有两种表达用例的方式:一种是用一个椭圆加上一个放置在椭圆中心的用例名称来椭圆加上一个放置在椭圆中心的用例名称来表达用例:表达用例:Create Order图2-3 UML用椭圆形表示用例 3.2 3.2 用例用例v另一种方式是用分栏的矩形框来表达用例,另一种方式是用分栏的矩形框来表达用例,第一栏标明用例的名称,并且在右上角画一第一栏标明用例的名称,并且在右上角画一个小椭圆表示当前的个小椭圆表示当前的UMLUML元素表示的是用例,元素表示的是用例,矩形框的第二栏放

17、置其他与这个用例有关的矩形框的第二栏放置其他与这个用例有关的细节,比如扩展点、被包含用例等细节,比如扩展点、被包含用例等Create OrderExtension Pointsale styles图2-4 UML用矩形表示用例 3.2 3.2 用例用例v所有用例都应该有名称,建议使用动名词为用例命所有用例都应该有名称,建议使用动名词为用例命名名 例如用例例如用例“Create OrderCreate Order”或或“Estimate Estimate Available InventoryAvailable Inventory”。这反映出用例应始终以。这反映出用例应始终以用户的角度来定义,而

18、不是以系统功能的角度定用户的角度来定义,而不是以系统功能的角度定义义v可以将一个参与者与一个或多个用例关联可以将一个参与者与一个或多个用例关联(Association)(Association),这种关联关系揭示了参与者初始化,这种关联关系揭示了参与者初始化一个用例,而用例向参与者提供有价值的可见结果一个用例,而用例向参与者提供有价值的可见结果v关联关系用实线来表示关联关系用实线来表示Create OrderCancel Ordersalesman图2-5 参与者与用例之间的关联 3.2 3.2 用例用例3.2 3.2 用例用例v一个系统中的每个功能都有它的所属范围,所以用一个系统中的每个功能

19、都有它的所属范围,所以用例用系统边界例用系统边界(System Boundaries)(System Boundaries)来定义这种范来定义这种范围围v在决定参与者、设计一个系统、子系统或某个部件在决定参与者、设计一个系统、子系统或某个部件的时候,这种划分系统边界的技术对于决定系统的的时候,这种划分系统边界的技术对于决定系统的规模和分配责任是十分有用的规模和分配责任是十分有用的v系统边界是用来表示正在建模系统的边界,边界内系统边界是用来表示正在建模系统的边界,边界内表示系统的组成部分,边界外表示系统外部表示系统的组成部分,边界外表示系统外部vUMLUML使用矩形框来表达系统的边界,在矩形框的

20、左使用矩形框来表达系统的边界,在矩形框的左上方放置系统的名字上方放置系统的名字 v销售子系统:销售子系统:Create OrderCancel OrderSale System salesman图2-6 业务员处于系统边界之外 3.2 3.2 用例用例v库存子系统:库存子系统:Stock OutStorage System Stock InEstimate Available Inventorystoreman图2-7 库管员的系统边界 3.2 3.2 用例用例v采购子系统:采购子系统:Create Purchase ContractCancel Purchase ContractPurcha

21、se System purchaser图2-8 采购员的系统边界 3.2 3.2 用例用例3.3 3.3 用例之间的关系用例之间的关系v在简单的用例图中,只表述参与者和用例之在简单的用例图中,只表述参与者和用例之间的关系,但有时需要表达参与者之间以及间的关系,但有时需要表达参与者之间以及用例之间的关系用例之间的关系v用例建模间的关系包括:用例建模间的关系包括: 扩展扩展(Extend)(Extend) 包含包含(Include)(Include) 泛化泛化(Generalization)(Generalization)(1) 泛化关系v泛化关系是两个用例或两个参与者之间的关系泛化关系是两个用例

22、或两个参与者之间的关系 v当多个用例共同拥有一种类似的结构和行为的时候,当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象为父用例,其他的用例作为可以将它们的共性抽象为父用例,其他的用例作为子用例,用例间的这种关系被称为用例的泛化关系子用例,用例间的这种关系被称为用例的泛化关系 A A 是是B B的泛化,意味着的泛化,意味着A A描述的是一般的行为,而描述的是一般的行为,而B B是这些行为的详细是这些行为的详细(Specific)(Specific)版本版本 A A被称为父用例被称为父用例(Parent Use Case)(Parent Use Case)或基用例或基用例(Ba

23、se (Base Use Case)Use Case),B B被称为子用例被称为子用例(Child Use Case)(Child Use Case)v在用例的泛化关系中,子用例是父用例的一种特殊在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承形式,子用例继承(Inherit)(Inherit)了父用例所有的结构、了父用例所有的结构、行为和关系行为和关系salesmanCreate OrderCreate Retail OrderCreate Wholesale Order图2-10 Create Order是对Create Wholesale Order和Create Retai

24、l Order的泛化 (1) (1) 泛化关系泛化关系(1) 泛化关系v参与者之间也存在着这种泛化关系参与者之间也存在着这种泛化关系v比如,你建模了一个数据库管理员和一个备比如,你建模了一个数据库管理员和一个备份管理员,然后你发现他们的工作中有一部份管理员,然后你发现他们的工作中有一部分是重叠的,那么,你就可以创建一个称为分是重叠的,那么,你就可以创建一个称为系统管理员的参与者作为数据库管理员和备系统管理员的参与者作为数据库管理员和备份管理员的泛化份管理员的泛化 (2) 扩展关系v扩展是两个用例之间的关系,它使得每个用例可以扩展是两个用例之间的关系,它使得每个用例可以通过扩展用例向基用例中添加

25、额外的行为来扩展基通过扩展用例向基用例中添加额外的行为来扩展基用例的功能用例的功能v用例的扩展机制允许从一个基用例开始开发一个复用例的扩展机制允许从一个基用例开始开发一个复杂的系统,并且能够在不改变基用例的前提下向基杂的系统,并且能够在不改变基用例的前提下向基用例中扩展更多的行为用例中扩展更多的行为 用例用例A A扩展了用例扩展了用例B B,则,则A A称为扩展用例称为扩展用例(Extend (Extend Use Case)Use Case)或子用例,或子用例,B B称为基用例称为基用例 它表示扩展用例它表示扩展用例A A的事件流在一定的条件下按照相的事件流在一定的条件下按照相应的扩展点可插

26、入到基用例应的扩展点可插入到基用例B B中,这就需要在基用中,这就需要在基用例中定义一至多个已命名的扩展点例中定义一至多个已命名的扩展点v选用扩展关系可以把一些可选的操作独立封装在另选用扩展关系可以把一些可选的操作独立封装在另外的用例中,避免基用例过于复杂外的用例中,避免基用例过于复杂图2-11 用例的扩展关系 (2) (2) 扩展关系扩展关系使用扩展关系的理由使用扩展关系的理由v表明用例的某部分是可选的(或可能可选)的系统表明用例的某部分是可选的(或可能可选)的系统行为。这样就可以将模型中的可选行为和必选行为行为。这样就可以将模型中的可选行为和必选行为分开。分开。v表明只在特定条件(有时是例

27、外条件)下才执行分表明只在特定条件(有时是例外条件)下才执行分支流,如触发警报支流,如触发警报v表明可能有一组行为段,其中的一个或多个段可以表明可能有一组行为段,其中的一个或多个段可以在基本用例的扩展点插入,所插入的行为段将取决在基本用例的扩展点插入,所插入的行为段将取决于在执行基本用例时与主角的交互。于在执行基本用例时与主角的交互。v表明多个基本用例中都有可能触发一个可选的分支表明多个基本用例中都有可能触发一个可选的分支流。从这个意义上说,扩展用例也代表了多个用例流。从这个意义上说,扩展用例也代表了多个用例的可复用部分。的可复用部分。例子例子v打电话时,如果在通话过程中收到另一个呼打电话时,

28、如果在通话过程中收到另一个呼叫,我们可以将当前通话保留而接听另一个叫,我们可以将当前通话保留而接听另一个通话。在这个场景中,保留通话用例就是打通话。在这个场景中,保留通话用例就是打电话用例的一个扩展用例。电话用例的一个扩展用例。v是否保留通话取决于打电话人的决定,而不是否保留通话取决于打电话人的决定,而不是必须,即使我们没有保留通话功能,也不是必须,即使我们没有保留通话功能,也不影响打电话的完整性。但是如果没有之前的影响打电话的完整性。但是如果没有之前的打电话用例,也就不可能单独启动所谓的保打电话用例,也就不可能单独启动所谓的保留通话用例了。留通话用例了。(3) 包含关系v包含是两个用例之间的

29、关系包含是两个用例之间的关系v当多个用例需要用到同一段行为时,可以把这段共当多个用例需要用到同一段行为时,可以把这段共同的行为单独抽象成为一个用例,然后让其他的用同的行为单独抽象成为一个用例,然后让其他的用例来包含这一用例,从而避免在多个用例中重复性例来包含这一用例,从而避免在多个用例中重复性的描述同一段行为,也可以防止该段行为在多个用的描述同一段行为,也可以防止该段行为在多个用例中的描述出现不一致性例中的描述出现不一致性v当需要修改这段公共的需求时,也只需要修改一个当需要修改这段公共的需求时,也只需要修改一个用例,避免同时修改多个用例而产生的不一致性和用例,避免同时修改多个用例而产生的不一致

30、性和重复性工作重复性工作 用例用例A A包含包含B B,将,将A A称为基用例,称为基用例,B B称为被包含用例称为被包含用例(Inclusion Use Case)(Inclusion Use Case)v包含关系表示基用例会用到被包含用例,被包含用包含关系表示基用例会用到被包含用例,被包含用例的事件流在基用例的某个点处插入到基用例的事例的事件流在基用例的某个点处插入到基用例的事件流中件流中使用包含关系的理由使用包含关系的理由v从基本用例中分解出这样的行为:它对于基本用例从基本用例中分解出这样的行为:它对于基本用例的主要目的并不是必须的,只有它的结果才比较重的主要目的并不是必须的,只有它的结果才比较重要要v分解出两个或者多个用例共有的行为分解出两个或者多个用例共有的行为v例子:去银行办理业务,不论是取钱、转账还是修例子:去银行办理业务,不论是取钱、转账还是修改密码,我们都首选要核对账号和密码,因此可以改密码,我们都首选要核对账号和密码,因此可以将核对账号作为上述业务用例的共有行为提取出来,将核对账号作为上述业务用例的共有行为提取出来,形成一个包含用例。我们可以看到这个包含用例就形成一个包含用例。我们可以看到这个包含用例就有了可复用的意义,如果缺少了包含用例,取钱转有了可复用的意义,如果缺少了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论