用例和用例图统一建模语言.ppt
第二章第二章 用例和用例图用例和用例图统一建模语言统一建模语言Unified Modeling Language第二章第二章 用例和用例图用例和用例图UML用例图的作用用例图的作用UML用例图组成用例图组成UML用例图的建模用例图的建模用例图建模实例用例图建模实例UMLUML用例图的作用用例图的作用 用例图用例图(Use Case Diagram)在在UML中中是非常独特的图形元素是非常独特的图形元素,它描述人们希望如何它描述人们希望如何使用一个系统使用一个系统.用例图告诉我们谁将是相关的用例图告诉我们谁将是相关的用户用户,他们希望系统提供什么样的服务他们希望系统提供什么样的服务,以及以及他们需要为系统提供的服务他们需要为系统提供的服务.用例图在各种开发活动中被广泛使用用例图在各种开发活动中被广泛使用,但但它最经常用做描述系统以及子系统它最经常用做描述系统以及子系统.UMLUML用例图的作用用例图的作用(续续)用例图的主要作用:用例图的主要作用:用来描述待开发系统的功能需求和系统使用场景用来描述待开发系统的功能需求和系统使用场景作为开发过程的基础,驱动各阶段的开发工作作为开发过程的基础,驱动各阶段的开发工作用于验证与确认系统需求用于验证与确认系统需求画好用例图是由软件需求到最终实现的第一步画好用例图是由软件需求到最终实现的第一步.第二章第二章 用例和用例图用例和用例图UML用例图的作用用例图的作用UML用例图组成用例图组成UML用例图的建模用例图的建模用例图建模实例用例图建模实例UMLUML用例图组成用例图组成用例图用例图由如下元素组成:由如下元素组成:参与者参与者(Actor)(Actor):也称为角色,它代表系统的用户。:也称为角色,它代表系统的用户。系统边界系统边界(System scope)(System scope):它确定系统的范围。:它确定系统的范围。用例用例(Use case)(Use case):它代表系统提供的服务。:它代表系统提供的服务。关联(关联(AssociationAssociation):它表示角色与用例间的关系。):它表示角色与用例间的关系。从右图中可以看出,所有的从右图中可以看出,所有的用例都放置在系统边界内,表明用例都放置在系统边界内,表明它属于一个系统。它属于一个系统。参与者参与者则放在则放在系统边界的外面,表明系统边界的外面,表明参与者参与者并并不属于系统。但是不属于系统。但是参与者参与者负责直负责直接(或间接地)驱动与之关联的接(或间接地)驱动与之关联的用例的执行。用例的执行。UML的用例图示意的用例图示意UMLUML用例图组成用例图组成(续续)1 1、角色角色 角色角色(ActorActor)在在UMLUML中通常以一个中通常以一个直立人直立人图符来表示。图符来表示。角色角色是用例图的一个重要组成部分,它代表参与系统交互的是用例图的一个重要组成部分,它代表参与系统交互的用户、设备、或另一系统。用户、设备、或另一系统。角色角色的作用:的作用:建立系统的外部用户模型建立系统的外部用户模型对系统边界之外的对象进行描述对系统边界之外的对象进行描述UML的参与者图标的参与者图标UMLUML用例图组成用例图组成(续续)2、用例、用例 用例(用例(Use caseUse case)用来描述用来描述角色角色可以感受到的系统服务可以感受到的系统服务或功能。或功能。UMLUML中通常以一个中通常以一个椭圆图符椭圆图符来表示用例。来表示用例。用例具有如下特征:用例具有如下特征:用例通常由某个用例通常由某个角色角色来驱动执行。来驱动执行。用例把执行的结果反馈给用例把执行的结果反馈给角色角色。用例在功能上具有完整性,即它从用例在功能上具有完整性,即它从角色角色接受输入,产生的结接受输入,产生的结果输出给果输出给角色角色。UML的用例图标的用例图标UMLUML用例图组成用例图组成(续续)3 3、用例图的关联、用例图的关联 角色角色与用例的关联表示与用例的关联表示角色角色与用例相关性。在与用例相关性。在UMLUML中是使中是使用一条实线连接用一条实线连接角色角色与用例,如下图所示。与用例,如下图所示。1)1)角色与用例的关联角色与用例的关联UMLUML用例图组成用例图组成(续续)成绩管理成绩管理UMLUML用例图组成用例图组成(续续)2 2)角色与角色的关联)角色与角色的关联 角色与角色的关联用来表示一般角色与特殊角色的角色与角色的关联用来表示一般角色与特殊角色的泛化关泛化关系系。在。在UMLUML图中,使用带空心三角箭头的实线表示。如下图所示:图中,使用带空心三角箭头的实线表示。如下图所示:UMLUML用例图组成用例图组成(续续)3)用例与用例的关联)用例与用例的关联 用例之间也可存在关联。这些关联包括:用例之间也可存在关联。这些关联包括:泛化关联泛化关联包含关联包含关联扩展关联扩展关联 此外,系统分析员也可以利用此外,系统分析员也可以利用UMLUML的扩充机制自定义用例的扩充机制自定义用例的关联。的关联。UMLUML用例图组成用例图组成(续续)用例与用例的用例与用例的泛化关联泛化关联用来表示一般用例与特殊用例的泛化用来表示一般用例与特殊用例的泛化关系。在关系。在UMLUML图中,使用图中,使用带空心三角箭头的实线带空心三角箭头的实线表示。如下图所表示。如下图所示:示:UMLUML用例图组成用例图组成(续续)用例与用例的用例与用例的包含关联包含关联用来表示用来表示一个用例中重用另一个用一个用例中重用另一个用例中的步骤例中的步骤在在UMLUML图中,使用图中,使用带虚线箭头带虚线箭头表示,并在线上标有表示,并在线上标有构造型构造型。如下图所示:。如下图所示:成绩管理成绩管理UMLUML用例图组成用例图组成(续续)饮料销售机饮料销售机UMLUML用例图组成用例图组成(续续)用例与用例的用例与用例的扩展关联扩展关联用来表示用来表示通过对已有用例增加步通过对已有用例增加步骤创建一个新的用例骤创建一个新的用例,即对原有的用例进行了即对原有的用例进行了扩展。扩展。扩展只能扩展只能发生在基用例的序列中的某个具体指定点上。这个点叫做扩发生在基用例的序列中的某个具体指定点上。这个点叫做扩展点展点.在在UMLUML图中,使用图中,使用带虚线箭头带虚线箭头表示,并在线上标有构造表示,并在线上标有构造型型。如下图所示:。如下图所示:UMLUML用例图组成用例图组成(续续)包含关联与扩展关联的区别:包含关联与扩展关联的区别:存在包含关联的两个用例存在包含关联的两个用例,在执行基本用例时在执行基本用例时,一定会一定会执行包含用例;存在扩展关联的两个用例执行包含用例;存在扩展关联的两个用例,在执行基本用例在执行基本用例时时,可以执行可以执行,也可以不执行扩展部分也可以不执行扩展部分.UMLUML用例图组成用例图组成(续续)基础用例基础用例扩展用例扩展用例包含用例包含用例扩展点扩展点UMLUML用例图组成用例图组成(续续)4)用例图示例用例图示例第二章第二章 用例和用例图用例和用例图UML用例图的作用用例图的作用UML用例图组成用例图组成UML用例图的建模用例图的建模用例图建模实例用例图建模实例UMLUML用例图的建模用例图的建模创建用例图模型有创建用例图模型有3项任务:项任务:1.找出系统中的角色和用例。找出系统中的角色和用例。2.区分用例的优先次序。区分用例的优先次序。3.建立用例图模型结构。建立用例图模型结构。UMLUML用例图的建模用例图的建模1、找出系统中的角色和用例、找出系统中的角色和用例 创建用例图的第一项任务是找出要建立的系统模型中的角创建用例图的第一项任务是找出要建立的系统模型中的角色和用例。色和用例。这项任务通常是由与潜在用户会见的系统分析员完成的。这项任务通常是由与潜在用户会见的系统分析员完成的。在某些情况下,该任务还包括与顾客面对面的访谈,在访谈中在某些情况下,该任务还包括与顾客面对面的访谈,在访谈中可以提出问题,了解他们的需求。访谈过程中,可以多做些记可以提出问题,了解他们的需求。访谈过程中,可以多做些记录以备后用。在另外一些情况下,其他人会提供项目的业务需录以备后用。在另外一些情况下,其他人会提供项目的业务需求列表。对于这些业务需求,需要向提供者提出一些问题以得求列表。对于这些业务需求,需要向提供者提出一些问题以得到所需要的答案。这些需求和得到的答案将成为到所需要的答案。这些需求和得到的答案将成为创建用例图的创建用例图的笔记。笔记。UMLUML用例图的建模用例图的建模(续续)1)如何从系统中识别出角色)如何从系统中识别出角色1 1)谁使用系统的主要功能?)谁使用系统的主要功能?2 2)谁需要系统的支持以完成其日常工作任务?)谁需要系统的支持以完成其日常工作任务?3 3)谁负责维护、管理并保持系统正常运行?)谁负责维护、管理并保持系统正常运行?4 4)系统需要应付(或处理)哪些硬设备?)系统需要应付(或处理)哪些硬设备?5 5)系统需要和哪些外部系统交互?)系统需要和哪些外部系统交互?6 6)谁(或什么)对系统运行产生的结果感兴趣?)谁(或什么)对系统运行产生的结果感兴趣?这六个问题的答案往往包括了所有与系统具有关联的用户。这六个问题的答案往往包括了所有与系统具有关联的用户。进一步分析这些用户在与系统关联时担当的作用便可得到角色,进一步分析这些用户在与系统关联时担当的作用便可得到角色,角色以其职责来命名以提高模型的可理解性和维护性。角色以其职责来命名以提高模型的可理解性和维护性。UMLUML用例图的建模用例图的建模(续续)例例 ATM ATM自动柜员机大街上随处可见,人们也经自动柜员机大街上随处可见,人们也经常会与它打交道。常会与它打交道。ATMATM能代替出纳人员或银行出纳能代替出纳人员或银行出纳的业务,储户通过的业务,储户通过ATMATM可在可在2424小时内享受银行提供小时内享受银行提供的服务。当储户需要提款时,必须将银行签发的的服务。当储户需要提款时,必须将银行签发的信用卡插人到信用卡插人到ATMATM机中,键入正确的口令后才能够机中,键入正确的口令后才能够提款。通过回答上面六个问题,可识别出提款。通过回答上面六个问题,可识别出ATMATM机系机系统的主要角色统的主要角色.UMLUML用例图的建模用例图的建模(续续)UMLUML用例图的建模用例图的建模(续续)2)如何从系统中识别用例)如何从系统中识别用例 用例的获取用例的获取是需求分析阶段的主要任务之一。但对于一个大是需求分析阶段的主要任务之一。但对于一个大系统,要直接列出用例清单常常是十分困难的。这时可先列出系统,要直接列出用例清单常常是十分困难的。这时可先列出角角色清单色清单,再对每个角色列出它的用例,问题就会变得容易得多。,再对每个角色列出它的用例,问题就会变得容易得多。在识别出了角色之后,就可以通过回答下述问题来帮助在识别出了角色之后,就可以通过回答下述问题来帮助识别用例识别用例:每个角色的任务是什么?每个角色的任务是什么?有角色将要创建、存储、改变、删除、或读取系统中的信息吗?有角色将要创建、存储、改变、删除、或读取系统中的信息吗?什么用例会创建、存储、改变、删除、或读取这个信息?什么用例会创建、存储、改变、删除、或读取这个信息?角色需要通知系统外部的突然变化吗?角色需要通知系统外部的突然变化吗?系统需要通知角色正在发生的事情吗?系统需要通知角色正在发生的事情吗?什么用例将支持和维护系统?什么用例将支持和维护系统?UMLUML用例图的建模用例图的建模(续续)例例 对一个成绩管理系统进行需求分析,可识别出如下角色及对一个成绩管理系统进行需求分析,可识别出如下角色及其需求:其需求:学生学生(student):(student):浏览系统记录的成绩。浏览系统记录的成绩。授课教师授课教师(teacher):(teacher):使用系统为学生记录成绩、更新成绩、浏览成绩,并可使用系统为学生记录成绩、更新成绩、浏览成绩,并可通过计算机发布报告卡。通过计算机发布报告卡。管理人员管理人员(administrator):(administrator):负责创建报告卡,并浏览检查报告卡。负责创建报告卡,并浏览检查报告卡。UMLUML用例图的建模用例图的建模(续续)基于这些角色及其需求,通过回答前面的问题,可以建基于这些角色及其需求,通过回答前面的问题,可以建立如下用例:立如下用例:记录成绩(记录成绩(Record gradesRecord grades)更新成绩(更新成绩(update gradesupdate grades)生成报告卡(生成报告卡(generate report cardsgenerate report cards)检查报告卡(检查报告卡(check report cards)check report cards)分发报告卡(分发报告卡(distribute report cards distribute report cards)浏览成绩(浏览成绩(view grades)view grades)UMLUML用例图的建模用例图的建模(续续)Record gradesUpdate gradesGenerate reportcardsCheck report cardsDistribute report cardsView gradesUMLUML用例图的建模用例图的建模(续续)2、区分用例优先次序、区分用例优先次序 这项任务通常是由系统分析人员完成,他们对哪一项任务这项任务通常是由系统分析人员完成,他们对哪一项任务最关键,哪一项任务最艰巨有最好的全局认识。他们还可以确最关键,哪一项任务最艰巨有最好的全局认识。他们还可以确定出哪个用例可以为其他用例所重用。在上例中,可以提出以定出哪个用例可以为其他用例所重用。在上例中,可以提出以下优先次序列表:下优先次序列表:记录成绩记录成绩测览成绩测览成绩更新成绩更新成绩生成报告卡生成报告卡检查报告卡检查报告卡分发报告卡分发报告卡 某些用例必须在其他用例之前完成,因为它们之间要相互某些用例必须在其他用例之前完成,因为它们之间要相互依赖。例如,在系统更新成绩之前,必须记录成绩。因此很明依赖。例如,在系统更新成绩之前,必须记录成绩。因此很明显,显,Record GradesRecord Grades是最重要的用例。是最重要的用例。UMLUML用例图的建模用例图的建模(续续)3、构建用例图模型、构建用例图模型 将已确定并细化的参与者和用例放入用例图。此将已确定并细化的参与者和用例放入用例图。此时,再借助关联(包含和扩展)和泛化的关系给出用时,再借助关联(包含和扩展)和泛化的关系给出用例之间的结构模型。对前面使用的成绩管理系统示例例之间的结构模型。对前面使用的成绩管理系统示例而言,下图就是最终建立的用例图模型。而言,下图就是最终建立的用例图模型。UMLUML用例图的建模用例图的建模(续续)分别用分别用Rational Rose Rational Rose 和和VisioVisio建模工具创建如下用例图建模工具创建如下用例图成绩管理系统用例图成绩管理系统用例图第二章第二章 用例和用例图用例和用例图UML用例图的作用用例图的作用UML用例图组成用例图组成UML用例图的建模用例图的建模用例图建模实例用例图建模实例案例案例-超市进销存系统用例图建模超市进销存系统用例图建模(1)销售)销售 售货员接收顾客订购,输入顾客购买的商品,计算总价;售货员接收顾客订购,输入顾客购买的商品,计算总价;顾客付款并接收清单;顾客付款并接收清单;售货员保存顾客购买商品的记录清单。售货员保存顾客购买商品的记录清单。1.超市进销存系统的需求描述超市进销存系统的需求描述案例案例-超市进销存系统用例图建模超市进销存系统用例图建模(2)库存)库存 库存管理员每天进行盘点一次;库存管理员每天进行盘点一次;库存管理员当发现库存商品有损坏时,及时到相关部门库存管理员当发现库存商品有损坏时,及时到相关部门 报损;报损;在供应商的商品到货时,库存管理员首先检查商品是否在供应商的商品到货时,库存管理员首先检查商品是否 合格,并将合格的商品入库处理;当商品进入卖场时,合格,并将合格的商品入库处理;当商品进入卖场时,进行商品出库处理;进行商品出库处理;经理、订货员根据需要进行库存商品的模糊查询或详细经理、订货员根据需要进行库存商品的模糊查询或详细 查询。查询。案例案例-超市进销存系统用例图建模超市进销存系统用例图建模 (3)订货订货 订货员用新商品供应商信息更新供应商数据库的信息;订货员用新商品供应商信息更新供应商数据库的信息;订货员统计库存商品是否低于库存下限,然后制作订货订货员统计库存商品是否低于库存下限,然后制作订货 单。单。(4)统计统计 经理能够使用系统的统计功能,了解商品销售情况、库经理能够使用系统的统计功能,了解商品销售情况、库存情况、供应商情况,以便进行合理的营销策略。存情况、供应商情况,以便进行合理的营销策略。经理按市场情况适时变动商品价格。经理按市场情况适时变动商品价格。案例案例-超市进销存系统用例图建模超市进销存系统用例图建模2.2.建立超市进销存系统的用例图模型建立超市进销存系统的用例图模型 在系统需求分析中需考虑:系统用例图模型需要哪些视在系统需求分析中需考虑:系统用例图模型需要哪些视图,每个视图包含什么内容?视图中成员是否需构成包?图,每个视图包含什么内容?视图中成员是否需构成包?超市进销存管理系统按其业务功能分成超市进销存管理系统按其业务功能分成订货订货、销售销售、库库存存和和统计统计四部分,这些职能对应于系统不同组织部门。四部分,这些职能对应于系统不同组织部门。案例案例-超市进销存系统用例图建模超市进销存系统用例图建模 1 1)系统角色)系统角色 超市服务的对象是顾客,超市系统内部员工可以按人员超市服务的对象是顾客,超市系统内部员工可以按人员的职能来分类。下图是超市进销存管理系统角色分析的用例的职能来分类。下图是超市进销存管理系统角色分析的用例图。其中,角色图。其中,角色“员工员工”和和“管理员管理员”是抽象角色。是抽象角色。案例案例-超市进销存系统用例图建模超市进销存系统用例图建模2)超市进销存管理系统的顶层用例图)超市进销存管理系统的顶层用例图案例案例-超市进销存系统用例图建模超市进销存系统用例图建模3)销售管理子系统的用例图)销售管理子系统的用例图案例案例-超市进销存系统用例图建模超市进销存系统用例图建模4)订货管理子系统的用例图)订货管理子系统的用例图案例案例-超市进销存系统用例图建模超市进销存系统用例图建模5)库存管理子系统的用例图)库存管理子系统的用例图案例案例-超市进销存系统用例图建模超市进销存系统用例图建模6)统计分析子系统的用例图)统计分析子系统的用例图案例案例-超市进销存系统用例图建模超市进销存系统用例图建模7)身份验证子系统的用例图)身份验证子系统的用例图