第02讲 软件需求工程过程_第1页
第02讲 软件需求工程过程_第2页
第02讲 软件需求工程过程_第3页
第02讲 软件需求工程过程_第4页
第02讲 软件需求工程过程_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章第二章 软件需求工程过程软件需求工程过程课程提纲课程提纲软件需求基本理论和概念软件需求基本理论和概念 软件需求工程过程软件需求工程过程 软件需求获取软件需求获取 软件需求分析软件需求分析 软件需求规格说明软件需求规格说明 软件需求验证软件需求验证 软件需求管理软件需求管理 软件需求实现软件需求实现 软件需求工程新进展软件需求工程新进展 软件需求开发与需求管理工具软件需求开发与需求管理工具内容提要内容提要(Agenda)软件需求工程定义软件需求工程定义客户的需求观客户的需求观需求知识技能获取需求知识技能获取定义项目业务需求、视图及范围定义项目业务需求、视图及范围需求开发过程需求开发过程包括

2、需求获取、需求分析、撰写需求规格说明和需求验证包括需求获取、需求分析、撰写需求规格说明和需求验证 需求管理过程需求管理过程包括需求变更和风险管理、配置与版本控制、需求跟踪链与包括需求变更和风险管理、配置与版本控制、需求跟踪链与需求状态跟踪需求状态跟踪 需求管理与项目管理CMMICMMI需求工程过程模型需求工程过程模型一一.软件需求工程软件需求工程需求工程是指应用已证实有效的技术、方法需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征员理解问题并定义目标系统的所有外部特征的一门学科。它通过合适的

3、工具和记号系统的一门学科。它通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演形成需求文档,并对用户不断变化的需求演进给予支持。进给予支持。 注意,和所有工程学科一样,需求工程并不是以零星注意,和所有工程学科一样,需求工程并不是以零星偶发的、随机的或无计划的方式进行,而是代之以已偶发的、随机的或无计划的方式进行,而是代之以已证明方法的系统化应用。证明方法的系统化应用。软件需求工程组成软件需求工程组成需求工程需求工程需求管理需求管理需求开发需求开发编写规格说明编写规格说明分析分析问题获取问题获取验证验证包

4、括包括软件类产品软件类产品中需求收集、评中需求收集、评价、编写文档等价、编写文档等所有活动所有活动 建立并维护在软建立并维护在软件工程中同客户件工程中同客户达成的契约达成的契约 软件需求工程划分为需求开发和需求管理。软件需求工程划分为需求开发和需求管理。需求开发过程需求开发过程 需求开发可进一步分为需求获取需求获取(Elicitation)、需求分析需求分析(Analysis)、规格说规格说明明(Specification)和需求验证需求验证(Validation)。 这些子学科涵盖了为软件和软件相关产品收集、评估、和记录需求相关的所有活动。1. 需求管理活动需求管理活动需求管理过程需求管理过

5、程基准需求说明基准需求说明分析分析编写文档编写文档评审、商议评审、商议需求变更过程需求变更过程市场市场需求需求客户客户管理管理市场市场客户客户管理管理项目环境项目环境当前基线当前基线需求开发需求开发需求管理需求管理修正后基线修正后基线需求变更需求变更项目变更项目变更需求开发与需求管理之间的界限需求开发与需求管理之间的界限需求开发与需求开发与管理之间的管理之间的界线界线二二. 客户的需求观客户的需求观Brain StormingWho are the potential stakeholders (风险承担者)风险承担者)of a software project? Show your thin

6、king Users (may be classified into different users) Customers Developers Testers Marketing team Senior management team Product management Key Stakeholders对一个软件对一个软件项目项目最最关注的人员关注的人员 用户用户(Users)(Users)考虑的重点是产品的易使用性考虑的重点是产品的易使用性, ,功能功能 客户客户( (Customers)Customers)考虑的重点是产品的功能以及由此能产生考虑的重点是产品的功能以及由此能产生的效益的

7、效益 开发人员开发人员( (Engineers)Engineers)考虑的重点是产品的可开发性考虑的重点是产品的可开发性, ,技术细节技术细节用户的特征用户的特征 从产品可操作性出发思考问题从产品可操作性出发思考问题 不一定是受到良好训练的工程师不一定是受到良好训练的工程师 了解产品操作环境了解产品操作环境 对产品技术、商务背景、限制不对产品技术、商务背景、限制不感兴趣感兴趣客户的特征客户的特征 是用户的代理人。客户可能是同一组织内的系是用户的代理人。客户可能是同一组织内的系统工程组、市场组、其他职能部门。多数情况统工程组、市场组、其他职能部门。多数情况下可能是一个外部客户,如中国移动下可能是

8、一个外部客户,如中国移动(CMCC),(CMCC),中中国联通国联通(Unicom),Services Provider(ISP)(Unicom),Services Provider(ISP) 对产品的性能,功能有本能的感觉对产品的性能,功能有本能的感觉 集中于产品的商务方面集中于产品的商务方面 关心产品合同与合法性等细节关心产品合同与合法性等细节 客户不一定是受到良好训练的工程师客户不一定是受到良好训练的工程师 对产品的可操作性的知识并不全面对产品的可操作性的知识并不全面开发人员的特征开发人员的特征 是受到良好训练的工程师是受到良好训练的工程师 日常交流更善于使用专业术语日常交流更善于使用专

