用例间的关系_第1页
用例间的关系_第2页
用例间的关系_第3页
用例间的关系_第4页
用例间的关系_第5页
已阅读5页,还剩8页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

...3.4用例之间的关系1、泛化关系Generalization代表一般与特别的关系。(近似于继承)在用例泛化中,子用例表示父用例的特别形式,子用例继承了父用例的行为和属性,也能够增添新的行为和属性或覆盖父用例中的行为。例子:一个租借或销售系统用例的部分内容,在此,父用例是“预约”,其两个子用例分别是“网上预约”和“电话预约”,这两个用例都继承了父用例的行为,并能够增添自己的行为。2、包含关系Include一个用例(基用例,基本用例)能够包含其余用例(包含用例)拥有的行为,并把它所包含的用例行为作为自己用例的一部分,这被称为包含关系。在UML中,包含关系表示为虚线箭头加版型《include》,箭头从基本用例指向包含用例。例子:一个租借或销售系统中,“填写电子表格”的功能在“网上预约”的过程中使用,不论怎样办理“网上预约”用例,老是要运转“填写电子表格”用例,所以拥有包含关系。3、扩展关系Extend一个用例也能够定义为基本用例的增量扩展,这称作扩展关系,即扩展关系是把新的行为插入到已有的用例中的方法。在UML中,包含关系表示为虚线箭头加版型《extend》,箭头从扩展用例指向基本用例。基本用例供给了一组扩展点,在这些新的扩展点中能够增添新的行为,而扩展用例供给了一组插入片段,这些片段能够被插入到基本用例的扩展点上。扩展关系能够有控制条件,当用例实例履行抵达一个扩展点时,控制条件决定能否履行扩展。一般状况下,基本用例的履行不会波及到扩展用例,只有知足用例的控制条件时,扩展用例才被履行,所以扩展关系办理事件流的异样或许可选事件。同一个基本用例的几个扩展能够在一同使用。z.....基本用例不知道扩展的任何细节.没有扩展用例,基本用例是完好的。例子:一个汽车租借系统用例图的部分内容。在此,基本用例是“还车”,扩展用例是“缴纳罚金”。假如全部顺利汽车能够被送还,那么履行“还车”用例即可。可是假如超出了还车的时间或汽车受损,依据规定客户要缴纳必定的罚金,这时就不可以履行供给的惯例动作。若商讨改正用例“还车”,必然会增添系统的复杂性,所以能够在用例“还车”中增添扩展点,即特定条件为超时或破坏,假如知足条件,将履行扩展用例“缴纳罚金”,这样明显能够使系统更简单被理解。4、参加者与用例之间的关系:关系关系Association关系关系描绘参加者与用例之间的关系,在UML中它是两个或多个类元之间的关系,它描绘了类元的实例间的联系。(类元,一种建模元素,常有类元包含类、参加者、构件、数据种类、接口、结点、信号、子系统以及用例等,此中类是最常有的类元。)关系关系表示参加者和用例之间的通讯。在UML中,关系关系用直线或箭头表示。关联中communicates版型是参加者和用例之间独一的版型,一般省略不写。假如参加者启动了用例,箭头指向用例;假如参加者利用了用例供给的服务,箭头指向参加者。假如两者是互动的,则是直线。关系关系表示参加者和用例之间的通讯。不同的参加者能够接见同样的用例,一般说来它们和该用例的交互是不同样的,假如同样的话,说明他们的角色可能是同样的。假如两种交互的目的也同样,说明他们的角色是同样的,就应当将他们归并。例子:一个汽车租借系统用例图的部分内容。这个例子显示的是“客户”参加者以及与他交互的3个用例,“预约”、“取车”、“还车”。“客户”能够启动这3个用例。3.5用例图z.....1、阅读用例图用例图是显示处于同一系统中的参加者和用例之间的关系的图。一个用例图是一个包含参加者、由系统界限关闭的一组用例、参加者和用例之间的关系、用例间的联系以及参加者的泛化等模型元素的图。例子:棋牌馆管理系统用例模型局部系统主要功能:以internet的形式向客户供给座位预约的服务,而且假如临时没法获取座位的饿信息,同意客户进入“等待行列”,当有人退订以后实时通知客户。此外,该系统还将为总台服务员供给作座位安排以及结账的功能,要求能够支持现金和银行卡两种结账方式。系统界限图中有4种元素:参加者、用例、一个方框和一些表示关系的连结线。此中,参加者有3个,分别是客户、总台服务员、和银联POS系统,还包含预约座位、安排座位、办理结账等8个用例。图中有一个方框,全部的用例都在这个方框内,而且它还有一个名字:棋牌馆管理系统。在UML表示法中,这个方框称为“系统界限”,或许“系统范围”,它用来定义系统的界线,系统用例都置于此中,参加者则在界限以外。经过这个系统界限能够很清楚的表述出正在开发的系统的范围。比如,图中明确的指出了该系统在办理银行卡结账时将经过系统外的“银联系统”来达成,银联系统是位于系统外的。参加者与用例之间的关系z.....一个参加者表示用例的使用者在与这些用例进行交互时所饰演的角色。如:当经过Internet预约座位时,这些系统的使用者就是棋牌馆的客户,而只有“总台服务员”拥有安排座位和结账的操作权限。用例之间的关系用例之间的包含和扩展关系是分解和组织用例的有效工具。一个用例是一个事件流的集合(包含基本领件流、扩展事件流等),而包含和扩展表示的跨用例间的事件流是不同样的。[基本领件流:是对用例中惯例、预期路径的描绘,这是大多数时间所碰到的场景,它表现了系统的核心价值。][扩展事件流:主假如对一些异样状况、选择分支进行描绘。]①包含关系:指基用例在它的内部说明的某个地点上显式的归并了另一个用例的行为。在棋牌馆用例图中,用例预约座位就包含了用例检查座位信息。能够假想,当客户预约座位时,自然需要知道座位的信息(能否有空座位,有哪些空座位),所以这两个用例的事件流履行次序以下列图。也就是说,被包含的用例(此例中的检查座位详情)不是孤立存在的,它仅作为某些包含它的更大的基用例(此例中的预定座位、安排座位)的一部分出现。也只有当某个事件流片段在多个用例中出现的时候(本例中,在客户预约座位和总台服务员安排座位时都需要检查座位的详情),才将这个事件流片段抽拿出来,放在一个独自的用例中,这样就能够简化基本用例的事件流描绘,同时也使得整个系统的描绘更为清楚。②扩展关系:指基用例在由扩展用例间接说明的一个地点上隐式的归并了另一个用例的行为。在棋牌馆用例图中,用例办理等待行列就是对用例预约座位的一个扩展。能够假想,当客户预约座位时,假如没有空座位或许客户想要的座位时,客户就有两种选择:一是撤消预定操作,二是进入等侯行列,等系统通知;假若有客户想要的座位,就无需进入等待行列了。也就是说,用例办理等待行列中的事件流其实不是在每次预约座位的时候都会发生。所以这两个用例的事件流履行次序以下列图。所以说,基本用例是能够独立于扩展用例存在的,不过在特定的条件下,它的行为能够被另一个用例的行为所扩展。z.....在实质建模中,只有对那些表示用户看作可选的系统行为的用例才使用扩展关系来建模。经过这种方式,能够把可选行为从一定的行为中分别出来。③泛化关系:在用例图中引入泛化关系。关于参加者而言,泛化关系的引用可有效降低模型的复杂度。如在棋牌馆用例图中,我们能够引入“迎宾员”的角色,而且为了缓解总台压力,希望让迎宾员也能达成“安排座位”的职责,那么能够经过参加泛化来更有效的组织这个用例图。下列图表述了:总台服务员是一种“特别”的迎宾员,他不单能够安排座位,还可以够办理结账。用例之间的泛化则表示子用例继承了父用例的行为和含义;子用例还可以够增添或覆盖父用例的行为,更能够出此刻父用例出现的任何地点。如:在棋牌馆用例图中,用例收款只定义了收款的一般过程,而办理现金结账和办理银行卡结账则是两个子用例,他们达成不同状况下的收款工作。如图读图小结经过以上几部分的解说,不难得出棋牌馆用例图所表示的含义。这张用例图第一定义了三个基本用例:预定座位、安排座位和办理结账。客户经过Internet启动“预定座位”用例,在“预定座位”用例的履行过程中,将“检查座位信息”(被包含用例),假如没有安闲的座位或满意的座位,能够选择进入等待行列,这样就将启动扩展用例“办理等待行列”。总台服务员在客户到棋牌馆时,启动“安排座位”用例,在履行过程中,将启动被包含用例“检查座位信息”。当客户要走开棋牌馆时,总台服务员将启动“办理结账”用例,而且定义了两种“收款”用例,一个是“办理现金结账”,另一个是“办理银行卡结账”,尔后一个用例将经过与外部系统“银联POS系统”交互来达成。3.6用例的描绘z.....正如前面的例子所示,只有棋牌馆用例图(《棋牌馆管理系统用例模型局部》),好多细节信息都没有明确的表示出来,不过勾画了一个大概的系统功能轮廓,这样关于软件开发活动是不够充分的。一个完好的用例模型不单包含用例图,更重要的是它的用例描绘部分,它是后续交互图剖析和类图剖析不行缺乏的部分。用例描绘的是一个系统做什么(what)的信息(即功能需求),其实不说明怎么做(how),怎么做是设计模型的事。1)一般来说,用例描绘采纳自然语言描绘参加者与系统进行交互时的行为。它一般包含以下内容:用例的目标用例是怎么启动的参加者和用例之间的信息是怎样传递的用例中除了主路径,其余路径是什么用例结束后的系统状态其余需要描绘的内容2)用例描绘的格式(用例模板)格式教材P30-31,表3.2和表3.3用例编号[为用例拟订一个独一的编号,往常格式为UCxx]用例名称[应为一个动词短语,让读者了如指掌地知道用例的目标]用例概括[用例的目标,一个纲要性的描绘]范围[用例的设计范围]主参加者[该用例的主Actor,在此列有名称,并简要的描绘它]次要参加者[该用例的次要Actor,在此列有名称,并简要的描绘它]项目有关人利益项目有关人[项目有关人员[从该用例获取的利益]利益说明名称]前置条件[即启动该用例所应当知足的条件。]后置条件[即该用例达成以后,将履行什么动作。]成功保证[描绘目前目标达成后,环境变化状况。]步骤活动基本领件流1[在这里写出触发事件到目标达成以及消除的步骤。]2(此中能够包含子事件流,以子事件流编号来表示)扩展事件流1a[1a表示是对1的扩展,此中应说明条件和活动]1b(此中能够包含子事件流,以子事件流编号来表示)子事件流[对多次重复的事件流能够定义为子事件流,这也是抽取被包含用例的地方。]规则与拘束[对该用例实现时需要考虑的业务规则、非功能需求、设计拘束等]注:表格中加粗是一定编写部分例子:z.....四种常有的错误:P31,例子分别对应了这4种错误和改正。编写重点:1)使用简单的语法:主语明确,语义易于理解,能清楚表述动作即可;2)明确写出“谁控制球”:也就是在事件流描绘中,让读者直观地认识是参加者在控制还是系统在控制;3)从俯视的角度来编写:指出参加者的动作,以及系统的响应,也就是从第三者察看的角度;(4)显示过程向前推移:也就是每一步都有行进的感(比如,用户按下tab键作为一个事件就是不适合的);假如过程繁琐,超出了9步,那么考虑提升目标层次,即“向前推移”5)显示参加者的企图而非动作(假如只描绘了动作,人们不可以够很简单地直接从事件流描绘中理解用例);经过操控系统的用户界面来描绘用户的动作,这是在编写用例常常有的一种严重错误,它使得编写的目标处于一个很低的层次,叫做“界面细节描绘(interfacedetaildescription)”。在需求文档中,我们只关怀界面所要达到的企图,总结在履行者之间传达的信息。可将这些低层次的步骤归并成一个步骤。3.7怎样绘制用例图1、用例剖析技术步骤(不固定,可依据需要调整):⑴找出系统外面的参加者和外面系统,确立系统的界限和范围。⑵确立每一个参加者所希望的系统行为⑶把这些系统行为命名为用例⑷使用泛化、包含、扩展等关系办理系统行为的公共或更改部分⑸编制每一个用例的脚本⑹绘制用例图⑺划分基本领件流和异样状况的事件流,若有需要能够把表示异样状况的事件流作为独自的用例来办理z.....⑻细化用例图,解决用例间的重复与矛盾。2、简例:课表查问系统1)教师、学生、教务管理人员、指导员等等。2)教师、学生能够查问自己的课表;教务管理人员能够管理和保护课表(增、删、改、打印报表等)3)命名studentteacherbrowseCoursescounsellerprintCoursesprinteradministratorchangeCourses4)查问实现不同,包含关系:人的出现、数据库的出现、登录5)(6)(7)登录错误<<extend>>errorstudentlogin人browsebyadministratorteacherbrowseCoursesbrowsebyNoofstudent<<include>>counseller<<include>>printCoursesbrowsebyNoofteacheradministratorchangeCoursesdatabaseprinterz.....3、详细例子:个人图书管理系统⑴用例图的绘制流程⑵记录需求—特征表编号说明FEAT01新增书本信息FEAT02改正已有的书本信息FEAT03书本信息按计算机类、非计算机类分别建档FEAT04录入新书时能够自动按规则生成书号FEAT05计算机类与非计算机类书本采纳不同的书号规则FEAT06录入新书时假如重名将自动提示FEAT07按书名、作者、类型、第一版社等重点字组合查问书本FEAT08列出全部书本信息FEAT09记录外借状况FEAT10外借状态能够自动反响在书本信息中FEAT11按人、按书查问外借状况FEAT12列出全部的外借状况FEAT13按特准时间段统计购置金额、册数FEAT14全部查问、列表、统计功能应能够独自对计算机类或非计算机类进行⑶辨别参加者·使用系统主要功能的人是谁?·系统能够帮助谁?·保护、管理系统的人是谁?·系统能够控制的硬件有?·对系统的结构感兴趣的人或事物?·系统使用哪些软件系统,和被哪些软件系统使用?⑷归并需求获取用例特征用例FEAT01.新增书本信息UC01.新增书本信息FEAT03.书本信息按计算机类、非计算机类分别建档FEAT04.录入新书时能够自动按规则生成书号FEAT05.计算机类与非计算机类书本采纳不同的书号规则FEAT06.录入新书时假如重名将自动提示z.....FEAT02.改正已有的书本信息UC02.改正书本信息FEAT07.按书名、作者、类型、第一版社等重点字组合查问书本UC03.查问书本信息FEAT08.列出全部书本信息FEAT14.全部查问、列表、统计功能应能够独自对计算机类或非计算机类进行FEAT09.记录外借状况UC04.登记外借信息FEAT10.外借状态能够自动反响在书本信息中FEAT11.按人、按书查问外借状况UC05.查问外借信息FEAT12.列出全部的外借状况FEAT14.全部查问、列表、统计功能应能够独自对计算机类或非计算机类进行FEAT13.按特准时间段统计购置金额、册数UC06.统计金额和册数FEAT14.全部查问、列表、统计功能应能够独自对计算机类或非计算机类进行⑸绘制用例图⑹细化用例描绘—A搭框架1.用例名称:新增书本信息(UC01)2.简要说明:录入新购书本信息,并自动储存建档。3.事件流:3.1基本领件流3.2扩展事件流4.非功能需求5.前置条件:用户进入图书管理系统。6.后置条件:达成新书信息的储存建档。z.....7.扩展点:无8.优先级:最高(满意度5,不满意度5)细化用例描绘—B填血肉3.事件流:3.1基本领件流1)图书管理员向系统发出“新增书本信息”恳求;2)系统要求图书管理员选摘要新增的书本是计算机类还是非计算机类;3)图书管理员做出选择后,显示相应界面,让图书管理员输入信息,并自动依据书号规则生成书号;4)图书管理员输入书本的有关信息,包含:书名、作者、、ISBN号、开本、页数、订价、能否有CDROM;5)系统确服输入的信息中书名未有重名;6)系统将所输入的信息储存建档。3.2扩展事件流5a)假如输入的书名有重名现象,则显示出重名的书本,并要求图书管理选择改正书名或撤消输入;5a1)图书管理员选择撤消输入,则结束用例,不做储存建档工作;5a2)图书管理员选择改正书名后,转到5)4.非功能需求:无特别要求4、找寻用例的方法1)启迪性原则:P34和用户交互把自己看作参加者,与假想中的系统进行交互确立用例和确立参加者不可以截然分开2)找寻用例的启迪式问题:P35启迪式问题是针对每一个参加者的。参加者为何要使用该系统?参加者能否会在系统中创立、改正、删除、接见、储存数据?假如是的话,参加者又是怎样来达成这些操作的?参加者能否会将外面的某些事件通知给该系统?系统能否会将内部的某些事件通知该参加者?z.....3.8常有问题剖析问题:在一个系统中,有几个相像的功能,那么将他们放在同一个用例中,仍是分红几个用例?假定有这样的需求,在学生档案管理中,管理员常常要做3件事:增添一条学生记录、改正一条学生记录、删除一条学生记录。假如要画出用例图,则以下两种方法哪一种更适合?方法1:用比以下图,分红3个脚本,分别画3个交互图。脚本1为增添学生记录,脚本2为改正学生记录,脚本3为删除学生记录。方法2:用比以下图,此后每个用例画一个交互图。注:交互图包含次序图和协作图答:从捕捉用户需求的角度考虑,(教材)建议采纳方法1.采纳方法2的一个主要问题是限制了剖析人员的思路,固然从用例图能够发现,对学生记录的操作有增添、改正和删除,但事实上,用户的真实目的可能不是对记录进行增添、修改或删除,而是其余目的.如学生转学这个要求,固然这个要求会波及学生记录的增添、改正和删除,但假如采纳了方法2有可能会忽略了学生转学这个真实的用户需求.采纳了方法2的剖析人员常常仍是从数据办理的角度考虑,而不是从捕捉用户需求的角度考虑.该例子是用例剖析中一个典

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论