软件研发管理制度_第1页
软件研发管理制度_第2页
软件研发管理制度_第3页
软件研发管理制度_第4页
软件研发管理制度_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、0软件研发管理制度软件研发管理制度文件标识:Lolaage-Software-PM当前版本:0.1.2作 者:宋孝光文件状态: 草稿 正式发布 正在修改完成日期:2012/3/271版本/状态作者参与者修改日期备注0.1.1宋孝光2012/3/26第一版草稿0.1.2宋孝光2012/3/27整理目录2目录1 软件研发制度综述软件研发制度综述 .31.1 精简模型精简模型 .31.2 精简过程域的目的精简过程域的目的 .41.3 精简模型精简模型 文档结构与规范细分文档结构与规范细分 .51.4 精简模型精简模型 角色与职责表角色与职责表 .61.5 公司软件过程的政策公司软件过程的政策 .81

2、.5.1 目标.81.5.2 机构领导的支持.81.5.3 质量管理的政策.81.5.4 质量保证小组的政策.91.5.5 项目团队的政策.92 立项管理立项管理 .93 项目规划项目规划 .94 项目监控项目监控 .104.1 项目计划跟踪项目计划跟踪 .114.1.1 任务跟踪任务跟踪 .114.1.2 费用跟踪费用跟踪 .114.1.3 资源跟踪资源跟踪 .114.1.4 工作成果及其规模跟踪工作成果及其规模跟踪 .124.2 控制偏差控制偏差 .124.3 项目进展汇报项目进展汇报 .135 风险管理风险管理 .146 需求管理需求管理 .186.1 需求确认需求确认 .186.2 需

3、求跟踪需求跟踪 .206.3 需求变更控制需求变更控制 .207 结项管理结项管理 .228 需求开发需求开发 .239 技术预研技术预研 .2410 系统设计系统设计 .25310.1 体系结构设计体系结构设计 .2610.2 用户界面设计用户界面设计 .2610.3 数据库设计数据库设计 .2710.4 模块设计模块设计 .2811 实现与测试实现与测试 .2812 系统测试系统测试 .3013 客户验收客户验收 .3114 技术评审技术评审 .3215 配置管理配置管理 .3316 质量保证质量保证 .3517 培训管理培训管理 .3718 服务与维护服务与维护 .3841 软件研发制度

4、综述软件研发制度综述1.1 精简模型精简模型“精简模型”是基于 CMMI 以及软件工程和项目管理知识而创作的一种“软件过程改进方法和规范” ,它由众多的过程规范和文档模板组成。精简模型把产品生命周期划分为 6 个阶段,分别为:产品概念阶段产品定义阶段产品开发阶段产品测试阶段用户验收阶段产品维护阶段在精简模型中,软件项目的过程有三大类:项目管理过程、项目研发过程和机构支持过程。上述三类过程可以细分为 17 个主要过程域,分布在产品生命周期的各个阶段。项目管理过程包含 6 个过程域,分别为:立项管理结项管理项目规划项目监控风险管理需求管理项目研发过程包含 7 个过程域,分别为:需求开发技术预研系统

5、设计实现与测试系统测试客户验收技术评审机构支撑过程包含 4 个过程域,分别为:配置管理质量保证培训管理服务与维护精简模型如图 1-1 所示。精简模型的主要特征和优点有:5一、直观的过程模型一、直观的过程模型精简模型将项目管理、项目研发、机构支撑所包含的工作划分为相对独立的三类过程,各个过程域之间的关系直观明了。这样,机构领导、项目经理、开发人员、测试人员、质量保证人员等人根据精简模型,很容易知道自己“应该在什么时候、按照什么规范做什么事情”。所以精简模型有助于使机构内的各个职能单位有条不紊地开展工作。二、容易裁剪与扩充二、容易裁剪与扩充精简模型的三类过程贯穿了产品的整个生命周期,17 个最常见

6、的过程域都合理地安排在产品生命周期中的某些阶段。用户可以根据自己产品的特征,适当地裁剪或扩充精简的过程域,很容易制定出最适合于本产品的过程模型。0图 1-1 精简模型产品概念产品定义产品开发产品测试客户验收产品维护立项管理项目规划项目监控 风险管理 需求管理结项管理需求开发配置管理 质量保证 培训管理项目管理过程项目研发过程机构支撑过程服务与维护技术评审技术评审技术预研并行、迭代根据产品特征确定最合适的开发模型,以线性顺序为主,以并行、迭代为辅。系统设计实现与测试系统测试客户验收其它: 人力资源管理 财务管理 行政管理 市场营销 41.2 精简过程域的目的精简过程域的目的精简模型 所有 17

7、个过程域的目的如表 1-1 所示。项目管理过程域项目管理过程域目的目的立项管理采纳符合机构最大利益的立项建议,通过立项管理使该建议成为正式的项目。杜绝不符合机构最大利益的立项建议被采纳,避免浪费机构的资源、资金、时间等。结项管理在项目开发工作结束后,对项目的有形资产和无形资产进行清算、对项目进行综合评估以及总结经验教训等。项目规划为项目的研发和管理工作制定合理的行动纲领(即项目计划) ,以便所有相关人员按照该计划有条不紊地开展工作。项目监控周期性地跟踪项目计划的各种参数如进度、工作量、费用、资源等,不断地了解项目的进展情况,以便当项目实际进展显著偏离计划时能够及时采取纠正措施。风险管理在风险产