9、业术语 对产品的可操作性的知识并不全面对产品的可操作性的知识并不全面 可能过分服从,也可能过于坚持己见可能过分服从,也可能过于坚持己见 钟爱于技术完美性,疏忽商务上的作用钟爱于技术完美性,疏忽商务上的作用项目相关人员对项目的影响项目相关人员对项目的影响用户用户产品易于使用,具产品易于使用,具有所有期望的功能有所有期望的功能和操作能力和操作能力不合理的期望不合理的期望客户客户在规定时间和投资在规定时间和投资下向用户递交产品,下向用户递交产品,最大可能满足用户最大可能满足用户需要需要不切实际的时间表和预算不切实际的时间表和预算频繁的需求变更频繁的需求变更不确定的质量目标不确定的质量目标开发人员开发

10、人员开发满足客户、用开发满足客户、用户需求的产品。收户需求的产品。收回投资回投资人员能力不足人员能力不足个人表现欠佳个人表现欠佳缺乏风险意识缺乏风险意识接受客户不切实际的要求接受客户不切实际的要求通过协商获得合理的期望通过协商获得合理的期望用户用户- - 派生原始需求派生原始需求- - 扩展可选择性扩展可选择性- - 了解开发人员了解开发人员 和客户的问题和客户的问题客户客户开发人员开发人员- 充足的人员、充足的人员、 技术和资本配置技术和资本配置- - 扩展可选择性扩展可选择性- 了解用户和客户了解用户和客户 的问题的问题- 成本、时间表成本、时间表 的合理分派的合理分派- - 了解开发人员

11、了解开发人员 和用户的问题和用户的问题通过团队合作协商,通过团队合作协商,解决冲突,达成共识解决冲突,达成共识用户对系统的期望用户对系统的期望如何同用户一起构思系统的功能?如何同用户一起构思系统的功能?功能处理流程功能处理流程输入条件输入条件期待的输出期待的输出用户可以理解的构思用户可以理解的构思模块模块A模块模块E模块模块B模块模块D模块模块C模块模块F用户不能理解的构思用户不能理解的构思三三. 需求知识技能获取需求知识技能获取 需求过程是必不可少的,所有项目的涉众需求过程是必不可少的,所有项目的涉众都应该理解需求工程的概念和方法,这样都应该理解需求工程的概念和方法,这样有利于各方之间的沟通

12、。将各涉众方召集有利于各方之间的沟通。将各涉众方召集起来利用一天的时间进行软件需求培训,起来利用一天的时间进行软件需求培训,这是打造团队的一种有效方法。这是打造团队的一种有效方法。三三. 知识技能获取知识技能获取需求工程的知识技能是系统需求分析人员的基础;需求工程的知识技能是系统需求分析人员的基础;本门课程的学习实际上就是奠定这一基础的最好本门课程的学习实际上就是奠定这一基础的最好方式。如果缺少了这一领域的知识,唯一的方式方式。如果缺少了这一领域的知识,唯一的方式通过培训来在一定程度上提高分析员的能力和水通过培训来在一定程度上提高分析员的能力和水平。各位学员完全有可能担当小组培训师的任务:平。

13、各位学员完全有可能担当小组培训师的任务:培训需求分析人员培训需求分析人员培训软件需求的用户代表和管理人员培训软件需求的用户代表和管理人员让开发人员了解问题域让开发人员了解问题域( (应用领域应用领域) )的基的基本概念本概念1.1.编写项目术语汇编编写项目术语汇编三三. 知识技能获取知识技能获取 培训需求分析人员培训需求分析人员所有的开发人员都应接受一个基本的需求所有的开发人员都应接受一个基本的需求工程培训。但那些负责收集、编写文档和工程培训。但那些负责收集、编写文档和分析用户需求的人员应当进行更长时间,分析用户需求的人员应当进行更长时间,更加针对性的培训。把高水平的需求人员更加针对性的培训。

14、把高水平的需求人员组织起来,通过良好的信息交流,了解应组织起来,通过良好的信息交流,了解应用领域并有效地应用需求工程中的成熟技用领域并有效地应用需求工程中的成熟技术。术。三三.需求知识技能获取需求知识技能获取 培训需求分析员培训需求分析员-需要几天时间的培训需要几天时间的培训熟练的需求分析员应具备以下特点:熟练的需求分析员应具备以下特点:耐心耐心思维条理性强思维条理性强有良好的交际和沟通能力有良好的交际和沟通能力理解产品应用领域理解产品应用领域掌握丰富的需求工程技术掌握丰富的需求工程技术三三. 知识技能获取 培训软件需求的用户代表和管理人员培训软件需求的用户代表和管理人员参与软件开发的用户代表

15、应接受为期一天参与软件开发的用户代表应接受为期一天左右的需求工程培训,开发管理者和客户左右的需求工程培训,开发管理者和客户管理者也应参加。这样的培训将使他们理管理者也应参加。这样的培训将使他们理解强调需求的重要性,以及忽略需求带来解强调需求的重要性,以及忽略需求带来的风险。的风险。三三.需求知识技能获取需求知识技能获取 对用户代表和管理者进行软件需求培训对用户代表和管理者进行软件需求培训-一到两天的培训一到两天的培训明白重视需求的意义明白重视需求的意义需求工作包括哪些活动需求工作包括哪些活动要提交什么样的结果要提交什么样的结果忽略需求过程会导致的风险忽略需求过程会导致的风险更加体谅软件开发人员

