您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 软件项目管理―需求管理
软件项目管理王颖2软件项目管理什么是项目?如何获得项目?如何管理项目?怎样提交项目?结项后应做什么?需求前延质量检验过程项目需求的实际验证课程体系3如何管理项目?(howtomanageaproject?)4需求管理基础知识5软件项目管理的关键技术…………需求管理…………项目估算…………进度管理…………成本管理…………配置管理…………风险管理…………质量管理…………资源管理6需求管理的内容什么是需求工程什么是需求开发什么是需求管理需求管理所要完成的任务需求管理的问题如何进行需求管理7一、什么是需求工程在项目或产品开发过程中,一般地来讲,把与需求直接相关的活动统称为需求工程。需求工程的目的是通过与用户广泛地交流确定应用系统的目标。需求活动以“工程化”的方法被提出、分析和组织,它鼓励用户以一种积极的方式参与需求分析活动中,并在整个软件生命周期强调用户参与和领域专家的指导作用,促使目标系统最大地满足用户需求。8软件需求的定义Rational把需求定义为“(正在构建的)系统必须符合的条件或具备的功能”。软件需求:用户解决某一问题或达到某一目标所需的软件功能。系统或系统构件为了满足合同、规约、标准或其他正式实行的文档而必须满足或具备的软件功能。简单的说,软件需求就是确定系统需要做什么;严格意义上,软件需求是系统或软件必须达到的目标与能力。9软件需求与其它软件过程的关系项目计划过程:需求是制定项目计划的基础,开发资源和进度安排的估计都要建立在对最终产品的真正理解之上。跟踪控制过程:监控每项需求的状态,以便项目管理者能发现设计和验证是否达到了预期的要求。变更控制过程:在需求编写成文档以后,所有接下来的变更都应通过确定的变更控制过程来进行,以确保变更的影响是可以接受的、受到变更影响的所有人都接到通知并明白这一点、由合适的人选来做出接受变更的正式决定、资源按需进行调整、保持需求文档是最新版本并是准确的更新文档。10软件需求与其它软件过程的关系系统测试过程:软件需求是系统测试的重要参考。系统测试是一种方法,可以验证计划中所列的功能是否按预期要求实现了。同时,也验证了用户任务是否能正确地执行。文档编制过程:产品的需求是编写文档的重要参考,低质量和拖延的需求会给编写用户文档带来极大的困难。系统构建过程:软件项目最终交付的主要是可执行软件,而不是需求说明文档。但需求文档是所有设计、实现工作的基础,需要根据需求文档来确定模块设计,而模块又要作为编写代码的依据。系统构建过程需要跟踪每项需求与相应的设计和软件代码。11软件需求的抽象层次软件设计描述系统需求用户需求原始问题描述原始问题描述解决方案空间12软件需求的抽象层次原始问题描述:是对要解决的问题的叙述,它是软件需求的基础。用户需求:是用自然语言和图表给出的关于系统需要提供的服务及系统的操作约束。系统需求:用详细术语给出系统要提供的服务及受到的约束,系统需求文档应该是精确的,可以为系统的实现提供依据,因而系统需求文档也称为功能描述,可能成为用户和软件开发组织之间合同的重要内容。软件设计描述:是在系统需求的基础上加入更详细的内容构成的,它作为软件详细设计和实现的基础,是对软件设计活动的概要描述。软件需求的抽象层次用户需求:从用户的角度描述系统的需求,原则:标准的格式使用一致的语言使用特殊文本尽量避免专业术语1314软件需求的抽象层次系统需求的分类:功能需求:描述系统所应提供的功能和服务,包括系统应该提供的服务、对输入如何响应及特定条件下系统行为的描述。非功能需求:是指那些不直接与系统的具体功能相关的一类需求,是功能需求的补充。领域需求:其来源不是系统的用户,而是系统应用的领域,反应了该领域的特点。领域需求可能是功能需求,也可能是非功能需求,其确定需要领域知识。软件需求质量评价我们需要在软件需求规格说明书建立之后,就对软件需求的质量进行评价,一个好的需求集应该包括用户解决问题需要的功能和服务,而且尽量避免涉及软件设计与软件是实现的细节。15软件需求质量评价16软件需求质量度量的9个元素:正确性无歧义完备性一致性根据重要性和稳定性分级可验证性可修改性可跟踪性可理解性需求工程发展历程20世纪80年代中期,软件工程的子领域——需求工程(RE)逐步形成。它是一个包括创建和维护需求文档所必须的所有活动的过程,是将用户非形式化的软件需求转变为形式化的需求规格说明的过程。·对应用问题及其环境进行理解与分析·为问题所涉及的信息和功能建立模型·将用户需求精确化和标准化·编写需求规格说明书进入20世纪90年代后,需求工程成为研究热点。18需求工程发展历程需求工程的发展趋势是对象化、形式化和自动化,并将向纵深发展和综合发展。1920需求工程=需求开发+需求管理需求工程获取需求分析需求定义需求验证需求需求变更控制需求跟踪需求状态跟踪需求文档版本控制需求开发需求管理需求工程研究内容21需求开发与需求管理之间的界限用户/系统市场管理者初始需求变更的需求获取,分析,定义,验证需求控制需求变更需求规格说明项目环境需求开发需求管理22需求开发需求获取确定用例确定需求开发过程了解实际业务和业务需求……需求分析绘制关联图分析可行性建立需求模型、数据字典……规格说明编写软件需求规格说明完整、正确、可行、无歧意、可验证形式:图、表、文字……需求验证联合评审测试用例确定标准……二、什么是需求开发需求获取需求获取是需求开发的第一个步骤,是一切工作的开始。从确定需求开发过程,确定如何组织需求的收集、分析、细化并核实的步骤,到将它编写成文档,主要的活动和展现成果有11项。23需求获取确定需求开发过程编写项目视图和范围文档用户群分类选择产品代表建立核心队伍确定使用实例召开应用程序开发联系会议分析用户工作流程确定质量属性检查问题报告需求重用24需求分析需求分析包括提炼、分析和仔细审查已收集到的需求,以确保所有的项目参与者都明白其含义并找出其中的错误、遗漏或其他不足的地方。绘制关联图创建用户接口原型分析可行性确定需求优先级建立需求模型编写数据字典应用质量功能调配27编写需求文档软件需求文档包括用户需求和详细的系统需求描述,是对软件系统要求的正式陈述。编写需求文档应注意以下几点:语句和段落尽量简短表达时采用主动语态语句要完整,语法、标点等要正确使用的术语要与词汇表中定义保持一致陈述时要采用一致的格式避免模糊的、主观的术语,如性能“优越”避免使用比较性的词汇30需求之用例图编写需求文档(续)3132编写需求文档(续)IEEE标准830-1998编写需求文档(续)需求文档实例:进销存系统需求规格说明书oa办公自动化系统需求规格说明书3334需求验证需求验证分析需求规格说明的正确性和可行性,检验需求能否反映客户的意愿。重要性如果在构造设计开始之前通过验证基于需求的测试计划和原型测试来验证需求的正确性及其质量,就能大大减少项目后期的返工现象。而如果在后续的开发或当系统投入使用时才发现需求文档中的错误,就会导致更大代价的返工,因为需求的变化总是带来系统设计和实现的改变,从而使系统必须重新测试,由需求问题而对系统做变更的成本比修改设计或代码错误的成本要大得多。35需求验证目的:需求规约正确描述了预期的系统行为和特征;软件需求符合业务需求或其他来源的要求;需求是完整和高质量的;所有对需求的看法、观点是一致的;需求为产品设计、构造和测试提供了坚实的基础手段:软件测试软件评审36需求验证步骤确定合格的标准编写用户手册依据需求编写测试用例审查需求文档37需求验证的内容可读性一致性完备性现实性可检验性可跟踪性可调节性有效性38三、什么是需求管理需求管理是一种获取、组织并记录软件需求的系统化方案,同时也是一个使客户与项目团队对不断变更的软件需求达成并保持一致的过程。需求管理在需求开发的基础上进行,贯穿于整个软件项目过程,是软件项目管理的一部分。39需求管理与其他项目过程的联系需求管理制定项目计划系统测试过程项目跟踪和控制过程变更控制过程制造过程用户编制文档过程基础基础产品可追溯到作为参考验证实现的正确性作为基线进行变更跟踪状态作为输入基线确定前缩小范围请求范围缩减40为什么要管理需求?避免失败就是一个很充分的理由。提高项目的成功率和需求管理所带来的其他好处同样也是理由。四、为什么要进行需求管理41需求管理的困难性开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作就是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。42需求获取的偏差客户如此描述需求项目经理如此理解分析员如此设计程序员如此编码商业顾问如此诠释项目文档如此编写安装程序如此简洁客户投资如此巨大技术支持如此肤浅实际需求原来如此43需求管理的困难性需求不总是显而易见的,而且它可来自各个方面。需求并不总是能容易用文字明白无误地表达。存在不同种类的需求,其详细程度各不相同。如果不加以控制,需求的数量将难以管理。需求之间相互关联,而且需求也和软件工程流程中的其他可交付工件有关。需求有唯一的特征或特征值。例如,它们的重要性和容易满足的程度都各不相同。需求涉及众多相关方面,这意味着需求要由功能交叉的各组人员管理。需求会变更。44需求管理的目标需求管理的目的是在客户和软件项目之间就需要满足的需求建立和维护一致的约定:使软件需求受控,并建立供软件工程和管理使用的需求基线。必须控制需求基线的变动,按照变更控制的标准和规范的过程进行需求变更控制和版本控制。使软件计划、产品和活动与软件需求保持一致。必须对需求进行跟踪,管理需求和其它联系链之间的联系和依赖,必须就变更和软件项目各小组达成共识,对软件项目计划做出调整,其中包括人员的安排、任务的安排、用户的沟通、成本的调整、进度的调整等。45需求管理的原则需求一定要分类管理需求必须分优先级需求必须文档化需求一旦变化,就必须对需求变更的影响进行评估需求管理必须与需求工程的其它活动紧密整合46需求管理策略需求一定要与投入有必然的联系需求的变更要经过出资者的认可小的需求变更也要经过正规的需求管理流程精确的需求与范围定义并不会阻止需求的变更47五、如何进行需求管理需求管理的关键技巧需求管理的工具48制定需求管理规划编写用于需求管理活动的计划。需求识别变更管理过程需求跟踪自动化工具49需求管理活动需求管理活动活动的任务变更控制建议需求变更并分析其影响,做出是否变更的决策版本控制确定单个需求和SRS的版本需求跟踪定义对于其它需求及系统元素的联系链需求状态定义并跟踪需求的状态50构建功能交叉的需求团队与诸如测试或应用程序建模等流程不同(这些流程可在单个业务组中进行管理),需求管理涉及了每一个能够为开发流程提供专门技术的个人;其中应包括那些代表客户和业务预期的人;开发经理、产品经理、分析员、系统工程师甚至客户都应该参与进来;需求团队还应包括创建系统解决方案的人-工程师、构架设计师、设计员、程序员、技术文档编写员以及其他提供技术支持的个人;测试员和其他质量保证人员应当作重要的团队成员。51干系人需求知识培训目的:建立对需求管理过程的共识作用:控制客户期望保证需求过程的质量保证需求的质量54范围管理在需求超出资源能力200%时,“砍”掉50%需求的步骤:找出25-50个概要需求,先不要精化排定这些概要需求的价值(Critical,Important,Useful),Critical需求约占三分之一初估各个需求的工作量级别(High,Medium,Low)给出各个需求的风险级别(High,Medium,Low)综合考虑以上三个因素得出优先级,再划出分界线,线上基本上包括所有Critical和少量Important需求55需求的变更管理1、需求
本文标题:软件项目管理―需求管理
链接地址:https://www.777doc.com/doc-3223706 .html