.专业资料分享..WORD完美格式.软件开发规范SoftwareDevelopmentSpecificationVersion:V1.0Date:2010-06-22Preparedby软件开发规范第2页共39页DocumentRevisionHistory文档修订记录VERSION版本DATE日期DESCRIPTION内容说明INDIVIDUAL修订人1.02010-06-22初稿软件开发规范第3页共39页TableofContents目录1Introduction简介51.1Purpose目标51.2Scope范围61.3Definitions,Acronyms,andAbbreviations.术语,缩略词61.4References引用71.5Overview文档组织72TheOverallDescription概述82.1SoftwareDevelopmentOrganizing开发团队组织结构82.2ProjectBaseProcess项目基本流程92.3CMMBaseProcessCMM基本过程102.3.1SCM软件配置管理102.3.2SPP计划策划122.3.3SPTO项目追踪162.3.4PR同行评审182.3.5SQA质量保证192.4SDLC生命周期选择202.5DevelopmentProcess开发过程212.5.1DevelopmentPhase开发阶段212.5.2PhaseProduct阶段制品222.6RoleDuty角色职责232.7Constraints限制243SpecificRequirements详细描述253.1Precondition前提253.1.1SCM配置库253.1.2TestEnvironment测试环境263.2DevelopmentControlProcess开发控制流程273.2.1项目启动和策划阶段273.2.2需求分析、设计、编码阶段273.2.3提交测试阶段283.2.4生产发布、终测283.2.5发布后问题反馈修改过程293.3TSP团队软件过程303.3.1会议组织303.3.2沟通问题30软件开发规范第4页共39页3.3.3代码走查303.3.4其它313.4PSP个人软件过程313.4.1工作原则313.4.2日常工作313.4.3DE开发工程师323.4.4SCME配置管理员333.4.5DBA数据库管理员333.4.6Deployer发布人员344ToolSpecification工具规范344.1通用工具344.2计划344.3需求分析354.4设计354.5编码354.6测试365Documents文档375.1项目管理文档375.1.1项目策划375.1.2项目追踪375.1.3质量保证375.1.4项目终止375.2开发过程文档375.2.1软件配置管理375.2.2会议管理385.2.3计划跟踪385.2.4评审管理385.2.5质量管理385.2.6测试过程385.2.7问题解决过程395.2.8其他396Appendix附录396.1易于理解的代码396.2Log输出39软件开发规范第5页共39页1Introduction简介一个成熟稳定的组织或者团队,能够减少风险,经常地成功地达成目标。成功的含义是:按时、预算内【即符合成本要求】、符合质量要求。换言之,成熟稳定的团队,能够避免以下问题:组织方面出现问题对需求缺乏管理缺乏计划和控制估算错误同时,还要在以下几个方面做得比较出色:人员调度与工作安排工作量估计预算管理责权分配与平衡执行与监控沟通本文档是软件开发规范,力求使团队打下一个良好的基础,以便逐步成长为成熟稳定的团队。团队需要一个逐步标准、规范的开发过程,在这个过程中,团队得到锻炼,成员能力得到提高,风险得到控制。主要内容是:定义软件开发的流程;定义软件开发的文档格式;定义涉及的角色;定义涉及的信息;描述开发流程;1.1Purpose目标本文档的目标是:统一软件开发团队的流程、文档;促进团队成员的沟通,减少误解;促使程序员书写易维护的代码;提高代码编写效率;使每个成员成为一个高效的程序员;软件开发规范第6页共39页1.2Scope范围本文档,包含:项目管理的流程;项目策划项目追踪配置管理质量保证同行评审涉及文档;项目计划mpp需求规格说明书SRSDelphi估算项目状态报告配置库样式CheckList评审表变更申请表开发工具的规范;数据库设计工具功能设计工具IDE配置工具1.3Definitions,Acronyms,andAbbreviations.术语,缩略词SPP项目策划SoftwareProjectPlanningSPTO项目追踪SoftwareProjectTracking&OversightSCM配置管理SoftwareConfigurationManagementSQA质量保证SoftwareQualityAssurancePR同行评审PeerReviewBaseLine基线SCCB软件配置控制委员会SoftwareConfigurationControlBoardCR变更请求ChangeRequestSDLC软件开发生命周期SoftwareDevelopmentLifeCycleRUP统一开发过程RationalUnifiedProcessXP极限【敏捷方法】eXtremeProgrammingTDD测试驱动TestDrivenDevelopment软件开发规范第7页共39页1.4References引用《CMM2》《CMM3》1.5Overview文档组织本文档主要分为四大部分:概述;描述了团队组织开发过程的高层视图;TSP和PSP;按照团队和个人描述流程规范;工具规范;描述了开发工具的详细规范;文档;涉及的文档格式;软件开发规范第8页共39页2TheOverallDescription概述本部分是开发团队开发过程的高层描述。它描述了开发过程规范的背景,用来和所有涉及各方就基本过程达成共识。2.1SoftwareDevelopmentOrganizing开发团队组织结构SA团团QA团团团团团团团团PMO团团团DBASQAESCCBSCMETesterSADESQAQCSCMDeployer说明:表示公司的行政部门表示公司的逻辑部门实线表示参加产品实现的组织和人员(不表示所属关系)虚线表示工作的汇报关系,如SQAE向SQA经理汇报。软件开发规范第9页共39页2.2ProjectBaseProcess项目基本流程基本流程说明:项目启动:本阶段主要是进行可行性分析,定义项目,识别需求;制定计划:本阶段主要是计划策划,估算工作量,制定具体的可执行的计划;计划实施:本阶段主要是实施计划,完成计划中的各项任务,报告计划状态;项目终止:计划执行完毕,总结项目;识别需求提出解决方案执行项目结束项目投入力量可行性分析报告需求建议书合同项目目标项目定义制定计划计划实施项目终止时间软件开发规范第10页共39页2.3CMMBaseProcessCMM基本过程基本过程说明:SCM:软件配置管理,所有活动的基础,一切制品必须放入配置库;SPP:软件项目策划,估算工作量,制定详细计划【项目的制定计划阶段】;SPTO:项目追踪,报告项目状态,评估并更新计划【项目的计划实施阶段】;PR:同行评审,进入基线的前提条件,降低风险,提高质量的有效手段;SQA:质量保证,预防风险的有效手段;2.3.1SCM软件配置管理配置管理主要解决:版本变更SCMSQAWorkAreaBaseLineSPPSPTOPRChange&PR软件开发规范第11页共39页确定配置项和基线确定记录和报告配置项状态策略定义配置项定义访问权限访问权限确定配置管理工具确定SCCB成员确定配置库及其目录结构项目启动确定配置管理人员Vss、SVN或VSTS一般由:项目经理、技术经理、客户经理、质量保证人员、配置管理等项目的核心成员人员组成。在配置项(基线)生成和基线变更时配置库结构权限表基线表确定基线变更过程软件开发规范第12页共39页2.3.2SPP计划策划计划策划的核心是工作量估算定义备份与病毒策略按计划执行配置管理活动SCM计划制定和评审记录和报告基线的状态在配置项(基线)生成和基线变更时至少在项目的每个里程碑结束时进行备份1建立配置库2对项目组指导和培训3对配置项的日常管理4参加评审会议5定期备份和病毒防护6实施发布7进行归档8配置管理计划的维护配置管理情况总结计划完成总结配置项是否完整、基线的变化情况统计、审核发现问题情况统计、改进建议等,记入项目总结报告定义测试和发布归档方式SCM计划配置审核状态报告审核报告软件开发规范第13页共39页从历史库中识别可用的信息项目启动从公司的数据中识别项目相似的信息,如项目的总结报告和其它的数据或文挡项目需求、合同以及《软件项目任务书》等相关要求选择项目生命周期识别项目的特点了解各个生命周期的特点确定适合项目生命周期模型从对用户需求的理解是否充分;人员介入项目的方式;产品的交付方式;项目规模大小和风险高低;对项目系统架构的理解是否充分等方面考虑RUPXPRUPXP依据定义的过程,识别必须完成的任务和工作产品分解时考虑的活动事项要详尽,不要漏掉:教育或培训的需要;参与评审文档;参与项目会议;确定、记录和显示各种与质量相关和与过程相关的数据;传播时间文档制品如:计划、SRS等规模估算制定工作产品的评审计划估算表估算结果评审计划软件开发规范第14页共39页软件开发规范第15页共39页识别项目需要使用的工具和设施风险评估识别与其他组之间的关系确定项目的跟踪情况确定项目的组织结构和职责识别项目需要进行的培训制定时间进度表在已知的停工和节假日时间不安排工作;不考虑加班时间;考虑测试及评审中发现问题的返工需要的时间;考虑客户需求的稳定情况;考虑各项活动的交接和信息的传递时间;识别出的风险对活动的影响;在安排工作时应考虑整个项目的效率因素,在正常估算的工期内增加20~40%的余量,分配到项目的所有活动中――特别是关键路径中的活动中工具指南风险表协同工作计划项目跟踪计划组织和角色定义培训计划时间进度表软件开发规范第16页共39页2.3.3SPTO项目追踪编写项目开发计划书及其相关计划书计划评审计划管理和控制SQA计划SCM计划SDP计划Test计划风险计划软件开发规范第17页共39页软件项目开发计划日常进度跟踪定期报告项目状态周例会里程碑总结需要调整计划修改和评审计划纠正和预防当出现:规模、工作量、进度和关键计算机资源超出规定的阈值;项目总的原始计划不再可能达到;计划和实际的任务安排明显不相符,起不到指导作用;对客户的承诺不能实现时并满足下列条件时:导致计划变化的原因是知道的,并清楚计划怎么样改变;提议的项目进度计划变动是可达到的;提议的项目进度计划已经得到了必须完成他的人员的许诺在周例会上向项目组的成员传达客户方面的信息、交流项目近期进展情况、未完成的工作、工作中存在的问题、好的经验以及部署下两周的工作,以使得计划和实际的开发工作相符合总结到目前为止项目开发总体状况、项目活动进展情况(一般通过甘特图来体现)、活动项进展(应特别关注未完成活动项)、本阶段好的经验和典型问题、过程改进建议、客户方面新要求,项目评审、培训执行情况、项目风险等其它方面存在的问题,分析在进度、工作量和缺陷等方面收集的数据并根据情况制定相应的措施和调整时间进度表,保持项目正常、健康开发个人工作周报时间进度表数据收集其它组跟踪周报告分析和预测里程碑报告项目总结项目总结报告软件开发规范第18页共39页2.3.4PR同行评审评审准备制定本次评审计划评审跟踪正式评审评审人员进行预审,在指定的时间内给出预审意见,反馈给评审组长和作者。评审组长将缺陷(或问题)及工作量汇总填入《评审报告》。要评审的文档已经完成且文档符合标准模板要求,项目经理指定评