软件项目管理总体流程设计与分析



                  

     

软件项目管理总体流程设计与分析


引言

长期以来,软件项目高失败率的状况一直困扰着人们,研究表明,软件项目失败的原因主要有两个:一是应用项目的复杂性;二是缺乏合格的软件项目管理人才。实践证明缺乏有效的项目管理是导致软件项目失控的直接原因。软件开发的风险之所以大,是由于软件过程能力低,其中最关键的问题在于软件开发组织不能很好地管理其软件过程,从而使一些好的开发方法和技术不能起到预期的作用。

流程管理作为现代企业管理的先进思想和有效工具,随着市场环境与组织模式的变化,在以计算机网络为基础的现代社会信息化背景下越发显示出其威力和效用。流程管理不仅是一种管理技术,更体现了现代管理的思想。流程管理的重点是:理清和管理好所有主、支流程间的关系,使他们相互协调发挥应有的作用。流程管理增加了部门的透明度,管理的对象不是“部门”和“部门员工”的概念,而是以工序流程为管理对象,注重流程中每一个过程和效率以及和上下游工序的关系,管理重点在于整体流程的完整性和顺畅性。

运用流程管理方法和技术进行软件项目管理,可以有效地改变软件过程管理混乱的局面。首先对软件项目开发过程进行有效的、规范化的定义;其次,在软件项目开发过程中,所有的活动过程均按照流程所规定的活动的逻辑关系、活动的实现方式来执行,这样可以使得所有的活动有序和可控;第三,通过明确运作流程,使项目组人员迅速融入项目和开发过程中;第四,关注每个过程的“结果”,使软件项目的所有工作产品均能得到有效的保存,保证了软件产品完整性。

流程的概念及在软件项目管理中的作用

流程是由活动组成的。基本活动是由个人或团体来完成的,它不需要进行其他的基本活动的转化。流程的各个活动之间有着特定的流向,它包含着明确的起始活动与终止活动,因此是一个动态的概念。从结构上来看,流程有四个基本的构成因素:活动、活动的逻辑关系、活动的实现方式和活动的承担者。流程与“一系列的活动或事件”、“结果”等概念密切相关。流程管理不仅是一种管理技术,更体现了现代管理的思想,原有的以控制、塔式组织为基础的职能行政管理已经不能完全满足于现代企业发展和市场竞争的需要,管理的发展沿着分工理论运行了上百年后,现在又重新回归到整合与系统。

软件项目生命周期的一系列的开发过程是各种各样的流程活动。软件项目的计划编制、系统分析、概要设计、详细设计、程序编码、测试与维护等活动过程都是一种流程活动。制定软件项目管理流程,重点考虑以下几点:

1)制定的流程能引导项目逐步走向成功;

2)制定的流程能适用软件开发过程;

3)制定的流程能指导项目开发活动,有利于对项目开发活动的管理;

4)制定的流程能以直观的流程图表示,能使项目组成员清楚的知道软件开发与管理的过程和相互间的关系;

5)流程中的起始活动条件、终止活动条件明确、规范,便于控制;

6)流程中的工作产品定义明确、可度量,评价标准和方法具体、可操作。

软件项目管理总体流程设计

在软件项目开发管理过程中,不仅要努力实现项目的范围、时间、成本和质量等目标,还必须协调整个项目过程,以满足项目参与者及其他利益相关者的需要和期望;随着软件规模和所涉及的领域不断地扩大,软件项目的管理越来越困难。纵观所有失败的软件项目,基本原因是不能管理其软件过程,在无纪律的、混乱的项目状态下,组织不可能从较好的方法和工具中获益。严谨的软件过程控制与管理不仅可以在每个阶段回顾和纠正项目的偏差,识别软件项目的风险甚至果断中止项目,而且可以将人才流动所带来的不利影响减少到最小。要进行有效的过程控制,必须明确软件项目管理流程。

软件项目管理总体流程设计为项目搜寻、立项、售前、合同生成和合同执行等5个主要阶段,分别以P1、P2、P3、P4、P5表示;同时设计了立项完成、合同签定、功能定义、软件开发、项目验收等5个里程碑,分别以TM1、TM2、TM3、TM4、TM5表示,如图1所示。在这些流程中,合同执行流程是软件项目管理的核心,其主要过程有:产品定义、软件开发、测试执行、内部验收、项目实施与验收、项目维护。

图1 软件项目管理总体流程

软件项目管理总体流程分析

4.1项目搜寻

