1、第6章 收集需求学习目标:理解需求阶段的目标 给业务上下文和系统功能建模 在完整的用例模型中记录系统需求第1页,共91页。第6章 收集需求6.1 引言 需求阶段的目标:需求阶段的目标:检查业务上下文:开发软件的原检查业务上下文:开发软件的原因,理解业务因,理解业务 描述系统需求:系统功能,约束描述系统需求:系统功能,约束条件(包括性能、开发成本、资条件(包括性能、开发成本、资源等等)源等等)第2页,共91页。第6章 收集需求引言 系统需求分类:系统需求分类:功能需求:系统必须完成的工作功能需求:系统必须完成的工作 非功能需求:需求指定的其他需非功能需求:需求指定的其他需求求第3页,共91页。第
2、6章 收集需求6.2 系统的诞生 客户提供的材料:客户提供的材料:详细的文档,一般包括专用布局详细的文档,一般包括专用布局和目录和目录 任务陈述,对新业务的简短描述任务陈述,对新业务的简短描述第4页,共91页。第6章 收集需求系统的诞生 开发人员的工作:开发人员的工作:把客户的需求文档或任务陈把客户的需求文档或任务陈述转换为完整的、清晰的、可述转换为完整的、清晰的、可用于开发系统的陈述,采用客用于开发系统的陈述,采用客户能够理解的、认可的标准格户能够理解的、认可的标准格式。式。第5页,共91页。第6章 收集需求案例分析Nowhere Cars 任务陈述任务陈述 商店将汽车的跟踪自动化了使用商店
3、将汽车的跟踪自动化了使用条形码、柜台终端和激光阅读器,这条形码、柜台终端和激光阅读器,这有许多优点:租赁助手的效率提高了有许多优点:租赁助手的效率提高了20,汽车很少失踪,客户群很快变大,汽车很少失踪,客户群很快变大(根据市场调查,其部分原因至少是专(根据市场调查,其部分原因至少是专业化和效率的显著提高)业化和效率的显著提高)第6页,共91页。第6章 收集需求案例分析Nowhere Cars 任务陈述任务陈述 管理层认为,管理层认为,Internet会提供进一步提会提供进一步提高效率、降低成本的机会。例如,现在高效率、降低成本的机会。例如,现在不是打印可用汽车的目录,而可以让每不是打印可用汽车
4、的目录,而可以让每个个Internet冲浪人员在线浏览这些目录。冲浪人员在线浏览这些目录。对于有特权的客户,可以提供额外的服务,对于有特权的客户,可以提供额外的服务,例如通过鼠标点击进行预约。这个领域的例如通过鼠标点击进行预约。这个领域的目标是每个商店的运营成本降低目标是每个商店的运营成本降低15。第7页,共91页。第6章 收集需求案例分析Nowhere Cars 任务陈述任务陈述 在两年内,使用电子商务的所有功能,在两年内,使用电子商务的所有功能,通过通过Web浏览器提供所有的服务,在客户浏览器提供所有的服务,在客户家中完成汽车的交付和收回,以达到虚拟家中完成汽车的交付和收回,以达到虚拟租赁
5、公司的最终目标,将未预约业务的运租赁公司的最终目标,将未预约业务的运营成本降低到最低。营成本降低到最低。第8页,共91页。第6章 收集需求案例分析上述内容包含的信息?上述内容包含的信息?公司的自动化历史;公司的自动化历史;客户对日期的满意度;客户对日期的满意度;在线目录和预约;在线目录和预约;有特权和无特权的客户;有特权和无特权的客户;节约成本的历史和目标;节约成本的历史和目标;公司的最终目标公司的最终目标第9页,共91页。第6章 收集需求补充:需求工程需求工程师找出功能性需求优先排序需求跟踪用例和需求设计师找出非功能性需求第10页,共91页。第6章 收集需求6.3 用例 用例用例:定义部分业
6、务或系统的:定义部分业务或系统的使用方式,用于描述系统功能使用方式,用于描述系统功能需求需求 内容包括:内容包括:记录对业务运作方式的理解记录对业务运作方式的理解 业务需求建模业务需求建模 指定新软件系统应能完成的工作指定新软件系统应能完成的工作 系统需求建模系统需求建模第11页,共91页。第6章 收集需求用例 用例开始于一个参与者用例开始于一个参与者(actor);之后是业务或系统,);之后是业务或系统,最后返回到参与者最后返回到参与者 采用采用用例驱动用例驱动,有助于找出对,有助于找出对象、属性和操作象、属性和操作第12页,共91页。第6章 收集需求案例分析Nowhere Cars 任务陈
7、述任务陈述“会员预约汽车型号会员预约汽车型号”是一个是一个业务用例业务用例,描述了会员的预约方式。描述了会员的预约方式。(在业务建模过程中查找业务用例,这(在业务建模过程中查找业务用例,这是需求分析的第一步。业务用例可以使是需求分析的第一步。业务用例可以使用已有的软件系统,也可以根本不涉及用已有的软件系统,也可以根本不涉及计算机)计算机)第13页,共91页。第6章 收集需求案例分析Nowhere Cars 任务陈述任务陈述“预约预约”是一个是一个系统用例系统用例,描述了要开发,描述了要开发的系统如何让的系统如何让Nowhere Cars通过通过Internet进行预约。进行预约。(系统用例描述
8、了新系统或替代系统要(系统用例描述了新系统或替代系统要提供的一个服务)提供的一个服务)第14页,共91页。第6章 收集需求6.4 业务说明 建立业务模型是建立系统功能建立业务模型是建立系统功能(用例)模型的前提条件(用例)模型的前提条件 用例可以完成业务建模,用例用例可以完成业务建模,用例模型包括:模型包括:参与者表(带有描述)参与者表(带有描述)术语表术语表 用例(带有描述和细节)用例(带有描述和细节)通信图(协作图,可选)通信图(协作图,可选)活动图(可选)活动图(可选)第15页,共91页。第6章 收集需求6.4.1 标识业务参与者 参与者参与者是在业务中扮演某个角是在业务中扮演某个角色的
9、人、部门或独立的软件系色的人、部门或独立的软件系统统第16页,共91页。第6章 收集需求案例分析Nowhere Cars 业务参与者表业务参与者表助手(员工)助手(员工)顾客顾客会员会员非会员非会员Auk:已有系统:已有系统债务部门债务部门法律部门法律部门第17页,共91页。第6章 收集需求6.4.2 编写项目术语表 术语表术语表(glossary):数据字):数据字典的现代代替品,将数据和过典的现代代替品,将数据和过程进行统一存储程进行统一存储第18页,共91页。第6章 收集需求案例分析Nowhere Cars术语表术语表术 语定 义Car(业务对象)由商店保存的、用于出租的CarModel
10、实例CarModel(业务对象)目录中的一个模型,可用于预约Customer(业务参与者、业务对象)为获得一个标准服务而付费的人Member(业务对象)其身份和信用状况已得到验证的客户,因此可以访问特定的服务(例如电话预约或通过Internet预约)第19页,共91页。第6章 收集需求术语表 术语表可以记录每个术语与开术语表可以记录每个术语与开发阶段之间的关系,如:发阶段之间的关系,如:业务参与者业务参与者 业务对象业务对象 系统参与者系统参与者 系统对象系统对象 分析对象分析对象 部署制品部署制品 设计对象设计对象 设计节点设计节点 设计层设计层 设计包设计包第20页,共91页。第6章 收集
11、需求6.4.3 标识业务用例 每个用例都是业务的一部分每个用例都是业务的一部分 如何设置好的用例?如何设置好的用例?常识、逻辑和经验常识、逻辑和经验 和客户一起工作和客户一起工作第21页,共91页。第6章 收集需求案例分析iCoot 业务用例表业务用例表B1:顾客租用汽车:顾客租用从可用:顾客租用汽车:顾客租用从可用汽车中选择出来的汽车汽车中选择出来的汽车B2:会员预约汽车型号:当有该型号的汽:会员预约汽车型号:当有该型号的汽车时,会员应得到通知车时,会员应得到通知B3:非会员预约汽车型号:当有该型:非会员预约汽车型号:当有该型号的汽车时,非会员交纳了押金,就号的汽车时,非会员交纳了押金,就应
12、得到通知应得到通知B4:顾客取消预约:顾客通过电话或:顾客取消预约:顾客通过电话或亲自取消未结束的预约亲自取消未结束的预约第22页,共91页。第6章 收集需求案例分析iCoot 业务用例表业务用例表B5:顾客交还汽车:顾客交还所租用的汽:顾客交还汽车:顾客交还所租用的汽车车B6:顾客获知有某型号的汽车:当有该:顾客获知有某型号的汽车:当有该型号的汽车时,助手会与顾客联系型号的汽车时,助手会与顾客联系B7:报告失踪:顾客或助手发现汽车失踪:报告失踪:顾客或助手发现汽车失踪B8:顾客重新预约:超过一星期后,顾客:顾客重新预约:超过一星期后,顾客可以重新预约可以重新预约第23页,共91页。第6章 收
13、集需求案例分析iCoot 业务用例表业务用例表B9:顾客访问目录:顾客在店内或在家中:顾客访问目录:顾客在店内或在家中浏览目录浏览目录B10:顾客因没有取预约的车而接受罚款:顾客因没有取预约的车而接受罚款:顾客没有取预约好的车顾客没有取预约好的车B11:顾客取预约好的车:顾客取预约:顾客取预约好的车:顾客取预约好的车好的车B12:顾客成为会员:顾客提供信用卡:顾客成为会员:顾客提供信用卡信息和地址证明,成为会员信息和地址证明,成为会员第24页,共91页。第6章 收集需求案例分析iCoot 业务用例表业务用例表B13:通知顾客汽车已超过租用期限:通知顾客汽车已超过租用期限:助手与顾客联系,警告顾
14、客他租用的汽助手与顾客联系,警告顾客他租用的汽车已超过租用期限一星期车已超过租用期限一星期B14:顾客丢失钥匙:为丢钥匙的顾客:顾客丢失钥匙:为丢钥匙的顾客提供备用钥匙提供备用钥匙B15:更新会员卡:当会员卡过期时,助手:更新会员卡:当会员卡过期时,助手与顾客联系,更新会员卡与顾客联系,更新会员卡B16:汽车不能还回来:汽车出事或坏了:汽车不能还回来:汽车出事或坏了第25页,共91页。第6章 收集需求案例分析B3:非会员预约汽车型号:非会员预约汽车型号(Nowhere Cars)非会员告诉助手要预约的汽车型号非会员告诉助手要预约的汽车型号助手在助手在Auk中查找汽车型号中查找汽车型号助手请求非
15、会员为预约交纳押金助手请求非会员为预约交纳押金助手请求非会员提供驾照和电话号码助手请求非会员提供驾照和电话号码助手检查非会员的驾照助手检查非会员的驾照如果驾照没有问题,助手就会创建如果驾照没有问题,助手就会创建新的预约,并记录驾照号码、电话新的预约,并记录驾照号码、电话号码,在号码,在Auk中扫描驾照中扫描驾照1.助手给非会员一个预约卡,其中包含唯助手给非会员一个预约卡,其中包含唯一的预约号一的预约号第26页,共91页。第6章 收集需求6.4.4 在通信图中演示用途 通信图显示了参与者和对象之通信图显示了参与者和对象之间的间的一系列交互一系列交互 顺序图关注的是交互本身和交顺序图关注的是交互本
16、身和交互发生的互发生的顺序顺序第27页,共91页。第6章 收集需求非会员预约汽车型号的通信图:非会员:Auk接口a:助手1:预约汽车型号2:查找汽车型号:汽车型号:预约3:获取押金,驾照4:创建预约5:确认预约第28页,共91页。第6章 收集需求6.4.5 在活动图中演示用例 在从初始点到最终目标的过程在从初始点到最终目标的过程中,活动图显示了(顺序或并中,活动图显示了(顺序或并行)活动之间的依赖关系行)活动之间的依赖关系第29页,共91页。第6章 收集需求非会员预约汽车型号的活动图(非会员)告诉助手要预约的汽车型号(助手)请求押金和驾照(非会员)查找押金(非会员)查找驾照(助手)在Auk上查
17、找汽车型号(助手)检查押金和驾照(助手)进行预约无效有效第30页,共91页。第6章 收集需求6.5 开发人员的说明 无论记录业务是选择使用简短无论记录业务是选择使用简短的域模型、完全成熟的用例模的域模型、完全成熟的用例模型,还是更详细的模型,软件型,还是更详细的模型,软件系统的需求都应通过系统的需求都应通过用例模型用例模型来分析来分析 系统的用例模型比业务的用例系统的用例模型比业务的用例模型更详细、更具说明性模型更详细、更具说明性第31页,共91页。第6章 收集需求补充:处理过程找出参与者和用例系统分析师业务模型或领域模型补充需求特征列表用例模型概况的项目词汇表第32页,共91页。第6章 收集
18、需求补充:小组成员分工系统分析师找出参与者和用例组织用例模型优先排序用例设计师详细用例用例阐释员原型化用户界面用户界面设计员第33页,共91页。第6章 收集需求Ripple中系统用例模型组成要素 参与者表(带有描述)参与者表(带有描述)用例列表(带有描述)用例列表(带有描述)用例图(用例图(UML用例图)用例图)用例细节(包括所有相关的非用例细节(包括所有相关的非功能需求)功能需求)用例调查用例调查 辅助需求(不符合任何用例的辅助需求(不符合任何用例的系统需求)系统需求)用户界面草图用户界面草图第34页,共91页。第6章 收集需求Ripple中系统用例模型组成要素 改进的术语表改进的术语表 用
19、例的优先级用例的优先级第35页,共91页。第6章 收集需求案例分析iCoot系统选择系统选择 是扩展是扩展Auk系统还是替代系统还是替代Auk系统?系统?第36页,共91页。第6章 收集需求1.标识系统参与者 在客户的帮助下标识和描述系在客户的帮助下标识和描述系统参与者统参与者 需求阶段,参与者只包括直接需求阶段,参与者只包括直接与系统交互的人(和外部系与系统交互的人(和外部系统),而不包括更宽泛的业务统),而不包括更宽泛的业务环境中的参与者环境中的参与者第37页,共91页。第6章 收集需求案例分析iCoot系统参与者表系统参与者表顾客:使用顾客:使用Web浏览器访问浏览器访问iCoot的人的
20、人会员:在一家商店提供姓名、地址和信用会员:在一家商店提供姓名、地址和信用卡信息的顾客;每个会员都有一个卡信息的顾客;每个会员都有一个Internet密码和一个会员号密码和一个会员号助手:商店的一个员工,负责与会助手:商店的一个员工,负责与会员联系,并告诉预约的进展情况员联系,并告诉预约的进展情况第38页,共91页。第6章 收集需求2.标识系统用例 从客户获取帮助,每个用例都从客户获取帮助,每个用例都必须有简短的说明必须有简短的说明第39页,共91页。第6章 收集需求案例分析iCoot系统用例表系统用例表U1:浏览索引:顾客浏览汽车型号的索:浏览索引:顾客浏览汽车型号的索引引U2:查看结果:给
21、顾客显示检索到的:查看结果:给顾客显示检索到的汽车型号子集汽车型号子集U3:查看汽车型号的细节:给顾客显:查看汽车型号的细节:给顾客显示检索到的汽车型号细节,例如描述示检索到的汽车型号细节,例如描述和广告和广告U4:搜索:顾客指定类别、构造和引擎:搜索:顾客指定类别、构造和引擎规格,搜索汽车型号规格,搜索汽车型号第40页,共91页。第6章 收集需求案例分析iCoot系统用例表系统用例表U5:登录:会员使用会员号和当前密:登录:会员使用会员号和当前密码登录码登录iCootU6:查看会员信息:会员查看:查看会员信息:会员查看iCoot存存储的会员信息子集,例如姓名、地储的会员信息子集,例如姓名、地
22、址和信用卡信息址和信用卡信息U7:进行预约:会员在查看汽车型号的:进行预约:会员在查看汽车型号的细节时,预约一种汽车型号细节时,预约一种汽车型号U8:查看租用情况:会员查看当前租用:查看租用情况:会员查看当前租用的汽车汇总信息的汽车汇总信息第41页,共91页。第6章 收集需求案例分析iCoot系统用例表系统用例表U9:修改密码:会员修改用于登录的:修改密码:会员修改用于登录的密码密码U10:查看预约情况:会员查看还没:查看预约情况:会员查看还没有结束的预约汇总信息,例如日期、有结束的预约汇总信息,例如日期、时间和汽车型号时间和汽车型号U11:取消预约:会员取消还没有结束:取消预约:会员取消还没
23、有结束的预约的预约U12:注销:会员从:注销:会员从iCoot中注销中注销第42页,共91页。第6章 收集需求iCoot的一个简单用例图U5:登录U6:查看会员信息U8:查看租用情况U9:修改密码U10:查看预约情况U12:注销会员U1:浏览索引U4:搜索U2:查看结果顾客U3:查看汽车型号的细节U11:取消预约助手U7:进行预约第43页,共91页。第6章 收集需求用例调查 用例调查用例调查:说明一组用例如何:说明一组用例如何组合在一起组合在一起 用例调查是开发人员与客户一用例调查是开发人员与客户一起研究用例图时生成的叙述起研究用例图时生成的叙述 用例调查允许客户在没有开发用例调查允许客户在没
24、有开发人员的帮助下,也能很好地理人员的帮助下,也能很好地理解用例解用例第44页,共91页。第6章 收集需求案例分析iCoot用例调查用例调查 已成为会员的顾客可以登录(已成为会员的顾客可以登录(U5),访问),访问额外的服务。额外的服务有进行预约额外的服务。额外的服务有进行预约(U7),取消预约(),取消预约(U11),检查会员),检查会员信息(信息(U6),查看已有的预约(),查看已有的预约(U10),),修改登录密码(修改登录密码(U9),查看已有的租用),查看已有的租用记录(记录(U8)和注销()和注销(U12)第45页,共91页。第6章 收集需求案例分析iCoot用例调查用例调查 任何
25、顾客都可以浏览汽车型号索引任何顾客都可以浏览汽车型号索引(U1),或通过搜索(),或通过搜索(U4)在目录中查)在目录中查找汽车型号。在后一种情况下,顾客找汽车型号。在后一种情况下,顾客要指定他们感兴趣的类别、构造和引要指定他们感兴趣的类别、构造和引擎规格。无论采用哪种方式,在每次擎规格。无论采用哪种方式,在每次检索后,都会给客户显示匹配汽车型检索后,都会给客户显示匹配汽车型号的集合(号的集合(U2)和基本信息,例如汽车)和基本信息,例如汽车型号的名称。然后,顾客就可以选择查型号的名称。然后,顾客就可以选择查看特定汽车型号的其他信息,例如描述看特定汽车型号的其他信息,例如描述和广告(和广告(U
26、3)第46页,共91页。第6章 收集需求6.5.1 使参与者特殊化 在参与者之间出现继承关系在参与者之间出现继承关系第47页,共91页。第6章 收集需求案例分析iCoot带继承的系统参与者表带继承的系统参与者表顾客:使用顾客:使用Web浏览器访问浏览器访问iCoot的人的人会员:在一家商店提供姓名、地址和信用卡会员:在一家商店提供姓名、地址和信用卡的顾客;每个会员都有一个的顾客;每个会员都有一个Internet密码密码和一个会员号。(特殊化顾客)和一个会员号。(特殊化顾客)非会员:不是会员的顾客。(特殊化顾客)非会员:不是会员的顾客。(特殊化顾客)助手:商店的一个员工,他与会员联系,助手:商店
27、的一个员工,他与会员联系,告诉他们预约的进展情况告诉他们预约的进展情况第48页,共91页。第6章 收集需求显示参与者之间继承关系的用例图U5:登录U6:查看会员信息U8:查看租用情况U9:修改密码U10:查看预约情况U12:注销会员U1:浏览索引U4:搜索U2:查看结果顾客U3:查看汽车型号的细节U11:取消预约助手U7:进行预约非会员第49页,共91页。第6章 收集需求补充:参与者继承CustomerListProductsOrderProductsPurchaserAcceptPaymentSalesAgentCalculateCommission第50页,共91页。第6章 收集需求6.5
28、.2 用例的关系 用例之间的关系用例之间的关系 特殊化关系(特殊化关系(specialize)包含(包含(include)扩展(扩展(extend)第51页,共91页。第6章 收集需求用例的特殊化 表征用例之间的继承关系表征用例之间的继承关系 为了避免重新定义步骤和添加为了避免重新定义步骤和添加额外步骤,可以只特殊化抽象额外步骤,可以只特殊化抽象的用例的用例 抽象用例唯一的目的是组合其抽象用例唯一的目的是组合其它用例它用例 例如:抽象用例例如:抽象用例“U13:查找汽查找汽车模型车模型”,特殊用例,特殊用例“U1:浏浏览搜索览搜索”和和“U4:搜索搜索”第52页,共91页。第6章 收集需求补充
29、:用例的特殊化FindBookCustomerFindProductFindCD第53页,共91页。第6章 收集需求用例的包含关系 如果第一个用例有一些是第二如果第一个用例有一些是第二个用例提供的完整步骤,则前个用例提供的完整步骤,则前者包含后者者包含后者 例如:例如:“U1:浏览搜索浏览搜索”在其在其行为的某个地方包含行为的某个地方包含“U2:查查找结果找结果”的全部步骤的全部步骤 包含用例用于将相同的步骤提包含用例用于将相同的步骤提取到许多用例中,或者把大的取到许多用例中,或者把大的用例分解为更容易管理的模块用例分解为更容易管理的模块第54页,共91页。第6章 收集需求补充:用例的包含关系
30、FindEmployeeDetailsChangeEmployeeDetailsViewEmployeeDetailsManagerDeleteEmployeeDetails第55页,共91页。第6章 收集需求用例的扩展关系 第一个用例给第二个用例增加第一个用例给第二个用例增加步骤,称为扩展第二个用例步骤,称为扩展第二个用例 例如:在查看结果(例如:在查看结果(U2)时,)时,顾客可以选择查看细节(顾客可以选择查看细节(U3)扩展关系用于增加可选的额外扩展关系用于增加可选的额外步骤步骤第56页,共91页。第6章 收集需求补充:用例的扩展关系ReturnBookBorrowBookLibrari
31、anFindBookIssueFine第57页,共91页。第6章 收集需求包含与扩展的区别 在包含关系中,源用例没有目在包含关系中,源用例没有目的用例就不能工作;而在扩展的用例就不能工作;而在扩展关系中,源用例即使没有目的关系中,源用例即使没有目的用例也能工作得很好用例也能工作得很好第58页,共91页。第6章 收集需求举例客户预定房间预定服务等候名单处理登记入住核对房间详情总台服务员离店结账第59页,共91页。第6章 收集需求案例分析iCoot用例关系用例关系U1:浏览索引:顾客浏览汽车型号的索:浏览索引:顾客浏览汽车型号的索引引(特殊化(特殊化U13,包含包含U2)U2:查看结果:给顾客显示
32、检索到的汽:查看结果:给顾客显示检索到的汽车型号子集车型号子集(被(被U1和和U4包含,被包含,被U3扩扩展)展)U3:查看汽车型号的细节:给顾客显示:查看汽车型号的细节:给顾客显示检索到的汽车型号细节,例如描述和广检索到的汽车型号细节,例如描述和广告告(扩展(扩展U2,被,被U7扩展)扩展)U4:搜索:顾客指定类别、构造和引:搜索:顾客指定类别、构造和引擎规格,搜索汽车型号擎规格,搜索汽车型号(特殊化(特殊化U13,包含包含U2)第60页,共91页。第6章 收集需求案例分析iCoot用例关系用例关系U5:登录:会员使用会员号和当前密:登录:会员使用会员号和当前密码登录码登录iCoot(由(由
33、U6、U8、U9、U10和和U12扩展)扩展)U6:查看会员信息:会员查看:查看会员信息:会员查看iCoot存储存储的会员信息子集,例如姓名、地址和信的会员信息子集,例如姓名、地址和信用卡信息用卡信息(扩展(扩展U5)U7:进行预约:会员在查看汽车型号:进行预约:会员在查看汽车型号的细节时,预约一种汽车型号的细节时,预约一种汽车型号(扩展(扩展U3)U8:查看租用情况:会员查看当前租用的:查看租用情况:会员查看当前租用的汽车汇总信息汽车汇总信息(扩展(扩展U5)第61页,共91页。第6章 收集需求案例分析iCoot用例关系用例关系U9:修改密码:会员修改用于登录的密:修改密码:会员修改用于登录
34、的密码码(扩展(扩展U5)U10:查看预约情况:会员查看还没:查看预约情况:会员查看还没有结束的预约汇总信息,例如日期、有结束的预约汇总信息,例如日期、时间和汽车型号时间和汽车型号(扩展(扩展U5,被,被U11扩扩展)展)U11:取消预约:会员取消还没有结:取消预约:会员取消还没有结束的预约束的预约(扩展(扩展U10)U12:注销:会员从:注销:会员从iCoot中注销中注销(扩(扩展展U5)第62页,共91页。第6章 收集需求案例分析iCoot用例关系用例关系U13:查找汽车型号:顾客从目录表中:查找汽车型号:顾客从目录表中检索汽车型号的子集检索汽车型号的子集(抽象,被(抽象,被U1和和U4一
35、般化)一般化)第63页,共91页。第6章 收集需求iCoot的最终用例图U1:浏览索引U4:搜索U2:查看结果U3:查看汽车型号的细节助手非会员顾客是已登录的会员U6:查看会员信息U8:查看租用情况U9:修改密码U10:查看预约情况U12:注销U11:取消预约U7:进行预约顾客U13:查看汽车型号会员U5:登录第64页,共91页。第6章 收集需求案例分析iCoot用例调查(完整)用例调查(完整)任何顾客都可以浏览汽车型号索引任何顾客都可以浏览汽车型号索引(U1),或通过搜索(),或通过搜索(U4)在目录中查)在目录中查找汽车型号。在后一种情况下,顾客要找汽车型号。在后一种情况下,顾客要指定他们
36、感兴趣的类别、构造和引擎规指定他们感兴趣的类别、构造和引擎规格。无论采用哪种方式,在每次检索后,格。无论采用哪种方式,在每次检索后,都会给客户显示匹配汽车型号的集合都会给客户显示匹配汽车型号的集合(U2)和基本信息,例如汽车型号的名称。)和基本信息,例如汽车型号的名称。然后,顾客就可以选择查看特定汽车型号的然后,顾客就可以选择查看特定汽车型号的其他信息,例如描述和广告(其他信息,例如描述和广告(U3)第65页,共91页。第6章 收集需求案例分析iCoot用例调查(完整)用例调查(完整)顾客有两种情况:会员和非会员。顾客有两种情况:会员和非会员。已成为会员的顾客可以登录(已成为会员的顾客可以登录
37、(U5),),访问额外的服务。额外的服务有进行访问额外的服务。额外的服务有进行预约(预约(U7),取消预约(),取消预约(U11),检查),检查会员信息(会员信息(U6),查看已有的预约),查看已有的预约(U10),修改登录密码(),修改登录密码(U9),查看),查看已有的租用记录(已有的租用记录(U8)和注销()和注销(U12)。)。第66页,共91页。第6章 收集需求案例分析iCoot用例调查(完整)用例调查(完整)为了预约汽车型号,会员必须查看其为了预约汽车型号,会员必须查看其细节(非会员不能预约,即使他们在细节(非会员不能预约,即使他们在查看细节也不行)。查看细节也不行)。要取消预约,
38、会员必须查看已有的预约。要取消预约,会员必须查看已有的预约。第67页,共91页。第6章 收集需求6.5.3 系统用例的细节 UML没有指定应包含哪些用没有指定应包含哪些用例细节或如何安排它们例细节或如何安排它们 对于对于Ripple,系统用例的细节,系统用例的细节包括包括 用例号和标题用例号和标题 用例是否为抽象的用例是否为抽象的 与其它用例的关系与其它用例的关系 前提条件(在执行用例之前必须前提条件(在执行用例之前必须满足的条件)满足的条件)步骤(假定满足了前提条件)步骤(假定满足了前提条件)第68页,共91页。第6章 收集需求系统用例的细节-后置条件(在完成用例后保证后置条件(在完成用例后
39、保证满足的条件)满足的条件)-异常路径和在这些情况下应做异常路径和在这些情况下应做什么什么-与这个用例相关的非功能需求与这个用例相关的非功能需求第69页,共91页。第6章 收集需求系统用例细节的格式标号,标题(关系)标号,标题(关系)前提条件前提条件步骤步骤后置条件后置条件异常路径异常路径非功能需求非功能需求第70页,共91页。第6章 收集需求举例1U1:浏览索引(特殊化浏览索引(特殊化U13,包,包含含U2)前提条件:无前提条件:无顾客选择一个索引标题顾客选择一个索引标题顾客选择查看选中索引标题的汽车型顾客选择查看选中索引标题的汽车型号号包含包含U2后置条件:无后置条件:无第71页,共91页
40、。第6章 收集需求举例2U3:查看汽车型号的细节(扩展查看汽车型号的细节(扩展U2,被,被U7扩展)扩展)前提条件:无前提条件:无顾客选择一个匹配的汽车型号顾客选择一个匹配的汽车型号顾客请求选中汽车型号的细节顾客请求选中汽车型号的细节iCoot显示选中汽车型号的细节(构造、引擎显示选中汽车型号的细节(构造、引擎规格、价格、描述、广告和海报)规格、价格、描述、广告和海报)如果顾客是一个已登录的会员,就用如果顾客是一个已登录的会员,就用U7扩展扩展后置条件:后置条件:iCoot显示选中汽车的细节显示选中汽车的细节非功能需求:非功能需求:r1.广告应使用流协议,而不应要求下载广告应使用流协议,而不应
41、要求下载第72页,共91页。第6章 收集需求举例3U5:登录(由登录(由U6、U8、U9、U10和和U12扩展)扩展)前提条件:会员从本商店获得一个密码前提条件:会员从本商店获得一个密码会员输入会员号会员输入会员号会员输入密码会员输入密码iCoot强制会员必须登录,所以会员可以选择到强制会员必须登录,所以会员可以选择到盗取已有的会话盗取已有的会话会员选择登录会员选择登录用用U6、U8、U9、U10和和U12扩展扩展后置条件:会员登录后置条件:会员登录异常路径:异常路径:a1:如果会员和密码组合不正确,:如果会员和密码组合不正确,iCoot会通知会员,会通知会员,登录有误登录有误a2:如果会员和
42、密码组合正确,但会员已经登录,其没:如果会员和密码组合正确,但会员已经登录,其没有选择盗取会话,有选择盗取会话,iCoot会通知会员会通知会员第73页,共91页。第6章 收集需求举例4U13:查看汽车型号(抽象,有查看汽车型号(抽象,有U1和和U4特殊化)特殊化)前提条件:无前提条件:无后置条件:给顾客显示检索到的汽车型号汇后置条件:给顾客显示检索到的汽车型号汇总信息总信息第74页,共91页。第6章 收集需求6.5.4 前提条件、后置条件和继承当一个用例特殊化另一个用当一个用例特殊化另一个用例时,会继承父用例的前提例时,会继承父用例的前提条件,作为起点。子用例添条件,作为起点。子用例添加的新前
43、提条件只能弱化继加的新前提条件只能弱化继承的前提条件(使用承的前提条件(使用or合并)合并)分析分析:如果父用例的前提条件:如果父用例的前提条件是是“无无”,其子用例的前提,其子用例的前提条件也必须是条件也必须是“无无”第75页,共91页。第6章 收集需求分析对于后置条件,子用例的起对于后置条件,子用例的起点是父用例的后置条件。子点是父用例的后置条件。子用例添加的新后置条件只能用例添加的新后置条件只能强化继承的后置条件(使用强化继承的后置条件(使用and合并)合并)分析分析:如果父用例的后置条:如果父用例的后置条件是件是“无无”,子用例可以指,子用例可以指定需要的后置条件定需要的后置条件第76
44、页,共91页。第6章 收集需求前提条件、后置条件和继承子用例添加的前提条件和后子用例添加的前提条件和后置条件对父用例的前提条件置条件对父用例的前提条件和后置条件没有影响。和后置条件没有影响。分析分析:子不能影响父的行为:子不能影响父的行为第77页,共91页。第6章 收集需求6.5.5 辅助需求 在大多数情况下,可以把非功在大多数情况下,可以把非功能需求关联到特定的用例上能需求关联到特定的用例上 例如:非功能需求例如:非功能需求“广告应使广告应使用流协议显示,而不需下载用流协议显示,而不需下载”,用于保证用户看到广告用于保证用户看到广告第78页,共91页。第6章 收集需求案例分析辅助需求辅助需求
45、S1:客户小程序必须运行在客户小程序必须运行在JDK 1.2(或更高或更高版本)上版本)上S2:iCoot必须能处理必须能处理100,000种汽车型号种汽车型号S3:iCoot必须能同时给一百万个顾客服必须能同时给一百万个顾客服务,且性能没有明显的降低务,且性能没有明显的降低第79页,共91页。第6章 收集需求6.5.6 用户界面草案 界面可以在早期阶段与客户一界面可以在早期阶段与客户一起讨论,并把结果记录为用户起讨论,并把结果记录为用户界面草案(界面草案(user interface sketches)这些草案应看做是基本指南,这些草案应看做是基本指南,而不是专业的而不是专业的GUI设计,它
46、们设计,它们有助于标识和分解能根据个人有助于标识和分解能根据个人喜欢来实现的功能喜欢来实现的功能第80页,共91页。第6章 收集需求补充:网站界面设计草图第81页,共91页。第6章 收集需求6.5.7 系统用例的优先级 按照实现的优先级给系统需求按照实现的优先级给系统需求分级,尤其是在递增开发过程分级,尤其是在递增开发过程中,就更应分级中,就更应分级 在用例建模过程中,通过用例在用例建模过程中,通过用例分级,表示其紧急程度分级,表示其紧急程度 优先级和紧急程度有助于规划优先级和紧急程度有助于规划其他开发过程和进一步的递增其他开发过程和进一步的递增开发过程开发过程第82页,共91页。第6章 收集
47、需求系统用例的优先级有效的打分技术交通灯:有效的打分技术交通灯:(绿色)(绿色)该用例必须在当前的该用例必须在当前的递增开发过程中实现;否则就递增开发过程中实现;否则就意味着项目没有达到其最低目意味着项目没有达到其最低目标标该用例在当前的递增该用例在当前的递增开发过程中是可选的,只有在开发过程中是可选的,只有在完成了绿色的用例之后才能尝完成了绿色的用例之后才能尝试完成它(用于增加客户印试完成它(用于增加客户印象)。未在交付日期之前完成象)。未在交付日期之前完成的黄色用例必须完全舍弃的黄色用例必须完全舍弃第83页,共91页。第6章 收集需求系统用例的优先级(红色)(红色)即使时间允许,也不即使时
48、间允许,也不能在当前的递增开发过程中实能在当前的递增开发过程中实现;它们在当前的递增开发过现;它们在当前的递增开发过程之外,一般不允许完成程之外,一般不允许完成第84页,共91页。第6章 收集需求系统用例的优先级 用例的优先级不仅取决于期望,用例的优先级不仅取决于期望,还取决于当前的递增开发过程还取决于当前的递增开发过程中为各个用例投入的系统体系中为各个用例投入的系统体系结构和编码工作量结构和编码工作量第85页,共91页。第6章 收集需求系统用例的优先级 如果在递增开发过程中的最如果在递增开发过程中的最后还有时间(完成绿色用例和后还有时间(完成绿色用例和所有的黄色用例),就应:所有的黄色用例)
49、,就应:检查项目的状态检查项目的状态完成下一个递增开发过程的规划(例如,完成下一个递增开发过程的规划(例如,对未完成的用例再次分级)对未完成的用例再次分级)做一些无关的工作做一些无关的工作开一个办公室开一个办公室Party.第86页,共91页。第6章 收集需求案例分析iCoot用例的优先级用例的优先级绿色绿色:U1:浏览索引浏览索引U4:搜索:搜索U2:查看结果:查看结果U3:查看汽车型号的细节:查看汽车型号的细节U5:登录:登录:U12:注销:注销U6:查看会员信息:查看会员信息U7:进行预约:进行预约U10:查看预约情况:查看预约情况第87页,共91页。第6章 收集需求案例分析iCoot用
50、例的优先级用例的优先级红色红色:U11:取消预约:取消预约U8:查看租用情况:查看租用情况U9:修改密码:修改密码第88页,共91页。第6章 收集需求系统用例的优先级在完成业务建模之后,交在完成业务建模之后,交通灯用于开发的其他阶段通灯用于开发的其他阶段(绿色)(绿色)该组中的用例应完成该组中的用例应完成系统需求、分析、系统设计、系统需求、分析、系统设计、子系统设计、规范、实现和测子系统设计、规范、实现和测试试该组中的用例应完成该组中的用例应完成系统需求,分析和系统设计应系统需求,分析和系统设计应完成或接近完成,子系统设计、完成或接近完成,子系统设计、规范、实现和测试是可选的规范、实现和测试是
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。