1、软件开发规范Software Development SpecificationVersion: V1.0Date: 2010-06-22Prepared by标准实用文案大全Document Revision History文档修订记录VERSION版本DATE日期DESCRIPTION内容说明INDIVIDUAL修订人1.0 2010-06-22 初稿标准实用文案大全Table of Contents目录1 Introduction 简介 51.1 Purpose 目标 51.2 Scope 范围 61.3 Definitions, Acronyms, and Abbreviations.
2、 术语,缩略词 61.4 References 引用 71.5 Overview 文档组织 72 The Overall Description 概述 82.1 Software Development Organizing 开发团队组织结构 82.2 Project Base Process 项目基本流程 92.3 CMM Base Process CMM基本过程 102.3.1 SCM软件配置管理 102.3.2 SPP 计划策划 122.3.3 SPTO项目追踪 152.3.4 PR同行评审 172.3.5 SQA质量保证 182.4 SDLC 生命周期选择 192.5 Developm
3、ent Process 开发过程 202.5.1 Development Phase 开发阶段 202.5.2 Phase Product 阶段制品 212.6 Role Duty 角色职责 222.7 Constraints 限制 233 Specific Requirements 详细描述 243.1 Precondition 前提 243.1.1 SCM配置库 243.1.2 Test Environment 测试环境 253.2 Development Control Process 开发控制流程 253.2.1 项目启动和策划阶段 263.2.2 需求分析、设计、编码阶段 263.2
4、.3 提交测试阶段 263.2.4 生产发布、终测 273.2.5 发布后问题反馈修改过程 273.3 TSP 团队软件过程 293.3.1 会议组织 293.3.2 沟通问题 29标准实用文案大全3.3.3 代码走查 293.3.4 其它 303.4 PSP 个人软件过程 303.4.1 工作原则 303.4.2 日常工作 303.4.3 DE 开发工程师 313.4.4 SCME 配置管理员 323.4.5 DBA 数据库管理员 323.4.6 Deployer 发布人员 334 Tool Specification 工具规范 334.1 通用工具 334.2 计划 334.3 需求分析
5、344.4 设计 344.5 编码 344.6 测试 345 Documents 文档 355.1 项目管理文档 355.1.1 项目策划 355.1.2 项目追踪 355.1.3 质量保证 355.1.4 项目终止 355.2 开发过程文档 355.2.1 软件配置管理 355.2.2 会议管理 365.2.3 计划跟踪 365.2.4 评审管理 365.2.5 质量管理 365.2.6 测试过程 365.2.7 问题解决过程 365.2.8 其他 376 Appendix 附录 376.1 易于理解的代码 376.2 Log输出 37标准实用文案大全1 Introduction 简介 一个
6、成熟稳定的组织或者团队,能够减少风险,经常地成功地达成目标。成功的含义是:按时、预算内【即符合成本要求】、符合质量要求。换言之,成熟稳定的团队,能够避免以下问题: 组织方面出现问题 对需求缺乏管理 缺乏计划和控制 估算错误同时,还要在以下几个方面做得比较出色: 人员调度与工作安排 工作量估计 预算管理 责权分配与平衡 执行与监控 沟通本文档是软件开发规范,力求使团队打下一个良好的基础,以便逐步成长为成熟稳定的团队。团队需要一个逐步标准、规范的开发过程,在这个过程中,团队得到锻炼,成员能力得到提高,风险得到控制。主要内容是: 定义软件开发的流程; 定义软件开发的文档格式; 定义涉及的角色; 定义
7、涉及的信息; 描述开发流程;1.1 Purpose 目标本文档的目标是: 统一软件开发团队的流程、文档; 促进团队成员的沟通,减少误解; 促使程序员书写易维护的代码; 提高代码编写效率; 使每个成员成为一个高效的程序员;标准实用文案大全1.2 Scope 范围本文档,包含: 项目管理的流程; 项目策划 项目追踪 配置管理 质量保证 同行评审 涉及文档; 项目计划 mpp 需求规格说明书 SRS Delphi估算 项目状态报告 配置库样式 CheckList 评审表 变更申请表 开发工具的规范; 数据库设计工具 功能设计工具 IDE 配置工具1.3 Definitions, Acronyms,
8、and Abbreviations. 术语,缩略词 SPP 项目策划 Software Project Planning SPTO 项目追踪 Software Project Tracking & Oversight SCM 配置管理 Software Configuration Management SQA 质量保证 Software Quality Assurance PR 同行评审 Peer Review BaseLine 基线 SCCB 软件配置控制委员会 Software Configuration Control Board CR 变更请求 Change Request SDLC
9、软件开发生命周期 Software Development Life Cycle RUP 统一开发过程 Rational Unified Process XP 极限【敏捷方法】eXtreme Programming TDD 测试驱动 Test Driven Development标准实用文案大全1.4 References 引用 CMM2CMM31.5 Overview 文档组织 本文档主要分为四大部分: 概述;描述了团队组织开发过程的高层视图; TSP和 PSP;按照团队和个人描述流程规范; 工具规范;描述了开发工具的详细规范; 文档;涉及的文档格式;标准实用文案大全2 The Overal
10、l Description 概述 本部分是开发团队开发过程的高层描述。它描述了开发过程规范的背景,用来和所有涉及各方就基本过程达成共识。2.1 Software Development Organizing 开发团队组织结构S A 团队Q A研发团队研发经理P M O项目组D B AS Q A ES C C BS C M ET e s t e rS AD ES Q AQ CS C MD e p l o y e r说明: 表示公司的行政部门 表示公司的逻辑部门 实线表示参加产品实现的组织和人员(不表示所属关系)虚线表示工作的汇报关系,如 SQAE向 SQA经理汇报。标准实用文案大全2.2 Pro
11、ject Base Process 项目基本流程识别需求 提出解决方案 执行项目 结束项目投入力量可行性分析报告需求建议书 合同 项目目标项目定义 制定计划 计划实施 项目终止 时间基本流程说明: 项目启动: 本阶段主要是进行可行性分析,定义项目,识别需求; 制定计划: 本阶段主要是计划策划,估算工作量,制定具体的可执行的计划; 计划实施: 本阶段主要是实施计划,完成计划中的各项任务,报告计划状态; 项目终止: 计划执行完毕,总结项目;标准实用文案大全2.3 CMM Base Process CMM基本过程SCM SQAWork Area BaseLineSPP SPTOPRChange &
12、PR基本过程说明: SCM: 软件配置管理,所有活动的基础,一切制品必须放入配置库; SPP: 软件项目策划,估算工作量,制定详细计划【项目的制定计划阶段】; SPTO:项目追踪,报告项目状态,评估并更新计划【项目的计划实施阶段】; PR: 同行评审,进入基线的前提条件,降低风险,提高质量的有效手段; SQA: 质量保证,预防风险的有效手段;2.3.1 SCM软件配置管理配置管理主要解决: 版本 变更标准实用文案大全确定配置项和基线确定记录和报告配置项状态策略定义配置项定义访问权限访 问 权 限访问权限确定配置管理工具确定 SCCB 成员确定配置库及其目录结构项目启动确定配置管理人员Vss、S
13、VN 或 VSTS一般由:项目经理、技术经理、客户经理、质量保证人员、配置管理等项目的核心成员人员组成。在配置项(基线)生成和基线变更时配置库结构权限表基线表确定基线变更过程标准实用文案大全定义备份与病毒策略按计划执行配置管理活动SCM 计划制定和评审记录和报告基线的状态在配置项(基线)生成和基线变更时至少在项目的每个里程碑结束时进行备份1 建立配置库2 对项目组指导和培训3 对配置项的日常管理4 参加评审会议5 定期备份和病毒防护6 实施发布7 进行归档8 配置管理计划的维护配置管理情况总结计划完成总结配置项是否完整、基线的变化情况统计、审核发现问题情况统计、改进建议等,记入项目总结报告 定
14、义测试和发布归档方式SCM 计划配置审核状态报告 审核报告2.3.2 SPP 计划策划计划策划的核心是工作量估算标准实用文案大全从历史库中识别可用的信息项目启动从公司的数据中识别项目相似的信息,如项目的总结报告和其它的数据或文挡项目需求、合同以及软件项目任务书等相关要求选择项目生命周期识别项目的特点了解各个生命周期的特点确定适合项目生命周期模型从对用户需求的理解是否充分;人员介入项目的方式;产品的交付方式;项目规模大小和风险高低;对项目系统架构的理解是否充分等方面考虑RUPXPRUPXP依据定义的过程,识别必须完成的任务和工作产品分解时考虑的活动事项要详尽,不要漏掉:教育或培训的需要;参与评审
15、文档;参与项目会议;确定、记录和显示各种与质量相关和与过程相关的数据;传播时间文档制品如:计划、SRS 等规模估算制定工作产品的评审计划估算表估算结果评审计划标准实用文案大全标准实用文案大全识别项目需要使用的工具和设施风险评估识别与其他组之间的关系确定项目的跟踪情况确定项目的组织结构和职责识别项目需要进行的培训制定时间进度表在已知的停工和节假日时间不安排工作;不考虑加班时间;考虑测试及评审中发现问题的返工需要的时间;考虑客户需求的稳定情况;考虑各项活动的交接和信息的传递时间;识别出的风险对活动的影响;在安排工作时应考虑整个项目的效率因素,在正常估算的工期内增加 2040的余量,分配到项目的所有
16、活动中特别是关键路径中的活动中工具指南风险表协同工作计划项目跟踪计划组织和角色定义培训计划时间进度表标准实用文案大全编写项目开发计划书及其相关计划书计划评审计划管理和控制SQA 计划 SCM 计划 SDP 计划 Test 计划 风险计划2.3.3 SPTO项目追踪标准实用文案大全软件项目开发计划日常进度跟踪定期报告项目状态周例会 里程碑总结需要调整计划修改和评审计划纠正和预防当出现:规模、工作量、进度和关键计算机资源超出规定的阈值;项目总的原始计划不再可能达到;计划和实际的任务安排明显不相符,起不到指导作用;对客户的承诺不能实现时并满足下列条件时:导致计划变化的原因是知道的,并清楚计划怎么样改
17、变;提议的项目进度计划变动是可达到的;提议的项目进度计划已经得到了必须完成他的人员的许诺在周例会上向项目组的成员传达客户方面的信息、交流项目近期进展情况、未完成的工作、工作中存在的问题、好的经验以及部署下两周的工作,以使得计划和实际的开发工作相符合总结到目前为止项目开发总体状况、项目活动进展情况(一般通过甘特图来体现)、活动项进展(应特别关注未完成活动项)、本阶段好的经验和典型问题、过程改进建议、客户方面新要求,项目评审、培训执行情况、项目风险等其它方面存在的问题,分析在进度、工作量和缺陷等方面收集的数据并根据情况制定相应的措施和调整时间进度表,保持项目正常、健康开发个人工作周报时间进度表数据
18、收集 其它组跟踪周报告分析和预测里程碑报告项目总结 项目总结报告标准实用文案大全2.3.4 PR同行评审评审准备制定本次评审计划评审跟踪正式评审评审人员进行预审,在指定的时间内给出预审意见,反馈给评审组长和作者。评审组长将缺陷(或问题)及工作量汇总填入评审报告。要评审的文档已经完成且文档符合标准模板要求,项目经理指定评审组长,发放工作产品及参考资料,必要时确定评审重点(参见评审指南)工作产品评审计划将报告抄送相关人员项目经理组织解决发现的缺陷(或问题)作者根据评审结果进行必要的改进验证人验证最终修正评审通过的产品作为基线的要得到 SCCB 批准评审通知表个人评审表评审报告标准实用文案大全2.3
19、.5 SQA质量保证软件项目启 动指定 SQAE制定质量保证计划并评审通过进行审核发现不符合项计划完成?NoYes制定质量审核计划详细的审核时间安排至少在正式审核前 2天发给项目经理或技术经理、SQA 经理审核、得到项目或技术经理认可询问相关人员,对项目组的过程执行情况进行审核检查文档和其他一切相关的证据,验证项目组的活动总结审核情况将报告初稿与项目经理及有关人员进行讨论,落实问题负责人;形成正式报告后发送给高级管理者、SQA 经理、项目经理、项目成员等相关人员项目质量保证情况总结SQA 计划SQA 审核计划CheckListSQA 审核报告SQA 差异报告标准实用文案大全2.4 SDLC 生
20、命周期选择当前比较成熟稳定的 SDLC是: WaterFall RUP XP其中:RUP 和 XP是迭代式开发过程,风险是可控的。 RUP的优点是过程清晰、文档齐全,但是过于庞杂,比较适合大规模的团队; XP的优点是过程简洁、推崇简单,但是不注重文档,难于交接,适合小规模团队。对于中等规模的团队来说,应该基于 RUP和 XP,进行裁剪,找到适合的 SDLC: SDLC的核心是:迭代式和 TDD 从全局看: Use-Case Driven用例驱动 基于 Architecture 迭代和递增的 从微观看: TDD测试驱动 ReFactor重构 Pair结对编程标准实用文案大全2.5 Develop
21、ment Process 开发过程需求分析概要设计详细设计编码 单元测试 集成测试集成测试计划系统测试计划系统测试验收测试形成文档发布维护SRSHLDCODEDD策划软件配置管理软件质量管理 评审管理2.5.1 Development Phase 开发阶段 需求分析阶段 需求收集 需求总结 总体设计阶段 总体架构 部署模型 概要设计阶段 模块划分 数据库设计 详细设计阶段 具体实现 编码阶段 测试用例 Coding 单元测试 测试阶段 测试用例标准实用文案大全 测试 修正 发布阶段 安装测试 安装系统 维护2.5.2 Phase Product 阶段制品 需求阶段 SRS:需求规格说明书 总体
22、设计阶段 总体设计说明书 概要设计阶段 HLD:概要设计说明书 DB:数据库设计 DFD:数据流图 UI:用户界面 详细设计阶段 DD:详细设计说明书 编码阶段 Test Case:测试用例 Coding:源代码 UT Test Result:单元测试报告 测试阶段 Test Task:测试任务书 Test Case:测试用例 Test Result:测试报告 Test Approvals:测试总结 发布阶段 发布申请书标准实用文案大全2.6 Role Duty 角色职责 角色 责任为软件项目提供足够的资源.保证 SQA小组的独立性.解决 SQA检查时发现的问题.审批对外的承诺。定期审查 SC
23、M、SQA、项目计划和跟踪的相关活动。研发经理【研发团队】规定系统需求;将系统需求分配给硬件、软件和其他成分;规定硬件、软件和其他成分的界面;监控设计和开发以保证他们符合其规格说明;代表公司下达任务书。SA团队 负责网络工程计划的制定及实施;负责对客户的技术支持与培训;负责工程服务部内部人员素质与技术培训负责系统集成工程标识、测试、验收及质量保证;负责硬件、网络和系统软件产品的最后交付;负责组织自产软件储运、防护、交付和安装;负责工程项目的配置管理研究制定测试规范和方案;参加实施测试和质量保证过程;对系统测试中发现的缺陷进行验证;QA负责组织软件项目任务书、开发计划、里程碑等管理评审;负责公司
24、的配置管理;负责软件和硬件整个项目的协调、管理项目经理进行需求分析,并进行文档的编写组织技术评审等活动组织制定项目开发计划(SDP)、风险管理计划等计划配合与协调 SQA和 SCM小组的活动.管理项目组,执行 SQA方针和过程以及 SDP.监督和跟踪 SDP、项目估算SA 负责硬件工程的实施;负责系统的上线;负责系统的维护;标准实用文案大全2.7 Constraints 限制 SCCB 授权建立软件基线和标识配置项/单元;审查和审定对软件基线的更改;审定由软件基线库制造的产品的生成。SCM 协助软件项目经理制定SCM计划、维护SCM 计划;制定并维护项目标识规范;按时归档配置项;标识并管理置于
25、配置管理过程之下的软件工作产品集合;进行软件项目的软件基线生成、管理和备份;软件配置状态的统计和审计,并向项目组、软件项目经理、高级管理者汇报有关活动情况;将基线的变更情况通知受影响的组和个人;保存并管理各项评审记录、与项目相关的技术文档、标准和规程。SQC 依据测试计划模板制定测试计划.执行测试计划进行测试并记录测试发现的缺陷提供测试报告.SQA 主要是策划软件质量保证活动、检验软件产品或活动对可用的标准、需求和规则的遵守程度、组织处理项目内部不能解决的不一致问题;定期报告检查情况,发现偏差组织制定纠正、预防措施并监督更正;参与制定 SQA计划,实施 SQA活动,并向 SQA经理、软件项目经
26、理项目组、高级管理者汇报有关的情况。DBA 负责 DB的创建和维护;为 DE提供一个稳定的环境;DE 按软件开发计划进行开发,并记录相关数据;遵守公司质量管理体系的要求.Deployer 根据发布申请,提取代码,发布系统和 SA、DBA 一起配置环境重构和重建系统标准实用文案大全3 Specific Requirements 详细描述本部分按照角色划分详细描述开发过程。3.1 Precondition 前提3.1.1 SCM配置库 目录结构 开发库:开发工作区文档和代码 项目文档 项目启动 项目策划 项目计划 项目报告 开发文档 需求 设计 测试 代码 代码目录 参考资料 客户资料等等 基线库
27、:评审通过后的文档 文档同开发库 测试库:测试代码和测试发布包 文档 计划 用例 测试报告 代码 版本 1 版本 2 参考资料 产品库:测试通过后的文档和代码 项目交付制品 项目总结 验收报告标准实用文案大全 。 项目产品 版本 1 版本 2 权限 测试库: 测试人员可以读写 其它人员只能读,不能增加、修改和删除 基线库:只能增加,不能删除和修改 产品库:只能增加,不能删除和修改 开发库:3.1.2 Test Environment 测试环境 测试需要一个独立的环境 DB独立 FTP等资源独立 Pass9等外部系统独立 最好是一个单独的局域网环境,完全和开发分开 开发是 172.18.0.0环
28、境 测试是 192.168.0.0环境 每次测试,应当是一个完整的测试过程 安装系统 DB Web AppServer Client 其它 配置系统 DB配置 AppServer配置 系统初始化 清除所有历史数据 执行初始化脚本,插入初始数据 测试系统3.2 Development Control Process 开发控制流程标准实用文案大全3.2.1 项目启动和策划阶段本阶段的关键是定义项目、估算工作量和制定详细计划。一个软件项目的正式启动从软件项目任务书的下达开始。任务书中写明项目的基本信息及相关责任人和详细分工,规定项目必须提交的产品清单。任务书由研发经理或者项目负责人起草,研发经理批准
29、后下达给相关负责人。项目任务书必须为打印纸质文档,由相关人员签字确认后,入配置管理库归档。软件项目任务书主要作用是明确项目人员职责以及各组之间的协调确认。估算工作量,从确认需求后开始。由项目经理指定评估人员,先按照头脑风暴法估计各个子系统或者模块的难易程度,然后按照 Delphi法估算各个部分的工作量。项目经理和 PMO成员,根据估算的工作量,制定项目计划。SQA和 SCM分别制定各自的计划。SCM需要确定资源库的目录结构和权限结构。项目经理召集 PMO、SQA、SCM 评审及审核项目计划、SQA 计划、SQA 审核计划、SCM 计划和测试计划。对于发布后的一般性程序修改,不需要下达软件项目任
30、务书。对于关系重大,需要各组人员协调工作的重大修改,项目负责人可以以任务书的形式明确职责、协调关系。测试负责人评估测试资源【人员及机器】,并决定测试人员是否介入项目的需求分析和设计阶段。3.2.2 需求分析、设计、编码阶段本阶段的关键是评审和修订控制,关键评审需要需求、设计、编码、测试、项目管理、用户等的参与。需求阶段,需求分析人员收集需求,根据 SRS模版,作出需求规格说明书。设计阶段,设计人员根据总体设计、概要设计、数据库设计和详细设计,作出设计文档。编码阶段,编码人员根据详细设计,设计单元测试用例,编写代码,进行单元测试。关键评审:SRS 评审,设计评审,代码走查标准实用文案大全3.2.
31、3 提交测试阶段项目启动后,项目经理填写测试任务通知单,将测试任务下达给测试组。概要设计评审完成后,由各子系统或者模块的负责人测算完成时间,在确定完成时间后(正式开始编码前)将测试任务通知单提交给项目测试负责人,项目测试负责人审核通过在通知单上签字后返回给子项目负责人。开发及单元测试完成后,由开发人员将测试内容提交配置管理员入测试库后,将测试任务通知单提交给发布人员申请测试发布。发布人员将测试库中本次测试的内容发布到测试机后,在测试任务通知单上签字后,提交给测试人员开始测试。测试完成后,测试人员在任务单上填写测试意见后,交测试负责人确认后,返还给开发人员。如测试没有通过,开发人员修改测试内容,
32、进入下一个测试流程。如通过测试,开发人员将测试任务通知单提交给项目负责人,由项目负责人、SCCB 签字确认后,提交配置管理员将测试内容入基线库。过程关键:发布实施人员确保发布到测试机上的源程序在配置管理库中得到了有效的标识。3.2.4 生产发布、终测程序通过测试入库以后,根据需要,由项目的负责人负责填写发布申请单。发布申请单由项目测试负责人、配置管理员、SCCB、客户代表、研发经理签字确认后,由项目负责人提交给实施发布人员。发布人员拿到签完字的发布申请后,才能从基线库中提取程序向生产机上发布。如以上发布确认人员没有全部签字同意发布,必须由项目经理签字同意后发布。程序发布到生产机上以后,进入终测
33、【UAT】流程。测试人员和用户代表要对生产机上的程序进行最后测试,确保生产机上的系统符合需求。项目负责人负责同用户协调,项目负责人、测试人员和用户共同编写测试用例。项目负责人将终测意见书提交三方签字,根据签字意见决定修订系统或者提交正式发布。终测出现的问题修改按照基线变更流程进行。实施人员只有拿到有三方签字的终测意见书后才能将系统正式公开发布。系统正式发布三天之后一周之内,由实施人员负责到用户处取得有用户主要负责人签字的系统运行报告,项目负责人负责监督执行。根据系统运行报告做相应的处理。过程关键:发布到生产机上的程序都在基线库中得到了有效的标识。标准实用文案大全3.2.5 发布后问题反馈修改过
34、程系统发布之后,用户反馈的意见要形成问题清单或者变更申请单,记录需要修改的地方,提交给项目负责人。项目负责人负责判断改动是否会影响需求或者设计,负责将任务分配给相关人员进行修改。修改完成后,提交测试直至发布。这个阶段的最重要的是保证所做的修改(文档、代码)都在配置管理库的基线库中得到体现。即基线库中的文档和代码要进行同步更新,关键是发布人员严格根据发布申请单进行控制,并确保发布的代码都是从基线库中取出的。没有经过流程直接要求发布的,发布人员必须予以拒绝。标准实用文案大全3.3 TSP 团队软件过程3.3.1 会议组织 会议前,确定会议主持人和记录员 向参与会议人员发送会议资料 参与会议人员阅读会议资料 确定会议主题、日期时间和地点 注意:留出阅读资料的时间 确定会议议程 准备会议用品【如投影仪等】 重要会议,需要签到 会议开始前,申明会议纪律 发言时间限制 发言顺序 除主持人外,不得打断别人 记录员记录会议纪要 会议后,发送会议总结3.3.2 沟通问题 原则 目标明确 明确反馈 反复沟通 请求答复 当有疑问时,发出请求 明确求助对象,指定第一对象和辅助对象 第一对象接收到请求后,不能及时答复的应当转发给自己认为合适的答复人,并告知求助人 求助方式【高低】:当面,电话,邮件 公告3.3.3 代码走查 项目负责人指定代码走查对象 相互走查 循环走查 代码走查发现的问题