资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第8章章 理解用户需求理解用户需求本章主要介绍:l使用用例法描述和获取用户需求l使用事件-响应表方法来描述和获取用户需求1 8.1 用 例 法4需求分析员们一直利用使用场景需求分析员们一直利用使用场景(usage scenario)(usage scenario)来获取来获取需求。需求。场景场景(scenario):(scenario):是对系统的单个使用实例的描述。是对系统的单个使用实例的描述。以场景为中心的方法称为以场景为中心的方法称为用例法用例法。 注意:不要强行把所有需求都归入用例。用例可以揭示大部分功能注意:不要强行把所有需求都归入用例。用例可以揭示大部分功能需求,但通常不是全部。需求,但通常不是全部。 4用例描述了系统与外部角色之间的一系列交互。用例描述了系统与外部角色之间的一系列交互。角色角色(actor)(actor): :指与系统交互以实现某种目的的人、软件系统或硬指与系统交互以实现某种目的的人、软件系统或硬件设备。角色的另外一个名称是件设备。角色的另外一个名称是用户角色用户角色(user role)(user role)。4用例是目前广泛应用的统一软件开发过程的核心。用例是目前广泛应用的统一软件开发过程的核心。4用例转变了需求开发的角度,传统的需求获取方式是询问用例转变了需求开发的角度,传统的需求获取方式是询问用户需要用系统做什么,而现在则是讨论用户需要实现什用户需要用系统做什么,而现在则是讨论用户需要实现什么。用例更接近目标。么。用例更接近目标。4用例图用例图(user-case diagram)(user-case diagram)提供了对用户需求的高级可提供了对用户需求的高级可视化表示。视化表示。2图8.1 化学品跟踪管理系统用例图l方框方框系统边界系统边界l椭圆椭圆用例用例l小人图小人图角色角色l连线连线角色与用例的交互角色与用例的交互3 3 8.1.1 用例与使用场景用例:用例:是角色为达到某种重要目标而执行的一种离散、独是角色为达到某种重要目标而执行的一种离散、独立的活动。立的活动。用例是一组相关的使用场景,场景则是用例的一个特定实例。用例是一组相关的使用场景,场景则是用例的一个特定实例。用例是一组相关的使用场景,场景则是用例的一个特定实例。用例是一组相关的使用场景,场景则是用例的一个特定实例。用例描述中的基本内容包括:用例描述中的基本内容包括: 唯一标识;唯一标识; 一个用例名,简要的说明用户的任务,采用一个用例名,简要的说明用户的任务,采用“ “动词动词+ +对象对象” ”的形式;的形式; 用自然语言书写简短的文字描述;用自然语言书写简短的文字描述; 一组前置条件,只有满足条件才能使用用例;一组前置条件,只有满足条件才能使用用例; 后置条件,描述用例成功完成后的系统状态;后置条件,描述用例成功完成后的系统状态; 一组带编号的步骤,描述从前置条件到后置条件过程一组带编号的步骤,描述从前置条件到后置条件过程中,系统与角色间的一系列会话步骤与交互。中,系统与角色间的一系列会话步骤与交互。4 4 8.1.1 用例与使用场景5 5用例举例:酒店管理用例描述用例编号:用例编号:用例编号:用例编号:uc-1uc-1uc-1uc-1宏用例名:酒店管理宏用例名:酒店管理宏用例名:酒店管理宏用例名:酒店管理创建人:大卫创建人:大卫创建人:大卫创建人:大卫最后修改人:大卫最后修改人:大卫最后修改人:大卫最后修改人:大卫角色:酒店管理员角色:酒店管理员角色:酒店管理员角色:酒店管理员描描描描述述述述:酒酒酒酒店店店店管管管管理理理理员员员员通通通通过过过过系系系系统统统统查查查查询询询询客客客客房房房房情情情情况况况况和和和和今今今今日日日日房房房房价价价价,为为为为住住住住宿宿宿宿客客客客户户户户提提提提供供供供基基基基本本本本信信信信息息息息,在在在在登登登登记记记记中中中中保保保保存存存存客客客客户户户户的的的的基基基基本本本本信信信信息息息息,在在在在退退退退房房房房时时时时计计计计算算算算房房房房价价价价和和和和还还还还房房房房间间间间前置条件:酒店管理员登陆系统前置条件:酒店管理员登陆系统前置条件:酒店管理员登陆系统前置条件:酒店管理员登陆系统后置条件:相关信息被保存后置条件:相关信息被保存后置条件:相关信息被保存后置条件:相关信息被保存主主主主干干干干过过过过程程程程:查查查查询询询询客客客客房房房房情情情情况况况况,登登登登记记记记客客客客户户户户信信信信息息息息,安安安安排排排排客客客客房房房房,退退退退房房房房结结结结账账账账,删删删删除除除除退退退退房房房房客客客客户户户户信信信信息息息息,更更更更新新新新信信信信息息息息,计计计计算算算算当当当当日收益,打印报表。日收益,打印报表。日收益,打印报表。日收益,打印报表。异常:客户信息有问题;异常:客户信息有问题;异常:客户信息有问题;异常:客户信息有问题; 客户要求更换房间;客户要求更换房间;客户要求更换房间;客户要求更换房间; 客户损坏了房间设施客户损坏了房间设施客户损坏了房间设施客户损坏了房间设施备注:无备注:无备注:无备注:无6 6 8.1.2 确定用例可采用以下几种方法确定用例:通过用例获取讨论会,明确有哪些角色,然后通过用例获取讨论会,明确有哪些角色,然后确定他们各自参与了哪些业务过程。确定哪些确定他们各自参与了哪些业务过程。确定哪些外部事件是系统必须响应的,将它们与参与的外部事件是系统必须响应的,将它们与参与的角色和特定用例关联起来。角色和特定用例关联起来。用特定场景来描述业务过程,将这些场景归纳用特定场景来描述业务过程,将这些场景归纳为用例,并确定每项用例涉及哪些角色。为用例,并确定每项用例涉及哪些角色。从已有的功能性需求推导出可能的用例。从已有的功能性需求推导出可能的用例。7 7 8.1.3 编写用例在调查阶段,应该首先考虑基本用例。在调查阶段,应该首先考虑基本用例。基本用例基本用例:是对某项任务或某种交互所作的简化、:是对某项任务或某种交互所作的简化、概括、抽象的描述,与技术和实现无关,基本用概括、抽象的描述,与技术和实现无关,基本用例体现了进行这种交互的真正目的或意图。例体现了进行这种交互的真正目的或意图。(具体用例:讨论用户与系统交互时采取的具体动(具体用例:讨论用户与系统交互时采取的具体动作。)作。)1.1.常用方法常用方法 需求分析员将角色的每个动作和系统的每个响应记需求分析员将角色的每个动作和系统的每个响应记在便笺上,将便笺贴到活页挂图上,用这种方式引在便笺上,将便笺贴到活页挂图上,用这种方式引导讨论会的进行。导讨论会的进行。 另一种方式是将用例模板从电脑投影到大屏幕上,另一种方式是将用例模板从电脑投影到大屏幕上,在讨论过程中填完这份模板在讨论过程中填完这份模板。8 8 8.1.3 编写用例图图8.58.5 给出了用例开发过程中的事件序列。根据讨论会的给出了用例开发过程中的事件序列。根据讨论会的结果,需求分析员为用例写出用例详细描述。结果,需求分析员为用例写出用例详细描述。图图8.59 92.用例详细描述用例的核心是角色-系统会话步骤:一种是在用例描述中进行会话步骤描述;二是通过两列表格来描述用例会话。 8.1.3 编写用例1010申领化学品用例描述1111121213131414两列表格来描述用例会话 以申以申领化学品为例领化学品为例角色动作角色动作系统响应系统响应1.1.指定所需化学品指定所需化学品2.2.验证被请求化学品存在验证被请求化学品存在3.3.显示当前化学品仓库存在的显示当前化学品仓库存在的所需的化学品列表所需的化学品列表4.4.查询化学品使用情况查询化学品使用情况5.5.选择某种化学品,或者请求选择某种化学品,或者请求向厂家订购(分支过程向厂家订购(分支过程1.11.1)1515 8.1.4 用例与功能性需求功能性需求功能性需求是让用户得以执行用例并达成目标是让用户得以执行用例并达成目标的系统行为。的系统行为。功能性需求是由软件开发人员实功能性需求是由软件开发人员实现的现的用例用例是从角色的角度来描述系统行为,省略了是从角色的角度来描述系统行为,省略了很多细节。很多细节。 因此,对实现用例时需要的详细的功能性需因此,对实现用例时需要的详细的功能性需求,需求分析员应该给出详细的描述。求,需求分析员应该给出详细的描述。记录与用例相关的功能性需求有几种方式记录与用例相关的功能性需求有几种方式:1. 1. 只使用用例只使用用例 是把功能性需求包含在每个用例描述中,是把功能性需求包含在每个用例描述中,另外还需要一个单独另外还需要一个单独的补充说明来记录非功能性需求,以及所有不与特定用例相关的补充说明来记录非功能性需求,以及所有不与特定用例相关的功能性需求。的功能性需求。1616 8.1.4 用例与功能性需求2.使用用例与软件需求规格说明是写一个比较简单的用例描述,同时把从用例中推导是写一个比较简单的用例描述,同时把从用例中推导出的功能性需求记录在软件需求规格说明中。出的功能性需求记录在软件需求规格说明中。3. 只使用软件需求规格说明根据用例或特性来组织软件需求规格说明,并把根据用例或特性来组织软件需求规格说明,并把用例和功能性需求都记录在软件需求规格说明中。用例和功能性需求都记录在软件需求规格说明中。1717 8.1.5 用例的好处1.使用用例能够让用户更清楚地了解新系统可以提使用用例能够让用户更清楚地了解新系统可以提供的功能。供的功能。2.用例法还有助于为需求划分优先级。优先级最高用例法还有助于为需求划分优先级。优先级最高的功能性需求源自优先级最高的用例。优先级高的功能性需求源自优先级最高的用例。优先级高的用例具有以下特征:的用例具有以下特征: 描述了系统实现的核心业务过程之一;描述了系统实现的核心业务过程之一; 很多用户经常使用;很多用户经常使用; 由重点用户类提出;由重点用户类提出; 提供了为符合规定所需的功能;提供了为符合规定所需的功能; 其他系统功能依赖于该用例的存在。其他系统功能依赖于该用例的存在。3.用例法还有技术方面的好处,能够揭示重要的域用例法还有技术方面的好处,能够揭示重要的域对象,以及相互间的职责。对象,以及相互间的职责。1818 8.1.6 使用用例时应避免的问题 与所有的软件工程方法一样,用例法的应用与所有的软件工程方法一样,用例法的应用也经常会误入歧途。要避免下面这些问题:也经常会误入歧途。要避免下面这些问题: 用例过多。用例过多。 用例过于复杂用例过于复杂 。 在用例中包含用户界面设计。在用例中包含用户界面设计。 在用例中包含数据定义。在用例中包含数据定义。 用户无法理解用例。用户无法理解用例。 新的业务流程。新的业务流程。 滥用包含和扩充关系。滥用包含和扩充关系。1919 8.2 事件响应表 另一种组织和记录用户需求的方法是确定系统必须另一种组织和记录用户需求的方法是确定系统必须响应哪些外部事件。响应哪些外部事件。事件事件:是在用户环境中发生的某种变化或活动。:是在用户环境中发生的某种变化或活动。事件事件响应表响应表( (也称为事件表或事件列表也称为事件表或事件列表) )列出了所列出了所有这类事件和系统应对每个事件做出的反应。有这类事件和系统应对每个事件做出的反应。如图如图8.78.7所示,有几种不同类型的系统事件,说明如所示,有几种不同类型的系统事件,说明如下下:2020系统事件的类型1.用户(人)执行的动作,该动作将激发用户与软件的会话。2.控制信号、数据读取、或从外部硬件设备收到的中断信号。3.由时间触发的事件。图8.7系统事件-响应示例2121汽车挡风雨雪刷系统的事件响应表IDID事件事件事件事件系统状态系统状态系统状态系统状态系统响应系统响应系统响应系统响应1.11.1将雨雪刷工作速度设置为低速将雨雪刷工作速度设置为低速关闭雨雪刷关闭雨雪刷将雨雪刷驱动器设置为低速将雨雪刷驱动器设置为低速1.21.2将雨雪刷工作速度设置为低速将雨雪刷工作速度设置为低速雨雪刷以高速运转雨雪刷以高速运转将雨雪刷驱动器设置为低速将雨雪刷驱动器设置为低速1.31.3将雨雪刷工作速度设置为低速将雨雪刷工作速度设置为低速雨雪刷间隙运转雨雪刷间隙运转将雨雪刷驱动器设置为低速将雨雪刷驱动器设置为低速2.12.1将雨雪刷工作速度设置为高速将雨雪刷工作速度设置为高速关闭雨雪刷关闭雨雪刷将雨雪刷驱动器设置为高速将雨雪刷驱动器设置为高速2.22.2将雨雪刷工作速度设置为高速将雨雪刷工作速度设置为高速雨雪刷以低速运转雨雪刷以低速运转将雨雪刷驱动器设置为高速将雨雪刷驱动器设置为高速2.32.3将雨雪刷工作速度设置为高速将雨雪刷工作速度设置为高速雨雪刷间隙运转雨雪刷间隙运转将雨雪刷驱动器设置为高速将雨雪刷驱动器设置为高速3.13.1将雨雪刷设置为关将雨雪刷设置为关雨雪刷以高速运转雨雪刷以高速运转1.1.完成当前运转周期完成当前运转周期2.2.关闭雨雪刷驱动器关闭雨雪刷驱动器3.23.2将雨雪刷设置为关将雨雪刷设置为关雨雪刷以低速运转雨雪刷以低速运转1.1.完成当前运转周期完成当前运转周期2.2.关闭雨雪刷驱动器关闭雨雪刷驱动器3.33.3将雨雪刷设置为关将雨雪刷设置为关雨雪刷间隙运转雨雪刷间隙运转1.1.完成当前运转周期完成当前运转周期2.2.关闭雨雪刷驱动器关闭雨雪刷驱动器4 4将雨雪刷设置为间隙将雨雪刷设置为间隙关闭雨雪刷关闭雨雪刷1.1.读取雨雪刷运转时间间隔读取雨雪刷运转时间间隔2.2.启动雨雪刷定时器启动雨雪刷定时器2222 事件事件事件事件- - - -响应表记录的是用户响应表记录的是用户响应表记录的是用户响应表记录的是用户- - - -需求层的信息。如果表需求层的信息。如果表需求层的信息。如果表需求层的信息。如果表中定义并标明了事件、状态和响应(包括异常条件)中定义并标明了事件、状态和响应(包括异常条件)中定义并标明了事件、状态和响应(包括异常条件)中定义并标明了事件、状态和响应(包括异常条件)的所有可能组合,它还可以作为这部分系统的功能的所有可能组合,它还可以作为这部分系统的功能的所有可能组合,它还可以作为这部分系统的功能的所有可能组合,它还可以作为这部分系统的功能性需求的一部分。性需求的一部分。性需求的一部分。性需求的一部分。 我们的目标是将需求定义得足够精确,以便开发人员知道究竟要开发什么。2323课课 后后 小小 结结场景和场景和角色角色的概念的概念使用用例来描述需求使用用例来描述需求记录与用例相关的功能性需求记录与用例相关的功能性需求的种方式的种方式用例的好处用例的好处使用用例时应避免的问题使用用例时应避免的问题事件事件- -响应表描述需求响应表描述需求2424思考题: 参考图8.1 模板为你当前的项目写一个用例,用例中应该包括主干过程和异常。2525
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号