8、生危害之前识别它们,从而有计划地消除或削弱风险。需求管理在客户与开发方之间建立对需求的共同理解,维护需求与其它工作成果的一致性,并控制需求的变更。项目研发过程域项目研发过程域目的目的需求开发通过调查与分析,获取用户需求并定义产品需求。技术预研在立项之后到开发工作完成之前的时间内,对项目将采用的关键技术提前学习和研究,尽可能早地发现并解决开发过程中将会遇到的技术障碍。系统设计设计软件系统的体系结构、用户界面、数据库、模块等,从而在需求与代码之间建立桥梁,指导开发人员去实现能满足用户需求的软件产品。实现与测试依据系统设计文档,编写并测试整个系统的代码。在精简模型中,实现与测试是“编程、代码审查、单

9、元测试、集成测试、缺陷管理与改错”的综合表述。系统测试对最终系统进行全面的测试,确保最终系统满足产品需求并且遵循系统设计。客户验收客户依据合同对产品进行审查和测试,确保产品满足客户需求。技术评审尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量。机构支撑过程域机构支撑过程域目的目的配置管理通过执行版本控制、变更控制等规程,以及使用配置管理软件来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。质量保证提供一种有效的人员组织形式和管理方法,通过客观地检查和监控“过程质量”与“产品质量” ,从而实现持续地改进质量。培训管理根据机构(或项目)的需求来

10、制定培训计划,并监督该计划的实施,确保培训取得预期效果。服务与维护是指产品销售之后的客户服务和产品维护,其宗旨是提高客户对产品以及对开发方的满意度。表 1-1 精简过程域的目的Comment j1: 使用现有的规范51.3 精简模型精简模型 文档结构与规范细分文档结构与规范细分精简模型的文档结构如图 1-2 所示,SPP 包含 17 个过程域,规范细分如表 1-2 所示。图 1-2 精简模型 文档结构项目管理过程域项目管理过程域主要规程主要规程文档模板文档模板立项管理立项建议立项评审项目筹备立项建议书立项调查报告书立项可行性分析报告立项评审报告结项管理结项管理结项申请书结项评审报告项目规划制定

11、项目计划审批项目计划项目计划变更控制项目计划项目计划变更控制报告项目监控项目计划跟踪偏差控制项目进展总结项目监控数据表项目偏差控制报告项目进展报告风险管理风险管理风险检查表风险管理报告需求管理需求确认需求跟踪需求变更控制需求跟踪报告需求变更控制报告项目研发过程域项目研发过程域主要规程主要规程文档模板文档模板需求开发需求调查需求分析需求定义用户需求说明书产品需求规格说明书技术预研技术预研技术预研计划技术预研报告过程改进政策过程域规程文档模板6系统设计体系结构设计用户界面设计数据库设计模块设计体系结构设计报告用户界面设计报告数据库设计报告模块设计报告实现与测试实现与测试实现与测试计划编程文档系统测

12、试系统测试系统测试计划测试用例测试报告客户验收客户验收客户验收计划客户验收报告技术评审正式技术评审非正式技术评审技术评审计划技术评审报告技术评审检查表机构支撑过程域机构支撑过程域规程与关键活动规程与关键活动文档模板文档模板质量保证制定质量保证计划过程与产品质量检查问题跟踪与质量改进质量保证计划质量保证检查表质量保证报告质量问题跟踪表配置管理制定配置管理计划配置库管理版本控制变更控制配置管理计划配置库管理报告配置项变更控制报告培训管理机构培训管理项目培训管理培训计划培训评估报告客户服务客户服务计划客户服务报告服务与维护产品维护产品维护计划产品维护报告表 1-2 精简模型 规范细分1.4 精简模型

13、精简模型 角色与职责表角色与职责表精简模型的主要角色及其职责如表 1-3 所示(详见各个过程域对角色与职责的描述) 。公司在应用精简模型时,可以将精简模型的各个角色映射到公司原有的岗位上,也可以依据精简模型角色建立新的岗位。一个人可以被赋予多个角色,一个人可以被赋予多个角色,视具体情况而定。常设角色常设角色职责简述职责简述7软件工程过程组(SEPG)(1)制定适合于本机构的过程规范。(2)在机构范围内推广该规范(如培训、考核) ,评估机构过程能力等。机构过程改进角色质量保证小组(QAG)(1)监督规范的实施,确保所有项目以及相关部门准照规范开展工作。(2)分析并解决机构内存在的共性质量问题,协

14、组 SEPG 完善规范。机构领导(1)是机构内所有项目的主管,对立项管理和结项管理有最终决策权。(2)监督项目经理的工作,审批项目经理的各种申请。项目管理过程角色项目经理(1)向机构领导汇报工作。(2)是项目规划、项目监控、风险管理和需求管理过程域的负责人。(3)监督项目成员的工作,审批项目成员的各种申请。需求分析员调查、分析并定义需求,撰写相应的需求文档,尽最大努力使需求文档能够正确无误地反映用户的真实意愿。系统设计师根据需求文档设计软件系统的体系结构、用户界面、数据库、模块等,并撰写相应的设计文档。程序员(1)根据系统设计文档,编写软件系统的代码。(2)随时测试和检查自己的代码,及时消除代

15、码中的缺陷。项目研发过程角色测试员从事单元测试、集成测试和系统测试,主要工作包括制定测试计划、设计测试用例、执行测试和撰写测试报告。配置管理员(1)为项目制定配置管理计划 。(2)创建并维护配置库,如分配权限、清除垃圾文件、备份配置库等。质量保证员(即 QAG 成员)(1)为项目制定质量保证计划 。(2)周期性的开展“过程与产品质量检查” 。(3)跟踪质量问题,给出质量改进措施。培训管理员制定机构(或项目)的培训计划 ,监督该计划的实施,撰写培训评估报告 。客户服务人员为客户提供与产品相关的服务(如技术咨询) ,快速响应客户的要求,给客户一个满意的解答。机构支撑过程角色产品维护人员(1)纠错性

