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