根据现有单位进行软件管理的经验,详细整理了企业中软件开发的过程和阶段,以及相应管理规范。 . 软件项目管理概述 软件项目管理是软件工程和项目管理的交叉学科,软件项目管理的概念涵盖了管理软件产品开发所必须的知识、技术及工具。根据美国项目管理协会PMI对项目管理的定义可以将软件项目管理定义为:在软件项目活动中运用一系列知识、技能、工具和技术,以满足软件需求方的整体要求。 软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展。 软件生存周期包括可行性分析与项目开发计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动,所有这些活动都必须进行管理,在每个阶段都存在着权限角色控制、文档管理、版本控制、管理工具等,软件项目管理贯穿于软件生命的演化过程之中。 . 软件项目管理过程 为保证软件项目获得成功,必须对软件开发项目的工作范围、要完成的任务、需要的资源、需要的工作量、进度的安排、可能遇到的风险等做到心中有数。软件项目的管理工作开始于技术工作开始之前,在软件从概念到实现的过程中持续进行,最后终止于软件开发工作结束。 根据公司的实际情况,结合软件工程及软件过程标准等,特制定我公司软件项目管理流程如下: 软件项目管理规范流程图 注:带书名号《》的为项目开发过程中需提交的文档。 项目管理的过程分为如下几个步骤: (1) 启动软件项目 启动软件项目是指必须明确项目的目标和范围、考虑可能的解决方案以及技术和管理上的要求等,这些信息是软件项目运行和管理的基础。 (2) 制定项目计划 项目计划在项目开始的时候制定,并随着项目的进展不断发展,项目计划为管理者提供了根据计划定期评审和跟踪项目进展的基础。计划的制定以下面的活动为依据: 估算项目所需要的工作量 估算项目所需要的资源 根据工作量制定进度计划,继而进行资源分配 做出配置管理计划 (3) 跟踪及控制项目计划 在软件项目进行过程中,严格遵守项目计划,对于一些不可避免的变更,要进行适当的控制和调整,但要确保计划的完整性和一致性。 (4) 评审项目计划 对项目计划的完成程序进行评审,并对项目的执行情况进行评价。 (5) 编写管理文档 项目管理人员根据软件合同确定软件项目是否完成。项目一旦完成,则检查项目完成的结果和中间记录文档,并把所有的结果记录下来形成文档而保存。 . 软件项目管理内容 .1. 需求阶段管理 需求分析是软件生命周期中相当重要的一个阶段,是软件设计的基础,也是用户和软件工程人员之间的桥梁。简单地说,软件需求就是确定系统需要做什么,严格意义上,软件需求是系统或软件必须达到的目标与能力。 目标 需求管理是一种获取、组织并记录软件需求的系统化方案,同时也是一个使客户与项目开发组对不断变更的软件需求达成并保持一致的过程。在需求管理中,软件工程组的工作是采取适当的措施来保证分配的需求,即要将分配的需求文档化,控制需求的变化,负责项目实施过程中需求的实现情况。 需求管理的目的是在客户和处理客户需求的软件项目组之间建立对客户需求的共同理解。需求管理的目标有两个: 使软件需求受控,并建立供软件工程和管理使用的需求基线。 使软件计划、产品和活动与软件需求保持一致。 在需求管理过程中,为实现第一个目标,必须控制需求基线的变动,按照变更控制的标准和规范的过程进行需求变更控制和版本控制;为实现第二个目标,必须就变更和软件项目各小组达成共识,对软件项目计划做出调整,其中包括人员的安排、用户的沟通、成本的调整、进度的调整等。 需求管理是一个对系统需求变更了解和控制的过程,它贯穿于整个软件项目过程,在软件项目进行的过程中,无论正处于哪个阶段,一旦有需求错误出现或任何有关需求的变更出现,都需要需求管理活动来解决,提交《需求变更控制报告》。 原则 为进行有效的需求管理,一般要遵循如下五条原则: 需求一定要分类管理 需求必须分优先级 需求必须文档化 需求一旦变化,就必须对需求变更的影响进行评估 需求管理必须与需求工程的其他活动紧密整合 主要工作 需求阶段分为系统需求和系统分析两个阶段。 系统需求阶段的主要工作是: 调研用户需求及用户环境 论证项目可行性 制定项目初步计划 系统分析阶段的主要工作是: 确定系统运行环境 建立系统逻辑模型 确定系统功能及性能要求 编写需求规格说明、测试计划 确认项目开发计划 完成文档 需求规格说明书、项目开发计划、测试计划 .2. 设计阶段管理 主要工作 软件的设计阶段可分为概要设计和详细设计两个阶段。 概要设计的主要工作: 建立系统总体结构,划分功能模块 定义各功能模块接口 数据库设计(如果需要) 详细设计的主要工作: 设计各模块具体实现算法 确定模块间详细接口 完成文档 概要设计完成文档 概要设计说明书 数据库设计说明书(如果有) 详细设计完成文档: 详细设计说明书 .3. 开发阶段管理 主要工作 编写程序源代码 进行模块测试和调试 编写测试方案 编写测试用例 编写用户手册 完成文档 系统源程序清单 测试用例 测试方案 .4. 测试阶段管理 主要工作 执行测试 测试整个软件系统(健壮性测试) 完善用户手册 编写开发总结报 完成文档 测试报告 用户手册 开发工作总结 .5. 维护阶段管理 主要工作 为纠正错误,完善应用而进行修改 对修改进行配置管理 编写故障报告和修改报告 修订用户手册 完成文档 故障报告 修改报告 .6. 工具管理 开发工具管理 Visual Studio 2005/2008开发环境 VSS版本管理 测试工具管理 缺陷管理工具(暂定bugfree) Loadrunner8.1性能测试工具 .7. 软件项目估算与进度管理 .7.1. 软件项目估算 软件项目估算包括工作量估算和成本估算两个方面。软件估算作为软件项目管理的一项重要内容,是确保软件项目成功的关键因素。估算是指通过预测构造软件项目所需要的工作量的过程。初步的估算用于确定软件项目的可行性,详细的估算用于指导项目计划的制定。 3.7.1.1. 软件规模 对软件项目进行估算遇到的第一个问题就是软件规模,即软件的程序量。软件规模是软件工作量的主要影响因素。软件项目的设计有一个分层结构,这一分层结构就对应着工作分解结构(WBS,Work Breakdown Structure),它将软件过程和软件产品结构联系起来。下图是一个典型的WBS结构: 有了工作分解结构之后,必须定义度量标准用以对软件规模进行估计。常用的软件规模度量标准有两种:代码行LOC(Lines Of Code)和功能点FP(Function Points)。 代码行 代码行LOC是常用的源代码程序长度的度量标准,指源代码的总行数。源代码中除了可执行语句外,还有帮助理解的注释语句。 功能点 功能点度量是在需求分析阶段基于系统功能的一种规模估计方法,该方法通过已经初始应用需求来确定各种输入、输出、查询、外部文件和内部文件的数目,从而确定功能点数量。 .7.1.2. 成本估算 成本估算是对完成软件项目所需费用的估计和计划,是软件项目计划中的一个重要组成部分。 3.7.2. 进度安排 在确定了项目资源(总成本、人员、时间等),把其分配到各个项目开发阶段中,即确定项目的进度。进度的合理安排是如期完成软件项目的重要保证,也是合理分配资源的重要依据,建议进度安排使用Gantt图(甘特图)。 项目整体进度安排的过程如下: 1) 根据项目总体进度目标,编制人员计划。 2) 将各阶段所需要的资源和可以取得的资源进行比较,确定各阶段的初步进度,然后确定整个项目的初步进度。 3) 对初步进度计划进行评审,确保该计划满足要求,否则就重复上面的步骤。 进度安排的详细程度取决于相应工作分解结构的详细程度,而工作分解结构又取决于项目当前所处阶段与历史经验,进度安排计划随着项目的进展而动态调整,逐渐趋于更加详细准确。 在软件项目进行过程中,要及时更新项目进度,以使管理者及时了解项目进展情况。
信息发布:广州名易软件有限公司 http://www.myidp.net
|