UML基础与建模实践:6、第六章 用例图_第1页
UML基础与建模实践:6、第六章 用例图_第2页
UML基础与建模实践:6、第六章 用例图_第3页
UML基础与建模实践:6、第六章 用例图_第4页
UML基础与建模实践:6、第六章 用例图_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

UML基础与建模实践

第六章用例图

主讲人:内容摘要什么是用例图1参与者与用例2参与者之间的关系3用例之间的关系4参与者与用例之间的关系5内容摘要组织用例7用例规格描述8活动图的分类9用例建模要点10小结与习题116.1什么是用例图1.用例图 用例图是描述用例、参与者及其关系的图。与所有UML的其他图一样,用例图可以包括注释、约束。2.用例图的作用3.用例图的组成元素6.2参与者与用例参与者是系统外部的一个实体,它以某种方式与系统交互,请求系统执行用例,以获得参与者需要实现的目标。6.2.1参与者的表示1.参与者的表示参与者有两种表示方法,如图6-2所示。图6-2参与者的两种表示法2.参与者分类

参与者可能是人、其他系统、硬件设备、时钟。对参与者有以下两种分类方法。

(1)按参与者本身的性质分

(2)按参与者的重要性分3.参与者和角色6.2.2用例的表示用例是对一组场景共同行为的描述,场景就是用例的一次完整的、具体的执行过程。6.2.2用例的表示1.场景下面列举一个场景例子。 一个场景就是描述用户与系统之间的一系列交互活动,描述了系统一次具体执行的行为路径,即一次完整的事件流。如小刘通过银行柜员机(ATM系统)取款3000元的场景,如图6-3所示。图6-3小刘取款场景6.2.2用例的表示 图6-3是小刘取款3000元的场景,我们可以想象,还有小李取款2000元,小陈取款6000元的场景,所有这些取款行为是一样的。只是输入的密码,取款数量不同,步骤是一样的。我们对所有取款场景的共同特征进行抽象,就是“取款”用例。用例是对一组类似场景的共同行为的描述,每个场景是用例的一次具体执行。6.2.2用例的表示2.用例的表示 在UML表示法中,用例用一个带标签的椭圆形表示,这个标签描述了参与者的目标。参与者与用例之间用直线表示,直线表示了参与者与用例间的通信。用例可以连接到一个或者多个参与者。例如,客户在与ATM系统的交互过程中,客户的目标之一是向账户中存款。如图6-4所示给出了存款用例的表示方法。图6-4客户、存用例和通信链接6.3参与者之间的关系6.3.1识别参与者开发者通过回答下面问题来寻找参与者:(1)系统支持哪些用户组完成他们的工作?(2)哪些用户执行系统的主要功能?(3)那些用户执行次要功能?比如谁维护或管理?(4)与系统进行交互的外部硬件和软件系统有哪些?6.3.2参与者间的关系参与者是一种类,因此,可以将参与者之间的关系进行泛化。实现参与者泛化可以简化模型,并使模型更简洁。6.3.2参与者间的关系例如,在软件系统开发过程中,系统分析师(子类)和项目经理(子类)都属于系统设计师(父类),他们都能承担系统设计师的工作。用UML图表示他们之间的关系,如图6-6所示。。图6-6参与者是泛化关系6.4用例之间的关系UML有3种用例关系:<<include>>、<<extend>>和泛化。下面将详细讨论这3种关系。6.4.1包含关系如图6-7所示,“取款”、“存款”、“查询余额”3个用例都要求用户登录到ATM系统。为了有效的组织用例,我们可以从上面3个用例中抽取共同的行为(事件流中1~4步),创建一个单独的名称为“登录账户”的用例,由这个用例执行公共行为,然后在其他用例中共享这个用例。图6-7取款、存款和查询余额用例6.4.1包含关系我们把公共行为从3个用例中抽出,单独封装为“登录帐户”用例,这时,原先的3个用例就分成了4个用例,如图6-8所示。图6-8从3个用例中提取“登录帐户”用例Usecase:存款事件流:1.include(登录帐户)。。。Usecase:查询余额事件流:1.include(登录帐户)。。。Usecase:取款事件流:1.include(登录帐户)。。。Usecase:登录帐户事件流:用户插入ATM卡系统提示用户输入密码用户输入密码系统验证用户密码。。。6.4.1包含关系包含是指一个用例调用另一个用例,被调用的用例称为包含用例,调用包含用例的用例是基用例。在UML中,用例间的包含关系用构造型《include》表示,它是指在基用例内部的某一个位置上显式地调用另一个用例。在包含用例关系中,箭头由基用例指向包含用例。6.4.1包含关系例如,在ATM系统中,多个用例都调用了包含用例“登录账户”,比如“取款”、“存款”和“查询余额”等用例都调用了包含用例“登录账户”,如图6-9所示。图6-9组织用例6.4.2扩展关系如果两个用例相似,其中,A用例由较小的行为集合构成,B用例由较大的行为集合构成,B用例的行为集合包含了A用例的行为集合,B用例减去A用例的行为集合后,剩余部分在一定条件下才执行。这时,我们可以把A用例定义为基用例,把B用例中减去A用例后的剩余部分定义为扩展用例。在UML中,用例间的扩展关系用构造型《extend》表示(箭头方向是从扩展用例指向基用例),它表示基用例在某个条件成立时执行扩展用例。6.4.2扩展关系例如,ATM系统中,当客户取款时,若取款金额大于正常数额,这时,ATM系统就会调用“超额取款”用例。用UML表示“超额取款”这种可选行为。如图6-10所示。图6-10扩展关系6.4.3泛化关系在UML中,用例的泛化关系和类图中的泛化关系是一样的。用例的泛化就是指父用例的行为被子用例继承或覆盖。6.4.3泛化关系例如,在ATM系统中,对于支付账单用例来说。我们可以定义两个子用例,用例“支付账单”有两个子用例“信用卡支付”和“现金支付”。如图6-12所示。图6-12泛化关系6.5参与者与用例之间的关系参与者与用例之间是关联关系,表示了参与者与用例间的通信,这里的通讯是双向的。用一条实线箭头表示,由参与者指向用例。6.6组织用例 从用户的角度看,有的用例就是用户的最终目标,我们把能实现用户目标的用例称为基本用例;把辅助用户实现目标的用例称为抽象用例。总之,基本用例是指那些对用户而言有价值的用例,用户执行基本用例后能直接实现用户的目标;抽象用例包括扩展用例和包含用例。 一旦识别出系统中的一组用例后,我们就对这组用例进行比较,把从一组用例中公共的行为抽取出来封装为包含用例;若某些用例比其它用例多出一些行为,我们就把多6.6组织用例出的行为封装为扩展用例。这样,系统就由一组基本用例、包含用例和扩展用例组成。基本用例可以直接由参与者实例化,他本身可以实现用户观测到的价值;包含用例和扩展用例由基本用例实例化。 场景分为普通场景和可选场景。基本用例可以用来表示普通场景;而一个扩展用例可以展示可选场景。6.6组织用例如图6-14所示给出了一部分ATM系统的用例模型。“取款”是一个基本用例,因为他是用户成功登录系统后的普通场景,它指定交易类型并输入取款的有效金额。“超额取款”属于抽象用例(扩展用例,该用例是为基本用例服务的)。图6-14基本用例中的扩展点6.6组织用例参与者可能只直接调用基本用例,由基本用例对抽象用例进行实例化(实例化指执行用例的过程)。抽象用例是从其他用例中提取出来的部分组成,其中基本用例就像是主程序,抽象用例类似于子程序。6.6组织用例如图6-15所示,我们将ATM系统分解为基本用例(取款、存款和转账)和抽象用例(登录帐户、超额取款)两类,三个基本用例与“登录帐户”用例是包含关系,“取款“用例与“超额取款”用例是扩展关系。客户实例化三个基本用例,由基本用例实例化2个抽象用例。图6-15用关系组织用例6.7用例规格描述用例模型显示了系统能做什么以及谁使用系统,然而,用例并没有描述系统具体执行的细节。只有用例规格描述才对用例的详细执行流程进行了描述。用例规格描述中的事件流描述了用例执行时的具体流程。6.7.1事件流为了全面描述一个用例的详细流程,用例描述应该包括的关键要素是:用例何时开始(前置条件)、何时结束(后置条件)、参与者何时与用例交互、交互了什么信息,以及用例执行的基本事件流和扩展事件流。6.7.1事件流事件流就是用例执行时,由一序列活动组成的控制流。事件流分为基本事件流和扩展事件流两种。事件流模型如图6-16所示。图6-16事件流模型6.7.2用例模板用例描述有两种格式:一种是自然语言格式,另一种是表格形式。 表6-1所示就是一个经典的表格形式,其中用斜体字显示的项目是必须编写的部分。表6-1用例描述模板用例编号为用例制定一个唯一的编号,通常格式为UCxx用例名称应为一个动词短语,让读者一目了然地知道用例的目标用例概述用例的目标,一个概要性的描述范围用例的设计范围主参与者该用例的主参与者(Actor),在此列出名称,并简要地描述它次要参与者该用例的次要参与者(Actor),在此列出名称,并简要地描述它项目相关人利益说明项目相关人利益项目相关人员名称从该用例获取的利益…………前置条件即启动该用例所应该满足的条件后置条件即该用例完成之后,将执行什么动作成功保证描述当前目标完成后,环境变化情况基本事件流步骤活动1在这里写出触发事件到目标完成以及清除的步骤2……(其中可以包含子事件流,以子事件流编号来表示)扩展事件流1a1a表示是对1的扩展,其中应说明条件和活动1b……(其中可以包含子事件流,以子事件流编号来表示)子事件流对多次重复的事件流可以定义为子事件流,这也是抽取被包含用例的地方规则与约束对该用例实现时需要考虑的业务规则、非功能需求、设计约束等6.7.3用例优先级 根据系统的规模,应该首先开发那些在架构上非常重要的用例,其次,开发那些可选的或者重要性相对较低的用例。下面的因素通常可能会提高用例的优先级。用例在架构上的重要性;使用了未经测试的新技术;需要仔细研究的问题;能够比较明显地提高业务处理效率(或者收益);支持主要业务过程的用例。

