基于用例的需求分析方法ppt课件.ppt
软件学院软件学院代飞代飞2013.2013.春春1992年由Jacobson提出了Use case的概念及可视化的表示方法-Use case图,并加入由他提出的面向对象的软件工程(OOSE)。Use case的概念收到了IT界的欢迎,被广泛应用到了面向对象的系统分析中。基于用例的需求方法,已成为面向对象分析方法的主流。从从用户的角度用户的角度来看,他们并不想了解来看,他们并不想了解 系统的内部结构和设计,他们所关心的是系统的内部结构和设计,他们所关心的是 系统所能提供的服务系统所能提供的服务,也就是被开发出来,也就是被开发出来 的系统将是如何的系统将是如何被使用被使用的。的。 通讯关联通讯关联参与者参与者系统外部系统外部并与该系并与该系统发生交统发生交互的人或互的人或其他系统其他系统系统基本事件流,系统基本事件流,代表用户期望系统代表用户期望系统提供的基本功能提供的基本功能用例用例4 问问: :一个自动饮料售货机的功能是什么一个自动饮料售货机的功能是什么? ? 答答: :通过自动饮料售货机购买一听饮料通过自动饮料售货机购买一听饮料( (买饮料买饮料) )参参与与者者用用例例顾客顾客买饮料买饮料 收款员收款员收款收款供应商供应商提供饮料提供饮料通信通信用例:站在用户角度定义软件系统的外部特征用例:站在用户角度定义软件系统的外部特征(1)四个特征:四个特征:行为序列行为序列(sequences of actions)(sequences of actions):一个用例由一:一个用例由一 组可产生某些特定结果的行为构成,这些行为是不组可产生某些特定结果的行为构成,这些行为是不 可再分解的可再分解的( (接收用户输入、执行、产生结果接收用户输入、执行、产生结果) )。用例:是系统执行的动作集合规格说明用例:是系统执行的动作集合规格说明n系统执行系统执行(system performs)(system performs):系统为外部角色提:系统为外部角色提 供服务。供服务。n可观测到的、有价值的结果可观测到的、有价值的结果(observable result (observable result of value) of value):用例必须对用户产生价值。:用例必须对用户产生价值。n特定的角色特定的角色(particular actor)(particular actor):某人、某台设:某人、某台设 备、某外部系统、等等,能够触发某些行为。备、某外部系统、等等,能够触发某些行为。采用“基于用例的方法”来识别和获取需求,是从外部的角度来看系统功能,建立系统的Use case模型。Use case模型由若干Use case图组成,描述外部执行者(Actor)所理解的系统功能,即待开发系统的功能需求。在Use case图中,Use case(用例)表示一个子系统,或者一个对立的功能。执行者(角色):是系统外部的一个人或物,它以某种方式参与了系统的执行过程。 用例:待开发系统的一个独立功能,由一系列动作组成。用例间的关系:泛化、包含和扩展关系参与者8学生学生成绩管理员成绩管理员注册员注册员输入分数输入分数注册讨论班注册讨论班分发成绩单分发成绩单 用例图的组成用例图的组成n参与者参与者(actor)(actor);n用例;用例;n系统边界;系统边界;n参与者与用例的参与者与用例的 通信关联通信关联 (communication association);1、确定执行者(参与者)2、确定用例(包括描述用例)3、定义系统的边界4、 确定用例间的关系5、确认用例模型参与者的种类参与者的种类: : 人担当的角色人担当的角色 计算机系统计算机系统 机械或电子设备机械或电子设备11n 发起参与者发起参与者(initiator actor)(initiator actor)n 参加参与者参加参与者(participating actor)(participating actor)12你系统的主要客户是谁你系统的主要客户是谁? ?n系统从什么地方得到信息系统从什么地方得到信息? ?n谁从你的系统取得的信息谁从你的系统取得的信息? ?使用信息使用信息? ?n谁为你的系统提供信息?删除信息?谁为你的系统提供信息?删除信息?n谁安装、操作、关闭系统谁安装、操作、关闭系统( (次要角色次要角色)?)?n在某一个预定时间,是否有什么事情在某一个预定时间,是否有什么事情 自动发生自动发生? ?n其他系统与该系统交互信息是什么其他系统与该系统交互信息是什么? ?n有时需要在有时需要在系统内部定时的执行一些操作系统内部定时的执行一些操作,如检测系统,如检测系统 资源使用情况、定期生成统计报表等,但这些操作并不资源使用情况、定期生成统计报表等,但这些操作并不 是由外部的人或系统触发的,这样可以抽象出一个系统是由外部的人或系统触发的,这样可以抽象出一个系统 时钟或定时器参与者,利用该参与者来时钟或定时器参与者,利用该参与者来触发这一类定时触发这一类定时 操作。操作。n从逻辑上,这一参与者应该被理解成是系统外部的,从逻辑上,这一参与者应该被理解成是系统外部的, 由它来触发系统所提供的用例对话。由它来触发系统所提供的用例对话。系统时钟系统时钟周期性任务周期性任务 触发触发 14 在使用参与者为角色建模中是一种抽象,不为在使用参与者为角色建模中是一种抽象,不为 具体的人、机构、系统建模。具体的人、机构、系统建模。输入分数输入分数分发成绩单分发成绩单刘老师刘老师注意注意张助教张助教 任职教授任职教授 李主任李主任 用例描述一个事件发生用例描述一个事件发生, ,产生动作步骤的集合。产生动作步骤的集合。15(2) (2) 基于参与者的方法基于参与者的方法 # # 识别出与系统或组织有关的参与者识别出与系统或组织有关的参与者 # # 对每个参与者对每个参与者, ,识别出他们发起或参加的识别出他们发起或参加的 执行过程执行过程 (1) (1) 基于事件的方法基于事件的方法 # # 识别出系统必须响应的外部事件识别出系统必须响应的外部事件 # # 把事件与参与者和用例联系起来把事件与参与者和用例联系起来以编制好的需求规格说明文档为基础以编制好的需求规格说明文档为基础1. 1. 目标:目标: 本用例允许图书管理员登记普通读者的借书记录本用例允许图书管理员登记普通读者的借书记录2 2 事件流:事件流: 2.1 2.1 常规流程常规流程 当读者希望借书、图书管理员准备登记有关的当读者希望借书、图书管理员准备登记有关的 借书记录时,本借书记录时,本用例开始用例开始执行。执行。 (1) (1) 系统要求管理员输入读者的注册号和所借图书号。系统要求管理员输入读者的注册号和所借图书号。 (2) (2) 图书管理员输入信息后,系统产生一个唯一的借图书管理员输入信息后,系统产生一个唯一的借 书记录号。书记录号。 (3) (3) 系统显示新生成的借书记录。系统显示新生成的借书记录。 (4) (4) 图书管理员确认后,系统增加一个新的借书记录。图书管理员确认后,系统增加一个新的借书记录。 2.2 2.2 备选流程备选流程 (1) (1) 读者没有注册读者没有注册 在主流程中,如果系统没有读者的注册信息,在主流程中,如果系统没有读者的注册信息, 系统将显示错误信息,用例结束。系统将显示错误信息,用例结束。 (2) (2) 所借图书不存在所借图书不存在 在主流程中,如果所借图书已被借出或者系在主流程中,如果所借图书已被借出或者系 统中无该图书,系统将显示错误信息,用例结束。统中无该图书,系统将显示错误信息,用例结束。3 3 前提条件:前提条件:用例开始前,图书管理员必须在系统登录用例开始前,图书管理员必须在系统登录 成功。成功。4 4 后置条件:后置条件:如果用例执行成功,该读者的借书记录被如果用例执行成功,该读者的借书记录被 更新,否则,系统状态不变。更新,否则,系统状态不变。18n角色需要系统做什么?从系统获得那些功能?角色需要系统做什么?从系统获得那些功能? 确定用例从确定用例从参与者角度参与者角度向系统提问,向系统提问,确定可能的服务。确定可能的服务。n角色需要读取、产生、删除、修改、存储系统角色需要读取、产生、删除、修改、存储系统中什么信息?中什么信息? n角色需要知道系统发生了什么事件?这些事件角色需要知道系统发生了什么事件?这些事件 做些什么?做些什么? n系统提供给角色的信息是否简化了?系统提供给角色的信息是否简化了?n系统需要的系统需要的I/OI/O是什么信息?信息流怎样流动是什么信息?信息流怎样流动 ( (也可能与当前角色无关也可能与当前角色无关) )? 参与者:银行客户参与者:银行客户用用 例:银行客户使用自动提款机来进行银行例:银行客户使用自动提款机来进行银行 帐户的查询、提款和转帐交易帐户的查询、提款和转帐交易银行客户银行客户查询查询取款取款转帐转帐存款存款银行客户银行客户维护人员维护人员后台服务器后台服务器例:例:ATM系统,有哪些参与者和用例?系统,有哪些参与者和用例?银行客户银行客户查询查询存款、取款存款、取款转账转账用例用例 nATMATM维护人员维护人员n维护系统维护系统n后台服务器后台服务器n周期性操作周期性操作查询查询存、取款存、取款转帐转帐周期性任务周期性任务操作员操作员维护系统维护系统参与者确定用例参与者确定用例参与者与用例对应参与者与用例对应系统时钟系统时钟后台服务器后台服务器银行客户银行客户22 顾客顾客购买购买商品商品退还退还商品商品 商店商店 顾客顾客购买购买商品商品 登录登录退还退还商品商品 POST 出纳员出纳员3) 3) 关于边界的选择关于边界的选择 定义系统的边界是为了识别出什么在系统之内定义系统的边界是为了识别出什么在系统之内, ,什么在系统之外什么在系统之外, ,进而识别出什么是系统的职责。进而识别出什么是系统的职责。典型的系统边界包括典型的系统边界包括: :硬件设备或硬件硬件设备或硬件/ /软件边界软件边界 一个组织中的部门或整个组织。一个组织中的部门或整个组织。在基本的用例图中,只需表述参与者和用例之间的在基本的用例图中,只需表述参与者和用例之间的 通讯关系。通讯关系。此外,还可以描述:此外,还可以描述:参与者与参与者之间的参与者与参与者之间的泛化泛化关系关系(generalization)(generalization)用例和用例之间的用例和用例之间的包含包含(include)(include)关系关系用例和用例之间的用例和用例之间的扩展扩展(extend)(extend)关系关系用例和用例之间的用例和用例之间的泛化泛化( (generalization)generalization)关系关系 利用这些关系来调整已有的用例模型,把一些公共的利用这些关系来调整已有的用例模型,把一些公共的 信息抽取出来复用,使得用例模型更易于维护。信息抽取出来复用,使得用例模型更易于维护。参与者之间的泛化参与者之间的泛化(Generalization)(Generalization)关系关系actor 2actor 1普通用户普通用户常规操作常规操作管理操作管理操作配置操作配置操作系统维护员系统维护员管理员管理员用户用户常规操作常规操作管理操作管理操作配置操作配置操作系统维护员系统维护员管理员管理员客户客户电话登电话登记客户记客户保险登保险登记客户记客户当多个用例共同拥有一种类似的结构和行为的时当多个用例共同拥有一种类似的结构和行为的时候,可将它们的共性抽象成为父用例,其他的用候,可将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。例作为泛化关系中的子用例。子用例继承了父用例所有的结构、行为和关系。子用例继承了父用例所有的结构、行为和关系。 用例用例1用例用例2采购员采购员采购物料采购物料采购钢材采购钢材采购办公用品采购办公用品买票买票个人购买个人购买团体购买团体购买26 身份验证身份验证 密码密码 验证验证 智能卡智能卡 验证验证 付费付费 现金现金 支付支付 信用卡信用卡 支付支付例例: 标出下面用例图上的关系标出下面用例图上的关系? ?包含关系是通过在关联关系上加入包含关系是通过在关联关系上加入 标记来表示。标记来表示。基本用例指向包含用例基本用例指向包含用例。用例用例1用例用例2n语义:用例语义:用例1 1会用到用例会用到用例2 2,用例,用例2 2的事件流将被插入的事件流将被插入 到用例到用例1 1的事件流中。的事件流中。银行客户银行客户 查询查询取款取款转帐转帐卡片验证卡片验证基本用例基本用例 包含用例包含用例n基本用例不能独立存在基本用例不能独立存在, ,依赖于包含用例。依赖于包含用例。n包含用例一定要执行。包含用例一定要执行。许多用例的公共部许多用例的公共部分移到一个单独的分移到一个单独的被包含用例中。被包含用例中。公共部分需求变化公共部分需求变化时时, ,只改变被包含只改变被包含用例的需求。用例的需求。 包含关系的几种可能性包含关系的几种可能性 1 12 23 34 4扩展关系是通过在关联关系上加入扩展关系是通过在关联关系上加入标记标记 来表示。来表示。扩展用例指向基本用例扩展用例指向基本用例( (被扩展用例被扩展用例) )。用例用例1 用例用例 2一个用例中有许多选择时一个用例中有许多选择时,使用扩展使用扩展关系。关系。管理变更。管理变更。呼叫转移呼叫转移银行客户银行客户打电话打电话呼叫等待呼叫等待n语义语义: :用例用例1 1在某些特定情况下会用到用例在某些特定情况下会用到用例2 2,用例,用例2 2 的事件流将被插入到用例的事件流将被插入到用例1 1的事件流中。的事件流中。 扩展用例扩展用例 ( (可变部分可变部分) ) 基本用例基本用例( (不变部分不变部分) )n基本用例能独立存在基本用例能独立存在, ,不依赖于它的扩展用例。不依赖于它的扩展用例。n扩展用例可以不执行。扩展用例可以不执行。常规流:常规流:1 拨号拨号2 建立通话链路建立通话链路3 通话通话4 挂机挂机常规流:常规流:1 如果应答方正忙,如果应答方正忙, 用铃声提示应答方用铃声提示应答方 并保持拨号呼叫并保持拨号呼叫常规流:常规流:1 如果应答方无如果应答方无 应答,进行应答,进行 呼叫转移呼叫转移打电话打电话呼叫等待呼叫等待呼叫转移呼叫转移实际上相当于第一个用例的实际上相当于第一个用例的“备选流备选流”识别用例行为中的点识别用例行为中的点 ,指明扩展时机的点。,指明扩展时机的点。WithdrawWithdrawPrint ReceiptPrint ReceiptExtension PointExtension PointPrintPrint提款提款(Withdraw)(Withdraw)用用例记载了一个打印例记载了一个打印的扩展点的扩展点, ,打印收据打印收据(Print Receipt)(Print Receipt)的的行为会被插入到打行为会被插入到打印扩展点。印扩展点。Extension Point PrintExtension Point PrintWithdraw Use Case:Main flowWithdraw Use Case:Main flow1.1.顾客插入银行卡顾客插入银行卡2.2.输入密码输入密码3.3.输入提款金额输入提款金额4.4.退卡退卡5.5.吐钞吐钞6.6.选择是否打印收据选择是否打印收据: :打印打印扩展点扩展点Print Receipt Use CasePrint Receipt Use Case1. 1. 进纸进纸2. 2. 打印打印3. 3. 吐纸吐纸Extending Use Case 扩展关系的几种可能性扩展关系的几种可能性 1 12 23 34 434 登记登记 借书借书 查询读者查询读者查询读书查询读书参加考试参加考试补考补考 创建新账户创建新账户Login 删除账户删除账户 修改账户修改账户 登记借书登记借书 登记还书登记还书 验证读者验证读者标出下面用例图上的关系标出下面用例图上的关系? ?35 提供客户数据提供客户数据订货系统订货系统订货项目订货项目例例: 查询查询存款存款打印收据打印收据 查询查询存款存款打印收据打印收据打印收据打印收据订货系统订货系统请求目录请求目录37例例: 确定下面用例模型中的几种关系确定下面用例模型中的几种关系extend泛化泛化include通信关联通信关联 注册注册进大学进大学 注册注册讨论班讨论班在大学生中在大学生中注册家庭成员注册家庭成员在大学中在大学中注册国际学生注册国际学生 注册员注册员学生学生国际学生国际学生Name of the Use Case (用例的名字用例的名字)Description (描述描述)Actor(s) (参与者参与者)Flow of events (事件流事件流) Basic flow (常规流常规流) Event 1 (事件事件) Event 2 Alternate flow (备选流备选流)Pre-conditions (前置条件前置条件)Post-conditions (后置条件后置条件)n用例用例= = 椭圆椭圆 + + 名字?名字? NO!用例规约用例规约.用例模型用例模型参与者参与者用例用例术语表术语表分类查询题名查询作者查询馆藏查询图书借阅管理期刊借阅管理续借借阅管理图书预订信息更新图书推荐读者书籍检索书籍和期刊检索期刊检索图书数据统计图书登记管理采购记录管理结帐报账记录新书通报图书采购人员季度报表年度报表月报表书籍借阅期刊借阅光盘借阅书籍归还期刊归还光盘归还图书超期罚款借书管理还书管理图书馆借阅人员谢谢!