您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 软件项目管理_第8章软件项目需求与变更管理1
第8章软件项目需求与变更管理第8章软件项目需求与变更管理我们说,软件项目生命周期的划分有利于软件项目的管理,尽管许多软件项目周期由于包含类似的工作任务而具有类似的阶段名称,但很少含有完全相同的情况。一般软件项目周期划分为以下几个阶段:*项目定义与可行性研究*需求分析*系统设计*软件实施*系统测试回顾项目可行性研究机会研究-产生项目可行性研究-确定项目技术先进性和适用性经济盈利性和合理性运行环境的可能性和可行性分析机遇和条件回顾项目可行性研究在项目可行性研究阶段还要确定项目需求。客户:明确投资方向、项目机会开发方:明确项目需求,可以制定合理、可行、正确的技术方案,满足客户需求。因此,需求开发和管理是软件项目中的一项非常重要的工作,是保证项目顺利完成、移交的重要手段。某软件开发项目已经进行了两年多,还有不到一年就应该提交项目可交付成果了.但是,近来随着新技术的不断出现,用户不断提出新的需求,使得项目团队不得不根据用户的新需求继续去开发新的功能。如果这样持续下去,项目不但无法按时完工,而且费用也会超支很多.该项目何时能够完成目前仍处于不明确的状态.由上述两个例子可以看出,项目需求管理对于项目的成功非常重要.只有系统的学习和掌握项目需求管理知识体系,才能为项目的顺利启动打下坚实的基础.第8章软件项目需求与变更管理★软件项目的需求★软件项目的需求开发★软件项目的需求管理★软件项目任务分解软件项目需求软件项目的需求来源于用户调查,即客户的需要。需求是考虑用户自身的特性与要求,并参照行业规范进行业务分析的结果。客户“需要”分析、确认形成文档该文档详细说明了产品“必须或应当”做什么或对于模糊的部分不做什么。软件项目需求软件需求的特点:◆模糊性◆不确定性◆变化性◆主观性软件需求的这些特点,使得软件需求的开发是软件开发的难点。第8章软件项目需求与变更管理★软件项目的需求★软件项目的需求开发★软件项目的需求管理★软件项目任务分解软件项目需求开发需求开发是对软件项目需求的获取、分析、规格说明及验证等内容。需求分析是指软件分析人员通过研究用户在软件问题上的需求意愿,分析出软件系统的功能、性能、数据等诸方面应该达到的目标,从而获得有关软件的需求规格定义的过程。软件项目需求开发需求分析需要实现的是将用户对软件的一系列要求、想法转变为软件开发人员所需要的有关软件的技术规格说明。包括用户需求:面向用户系统需求:面向开发者软件项目需求开发1.用户需求:是关于软件一系列想法的集中体现,涉及软件的:★功能★操作方面★界面风格★报表格式★用户机构的业务范围★工作流程★用户对软件应用的展望软件外界特征的规格表述软件项目需求开发用户需求具有以下特点:用户需求直接来源于用户。用户的需求需要以文档的形式提供给用户审查,因此语言表达要流畅、简洁,易于理解。可以把用户需求理解为用户对软件的合理请求。主要为用户方的管理层撰写。软件项目需求开发2.系统需求系统需求比用户需求更具有技术特性。主要是:对系统的功能、性能、数据等方面进行规格定义;提供给开发者或用户方技术人员阅读;作为软件开发人员设计系统的起点与基本依据。软件项目需求开发系统需求往往是综合的、多方面的。功能需求非功能需求数据需求描述系统应该提供的服务系统性能需求输入数据系统输入和输出接口系统可靠性输出数据异常处理方法系统可用性加工中的数据描述系统在特定条件下的行为系统安全性保存在存储设备上的数据功能、非功能、数据需求特征软件项目需求开发需求分析包括:用户需求:面向用户系统需求:面向开发者通过对用户和系统需求的分析,明确项目所要解决的问题,并给出相应的解决方案,实现需求开发过程。软件项目需求开发需求开发结果一般是通过需求规格说明书的形式来呈现。编写需求规格说明书的目的:★使用户和开发者双方对该软件的初始规定有一个共同的理解;★给软件设计提供蓝图,精确描述了软件产品做什么以及产品约束条件;★给系统验收提供验收标准。写作范例见书P124软件项目需求开发用户需求分析-确定项目所要解决的问题系统需求分析-制定合理、可行的技术方案编写需求规格说明书需求获取需求分析规格说明与验证第8章软件项目需求与变更管理★软件项目的需求★软件项目的需求开发★软件项目的需求管理★软件项目任务分解22为什么要需求管理系统开发团队之所以需求管理,是因为他们想让项目获得成功。满足项目需求即为成功打下了基础。若无法管理需求,达到目标的几率就会降低。为什么要需求管理?避免失败就是一个很充分的理由。提高项目的成功率和需求管理所带来的其他好处同样也是理由。软件项目需求管理需求管理是保证软件需求以一种技术形式描述一个产品应该具有的功能、性能和性质等。需求管理的过程从需求获取开始贯穿于整个项目生命周期,力图实现最终产品同需求的最佳结合。需求管理主要包括以下内容:软件项目需求管理1.定义需求2.需求确认3.建立需求状态4.需求评审5.需求承诺6.需求跟踪7.需求变更控制定义需求用户需求调查细化《用户需求说明书》对需求进行建模、分析形成《需求规格说明书》评审《需求规格说明书》正确无误的反映用户的真实意愿软件项目需求管理1.定义需求2.需求确认3.建立需求状态4.需求评审5.需求承诺6.需求跟踪7.需求变更控制需求确认需求确认是需求管理过程中的一种常用手段。确认有两个层面的意思:第一是进行系统需求调查与分析的人员和客户间的一种沟通,来剔除不一致的需求;另外一个层面是对双方达成共识的部分或获得用户认可的部分,双方需要进行承诺。软件项目需求管理1.定义需求2.需求确认3.建立需求状态4.需求评审5.需求承诺6.需求跟踪7.需求变更控制状态是一种事务或实体在某一时刻或点所处的情况。需求状态是指用户需求的一种状态变换过程。软件项目需求存在以下几种状态:建立需求状态状态值定义已建议该需求已被有权提出需求的人建议已批准该需求已被分析,估计了其对项目余下部分的影响,已用一个确定的产品版本号或创建编号分配到相关基线中,软件开发团队已同意实现该需求已实现已实现需求代码的设计、编写和单元测试已验证使用所选择的方法已验证了实现的需求,用例测试和检测,审查该需求跟踪与测试用例相符已删除计划的需求已从基线中删除,但包括一个原因说明和作出决定的人员建立需求状态管理每个需求的状态是需求管理的一个重要方面。了解需求可能的状态类别,周期性的报告各类状态类别在整个需求中所占的百分比将会改进项目的监控工作。软件项目需求管理1.定义需求2.需求确认3.建立需求状态4.需求评审5.需求承诺6.需求跟踪7.需求变更控制需求评审对软件产品的评审有两类方式:一类是正式技术评审;另一类是非正式技术评审。对于任何重要的工作的产品,都应该至少执行一次正式技术评审。需求评审需求评审过程主要包括:制定评审计划需求预审查召开评审会议调整需求文档重审需求文档软件项目需求管理1.定义需求2.需求确认3.建立需求状态4.需求评审5.需求承诺6.需求跟踪7.需求变更控制需求承诺需求承诺是指开发方和客户方的负责人对通过了正式技术评审的需求阶段的工作产品,作出承诺,同时该承诺具有商业合同的同等效果。需求承诺该承诺书将附在“软件需求规格说明书”后,一同存档保存。本“软件需求规格说明书”是建立在双方对需求的共同理解基础之上的,我们同意后续的开发工作根据该“软件需求规格说明书”进行。如果需求发生变化,我们将按照“需求变更流程”执行,即需求的变更将导致双方重新协商成本、资源和进度等。甲方签字乙方签字软件项目需求管理1.定义需求2.需求确认3.建立需求状态4.需求评审5.需求承诺6.需求跟踪7.需求变更控制需求跟踪需求跟踪的目的:◆建立和维护从用户需求开始到测试之间的一致性与完整性;◆确保所有实现都是以用户需求为基础;◆确保需求实现全部覆盖;◆确保所有输出与用户需求符合。需求跟踪需求跟踪有两种方式:◆正向跟踪:以用户需求为切入点,检查《需求规格说明书》中的每个需求是否都能在后续工作产品中找到对应点。◆逆向跟踪:检查设计文档、代码、测试用例等工作产品是否能在《需求规格说明书》中找到出处。需求跟踪进行需求跟踪可以及时发现需求与后续工作产品之间的不一致,有助于开发人员及时纠正偏差,避免干冤枉活。软件项目需求管理1.定义需求2.需求确认3.建立需求状态4.需求评审5.需求承诺6.需求跟踪7.需求变更控制需求变更控制在软件项目的开发过程中,需求变更贯穿了软件项目的整个生命周期,从软件项目的立项到研发和维护。需求变更可能来自开发方、客户或产品供应商等,也可能来源于项目组内部。需求变更会给项目的正常进展带来不尽的麻烦:▲影响项目进度计划▲项目人力资源的调整、工作任务重新分配▲修改前期工作产品▲增加项目成本需求变更控制因此,需要控制需求的变更,使其在受控的状态下发生变化,而不是随意变化。需求管理就是要按照标准的流程来控制需求的变化。需求变更处理流程如下图:客户开发方。。。变更申请选择变更方式项目经理自行决定变更控制委员会评估忽略根据评估结果拒绝接受本次修改下个版本变更修改合同相关信息修改相关需求修改应项目计划不在合同范围内46表4-3需求变更提交单软件基线产品修改提交单申请人韩万江申请日期2010.10.11项目名称项目管理系统阶段名称系统设计文件名称RCR-PM-01.doc,RCR-PM-02.doc,变更简述如下修改内容1)修改测试流程控制:将2个角色,3个渠道流,改为3个角色,4个渠道流,详见RCR-PM-01.doc2)增加开发人员技能信息库管理,详见RCR-PM-02.doc验证意见同意RCR-PM-01.doc变更。RCR-PM-02.doc的变更可以推迟到下一个版本实施验证人杨炎泰验证日期2010.10.11SCCB韩万江,姜岳尊,孙泉填表人韩万江软件项目需求管理1.定义需求2.需求确认3.建立需求状态4.需求评审5.需求承诺6.需求跟踪7.需求变更控制48需求管理的重要性•5点事实–1、软件生命周期中,一个错误发现得越晚,修复错误的费用越高49需求管理的重要性–2、许多错误是潜伏的,并且在错误产生后很长一段时间才被检查出来–3、在需求过程中会产生很多错误o在一份研究报告中指出,被检查出来的错误的56%产生的根源可以追溯到需求阶段。o一项调查发现,在一份美国军方大型管理信息系统的需求现格说明书中存在着500多个错误,当然这仅仅是一个软件项目中的一次调查。–4、在需求阶段,代表性的错误为疏忽、不一致和二义性o美国海军研究实验室从20世纪70年代起就对软件开发技术不断地进行研究。得出的研究数据表明:项目中77%的需求错误特点是不明确:疏忽、不一致和二义性。50需求管理的重要性–5、需求错误是可以被检查出来的51需求管理的重要性•在需求过程中会产生很多错误(事实3和4)。•许多错误并没有在早期被发现(事实2)。•这样的错误是能够在产生的初期被检查出来的(事实5)。•如果没有及时检查出来这些错误,软件费用会直线上升(事实1)案例•在一个正在实施的系统集成项目中出现了下述情况:一个系统的用户向他所认识的一个项目开发人员抱怨系统软件中的一项功能问题,并且表示希望能够进行修改。于是,该开发人员就直接对系统软件进行了修改,解决了该项功能问题。针对这样一种情况,请分析如下问题:【问题1】请说明上述情况中存在着哪些问题?【问题2】请说明上述情况可能会导致什么样的后果?答案示例【问题1】1没有书面申请2没有评审并获得批准3没有变更后验证4没有变更记录5没有版本管理【问题2】其相应后果如下:1找不到变更依据2可能会带来与其他工作不一致,从而对项目目标产生影响3无法确认变更效果4产品变更无法溯源,无法把握整体变化5在变更失败时,版本无法复原某公司刚刚和M签订了一份新的合同,合同的主要内容是处理公司以前为M公司开发的信息系统的升级工作。升级后的系统可以满足M公司新的业务流程和范围。由于是一个现有系统的升级,项目经理张工特意请来了原系统的需求调研人员李工担任该项目的需求调研负责人。在李工的帮助下,很快地完成了需求开发的工作并进入设计
本文标题:软件项目管理_第8章软件项目需求与变更管理1
链接地址:https://www.777doc.com/doc-1992122 .html