6.7.4用例粒度用例的粒度,就是用来描述用户目标大小的程度。从大到小可将用例分成3个层次,即概述级、用户目标级和子功能级。下面以读者阅读图书为例,说明用例的3个级别。6.7.4用例粒度1.概述级 概述级是指参与者把整个系统看成一个用例,如图6-17所示。图6-17概述级6.7.4用例粒度2.用户目标级 用户目标级是对概述级进一步细化,如图6-18所示。图6-18用户目标级还书借书读者6.7.4用例粒度3.子功能级 子功能级是对用户目标级用例的进一步细化,如图6-19所示。图6-19子功能级还书借书读者身份验证《include》《include》6.8用例描述实例用例模板有各种格式。自20世纪90年代早期以来,使用最为广泛的格式是alistair.cockburn.us上提供的模板,该模板由AlistairCockburn创建,他是用例建模方法和畅销书的作者。6.8用例描述实例下面的用例描述就是采用这种风格 用例UC1:处理销售范围:NextGenPOS应用级别:用户目标主要参与者:收银员涉众及其关注点:-收银员:希望能够准确、快速地输入,而且没有支付错误,因为如果少收贷款,将从其薪水中扣除。6.8用例描述实例-售货员:希望自动更新销售提成。-顾客:希望以最少代价完成购买活动并得到快速服务。希望便捷、清晰地看到所输入的商品项目和价格。希望得到购买凭证,以便退货。-公司:希望准确地记录交易,满足顾客要求.希望确保记录了支付授权服务的支付票据。希望有一定的容错性,即使在某些服务器构件不可用时(如远程信用卡验证),也能够完成销售。希望能够自动、快速地更新帐务和库存信息。6.8用例描述实例-经理:希望能够快速执行超控操作,并易于收银员的不当操作。-政府税收代理:希望能从每笔交易中抽取税金。可能存在多级税务代理,比如国家级、州级和县级。-支付授权服务:希望接受到格式和协议正确的数字授权请求。希望准确计算对商店的应付款。前置条件:收银员必须经过确认和认证。

