..软件项目开发和管理规范V1软件开发标准化工作流程1引言1.1编写目的软件项目管理是软件工程和项目管理的交叉学科,软件项目管理的概念涵盖了管理软件产品开发所必须的知识、技术及工具。根据美国项目管理协会PMI对项目管理的定义可以将软件项目管理定义为:在软件项目活动中运用一系列知识、技能、工具和技术,以满足软件需求方的整体要求。软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展。软件生存周期包括可行性分析与项目开发计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动,所有这些活动都必须进行管理,在每个阶段都存在着权限角色控制、文档管理、版本控制、管理工具等,软件项目管理贯穿于软件生命的演化过程之中。..1.2适用范围所有软件项目管理。1.3定义列出本文件中用到的专门术语的定义、外文首字母组词的原词组。2软件项目管理过程2.1概述为保证软件项目获得成功,必须对软件开发项目的工作范围、要完成的任务、需要的资源、需要的工作量、进度的安排、可能遇到的风险等做到心中有数。软件项目的管理工作开始于技术工作开始之前,在软件从概念到实现的过程中持续进行,最后终止于软件开发工作结束。..2.2流程图测试管理工具需求阶段业务需求调研项目可行性分析《项目开发计划》《需求规格说明书》软件项目管理规范流程图设计阶段开发阶段代码编写《数据库设计》开发环境准备项目整体风格demo设计建立系统总体结构任务分配单元测试整合代码代码评审设计文档评审需求文档评审《概要设计》《详细设计》维护阶段运维评审系统实际运行环境《维护报告》《测试报告》(单元测试)集成测试系统测试测试计划编写测试任务分配执行测试《测试用例》测试环境搭建测试评估(通过)管理工具(VSS)项目开发文档管理代码管理测试阶段收集甲方资料《开发总结报告》注:带书名号《》的为项目开发过程中需提交的文档。..2.3项目管理过程2.3.1启动软件项目启动软件项目是指必须明确项目的目标和范围、考虑可能的解决方案以及技术和管理上的要求等,这些信息是软件项目运行和管理的基础。2.3.2制定项目计划项目计划在项目开始的时候制定,并随着项目的进展不断发展,项目计划为管理者提供了根据计划定期评审和跟踪项目进展的基础。计划的制定以下面的活动为依据:估算项目所需要的工作量估算项目所需要的资源根据工作量制定进度计划,继而进行资源分配做出配置管理计划2.3.3跟踪及控制项目计划在软件项目进行过程中,严格遵守项目计划,对于一些不可避免的变更,要进行适当的控制和调整,但要确保计划的完整性和一致性。2.3.4评审项目计划对项目计划的完成程序进行评审,并对项目的执行情况进行评价。..2.3.5编写管理文档项目管理人员根据软件合同确定软件项目是否完成。项目一旦完成,则检查项目完成的结果和中间记录文档,并把所有的结果记录下来形成文档而保存。3软件项目管理内容3.1需求阶段管理需求分析是软件生命周期中相当重要的一个阶段,是软件设计的基础,也是用户和软件工程人员之间的桥梁。简单地说,软件需求就是确定系统需要做什么,严格意义上,软件需求是系统或软件必须达到的目标与能力。目标需求管理是一种获取、组织并记录软件需求的系统化方案,同时也是一个使客户与项目开发组对不断变更的软件需求达成并保持一致的过程。在需求管理中,软件工程组的工作是采取适当的措施来保证分配的需求,即要将分配的需求文档化,控制需求的变化,负责项目实施过程中需求的实现情况。需求管理的目的是在客户和处理客户需求的软件项目组之间建立对客户需求的共同理解。需求管理的目标有两个:使软件需求受控,并建立供软件工程和管理使用的需求基线。使软件计划、产品和活动与软件需求保持一致。在需求管理过程中,为实现第一个目标,必须控制需求基线的变动,按照变更控制的标准和规范的过程进行需求变更控制和版本控制;为实现第..二个目标,必须就变更和软件项目各小组达成共识,对软件项目计划做出调整,其中包括人员的安排、用户的沟通、成本的调整、进度的调整等。需求管理是一个对系统需求变更了解和控制的过程,它贯穿于整个软件项目过程,在软件项目进行的过程中,无论正处于哪个阶段,一旦有需求错误出现或任何有关需求的变更出现,都需要需求管理活动来解决,提交《需求变更控制报告》。原则为进行有效的需求管理,一般要遵循如下五条原则:需求一定要分类管理需求必须分优先级需求必须文档化需求一旦变化,就必须对需求变更的影响进行评估需求管理必须与需求工程的其他活动紧密整合主要工作需求阶段分为系统需求和系统分析两个阶段。系统需求阶段的主要工作是:调研用户需求及用户环境论证项目可行性制定项目初步计划系统分析阶段的主要工作是:确定系统运行环境建立系统逻辑模型..确定系统功能及性能要求编写需求规格说明、测试计划确认项目开发计划完成文档需求规格说明书、项目开发计划、测试计划3.2设计阶段管理主要工作软件的设计阶段可分为概要设计和详细设计两个阶段。概要设计的主要工作:建立系统总体结构,划分功能模块定义各功能模块接口数据库设计(如果需要)详细设计的主要工作:设计各模块具体实现算法确定模块间详细接口完成文档概要设计完成文档概要设计说明书数据库设计说明书(如果有)详细设计完成文档:详细设计说明书..3.3开发阶段管理主要工作编写程序源代码进行模块测试和调试编写测试方案编写测试用例编写用户手册完成文档系统源程序清单测试用例测试方案3.4测试阶段管理主要工作执行测试测试整个软件系统(健壮性测试)完善用户手册编写开发总结报告完成文档测试报告用户手册开发工作总结..3.5维护阶段管理主要工作为纠正错误,完善应用而进行修改对修改进行配置管理编写故障报告和修改报告修订用户手册完成文档故障报告修改报告3.6工具管理列出开发的工具4软件项目估算与进度管理4.1软件项目估算软件项目估算包括工作量估算和成本估算两个方面。软件估算作为软件项目管理的一项重要内容,是确保软件项目成功的关键因素。估算是指通过预测构造软件项目所需要的工作量的过程。初步的估算用于确定软件项目的可行性,详细的估算用于指导项目计划的制定。..4.2软件规模对软件项目进行估算遇到的第一个问题就是软件规模,即软件的程序量。软件规模是软件工作量的主要影响因素。软件项目的设计有一个分层结构,这一分层结构就对应着工作分解结构(WBS,WorkBreakdownStructure),它将软件过程和软件产品结构联系起来。下图是一个典型的WBS结构:有了工作分解结构之后,必须定义度量标准用以对软件规模进行估计。常用的软件规模度量标准有两种:代码行LOC(LinesOfCode)和功能点FP(FunctionPoints)。代码行代码行LOC是常用的源代码程序长度的度量标准,指源代码的总行数。源代码中除了可执行语句外,还有帮助理解的注释语句。功能点功能点度量是在需求分析阶段基于系统功能的一种规模估计方法,该方法通过已经初始应用需求来确定各种输入、输出、查询、外部文件和内部文件的数目,从而确定功能点数量。系统子系统子系统子系统模块模块模块模块模块模块模块模块模块模块..4.3成本估算成本估算是对完成软件项目所需费用的估计和计划,是软件项目计划中的一个重要组成部分。4.4进度安排在确定了项目资源(总成本、人员、时间等),把其分配到各个项目开发阶段中,即确定项目的进度。进度的合理安排是如期完成软件项目的重要保证,也是合理分配资源的重要依据,建议进度安排使用Gantt图(甘特图)。项目整体进度安排的过程如下:1)根据项目总体进度目标,编制人员计划。2)将各阶段所需要的资源和可以取得的资源进行比较,确定各阶段的初步进度,然后确定整个项目的初步进度。3)对初步进度计划进行评审,确保该计划满足要求,否则就重复上面的步骤。进度安排的详细程度取决于相应工作分解结构的详细程度,而工作分解结构又取决于项目当前所处阶段与历史经验,进度安排计划随着项目的进展而动态调整,逐渐趋于更加详细准确。在软件项目进行过程中,要及时更新项目进度,以使管理者及时了解项目进展情况。1.若不给自己设限,则人生中就没有限制你发挥的藩篱。2.若不是心宽似海,哪有人生风平浪静。在纷杂的尘世里,为自己留下一片纯静的心灵空间,不管是潮起潮落,也不管是阴晴圆缺,你都可以免去浮躁,义无反顾,勇往直前,轻松自如地走好人生路上的每一步3.花一些时间,总会看清一些事。用一些事情,总会看清一些人。有时候觉得自己像个神经病。既纠结了自己,又打扰了别人。努力过后,才知道许多事情,坚持坚持,就过来了。4.岁月是无情的,假如你丢给它的是一片空白,它还给你的也是一片空白。岁月是有情的,假如你奉献给她的是一些色彩,它奉献给你的也是一些色彩。你必须努力,当有一天蓦然回首时,你的回忆里才会多一些色彩斑斓,少一些苍白无力。只有你自己才能把岁月描画成一幅难以忘怀的人生画卷。