Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4100978
  • 博文数量: 626
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 11080
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-23 13:08
文章分类

全部博文(626)

文章存档

2015年(72)

2014年(48)

2013年(506)

分类: 项目管理

2013-09-18 09:39:43

软件项目管理(3)


软件项目全生命周期的阶段划分
软件项目分门别类,不同阶段管理的侧重点有所区别,正确划分软件项目全生命周期过程的各个阶段,是保证整个项目成功的基本条件和基础要素。
1、软件项目分类
软件项目根据其实施主体的不同分为两大类:即自主研发项目和外包项目(也称为合同软件项目)两种。
1)自主研发项目
对于立项的软件项目,采取自主研发和自主维护的方式运行。
立项单位就是项目开发单位,也是实施单位、受益单位。
2)外包软件项目
提出项目立项的单位本身不具备软件开发的能力,项目实施要借助于专业的软件研发机构来完成。
自主研发项目的项目管理难度要小些。
无论是哪种类型的软件项目,都存在着主体(项目应用单位,项目受益者)、客体(项目实施单位,项目承担者)、关系体(项目管理过程中的复杂关系)。
从软件产品的交付成果和市场应用需求来看,无论软件项目采取哪种组织和管理方式,其交付成果不外乎系统软件和应用软件两大类。
2、阶段划分
软件项目的生命周期模型是软件开发全过程中活动及任务的结构框架,通过模型能够清晰、直观的表达软件开发的全过程,明确规定了软件开发过程中要完成的主要活动和任务,是软件项目管理工作的基础。
1)项目立项
有两个方面:项目定义和项目计划。
2)软件系统设计
3)软件系统实现
4)收尾阶段
5)各阶段之间的关系
3、项目定义
项目定义阶段主要考虑项目的立项问题,具体任务是完成问题的定义与项目的可行性分析、研究与论证工作,确定是否立项。
1)问题定义
提出问题并描述问题,确定要思想的软件系统的背景、目标、功能、性能以及预期达到的效果,并进行成本的粗略估计。
2)可行性分析
可行性分析的主要目的是论证项目在时间、资源、资金、效果、实现技术和方法等方面的必要性和可能性。
包括:经济可行性、技术可行性、操作可行性等。
经济可行性:对开发项目进行成本效益分析,评估项目的开发成本,估算项目成本是否会超过项目预期的全部利润。
成本费用包括:购置软硬件及其相关设备的费用、系统开发费用,系统安装、运行、维护费用,人员培训费用等。
技术可行性:根据需求定义实现系统功能、性能等各方面的技术约束条件,从软件技术的角度研究系统实现的可能性。
操作可行性:包括政策、法律等因素。
3)交付成果
在可行性分析阶段,应提出实现系统的各种初步方案,并形成书面报告即可行性分析报告,作为项目立项阶段的交付成果,它是项目能否继续开展研究与开发的重要依据。
4、项目启动
当项目的可行性研究表明项目可行后,就应该立即启动项目。
软件项目启动过程完成的重要标志有:成立项目管理委员会、任命项目经理、组织项目团队、获取项目许可证、签订开发协议、准备好一切软件开发的基础环境等。
5、需求分析
客户需求是软件开发的依据。
软件需求分析是用户对目标软件系统在功能、行为、性能、设计约束等方面理解、认识、定义和期望。
通过对相应问题及系统环境的理解和分析,为问题设计的信息、功能及系统行为建立软件系统模型,实现将用户需求精确化、完全化,最终形成需求规格说明书。
需求分析主要包括三个子阶段的工作:即问题分析、需求描述和需求评审。
1)问题分析
通过对环境及问题的理解、分析和综合,并在用户的帮助下对相互冲突的要求进行折衷,努力清除用户需求的模糊性、二义性。
2)需求描述阶段
以需求模型为基础,考虑到问题的软件可解性,生产需求规格说明和初步的用户手册。
3)需求评审阶段
分析人员要在用户和软件设计人员的配合下对自己生成的需求规格说明和初步的用户手册进行复检,以确保软件需求的全面性、精确性和一致性。
6、系统设计
主要完成系统的总体设计、详细设计、边界设计、信息模型设计、过程设计、功能设计以及软硬件环境的搭建与准备等工作。在勾画出系统总体逻辑框架的同时,要详细划分出注册系统的各个物理元素——程序、文件、数据库、人工过程和文档等,并确定系统功能模块及其之间的相互关系,系统功能模块的划分遵循了模块内的高内聚,模块间低耦合的基本原则。
7、编码实现
编码实现是软件系统开发的重要内容,是系统目标实现的具体过程以及完成软件系统的程序编写工作。
8、系统测试
软件测试是针对软件项目交付成果的正确性、科学性以及达到目标系统的逼近程度进行测试,测试的对象是软件系统或软件产品,测试的目标是为了尽可能早地发现并修改软件中存在的错误。
局部测试与集成测试
单元测试与综合测试
9、系统试运行
10、项目验收
11、项目维护
12、软件项目各阶段之间关系
(1)层次与继承关系
上一个阶段的输出是下一个阶段的输入,下一阶段的成果是对上一阶段成果的丰富、完善、加强和具体化与实现。
(2)沟通与协调关系
良好的沟通是项目成败的关键。
13、软件项目生命周期中里程碑的设定与管理
七个重要的里程碑节点:
1)项目立项完成期
2)项目启动完成期
3)需求分析完成期
4)系统设计完成期
5)软件编码完成期
6)系统试运行完成期
7)项目验收完成期
软件项目里程碑的有效管理和控制是保证整个项目成功的关键活动。
通常的做法是根据软件项目的总工期,设定每个里程碑事件的计划、内容、方案、阶段**付成果等重要因素,并执行阶段性考核和验收,验收结果以表格形式描述和记录,并签字备案。
每个里程碑计划的执行与控制,必须在成本、质量、进度计划、交付成果、风险评估等方面实行严格的管理、审查和考核,及时发现问题并解决问题,决不可等到项目进行不下去时才开始找漏洞。

阅读(705) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~