绘制用例图课程学习.pptx
会计学1绘制绘制(huzh)用例图用例图第一页,共65页。理解理解(lji)需求需求n n什么是需求?什么是需求?n n系统必须提供的能力和必须遵从的条件系统必须提供的能力和必须遵从的条件n n需求工作的最根本挑战在于需求工作的最根本挑战在于(ziy)(ziy):如:如何去发现、交流并记住(即记录)什么何去发现、交流并记住(即记录)什么是真正需要的,并能够清楚地向用户和是真正需要的,并能够清楚地向用户和开发团队的成员讲解开发团队的成员讲解n n这个过程的最大难题是如何使得需这个过程的最大难题是如何使得需求的定义没有二义性求的定义没有二义性第1页/共64页第二页,共65页。理解理解(lji)需求(续)需求(续)n n需求管理推崇用“一种条理化的方法(fngf)寻找、记录、组织和跟踪系统不断变化的需求”第2页/共64页第三页,共65页。影响影响(yngxing)软件项目的因素软件项目的因素其它(qt)50%其它(qt)50%不充分的用户输入 13%不完整需求12%变更需求12%技术技能不足7%员工不足6%第3页/共64页第四页,共65页。用例到底用例到底(do d)用在哪?用在哪?WhatHowDo用例图用例描述(mio sh)第4页/共64页第五页,共65页。“用例用例”先睹为快先睹为快(xin d wi kui)用例用例图图记录(jl)预约取消(qxio)预约显示预约接待员 记录预约到达记录未预约到达前台调换餐桌领班餐饮管理系统第5页/共64页第六页,共65页。“用例用例”先睹为快先睹为快(xin d wi kui)用例描述用例描述第6页/共64页第七页,共65页。用例建模用例建模用例建模用例建模 基本概念基本概念基本概念基本概念n n用例视图是用例视图是UMLUML中起着支配作用中起着支配作用(zuyng)(zuyng)的视图,描述的系统外部可见的行为的视图,描述的系统外部可见的行为n n基于系统需求的用例视图驱动和约束着后续基于系统需求的用例视图驱动和约束着后续的开发的开发n n用例视图展示的是系统功能的结构化视图,用例视图展示的是系统功能的结构化视图,视图定义了参与者和参与者可以参与的用例视图定义了参与者和参与者可以参与的用例第7页/共64页第八页,共65页。用例图用例图用例图用例图n n以图解的形式概括了系统中不同参与者和用例,以图解的形式概括了系统中不同参与者和用例,并显示了哪些参与者能够参与哪些用例并显示了哪些参与者能够参与哪些用例n n参与者用一个参与者用一个(y(y )像人一样的图标表示像人一样的图标表示n n用例用包含有用例名字的椭圆表示用例用包含有用例名字的椭圆表示n nUMLUML允许在用例图中包含更多的结构,来定义允许在用例图中包含更多的结构,来定义用例之间以及参与者之间的各种关系用例之间以及参与者之间的各种关系n n在实践中不值得花费很多时间细化用例图,额在实践中不值得花费很多时间细化用例图,额外的关系对后面的开发起不到很大作用外的关系对后面的开发起不到很大作用第8页/共64页第九页,共65页。用例图用例图用例图用例图n n参与者模型化了用户与系统进行交互时可能充当(chngdng)的角色n n用例描述了用户使用系统能够完成一项特定的任务参与者用例第9页/共64页第十页,共65页。绘制绘制(huzh)用例图用例图1.1.确立系统边界2.2.需要(xyo)的留下,不需要(xyo)的剁掉第10页/共64页第十一页,共65页。确立系统确立系统(xtng)边界边界n n分内外,向系统内找用例,向系统外找参与者。n n找出位于(wiy)系统外部的事物,画小人n n找出系统内部的事物,画椭圆参与者用例第11页/共64页第十二页,共65页。找参与者找参与者n n一个用例描述了系统及其用户之间的一类(y li)交互n n系统通常有不同种类的用户,他们能够执行系统功能的不同子集n n用户与系统在进行交互时能够担任的不同角色称为参与者第12页/共64页第十三页,共65页。n n参与者:代表了与系统交互的事物n n定义:是系统外部(wib)的一个实体,它以某种方式参与了用例的执行过程。n n参与者可以是:人担当的角色、计算机系统、机械或者电子设备;n n参与者由他们参与用例时所担当的角色来代表,例如,顾客。n n一个参与者并不时指一个特定的人或一个特定的实体 某个参与者可被认为是一个有形的、与系统交互的、扮演某种角色(ju s)的外部实体第13页/共64页第十四页,共65页。张三李四注意注意(zh y):顾客角色(ju s)第14页/共64页第十五页,共65页。为什么要定义为什么要定义(dngy)参与者?参与者?n n某个特定参与者初始化某个用例的原因几乎总是为什么需要该用例的主要原因n n参与者在环境(hunjng)中的角色和其独一无二的行为及其系统职责会对用例产生重要的影响个体客户商业客户?第15页/共64页第十六页,共65页。n n为什么不先找用例?第16页/共64页第十七页,共65页。先找参与者的原因先找参与者的原因(yunyn)n n参与者比用例明显n n参与者的个数远比用例的个数少n n找到一个参与者,就可以找到一堆用例n n参与者是系统外部人物(rnw)的代表,所以是先找出参与者,才能够从参与者的角度去寻找用例。第17页/共64页第十八页,共65页。先找参与者的原因先找参与者的原因(yunyn)(续续)n n关注参与者,就能将注意力集中于如何使用系统而不是如何创建或实现系统。n n参与者还决定(judng)了系统需求的完整性第18页/共64页第十九页,共65页。如何如何(rh)确定参与者确定参与者n n谁或什么将初始化与系统有关的事件谁或什么将初始化与系统有关的事件n n谁或什么与系统交互将有助于系统对某个事件做出谁或什么与系统交互将有助于系统对某个事件做出响应响应n n有报告界面吗?有报告界面吗?n n有系统管理界面吗?有系统管理界面吗?n n系统需要与其他遗留系统交互吗?系统需要与其他遗留系统交互吗?n n是否是否(sh f(sh f u)u)已定义过该系统的参与者?已定义过该系统的参与者?n n如果系统中发生了一个事件,是否如果系统中发生了一个事件,是否(sh f(sh f u)u)需要通需要通知某个外部实体?系统是否知某个外部实体?系统是否(sh f(sh f u)u)需要与外部实需要与外部实体交互以帮助自己完成任务?体交互以帮助自己完成任务?第19页/共64页第二十页,共65页。n n参与者一定是直接(zhji)并且主动向系统发出动作并获得反馈的,否则就不是参与者.第20页/共64页第二十一页,共65页。案例案例(n l)2:谁是参与者?:谁是参与者?n n小王到银行开户,向大厅(dtng)经理询问了办理手续,填写了表单,交给柜台职员,拿到了银行存折,在这个场景中,谁是参与者?n n小王?n n柜台职员?n n大厅(dtng)经理?第21页/共64页第二十二页,共65页。案例案例(n l)2(续)(续)n n谁对系统有着明确的目标和要求并且主动发出(fch)动作?n n系统是为谁服务的?小王(xio wn)主角主要参与者主动参与者第22页/共64页第二十三页,共65页。案例案例(n l)三三:机票预订系统机票预订系统1.机票购买(gumi)者通过登录网站购买(gumi)机票-机票购买(gumi)者就是参与者第23页/共64页第二十四页,共65页。有趣的问题:哪个有趣的问题:哪个有趣的问题:哪个有趣的问题:哪个(n(n ge)ge)参与者启动了用例?参与者启动了用例?参与者启动了用例?参与者启动了用例?n n有时候,一个有时候,一个(y(y )用例是由一个用例是由一个(y(y )并不与系统实际并不与系统实际进行物理交互的实体的需求所触发。进行物理交互的实体的需求所触发。业务(yw)参与者系统参与者业务用例建模系统用例建模第24页/共64页第二十五页,共65页。案例三案例三:机票预订机票预订(ydng)系统系统(续续)2.假如机票购买者通过(tnggu)呼叫中心,由人工座席操作订票系统购买机票-人工座席是系统参与者-机票购买者是呼叫中心的参与者第25页/共64页第二十六页,共65页。案例三案例三:机票预订机票预订(ydng)系统系统(续续)3.如果机票购买者通过呼叫中心的自动语音(yyn)预订机票而不是通过人工座席呢?业务(yw)参与者系统参与者第26页/共64页第二十七页,共65页。案例案例(n l)三三:机票预订系统机票预订系统(续续)4.4.如果扩大系统边界如果扩大系统边界,让呼叫中心称为机票预订系统的一个子系统让呼叫中心称为机票预订系统的一个子系统,并且夹着机票购买者可以自主并且夹着机票购买者可以自主(zzh(zzh)选择通过人工座席选择通过人工座席,自动自动语音还是网站预订机票呢语音还是网站预订机票呢?业务(yw)工人第27页/共64页第二十八页,共65页。如何区分如何区分(qfn)参与者还是工参与者还是工人呢人呢?人工座席属于(shy)哪一类?第28页/共64页第二十九页,共65页。参与者的角色参与者的角色(ju s)角色类型行为启动者初始化用例外部服务者在用例中向系统提供服务接收者从用例接收信息帮助者(代理,业务工人)为其他参与者与系统的交互提供帮助第29页/共64页第三十页,共65页。用例建模用例建模用例建模用例建模n n用例视图应该包含一组定义了该系统完整功能(gngnng)的用例,或者至少定义了当前迭代所规定功能(gngnng)的用例n n用例视图应该是客户、最终用户、领域专家、测试人员和任何其他涉及系统的人员,不需要详细了解系统结构和实现就容易理解的第30页/共64页第三十一页,共65页。用例就是(jish)需求F第31页/共64页第三十二页,共65页。关键问题关键问题n n用例分析的关键是专注于“怎样才能使系统为用户提供可观察的数值(shz),或帮助用户实现他们的目标,而不是简单认为系统需求就是列举系统的特征和功能”第32页/共64页第三十三页,共65页。黑箱(hi xin)用例描述系统具有哪些(nxi)职责做什么(shn me)第33页/共64页第三十四页,共65页。用例特征用例特征(tzhng)n n用例是相对独立的n n用例的执行结构对参与者来说是可观测(gunc)和有意义的第34页/共64页第三十五页,共65页。用例的获得用例的获得(hud)n n用例准备(zhnbi)工作:发现(fxin)参与者第35页/共64页第三十六页,共65页。用例的获得用例的获得(hud)(续)(续)n n引导业务代表来获取用例:n n您对系统有什么期望n n您打算在这个系统里做些什么事情(sh qing)n n您做这件事的目的是什么?n n您做完这件事希望有一个什么样的结果?第36页/共64页第三十七页,共65页。用例的获得用例的获得(hud)(续)(续)n nP19 表1-9用例的问题(wnt)列表如果(rgu)我们是“顾客”,我们会怎么使用系统?什么时候我们会开始使用系统?画流程,看看顾客使用系统的流程,然后再来核对,看看需要增加什么用例第37页/共64页第三十八页,共65页。UML活动活动(hu dng)图图第38页/共64页第三十九页,共65页。n n注意,画UML活动图只是(zhsh)为了辅助我们抓用例,所以不要陷入细节中。第39页/共64页第四十页,共65页。用例的目标用例的目标(mbio)和范围和范围n n发现用例确定用例的目标和范围(fnwi)n n用例应该在什么级别和范围(fnwi)上表述呢?第40页/共64页第四十一页,共65页。怎样怎样(znyng)发现用例?发现用例?l谈判一个(y)供货合同l处理返回值l登录l在游戏板上移动棋子是否是有效(yuxio)的用例?n可以认为这些都是用例,但它们处于不同的级别,依赖于系统边界、参与者和目标。n与其泛泛地问“什么是有效的用例?”,不如更直接地问:“对应用的需求分析来说,在什么级别上描述用例最有帮助?第41页/共64页第四十二页,共65页。测试用例测试用例n n老板测试(csh)n n规模测试(csh)n n测试(csh)第42页/共64页第四十三页,共65页。测试用例(续)测试用例(续)n n老板测试n n用例的执行结构对参与者来说是可观测和有意义的n n如果该用例不同通过老板测试,这意味着该用例与达到可量化价值的结果(ji gu)没有太大关系“也许是更低级别的用例”登录(dn l)填写(tinxi)取款单第43页/共64页第四十四页,共65页。测试用例(续)测试用例(续)n n规模测试n n用例很少由单独(dnd)的活动或步骤组成在游戏(yux)板上移动棋子输入(shr)商品编号第44页/共64页第四十五页,共65页。测试用例(续)测试用例(续)n nEBPEBP指导原则指导原则n nEBPEBP用例:对计算机应用进行需求分析的用例:对计算机应用进行需求分析的时候,应关注于时候,应关注于“基本业务过程基本业务过程”(EBP)”(EBP)级别的用级别的用例例n n一个主要成功一个主要成功(chnggng)(chnggng)场景会包含场景会包含5-105-10个小步个小步骤骤n n用例也不是一个需要好几天和很多对话才能完用例也不是一个需要好几天和很多对话才能完成的工作成的工作n n它是能够在一个对话、几分钟或一个小时的时它是能够在一个对话、几分钟或一个小时的时间内就可以完成的任务。间内就可以完成的任务。n n用例强调了能够增加可见的或可度量的业务价用例强调了能够增加可见的或可度量的业务价值值第45页/共64页第四十六页,共65页。EBP级别级别(jbi)上的用例上的用例n n一个EBP级别上的用例通常被称为一个用户目标级别上的用例,以强调用例应该(ynggi)帮助系统的用户来实现自己的目标n n找出用户的目标n n为每个目标定义一个用例你想做什么(shn me)?你的目标是什么(shn me)?解决方案和过程激发新的、改进方案的想象增加可见的或可以度量的业务价值第46页/共64页第四十七页,共65页。对对EBP原则原则(yunz)的合理违反的合理违反n n 尽管一个应用的尽管一个应用的“基本基本”用例应该满足用例应该满足EBPEBP原则,但我们经常原则,但我们经常会创建一些单独的会创建一些单独的“子子”用例来表示基本用例中的子任务或步用例来表示基本用例中的子任务或步骤。用例有时候不必符合骤。用例有时候不必符合EBPEBP原则。原则。EBPEBP的指导原则只在对应的指导原则只在对应用进行需求分析时用来寻找用进行需求分析时用来寻找(xnzh(xnzh o)o)主要用例,也即命名、主要用例,也即命名、写出主要用例。写出主要用例。n n例子例子:“:“信用卡支付信用卡支付”。第47页/共64页第四十八页,共65页。第48页/共64页第四十九页,共65页。用例的其他用例的其他(qt)特征特征n n必须由一个参与者发起(fq)n n用例必须以动宾形式出现的n n一个用例就是一个需求单元、分析单元、设计单元、开发单元、测试单元和部署单元ATM吐钞统计(tngj)喝第49页/共64页第五十页,共65页。用例的粒度用例的粒度(l d)n n用例的粒度用例的粒度(l d)(l d)以每个用例能够说明以每个用例能够说明一件完整的事情为宜一件完整的事情为宜n n或者说,用例的粒度或者说,用例的粒度(l d)(l d)以一个用例以一个用例能够描述操作者与计算机的一次完整交能够描述操作者与计算机的一次完整交互为宜互为宜n n例:某人去图书馆,查询了书目,出示例:某人去图书馆,查询了书目,出示了借书证,图书管理员查询了该人以前了借书证,图书管理员查询了该人以前的借阅记录以确保没有未归还的书,最的借阅记录以确保没有未归还的书,最后借到了书。从这段话中能够得出多少后借到了书。从这段话中能够得出多少个用例呢?个用例呢?借书第50页/共64页第五十一页,共65页。用例的粒度用例的粒度(l d)(续)(续)n n例:主角说:我希望这台例:主角说:我希望这台ATMATM能支持跨行业务,我插能支持跨行业务,我插入卡片输入密码后,可以让我选择是取钱还是存钱;入卡片输入密码后,可以让我选择是取钱还是存钱;为了方便,可以设置一些默认的存取金额按钮;我可为了方便,可以设置一些默认的存取金额按钮;我可以修改密码,也可以挂失;还有我希望可以缴纳电话以修改密码,也可以挂失;还有我希望可以缴纳电话费、水费、电费等费用费、水费、电费等费用(fi yong)(fi yong);为了安全起见,;为了安全起见,ATMATM应当有警示小心骗子的提示条,还有摄像头例如应当有警示小心骗子的提示条,还有摄像头例如过输入三次密码错误,卡片应当被自动吞没过输入三次密码错误,卡片应当被自动吞没第51页/共64页第五十二页,共65页。用例的获得用例的获得(hud)(续)(续)n n这些(zhxi)是有效的用例吗?第52页/共64页第五十三页,共65页。误区一:误区一:n n用例是功能的划分和描述n n软件是一种还不存在的事物,对于正准备开发的软件,我们不能从结构观点去描述它,也不能从功能观点去描述它,最好的方法就是从使用者的观点去描述它。n n功能性观点和结构性观点,则可以(ky)通过使用者观点推导出来。第53页/共64页第五十四页,共65页。误区一:(续)误区一:(续)n n例,对电视(dinsh)的描述n n从功能的角度:n n开关、显示、调频道、调声音。n n从用例角度:n n观看电视(dinsh)节目:打开开关,调到自己喜欢的频道,如果声音不合适,可以调节一下。第54页/共64页第五十五页,共65页。误区二:误区二:n n目标和完成目标的步骤n n一个用例是参与者对目标系统的一个愿望,一个完整的事件。n n完成一个完整的事件需要经由很多步骤,但这些步骤不能够(nnggu)完整的反映参与者的目标,不能够(nnggu)作为用例。第55页/共64页第五十六页,共65页。误区二:(续)误区二:(续)n n例:去邮局(yuj)寄信第56页/共64页第五十七页,共65页。例如(lr):对于销售点终端系统来说,一些可能的参与者和他们发起的过程有:参与者事件 销售员登陆用现金结算顾客购买商品退还商品第57页/共64页第五十八页,共65页。通过事件分析通过事件分析(fnx)找出参与者和目标找出参与者和目标n n确定外部确定外部(wib)(wib)事件事件n n有哪些事件,从哪儿产生,为了什么?有哪些事件,从哪儿产生,为了什么?外部事件产生自哪个参与者目标输入单件商品收银员处理销售输入支付信息收银员或顾客处理销售第58页/共64页第五十九页,共65页。n n确定用例EBP级别的用例n n一个好的用例为参与者产生一种可以估量的价值结果n n描述参与者想要系统完成(wn chng)的事情第59页/共64页第六十页,共65页。用例用例n n一组用例是一个系统的用户能够使用系统完成的不同(b tn)任务n n可以通过考虑在系统实现后参与者能够用它来做什么,简单地草拟出这次迭代的一组初步的用例第60页/共64页第六十一页,共65页。定义定义(dngy)用例时的一些经验用例时的一些经验n n命名(mng mng)用例的时候以动词开头n n每个用户目标有一个用例n n例外:CRUD创建搜索更新删除管理(gunl)第61页/共64页第六十二页,共65页。简单(jindn)用例图购买(gumi)商品登 陆退还(tuhun)商品收银员顾客用例图显示了系统的一组用例,用例的参与者以及用例和参与者之间的关系。第62页/共64页第六十三页,共65页。例如,对于销售点终端系统,当分别例如,对于销售点终端系统,当分别(fnbi)(fnbi)以以“商店商店”和和“销售点终端的销售点终端的软件系统软件系统”作为系统边界时,得到的用作为系统边界时,得到的用例图如下:例图如下:购买(gumi)商品登陆(dng l)退还商品POS图1、当以POS作为系统边界时的用例与参与者购买商品退还商品商店图2、当以商店作为系统边界时的用例与参与者出纳员顾客顾客库存系统外部记账系统外部记账系统第63页/共64页第六十四页,共65页。感谢您的观看(gunkn)。第64页/共64页第六十五页,共65页。