16、更加体谅软件开发人员三三. 知识技能获取知识技能获取 让开发人员了解问题域让开发人员了解问题域( (应用领域应用领域) )的基本的基本概念概念 组织一些简短的关于客户业务活动、术组织一些简短的关于客户业务活动、术语、目标等方面的讨论会帮助开发人员对语、目标等方面的讨论会帮助开发人员对应用领域有个基本的了解。这能减少误解应用领域有个基本的了解。这能减少误解及工程中的返工。可能的情况下为每位人及工程中的返工。可能的情况下为每位人员或项目小组安排一个用户伙伴以便在项员或项目小组安排一个用户伙伴以便在项目过程中解释业务术语和概念。产品代表目过程中解释业务术语和概念。产品代表就应该扮演这样的角色。就应该

17、扮演这样的角色。三三.需求知识技能获取需求知识技能获取 对开发人员进行应用领域的相关培训对开发人员进行应用领域的相关培训-安排研讨课程安排研讨课程减少在开发过程中的混淆、误解和返工减少在开发过程中的混淆、误解和返工在项目开发过程中为每位开发人员配备一在项目开发过程中为每位开发人员配备一位用户伙伴,负责解释行话和业务概念。位用户伙伴,负责解释行话和业务概念。三三. 知识技能获取知识技能获取 编写项目术语汇编编写项目术语汇编为减少沟通方面的问题,编一部术语汇编将项目为减少沟通方面的问题,编一部术语汇编将项目应用领域的专用词汇给予定义说明,既要包括那应用领域的专用词汇给予定义说明,既要包括那些有多种

18、含义与用法的术语,也要包括那些在专些有多种含义与用法的术语,也要包括那些在专用领域的术语解释。用领域的术语解释。 术语表中包括同义词、有多种含义的术语、以术语表中包括同义词、有多种含义的术语、以及既有特定领域的含义又有日常含义的术语。及既有特定领域的含义又有日常含义的术语。四. 建立项目视图和范围 项目视图在高层上描述了产品涉及的各个项目视图在高层上描述了产品涉及的各个方面,在期望的环境中所具有的功能。范方面,在期望的环境中所具有的功能。范围是对产品应该包含的部分的界定围是对产品应该包含的部分的界定 业务机遇的描述业务机遇的描述 项目的目标项目的目标 产品范围和局限性产品范围和局限性 客户及用

19、户的特点客户及用户的特点 优先级优先级 项目成功的标准项目成功的标准业务需求业务需求 业务需求业务需求(Business Requirement)表示组表示组织或客户层次的目标。业务需求通常来自织或客户层次的目标。业务需求通常来自项目的投资人、购买产品的客户、实际用项目的投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部户的管理者、市场营销部门或产品策划部门。门。 业务需求描述了组织为什么要开发一个系业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。统,即组织希望达到的目标。业务需求业务需求 业务需求位于需求链中的最高层,这种需业务需求位于需求链中的最高层,这种需求

20、定义了软件系统的视图求定义了软件系统的视图(product vision)与范围与范围(project scope). 用户需求和软件功能需求都必须符合业务用户需求和软件功能需求都必须符合业务需求设定的前景和目标。需求设定的前景和目标。 业务需求定义不充分的一个迹象是:某些业务需求定义不充分的一个迹象是:某些特性先是被添加,然后被删除,之后又被特性先是被添加,然后被删除,之后又被加入。加入。业务需求与用例业务需求与用例 业务需求决定了应用的广度与深度。业务需求决定了应用的广度与深度。 广度广度(breadth)(breadth)指应用能完成哪些业务工作(即用例)指应用能完成哪些业务工作(即用例

21、) 深度深度(depth)(depth)说明将各项用例实现到何种程度说明将各项用例实现到何种程度 业务需求会影响到用例及相关功能需求的业务需求会影响到用例及相关功能需求的实现优先级。实现优先级。 业务需求对于需求的实现方式也有很大的业务需求对于需求的实现方式也有很大的影响。影响。产品视图和项目范围产品视图和项目范围 产品视图产品视图( product vision)将所有涉众统一将所有涉众统一到一个方向上。视图描述了产品用来干什到一个方向上。视图描述了产品用来干什么,它最终会是什么样子。么,它最终会是什么样子。 项目范围项目范围(project scope)确定当前的项目确定当前的项目要解决产

22、品长远规划中的哪一部分,范围要解决产品长远规划中的哪一部分,范围同时定义了项目的限制。同时定义了项目的限制。产品视图和项目范围产品视图和项目范围 视图关系到整个产品。当产品的战略定位或信息视图关系到整个产品。当产品的战略定位或信息系统的业务目标随时间发生改变时,视图也会随系统的业务目标随时间发生改变时,视图也会随之变化,但这种变化相对缓慢。范围则只与一个之变化,但这种变化相对缓慢。范围则只与一个特定的项目或实现产品功能下一增量的某次迭代特定的项目或实现产品功能下一增量的某次迭代有关。有关。图图2 2 产品视图包括了每一个计划产品的版本的范围产品视图包括了每一个计划产品的版本的范围视图与范围文档

23、视图与范围文档 视图与范围文档用于将业务需求收集整理视图与范围文档用于将业务需求收集整理到一个文档中,为后续的开发工作打好基到一个文档中,为后续的开发工作打好基础。础。 视图与范围文档的所有者是项目的执行主视图与范围文档的所有者是项目的执行主管、投资负责人或其他类似的角色。需求管、投资负责人或其他类似的角色。需求分析员与他们合作编写视图和范围文档。分析员与他们合作编写视图和范围文档。视图与范围文档视图与范围文档视图与范围文档的模板视图与范围文档的模板 模板为组织中项目团队要模板为组织中项目团队要编写的文档提供了标准结构,编写的文档提供了标准结构,可以对该模板进行修改以适可以对该模板进行修改以适

