




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 用例建模5.1 用例的基本概念 什么是用例用例(use case)是一种建模技术,用于描述新系统应该具备的功能,或者描述一个已有系统已经具备的功能。用例规定了一个动作序列(可以有多种实现),系统可以执行这些动作并产生出一个对于特定活动者有价值的可见结果。 为什么使用用例 用例提供了一种捕获功能需求的系统而且直觉的方法。 用例驱动整个开发过程。5.2 用例中的有关概念用例模型的主要组件:用例、参与者以及被建模的系统。创建用例模型的过程: 定义系统; 发现参与者和用例; 描述用例; 定义用例之间的关系; 对模型进行确认操作。5.2.1 系统与系统边界系统边界是一个系统所包含的所有成分与系统
2、以外的各种事物的分界线。这里所说的系统是指被开发的计算机软硬件系统。Insurance Business图5.1 在用例模型中的系统5.2.2 参与者 参与者的概念参与者(Actor)是与该系统打交道的人或者其他系统。 参与者的分类主要参与者(Primary actor):使用该系统基本功能的参与者。次要参与者(Secondary actor):使用该系统次要功能的参与者。主动参与者(Active actor):该参与者负责初始启动用例。被动参与者(Passive actor):该参与者永远不会初始启动用例,而只是参与系统中的一个或多个用例而已。 发现参与者· 谁将使用该系统的主要功
3、能(主要参与者)?· 谁将需要该系统的支持以完成他们的日常工作?· 谁将需要维护、管理该系统,以及保持系统处于工作状态(次要参与者)?· 系统需要处理哪些硬件设备?· 系统需要与哪些其他系统打交道?· 谁或什么系统对本系统产生的结果感兴趣? UML中的参与者ActorInsurance AgentInsurance Agent图5.2 参与者的表示方法 参与者之间的关系泛化关系CustomerPersonal Visit CustomerTelephone Customer(a)Suppliers AgentRestockerCollector
4、(b)图5.3 参与者之间的泛化关系5.2.3 用例 用例的定义UML中的用例定义是:系统执行的一组动作序列,这些动作可以产生一个特定参与者可观察的数值结果。 用例的特征 用例总是由参与者启动的; 用例为参与者提供数值; 用例是完整的。用例通过关联与参与者相连,这种关联也称为通信关联(Communication Association)。用例是一个类,而不是一个实例。 发现用例· 参与者要求系统提供哪些功能?参与者需要做什么?· 参与者需要读取、创建、销毁、修改或存储系统中的某种信息吗?· 需要通知参与者系统中发生的事件吗?或者参与者需要向系统通知某种事情吗?这些
5、事情在功能上代表什么内容?· 利用系统的新功能,参与者的日常工作是否可以被简化或者提高效率?· 系统需要的输入/输出是什么?从哪里获取这些输入,系统的结果输出到哪里?· 系统当前实现版本的主要问题是什么? UML中的用例用例A用例B用例C用例名称通信关联系统名称参与者名称图5.4 用例的表示方法 用例之间的关系· 泛化关系(Generalization Relationship):子用例可以从父用例继承行为和含义。· 扩展关系(Extension Relationship):一个用例是通过向另一个用例添加一些行为,扩展而成的。· 包含
6、关系(Inclusion Relationship):一个用例包含另一个用例中定义的行为。· 分组关系(Grouping Relationship):当多个用例都处理类似的功能,或以某种方式相互关联时,就可以将它们捆绑到一个UML包内。 扩展关系RestockRestock according to salesextends图5.5 一个扩展关系BorrowBookFindBookextendIssueFineLiabrarianReturnBookExtension pointOverdueBook图5.6 一个扩展关系 包含关系Identify customerWithdrawa
7、lUpdate passwordincludeinclude图5.7 包含关系示例ChangePersonDetailsSearchPersonViewPersonDetailsincludeincludeDeletePersonDetailsUserinclude图5.8 包含关系示例 泛化关系Search PersonSearch TeacherSearch Student图5.9 泛化关系示例5.3 描述用例用例的描述专注于系统的外在行为,而忽略系统内部是如何实现的。用例的文本描述:· 用例的目标;· 用例如何被启动;· 参与者和用例之间的消息流;·
8、; 用例的其他流程;· 用例如何结束并向参与者传递数值。例:订单处理系统RequestConsignmentCancel ConsignmentRequestReturn GoodProcessingValidatePurchasingReturn OrderItemsCancel OrderAccept OrderQuery InventoryShippingCancel Order DetailQueryInput OrderLoan AccountOrder Processing SystemTelephone AgentsCredit AuthorizationAgencie
9、sA productWarehousesystemA shippingsystemTelephoneAgentsA productWarehousesystem图5.10 订单处理系统的用例图该系统包含如下参与者:· 电话代理(telephone agents);· 信用授权机构(credit authorization agencies);· 产品仓库系统(a product warehouse system);· 货运系统(a shipping system)。用例可以通过考虑参与者与系统之间的交互来获取。系统与电话代理的交互:· 输入订单
10、;· 取消订单;· 取消订单明细;· 查询。系统与信用授权机构的交互:· 确认购买;· 贷款账户。系统与产品仓库系统的交互:· 请求发货;· 取消发货请求;· 退货处理;· 查询库存;· 接受订货;系统与货运系统的交互:· 运送货物;· 退回订单物品。Buy SodaRestockCollectCustomerSuppliers RepresentativeCollectorSoda Machine图5.11 饮料销售机的用例图用例也可以用活动图描述。将硬币投入机器检查是否已
11、经投入足够的硬币显示可以选择饮料挑选饮料交付饮料显示不能得到饮料不能得到饮料可得到饮料饮料消费者图5.12 用于描述参与者和用例之间交互的活动图客户将卡插入ATM机,开始用例。 ATM显示欢迎消息并提示客户输入密码。客户输入密码。 ATM确认密码有效。如果无效则执行其他事件流A1。如果与主机联接有问题,则执行异常事件流E1。 ATM提供以下选项:存钱,取钱,查询 。 用户选择取钱选项。 ATM提示输入所取金额。 用户输入所取金额。 ATM确定该帐户是否有足够的金额。如果余额不够,则执行A2,如果与主机联接有问题,则执行异常事件流E1。 ATM从客户帐户中减去所取金额。 ATM向客户提供要取的钱
12、。 ATM打印清单。 ATM退出客户的卡,用例结束其他事件流A1:输入无效密码 ATM告诉客户该密码错误。 ATM退出客户的卡,用例结束。其他事件流A2:余额不足 ATM告诉客户该帐户余额不足。 ATM退出客户的卡,用例结束。 异常事件流E1:联接主机出现错误 ATM告诉客户联接主机出现错误。 ATM在错误日志记下错误。 ATM退出客户的卡,用例结束。 事后条件:无5.4 测试用例两种类型的测试:验证(Verification)和确认(Validation)。5.5 实现用例实现一个用例:将该用例描述中那些不同步骤和动作转换为各个类、类的操作以及这些类之间的关系。Class BOper1()Oper2()Oper3()etcClass AOper1(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论