16、维护:及时解决用户遇到的技术故障和消除产品中的缺陷。(2)完善性维护:在资源允许的情况下,不断改善产品功能与质量。临时角色临时角色职责说明职责说明立项建议小组(1)开展立项调查、产品构思和可行性分析,撰写相应文档。(2)申请立项,并在立项评审会议上答辩。立项评审委员会由机构领导、各级经理、市场人员、技术专家、财务人员等组成,委员会按少数服从多数原则投票决定是否同意立项。结项评审委员会对项目的有形资产和无形资产进行清算,对项目进行综合评估,总结经验教训等。结项委员会的人员组成与立项评审委员会的类似。技术评审委员会对工作成果进行正式技术评审,尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷。

17、该委员会由项目内外的技术专家组成。配置控制委员会对配置管理各项活动拥有决策权(例如审批计划,审批变更请求等) 。表 1-3 精简模型的角色与职责简表81.5 公司软件过程的政策公司软件过程的政策1.5.1 目标目标持续改进机构的软件过程能力,不断地提高产品质量、提高生产率并且降低开发成本。1.5.2 机构领导的支持机构领导的支持机构领导批准用于软件过程改进的必要经费,例如支付咨询费,购买相关软件工具等。机构领导组建 SEPG 和 QAG,专门从事软件过程改进工作。SEPG 的主要职责是建立适合于机构的过程规范,QAG 的主要职责是监督该规范的实施。建议让 SEPG 和 QAG 的大部分人员重叠

18、,这些人既是 SEPG 成员又是质量保证员,扮演两种角色。这样不仅节约人力资源,并且提高了工作效果(由制定规范的人去监督规范的实施最合适不过) 。一般地,SEPG 成员和质量保证员共占机构总人数的 5%左右。机构领导不仅要口头支持,还要亲自参与软件过程改进的实践。例如参加培训和考试,准照过程规范执行立项管理和结项管理等。1.5.3 质量管理的政策质量管理的政策质量管理口号:“在开发过程之中内建质量而非修补质量” 。质量管理有种基本措施:“质量保证” 、 “技术评审”和“测试” 。一、一、质量保证质量保证机构的质量保证员周期性地检查项目成员的“工作过程以及工作成果”是否符合既定的规范,来监控和改

19、进“过程质量以及产品质量” 。机构的质量保证员独立于任何项目,并赋予他一定的权利,对质量不合格的工作成果作出处理。二、技术评审二、技术评审在工作成果刚产生之际,对其进行技术评审(分正式或非正式两种) ,目的是尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而提高产品的质量。如果时间允许的话,应当尽可能多地对产品的重要工作成果进行技术评审。技术评审活动由项目开发团队组织。三、测试三、测试测试是指通过运行测试用例(test case)来找出软件中的缺陷。测试与技术评审的主要区别是前者要运行软件而后者不必运行软件。一般地,产品开发过程中有四个测试阶段:单元测试、集成测试、系统测试和验收测试

20、。其中单元测试和集成测试可以由项目开发团队组织。系统测试阶段必须有项目外的人员参与,以保证系统测试的客观性。验收测试由客户组织。如果有条件的话,建议机构成立专门的测试小组从事单元测试、集成测试和系统测试工作。91.5.4 质量保证小组的政策质量保证小组的政策机构领导任命一位熟悉过程规范并且有丰富的质量管理经验的人担任 QAG 的负责人(或称为质量经理) 。在机构领导的许可下,该负责人组建 QAG(成员可以是全职的也可以是兼职的) 。QAG 在行政上独立于任何项目。这种独立性有助于质量保证员客观地检查和监控“过程以及产品的质量” 。QAG 准照 SEPG 制定的“质量保证规范”开展工作。机构领导

21、赋予 QAG 一定的权利,可以对质量不合格的工作成果做出处理。这种权利使得 QAG 的工作不会被轻视,并有助于加强全员的质量意识。对于 QAG 与项目之间出现的难以调和的争议,由机构领导处理。1.5.5 项目团队的政策项目团队的政策项目中的任何管理人员、开发人员、测试人员等,必须学习与本职工作相关的过程规范,每个人都必须明白自己“应当在什么时候依据什么规范做什么事情应当在什么时候依据什么规范做什么事情” 。项目经理应当树立榜样,并且督促项目成员们按规范做事。允许项目经理根据本项目的特征,在 SEPG 和 QAG 的指导下,适当地裁剪或扩充机构的过程规范,从而快速建立本项目的过程规范。这项工作应

22、当在“项目规划过程域”中完成,并在项目计划中体现出来。如果项目对机构过程规范的裁剪幅度比较大,遭到 QAG 的反对,如果双方不能达成共识,则由机构领导处理该争议。SEPG 对项目过程能力的评估成绩将作为评定项目人员工作业绩的重要因素,具体比重由机构领导决定,建议占 30以上的比重。2 立项管理立项管理参见项目管理制度试行 V2.1 版本3 项目规划项目规划在立项管理过程域的项目筹备阶段,机构领导首先任命一位项目经理,之后机构领导协助项目经理筹备项目经费、人力资源、软件硬件资源等。如果必要的资金和资源已经到位,那么项目经理和核心成员即可组成一个项目规划小组,着手制定项目计划 ,并按计划执行研发和