24、应项目的特定要求。应项目的特定要求。五五. . 需求开发过程需求开发过程 需求获取需求获取 需求分析需求分析 撰写需求规格说明撰写需求规格说明 需求验证需求验证需求开发过程需求开发过程 需求开发是一个迭代的过程,迭代需求开发是一个迭代的过程,迭代(iteration)(iteration)是需求开发成功的关键是需求开发成功的关键。需求开发过程需求开发过程该过程的相关活动:该过程的相关活动: 确定产品将要面对的各类用户;确定产品将要面对的各类用户; 从各类用户的代表处收集需求;从各类用户的代表处收集需求; 了解用户的任务和目标,以及这些任务要实了解用户的任务和目标,以及这些任务要实现的业务目标;

25、现的业务目标; 分析从用户处得到的信息,将用户的任务目分析从用户处得到的信息,将用户的任务目标与功能需求、非功能需求、业务需求、业标与功能需求、非功能需求、业务需求、业务规则、解决方案及其他无关信息区分开来;务规则、解决方案及其他无关信息区分开来;需求开发过程需求开发过程 将顶层的需求分配到系统构架内定义好的将顶层的需求分配到系统构架内定义好的软件组件中;软件组件中; 了解各质量需求的相对重要性;了解各质量需求的相对重要性; 协商需求的实现优先级;协商需求的实现优先级; 将收集的用户需求表述为书面的需求规格将收集的用户需求表述为书面的需求规格说明和模型;说明和模型; 审阅需求文档。以确保在认识

26、上与用户声审阅需求文档。以确保在认识上与用户声明的需求一致。应在开发小组接受需求之明的需求一致。应在开发小组接受需求之前解决所有分歧。前解决所有分歧。需求开发过程需求开发过程 需求获取需求获取 需求获取需求获取(Elicitation)是需求工程的核心任是需求工程的核心任务,即确定软件系统涉众的需要及限制条务,即确定软件系统涉众的需要及限制条件的过程。件的过程。 需求获取着重于发现用户需求。用户需求需求获取着重于发现用户需求。用户需求包括用户要求系统完成什么任务和用户对包括用户要求系统完成什么任务和用户对性能、易用性和其他质量属性的期望。性能、易用性和其他质量属性的期望。需求开发过程需求开发过

27、程 需求获取需求获取需求获取需求获取(acquisition)(acquisition)发生在需求工程过程发生在需求工程过程早期阶段早期阶段, ,有时也称为需求收集有时也称为需求收集(gathering)(gathering)、需求捕获需求捕获(capture),(capture),主要关注以下几个方面:主要关注以下几个方面: 应当收集什么信息应当收集什么信息了解问题域的特性,渐进地刻画需求的方向了解问题域的特性,渐进地刻画需求的方向 有哪些信息来源有哪些信息来源信息来源是多方面的,包括所有项目风险承担者信息来源是多方面的,包括所有项目风险承担者(Stakeholders)(Stakehold

28、ers),相似系统的类同分析等,相似系统的类同分析等 可能通过什么机制或技术收集可能通过什么机制或技术收集需求开发过程需求开发过程 需求获取需求获取确定需求开发过程确定需求开发过程编写项目视图和范围文档编写项目视图和范围文档将用户群分类并归纳各自特点将用户群分类并归纳各自特点选择每类用户的产品代表选择每类用户的产品代表建立起典型用户的核心队伍建立起典型用户的核心队伍让用户代表确定用户使用实例让用户代表确定用户使用实例召开应用程序开发联系会议召开应用程序开发联系会议(JAD)(JAD)分析用户工作流程分析用户工作流程确定质量属性和其它非功能需求确定质量属性和其它非功能需求通过检查当前系统的问题报

29、告来进一步完善需求通过检查当前系统的问题报告来进一步完善需求跨项目重用需求跨项目重用需求需求开发过程需求开发过程 需求获取需求获取 确定需求开发过程确定需求开发过程确定如何组织需求的收集、分析、确定如何组织需求的收集、分析、细化、核实的步骤并编写成文档;细化、核实的步骤并编写成文档;这里也包括该活动的安排和进度这里也包括该活动的安排和进度计划。计划。需求开发过程需求开发过程 需求获取需求获取 编写项目视图和范围文档编写项目视图和范围文档项目视图和范围文档应该包括高层的项目视图和范围文档应该包括高层的产品业务目标,所有的使用实例和功产品业务目标,所有的使用实例和功能需求都必须遵从能达到的业务需求

30、。能需求都必须遵从能达到的业务需求。项目视图说明使所有项目参与者对项项目视图说明使所有项目参与者对项目的目标能达成共识。而范围则是作目的目标能达成共识。而范围则是作为评估需求或潜在特性的参考。为评估需求或潜在特性的参考。需求开发过程需求开发过程 需求获取需求获取 将用户群分类并归纳各自特点将用户群分类并归纳各自特点为避免出现疏忽某一用户群需求的情为避免出现疏忽某一用户群需求的情况,要将可能使用产品的客户分成不况,要将可能使用产品的客户分成不同组。他们可能在使用频率、使用特同组。他们可能在使用频率、使用特性、优先等级或熟练程度等方面都有性、优先等级或熟练程度等方面都有所差异。详细描述他们的个性特

31、点及所差异。详细描述他们的个性特点及任务状况将有助于产品设计。任务状况将有助于产品设计。需求开发过程需求开发过程 需求获取需求获取 选择每类用户的产品代表选择每类用户的产品代表为每类用户至少选择一位能真正代表他们为每类用户至少选择一位能真正代表他们需求的人作为那一类用户的代表并能作出需求的人作为那一类用户的代表并能作出决策。这对于内部信息系统的开发是最易决策。这对于内部信息系统的开发是最易实现的,因为用户就是身边的职员。而对实现的,因为用户就是身边的职员。而对于商业系统开发,就得在主要客户或测试于商业系统开发,就得在主要客户或测试者中建立起良好的合作关系,并确定合适者中建立起良好的合作关系,并