6.8用例描述实例后置条件:存储销售信息。准确计算税金。更新帐务和库存信息。记录提成。生成票据。记录支付授权的批准。基本流程:1、顾客携带所购商品或服务到收银台通过POS机付款。2、收银员开始一次新的销售交易。3、收银员输入商品条码。

6.8用例描述实例4、系统逐条记录出售的商品,并且显示该商品的描述、价格和累积额。价格通过一组价格规则来计算。收银员重复3~4步,直到输入结束。5、系统显示总额和所计算的税金。6、收银员告知顾客总额,并请顾客付款。7、顾客付款,系统处理支付。8、系统记录完整的销售信息,并将销售和支付信息发送到外部的帐务系统(进行帐务处理和提成)和库存系统(更新库存)。

6.8用例描述实例9、系统打印票据。10、顾客携带商品和票据离开(如果有)。扩展事件流(下面是部分扩展事件流):1a.经理在任意时刻要求进行的操作: 1.系统进入经理授权模式。2.经理或收银员执行某一经理模式的操作。例如,变更现金结余,恢复其他登录者中断的销售交易,取消销售交易等。3.系统回到收银员授权模式。

6.8用例描述实例1b.系统在任意时刻失败: 为了支持恢复和更正帐务处理,要保证所有交易能够从任何一个中断点上完全恢复。 1、收银员重启系统、登录、请求恢复上次状态。 2、系统重建上次状态。2a.客户或经理需要恢复一个中断的销售交易 1、收银员执行恢复操作,并且输入销售ID,以提取对应的销售交易。 2、系统显示被恢复的销售交易状态及其金额合计。6.8用例描述实例3a.未发现对应的销售交易。 1、系统向收银员提示错误。 2、收银员可能需要建立一个新的销售交易,并重新输入所有商品。2b.系统内不存在该商品ID,但是该商品附有价签。 1、收银员请求经理执行超级别操作。 2、经理执行相应的超级别操作。 3、收银员选择手工输入价格,输入商品标签上的价格,并且请求对该价目进行标准计税。6.8用例描述实例

温馨提示

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

评论

0/150

提交评论