1、软件体系结构第三章 用例图用例图n内容与目标内容与目标q需求分析与用例图需求分析与用例图 q用例图概念用例图概念n构成要素构成要素 n重要元素重要元素n重要关系重要关系n用例描述用例描述q创建用例图创建用例图需求分析与用例图需求分析与用例图 n需求的概念需求的概念q需求:系统必须满足的条件或具备的能力qRobert Grady软件质量准则“FURPS”n功能性(Functionality)n使用性(Usability)n可靠性(Reliability)n性能(Performance)n可支持性(Supportability)需求分析与用例图需求分析与用例图n需求分析的重要性需求分析的重要性q
2、需求分析与用例图需求分析与用例图n需求分析的困难需求分析的困难q例:石头问题例:石头问题n客户描述:客户描述:“”q差不多,但我要小一点的q很好,不过我要蓝色的q啊,没有那么小q咳,还是原来那个好了 需求分析与用例图需求分析与用例图n从哪里开始?从哪里开始?q如何解决如何解决用例用例q软件软件 从用例图开始从用例图开始需求分析与用例图需求分析与用例图n从哪里开始从哪里开始用例图用例图q用例建模的最主要功能最主要功能就是用来表达系统的功能性需求或行为;q用例建模可分为用例图和用例描述;q用例图是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统,是外部参与者所能观察到的系统功能的模型图
3、,该图呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模,用画图的方法来完成;q用例描述用来详细描述用例图中每个用例,用文本文档来完成。用例图概念用例图概念n用例图用例图Use Case Diagramq用例图用例图由参与者Actor、用例Use Case以及它们之间的关系构成的用于描述系统功能的动态视图。n用例:用例:椭圆符号,用例的名称可放在椭圆的中心或椭圆下面的中间位置。n参与者:参与者:人形符号,表示一个系统用户,。n关系:关系:使用带箭头或者不带箭头的线段来描述q箭头表示在这一关系中哪一方是对话的主动发起者q箭头所指方是对话的被动接受者用例图
4、概念用例图概念n用例图的概念用例图的概念q注释注释:在用例建模中,为了更加清楚的描述用例或者参与者,可使用注释。用例图概念用例图概念重要元素重要元素n参与者参与者Actorq参与者是系统外部的一个实体,以某种方式参与用例的执行过程。是为了完成一个事件与系统进行交互的实体,是与系统交互作用的外部用户、进程或其他系统的理想化概念。q在UML中,参与者用名字写在下面的人形图标表示q参与者可以是任何事物n人、外部系统、硬件设备、时间等参与者用例图概念用例图概念重要元素重要元素n参与者参与者Actor用例图概念用例图概念重要元素重要元素n参与者参与者Actor用例图概念用例图概念构成构成n参与者参与者A
5、ctor用例图概念用例图概念重要元素重要元素n参与者参与者Actorq参与者的识别原则参与者的识别原则n谁将使用该系统的主要功能n谁将需要该系统的支持以完成其工作n谁将需要安装、维护、管理该系统,以及保持该系统处于工作状态n系统需要处理哪些硬件设备n与该系统发生交互的是什么系统 n谁或什么系统对本系统产生的结果感兴趣用例图概念用例图概念重要元素重要元素n参与者参与者Actorq参与者的识别过程:考勤卡管理参与者的识别过程:考勤卡管理开发者开发者:谁将使用这个应用程序?客客 户户:所有用它来记录考勤工时的雇员开发者开发者:现在考勤卡应用程序是什么样的?客客 户户:每半个月就用一个Excel表格来
6、记录。每个雇员都将通过他的表格填好,然后用电子邮件发给我。这个表格相当标准:纵向是收费项目代码,横向是日期。雇员可以在每个条目上填写说明。开发者开发者:这个项目需要和那些外部系统交互?开发者开发者:谁来修改系统代码?客客 户户:嗯,必要的时候由我(业务经理)来修改系统代码。当然,我要按照人事经理的要求来操作EmployeeAdministrative User用例图概念用例图概念重要元素重要元素n参与者参与者Actorq参与者之间的关系参与者之间的关系n多个参与者之间可以具有关系n例:图书馆管理系统的借书者可泛化泛化为两类:学生和老师;航空售票系统的客户可泛化泛化为电话预定客户和网上预定客户学
7、生借书者客户老师电话客户网上客户用例图概念用例图概念重要元素重要元素n参与者参与者Actorq参与者之间的关系参与者之间的关系n一般情况,参与者之间的关系可以用下图描述特殊化参与者超类参与者特殊化参与者用例图概念用例图概念重要元素重要元素n参与者参与者Actorq课堂练习:识别参与者n寻呼台系统:用户如果预定了天气预报,系统每天定时给他发天气消息;如果当天气温高于35度,还要提醒用户注意防暑;n在这个叙述里,谁是寻呼台系统的Actor?用户?气温?时间?用户 气象台用例图概念用例图概念重要元素重要元素n用例用例use caseq用例是外部可见的系统功能单元。q用例是对一个系统或应用的一种单一的
8、使用方式使用方式所作的描述。q用例的用途是,在不揭示系统内部构造的前提下定义系统的行为。q在UML中,用例用一个椭圆来表示,用例的名字可以写在椭圆的下方。q用例的名字是唯一的,以区别于其它用例。用例名用例图概念用例图概念重要元素重要元素n用例用例use caseq用例的识别用例的识别n用例图对整个系统的建模过程非常重要,在绘制系统用例图前,有许多工作需要做。n参与者描述了“谁来做谁来做”,而用例要描述的是“做什么做什么”n识别用例最好的方法就是从分析系统的参与者开始,考虑每个参与者是如何使用系统的。n在识别用例的过程中也可能会发现新的参与者。用例图概念用例图概念重要元素重要元素n用例用例use
9、 caseq用例的识别原则用例的识别原则n特定参与者希望系统提供什么功能n系统是否存储和检索信息,如果是,由哪个参与者触发n当系统改变状态时,是否通知参与者 n是否存在影响系统的外部事件n哪个参与者通知系统这些事件用例图概念用例图概念重要元素重要元素n用例用例use caseq用例的识别用例的识别n具体可以通过具体可以通过查找事件查找事件的方式来识别用例:的方式来识别用例:主语谓语宾语主语谓语宾语已被识别出来的参与者动作动词涉及的目标读者读者借阅借阅书籍书籍用例图概念用例图概念重要元素重要元素n用例用例use caseq用例的识别过程:考勤卡管理用例的识别过程:考勤卡管理开发者开发者:谁将使用
10、这个应用程序?客客 户户:所有用它来记录考勤工时的雇员开发者开发者:现在考勤卡应用程序是什么样的?客客 户户:每半个月就用一个Excel表格来记录。每个雇员都将通过他的表格填好,然后用电子邮件发给我。这个表格相当标准:纵向是收费项目代码,横向是日期。雇员可以在每个条目上填写说明。开发者开发者:这个项目需要和那些外部系统交互?开发者开发者:谁来修改系统代码?客客 户户:嗯,必要的时候由我(业务经理)来修改系统。当然,我要按照人事经理的要求来操作Record TimeCreate Charge Code用例图概念用例图概念重要元素重要元素n用例用例use caseq用例的识别用例的识别n用例的识别
11、顺序是参与用例的识别顺序是参与者者事件事件用例用例n用例必须是由系统处理的用例必须是由系统处理的工作,结果由系统生成工作,结果由系统生成n用例是从用户视角看问题,用例是从用户视角看问题,而不是系统视角而不是系统视角n用例命名格式是用例命名格式是“动词动词+宾语宾语”,同时应使用用户,同时应使用用户词汇,而不是技术词汇词汇,而不是技术词汇q如:发票,商品,洗衣机如:发票,商品,洗衣机q而不是:记录,字段,而不是:记录,字段,COM,C+等等出纳员吃饭?订票?旅客?查看今日航班顾客购买商品信用卡支付用例图概念用例图概念重要元素重要元素n用例用例use caseq课堂练习:识别用例nEmail客户端
12、(如:outlook express),A在北京发邮件给上海的B,系统提醒B有“新邮件”,从而B收邮件收件人发件人发邮件收邮件邮件邮箱系统提醒新邮件用例图概念用例图概念重要元素重要元素n用例用例use caseq用例的粒度用例的粒度n用例的粒度用例的粒度指的是用例所包含的系统服务或功能单元的多少。用例的粒度越大,用例包含的功能越多,反之则包含的功能越少。n如果用例的粒度很小,得到的用例数就会太多。反之,如果用例的粒度很大,那么得到的用例数就会很少。n如果用例数目过多会造成用例模型过大和引入设计困难大大提高。如果用例数目过少会造成用例的粒度太大,不便于进一步的充分分析。n最常犯错误:粒度过细,陷
13、入功能分解过细的粒度,一般都会导致技术语言的描述,而不再是业务语言用例图概念用例图概念重要关系重要关系n参与者与用例之间的关系参与者与用例之间的关系q关联关系关联关系n关联关系表示参与者和用例之间的通信。n用例与其参与者之间的关联关系用带箭头的直线表示。n任何用例都不能在缺少参与者的情况下存在;任何参与者也必须要有与之关联的用例。用例参与者用例间的关联关系用例图概念用例图概念重要关系重要关系n用例之间的关系用例之间的关系q用例除了与其参与者发生关联外,用例之间具有多种关系,这些关系包括包含关系、扩展关系和泛化包含关系、扩展关系和泛化关系关系等。用例1用例2用例图概念用例图概念重要关系重要关系n
14、用例之间的关系用例之间的关系q泛化关系泛化关系n如果系统中一个或多个用例是某个一般用例的特殊化特殊化时,就需要使用用例的泛化关系。n在UML中,用例泛化与其他泛化关系的表示法相同,用一个三角箭头三角箭头从子用例指向父用例。父用例子用例用例间的泛化关系用例图概念用例图概念重要关系重要关系n用例之间的关系用例之间的关系q泛化关系泛化关系n例1:查找(同一任务不同对象)n例2:识别(同一任务不同方法)SearchPersonSearchStudentSearchTeacher识别用户识别用户验证口令验证口令扫描指纹扫描指纹用例图概念用例图概念重要关系重要关系n用例之间的关系用例之间的关系q包含关系包
15、含关系n用例的包含关系是把一件事情划分为多个步骤处理ChangePersonDetailsViewPersonDetailsDeletePersonDetailsSearchPersonSearchPersonSearchPerson用例图概念用例图概念重要关系重要关系n用例之间的关系用例之间的关系q包含关系包含关系n包含关系把几个用例的公共步骤分离成一个单独的被包含用例n被包含用例称作提供者用提供者用例(基本用例),例(基本用例),包含用例称作客户用例客户用例,提供者用例提供功能给客户使用。n包含用例不能单独执行,必须与基本用例一起执行n包含用例没有特定的actor,包含用例的actor实际
16、上是基本用例的actorChangePersonDetailsViewPersonDetailsDeletePersonDetailsSearchPerson客户用例提供者用例用例间的包含关系用例图概念用例图概念重要关系重要关系n用例之间的关系用例之间的关系q包含关系包含关系用例图概念用例图概念重要关系重要关系n用例之间的关系用例之间的关系q扩展关系扩展关系n一个用例也可以被定义为基础用例的增量扩展,这称作扩展关系n扩展关系是把新的行为插入到已有用例把新的行为插入到已有用例中的方法。n例:还书,超期还书交纳罚金还书交纳罚金用例图概念用例图概念重要关系重要关系n用例之间的关系用例之间的关系q扩展
17、关系扩展关系n在UML中,扩展关系表示为虚线箭头加字样,箭头指向被扩展的用例(即基础用例)。n基础用例的扩展增加了原有的语义,此时是基础用例而不是扩展用例被作为例子使用。基础用例扩展用例用例间的扩展关系用例图概念用例图概念重要关系重要关系思考:思考:扩展扩展泛化泛化用例图概念用例图概念重要关系重要关系思考:思考:包含包含包含包含用例图概念用例图概念用例描述用例描述n用例描述用例描述q用例描述是指对一个用例的功能进行的文字描述用例描述是指对一个用例的功能进行的文字描述,是参与者与系统交互动作序列的说明是参与者与系统交互动作序列的说明.q用例采用自然语言描述参与者与系统的交互行为用例采用自然语言描
18、述参与者与系统的交互行为,要易于理解。其读者是开发人员、用户、项目经理、要易于理解。其读者是开发人员、用户、项目经理、测试人员等。测试人员等。q用例描述是用例的主要部分用例描述是用例的主要部分,是后续的交互图分析是后续的交互图分析和类图分析必不可少的部分和类图分析必不可少的部分.用例图概念用例图概念用例描述用例描述n用例用例use caseq用例描述(用例规约)用例描述(用例规约)n对于每一个用例,需要有详细的描述信息,以便让别人了解整个系统。用例描述一般包含以下内容:q简要说明:对用例作用和目的的简要描述。q事件流:事件流包括基本流和备选流。基本流描述的是用例的基本流程,是指用例“正常”运行
19、时的场景。q用例场景:同一个用例在实际执行的时候会有很多不同的情况发生,称之为用例场景,也可以说用例场景就是用例的实例。q特殊需求:特殊需求指的是一个用例的非功能性需求和设计约束。特殊需求通常是非功能性需求,包括可靠性、性能、可用性和可扩展性等。例如法律或法规方面的需求、应用程序标准和所构建系统的质量属性等。q前置条件:执行用例之前系统必须所处的状态。例如,前置条件是要求用户有访问的权限或是要求某个用例必须已经执行完。q后置条件:用例执行完毕后系统可能处于的一组状态。例如,要求在某个用例执行完后,必须执行另一个用例。1.用例名称:新增书籍信息(UC01)2.简要说明:录入新购书籍信息,并自动存
20、储建档。3.事件流:3.1 基本事件流 3.2 扩展事件流4.用例场景:唯一场景5.特殊需求:无6.前置条件:用户进入图书管理系统。7.后置条件:完成新书信息的存储建档。用例图概念用例图概念用例描述用例描述用例图概念用例图概念用例描述用例描述n用例描述用例描述q描述用例的关键要素描述用例的关键要素:用例何时开始(前置条件)、何时结束(后置条件)、参与者何时与用例交互、交互了什么信息,以及用例执行的基本事件流基本事件流和扩展事件流扩展事件流n事件流q事件流就是一个用例在执行时参与者与系统之间的交互过程。q事件流的目的是为用例的逻辑流程建立文档,这个文档详细描述系统用户的工作和系统本身的工作。q事
21、件流分为基本事件流和扩展事件流两种。q用例描述模板用例描述模板?用例描述有两种格式:一种是纯文本格式,另一种是表格形式。描述项说明用例名称表明用户的意图或用例的用途,与用例图相符标识符可选惟一标识符,便于引用该用例用例描述概述用例的几句话参与者与此用例相关的参与者优先级一个有序的排列,1代表优先级最高场景可选用例场景或状态前置条件一个条件列表,这些条件必须在访问用例前得到满足后置条件一个条件列表,这些条件必须在用例完成之后得到满足主事件流描述用例中各项工作都顺利进行时用例的工作方式扩展事件流描述变异工作方式、出现异常或发生错误的情况下的路径用例图概念用例图概念用例描述用例描述n用例描述格式用例
22、描述格式用例图概念用例图概念用例描述用例描述n用例描述格式用例描述格式描述项说明被泛化的用例此用例所泛化的用例列表被包含的用例此用例所包含的用例列表被扩展的用例此用例所扩展的用例列表修改历史记录可选关于用例的修改时间、修改原因、修改人的详细信息问题可选与此用例的开发有关的问题列表决策可选关键决策的列表,将这些决策信息记录下来以便维护时使用频率可选参与者访问此用例的频率,如:每日一次/每月一次等用例图概念用例图概念用例描述用例描述n用例描述用例描述q用例描述容易出现的错误用例描述容易出现的错误n只描述系统的行为,没有描述参与者的行为n只描述参与者的行为,没有描述系统的行为n在用例描述中就设定了对
23、用户界面的设计的要求n描述过于冗长Use case:Withdraw cashActor:customer主事件流:主事件流:(1)储户插入储户插入ATM卡卡,并输入密码并输入密码(2)储户按储户按“取款取款”按钮按钮,并输入取款数并输入取款数目目(3)储户取走现金储户取走现金/ATM卡卡/收据收据(4)储户离开储户离开Use case:Withdraw cashActor:customer主事件流:主事件流:ATM系统获得系统获得ATM卡和密码卡和密码设置交易类型为设置交易类型为“取款取款”ATM系统获得取款金额系统获得取款金额输出现金、收据和输出现金、收据和ATM卡卡系统复位系统复位只描述
24、了只描述了actor的行为的行为只描述了只描述了System的行为的行为ATM系统系统“取取款款”用例的两个用例的两个错误描述:错误描述:n用例描述用例描述qATM系统系统“取款取款”用例的正确描述:用例的正确描述:用例图概念用例图概念用例描述用例描述Use case:Withdraw cashActor:customer主事件流:主事件流:储户通过读卡机插入储户通过读卡机插入ATM卡卡ATM系统从卡上读取银行系统从卡上读取银行ID、账号、加密密码、账号、加密密码,并通过主银行系统验证银行并通过主银行系统验证银行ID和账号和账号储户输入密码储户输入密码,ATM系统根据加密密码对输入密码进行验证
25、系统根据加密密码对输入密码进行验证储户按储户按“取款取款”按钮按钮,并输入取款数目并输入取款数目,该数目应该为该数目应该为100的倍数的倍数ATM系统通知主银行系统系统通知主银行系统,传递账号和金额传递账号和金额,并接收返回的确认信息和账户余额并接收返回的确认信息和账户余额ATM系统输出现金、系统输出现金、ATM卡和收据卡和收据ATM系统记录交易到日志文件系统记录交易到日志文件创建用例图创建用例图n用例分析的基本流程用例分析的基本流程q基本功能分析基本功能分析q参与者分析参与者分析n找出系统外部的参与者和外部系统,确定系统边界和范围n确定每一个参与者所期望的系统行为q用例分析用例分析n用例初步
26、确定进一步确定n用例关系分析q初步绘制用例图初步绘制用例图 q用例描述用例描述q细化用例图细化用例图,解决用例间重复与冲突的问题解决用例间重复与冲突的问题.创建用例图创建用例图n实例分析:语音邮箱系统实例分析:语音邮箱系统q基本功能分析基本功能分析n语音邮箱系统中,可以为每个系统用户(邮箱主人)分配一个语音邮箱号码。n进行留言时,拨打语音邮箱系统的主号码,在听到提示音“请输入邮箱号”后,输入语音邮箱号,听到主人设定的问候语后,进行留言然后挂断电话。n邮箱主人拨打语音邮箱系统的主号码,在听到提示音“请输入邮箱号”后,输入语音邮箱号,听到主人设定的问候语后,输入密码+#进行邮箱管理。此时系统提供三
27、种服务:1.接收信息;2.更改问候语;3.更改密码。其中接收留言包括收听新留言、存储留言、删除留言等。创建用例图创建用例图n实例分析:语音邮箱系统实例分析:语音邮箱系统q参与者分析参与者分析n参与者:参与者:留言人、邮箱主人留言人、邮箱主人n系统行为分析系统行为分析q留言人留言留言人留言q邮箱主人管理信息:收听邮箱主人管理信息:收听/存储存储/删除。删除。q邮箱主人更改问候语。邮箱主人更改问候语。q邮箱主人更改密码。邮箱主人更改密码。创建用例图创建用例图n实例分析:语音邮箱系统实例分析:语音邮箱系统q用例分析用例分析n用例初步确定用例初步确定q留言人:保留信息留言人:保留信息q邮箱主人:接收信
28、息、更改问候语、更改密码邮箱主人:接收信息、更改问候语、更改密码n用例进一步确定用例进一步确定q留言人:拨打邮箱号码留言人:拨打邮箱号码q邮箱主人:拨打邮箱号码、登录邮箱邮箱主人:拨打邮箱号码、登录邮箱n用例关系分析用例关系分析q留言人角度:包含关系留言人角度:包含关系q邮箱主人角度:包含关系邮箱主人角度:包含关系创建用例图创建用例图n实例分析:语音邮箱系统实例分析:语音邮箱系统q初步绘制用例图初步绘制用例图创建用例图创建用例图n实例分析:语音邮箱系统实例分析:语音邮箱系统q用例描述用例描述n拨打邮箱号拨打邮箱号q呼叫者拨打语音邮件系统的主号码。q语音邮件系统发出提示音:输入邮箱号码并加#号。
29、q呼叫者输入接收者的邮箱号。q语音邮件系统发出问候语:已进入XX的邮箱,请留言。n保留信息保留信息q呼叫者完成邮箱号输入操作.q呼叫者说出信息.q呼叫者挂断电话.q语音邮件系统将记录的信息存放在接收者的邮箱中.创建用例图创建用例图n实例分析:语音邮箱系统实例分析:语音邮箱系统q用例描述用例描述n登录系统登录系统q邮箱用户完成邮箱号输入操作.q邮箱用户键入密码并后跟#键.(默认号码与邮箱号相同)q语音邮件系统播放邮箱菜单:按1键接收信息.按2键更改密码.按3键更改问候语.创建用例图创建用例图n实例分析:语音邮箱系统实例分析:语音邮箱系统q用例描述用例描述n更改问候语更改问候语q略略n更改密码更改
30、密码q略略n接收语音信息接收语音信息q略略创建用例图创建用例图n实例分析:语音邮箱系统实例分析:语音邮箱系统q细化用例图细化用例图,解决用例间重复与冲突的问题更改问候语解决用例间重复与冲突的问题更改问候语n拨打邮箱号重复,可以合并拨打邮箱号重复,可以合并创建用例图创建用例图n课堂练习:图书管理系统课堂练习:图书管理系统q基本功能:基本功能:n读者:借书、还书,书籍预订;n图书馆管理员:书籍借出、书籍归还、预订信息n系统管理员:增加书目、删除或更新书目、增加书籍、减少书籍、增加读者账户信息、删除或更新读者账户信息、书籍信息查询、读者信息查询等。q请按照用例分析基本流程绘制用例图请按照用例分析基本流程绘制用例图q要求要求使用使用rose或者或者PowserDesigner