1、1第第3 3章章 软件需求的软件需求的 用例建模方法用例建模方法 邮购系统的业务过程陈述(工作流):邮购系统的业务过程陈述(工作流):n公司的目标是为公司的所有注册会员提供高质量的邮购服务。公司的目标是为公司的所有注册会员提供高质量的邮购服务。n任何个人或公司只要完成注册表单并将其发送到客户服务部任何个人或公司只要完成注册表单并将其发送到客户服务部 门,成为会员。门,成为会员。n会员可以通过填写订购表单并将其发送给客服部门进行订购。会员可以通过填写订购表单并将其发送给客服部门进行订购。n客服部门验证会员资格,将订单转给销售部门。客服部门验证会员资格,将订单转给销售部门。n库存有货,销售部门处理
2、订单,并将发货单存给库存部门。库存有货,销售部门处理订单,并将发货单存给库存部门。n库存无货,销售部门向供应商发送购货单。库存无货,销售部门向供应商发送购货单。n购买的货物到后,入库,库存部门将货物交给该会员,财务购买的货物到后,入库,库存部门将货物交给该会员,财务 部门将发票给会员。部门将发票给会员。n财务部门收到供应商的物品及发票,验证合格后,将货款打财务部门收到供应商的物品及发票,验证合格后,将货款打 给供应商。给供应商。回顾回顾:邮购的业务过程分析邮购的业务过程分析2 客户客户 客户服务部客户服务部 销售部门销售部门 库存部门库存部门 财务部门财务部门填写订填写订货表单货表单有库存有库
3、存处理订单处理订单下订单下订单填写注填写注册表单册表单注册会员注册会员订货订货发送货物发送货物接受货物接受货物发送发发送发货单货单接受发接受发货单货单发出发出货款货款无库存无库存邮购公司业务活动图邮购公司业务活动图回顾回顾:邮购的业务过程分析邮购的业务过程分析下面要进行什么分析下面要进行什么分析?软件需求软件需求?34u 回顾需求的活动回顾需求的活动u 用例图和用例的描述用例图和用例的描述 重点重点内容内容 什么是用例什么是用例?用例图包括哪些内容用例图包括哪些内容?用例的文字描述的步骤用例的文字描述的步骤?4 53.1 3.1 需求需求(requirement)(requirement)与需
4、求的活动与需求的活动需求需求就是要获得系统提供的所有服务就是要获得系统提供的所有服务,是是“做什么做什么”软件需求包括五个层次:软件需求包括五个层次:u 业务需求业务需求u 用户需求用户需求u 功能和非功能需求功能和非功能需求u 环境、约束的需求环境、约束的需求u 接口的需求接口的需求需求分析阶段的活动需求分析阶段的活动 产出物产出物会议纪要会议纪要讨论纪要讨论纪要分析模型分析模型需求规格需求规格说明书说明书审核通过的审核通过的规格说明书规格说明书图图 3-1 3-1 需求分析阶段的活动需求分析阶段的活动 需求管理需求管理需需求求获取获取需求分析需求分析 与建模与建模规格规格说明说明需求需求验
5、证验证6用例的概念在用例的概念在19861986年年由由Ivar JacobsonIvar Jacobson正式正式提出之后被广泛接受,提出之后被广泛接受,迅速发展,已成为迅速发展,已成为OOOO、UMLUML、RUPRUP的标准规的标准规范和方法。范和方法。3.2 3.2 软件需求软件需求-用例建模技术用例建模技术 在结构化的软件需求在结构化的软件需求“系统做什么系统做什么?”的问题中的问题中,增增加三个词加三个词“for each userfor each user”,使问题变为使问题变为“系统应该系统应该为每为每个用户个用户做什么做什么?”,系统对系统对用用户有什么价值户有什么价值。7n
6、用例方法的思想:用例方法的思想:从从用户的角度用户的角度看,他们所关心的是系统所能看,他们所关心的是系统所能 提供的提供的服务服务,用户,用户使用使用系统完成不同的任务。系统完成不同的任务。通讯关联通讯关联图图 3-2 3-2 系统透视系统透视参与者参与者系统外部,并与系统外部,并与该系统发生交互该系统发生交互的人或其他系统。的人或其他系统。系统基本系统基本事件流。事件流。用例用例 3.2.1 3.2.1 什么是用例什么是用例 问问:一个自动饮料售货机的功能是什么一个自动饮料售货机的功能是什么?答答:通过自动饮料售货机购买一听饮料通过自动饮料售货机购买一听饮料(买饮料买饮料)。89参参与与者者
7、用用例例顾客顾客买饮料买饮料 收款员收款员收款收款供应商供应商提供饮料提供饮料图图 3-3 3-3 自动饮料售货机的用例图自动饮料售货机的用例图通信通信用例:站在用户角度定义软件系统的用例:站在用户角度定义软件系统的外部外部特征特征(1)(1)用例:是系统执行的用例:是系统执行的动作集合动作集合规格说明规格说明 (2)(2)用例的特征:用例的特征:n特定的角色特定的角色(particular actor)(particular actor)触发某些行为触发某些行为n行为序列行为序列(sequences of actions)(sequences of actions)n系统执行系统执行(sys
8、tem performs)(system performs)提供的服务提供的服务n可观测到的、有价值的结果可观测到的、有价值的结果(observable result of value)(observable result of value)。10用例分析技术用例分析技术 用例图用例图显示了系统的一组用例、用例的参与显示了系统的一组用例、用例的参与者及二者之间关系的图。者及二者之间关系的图。3.2.2 3.2.2 基本用例图基本用例图(use case diagram)(use case diagram)的组成的组成学生学生成绩管理员成绩管理员注册员注册员图图 3-4 3-4 简单大学用例图简
9、单大学用例图输入分数输入分数注册讨论班注册讨论班分发成绩单分发成绩单用例图的组成用例图的组成n参与者参与者(actor)(actor)n用例用例n系统边界(隐藏)系统边界(隐藏)n参与者与用例的参与者与用例的 通信关联通信关联 (communication association)1)1)参与者参与者 (actor)(actor)人与系统进行交互时能够担任的人与系统进行交互时能够担任的不同角色为不同角色为参与者参与者(actor)(actor)。11n参与者可以是人也可以是其他系统。参与者可以是人也可以是其他系统。n参与者是系统的真正用户参与者是系统的真正用户,但二者并不存在一对但二者并不存在
10、一对 一的对应。一的对应。n参与者访问系统是有级别的参与者访问系统是有级别的,可由系统功能而定。可由系统功能而定。确定参与者确定参与者(actor)(actor)n系统的主要客户是谁系统的主要客户是谁?n系统从什么地方得到信息系统从什么地方得到信息?n该系统与其他系统交互信息是什么该系统与其他系统交互信息是什么?n在某一个预定时间,自动发生什么事情在某一个预定时间,自动发生什么事情?特殊的参与者:系统时钟特殊的参与者:系统时钟 n利用该参与者利用该参与者触发系统的一类定时操作。触发系统的一类定时操作。如定时检测如定时检测 系统、资源使用情况、定期生成统计报表等,这些操系统、资源使用情况、定期生
11、成统计报表等,这些操 作并不是由外部的人或系统触发的。作并不是由外部的人或系统触发的。n从逻辑上,这一参与者应该被理解成是系统外部的,从逻辑上,这一参与者应该被理解成是系统外部的,由它来触发系统所提供的用例对话。由它来触发系统所提供的用例对话。系统时钟系统时钟周期性任务周期性任务 触发触发 图图 3-5 3-5 特殊的参与者特殊的参与者1213 在使用参与者为角色建模中是一种抽象,在使用参与者为角色建模中是一种抽象,不为具体的人、机构、系统建模。不为具体的人、机构、系统建模。注意注意图图 3-6 3-6 对职位建模对职位建模(不合理不合理)张助教张助教 输入分数输入分数分发成绩单分发成绩单刘老
12、师刘老师核对分数核对分数2)2)确定用例确定用例 用例描述一个事件发生用例描述一个事件发生,产生动作步骤的集合。产生动作步骤的集合。14(1)(1)基于参与者的方法基于参与者的方法 对每个参与者对每个参与者,识别出他们发起或参加识别出他们发起或参加 的执行过程。的执行过程。(2)(2)基于事件的方法基于事件的方法#识别出系统必须响应的外部事件;识别出系统必须响应的外部事件;#把事件与参与者和用例联系起来。把事件与参与者和用例联系起来。以编制好的以编制好的需求规格说明文档为基础需求规格说明文档为基础例:例:ATMATM系统的用例系统的用例n参与者:银行客户参与者:银行客户n用用 例:银行客户使用
13、自动提款机来进行银行例:银行客户使用自动提款机来进行银行 帐户的查询、提款和转帐交易帐户的查询、提款和转帐交易银行客户银行客户取款取款转帐转帐存款存款图图 3-73-7 ATM系统的用例图系统的用例图查询查询维护人员维护人员维护系统维护系统周期性操作周期性操作后台服务器后台服务器还有哪些用例还有哪些用例?还有哪些改进还有哪些改进?15ATMATM系统的系统的改进改进用例图用例图查询查询存、取款存、取款转帐转帐周期性任务周期性任务维护人员维护人员维护系统维护系统图图 3-8 3-8 改进的改进的ATMATM系统用例图系统用例图系统时钟系统时钟后台服务器后台服务器银行客户银行客户16系统的启动用例
14、系统的启动用例n几乎所有的几乎所有的 系统都包含系统都包含 一个系统启一个系统启 动用例。动用例。17出纳员出纳员购买商品购买商品 登录登录 启动启动退还商品退还商品管理用户管理用户 其他其他顾客顾客系统管理员系统管理员管理员管理员图图 3-93-9 POST系统部分用例图系统部分用例图这个用例有什么问题这个用例有什么问题?18 顾客顾客购买购买商品商品退还退还商品商品 商店商店 图图 3-113-11 以商店工作为系统边界以商店工作为系统边界 顾客顾客购买购买商品商品 登录登录退还退还商品商品 POST 出纳员出纳员 图图 3-103-10 以以POST工作为系统边界工作为系统边界 3)3)
15、边界的选择边界的选择 定义系统的边界是为了识别出什么在系统之内定义系统的边界是为了识别出什么在系统之内,什么在系统之外什么在系统之外,进而识别出什么是系统的职责。进而识别出什么是系统的职责。典型的系统边界包括典型的系统边界包括:硬件设备或硬件硬件设备或硬件/软件边界软件边界 一个组织中的部门或整个组织。一个组织中的部门或整个组织。3.2.3 3.2.3 用例图上的其他关系用例图上的其他关系n在在基本基本的用例图中,只需表述参与者和用例之间的的用例图中,只需表述参与者和用例之间的 通讯关系。通讯关系。n此外,还可以描述:此外,还可以描述:n参与者与参与者之间的参与者与参与者之间的泛化泛化关系关系
16、(generalization)(generalization)。n用例和用例之间的用例和用例之间的泛化泛化(generalization)(generalization)关系,关系,包含包含(include)(include)关系,关系,扩展扩展(extend)(extend)关系。关系。n利用这些关系来调整、优化用例模型,抽取公共的利用这些关系来调整、优化用例模型,抽取公共的 信息,便于复用和维护。信息,便于复用和维护。191)1)参与者之间的关系参与者之间的关系n参与者之间的参与者之间的泛化泛化(Generalization)(Generalization)关系关系actor 2acto
17、r 1普通用户普通用户常规操作常规操作管理操作管理操作配置操作配置操作系统维护员系统维护员管理员管理员客户客户电话登电话登记客户记客户上网登上网登记客户记客户用户用户常规操作常规操作管理操作管理操作配置操作配置操作系统维护员系统维护员管理员管理员图图 3-12 3-12 参与者的泛化关系参与者的泛化关系202)2)用例之间的关系用例之间的关系 (1)(1)泛化泛化(generalization)(generalization)关系关系n将它们的共性抽象成为父用例,其他的用例作为泛化将它们的共性抽象成为父用例,其他的用例作为泛化 关系中的子用例。关系中的子用例。n子用例继承了父用例所有的结构、行
18、为和关系。子用例继承了父用例所有的结构、行为和关系。采购员采购员采购物料采购物料采购采购钢材钢材采购办采购办公用品公用品图图 3-13 3-13 用例的泛化关系用例的泛化关系 买票买票 购买购买团体票团体票子用例子用例 付费方式付费方式支付支付现金现金 支付支付信用卡信用卡 购买购买个人票个人票父用例父用例21用例之间的关系用例之间的关系:(2)(2)包含包含(include)(include)n包包含关系是:含关系是:基用例指向被包含用例。基用例指向被包含用例。n语义:语义:基基用例会用到被包含用例,被包含用例的用例会用到被包含用例,被包含用例的 事件流被插入到事件流被插入到基基用例的事件流
19、中。用例的事件流中。银行客户银行客户 查询查询取款取款转帐转帐卡片验证卡片验证图图 3-14 3-14 用例的包含关系用例的包含关系 基用例基用例 被包含用例被包含用例n基用例不能独立存在基用例不能独立存在,必须依赖于被包含用例。必须依赖于被包含用例。n被包含用例一定要执行。被包含用例一定要执行。许多用例的公共许多用例的公共部分移到一个单部分移到一个单独的被包含用例中。独的被包含用例中。22 例例,包含关系的几种可能性包含关系的几种可能性图图 3-15 3-15 包含关系的几种可能性包含关系的几种可能性 1 12 23 34 423用例之间的关系:用例之间的关系:(3)(3)扩展扩展(exte
20、nd)(extend)n扩展关系是:扩展关系是:扩展用例指向基用例扩展用例指向基用例(被扩展用例被扩展用例)。一个用例中有许多替代一个用例中有许多替代物或选择时物或选择时,使用扩展关使用扩展关系系,管理变更。管理变更。呼叫转移呼叫转移银行客户银行客户打电话打电话呼叫等待呼叫等待图图 3-16 3-16 用例的用例的扩展扩展关系关系 n语义语义:基用例在基用例在某些特定某些特定情况下会用到扩展用例,扩情况下会用到扩展用例,扩 展用例的事件流将被插入到基用例的事件流中。展用例的事件流将被插入到基用例的事件流中。扩展用例扩展用例(可变部分可变部分)基用例基用例(不变部分不变部分)n基用例能独立存在基
21、用例能独立存在,不依赖于它的扩展用例。不依赖于它的扩展用例。n扩展用例可以不执行。扩展用例可以不执行。24例例:用例之间的关系:扩展用例之间的关系:扩展(extend)(extend)常规流:常规流:1 1 拨号拨号2 2 建立通话链路建立通话链路3 3 通话通话4 4 挂机挂机常规流:常规流:1 1 如果应答方如果应答方正忙正忙,用铃声提示应答方用铃声提示应答方 并保持拨号呼叫并保持拨号呼叫 常规流:常规流:1 1 如果应答方如果应答方无应答无应答,进行,进行呼叫转移呼叫转移打电话打电话呼叫等待呼叫等待呼叫转移呼叫转移实际上相当于第一个用例的实际上相当于第一个用例的“备选流备选流”25 扩展
22、关系的几种可能性扩展关系的几种可能性图图 3-17 3-17 扩展关系的几种可能性扩展关系的几种可能性 1 12 23 34 4 2627 登记登记 借书借书 查询读者查询读者查询读书查询读书参加考试参加考试补考补考 创建新账户创建新账户启动系统启动系统 删除账户删除账户 修改账户修改账户 登记借书登记借书 登记还书登记还书 验证读者验证读者例例,标出下面用例图上的关系标出下面用例图上的关系?图图 3-18 3-18 有包含关系和有包含关系和扩展关系扩展关系的用例图的用例图1 12728 提供客户数据提供客户数据 订货订货订货项目订货项目例例:查询查询存款存款打印收据打印收据既是既是扩展用例也
23、是被包含用例扩展用例也是被包含用例 查询查询存款存款打印收据打印收据打印收据打印收据分开表示分开表示 订货订货请求目录请求目录图图 3-18 3-18 有包含关系和有包含关系和扩展关系扩展关系的用例图的用例图2 22829例例:确定下面用例模型中的几种关系确定下面用例模型中的几种关系extend泛化泛化 include通信关联通信关联图图 3-19 3-19 用例模型中的几种关系用例模型中的几种关系 注册注册进大学进大学 注册注册讨论讨论班班在大学生中在大学生中注册家庭成员注册家庭成员在大学中注在大学中注册国际学生册国际学生 注册员注册员学生学生国际学生国际学生练习:举例说明用例的含包关系和扩
24、展关系的区别。练习:举例说明用例的含包关系和扩展关系的区别。基用例基用例3.2.4 3.2.4 用例的文字描述用例的文字描述Name of the Use Case(用例的名字用例的名字)Description (描述描述)Actor(s)(参与者参与者)Flow of events(事件流事件流)Basic flow(常规流常规流)Event 1(事件事件)Event 2 Alternate flow(备选流备选流)Pre-conditions (前置条件前置条件)Post-conditions (后置条件后置条件)用例用例 =椭圆椭圆 +名字?名字?NO!用例规约用例规约.用例模型用例模型
25、参与者参与者用例用例术语表术语表30在业务需求陈述的基础上在业务需求陈述的基础上:(1)(1)建立初始的用例图。建立初始的用例图。n确定参与者确定参与者n确定用例确定用例n建立参与者与用例的关联建立参与者与用例的关联(2)(2)进行用例的文字描述进行用例的文字描述(3)(3)细化用例细化用例n进一步标明用例间的包含、扩展、泛化关系进一步标明用例间的包含、扩展、泛化关系(4)(4)对用例进行分组,用包图表示。对用例进行分组,用包图表示。3.2.5 3.2.5 如何建立用例模型如何建立用例模型例例1 1 邮购系统邮购系统31n客户客户通过填写会员注册表单并将发送给公司经审批成为通过填写会员注册表单
26、并将发送给公司经审批成为会员会员。n会员在一年内无活动会员在一年内无活动,将会被删除。将会被删除。n会员的个人信息改变后会员的个人信息改变后,应通知应通知公司公司。n会员填写销售表单并发送给公司会员填写销售表单并发送给公司,会员可以订购了。会员可以订购了。n客户服务助理客户服务助理也可以通过电话方式处理订单。也可以通过电话方式处理订单。n客户服务助理检查会员资格的有效性后可将订购信息输入客户服务助理检查会员资格的有效性后可将订购信息输入 到系统。到系统。n库存握制员库存握制员负责对库存量的监管及订货。负责对库存量的监管及订货。n若订单有问题若订单有问题,会员电话联系服务助理会员电话联系服务助理
27、,并由助理追查销售并由助理追查销售 订单。订单。n会员可在会员可在3030天内退还次品天内退还次品,并取回货款。并取回货款。n系统执行的每项任务都会记录相关员工的名字和系统执行的每项任务都会记录相关员工的名字和IDID。邮购系统邮购系统用例级别的业务活动问题描述用例级别的业务活动问题描述32(1)(1)寻寻找参与者和用例找参与者和用例-建立初始的用例图建立初始的用例图检查订单状态检查订单状态下订单下订单处理订单处理订单处理退货处理退货安排发货安排发货更新会员记录更新会员记录归档会员资料归档会员资料注册新会员注册新会员订货订货接收货物接收货物发送货物发送货物库存控制员库存控制员客户服务助理客户服
28、务助理订单处理员订单处理员为什么没有客户、公司?为什么没有客户、公司?33(2)(2)描述用例描述用例-处理订单的用例描述处理订单的用例描述用例名称用例名称处理订单处理订单参与者参与者订单处理员订单处理员描述描述订单处理员从系统中选择一个销售单,检查每一订单处理员从系统中选择一个销售单,检查每一订单项有货的话,系统记录处理该销售单的订单订单项有货的话,系统记录处理该销售单的订单处理员的姓名处理员的姓名前提条件前提条件销售单保存在系统中销售单保存在系统中后置条件后置条件销售单状态变为销售单状态变为“已填已填”,该销售单持有相应的库,该销售单持有相应的库存项存项事件流事件流(1)(1)订单处理员选
29、择销售单,订单处理员选择销售单,系统显示订单项及数量系统显示订单项及数量(2)(2)订单处理员检查每项是否有库存订单处理员检查每项是否有库存(3)(3)订单处理员为销售单提取库存项,系统将销售订单处理员为销售单提取库存项,系统将销售 单状态修改为单状态修改为“已填已填”34(2)(2)描述用例描述用例-处理订单的用例描述处理订单的用例描述用例名称用例名称处理订单处理订单可选流和可选流和例外流例外流如果库存无某项,则订单项状态为如果库存无某项,则订单项状态为“持有持有”。如果再订购量超过该会员的再订购限制,员工打如果再订购量超过该会员的再订购限制,员工打印出印出“请求订金请求订金”给会员,该销售
30、单被标为给会员,该销售单被标为“订订金待金待交交”。当接收到订金或再订购总量没有超过会员的再订当接收到订金或再订购总量没有超过会员的再订购限制,系统会将再订购请求交给库存控制员。购限制,系统会将再订购请求交给库存控制员。当接收到库存项销售单时状态变为当接收到库存项销售单时状态变为“已填已填”,系,系统统通知订单处理员。通知订单处理员。35(3)(3)进一步细化用例图进一步细化用例图检查订单状态检查订单状态下订单下订单处理订单处理订单处理退货处理退货安排发货安排发货更新会员记录更新会员记录归档会员资料归档会员资料注册新会员注册新会员订货订货接收货物接收货物发送货物发送货物库存控制员库存控制员客户
31、服客户服务助理务助理订单处理员订单处理员搜索会员记录搜索会员记录includeincludeincludeinclude处理再订购处理再订购36(4)(4)用包封装用例用包封装用例检查订单状态检查订单状态下订单下订单处理订单处理订单处理退货处理退货安排发货安排发货更新会员记录更新会员记录归档会员资料归档会员资料注册新会员注册新会员订货订货接收货物接收货物发送货物发送货物库存控制员库存控制员客户服客户服务助理务助理订单处理员订单处理员搜索会员记录搜索会员记录includeincludeincludeinclude会员会员订单处理订单处理库存控制库存控制处理再订购处理再订购37例例2 2 餐馆预约
32、系统餐馆预约系统 (1)(1)记录预约信息记录预约信息 (2)(2)取消预约取消预约 (3)(3)记录顾客到来记录顾客到来 (4)(4)调换餐桌调换餐桌 参与者参与者:招待员、领班招待员、领班Record bookingCancel bookingRecord arrivalTable transferReceptionistHead Waiter记录预约的用例记录预约的用例:一位顾客打电话进行定餐预约要求的日期和时间一位顾客打电话进行定餐预约要求的日期和时间及人数确定有合适的餐桌位置后及人数确定有合适的餐桌位置后,招待员招待员输入顾客性名输入顾客性名和电话并和电话并记录预约记录预约。餐馆餐馆
33、系统系统用例用例38记录预约事件流记录预约事件流:(1)(1)招招待员输入要预定的日期待员输入要预定的日期;(2)(2)系统显示该日的预约系统显示该日的预约;(3)(3)有合适的餐桌可用有合适的餐桌可用,招招待员输入顾客性名和电话、待员输入顾客性名和电话、时间时间;(4)(4)系统记录并显示该预约。系统记录并显示该预约。记录预约记录预约,没有可用的餐桌没有可用的餐桌:可选可选的事件流的事件流:(1)(1)招招待员输入要求的预约的日期待员输入要求的预约的日期;(2)(2)系统显示该日的预约系统显示该日的预约;(3)(3)没有合适的餐桌可用没有合适的餐桌可用,用例结束。用例结束。39记录预约记录预
34、约,餐桌过小餐桌过小:例外例外的事件流的事件流:(1)(1)招招待员输入要预定的日期待员输入要预定的日期;(2)(2)系统显示该日的预约系统显示该日的预约;(3)(3)招招待员输入顾客性名和电话待员输入顾客性名和电话,预约时间预约时间,用餐人数和用餐人数和 餐桌号餐桌号;(4)(4)用餐人数多于餐桌能容纳的人数用餐人数多于餐桌能容纳的人数,系统系统显示警告显示警告并询并询 问用户是否继续预约问用户是否继续预约;(5)(5)回答回答“否否”,用例终止用例终止;(6)(6)回答回答“是是”,预约被输入预约被输入,并附有告警标志。并附有告警标志。40注意几点注意几点:(1)(1)事件流事件流记录用户
35、输入到系统的信息记录用户输入到系统的信息,是用例的基本是用例的基本 部分部分,不是信息如何获得的。不包含上下文的交互不是信息如何获得的。不包含上下文的交互,如如招招待员问顾客多少人。包含上下文信息待员问顾客多少人。包含上下文信息,会使系会使系 统的描述复杂统的描述复杂,用例的复用性差。用例的复用性差。(2)(2)可选的事件流可选的事件流表示是允许中断基本事件流表示是允许中断基本事件流,可能会可能会 有另外的功能有另外的功能,如可能将顾客的请求输入到一个等如可能将顾客的请求输入到一个等 待名单中。待名单中。(4)(4)记住记住,招招待员的职责就是是否能够进行预约。待员的职责就是是否能够进行预约。
36、(3)(3)例外的事件流例外的事件流,产生误解或发生了错误。产生误解或发生了错误。41记录到达记录到达(Record arrival)(Record arrival)用例事件流用例事件流:(1)(1)侍者领班输入当前日期侍者领班输入当前日期;(2)(2)系统显示当天的预约系统显示当天的预约;(3)(3)侍者领班确定一个选定的预约己经到达侍者领班确定一个选定的预约己经到达;(4)(4)系统记录并更新显示顾客己到达。系统记录并更新显示顾客己到达。记录到达记录到达,无提前预定无提前预定:可选事件流可选事件流(1)(1)侍者领班输入当前日期侍者领班输入当前日期;(2)(2)系统显示当天的预约系统显示当
37、天的预约;(3)(3)系统未记录该顾客的预约系统未记录该顾客的预约,侍者领班输入预约时间、侍者领班输入预约时间、用餐人数和餐桌号用餐人数和餐桌号,创建一个未预约登记创建一个未预约登记;(4)(4)系统记录并显示新预约。系统记录并显示新预约。该可选事件流和记录预约用例事件流存在共享功能该可选事件流和记录预约用例事件流存在共享功能,应当有个显示预约应当有个显示预约,可用下面用例包含关系描述可用下面用例包含关系描述:42显示预约基本事件流显示预约基本事件流:Record bookingReceptionist用例包含用例包含Display booking(1)(1)用户输入一个日期用户输入一个日期;
38、(2)(2)系统显示当日的预约系统显示当日的预约;记录预约事件流记录预约事件流(修改修改):):(1)(1)招招待员执行待员执行“显示预约显示预约”用例用例;(2)(2)招招待员输入顾客性名和电话待员输入顾客性名和电话,预约时间预约时间,用餐人数和餐桌用餐人数和餐桌;(3)(3)系统记录并显示新预约。系统记录并显示新预约。Record bookingDisplay bookingRecord arrivalReceptioniststaffHead Waiter餐馆餐馆系统系统用例用例43n在记录到达可选事件流中在记录到达可选事件流中,若系统未记录一个顾客的若系统未记录一个顾客的 预约预约,侍
39、者领班将创建一侍者领班将创建一 个未预约登记。个未预约登记。这样记录到达用例和这样记录到达用例和 记录未预约记录未预约顾客之间是有关系的。什么关系顾客之间是有关系的。什么关系?Record walk-inRecord arrivalHead Walk-inextendextend用例扩展用例扩展记录未预约顾客记录未预约顾客:事件流事件流(1)(1)侍者领班执行侍者领班执行“显示预约显示预约“用例用例;(2)(2)侍者领班输入时间侍者领班输入时间,人数人数,餐桌号餐桌号;(3)(3)系统记录并显示新预约系统记录并显示新预约;44取消预约事件流取消预约事件流:(1)(1)招招待员选择要求的预约待员
40、选择要求的预约;(2)(2)招招待员取消该预约待员取消该预约;(3)(3)系统询问接待员确认取消系统询问接待员确认取消;(4)(4)招招待员回答待员回答“是是”,系统记录取消并更新显示。系统记录取消并更新显示。调换餐桌事件流调换餐桌事件流:(1)(1)侍者领班选择需要的预约侍者领班选择需要的预约;(2)(2)侍者领班改变该预约的餐桌分配侍者领班改变该预约的餐桌分配;(3)(3)系统记录改变并更新显示。系统记录改变并更新显示。45Record bookingDisplay bookingRecord arrivalReceptioniststaffHead Waitern整理后的用例图整理后的用
41、例图:Record walk-inCancel bookingTable transfer 确定参与者确定参与者,确定用例确定用例,对用例进行基本事件流描述对用例进行基本事件流描述,扩充用例事件流扩充用例事件流,画出完整用例图。画出完整用例图。464747 在图书管理系统中,要为每个在图书管理系统中,要为每个借阅者借阅者建立一个账号,建立一个账号,并给借阅者发放借阅卡(借阅卡可以提供借阅卡号、借并给借阅者发放借阅卡(借阅卡可以提供借阅卡号、借阅者名),账户中存储借阅者的个人信息,借阅信息以阅者名),账户中存储借阅者的个人信息,借阅信息以及预定信息。及预定信息。例例3 3 3 3 图书管理系统的
42、用例分析图书管理系统的用例分析描述如下:描述如下:持有借阅卡的借阅者可以持有借阅卡的借阅者可以 借阅书刊、借阅书刊、返还书刊、返还书刊、查阅书刊信息、查阅书刊信息、预定书刊并取消预定,预定书刊并取消预定,但这些操作都是通过但这些操作都是通过图书管理员图书管理员进行的,即借阅者进行的,即借阅者 不直接与系统交互,而是图书管理员充当借阅者的代理不直接与系统交互,而是图书管理员充当借阅者的代理 与系统交互。与系统交互。474848&在借阅书刊时,需要输入在借阅书刊时,需要输入:所借阅的书刊名、书刊的所借阅的书刊名、书刊的ISBN/ISSNISBN/ISSN号、借阅者的图书号、借阅者的图书 卡号和借阅
43、者名,完成后提交所填表格,系统验证借阅者卡号和借阅者名,完成后提交所填表格,系统验证借阅者 是否有效(在系统中存在账号)。是否有效(在系统中存在账号)。若若有有效效,借借阅阅请请求求被被接接受受,系系统统查查询询数数据据库库系系统统,看看借借阅阅者者所所借借阅阅的的书书刊刊是是否否存存在在,若若存存在在,则则借借阅阅者者可可以以借出借出书刊,建立并在系统中书刊,建立并在系统中存储存储借阅纪录。借阅纪录。&借阅者还书后,删除借阅者还书后,删除关于还书刊的借阅纪录。关于还书刊的借阅纪录。&如果如果借阅者借阅者所借的书刊已被借出,借阅者还可所借的书刊已被借出,借阅者还可预订该书预订该书 刊刊,一旦借
44、阅者预定的书刊可以获得,就将书刊直接寄,一旦借阅者预定的书刊可以获得,就将书刊直接寄 给借阅人。给借阅人。为了简化系统,预定书刊获得时就不通知借阅者了。为了简化系统,预定书刊获得时就不通知借阅者了。不考虑书刊的最长借阅期限,假设借阅者可以无限不考虑书刊的最长借阅期限,假设借阅者可以无限 期地保存所借阅的书刊。期地保存所借阅的书刊。484949 对图书馆图书管理系统的描述进行对图书馆图书管理系统的描述进行分析分析获得如下获得如下 功能性需求:功能性需求:(1)(1)图书管理员可以图书管理员可以创建创建新的借阅者账号;新的借阅者账号;(2)(2)借阅者持有借阅者持有借阅卡借阅卡(借阅者名和借阅卡号
45、);(借阅者名和借阅卡号);(3)(3)图书管理员作为借阅者的代理图书管理员作为借阅者的代理借书借书;(4)(4)图书管理员作为借阅者的代理图书管理员作为借阅者的代理预订预订书刊;书刊;(5)(5)图书管理员作为借阅者的代理图书管理员作为借阅者的代理取消取消预订;预订;(6)(6)图书管理员作为借阅者的代理图书管理员作为借阅者的代理还书还书;(7)(7)图书管理员可以图书管理员可以修改修改借阅者的账户信息;借阅者的账户信息;(8)(8)图书管理员可以图书管理员可以删除删除已经存在的借阅者账户;已经存在的借阅者账户;(9)(9)图书管理员可以图书管理员可以添加添加新的书刊种类;新的书刊种类;(1
46、0)(10)图书管理员可以图书管理员可以修改修改书刊种类信息;书刊种类信息;(11)(11)图书管理员可以图书管理员可以删除删除系统中的书刊种类;系统中的书刊种类;(12)(12)图书管理员可以在系统中图书管理员可以在系统中添加添加书刊的信息书刊的信息 (注意区分(注意区分“书刊种类书刊种类”和和“书刊书刊”););(13)(13)图书管理员可以图书管理员可以编辑编辑书刊信息;书刊信息;(14)(14)图书管理员可以图书管理员可以删除删除书刊信息。书刊信息。49n图书管理员图书管理员n登录登录n管理读者信息管理读者信息n管理图书信息管理图书信息n登记借书登记借书n登记还书登记还书n登记登记预订
47、预订n登记登记取消预订取消预订n借阅者:借阅者:n登录登录n预订图书预订图书n取消预订取消预订n借阅图书借阅图书n还书还书n查询浏览图书信息查询浏览图书信息例:一个图书馆管理系统,有哪些参与者和用例?例:一个图书馆管理系统,有哪些参与者和用例?借阅者借阅者图书管理员图书管理员用例用例 识别并描述参与者识别并描述参与者50图书馆管理系统用例图图书馆管理系统用例图普通读者普通读者登录登录查询浏览查询浏览预订图书预订图书图书管理员图书管理员管理读者管理读者取消预订取消预订管理图书信息管理图书信息登记借书登记借书登记还书登记还书登记预订登记预订登记取消预订登记取消预订借书借书还书还书51 用例用例描述
48、描述:登记借书登记借书 1.1.描述:描述:本用例允许图书管理员登记普通读者的借书记录本用例允许图书管理员登记普通读者的借书记录 2 2 事件流:事件流:2.1 2.1 常规流程常规流程 当读者希望借书、图书管理员准备登记有关的当读者希望借书、图书管理员准备登记有关的 借书记录时,本借书记录时,本用例开始用例开始执行。执行。(1)(1)系统要求管理员输入读者的注册号和所借图书号;系统要求管理员输入读者的注册号和所借图书号;(2)(2)图书管理员输入信息后,系统产生一个唯一的借图书管理员输入信息后,系统产生一个唯一的借 书记录号;书记录号;(3)(3)系统显示新生成的借书记录;系统显示新生成的借
49、书记录;(4)(4)图书管理员确认后,系统增加一个新的借书记录。图书管理员确认后,系统增加一个新的借书记录。52用例用例描述描述:登记借书登记借书 2.2 2.2 备选流程备选流程 (1)(1)读者没有注册读者没有注册 在主流程中,如果系统没有读者的注册信息,在主流程中,如果系统没有读者的注册信息,系统将显示错误信息,用例结束。系统将显示错误信息,用例结束。(2)(2)所借图书不存在所借图书不存在 在主流程中,如果所借图书已被借出或者系在主流程中,如果所借图书已被借出或者系 统中无该图书,系统将显示错误信息,用例结束。统中无该图书,系统将显示错误信息,用例结束。3 3 前提条件:前提条件:用例
50、开始前,图书管理员必须在系统登录成功。用例开始前,图书管理员必须在系统登录成功。4 4 后置条件:后置条件:如果用例执行成功,该读者的借书记录被更新,如果用例执行成功,该读者的借书记录被更新,否则,系统状态不变。否则,系统状态不变。53例例4 4 大学选课系统大学选课系统-注册讨论班注册讨论班 大学选课系统与学生有着紧密的联系,具有注册交费、大学选课系统与学生有着紧密的联系,具有注册交费、选课、成绩查询等功能。为了简化本次系统分析选课、成绩查询等功能。为了简化本次系统分析,只考虑只考虑学生学生注册讨论班注册讨论班的功能,该问题描述如下:的功能,该问题描述如下:问题描述问题描述 学生想要注册某门