32、确定合适的产品代表。他们必须一直参与项目的开的产品代表。他们必须一直参与项目的开发而且有权作出决策。发而且有权作出决策。需求开发过程需求开发过程 需求获取需求获取 建立起典型用户的核心队伍建立起典型用户的核心队伍把同类产品或其先前版本用户代表召把同类产品或其先前版本用户代表召集起来,从他们那里收集目前产品需集起来,从他们那里收集目前产品需求。这一团队对商业开发很有实际意求。这一团队对商业开发很有实际意义,因为你拥有庞大且多样的客户基义,因为你拥有庞大且多样的客户基础。与产品代表的区别在于,核心队础。与产品代表的区别在于,核心队伍成员通常不做决策。伍成员通常不做决策。需求开发过程需求开发过程 需

33、求获取需求获取 让用户代表确定用户使用实例让用户代表确定用户使用实例从用户代表处收集他们使用软件从用户代表处收集他们使用软件完成所需任务的描述完成所需任务的描述 使用实例,使用实例,讨论用户与系统间的交互方式和讨论用户与系统间的交互方式和对话要求。在编写使用实例的文对话要求。在编写使用实例的文档时可使用标准模板,在使用实档时可使用标准模板,在使用实例基础上导出功能需求。例基础上导出功能需求。需求开发过程需求开发过程 需求获取需求获取 召开应用程序开发联系会议召开应用程序开发联系会议(JAD)(JAD)JADJAD会议是范围广的、简便灵活的专会议是范围广的、简便灵活的专题讨论会题讨论会(work

34、shop)(workshop),也是分析人员,也是分析人员与客户代表之间一种很好的合作办法,与客户代表之间一种很好的合作办法,并能由此拟出需求文档的底稿。该会并能由此拟出需求文档的底稿。该会议通过紧密而集中的讨论将客户与开议通过紧密而集中的讨论将客户与开发人员间的合作关系付诸实践。发人员间的合作关系付诸实践。需求开发过程需求开发过程 需求获取需求获取 分析用户工作流程分析用户工作流程观察用户执行业务任务的过程。画一观察用户执行业务任务的过程。画一张简单的示意图,如数据流图,来描张简单的示意图,如数据流图,来描绘出用户什么时候获得什么数据,并绘出用户什么时候获得什么数据,并怎样使用这些数据。编制

35、业务过程流怎样使用这些数据。编制业务过程流程文档将有助于明确产品的使用实例程文档将有助于明确产品的使用实例和功能需求。你甚至可能发现客户并和功能需求。你甚至可能发现客户并不真地需要一个全新的软件系统就能不真地需要一个全新的软件系统就能达到他们的业务目标。达到他们的业务目标。需求开发过程需求开发过程 需求获取需求获取 确定质量属性和其它非功能需求确定质量属性和其它非功能需求在功能需求之外再考虑非功能的质量在功能需求之外再考虑非功能的质量特点,这才会使你的产品最终满足客特点,这才会使你的产品最终满足客户的期望。这些质量特点包括:性能、户的期望。这些质量特点包括:性能、有效性、可靠性、可用性等。而规

36、范有效性、可靠性、可用性等。而规范这些质量属性很大程度上决定于客户这些质量属性很大程度上决定于客户提供的信息。提供的信息。需求开发过程需求开发过程 需求获取需求获取 通过检查当前系统的问题报告来通过检查当前系统的问题报告来进一步完善需求进一步完善需求客户的问题报告及补充需求为新客户的问题报告及补充需求为新产品或新版本提供了大量丰富的产品或新版本提供了大量丰富的改进及增加新特性的想法,负责改进及增加新特性的想法,负责提供用户支持及帮助的人能为收提供用户支持及帮助的人能为收集需求过程提供极有价值的信息。集需求过程提供极有价值的信息。需求开发过程需求开发过程 需求获取需求获取 跨项目重用需求跨项目重

37、用需求如果客户要求的功能与已有的产如果客户要求的功能与已有的产品很相似,则可以查看需求是否品很相似,则可以查看需求是否有足够的灵活性以允许重用一些有足够的灵活性以允许重用一些已有的软件组件。已有的软件组件。需求开发过程需求开发过程 需求分析需求分析 需求分析需求分析(Analysis)(Analysis)是对需求进行分类并是对需求进行分类并将它们组织为相关的子集,根据其他需求将它们组织为相关的子集,根据其他需求的关系来考察每个需求,检查需求的一致的关系来考察每个需求,检查需求的一致性、疏忽和二义性,以及根据客户性、疏忽和二义性,以及根据客户/ /用户用户的需要对需求进行排序。的需要对需求进行排

38、序。需求开发过程需求开发过程 需求分析需求分析需求分析包括提炼、分析和仔细审需求分析包括提炼、分析和仔细审查已收集到的需求信息,确保所有查已收集到的需求信息,确保所有的风险承担者都明白其含义并找出的风险承担者都明白其含义并找出错误和遗漏。错误和遗漏。分析的目的在于开发出高质量的具分析的目的在于开发出高质量的具体的需求,为项目估算、结构设计体的需求,为项目估算、结构设计和测试提供定量信息。和测试提供定量信息。需求开发过程需求开发过程 需求分析需求分析 绘制系统关联图绘制系统关联图 创建用户接口原型创建用户接口原型 分析需求可行性分析需求可行性 确定需求优先级别确定需求优先级别 为需求建立模型为需