23、管理工作。项目的计划书可分两类:一是全局的计划书(Overall Plan) ,这里称为项目计划 ;二是一些下属计划书(Subordinate Plan) ,例如配置管理计划 、 质量保证计划 、一些开发计划和测试计划等。10下属计划书是对项目计划的补充,其内容不可与项目计划冲突。通常项目计划由项目经理负责制定,由机构领导审批。而下属计划书一般由项目成员制定,由项目经理审批即可。项目计划过程域有 3 个主要规程:“制定项目计划” 、 “审批项目计划”和“项目计划变更控制” ,流程如图 3-1 所示。 图 3-1 项目规划流程图项目计划模板4 项目监控项目监控项目监控(Project Monit

24、oring and Control, PMC)的目的是通过周期性地跟踪项目计划的各种参数如进度、工作量、费用、资源、工作成果等,不断地了解项目的进展情况,以便当项目实际进展状况显著偏离计划时能够及时采取纠正措施。本规范阐述了项目监控过程域的三个主要规程:项目计划跟踪控制偏差 项目进展汇报 图 4-1 项目监控流程制定项目计划审批项目计划项目计划变更控制按计划执行研发与管理工作项目计划跟踪偏差控制项目进展总结周期性地开展114.1 项目计划跟踪项目计划跟踪周期性的跟踪任务(含进度和工作量) 、费用、资源、工作成果等,及时了解项目的实际进展情况。为持续过程改进提供有价值的数据。4.1.1 任务跟踪

25、任务跟踪项目经理(或其指定的项目成员)周期性地(如每周一次)跟踪每个重要的任务,将采集的数据保存在项目监控数据表之中。任务跟踪表的参考格式如表 4-1 所示。任务名称任务名称实际起止时间实际起止时间跟踪日期、当前进度跟踪日期、当前进度实际工作量实际工作量实际工作成果实际工作成果表 4-1 任务跟踪表4.1.2 费用跟踪费用跟踪项目经理(或其指定的项目成员)周期性地跟踪项目费用,将采集的数据保存在项目监控数据表之中。费用跟踪表的参考格式如表 4-2 所示。费用类别费用类别主要开支项、用途主要开支项、用途金额金额时间时间表 4-2 费用跟踪表4.1.3 资源跟踪资源跟踪项目经理(或其指定的项目成员

26、)周期性地跟踪软硬件资源,将采集的数据保存在项目监控数据表之中。资源跟踪表的参考格式如表 4-3 所示。软硬件资源名称软硬件资源名称级别级别实际配置实际配置获取方式与时间获取方式与时间使用说明使用说明关键12关键普通普通表 4-3 资源跟踪表4.1.4 工作成果及其规模跟踪工作成果及其规模跟踪项目经理(或其指定的项目成员)周期性地跟踪工作成果及其规模,将采集的数据保存在项目监控数据表之中。工作成果跟踪表的参考格式如表 4-4 所示。工作成果名称工作成果名称新开发的成果规模新开发的成果规模(代码行、类、文档页数)(代码行、类、文档页数)复用或自动生成的成果规模复用或自动生成的成果规模(代码行、类

27、、文档页数)(代码行、类、文档页数)工作成果 1工作成果 2总和总和表 4-4 工作成果及其规模跟踪表4.2 控制偏差控制偏差对比“项目实际进展”和“项目计划” ,分析偏差,如果发现项目实际进展显著偏离计划,则及时采取纠正措施。记录日期记录日期显著偏差描述显著偏差描述原因分析原因分析纠正措施纠正措施结果结果表 4-5 项目偏差控制报告134.3 项目进展汇报项目进展汇报周期性地汇报项目进展情况。项目经理周期性地总结项目进展情况,撰写项目进展报告并通报给机构领导和所有项目成员。基本信息基本信息项目名称报告日期项目编号报告批次第 N 份项目经理项目所处阶段项目进展状况项目进展状况计划计划实际情况实

28、际情况任务与进度工作成果费用人力资源软硬件资源问题与对策问题与对策表 4-6 项目进展报告145 风险管理风险管理风险管理(Risk Management, RiskM)的目的是在风险产生危害之前识别它们,从而有计划地消除或削弱风险。所有可能危害项目的因素都称为风险。被刻画为风险的事件最终可能发生也可能不发生。人们对待风险有两种态度。一种是被动态度,可比作“救火模式” 。另一种是主动态度,可比作“防火模式” 。风险管理属于“防火模式” ,目的就是“防止风险产生真正的危害” 。为了便于量化管理,我们给风险定义 3 个参数:风险严重性:指风险对项目造成的危害程度。风险可能性:指风险发生的几率。风险

29、系数:是风险严重性和风险可能性的乘积。参数参数等级等级值值描述描述很高5例如进度延误大于 30%,或者费用超支大于 30%。比较高4例如进度延误 20%30%,或者费用超支 20%30%。中等3例如进度延误低于 20%,或者费用超支低于 20%。比较低2例如进度延误低于 10%,或者费用超支低于 10%。风险严重性很低1例如进度延误低于 5%,或者费用超支低于 5%。表 5-1 风险严重性等级参数参数等级等级值值描述描述很高5风险发生的几率为 1.0 0.8比较高4风险发生的几率为 0.8 0.6中等3风险发生的几率为 0.6 0.4比较低2风险发生的几率为 0.4 0.2风险可能性很低1风险

30、发生的几率为 0.2 0.0表 5-2 风险可能性等级风险可能性风险可能性风险风险系数系数很高 5比较高 4中等 3比较低 2很低 1很高 5252015105比较高 420161284中等 31512963比较低 2108642风险风险严重性严重性很低 154321本表灰色部分的风险系数值为本表灰色部分的风险系数值为 1025,应当优先处理。,应当优先处理。表 5-3 风险系数等级15风险严重性的等级划分如表 5-1 所示,风险可能性的等级划分如表 5-2 所示,风险系数的等级划分如表 3 所示。风险管理有 4 个主要活动:风险识别:根据风险检查表,识别出本项目的风险。风险分析:估计风险严重