项目搜寻是项目立项的基础,项目搜寻阶段的主要任务包括市场信息收集,用户需求跟踪,对潜在的项目进行分析和筛选。

4.2项目立项

立项阶段的主要任务是确认立项的理由,提出立项建议,提供合适的资金和资源,使立项建议成为正式项目。

4.3 项目售前

售前阶段从项目立项开始到项目合同的签定结束,主要工作有:制定与客户的交流计划,详细了解客户的背景资料,了解客户启动项目的缘由、目的和期望,编制项目方案建议书,准备合同蓝本。

4.4合同生成

合同生成阶段的主要工作有:项目方案的评估与确定,技术合同、商务合同的商定、评估与签署。

4.5合同执行

合同执行是软件项目管理流程的重点,可分为软件开发、测试执行;内部验收、项目验收、系统维护等五个基本工作过程。

4.5.1软件开发

软件开发阶段分为:需求调研、系统分析、系统设计、编码、单元测试等过程。主要从三个方面进行管理:

1) 制定项目计划。软件项目计划是一个用来协调所有其他计划,以指导项目执行和控制的可操作文件。它体现了对客户需求的理解,是开展项目活动的基础,也是软件项目跟踪与监控的依据。

2) 确定开发过程。根据软件项目和项目组的实际情况,建立起一个稳定、可控的软件开发过程模型,并按照该过程来进行软件开发。

3) 加强过程控制。过程控制主要包括过程管理、变更控制和配置管理。

4.5.2测试与执行

项目测试的目的是检查系统是否符合项目合同与任务书规定的要求。项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试、性能—效率测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等。测试过程在模拟运行环境中进行。

4.5.3内部验收

项目完成集成测试和系统测试后进行项目内部验收,主要有三个步骤:1)文档准备。项目经理提交内部验收计划、项目开发总结报告、产品发布清单;财务主管提交项目财务预算报告。2)内部验收测试。内部验收测试的测试内容与方法虽然与系统测试基本相同,但应站在用户验收的角度进行,因为它是试运行的基础,通过这一步,为用户验收作充分的准备。3)内部评审。对提交的所有文档及测试结果进行内部评审,完成项目开发总结报告。

4.5.4项目试运行与验收

试运行与用户验收阶段的主要任务是,使所有的工作产品得到用户的确认。主要工作有:1) 验收前的准备。项目经理负责检查产品的完整性,包括文档、介质和中间产品等,以确保现场实施的成功;负责应用软件的现场安装调试,完成安装调试总结报告;负责制定用户验收计划,并得到客户的确认。2) 用户进行验收测试和系统试运行,进行文档和系统的移交。3) 用户确认。项目经理负责与客户协调,协助用户进行项目验收,形成用户验收报告。

4.5.5项目维护

软件系统的维护分为两大类:一类是纠错性维护,由于前期的测试不可能暴露软件系统中所有潜在的和隐含的错误,诊断和改正这些错误的过程为纠错性维护。另一类是完善性维护,在软件正常使用过程中,用户还会不断地提出新的需求,为了满足用户新的需求而增加软件功能的活动称为完善性维护。如果需求变更很大,那完善性维护将转变为软件新版本的开发。系统维护的宗旨就是提高客户对软件产品的满意度。确保系统的正常运行是系统维护的根本目的。 

4.6 软件项目管理的里程碑

项目的考核与评审是软件项目管理流程控制的基础,我们在整个流程中设定五个基线,即确定五个里程碑,它们分别是TM1:立项完成;TM2:合同签订; TM3:产品功能定义完成;TM4:软件开发完成;TM5:验收通过。如图1所示。各阶段的主要的进入条件和相应的工作结果是里程碑是否达到的重要标志。

结束语

本文设计的软件项目管理总体流程及相关技术已成功运用在软件项目的研发和管理中。通过将流程管理应用于软件项目管理中,以设定软件项目总体流程为主线,确定每个阶段的主要流程和里程碑,并采用评价指标体系和一系列的模板和表格进行软件项目开发过程的控制和管理,使软件项目的成功率显著提高。

实践证明,针对企业和项目的实际情况,确定软件项目运作流程,定义软件工作产品,明确各阶段的进入条件和退出条件,进行有效的流程控制与管理,大大的提高了软件开发的效率和项目的成功率。

 