39、求建立模型 创建数据字典创建数据字典 使用质量功能部署使用质量功能部署需求开发过程需求开发过程 需求分析需求分析 绘制系统关联图绘制系统关联图这种关联图是用于定义系统与外这种关联图是用于定义系统与外部系统实体间的界限和接口的简部系统实体间的界限和接口的简单模型。通过关联图可以明确定单模型。通过关联图可以明确定义通过接口的信息流和物质流义通过接口的信息流和物质流需求开发过程需求开发过程 需求分析需求分析需求开发过程需求开发过程 需求分析需求分析 创建用户接口原型创建用户接口原型当开发人员和用户都不能确定需求时,当开发人员和用户都不能确定需求时,开发一个用户接口原型即一个可能的开发一个用户接口原型

40、即一个可能的局部实现,用户通过评价原型将使项局部实现,用户通过评价原型将使项目参与者能更好地理解所要解决的问目参与者能更好地理解所要解决的问题,借此找出需求中的问题或者通过题,借此找出需求中的问题或者通过增加新需求完善对问题的规范。增加新需求完善对问题的规范。需求开发过程需求开发过程 需求分析需求分析 分析需求可行性分析需求可行性在允许的成本、性能要求下,分在允许的成本、性能要求下,分析每项需求实施的可行性,明确析每项需求实施的可行性,明确与每项需求实现相联系的风险,与每项需求实现相联系的风险,包括是否与其它需求相冲突,对包括是否与其它需求相冲突,对外界因素的依赖和技术障碍等。外界因素的依赖和

41、技术障碍等。需求开发过程需求开发过程 需求分析需求分析 确定需求优先级别确定需求优先级别应用分析方法确定使用实例、产应用分析方法确定使用实例、产品特性和单项需求实现的优先级品特性和单项需求实现的优先级别。以优先级为基础确定产品版别。以优先级为基础确定产品版本将包括哪些需求或特性。本将包括哪些需求或特性。需求开发过程需求开发过程 需求分析需求分析 为需求建立模型为需求建立模型需求的图形分析模型是软件需求规格需求的图形分析模型是软件需求规格说明极好的补充说明。它们能提供不说明极好的补充说明。它们能提供不同的信息与关系有助于找到不正确的、同的信息与关系有助于找到不正确的、不一致的、遗漏的和冗余的需求

42、。这不一致的、遗漏的和冗余的需求。这样的模型包括数据流图、实体关系图、样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交状态变换图、对话框图、对象类及交互作用图。互作用图。需求开发过程需求开发过程 需求分析需求分析 创建数据字典创建数据字典数据字典是对系统用到的所有数据项数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用和结构的定义,以确保开发人员使用统一的数据定义。在需求阶段,数据统一的数据定义。在需求阶段,数据字典至少应定义客户数据项以确保客字典至少应定义客户数据项以确保客户与开发小组使用一致的定义和术语。户与开发小组使用一致的定义和术语。分析和设计工具通常包

43、括数据字典组分析和设计工具通常包括数据字典组件。件。需求开发过程需求开发过程 需求分析需求分析 使用质量功能部署使用质量功能部署质量功能部署质量功能部署(QFD)(QFD)是一种高级系统技术,是一种高级系统技术,它将产品特性、属性与对客户的重要性联它将产品特性、属性与对客户的重要性联系起来。该技术提供了一种分析方法以明系起来。该技术提供了一种分析方法以明确哪些是客户最关注的特性。确哪些是客户最关注的特性。QFDQFD将需求将需求分为三类:分为三类:期望需求期望需求,即客户或许并未提,即客户或许并未提及,但若缺少会让他们感到不满意;及,但若缺少会让他们感到不满意;普通普通需求需求;兴奋需求兴奋需

44、求,即实现了会给客户带去,即实现了会给客户带去惊喜,但若未实现也不会受到责备。惊喜,但若未实现也不会受到责备。需求开发过程需求开发过程 规格说明规格说明 需求规格说明书需求规格说明书(SRS)中包含详细的软件中包含详细的软件的功能需求和非功能需求。的功能需求和非功能需求。 规格说明是系统和需求工程师生产的最终规格说明是系统和需求工程师生产的最终工作产品,它将作为硬件工程、软件工程、工作产品,它将作为硬件工程、软件工程、数据库工程以及人力工程的基础。数据库工程以及人力工程的基础。需求开发过程需求开发过程 规格说明规格说明 采用采用SRSSRS模板模板 指明需求的来源指明需求的来源 为项目需求注上

45、标号为项目需求注上标号 记录业务规范记录业务规范 创建需求跟踪能力矩阵创建需求跟踪能力矩阵需求开发过程需求开发过程 规格说明规格说明 采用采用SRSSRS模板模板通常每个软件开发组织都要为编写软通常每个软件开发组织都要为编写软件需求文档定义一种标准模板,为记件需求文档定义一种标准模板,为记录需求及相关信息提供统一的结构。录需求及相关信息提供统一的结构。模板类型很多,这就需要选择适合其模板类型很多,这就需要选择适合其软件项目特性的模板,达到此目的有软件项目特性的模板,达到此目的有时还需要作些改动以适合项目的特点。时还需要作些改动以适合项目的特点。一个通用模板是一个通用模板是IEEEIEEE标准标

