
《用例建模作业》PPT课件.ppt
29页单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,面向对象技术,Object-Oriented Techniques,1,第,15,讲用例建模,Use-Case Modeling,2,用例分析实例:旅店管理系统,某公司要开发一个旅店管理系统,该旅店可对外开放,10,个双人间和,10,个单人间,房间费用视情况按季节调整,但周一到周五半价(周末全价)折扣不变对于外界请求,该系统应能根据请求入住时间预定指定档次的房间,记录旅客姓名、地址、联系、有效证件号、房间类型和预定天数,并计算出总费用预定的同时旅客按规定须提交,10%,定金六个小时之内旅店允许旅客取消预定,并退回所有定金,超过六个小时定金不退还每周一系统自动打印一周预定情况清单采用哪种费用支付方式和何种类型操作界面尚不确定3,基于用例的需求分析过程,1.,获取原始需求,2.,开发一个可以理解的需求,识别参与者,识别用例,构建用例图,3,详细、完整地描述需求,进行用例阐述,4,重构用例模型,识别用例间的关系,对用例进行组织和分包,4,1,识别参与者,参与者,,Actor,关键词:,边界,参与者:在,系统之外,,透过,系统边界,与系统进行,有意义交互,的,任何事物,5,1,识别参与者,参与者要点,系统外,参与者代表在系统边界之外的真实事物,并不是系统的成分,系统边界,参与者透过系统边界,直接,与系统交互,参与者的确定代表,系统边界,的确定,有意义的交互,考虑责任边界,非物理边界,任何事物,人、外系统、外部因素、时间,6,识别参与者思路,谁使用系统的主要功能,谁改变系统的数据,谁从系统获取信息,谁需要系统的支持以完成日常工作任务,谁负责日常维护、管理并保证系统正常运行,系统需要应付(处理)那些硬设备,系统需要和那些外部系统交互,谁(或什么)对系统运行产生的结果(值)感兴趣,时间、气温等内部外部条件,服务员,顾客,时间,7,“,时间,”,参与者的使用,时间,:参与者,一种习惯用法,用于激活那些系统定期的、自动执行的用例,“计算总费用”的时候,时间仅仅是一个条件,而不是参与者,因为此时它是作为系统的一部分,8,参与者的泛化,参与者泛化,:特化的参与者会继承泛化参与者所有的要素!,外围系统,表示是已有的或计划中的外围的独立的软件系统!,使用英文时注意单词的正确用法!,9,2,识别用例,关键词:价值,定义,用例实例是,系统执行,的,一系列动作,,这些动作将生成特定,参与者可观测,的,结果值,一个用例定义,一组用例实例,简洁:参与者,使用系统,达到目标,10,2,识别用例,用例要点,可观测,用例止于系统边界,结果值,用例是有意义的目标,系统执行,结果值由系统生成,由参与者观测,业务语言、用户观点,一组用例实例,用例的粒度,11,2,识别用例,某公司要开发一个旅店管理系统,该旅店可对外开放,10,个双人间和,10,个单人间,房间,费用视情况按季节调整,,但周一到周五半价(周末全价)折扣不变。
对于外界请求,该系统应能根据请求入住时间,预定指定档次的房间,,记录旅客姓名、地址、联系、有效证件号、房间类型和预定天数,并,计算出总费用,预定的同时旅客按规定须提交,10%,定金六个小时之内旅店允许旅客,取消预定,,并,退回所有定金,超过六个小时定金不退还,每周一系统,自动打印一周预定情况清单,采用哪种费用支付方式和何种类型操作界面尚不确定12,用例干什么?,“其他”、“打印清单”用例和外围没有任何,有意义交互,,和其他用例也没有任何关系,这样的用例有意义吗?,“,其他,”,用例,又代表什么呢?想说明什么样的功能需求?,13,用例粒度,注意“,管理用例,”的使用!,14,看看这个用例图,参与者与用例的定义!,15,3,构建用例图,顾客,16,用例关系,Extend,Include,Generalization,17,4.,用例关系,-1,:明显的错误,依赖关系,:,include,extend,都是依赖关系,(dependency),的构造型,(stereotype),,带箭头的虚线表示,“,extend,”,关系的方向,子用例对主用例的扩展,18,4.,用例关系,-2,:什么关系?,用例是一个完整的交互,用例之间没有顺序的关系,19,4.,用例关系,-3,20,扩展关系的使用,使用扩展的一个潜在问题是创建过深的扩展依赖层次,Jacobson,博士建议永远不要扩展一个扩展,对于在描述用例的时候,什么时候用扩展,什么时候用可选路径,,Jacobson,建议:,只有当扩展用例与被扩展用例完全分离(即它本身是一个独立的具体用例或者是其他用例需要的一个小片段)时,才使用扩展关系,基用例自身必须是完整的,它的正确执行不需要扩展。
否则,就应该用可选路径来描述附加行为,21,包含关系的使用,包含关系使用不当容易诱使人们进行功能分解,从而导致对用例的误用,Jacobson,说,“事实上,今天一些人误用了用例,把它们用来描述功能(注:指功能分解式的分析)而不是对象,反过来又指责用例概念存在问题”,22,泛化的危害,一个售货员可以终止任何交易,除了那些需要特殊的售货员(高级代理)终止的超过了一定限制的交易,23,Visio2003,画的有问题的用例图,24,再看一个,25,用例规约,用例规约用来描述用例的,不是用例图,用例规约该写什么?,用例规约需要与用例图相对应,用例的名称,用例描述:一句完整的话,用例间的关系,用例与参与者的关系,事件流的详细程度,事件流之间的流转,26,示例:用例规约(,include,),27,示例:用例规约(,extend,),28,用例规约:预定房间,涉及的用例:,计算总费用,前置条件:,用户成功登录,正常事件流:,1.,用户选择预定房间后启动该用例,2.,系统显示用户,可以预定的房间列表,3.,用户选择某一个房间,4.,系统启动,“计算总费用”,用例,来计算该房间的费用,5.,用户确认本次预定业务,6.,用户,选择支付方式,,以便,预付定金,29,。