31、性、风险可能性、风险系数。风险减缓:对于风险系数超过“容许值”的每一个风险,都应当采取减缓措施。风险跟踪:跟踪风险减缓过程,记录风险的状态。图 5-1 风险管理示意图在项目的生命周期内,上述 4 个活动将被循环执行,如图 5-1 所示。直到项目的所有风险都被识别与解决为止。常用的风险检查表 ,使用者应根据实际情况进行适当的删减或补充。风险管理过程域产生的主要文档是风险管理报告 。商业风险商业风险风险类型检查项政府或者其他机构对本项目的开发有限制吗?有不可预测的市场动荡吗?有不利于我方的官司要打吗?本产品销售后在使用过程中可能导致发生重大的损失或伤亡事故吗?竞争对手有不正当的竞争行为吗?本产品销

32、售后在使用过程中可能导致发生重大的损失或伤亡事故吗?是否在开发很少有人真正需要却自以为很好的产品?政治法律市场是否在开发可能亏本的产品?客户的需求是否含糊不清?客户是否反反复复地改动需求?客户指定的需求和交付期限在客观上可行吗?客户对产品的健壮性、可靠性、性能等质量因素有非常过分的要求吗?客户的合作态度友善吗?与客户签的合同公正吗?双方互利吗?客户客户的信誉好吗?例如按客户的需求开发了产品,但是客户可能不购买。风险识别风险分析风险减缓风险跟踪16与子承包商、供应商签订的合同公正吗?双方互利吗?子承包商、供应商的信誉好吗?子承包商、供应商有可能倒闭吗?子承包商、供应商能及时交付质量合格的产品(或

33、部件)吗?子承包商供应商子承包商、供应商有能力做好售后服务吗?管理风险管理风险风险类型检查项对项目的规模、难度估计是否比较正确?人力资源(开发人员、管理人员)够用吗?合格吗?项目所需的软件、硬件能按时到位吗?项目的经费够用吗?进度安排是否过于紧张?有合理的缓冲时间吗?进度表中是否遗忘了一些重要的(必要的)任务?进度安排是否考虑了关键路径? 是否可能出现某一项工作延误导致其他一连串的工作也被延误?任务分配是否合理?(即把任务分配给合适的项目成员,充分发挥其才能)是否为了节省钱,不采用(购买)成熟的软件模块,一切从零做起?项目计划项目成员团结吗?是否存在矛盾?是否绝大部分的项目成员对工作认真负责?

34、绝大部分的项目成员有工作热情吗?团队之中有“害群之马”吗?技术开发队伍中有临时工吗?本项目开发过程中是否会有核心人员辞职、调动?是否能保证“人员流动基本不会影响工作的连续性”?项目团队项目经理是否忙于行政事务而无暇顾及项目的开发工作?本项目是否得到上级领导的重视?上级领导是否随时会抽调本项目的资源用于其他“高优先级”的项目?上级领导是否过多地介入本项目的事务并且瞎指挥?行政部门的办事效率是否比较底,以至于拖项目的后腿?行政部门是否经常干一些无益于生产力的事情,以至于骚扰本项目?机构是否能全面、公正地考核员工的工作业绩?机构是否有较好的奖励和惩罚措施?上级领导行政部门合作部门本项目的合作部门的态

35、度积极吗?是否应付了事?或者做事与承诺的不一致?技术风险技术风险风险类型检查项需求开发人员懂得如何获取用户需求吗?效率高吗?需求开发需求开发人员懂得项目所涉及的具体业务吗?能否理解用户的需求?17需求文档能够正确地、完备地表达用户需求吗?需求开发人员能否与客户对有争议的需求达成共识?需求管理需求开发人员能否获得客户对需求文档的承诺?以保证客户不随便变更需求?开发人员是否有开发相似产品的经验? 待开发的产品是否要与未曾证实的软硬件相连接?对开发人员而言,本项目的技术难度高吗?开发人员是否已经掌握了本项目的关键技术?如果某项技术尚未实践过,开发人员能否在预定时间内掌握?开发小组是否采用比较有效的分

36、析、设计、编程、测试工具?分析与设计工作是否过于简单、草率,从而让程序员边做边改?开发小组采用统一的编程规范吗?开发人员对测试工作重视吗?能保证测试的客观性吗?项目有独立的测试人员吗?懂得如何进行高效率地测试吗?是否对所有重要的工作成果进行了同行评审(正式评审或快速检查)?开发人员懂得版本控制、变更控制吗?能够按照配置管理规范执行吗?综合技术开发能力包括设计编程、测试等开发人员重视质量吗?是否会在进度延误时降低质量要求?表 5-4 风险检查表风险名称风险识别人风险编号风险识别日期风险描述风险严重性风险系数风险可能性风险处理人风险减缓措施跟踪记录(1)记录何人在何时做了什么事情(2)记录当前风险

37、状态(正在处理,已经解决,不作处理)表 5-5 风险管理报告186 需求管理需求管理需求管理(Requirement Management, RM)的目的在客户与开发方之间建立对需求的共同理解,维护需求与其他工作成果的一致性,并控制需求的变更。需求管理过程域的三个主要规程:需求确认 需求跟踪 需求变更控制 图 6-1 需求工程结构图6.1 需求确认需求确认项目经理邀请同行专家和用户(包括客户和最终用户)一起评审需求文档,尽最大努力尽最大努力使需求文档能够正确无误地反映用户的真实意愿。使需求文档能够正确无误地反映用户的真实意愿。当需求文档通过正式的评审之后,开发方负责人(项目经理)和客户对需求文