46、准830-1998 830-1998 SRSSRS模板。模板。需求开发过程需求开发过程 规格说明规格说明 指明需求的来源指明需求的来源为了让所有项目风险承担者明白为了让所有项目风险承担者明白SRSSRS中为何提供这些功能需求,需要追溯中为何提供这些功能需求,需要追溯每项需求的来源。这可能是一种使用每项需求的来源。这可能是一种使用实例或其它客户要求,也可能是某项实例或其它客户要求,也可能是某项更高层系统需求更高层系统需求、业务规范、政府法、业务规范、政府法规、国际规范或标准等。规、国际规范或标准等。需求开发过程需求开发过程 规格说明规格说明 为项目需求注上标号为项目需求注上标号制定一种规则为制定

47、一种规则为SRSSRS中每项需求提供中每项需求提供一个独立的可识别的标号。这种规则一个独立的可识别的标号。这种规则应当很健全,允许增加、删除和修改。应当很健全,允许增加、删除和修改。被赋予标号的需求会被容易地跟踪,被赋予标号的需求会被容易地跟踪,记录需求变更并为需求状态和变更活记录需求变更并为需求状态和变更活动建立度量。动建立度量。需求开发过程需求开发过程 规格说明规格说明 记录业务规范记录业务规范业务规范是指产品的操作或使用业务规范是指产品的操作或使用原则和流程等。这部分内容将是原则和流程等。这部分内容将是SRSSRS中的独立部分或章节,有时会中的独立部分或章节,有时会形成一个独立文档。部分

48、业务规形成一个独立文档。部分业务规范将引出相应的功能需求。范将引出相应的功能需求。需求开发过程需求开发过程 规格说明规格说明 创建需求跟踪能力矩阵创建需求跟踪能力矩阵建立一个矩阵建立一个矩阵(matrix)(matrix)把每项需求与把每项需求与实现、测试规范和代码部分联系起来,实现、测试规范和代码部分联系起来,同时也和更高层需求以及任何与其相同时也和更高层需求以及任何与其相关的其它需求联系起来以便需求的跟关的其它需求联系起来以便需求的跟踪和管理。职业的做法是在开发过程踪和管理。职业的做法是在开发过程建立这个矩阵,而不是最后去补建。建立这个矩阵,而不是最后去补建。需求开发过程需求开发过程 需求

49、验证需求验证 需求验证需求验证(Validation)将检查规格说明以保将检查规格说明以保证所有系统需求已被无歧义地陈述,不一证所有系统需求已被无歧义地陈述,不一致性、疏忽和错误已被检查出并纠正,并致性、疏忽和错误已被检查出并纠正,并且工作产品符合为过程、项目和产品建立且工作产品符合为过程、项目和产品建立的标准。的标准。需求开发过程需求开发过程 需求验证需求验证 审查需求文档审查需求文档 以需求为依据编写测试用例以需求为依据编写测试用例 编写用户手册编写用户手册 确定合格的标准确定合格的标准需求开发过程需求开发过程 需求验证需求验证 审查需求文档审查需求文档对需求文档的进行正式审查是保证软对需

50、求文档的进行正式审查是保证软件质量的很有效也是很常用的方法。件质量的很有效也是很常用的方法。组织一个由不同代表(如分析人员,组织一个由不同代表(如分析人员,客户代表,设计人员,测试人员等)客户代表,设计人员,测试人员等)组成的小组,对组成的小组,对SRSSRS及相关模型进行及相关模型进行仔细的审查。另外,需求开发其间非仔细的审查。另外,需求开发其间非正式评审也是发现错误、增强需求质正式评审也是发现错误、增强需求质量的常用和有效的方法。量的常用和有效的方法。需求开发过程需求开发过程 需求验证需求验证 以需求为依据编写测试用例以需求为依据编写测试用例根据用户需求所要求的产品特性根据用户需求所要求的

51、产品特性写出黑盒功能测试用例,以此检写出黑盒功能测试用例,以此检验是否达到了客户期望的要求,验是否达到了客户期望的要求,是否有被疏忽的需求,需求模型、是否有被疏忽的需求,需求模型、对话框和原型等是否正确。对话框和原型等是否正确。需求开发过程需求开发过程 需求验证需求验证 编写用户手册编写用户手册在需求开发早期可起草一份用户手册,在需求开发早期可起草一份用户手册,用它作为需求规格的参考并辅助需求用它作为需求规格的参考并辅助需求分析。优秀的用户手册要用浅显易懂分析。优秀的用户手册要用浅显易懂的语言描述出所有对用户可见的的语言描述出所有对用户可见的功能功能。而辅助需求如质量属性、性能需求及而辅助需求

52、如质量属性、性能需求及对用户不可见的功能则在对用户不可见的功能则在SRSSRS中予以中予以说明。说明。需求开发过程需求开发过程 需求验证需求验证 确定合格的标准确定合格的标准让用户描述什么样的产品才算满让用户描述什么样的产品才算满足他们的使用要求,将合格的测足他们的使用要求,将合格的测试建立在使用情景描述试建立在使用情景描述( (scenario)scenario)或使用实例或使用实例( (use case)use case)的基础之的基础之上。上。六六. 需求管理过程需求管理过程 需求管理是一组用于帮助项目组在项目进需求管理是一组用于帮助项目组在项目进展中的任何时候去标识、控制和跟踪需求展中

53、的任何时候去标识、控制和跟踪需求的活动。的活动。 需求管理过程包括变更控制需求管理过程包括变更控制(Change (Change Control)Control)、版本控制、版本控制(Version Control)(Version Control)、需求跟踪需求跟踪(Requirements Tracing)(Requirements Tracing)与需求与需求状态跟踪状态跟踪(Requirements Status (Requirements Status Tracking)Tracking)。需求管理过程需求管理过程 主要的需求管理活动主要的需求管理活动需求管理过程需求管理过程该过程包

