用户需求获取活动的展开主要内容1.用户需求获取活动的展开2.用例与场景的作用3.场景分析4.用例分析用户需求获取活动的展开目标任务系统行为业务需求用户需求系统级需求解决方案与系统特性问题域知识需求分析模型注意事项要保持项目范围,不能有需求遗漏参照系统特性,围绕系统边界设计获取活动计划多轮次获取根据内容合理安排获取方法及时组织已获取需求,为后续获取提供指导多轮次获取要点前景与范围阶段准备:背景资料获取与分析第一轮:问题分析(深入)第二轮:高层解决方案制定(确认)用户需求获取阶段准备:明确主题与内容,准备材料第一轮:明确任务与任务中主要问题(深入)第二轮:明确任务细节,澄清困难内容(技巧、困难)第三轮:明确解决方案(确认)示例获取方法安排面谈:常规方法集体面谈:快速方法头脑风暴:“发明”需求不确定性:原型情景性:观察示例需求的组织模型驱动方法整理和归类需求获取行为得到的信息模型是进行信息整理和归类的很好的框架依据指导和组织需求获取行为的开展模型可以用于指导后续需求获取行为的开展为详细信息的分析提供背景基础和上下文知识模型驱动方法则是侧重于前期需求阶段的方法,是传统需求分析方法的一个很好的补充承上启下展开上一层(业务需求)准备下一层的展开(系统级需求)主要内容1.用户需求获取活动的展开2.用例与场景的作用3.场景分析4.用例分析为什么需要“用例与场景”需求获取内容的处理?获取笔录:权宜之计用户需求+问题域特性混杂,不清晰等特性用例与场景场景为单位问题域特性或者用户需求+问题域特性组织清晰用例与场景以场景为单位组织用户需求(和问题域特性)很受实践者欢迎易于接受易于使用用例驱动!方法多样,差异性很大也可以用来处理业务需求和系统级需求还可以用来处理设计问题、测试问题……用例与场景的作用组织需求获取得到的信息;用例与场景的作用指导需求获取活动的开展;用例与场景的作用帮助进行详细的需求分析;指导需求验证场景捕获局部事件事件的场景要素局部模型模型元素组织是...的部分是...的部分类型相关(Dependencies)抽象由...验证主要内容1.用户需求获取活动的展开2.用例与场景的作用3.场景分析——基于场景的方法4.用例分析基于场景的方法[Zorman1995]将场景定义为对系统和环境行为的局部描述[Plihon1998]将场景定义为对行为或者事件序列的描述,序列中的行为和事件是系统需要完成的一个任务的特殊示例。[Jarke1996]认为场景包含有行为序列和行为发生的环境,环境描述了行为的主体、客体和上下文设置。以上的描述都不足以作为场景的准确定义,人们也很难给场景下一个非常准确的定义[Rolland1998a]。3.基于场景的方法场景具有重点描述真实世界的特征,它利用情景、行为者之间的交互、事件随时间的演化等方式来叙述性的描述系统的使用050100150200250300350400450用例序列图原型模型仿真战略业务情景战术业务情景任务模型系统测试用例验收测试用例其他3.基于场景的方法基于场景的方法的用途0100200300400500600项目管理业务流程建模需求工程设计实现系统测试验收测试系统集成文档化维护质量保障其他3.基于场景的方法场景方法的分类内容目的场景形式生命周期拥有演化基于...表达旨在在场景内表达了什么知识?场景用什么样的形式进行表达?为什么使用场景?怎样处理和应用一个场景?3.基于场景的方法场景的形式:场景的表达模式描述(Description)表示法的正规性非形式化语言、半形式化语言和形式化语言媒介形式(Medium)叙述性的自由文本、结构化文本、强限制文本、表格、图表、图像等外观动态、静态、交互050100150200250300350400450非形式化文本结构化文本强限制文本(模版)表格图表超媒体图像视频音频虚拟环境物理模型组合方式其他3.基于场景的方法场景的内容主要关注点关于现在的,关于未来的,关于解决方案的环境范围系统内部,系统外部,系统和环境的交互抽象层次具体的、抽象的、混合的覆盖范围功能需求,非功能需求粒度整个业务过程;某个任务的完成过程;某个交互行为的详细处理步骤示例类型正常流程,异常流程3.基于场景的方法场景的目的描述(descriptive)需求的文档化,需求协商探索(exploratory)需求获取需求建模与分析解释(explanatory)需求的验证0100200300400500600需求获取需求建模需求验证需求协商需求交流产生使用3.基于场景的方法场景的生命周期场景(现在)当前系统探索:获取场景(未来)需求规格说明探索:分析描述:文档化场景(未来)需求规格说明解释:降低复杂性需求模型建模与分析场景(未来)需求规格说明解释需求模型验证解释:验证建模与分析当前系统探索场景(未来)需求规格说明描述:文档化场景(未来)当前系统探索需求模型建模与分析a)b)c)d)e)主要内容1.用户需求获取活动的展开2.用例与场景的作用3.场景分析4.用例分析——基于用例的方法4.基于用例的方法用例相关场景集合的叙述性的文本描述用例的概念是[Jacobson1992]最先在Objectory方法中提出的UML以用例来捕获系统的功能需求,而不是所有的系统需求被广泛应用:以用例为中心4.基于用例的方法用例需求体系结构分析&设计测试用户界面设计业务建模迭代规划…...4.基于用例的方法UML将用例定义为“在系统(或者子系统或者类)和外部对象的交互当中所执行的行为序列的描述,包括各种不同的序列和错误的序列,它们能够联合提供一种有价值的服务”[Rumbaugh2004]。[Cockburn2001]认为用例描述了在不同条件下系统对某一用户的请求所作出的响应。根据用户的请求和请求时的系统条件,系统将执行不同的行为序列,每一个行为序列被称为一个场景。目标性,多场景性功能需求(擅长)与非功能需求(偏弱)4.基于用例的方法重要术语主参与者辅助参与者职责:-目标1-目标2-行为1……-对目标2的备份行为职责:-目标1-行为1(交互1)(交互2)职责ID:用例的标识,通常会结合用例的层次结构使用X.Y.Z的方式名称:对用例内容的精确描述,体现了用例所描述的任务,通常是“动词+名词”用例属性包括创建者、创建日期、更新历史等参与者:描述系统的主参与者、辅助参与者和每个参与者的目标描述:简要描述用例产生的原因,大概过程和输出结果优先级:用例所描述的需求的优先级触发条件:标识启动用例的事件,可能是系统外部的事件,也可能是系统内部的事件,还可能是正常流程的第一个步骤前置条件:用例能够正常启动和工作的系统状态条件后置条件:用例执行完成后的系统状态条件正常流程:在常见和符合预期的条件下,系统与外界的行为交互序列分支流程:用例中可能发生的非常见的其他合理场景异常流程:在非预期的错误条件发生时,系统对外界进行响应的交互行为序列相关用例:记录和该用例存在关系的其他用例。关于用例之间的关系见10.4.4业务规则:可能会影响用例执行的业务规则特殊需求:和用例相关的其他特殊需求,尤其是非功能性需求假设:在建立用例时所做的假设待确定问题:一些当前的用例描述还没有解决的问题4.基于用例的方法场景定位用例是静态的结构化文本描述。用例的内容可以是对当前世界的描述,也可以是对将来确定的解系统的内部行为描述,还可以是对一种期待的解决方案的描述。用例可能会被用于描述系统内部的交互,也可能被用于描述系统和环境的交互,还可能会被用于描述行为的环境和背景。用例是类型层次的事件描述,主要用来描述功能需求。可以包含其他类型的需求用例的内容既包含有正常流程,又包含有异常流程。4.基于用例的方法场景定位用例可以是比较抽象的,用于描述整个业务过程;也可以是比较具体的,用于描述某个任务的完成过程;还可以是非常具体的,描述某个交互行为的详细处理步骤。在需求工程的前期,会产生第一种和第二种用例描述,但最终都需要细化为最后一种形式的用例描述。用例可以用于各种目的的应用,包括描述、探索和解释(explanatory)。需求获取和需求验证是它在需求工程中的主要应用阶段,它也可以用于需求的建模、交流和协商。场景的各种生命周期特征、应用和处理过程都适用于用例。4.基于用例的方法用例模型用例参与者关联系统边界多用例综合处理不允许功能分解客户使用信用卡功能处理客户单据账户管理信用卡系统零售机构金融机构4.基于用例的方法——用例文档一、文档的信息1、对文档本身特征的描述信息,例如文档的标题、作者、更新历史等;2、为了方便读者阅读的导读性信息,例如写作的目的、主要内容概述、组织结构、文档约定、参考文献等。二、用例图或者用例列表使用一个和几个用例图来概括文档中出现的所有用例及用例间的关系。在文档内用例比较多的情况下,也可能使用一个列表来代替用例图,列表内逐一列出文档内所有用例的ID、名称和其他需要的概括性信息。三、用例描述用例1对用例1的详细描述,描述的方式如10.5.3节所述。…用例n本章小结模型驱动方法是基于模型的建立和使用而提出的方法,它在整个需求工程,甚至软件工程中都可以发挥重要的作用面向目标的方法目标的概念将会对需求工程产生重要的影响基于场景的方法在软件工程当中有着极为广泛的应用基于用例的方法是最为常用的一种基于场景的方法模型驱动方法虽然已经得到了相当广泛的应用,但是它们仍然在不断的发展和完善