软件开发规范整体规范_第1页
软件开发规范整体规范_第2页
软件开发规范整体规范_第3页
软件开发规范整体规范_第4页
软件开发规范整体规范_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

..>--.--考试资料.软件开发标准SoftwareDevelopmentSpecificationVersion:Date:2010-06-22PreparedbyDocumentRevisionHistory文档修订记录VERSION版本DATE日期DESCRIPTION内容说明INDIVIDUAL修订人2010-06-22初稿TableofContents目录TOC\o"1-4"\h\z\u1Introduction简介51.1Purpose目标51.2Scope范围61.3Definitions,Acronyms,andAbbreviations.术语,缩略词61.4References引用71.5Overview文档组织72TheOverallDescription概述82.1SoftwareDevelopmentOrganizing开发团队组织构造82.2ProjectBaseProcess工程根本流程92.3CMMBaseProcessCMM根本过程10软件配置管理102.3.2SPP方案筹划12工程追踪15同行评审17质量保证182.4SDLC生命周期选择192.5DevelopmentProcess开发过程202.5.1DevelopmentPhase开发阶段202.5.2PhaseProduct阶段制品21RoleDuty角色职责222.7Constraints限制233SpecificRequirements详细描述243.1Precondition前提24配置库24TestEnvironment测试环境25DevelopmentControlProcess开发控制流程25工程启动和筹划阶段26需求分析、设计、编码阶段26提交测试阶段26生产发布、终测27发布后问题反响修改正程273.3TSP团队软件过程29会议组织29沟通问题29代码走查29其它303.4PSP个人软件过程30工作原则30日常工作303.4.3DE开发工程师31配置管理员323.4.5DBA数据库管理员323.4.6Deployer发布人员334ToolSpecification工具标准33通用工具33方案33需求分析34设计34编码34测试345Documents文档35工程管理文档35工程筹划35工程追踪35质量保证35工程终止35开发过程文档35软件配置管理35会议管理36方案跟踪36评审管理36质量管理36测试过程36问题解决过程36其他376Appendi*附录37易于理解的代码37输出37Introduction简介一个成熟稳定的组织或者团队,能够减少风险,经常地成功地达成目标。成功的含义是:按时、预算内【即符合本钱要求】、符合质量要求。换言之,成熟稳定的团队,能够防止以下问题:组织方面出现问题对需求缺乏管理缺乏方案和控制估算错误同时,还要在以下几个方面做得比较出色:人员调度与工作安排工作量估计预算管理责权分配与平衡执行与监控沟通本文档是软件开发标准,力求使团队打下一个良好的根底,以便逐步成长为成熟稳定的团队。团队需要一个逐步标准、标准的开发过程,在这个过程中,团队得到锻炼,成员能力得到提高,风险得到控制。主要内容是:定义软件开发的流程;定义软件开发的文档格式;定义涉及的角色;定义涉及的信息;描述开发流程;Purpose目标本文档的目标是:统一软件开发团队的流程、文档;促进团队成员的沟通,减少误解;促使程序员书写易维护的代码;提高代码编写效率;使每个成员成为一个高效的程序员;Scope范围本文档,包含:工程管理的流程;工程筹划工程追踪配置管理质量保证同行评审涉及文档;工程方案mpp需求规格说明书SRSDelphi估算工程状态报告配置库样式CheckList评审表变更申请表开发工具的标准;数据库设计工具功能设计工具IDE配置工具Definitions,Acronyms,andAbbreviations.术语,缩略词SPP工程筹划SoftwareProjectPlanningSPTO 工程追踪SoftwareProjectTracking&OversightSCM 配置管理SoftwareConfigurationManagementSQA 质量保证SoftwareQualityAssurancePR 同行评审PeerReviewBaseLine 基线SCCB 软件配置控制委员会SoftwareConfigurationControlBoardCR 变更请求ChangeRequestSDLC 软件开发生命周期SoftwareDevelopmentLifeCycleRUP 统一开发过程RationalUnifiedProcess*P 极限【敏捷方法】e*tremeProgrammingTDD 测试驱动TestDrivenDevelopmentReferences引用"CMM2""CMM3"Overview文档组织本文档主要分为四大局部:概述;描述了团队组织开发过程的高层视图;TSP和PSP;按照团队和个人描述流程标准;工具标准;描述了开发工具的详细标准;文档;涉及的文档格式;TheOverallDescription概述本局部是开发团队开发过程的高层描述。它描述了开发过程标准的背景,用来和所有涉及各方就根本过程达成共识。SoftwareDevelopmentOrganizing开发团队组织构造说明:表示公司的行政部门表示公司的逻辑部门实线表示参加产品实现的组织和人员〔不表示所属关系〕虚线表示工作的汇报关系,如SQAE向SQA经理汇报。ProjectBaseProcess工程根本流程识别需求识别需求提出解决方案执行工程完毕工程投入力量可行性分析报告需求建议书合同工程目标工程定义制定方案方案实施工程终止时间根本流程说明:工程启动:本阶段主要是进展可行性分析,定义工程,识别需求;制定方案:本阶段主要是方案筹划,估算工作量,制定具体的可执行的方案;方案实施:本阶段主要是实施方案,完成方案中的各项任务,报告方案状态;工程终止:方案执行完毕,总结工程;CMMBaseProcessCMM根本过程SCMSCMSQAWorkAreaBaseLineSPPSPTOPRChange&PR根本过程说明:SCM:软件配置管理,所有活动的根底,一切制品必须放入配置库;SPP:软件工程筹划,估算工作量,制定详细方案【工程的制定方案阶段】;SPTO:工程追踪,报告工程状态,评估并更新方案【工程的方案实施阶段】;PR:同行评审,进入基线的前提条件,降低风险,提高质量的有效手段;SQA:质量保证,预防风险的有效手段;SCM软件配置管理配置管理主要解决:版本变更确定配置项和基线确定配置项和基线确定记录和报告配置项状态策略定义配置项定义访问权限访问权限确定配置管理工具确定SCCB成员确定配置库及其目录构造工程启动确定配置管理人员Vss、SVN或VSTS一般由:工程经理、技术经理、客户经理、质量保证人员、配置管理等工程的核心成员人员组成。在配置项〔基线〕生成和基线变更时配置库构造权限表基线表确定基线变更过程定义备份与病毒策略定义备份与病毒策略按方案执行配置管理活动SCM方案制定和评审记录和报告基线的状态在配置项〔基线〕生成和基线变更时至少在工程的每个里程碑完毕时进展备份1建立配置库2对工程组指导和培训3对配置项的日常管理4参加评审会议5定期备份和病毒防护6实施发布7进展归档8配置管理方案的维护配置管理情况总结方案完成总结配置项是否完整、基线的变化情况统计、审核发现问题情况统计、改进建议等,记入工程总结报告定义测试和发布归档方式SCM方案配置审核状态报告审核报告SPP方案筹划方案筹划的核心是工作量估算从历史库中识别可用的信息从历史库中识别可用的信息工程启动从公司的数据中识别工程相似的信息,如工程的总结报告和其它的数据或文挡工程需求、合同以及"软件工程任务书"等相关要求选择工程生命周期识别工程的特点了解各个生命周期的特点确定适合工程生命周期模型从对用户需求的理解是否充分;人员介入工程的方式;产品的交付方式;工程规模大小和风险上下;对工程系统架构的理解是否充分等方面考虑RUP*PRUP*P依据定义的过程,识别必须完成的任务和工作产品分解时考虑的活动事项要详尽,不要漏掉:教育或培训的需要;参与评审文档;参与工程会议;确定、记录和显示各种与质量相关和与过程相关的数据;传播时间文档制品如:方案、SRS等规模估算制定工作产品的评审方案估算表估算结果评审方案识别工程需要使用的工具和设施识别工程需要使用的工具和设施风险评估识别与其他组之间的关系确定工程的跟踪情况确定工程的组织构造和职责识别工程需要进展的培训制定时间进度表在的停工和节假日时间不安排工作;不考虑加班时间;考虑测试及评审中发现问题的返工需要的时间;考虑客户需求的稳定情况;考虑各项活动的交接和信息的传递时间;识别出的风险对活动的影响;在安排工作时应考虑整个工程的效率因素,在正常估算的工期内增加20~40%的余量,分配到工程的所有活动中――特别是关键路径中的活动中工具指南风险表协同工作方案工程跟踪方案组织和角色定义培训方案时间进度表编写工程开发方案书及其相关方案书编写工程开发方案书及其相关方案书方案评审方案管理和控制SQA方案SCM方案SDP方案Test方案风险方案SPTO工程追踪软件工程开发方案软件工程开发方案日常进度跟踪定期报告工程状态周例会里程碑总结需要调整方案修改和评审方案纠正和预防当出现:规模、工作量、进度和关键计算机资源超出规定的阈值;工程总的原始方案不再可能到达;方案和实际的任务安排明显不相符,起不到指导作用;对客户的承诺不能实现时并满足以下条件时:导致方案变化的原因是知道的,并清楚方案怎么样改变;提议的工程进度方案变动是可到达的;提议的工程进度方案已经得到了必须完成他的人员的许诺在周例会上向工程组的成员传达客户方面的信息、交流工程近期进展情况、未完成的工作、工作中存在的问题、好的经历以及部署下两周的工作,以使得方案和实际的开发工作相符合总结到目前为止工程开发总体状况、工程活动进展情况〔一般通过甘特图来表达〕、活动项进展〔应特别关注未完成活动项〕、本阶段好的经历和典型问题、过程改进建议、客户方面新要求,工程评审、培训执行情况、工程风险等其它方面存在的问题,分析在进度、工作量和缺陷等方面收集的数据并根据情况制定相应的措施和调整时间进度表,保持工程正常、安康开发个人工作周报时间进度表数据收集其它组跟踪周报告分析和预测里程碑报告工程总结工程总结报告PR同行评审评审准备评审准备制定本次评审方案评审跟踪正式评审评审人员进展预审,在指定的时间内给出预审意见,反响给评审组长和作者。评审组长将缺陷〔或问题〕及工作量汇总填入"评审报告"。要评审的文档已经完成且文档符合标准模板要求,工程经理指定评审组长,发放工作产品及参考资料,必要时确定评审重点〔参见评审指南〕工作产品评审方案将报告抄送相关人员工程经理组织解决发现的缺陷〔或问题〕作者根据评审结果进展必要的改进验证人验证最终修正评审通过的产品作为基线的要得到SCCB批准评审通知表个人评审表评审报告SQA质量保证软件工程启软件工程启动指定SQAE制定质量保证方案并评审通过进展审核发现不符合项方案完成?NoYes制定质量审核方案详细的审核时间安排至少在正式审核前2天发给工程经理或技术经理、SQA经理审核、得到工程或技术经理认可询问相关人员,对工程组的过程执行情况进展审核检查文档和其他一切相关的证据,验证工程组的活动总结审核情况将报告初稿与工程经理及有关人员进展讨论,落实问题负责人;形成正式报告后发送给高级管理者、SQA经理、工程经理、工程成员等相关人员工程质量保证情况总结SQA方案SQA审核方案CheckListSQA审核报告SQA差异报告SDLC生命周期选择当前比较成熟稳定的SDLC是:WaterFallRUP*P其中:RUP和*P是迭代式开发过程,风险是可控的。RUP的优点是过程清晰、文档齐全,但是过于庞杂,比较适合大规模的团队;*P的优点是过程简洁、推崇简单,但是不注重文档,难于交接,适合小规模团队。对于中等规模的团队来说,应该基于RUP和*P,进展裁剪,找到适合的SDLC:SDLC的核心是:迭代式和TDD从全局看:Use-CaseDriven用例驱动基于Architecture迭代和递增的从微观看:TDD测试驱动ReFactor重构Pair结对编程DevelopmentProcess开发过程需求需求分析概要设计详细设计编码单元测试集成测试集成测试方案系统测试方案系统测试验收测试形成文档发布维护SRSHLDCODEDD策划软件配置管理软件质量管理评审管理DevelopmentPhase开发阶段需求分析阶段需求收集需求总结总体设计阶段总体架构部署模型概要设计阶段模块划分数据库设计详细设计阶段具体实现编码阶段测试用例Coding单元测试测试阶段测试用例测试修正发布阶段安装测试安装系统维护PhaseProduct阶段制品需求阶段SRS:需求规格说明书总体设计阶段总体设计说明书概要设计阶段HLD:概要设计说明书DB:数据库设计DFD:数据流图UI:用户界面详细设计阶段DD:详细设计说明书编码阶段TestCase:测试用例Coding:源代码UTTestResult:单元测试报告测试阶段TestTask:测试任务书TestCase:测试用例TestResult:测试报告TestApprovals:测试总结发布阶段发布申请书RoleDuty角色职责角色责任研发经理【研发团队】为软件工程提供足够的资源.保证SQA小组的独立性.解决SQA检查时发现的问题.审批对外的承诺。定期审查SCM、SQA、工程方案和跟踪的相关活动。规定系统需求;将系统需求分配给硬件、软件和其他成分;规定硬件、软件和其他成分的界面;监控设计和开发以保证他们符合其规格说明;代表公司下达任务书。SA团队负责网络工程方案的制定及实施;负责对客户的技术支持与培训;负责工程效劳部内部人员素质与技术培训负责系统集成工程标识、测试、验收及质量保证;负责硬件、网络和系统软件产品的最后交付;负责组织自产软件储运、防护、交付和安装;负责工程工程的配置管理QA研究制定测试标准和方案;参加实施测试和质量保证过程;对系统测试中发现的缺陷进展验证;负责组织软件工程任务书、开发方案、里程碑等管理评审;负责公司的配置管理;工程经理负责软件和硬件整个工程的协调、管理进展需求分析,并进展文档的编写组织技术评审等活动组织制定工程开发方案〔SDP〕、风险管理方案等方案配合与协调SQA和SCM小组的活动.管理工程组,执行SQA方针和过程以及SDP.监视和跟踪SDP、工程估算SA负责硬件工程的实施;负责系统的上线;负责系统的维护;SCCB授权建立软件基线和标识配置项/单元;审查和审定对软件基线的更改;审定由软件基线库制造的产品的生成。SCM协助软件工程经理制定SCM方案、维护SCM方案;制定并维护工程标识标准;按时归档配置项;标识并管理置于配置管理过程之下的软件工作产品集合;进展软件工程的软件基线生成、管理和备份;软件配置状态的统计和审计,并向工程组、软件工程经理、高级管理者汇报有关活动情况;将基线的变更情况通知受影响的组和个人;保存并管理各项评审记录、与工程相关的技术文档、标准和规程。SQC依据测试方案模板制定测试方案.执行测试方案进展测试并记录测试发现的缺陷提供测试报告.SQA主要是筹划软件质量保证活动、检验软件产品或活动对可用的标准、需求和规则的遵守程度、组织处理工程内部不能解决的不一致问题;定期报告检查情况,发现偏差组织制定纠正、预防措施并监视更正;参与制定SQA方案,实施SQA活动,并向SQA经理、软件工程经理工程组、高级管理者汇报有关的情况。DBA负责DB的创立和维护;为DE提供一个稳定的环境;DE按软件开发方案进展开发,并记录相关数据;遵守公司质量管理体系的要求.Deployer根据发布申请,提取代码,发布系统和SA、DBA一起配置环境重构和重建系统Constraints限制SpecificRequirements详细描述本局部按照角色划分详细描述开发过程。Precondition前提SCM配置库目录构造开发库:开发工作区文档和代码工程文档工程启动工程筹划工程方案工程报告开发文档需求设计测试代码代码目录参考资料客户资料等等基线库:评审通过后的文档"文档同开发库"测试库:测试代码和测试发布包文档方案用例测试报告代码版本1版本2参考资料产品库:测试通过后的文档和代码工程交付制品工程总结验收报告。。。工程产品版本1版本2权限测试库:测试人员可以读写其它人员只能读,不能增加、修改和删除基线库:只能增加,不能删除和修改产品库:只能增加,不能删除和修改开发库:TestEnvironment测试环境测试需要一个独立的环境DB独立FTP等资源独立Pass9等外部系统独立最好是一个单独的局域网环境,完全和开发分开每次测试,应当是一个完整的测试过程安装系统DBWebAppServerClient其它配置系统DB配置AppServer配置系统初始化去除所有历史数据执行初始化脚本,插入初始数据测试系统DevelopmentControlProcess开发控制流程工程启动和筹划阶段本阶段的关键是定义工程、估算工作量和制定详细方案。一个软件工程的正式启动从"软件工程任务书"的下达开场。任务书中写明工程的根本信息及相关责任人和详细分工,规定工程必须提交的产品清单。任务书由研发经理或者工程负责人起草,研发经理批准后下达给相关负责人。工程任务书必须为打印纸质文档,由相关人员签字确认后,入配置管理库归档。软件工程任务书主要作用是明确工程人员职责以及各组之间的协调确认。估算工作量,从确认需求后开场。由工程经理指定评估人员,先按照头脑风暴法估计各个子系统或者模块的难易程度,然后按照Delphi法估算各个局部的工作量。工程经理和PMO成员,根据估算的工作量,制定工程方案。SQA和SCM分别制定各自的方案。SCM需要确定资源库的目录构造和权限构造。工程经理召集PMO、SQA、SCM评审及审核工程方案、SQA方案、SQA审核方案、SCM方案和测试方案。对于发布后的一般性程序修改,不需要下达软件工程任务书。对于关系重大,需要各组人员协调工作的重大修改,工程负责人可以以任务书的形式明确职责、协调关系。测试负责人评估测试资源【人员及机器】,并决定测试人员是否介入工程的需求分析和设计阶段。需求分析、设计、编码阶段本阶段的关键是评审和修订控制,关键评审需要需求、设计、编码、测试、工程管理、用户等的参与。需求阶段,需求分析人员收集需求,根据SRS模版,作出需求规格说明书。设计阶段,设计人员根据总体设计、概要设计、数据库设计和详细设计,作出设计文档。编码阶段,编码人员根据详细设计,设计单元测试用例,编写代码,进展单元测试。关键评审:SRS评审,设计评审,代码走查提交测试阶段工程启动后,工程经理填写测试任务通知单,将测试任务下达给测试组。概要设计评审完成后,由各子系统或者模块的负责人测算完成时间,在确定完成时间后〔正式开场编码前〕将测试任务通知单提交给工程测试负责人,工程测试负责人审核通过在通知单上签字后返回给子工程负责人。开发及单元测试完成后,由开发人员将测试内容提交配置管理员入测试库后,将测试任务通知单提交给发布人员申请测试发布。发布人员将测试库中本次测试的内容发布到测试机后,在测试任务通知单上签字后,提交给测试人员开场测试。测试完成后,测试人员在任务单上填写测试意见后,交测试负责人确认后,返还给开发人员。如测试没有通过,开发人员修改测试内容,进入下一个测试流程。如通过测试,开发人员将测试任务通知单提交给工程负责人,由工程负责人、SCCB签字确认后,提交配置管理员将测试内容入基线库。过程关键:发布实施人员确保发布到测试机上的源程序在配置管理库中得到了有效的标识。生产发布、终测程序通过测试入库以后,根据需要,由工程的负责人负责填写发布申请单。发布申请单由工程测试负责人、配置管理员、SCCB、客户代表、研发经理签字确认后,由工程负责人提交给实施发布人员。发布人员拿到签完字的发布申请后,才能从基线库中提取程序向生产机上发布。如以上发布确认人员没有全部签字同意发布,必须由工程经理签字同意后发布。程序发布到生产机上以后,进入终测【UAT】流程。测试人员和用户代表要对生产机上的程序进展最后测试,确保生产机上的系统符合需求。工程负责人负责同用户协调,工程负责人、测试人员和用户共同编写测试用例。工程负责人将"终测意见书"提交三方签字,根据签字意见决定修订系统或者提交正式发布。终测出现的问题修改按照基线变更流程进展。实施人员只有拿到有三方签字的"终测意见书"后才能将系统正式公开发布。系统正式发布三天之后一周之内,由实施人员负责到用户处取得有用户主要负责人签字的"系统运行报告",工程负责人负责监视执行。根据"系统运行报告"做相应的处理。过程关键:发布到生产机上的程序都在基线库中得到了有效的标识。发布后问题反响修改正程系统发布之后,用户反响的意见要形成问题清单或者变更申请单,记录需要修改的地方,提交给工程负责人。工程负责人负责判断改动是否会影响需求或者设计,负责将任务分配给相关人员进展修改。修改完成后,提交测试直至发布。这个阶段的最重要的是保证所做的修改〔文档、代码〕都在配置管理库的基线库中得到表达。即基线库中的文档和代码要进展同步更新,关键是发布人员严格根据发布申请单进展控制,并确保发布的代码都是从基线库中取出的。没有经过流程直接要求发布的,发布人员必须予以拒绝。TSP团队软件过程会议组织会议前,确定会议主持人和记录员向参与会议人员发送会议资料参与会议人员阅读会议资料确定会议主题、日期时间和地点注意:留出阅读资料的时间确定会议议程准备会议用品【如投影仪等】重要会议,需要签到会议开场前,申明会议纪律发言时间限制发言顺序除主持人外,不得打断别人记录员记录会议纪要会议后,发送会议总结沟通问题原则目标明确明确反响反复沟通请求-答复当有疑问时,发出请求明确求助对象,指定第一对象和辅助对象第一对象接收到请求后,不能及时答复的应当转发给自己认为适宜的答复人,并告知求助人求助方式【高-低】:当面,,公告代码走查工程负责人指定代码走查对象相互走查循环走查代码走查发现的问题首先记录告知代码作者更新CheckList其它PSP个人软件过程工作原则方案管理:把你想做的写下来行为管理:按照你写下来的去做报告管理:把做的事情记录下来跟踪管理:出现的问题要设法解决日常工作每日工作每日早晨,规划当日工作;方案必须细化到一个明确的目标方案要有余地,比方会议等方案是可执行的,能够完成的方案是可监控的每日下班,总结当日工作;方案完成情况未能完成原因个人心得:新的发现,新的方法,新的问题会议会议之前,仔细阅读会议资料如有疑问,可以发邮件向会议主持人提出或者在会议上提出会议中,记录会议要点如要参与讨论,请

温馨提示

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

评论

0/150

提交评论