38、档作书面承诺,使之具有商业合同效果。示例如下:本需求文档建立在双方对需求的共同理解基础之上,我同意后续的开发工作根据该需求文档开展。如果需求发生变化,我们将按照“需求变更控制规程”执行。我明白需求的变更将导致双方重新协商成本、资源和进度等。甲方负责人签字需求工程需求开发需求变更控制需求管理需求确认需求跟踪需求调查需求分析需求定义19乙方负责人签字评审结束 输出 需求评审报告 ,书面的需求承诺需求评审报告摘要需求评审报告摘要需求文档输入名称,标识符,版本,作者,完成日期,需求评审报告输入名称,标识符,评审日期,评审结论 工作成果合格, “无需修改”或者“需要轻微修改但不必再审核” 。 工作成果基

39、本合格,需要作少量的修改,之后通过审核即可。 工作成果不合格,需要作比较大的修改,之后必须重新对其评审。评审意见评审小组成员输入评审小组成员表 6-1 需求评审报告需求承诺需求承诺需求文档输入名称,标识符,版本,作者,完成日期客户承诺承诺签字,日期项目经理承诺承诺签字,日期表 6-2 需求承诺6.2 需求跟踪需求跟踪将系统设计、编程、测试等阶段的工作成果与需求文档进行比较,建立与维护“需求文档设计文档代码测试用例”之间的一致性,确保产品依据需求文档进行开发。20项目经理跟踪需求。建立与维护需求跟踪矩阵:正向跟踪。检查需求文档中的每个需求是否都能在后续工作成果中找到对应点。逆向跟踪。检查设计文档

40、、代码、测试用例等工作成果是否都能在需求文档中找到出处。正向跟踪和逆向跟踪合称为“双向跟踪” 。不论采用何种跟踪方式,都要建立与维护需求跟踪矩阵(即表格) 。需求跟踪矩阵保存了需求与后续工作成果的对应关系。矩阵单元之间的可能存在“一对一” 、 “一对多”或“多对多”的关系。由于对应关系比较复杂,最好在表格中加必要的文字解释。表 6-3 为简单的需求跟踪矩阵格式。当需求文档或后续工作成果发生变更时,要及时更新需求跟踪矩阵。需求文档(版本,日期)设计文档(版本,日期)代码(版本,日期)测试用例(版本,日期)1标题或标识符,说明标题或标识符,说明代码名称,说明测试用例名称,说明2表 6-3 简单的需

41、求跟踪矩阵格式6.3 需求变更控制需求变更控制修改“原需求文档”中不正确的内容,产生新的需求文档。控制需求文档的变更,防止发生混乱。补充说明:本规程中的“原需求文档”是指已经通过了评审并获得书面承诺的需求文档。开发方负责人(项目经理)和客户共同控制需求变更。需求变更申请需求变更申请申请变更的需求文档输入名称,版本,日期等信息变更的内容及其理由21评估需求变更将对项目造成的影响申请人签字变更申请的审批意见变更申请的审批意见项目经理签字审批意见:签字,日期客户签字(合同项目)审批意见:签字,日期更改需求文档更改需求文档变更后的需求文档输入名称,版本,完成日期等信息更改人签字重新评审需求文档重新评审

42、需求文档需求评审小组签字评审意见:签字,日期变更结束变更结束项目经理签字签字日期:22表 6-4 需求变更控制报告7 结项管理结项管理结项管理(Project Closing Management, PCM)是指在项目开发工作结束后,对项目的有形资产和无形资产进行清算;对项目进行综合评估;总结经验教训等。立项管理与结项管理是前后呼应的两个过程域,使得项目管理过程“有始有终” 。项目结束有两种状况:一是正常结束,二是异常结束。前者是指项目按预定计划结束。后者原因有多种,归根结底都是由于该项目不再符合机构的最大利益。例如有些项目因不适应市场而被中途淘汰,有些项目在执行过程中大大因偏离计划(如进度延

43、误、费用超支)而被取消。不论项目属于正常结束还是异常结束,都要按照结项管理规范处理。不论项目属于正常结束还是异常结束,都要按照结项管理规范处理。国内很多项目普遍存在“虎头蛇尾”的现象,结项管理畸变成了“走过场,吃顿饭” ,这是非常有害的。有价值的结项管理至少包括三项内容:对项目的有形资产和无形资产进行清算,既要防止资产流失,又要及时地利用这些资产。对项目进行综合评估。例如评估项目完成情况、项目质量、投入产出分析、项目的市场价值、项目对企业的贡献等等。该评估报告可以作为考核项目人员业绩的重要依据。总结经验教训,使整个机构受益。图 7-1 结项管理流程图结项管理的流程如图 7-1 所示,产生的主要

44、文档有:结项申请书结项评审报告机构领导指示结项申请机构领导审批结项评审资产检查综合评估经验总结238 需求开发需求开发需求开发(Requirement Development, RD)的目的是通过调查与分析,获取用户需求并定义产品需求。本规范阐述了需求开发过程域的两个主要规程:需求调查需求定义需求开发与需求管理是相辅相成的两类活动,它们共同构成完整的需求工程。需求工程结构图如图 6-1 所示,需求开发和需求管理的流程如图 8-1 所示。图 8-1 需求开发与需求管理流程图需求开发可分为两个阶段:“用户需求调查阶段”和“产品需求定义阶段” 。而“需求分析”则贯穿于上述两个阶段。需求调查阶段和需求

