1、第五章用例图学习内容n什么叫用例图n用例图的构成要素n用例的重要元素n用例之间的关系n使用Rose创建用例的步骤说明什么叫用例图由参与者(Actor)、用例(UseCase)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。要在用例图上显示某个用例,可绘制一个椭圆,然后将用例的名称放在椭圆的中心或椭圆下面的中间位置。要在用例图上绘制一个参与者(表示一个系统用户),可绘制一个人形符号。参与者和用例之间的关系使用带箭头或者不带箭头的线段来描述,箭头表示在这一关系中哪一方是对话的主动发起者,箭头所指方是对话的被动接受者。什么叫用例图n在用例建模中,为了更加清楚的描述用例或者参与
2、者,会使用到注释。什么叫用例图n用例图是需求分析中的产物,主要作用是描述参与者和用例之间的关系,帮助开发人员可视化的了解系统的功能。借助于用例图,系统用户、系统分析人员、系统设计人员、领域专家能够以可视化的方式对问题进行探讨,减少了大量交流上的障碍,便于对问题达成共识。n用例图可视化地表达了系统的需求,具有直观、规范等优点,克服了纯文字性说明的不足。n用例方法是完全从外部来定义系统功能,它把需求和设计完全的分离开来。我们不用关心系统内部是如何完成各种功能的,系统对于我们来说就是一个黑箱子。用例图的构成要素n参与者(Actor)是指存在于系统外部并直接与系统进行交互的人、系统、子系统或类的外部实
3、体的抽象。n每个参与者可以参与一个或多个用例,每个用例也可以有一个或多个参与者。n在用例图中使用一个人形图标来表示参与者,参与者的名字写在人形图标下面。用例图的构成要素n由于参与者实质上也是类,所以它拥有与类相同的关系描述,即参与者与参与者之间主要是泛化关系(或称为“继承”关系)。n泛化关系的含义是把某些参与者的共同行为提取出来表示成通用行为,并描述成超类。泛化关系表示的是参与者之间的一般/特殊关系,在UML图中,使用带空心三角箭头的实线表示泛化关系。用例图的构成要素n在项目开发过程中,边界是一个非常重要的概念。这里说的系统边界是指系统与系统之间的界限。通常我们所说的系统可以认为是由一系列的相
5、部的某些事件通知给系统?(4)系统中发生的事件是否通知参与者?(5)是否存在影响系统的外部事件。用例的重要元素n用例的粒度指的是用例所包含的系统服务或功能单元的多少。用例的粒度越大,用例包含的功能越多,反之则包含的功能越少。n如果用例的粒度很小,得到的用例数就会太多。反之,如果用例的粒度很大,那么得到的用例数就会很少。n如果用例数目过多会造成用例模型过大和引入设计困难大大提高。如果用例数目过少会造成用例的粒度太大,不便于进一步的充分分析。用例的重要元素比如:网站后台管理系统中的会员信息维护用例,管理员需要进行添加会员信息、修改会员信息、删除会员信息等操作。我们还可以根据具体的操作把它抽象
6、成3个用例,它展示的系统需求和单个用例是完全一样的。用例的重要元素n对于每一个用例,我们还需要有详细的描述信息,以便让别人对于整个系统有一个更加详细的了解,这些信息包含在用例规约之中。n每一个用例的用例规约都应该包含以下内容:(1)简要说明:对用例作用和目的的简要描述。(2)事件流:事件流包括基本流和备选流。基本流描述的是用例的基本流程,是指用例“正常”运行时的场景。(3)用例场景:同一个用例在实际执行的时候会有很多不同的情况发生,称之为用例场景,也可以说用例场景就是用例的实例。(4)特殊需求:特殊需求指的是一个用例的非功能性需求和设计约束。特殊需求通常是非功能性需求,包括可靠性、性
7、能、可用性和可扩展性等。例如法律或法规方面的需求、应用程序标准和所构建系统的质量属性等。(5)前置条件:执行用例之前系统必须所处的状态。例如,前置条件是要求用户有访问的权限或是要求某个用例必须已经执行完。(6)后置条件:用例执行完毕后系统可能处于的一组状态。例如,要求在某个用例执行完后,必须执行另一个用例。用例之间的关系n包含关系指用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。在UML中,包含关系是通过带箭头的虚线段加字样来表示,箭头由基础用例(Base)指向被包含用例(Inclusion)。用例之间的关系n包含关系代表着基础用例会用到被包含用例,具体
8、的讲就是将被包含用例的事件流插入到基础用例的事件流中。需要注意的是,包含关系是UML1.3中的表述,在UML1.1中,同等语义的关系被表述为使用(uses)。用例之间的关系n在处理包含关系时,具体的做法就是把几个用例的公共部分单独的抽象出来成为一个新的用例。主要有两种情况需要用到包含关系:n第一,多个用例用到同一段的行为,则可以把这段共同的行为单独抽象成为一个用例,然后让其他用例来包含这一用例。n第二,某一个用例的功能过多、事件流过于复杂时,我们也可以把某一段事件流抽象成为一个被包含的用例,以达到简化描述的目的。用例之间的关系n在一定条件下,把新的行为加入到已有的用例中,获得的新用例叫做扩展
9、用例(Extension),原有的用例叫做基础用例(Base),从扩展用例到基础用例的关系就是扩展关系。n一个基础用例可以拥有一个或者多个扩展用例,这些扩展用例可以一起使用。用例之间的关系n用例的泛化指的是一个父用例可以被特化形成多个子用例,而父用例和子用例之间的关系就是泛化关系。n在用例的泛化关系中,子用例继承了父用例所有的结构、行为和关系,子用例是父用例的一种特殊形式。n子用例还可以添加、覆盖、改变继承的行为。在UML中,用例的泛化关系通过一个三角箭头从子用例指向父用例来表示。用例之间的关系n泛化的示例:银行存款有两种方式,一种是银行柜台存款,一种是ATM机存款。在这里,银行柜台存款和AT
10、M机存款都是存款的一种特殊方式,因此“存款”为父用例,“银行柜台存款”和“ATM机存款”为子用例。系统的主要功能是:包括项目管理,资源管理系统的主要功能是:包括项目管理,资源管理和系统管理三大管理功能。和系统管理三大管理功能。1.项目管理包括项目的增加、删除、更新。项目管理包括项目的增加、删除、更新。2.资源管理包括对资源和技能的添加、删除资源管理包括对资源和技能的添加、删除和更新。和更新。3.系统管理包括系统的启动和关闭,数据的系统管理包括系统的启动和关闭,数据的存储和备份等功能。存储和备份等功能。说明:技能表示人力资源。说明:技能表示人力资源。到确定到确定项目管理员、资源管理
12、技能更新技能资源管理员资源管理员添加资源添加资源删除资源删除资源更新资源更新资源查找技能查找技能查找资源查找资源把技能指把技能指定给资源定给资源从资源中从资源中清除技能清除技能图可以自顶而下不断精化,抽图可以自顶而下不断精化,抽象出不同层次的象出不同层次的图。图。系统管理员系统管理员项目管理员项目管理员资源管理员资源管理员资源管理资源管理项目管理项目管理系统管理系统管理注:这里的“技能”是指人力资源。项目项目管理员管理员添加项目添加项目删除项目删除项目更新项目更新项目添加活动添加活动删除活动删除活动更新活动更新活动查找项目查找项目添加任务添加任务分配资源分配资源给任务给任务取消对任务取消对任务
13、的资源分配的资源分配删除任务删除任务更新任务更新任务系统管理系统管理员员添加技能添加技能存储数据存储数据启动系统启动系统关闭系统关闭系统查找技能查找技能备份资备份资源数据源数据备份项备份项目数据目数据备份数据备份数据备份系统备份系统为了对危重病人进行为了对危重病人进行随时了解病人病情,及时随时了解病人病情,及时进行处理,建立病房监护系统。进行处理,建立病房监护系统。病症监视器安置在每个病床,通过网络将病人的病症信号病症监视器安置在每个病床,通过网络将病人的病症信号(组合)实时传送到中央监护系统进行分析处理。(组合)实时传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统对
14、病员的情在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报告和更新病历。并打印病情报告和更新病历。系统根据医生的要求随时打印病人的病情报告,系统定期系统根据医生的要求随时打印病人的病情报告,系统定期自动更新病历。自动更新病历。请对系统需求进行分析!请对系统需求进行分析!经过初步的需求分析,得到系统功能要求:经过初步的需求分析,得到系统功能要求:1.1.监视病员的
15、病症(血压、体温、脉搏等)监视病员的病症(血压、体温、脉搏等)2.2.定时更新病历定时更新病历3.3.病员出现异常情况时报警。病员出现异常情况时报警。4.4.随机地产生某一病员的病情报告。随机地产生某一病员的病情报告。例例22医院病房监护系统医院病房监护系统产生产生病情报告病情报告监视病情监视病情更新病历更新病历对对“医院病房监护系统医院病房监护系统”进行分析,确定系统的主要功能如下:进行分析,确定系统的主要功能如下:1.病症监视器可以将采集到的病症信号(组合),格式化后实时的传送到病症监视器可以将采集到的病症信号(组合),格式化后实时的传送到中央监护系统。中央监护系统。2
16、.中央监护系统将病人的病症信号开解后与标准的病症信号库里的病症信中央监护系统将病人的病症信号开解后与标准的病症信号库里的病症信号的正常值进行比较,当病症出现异常时系统自动报警。号的正常值进行比较,当病症出现异常时系统自动报警。3.当病症信号异常时,系统自动更新病历并打印病情报告。当病症信号异常时,系统自动更新病历并打印病情报告。4.值班护士可以查看病情报告并进行打印。值班护士可以查看病情报告并进行打印。5.医生可以查看病情报告,要求打印病情报告,也可以查看或要求打印病医生可以查看病情报告,要求打印病情报告,也可以查看或要求打印病历。历。6.系统定期自动更新病历。系统定期自动更新病历。
17、需求分析(1)谁使用系统的主要功能?谁使用系统的主要功能?(2)谁需要系统的支持以完成日常工作任务?谁需要系统的支持以完成日常工作任务?(3)谁负责维护,管理并保持系统正常运行?谁负责维护,管理并保持系统正常运行?(4)系统需要应付(或处理)哪些硬设备?系统需要应付(或处理)哪些硬设备?(5)系统需要和哪些外部系统交互?系统需要和哪些外部系统交互?(6)谁(或什么)对系统运行产生的结果(值)感兴趣?谁(或什么)对系统运行产生的结果(值)感兴趣?需求分析通过回答这六个问题以后,再进一步分析可以识别出本系统的四个角色:通过回答这六个问题以后,再进一步分析可以识别出本系统的四个角色:。角色描述模板:
18、角色描述模板:角色:角色:病病人人角色职责:角色职责:提供病症信号提供病症信号角色职责识别:角色职责识别:负责生成、实时提负责生成、实时提供各种病症信号。供各种病症信号。角色:角色:值班护士值班护士角色职责:角色职责:负责监视病人的病负责监视病人的病情变化情变化角色职责识别:角色职责识别:(1)使用系统主要功能使用系统主要功能(2)对系统运行结果感对系统运行结果感兴趣兴趣角色角色:标准病症信号库标准病症信号库角色职责:角色职责:负责向系统提供病症负责向系统提供病症信号的正常值信号的正常值角色职责识别:角色职责识别:(1)负责保持系统正负责保持系统正常运行常运行(2)与系统交互与系统交
19、互角色:角色:医医生生角色职责:角色职责:对病人负责,负责对病人负责,负责处理病情的变化处理病情的变化角色职责识别:角色职责识别:(1)需要系统支持需要系统支持以完成其日常工作以完成其日常工作(2)对系统运行结果对系统运行结果感兴趣感兴趣角色描述回答下面的问题:回答下面的问题:与系统实现有关的主要问题是什么?与系统实现有关的主要问题是什么?系统需要哪些输入系统需要哪些输入/输出?这些输入输出?这些输入/输出从何而来?到输出从何而来?到哪里去?哪里去?执行者需要系统提供哪些功能?执行者需要系统提供哪些功能?执行者是否需要对系统中的信息进行读、创建、修改、删除或存储?执行者是否需要
20、对系统中的信息进行读、创建、修改、删除或存储?通过分析可以初步识别出系统的用例为:通过分析可以初步识别出系统的用例为:中央监护中央监护,病症监护病症监护,提供标准提供标准病症信号病症信号,病历管理病历管理,病情报告管理病情报告管理。顶层用例图为:。顶层用例图为:通过分析可以初步识别出系统的用例为:中央监护,病症监护,提供标准病通过分析可以初步识别出系统的用例为:中央监护,病症监护,提供标准病症信号,病历管理,病情报告管理。顶层用例图为:症信号,病历管理,病情报告管理。顶层用例图为:医院病房监护系统高层用例图医院病房监护系统高层用例图值班护值班护士士医生医生病人病人标准病症标准病症信号库信号
21、库病症监护病症监护提供标准提供标准病症信号病症信号中央监护中央监护病历管理病历管理病情报告管理病情报告管理进一步将用例细化,即分解用例:进一步将用例细化,即分解用例:分解分解:将从病症监护器传送来的组合病症信号分解为系统可以处理的将从病症监护器传送来的组合病症信号分解为系统可以处理的信号。信号。将病人的病症信号与标准信号比较将病人的病症信号与标准信号比较。如果病症信号发生异常(即高于峰值),发出报警信号。如果病症信号发生异常(即高于峰值),发出报警信号。将处理后的数据格式化以便写入病历库将处理后的数据格式化以便写入病历库。分解分解:采集病人的病症信号。采集病人的病症信号。将
22、采集来的模拟信号转化为数字信号。将采集来的模拟信号转化为数字信号。将采集到的脉搏,血压等信号数据组将采集到的脉搏,血压等信号数据组合为一组信号数据。合为一组信号数据。根据病人的情况改变监视器采样频率。根据病人的情况改变监视器采样频率。用例细化ii(此用例不分解)(此用例不分解)分解为:分解为:分解为分解为:在显示器上显示病情在显示器上显示病情在打印机打印病情报告在打印机打印病情报告用例细化细化的用例图病人病人模数转化模数转化数据格式化数据格式化值班护士值班护士报警报警信号采集信号采集比较信号比较信号标准病症标准病症信号库信号库医生医生信号数据组合信号数据组合采样频率采样频率
24、、查询、删除选修课程。(4)系统管理员可以对账号进行创建、设置、查看、删除等操作。练习二图书管理系统系统分析及用例图n图书管理系统能够为一定数量的借阅者提供服务。每个借阅者能够拥有唯一标识其存在的编号。图书馆向每一个借阅者发放图书证,图书证中包含每一个借阅者的编号和个人信息。系统通过一个单独的程序为借阅者提供服务,不需要管理人员的干预,这些服务包括提供查询图书信息、查询个人信息服务和预定图书服务等。n当借阅者需要借阅书籍、归还书籍时需要通过图书管理员进行,也就是说借阅者不直接与系统交互,而是图书管理员充当借阅者的代理与系统交互。当借阅者借阅的图书数量超过限制时,不运行借阅者再进行借阅。当借阅者借阅的图书超过一定的期限时,需要对其进行处罚。借阅图书时需要图书证作为凭据,归还时不需要。n系统管理员负责系统的管理维护工作,维护工作包括图书的添加、删除和修改,书目的添加和删除,借阅者的添加、删除和修改,并且系统管理员能够查询借阅者、图书和图书管理员的信息。n查询图书可以通过图书的名称或图书的ISBN/ISSN号进行查找n请简单分析需求,创建系统用例模型