54、括以下活动:该过程包括以下活动: 定义需求基线(某一时刻,对特定版本中定义需求基线(某一时刻,对特定版本中已达成一致的需求内容的描述);已达成一致的需求内容的描述); 审查需求变更请求,评估其可能产生的影审查需求变更请求,评估其可能产生的影响以决定是否批准;响以决定是否批准; 以可控的方式将准的需求变更融入项目中;以可控的方式将准的需求变更融入项目中;需求管理过程(续)需求管理过程(续) 保持项目计划与需求的同步;保持项目计划与需求的同步; 估计需求变更的影响,在此基础上协商新估计需求变更的影响,在此基础上协商新的需求约定;的需求约定; 跟踪每项需求,找到与其对应的计划、源跟踪每项需求,找到与

55、其对应的计划、源代码和测试用例(代码和测试用例(test case);); 在项目开发过程中,始终跟踪需求的状态在项目开发过程中,始终跟踪需求的状态和变更。和变更。需求开发与需求管理需求开发与需求管理需求开发与需求管理的分界:需求开发与需求管理的分界:六六.需求管理过程需求管理过程 确定需求变更控制过程确定需求变更控制过程 建立变更控制委员会建立变更控制委员会 进行需求变更影响分析进行需求变更影响分析 跟踪所有受需求变更影响的工作产品跟踪所有受需求变更影响的工作产品 建立需求基准版本和需求控制版本文档建立需求基准版本和需求控制版本文档 维护需求变更的历史记录维护需求变更的历史记录 跟踪每项需求

56、的状态跟踪每项需求的状态 衡量需求稳定性衡量需求稳定性 使用需求管理工具使用需求管理工具六六.需求管理过程需求管理过程确定需求变更控制过程确定需求变更控制过程确定一个选择、分析和决策需求确定一个选择、分析和决策需求变更的过程,所有需求变更都要变更的过程,所有需求变更都要遵循此过程;商业化问题跟踪工遵循此过程;商业化问题跟踪工具都能支持变更控制过程。具都能支持变更控制过程。六六.需求管理过程需求管理过程建立变更控制委员会建立变更控制委员会组织一个由项目风险承担者组成的组织一个由项目风险承担者组成的小组作为变更控制委员会,由他们小组作为变更控制委员会,由他们来确定进行哪些需求变更,此变更来确定进行

57、哪些需求变更,此变更是否在项目范围内,估计它们的价是否在项目范围内,估计它们的价值并对此评估设置实现优先级,制值并对此评估设置实现优先级,制定目标版本。定目标版本。六六.需求管理过程需求管理过程进行需求变更影响分析进行需求变更影响分析应评估每项选择的需求变更,以确定应评估每项选择的需求变更,以确定它对项目计划安排和其它需求的影响。它对项目计划安排和其它需求的影响。明确与变更相关的任务并评估完成这明确与变更相关的任务并评估完成这些任务所需的工作量。通过这些分析些任务所需的工作量。通过这些分析将有助于变更委员会作出更好的决策。将有助于变更委员会作出更好的决策。六六.需求管理过程需求管理过程 跟踪所

58、有受需求变更影响的工作产品跟踪所有受需求变更影响的工作产品当进行某项需求变更时,参照需求跟踪能当进行某项需求变更时,参照需求跟踪能力矩阵找到相关的其它需求、设计模板、力矩阵找到相关的其它需求、设计模板、源代码和测试用例,这些相关部分可能也源代码和测试用例,这些相关部分可能也需要修改,从而减少因疏忽而不得不变更需要修改,从而减少因疏忽而不得不变更产品的机会。在需求发生变化的情况下,产品的机会。在需求发生变化的情况下,这种变更是必须进行的。这种变更是必须进行的。六六.需求管理过程需求管理过程 建立需求基准版本和需求控制版本文档建立需求基准版本和需求控制版本文档确定一个基准需求,之后的需求变更将以确

59、定一个基准需求,之后的需求变更将以此为基准遵循变更控制过程。每个版本的此为基准遵循变更控制过程。每个版本的需求规格说明都必须是独立说明以避免新需求规格说明都必须是独立说明以避免新旧版本混淆。成熟的做法是使用合适的配旧版本混淆。成熟的做法是使用合适的配置管理工具在版本控制下进行。置管理工具在版本控制下进行。六六.需求管理过程需求管理过程维护需求变更的历史记录维护需求变更的历史记录记录变更需求文档版本的日期、变更记录变更需求文档版本的日期、变更原因、版本号、变更责任人。版本控原因、版本号、变更责任人。版本控制工具能够自动完成这些任务。制工具能够自动完成这些任务。六六.需求管理过程需求管理过程跟踪每

60、项需求的状态跟踪每项需求的状态建立一个数据库,其中每一条记录保建立一个数据库,其中每一条记录保存一项功能需求,需求属性,需求状存一项功能需求,需求属性,需求状态态( (如已推荐的,以通过的或称为已如已推荐的,以通过的或称为已通过评审的,已实施的,已验证的,通过评审的,已实施的,已验证的,未来实现的等未来实现的等) ),这样可以通过工具,这样可以通过工具检索每类需求的数量。检索每类需求的数量。六六.需求管理过程需求管理过程 衡量需求稳定性衡量需求稳定性记录基准需求的数量和每周或每月的变更记录基准需求的数量和每周或每月的变更( (添添加、修改、删除加、修改、删除) )量。过多的需求变更是一个量。过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论