45、定义阶段在逻辑上存在先后关系,实际工作中二者通常是迭代进行的。我们把从事需求开发工作的人员称为需求分析员(也叫系统分析员) ,避免与其它开发人员混淆。一、需求调查一、需求调查需求调查的目的是通过各种途径获取用户的需求信息(原始材料) ,产生用户需求说明书 。二、需求分析二、需求分析需求分析的目的是对各种需求信息进行分析,消除错误,刻画细节等。常用的需求分析方法有“问答分析法” 、 “结构化分析法”和“面向对象分析法” 。三、需求定义三、需求定义需求分析用户需求说明书产品需求规格说明书用户需求调查输出输出产品需求定义需求变更控制需求确认需求跟踪需求开发过程域需求管理过程域24需求定义的目的是根据

46、需求调查和需求分析的结果,进一步定义准确无误的产品需求,产生产品需求规格说明书 。系统设计人员将依据产品需求规格说明书开展系统设计工作。需求开发过程域产生的主要文档有: 用户需求说明书产品需求规格说明书9 技术预研技术预研技术预研(Technical Pre-Research, TPR)是指在立项之后到开发工作完成之前的时间内,对项目将采用的关键技术提前学习和研究,以便尽可能早地发现并解决开发过程中将会遇到的技术障碍。在产品开发过程中,技术问题可能会层出不穷。如果一点技术障碍都没有遇到,要么是开发人员的技术水平实在太高了,要么是项目的技术含量实在太低了,这类情况比较少见。一般说来,在设计或实现

47、阶段遇到了技术障碍,才去攻克问题,其代价通常比较高。因为其他人的工作可能会被阻塞,已经投入的不少资源将被闲置。最糟糕的是,如果此技术障碍无法攻克,不得已要改变技术方案、重新设计系统,那么不仅浪费了人力、财力、时间,处理不好还会使开发队伍陷入混乱状态。所以开展技术预研工作至少有两大好处:帮助开发人员更好地进行需求开发、系统设计和程序设计。防止开发进程被技术障碍打断,导致大量的相关工作被阻塞。技术预研的流程如图 9-1 所示。图 9-1 技术预研流程技术预研过程中产生的主要文档有: 技术预研计划技术预研报告制定计划撰写预研报告工作成果介绍技术评审开展技术预研2510 系统设计系统设计系统设计(Sy

48、stem Design, SD)是指设计软件系统的体系结构、用户界面、数据库、模块等,从而在需求与代码之间建立桥梁,指导开发人员去实现能满足用户需求的软件产品。本规范阐述了系统设计过程域的四个主要规程:体系结构设计 用户界面设计 数据库设计 模块设计 系统设计过程域分为两个阶段:高层设计阶段和详细设计阶段。高层设计阶段的重点是软件系统的体系结构设计。详细设计阶段的重点是用户界面设计、数据库设计和模块设计,如图 10-1 所示。图 10-1 系统设计过程域示意图系统设计过程域产生的主要文档有:体系结构设计报告用户界面设计报告数据库设计报告模块设计报告10.1 体系结构设计体系结构设计分析与设计软

49、件的体系结构。通过系统分解,确定子系统的功能和子系统之间的关系,以及模块的功能和模块之间的关系,产生体系结构设计报告 。项目经理指定若干名开发人员从事体系结构设计(以下称为体系结构设计人员) 。详细设计阶段高层设计阶段体系结构设计模块设计数据库设计用户界面设计需求开发实现与测试26体系结构设计流程如图 10-2 所示。图 10-2 体系结构设计流程体系结构设计报告10.2 用户界面设计用户界面设计设计软件的用户界面,产生用户界面设计报告 。制作用户界面的资源如图像、图标或者界面专用组件等项目经理指定若干名开发人员从事用户界面设计(以下称为界面设计人员) 。如果可能的话,邀请用户或美工人员协助设

50、计用户界面。用户界面设计流程如图 10-3 所示。图 10-3 体系结构设计流程用户界面设计Step1. 设计准备Step5. 撰写文档Step6. 设计评审Step2. 确定约束因素Step3. 确定设计策略Step4. 系统分解设计Step2. 界面设计Step1. 设计准备2.1 原型创作2.2 原型评估2.3 细化Step3. 撰写文档Step4. 设计评审迭代2710.3 数据库设计数据库设计设计软件的数据库,产生数据库设计报告 。项目经理指定若干名开发人员从事数据库设计(以下称为数据库设计人员) 。数据库设计流程如图 10-4 所示。图 10-4 数据库设计流程数据库设计报告10.

51、4 模块设计模块设计设计软件所有模块的主要接口与属性、数据结构和算法,产生模块设计报告 。项目经理指定若干名开发人员从事模块的设计(以下称为模块设计人员) ,模块设计人员将在实现阶段编写这些模块的代码。模块设计流程如图 10-5 所示。Step2. 数据库设计Step1. 设计准备2.1 逻辑设计2.2 物理设计2.3 安全性设计2.4 优化Step3. 撰写文档Step4. 设计评审迭代Step2. 模块设计Step1. 设计准备2.1 接口与属性设计2.2 数据结构与算法设计Step3. 撰写文档Step4. 设计评审迭代28图 10-5 模块设计流程模块设计报告11 实现与测试实现与测试

52、实现与测试(Implementation and Test, IT)的目的是依据系统设计文档,编写并测试整个系统的代码。在本规范中,实现与测试是“编程、代码审查、单元测试、集成测试、缺陷管理与改错”的综合表述。实现与测试的流程如图 11-1 所示。一般地,编程、代码审查、单元测试、集成测试大致存在先后顺序关系,也可以并行、迭代地开展。上述任何活动中发现的缺陷必须用统一的缺陷管理工具来管理,开发人员应当及时消除缺陷(改错) 。图 11-1 实现与测试流程图由于实现与测试是工作量最大、时间最长、产生工作成果(代码与文档)最多的一个项目研发过程域,所以需要作充分的准备工作。实现与测试工作基本上在开发