"产品名称 "密级 " " " " "产品版本 "共 XX页 " "Rev.00 " " 软件项目设计方案 "拟制人 "xx "日期: "xx " ": " " " " "评审人 "xxx "日期: "xx " ": " " " " "批准人 "xx "日期: "xx " ": " " " " 修订记录 "日期 "版本 "修改章节 "修改描述 "作者 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 目录 1 引言 4 1.1 编写目的 4 1.2 背景 4 1.3 参考资料 4 1.4 术语定义及说明 4 2 设计概述 4 2.1 任务和目标 4 3 系统详细需求分析 5 3.1 详细需求分析 5 3.2 详细系统运行环境及限制条件分析接口需求分析 5 4 总体方案确认 5 4.1 系统总体结构确认 5 4.2 系统详细界面划分 6 5 系统详细设计 6 5.1 系统结构设计及子系统划分 6 5.2 系统功能模块详细设计 6 5.3 系统界面详细设计 6 6 数据库系统设计 7 6.1 设计要求 7 6.2 信息模型设计 7 6.3 数据库设计 7 7 信息编码设计 8 7.1 代码结构设计 8 7.2 代码编制 8 XXXX设计方案说明书 引言 1 编写目的 说明编写详细设计方案的主要目的。 说明书编制的目的是说明一个软件系统各个层次中的每个程序(每个模块或子程序) 和数据库系统的设计考虑,为程序员编码提供依据。 如果一个软件系统比较简单,层次很少,本文件可以不单独编写,和概要设计说明书 中不重复部分合并编写。 方案重点是模块的执行流程和数据库系统详细设计的描述。 2 背景 应包含以下几个方面的内容: A. 待开发软件系统名称; B. 该系统基本概念, 如该系统的类型、从属地位等; C. 开发项目组名称。 3 参考资料 列出详细设计报告引用的文献或资料,资料的作者、标题、出版单位和出版日期等 信息,必要时说明如何得到这些资料。 4 术语定义及说明 列出本文档中用到的可能会引起混淆的专门术语、定义和缩写词的原文。 设计概述 1 任务和目标 说明详细设计的任务及详细设计所要达到的目标 。 1 需求概述 对所开发软件的概要描述, 包括主要的业务需求、输入、 输出、主要功能、性能等,尤其需要描述系统性能需求。 2 运行环境概述 对本系统所依赖于运行的硬件,包括操作系统、数据库系统、中间件、接口软件、 可能的性能监控与分析等软件环境的描述,及配置要求。 3 条件与限制 详细描述系统所受的内部和外部条件的约束和限制说明。包括业务和技术方面的条 件与限制以及进度、管理等方面的限制。 4 详细设计方法和工具 简要说明详细设计所采用的方法和使用的工具。如HIPO图方法、IDEF(I2DEF)方 法、E-R图,数据流程图、业务流程图、选用的CASE工具等,尽量采用标准规范和辅助 工具。 系统详细需求分析 主要对系统级的需求进行分析。首先应对需求分析提出的企业需求进一步确认,并对 由于情况变化而带来的需求变化进行较为详细的分析。 1 详细需求分析 包括: 详细功能需求分析 详细性能需求分析 详细资源需求分析 详细系统运行环境及限制条件分析 2 详细系统运行环境及限制条件分析接口需求分析 包括: 系统接口需求分析 现有硬、软件资源接口需求分析 引进硬、软件资源接口需求分析 总体方案确认 着重解决系统总体结构确认及界面划分问题。 1 系统总体结构确认 对系统组成、逻辑结构及层次进行确认,对应用系统、支撑系统及各自实现的功能 进行确认,细化集成设计及系统工作流程,特别要注意因软件的引进造成的系统本身结 构和公司其他系统的结构变化。包括: 系统组成、逻辑结构及层次确认 应用系统结构确认 支撑系统结构确认 系统集成确认 系统工作流程确认 2 系统详细界面划分 1 应用系统与支撑系统的详细界面划分 应用系统与支撑系统之间的界面包括系统主服务器与其他服务器的服务范围及访问方 式,网络及数据库对应用系统的支撑方式,全局数据的管理与存取方式等。 2 系统内部详细界面划分 系统各功能之间的界面包括覆盖范围,模块间功能调用涉及到的系统模块及方法, 全局数据格式,系统性能要求等。 系统详细设计 1 系统结构设计及子系统划分 对系统的组成及逻辑结构进行设计前确认。 划分系统功能模块或子系统(如果有或者有必要,特别是大型的软件系统)。 2 系统功能模块详细设计 按结构化设计方法,在系统功能逐层分解的基础上,对系统各功能模块或子系统进行 设计。此为详细设计的主要部分之一。 用层次图描述系统的总体结构、功能分解及各个模块之间的相互调用关系和信息交 互,用IPO图或其他方法描述各模块完成的功能。 以上建议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值