《chapter06用例图用例建模作业》由会员分享,可在线阅读,更多相关《chapter06用例图用例建模作业(35页珍藏版)》请在金锄头文库上搜索。
1、李鹏飞 UMLUML系统分析与设计系统分析与设计 UML-System Analysis & DesignUML-System Analysis & Design1第第6 6 章用例建模作业章用例建模作业Use-Case ModelingUse-Case Modeling2旅店管理系统某公司要开发一个旅店管理系统,该旅店可对外开放某公司要开发一个旅店管理系统,该旅店可对外开放1010 个双人间和个双人间和1010个单人间,房间费用视情况按季节调整,个单人间,房间费用视情况按季节调整, 但周一到周五半价(周末全价)折扣不变。对于外界请求但周一到周五半价(周末全价)折扣不变。对于外界请求 ,该系统
2、应能根据请求入住时间预定指定档次的房间,记,该系统应能根据请求入住时间预定指定档次的房间,记 录旅客姓名、地址、联系电话、有效证件号、房间类型和录旅客姓名、地址、联系电话、有效证件号、房间类型和 预定天数,并计算出总费用。预定的同时旅客按规定须提预定天数,并计算出总费用。预定的同时旅客按规定须提 交交10%10%定金。六个小时之内旅店允许旅客取消预定,并定金。六个小时之内旅店允许旅客取消预定,并 退回所有定金,超过六个小时定金不退还。每周一系统自退回所有定金,超过六个小时定金不退还。每周一系统自 动打印一周预定情况清单。采用哪种费用支付方式和何种动打印一周预定情况清单。采用哪种费用支付方式和何
3、种 类型操作界面尚不确定。类型操作界面尚不确定。3问题用例图1 领导的角色没有价值; 旅店房间预订系统用例没有意义 4问题用例图2 用例图不描述 业务流程 图中箭头不代 表前后顺序5问题用例图3 用例图不描述程序流程 不描述控制逻辑6基于用例的需求分析过程基于用例的需求分析过程1. 获取原始需求 2. 开发一个可以理解的需求l识别参与者l识别用例l构建用例图 3 详细、完整地描述需求 进行用例阐述 4 重构用例模型l识别用例间的关系l对用例进行组织和分包71 1 识别参与者识别参与者l参与者,Actorl关键词:边界l参与者:在系统之外,透过系统边界与系统进 行有意义交互的任何事物81 1 识
4、别参与者识别参与者参与者要点参与者要点l系统外l参与者代表在系统边界之外的真实事物,并不是系统的成 分l系统边界l参与者透过系统边界直接与系统交互,参与者的确定代表 系统边界的确定l有意义的交互l考虑责任边界,非物理边界l任何事物l人、外系统、外部因素、时间9识别参与者思路识别参与者思路l谁使用系统的主要功能l谁改变系统的数据l谁从系统获取信息l谁需要系统的支持以完成日常工作任务l谁负责日常维护、管理并保证系统正常运行l系统需要应付(处理)那些硬设备l系统需要和那些外部系统交互l谁(或什么)对系统运行产生的结果(值)感兴趣l时间、气温等内部外部条件l服务员服务员顾客顾客时间时间10“时间”参与
5、者的使用 时间时间:参与者,一种:参与者,一种 习惯用法,用于激活习惯用法,用于激活 那些系统定期的、自那些系统定期的、自 动执行的用例动执行的用例 “ “计算总费用计算总费用” ”的时候的时候 ,时间仅仅是一个条,时间仅仅是一个条 件,而不是参与者,件,而不是参与者, 因为此时它是作为系因为此时它是作为系 统的一部分统的一部分11不恰当的“时间”参与者时间:参与者,一种习惯用法,用于激活那 些系统定期的、自动执行的用例“检查是否可以退定金”的时候,时间仅仅是 一个系统内部的判断条件,而不是参与者12无效的参与者泛化 参与者泛化:特殊参与者会继承泛化参与者所有的要素! 参与者的重要性在一识别用
6、例,如果泛化没有带来任何用例,则 这样的方法没有任何意义 在系统中如果两个参与者涉及相同的用例,则合并132 2 识别用例识别用例l关键词:价值l定义l用例实例是系统执行的一系列动作,这些动作 将生成特定参与者可观测的结果值l一个用例定义一组用例实例l简洁:参与者使用系统达到目标142 2 识别用例识别用例用例要点用例要点l可观测用例止于系统边界l结果值用例是有意义的目标l系统执行结果值由系统生成l由参与者观测业务语言、用户观点l一组用例实例用例的粒度152 2 识别用例识别用例某公司要开发一个旅店管理系统,该旅店可对外开放某公司要开发一个旅店管理系统,该旅店可对外开放1010 个双人间和个双
7、人间和1010个单人间,房间个单人间,房间费用视情况按季节调整费用视情况按季节调整, 但周一到周五半价(周末全价)折扣不变。对于外界请求但周一到周五半价(周末全价)折扣不变。对于外界请求 ,该系统应能根据请求入住时间,该系统应能根据请求入住时间预定指定档次的房间预定指定档次的房间,记,记 录旅客姓名、地址、联系电话、有效证件号、房间类型和录旅客姓名、地址、联系电话、有效证件号、房间类型和 预定天数,并预定天数,并计算出总费用计算出总费用。预定的同时旅客按规定须提。预定的同时旅客按规定须提 交交10%10%定金。六个小时之内旅店允许旅客定金。六个小时之内旅店允许旅客取消预定取消预定,并,并 退回
8、所有定金,超过六个小时定金不退还退回所有定金,超过六个小时定金不退还。每周一系统。每周一系统自自 动打印一周预定情况清单动打印一周预定情况清单。采用哪种费用支付方式和何种。采用哪种费用支付方式和何种 类型操作界面尚不确定。类型操作界面尚不确定。16用例干什么? “ “其他其他” ”、“ “打印清单打印清单” ”用用 例和外围没有任何例和外围没有任何有意有意 义交互义交互,和其他用例也,和其他用例也 没有任何关系,这样的没有任何关系,这样的 用例有意义吗?用例有意义吗? “ “其他其他” ”用例用例又代表什么又代表什么 呢?想说明什么样的功呢?想说明什么样的功 能需求?能需求?17用例粒度 注意
9、注意“ “管理用管理用 例例” ”的使用!的使用!18用例粒度太小19看看这个用例图 参与者与用例的定义!参与者与用例的定义!203 3 构建用例图构建用例图( (一一) )顾客21用例关系ExtendIncludeGeneralization224. 用例关系-1:明显的错误 依赖关系依赖关系:include, include, extendextend都是依赖关系都是依赖关系 (dependency)(dependency)的构造的构造 型型(stereotype)(stereotype),带箭,带箭 头的虚线表示头的虚线表示 “ “extendextend” ”关系的方向关系的方向 ,子
10、用例对主用例的扩,子用例对主用例的扩 展展234. 用例关系-2:什么关系? 用例是一个完整用例是一个完整 的交互,用例之的交互,用例之 间没有顺序的关间没有顺序的关 系系244. 用例关系-325扩展关系的使用l使用扩展的一个潜在问题是创建过深的扩展依赖层 次lJacobson博士建议永远不要扩展一个扩展l对于在描述用例的时候,什么时候用扩展,什么时 候用可选路径,Jacobson建议:l只有当扩展用例与被扩展用例完全分离(即它本身是 一个独立的具体用例或者是其他用例需要的一个小片段) 时,才使用扩展关系l基用例自身必须是完整的,它的正确执行不需要扩展 。否则,就应该用可选路径来描述附加行为
11、26包含关系的使用l包含关系使用不当容易诱使人们进行功能分 解,从而导致对用例的误用lJacobson说,“事实上,今天一些人误用了用 例,把它们用来描述功能(注:指功能分解式的 分析)而不是对象,反过来又指责用例概念存在 问题”27泛化的危害一个售货员可以终止任何交易,除了那些需要特殊的售一个售货员可以终止任何交易,除了那些需要特殊的售 货员(高级代理)终止的超过了一定限制的交易货员(高级代理)终止的超过了一定限制的交易28再看一个29用例规约l用例规约用来描述用例的,不是用例图l用例规约该写什么?l用例规约需要与用例图相对应l用例的名称l用例描述:一句完整的话l用例间的关系l用例与参与者的
12、关系l事件流的详细程度l事件流之间的流转30用例规格描述常见错误l用例描述中没有主参与者。l用例描述中只有参与者动作,没有系统动作。l事件流中的动作没有主语。l描述中有过多的用户操作细节,如按钮等界面 元素的具体实现。l描述过低的目标级别。31较为合理的用例图(二)争论: 使用包含还 是扩展?32较为合理的用例规格说明1用例名称:预定房间 涉及的参与者:酒店前台 描述:酒店前台人员根据旅客的入住请求,预定某个时间指定档次的房 间,预定的同时旅客按规定须提交10%定金。 前置条件:前台工作人员必须已经登录到这个系统 后置条件:预定信息正确的记录到系统中 主事件流: 1) 前台人员向系统提供需要预
13、定房间的类型、时间和预定天数。 2) 系统确认有相应档次的空闲房间,并计算出总费用和定金。 3) 前台人员向系统提供旅客信息(姓名、地址、联系电话、证件号等) 。 4) 系统记录旅客信息。 5) 前台人员确认已经交纳定金。 6) 系统记录房间已经预定,工作完成。 备选事件流: 2a.没有指定类型的空闲房间,可以转到第一步或者取消预定,用例结束 5a.顾客没有交纳定金,前台工作人员取消预定,用例结束。33较为合理的用例规格说明2n用例名称:取消预订 n主要参与者:酒店前台 n描述:酒店前台利用该用例来取消顾客的预定,如果在指定时间内,则取消时需 要返还顾客定金 n前置条件:用户必须已经预订了某个
14、房间 n后置条件:系统将取消预定的房间恢复为空闲,并且定金已返还给顾客 n正常事件流:前台人员提供给系统顾客信息,比如顾客姓名或证件号码;系统进行检查并返回该顾客的预订信息,包括顾客姓名、证件号码 、联系电话、房间类型、预订时间、预订天数和总费用;前台人员确认取消该预定;系统取消该房间预订 n备选事件流: 2a.系统提示没有该顾客的预定信息。 4a.当取消预订在六小时之内,系统提示需要退还顾客定金。4a1. 系统提示返回金额;4a2.前台人员确认已退还定金;4a3.系统记录定金已退还。34用例规约:预定房间 涉及的用例:涉及的用例:计算总费用计算总费用 前置条件:前置条件:用户成功登录用户成功登录 正常事件流:正常事件流: 1.1.用户选择预定房间后启动该用例用户选择预定房间后启动该用例 2.2.系统显示用户系统显示用户可以预定的房间列表可以预定的房间列表 3.3.用户选择某一个房间用户选择某一个房间 4.4.系统启动系统启动“ “计算总费用计算总费用” ”用例,来计算该房间的费用用例,来计算该房间的费用 5.5.用户确认本次预定业务用户确认本次预定业务 6.6.用户用户选择支付方式选择支付方式,以便,以便预付定金预付定金 35