53、小组内部开展。一个项目可能有一个或者多个开发小组。对于小型项目,项目经理可以兼任开发组长。特别要注意的是,开发人员应当对自己的代码进行审查和测试(这是份内的工作) ,但是不能作为该代码已经通过审查和测试的依据。所以开发人员还要互相审查和测试同伴的代码。实现与测试过程域产生的主要文档有:实现与测试计划编程文档代码审查报告编程代码审查单元测试集成测试模块软件系统准备缺陷管理与改错29测试用例测试报告缺陷管理报告 (由缺陷管理工具自动生成)一个项目可能有多个开发小组,视项目规模而定。开发组长由项目经理指定。开发组长管理编程、代码审查、单元测试、集成测试、缺陷管理与改错等活动。 编程文档实现与测试计划

54、12 系统测试系统测试系统测试(System Test, ST)的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。系统测试流程如图 12-1 所示。由于系统测试的目的是验证最终软件系统满足产品需求并且遵循系统设计,所以当产品需求和系统设计文档完成之后,系统测试小组就可以提前开始制定测试计划和设计测试用例,而不必等到“实现与测试”阶段结束。这样可以提高系统测试的效率。系统测试过程中发现的所有缺陷必须用统一的缺陷管理工具来管理,开发人员应当及时消除缺陷(改错) 。图 12-1 系统测试流程图项目经理设法组建富有成效的系统测试小组。系统测试小组的成员主要来源于:机构

55、独立的测试小组(如果存在的话) 。邀请其它项目的开发人员参与系统测试。本项目的部分开发人员。机构的质量保证人员。制定测试计划设计测试用例执行系统测试缺陷管理与改错审批审批迭代30系统测试小组应当根据项目的特征确定测试内容。一般地,系统测试的主要内容包括:功能测试。即测试软件系统的功能是否正确,其依据是需求文档,如产品需求规格说明书 。由于正确性是软件最重要的质量因素,所以功能测试必不可少。健壮性测试。即测试软件系统在异常情况下能否正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力。性能测试。即测试软件系统处理事务的速度,一是为了检验性能是否符合需求,二是为了得到某些性能数据供人们参考

56、(例如用于宣传) 。用户界面测试。重点是测试软件系统的易用性和视觉效果等。安全性(security)测试。是指测试软件系统防止非法入侵的能力。 “安全”是相对而言的,一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、危险等因素)高于得到的好处,那么这样的系统可以认为是安全的。安装与反安装测试。系统测试过程域产生的主要文档有:系统测试计划系统测试用例系统测试报告缺陷管理报告对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。项目经理组建系统测试小组,并指定一名成员任测试组长。系统测试小组各成员共同制定测试计划、设计测试用例、执行测试,并撰写相应的文档。测试组长管理上述

57、事务。开发人员及时消除测试人员发现的缺陷。 系统测试计划测试用例测试报告13 客户验收客户验收客户验收(Customer Acceptance, CA)是指客户依据合同对产品进行审查和测试,确保产品满足客户需求。客户对产品的验收主要有两种方式:成果审查。验收人员审查开发方应当交付的成果,如代码、文档等等。确保这些成果是完整的并且是正确的。验收测试。验收人员对待交付的产品进行全面的测试,确保产品功能、质量符合需31求。验收测试的内容、方法与系统测试几乎是相同的。两者主要区别在于执行人员不同。验收测试人员来自于客户方,而系统测试人员则来自于开发方。客户验收流程如图 13-1 所示。图 13-1 客

58、户验收流程客户验收过程域产生的主要文档有:客户验收计划验收测试用例 客户验收报告补充说明:补充说明:“客户验收”是针对合同项目而言的。 客户验收计划客户验收报告14 技术评审技术评审技术评审(Technical Review, TR)的目的是尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量。本规范阐述了技术评审过程域的三个主要规程:制定技术评审计划 正式技术评审 非正式技术评审技术评审能够在任何开发阶段执行,它可以比测试更早地发现并消除工作成果中的缺陷。技术评审的主要好处有:通过消除工作成果的缺陷而提高产品的质量。越早消除缺陷就越能降低开发成本。开发人员能够及时

59、地得到同行专家的帮助和指导,无疑会加深对工作成果的理解,更好地预防缺陷,一定程度上提高了开发生产率。可见技术评审有助于“提高质量、提高生产率、降低成本” ,符合软件过程改进的根本目的。验收准备问题处理成果审查与验收测试交付与签字32技术评审有两种基本类型:正规技术评审(FTR) 。FTR 比较严格,需要举行评审会议,参加评审会议的人员比较多。非正规技术评审(ITR) 。ITR 的形式比较灵活,通常在同伴之间开展,不必举行评审会议,评审人员比较少。理论上讲,为了确保产品的质量,产品的所有工作成果都应当接受技术评审。现实中,为了节约时间,允许人们有选择地对工作成果进行技术评审。技术评审方式也视工作

60、成果的重要性和复杂性而定。技术评审过程域有三个主要规程:“制定技术评审计划” 、 “正规技术评审”和“非正规技术评审” ,如图 14-1 所示。图 14-1 技术评审过程域示意图技术评审的注意事项:评审人员的职责是发现工作成果中的缺陷,并帮助开发人员给出消除缺陷的办法,而不是替开发人员消除缺陷。技术评审应当“就是论事” ,不要打击有失误的开发人员的工作积极性,更不准搞人身攻击(如挖苦、讽刺等) 。在会议评审期间要限制过多的争论,以免浪费他人的时间。技术评审过程域产生的主要文档有:技术评审计划技术评审通知技术评审报告技术评审检查表 技术评审计划技术评审通知技术评审报告 技术评审检查表15 配置管

温馨提示

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

评论

0/150

提交评论