天津天大求实电力新技术股份有限公司TianjinTiandaQiushiElectricPowerHighTechnologyCo.,Ltd.软件生命周期过程管理培训(一)测试推动,量化管理3研发过程实践4研发过程管理培训研发过程管理•整个软件项目生命周期中的核心部分。•如何推动软件项目研发过程?•如何研发高质量的产品或项目?•如何进行团队协作与沟通?研发过程管理培训1.研发过程管理原型调研(同类或同形产品调研与分析)原型设计(故事板/草图)功能点设计与实现(功能点、核心点的实现)框架与基础设计(整体框架的设计实现)代码审查(编程规范?可读性?健壮性?可重用?)问题与BUG列表(管理与核定进度的依据)项目沟通与交流(项目网站/技术讨论会议/培训)配置管理(版本迭代方法)代码重构(提炼重用、结构调整、性能调整)1.研发过程管理原型调研成功产品的第一步,同类产品功能点分析,核心功能点(亮点)构思。以前的项目,同行的产品。市场需求,行业用户习惯。1.研发过程管理原型设计故事板/草图1.研发过程管理功能点设计与实现预先实现一些功能特色或者核心亮点,可参与说服客户或商业谈判。可以对未来的技术风险进行评估,避免出现永远不可能实现的软件项目。1.研发过程管理研发过程管理原型与实际研发过程管理框架与基础设计技术选型原则。1)整体解决方案。2)开源技术与第三方技术的选择。框架与基础设计1)首先实现。2)保持稳定,不轻易调整。3)简单清晰。框架、组件、类库的测试。研发过程管理Inheritance研发过程管理代码审查原则:以表格和报告形式提出。1)编程规范。2)符合整体要求。3)可读性。4)健壮性。5)可复用。研发过程管理项目交流与沟通项目网站。可采用SPS(SharepointPortalServer)或WSS(WindowsSharepointService)快速搭建.项目会议与培训。项目知识应予分享。审查和了解进度,及早发现风险和问题。对项目的技术建议和问题改进落实到文本。研发过程管理项目交流与沟通研发过程管理配置管理版本迭代研发过程管理配置管理版本比较合并研发过程管理配置管理代码中的注释研发过程管理代码重构代码提炼,消除重复代码。案例:switchcase/多态。案例:LINQ&MVC。研发过程管理代码重构超级类研发过程体会研发原则知己知彼。预实现。沟通交流。版本迭代。测试驱动开发。健壮性开发。责任制。测试推动,量化管理早引入测试。测试不是产品或功能实现后的检查,而是推动开发的力量。量化开发工作。在团队内部推动问题与BUG列表量化指派任务,管理者可以随时了解项目进度。核心是需求。无论产品或项目,用户需求都是核心,技术是为实现需求服务的。3.测试推动,量化管理测试推动,量化管理需求文档需求文档的重要性高于概要和详细设计。需求文档的目标1)了解业务逻辑2)执行者3)明确数据项4)验证条件5)原型设计概要设计的目标1)界面设计2)核心原型设计3)数据字典详细设计的目标1)系统整体架构的设计和实现2)具体功能的设计测试推动,量化管理需求调研的方法只聆听一个声音会议方式访问与对话方式用例的编写和确立签字的重要性测试推动,量化管理需求文档的格式比较两份需求文档测试推动,量化管理需求文档的附属文件界面设计&需求用例测试推动,量化管理需求文档的重要性开发与测试工作的依据。稳定的、少变化的。风险管理。该如何实现?&该实现什么?测试推动,量化管理开发流程测试推动,量化管理开发流程测试推动,量化管理项目管理流程测试推动,量化管理需求管理流程测试推动,量化管理需求变更流程测试推动,量化管理缺陷变更流程量化管理3.测试推动,量化管理测试推动,量化管理版本迭代1INT(集成流) TST(测试)DEV(开发流)1n+132新增需求/修改bug HotFix (紧急修复流)1212BL1n+2新增需求/修改bugRelease1.0_Hotfix0012k+1k+2k+3n+2DeliverRebaseDeliverBL主流132Release1.0Release1.0_Hofix001Release1.1开发商的开发项目中国外汇交易中心的发布项目DEV(维护流)CREL(正式发布流)主流基线:INTTSTHOTFIXCREL角色与分工(客户角度)4.研发过程实践角色RUPCM活动人员项目主管如果测试通过,通知工程部从该测试流进行安装测试安装测试通过后项目主管审核通过后通知scm创建发布流从基线创建一个中心的测试流安装测试通过后创建发布流并创建发布基线(设置项目属性为冻结)SCM安装客户端/设置、检查客户端CM环境创建域用户、组创建VOB并分配VOB权限(VOBOWENER)创建项目(VOB、组件的归属)培训项目组成员编写CM计划协助QA实现配置统计报告QA检查所有的需求、需求变更、缺陷是否都为CLOSED/POSTPONED/DUPLICATED状态;还有有所有的测试任务都完成不是的话不接受配置统计报告项目组的配置审计测试人员(包括第三方测试人员)提交缺陷,改进请求等监理配置统计报告审查工程运行部门所有发布版本从发布流上取得安装测试上线研发过程实践角色与分工(研发部门)角色RUPCM活动人员项目经理通知客户进行上线测试SCM建视图、并创建目录结构和权限导入初始文件(可选)并创建初始基线创建集成测试流和视图打基线(定义基线等级)由客户主管通知,在集成流上创建一个发布基线QA开发人员查询CQ,CHECKOUT/IN加入项目创建开发视图(SNAPSHOT)单元测试REBASE单元测试DELIVER测试人员集成测试、性能测试提交缺陷维护者研发过程实践Submited:由项目经理(客户)根据项目计划或临时计划提交(Submit)项目管理任务Assigned:项目经理(客户)分配任务给开发部门的计划执行人(研发主管),执行动作AssignOpened:开发者在CQ中查看到任务后,Open这条任务研发过程实践Resolved:当开发者完成任务后,把需要提交的内容都保存到CC中相应的目录后,并且Checkin到开发流后,再到CQ中将任务成果交付到实际交付成果的附件中,最后执行ResolveResolved/Opened:开发主管查看到任务状态为Resolved后,进行评审,评审通过,使用Modify动作填写评审意见,如果未通过执行Reject动作,开发者可以通过修改动作对自己的任务成果进行修改,任务完成后重新提交。研发过程实践Closed:质量管理组在CQ中审核任务成果,如果审核通过,执行Validate动作,关闭任务。交付成果的评审:市场部(客户)从CQ中找到该计划的任务,可查看交付成果,填写评审意见实践工具介绍VisualProject是一款项目管理工具IBMRationalClearCase是一款软件配置管理工具IBMRationalClearQuest是一款软件变更管理工具DOORS是一款需求管理工具4.研发过程实践VP(项目计划)4.研发过程实践工作台信息筛选VP(个人视图及报工)4.研发过程实践VP(导入到CQ)4.研发过程实践VP(CQ中的报工)4.研发过程实践CC(创建流)4.研发过程实践CC4.研发过程实践CQ4.研发过程实践CQ4.研发过程实践CQ4.研发过程实践CQ4.研发过程实践DOORS4.研发过程实践DOORS4.研发过程实践DOORS4.研发过程实践DOORS(过滤及版本管理)4.研发过程实践问题1:案例:某企业与某公司签订软件开发合同,合同总值100万元,该企业在调研中共提出800项需求,经测算需总成本约500万元,应该怎么办?提问环节提问环节问题2:案例:项目经理甲将一项功能开发任务交给程序员乙,并向乙提供了需求文档并描述了开发思路。乙完成了开发并测试通过,一段时间后,项目经理甲发现代码实现不是按照自己的预想完成的,于是要求乙重新开发,请问这其中的问题有哪些?问题3:案例:12306.cn网站挂了,被全国人民骂了请从整体设计角度列出原因并简要提出解决方案。提问环节天大求实电力新技术股份有限公司联系地址:天津市华苑产业区海泰发展六道6号海泰绿色产业基地J-408邮政编码:300384联系电话:022-58596500传真:022-58596587E-mail:tdqs@vip.sina.com