手机版

软件生命周期包括几个阶段(软件产品生命周期你知道多少?)

100次浏览     发布时间:2024-08-09 08:15:57     编辑: 软件项目资料库

1 引言

1.1 目的

1)、定义软件产品的生命周期模型,描述一个软件产品从规划到最终消亡的整个过程。

2)、明确产品管理与项目的关系,使产品得到有效的规划和管理。

1.2 适用范围

机构:公司技术相关部。

业务:软件产品的研发及管理。

1.3 名词术语

软件产品生命周期:指软件产品研发全部过程、活动和任务的结构框架。产品的生命周期一般包括四个阶段:引入期、成长期、成熟期和衰退期,在不同的阶段中,市场对产品的反应不同,其销售特点不同,因而产品管理的重点也不相同。

2 产品生命周期模型介绍

2.1 模型定义

企业战略管理的核心就是决定提供什么产品和怎么提供。广义地说,凡是能够为企业带来利润的,都是产品。产品管理主要是对产品生命周期的管理,产品的生命周期一般包括四个阶段:引入期、成长期、成熟期和衰退期,当一个创新的产品经过这四个阶段后,可以通过产品的升级换代进入下一个生命周期。

软件研发的对象一般为未知系统,具有技术难度大,开发风险高、需求不易捕捉等的特点。因此需要针对这些特点定义能够灵活应对风险和变化的过程。一个产品的开发往往会经历若干个版本,每一个版本都会经历相似的过程,如下图所示:

一个产品版本需要经过从产品规划(引入期)、产品开发(成长期)、产品稳定(成熟期)、产品维护(衰退期)四个阶段,其中产品维护阶段根据需要可以持续很长时间,可能延续到下一个版本的某个阶段,甚至通过再生工程使产品长期存在下去。如果产品涉及的技术很复杂,技术面很广,那么在产品研发的初始时期还要加上一个产品预研阶段。

产品技术预研为一个新产品开始之前的活动,一个产品一旦开始研发之后,就沿着产品规划、产品开发、产品稳定、产品维护这四个阶段螺旋式的前进,直到产品的生命结束。

2.2 模型过程说明

产品阶段

活动

说明


产品规划


产品定义

概要性的定义一个产品版本需要实现的内容

技术方案

从技术角度提出实现本版产品所需要的解决方案

产品原型

开发产品的界面外观原型,应该是与产品未来实际外观完全一致

需求描述

详细描述本产品版本的需求


产品开发


架构设计

从宏观角度描述产品的结构特征,划分子系统并描述这些子系统之间的关系。

子系统设计

从微观角度详细描述每个子系统的内部结构

程序编码

按照设计说明书完成代码编写

单元测试

按照设计说明书完成单元测试代码的编写。包括程序员自测,和测试人员的测试。

用户手册

编写用户使用手册和说明文档


产品稳定


集成测试

按照需求规格说明书对整个产品进行全面测试

Alpha 测试

指软件开发公司组织内部人员模拟各类用户对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的用户操作方式。

Beta 测试

经过α测试调整的软件产品称为β版本。紧随其后的β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出改进建议。然后软件开发公司再对β版本进行改错和完善。


产品维护


版本发行

版本正式发布给用户使用

产品培训

对用户进行发布版本的使用培训

安装部署

为用户现场进行软件安装,或者进行应用服务器等部件的部署。

补丁版本

根据需要将本版产品的一些错误修改合并为一个补丁版本


2.3 角色和职责

角色

职责

产品经理

负责协调整个产品的开发,包括规划、开发、稳定、维护的全过程

系统架构师

负责进行架构设计

需求分析师

负责进行需求分析并编制需求规格说明书

程序设计师

负责编写详细设计说明书

程序工程师

负责按照设计说明书进行程序编码

测试工程师

负责进行系统整个研发过程的测试工作


3 产品管理与项目的关系

项目管理与产品管理是紧密相关而又各有侧重点。在企业中,产品管理是主线,而产品生命周期中的具体阶段的工作过程,则可以通过项目实现。产品管理是项目管理的目标,而项目管理是产品管理的实现手段。同时,产品生产工艺特点决定了项目的基本过程,但具体的生产过程组织,只有通过项目管理才能完成。在具体项目中,往往两者会同时存在,特别是在提供服务的项目中,也包含了服务产品的生产过程,项目管理者必须在非常清楚两者各自的管理内容的前提下,将两者有机地结合起来,才能同时满足各方面的要求。

产品管理关注的是软件产品的生命周期,包括从规划、设计、编程、测试、到运营和升级维护等主要阶段,而且随着软件产品的不断升级维护,还会使同一软件产品经历多次这样的生命周期,软件工程在产品的一次生命周期的各个阶段中,提供了一整套的工程化的方法,来指导软件人员的开发工作。因此可以说,软件产品管理是一种围绕产品生命周期的工程化方法,是软件产品的生产工艺。它应用的是软件产品模型。

项目管理是针对一个项目的管理方法,它关注的是项目的生命周期,包括从项目的启动、计划、执行、控制和收尾共五个主要的项目过程。在不同的过程中都涉及到对时间、人员、成本、质量、风险等内容的管理,强调的是项目的绩效,通过有效的项目管理来完成对项目提出的目标和范围要求,这当中也包括交付软件产品。因此,项目管理是关注项目生命周期的管理方法。

产品管理与项目管理是紧密相连的,产品经理与项目经理必须充分沟通,以使项目开发的产品符合公司的产品路线。在多数情况下,产品管理与项目管理的关系是多对多的关系,即一个项目会涉及多个产品,而一个产品可能会在多个项目中被开发,如下图所示:

4 产品模型选择应注意的问题

1)、项目管理必须能够有效地将多个产品组织起来,在达成项目目标的同时,需保证与产品自身发展路线一致。

2)、在处理产品管理与项目管理的两者关系时,容易出现的错误主要有两方面:一是产品的设计缺乏灵活性,不能有效地支持项目中各种个性化的要求;二是项目只关注项目自身的目标,不考虑产品长期发展的要求,结果影响了产品的后续发展。

3)、高层经理应重视项目与产品的集成管理,强调项目与产品的结合,在项目中要考虑产品的全生命周期的成本,不能只考虑项目中的短期局部成本。



附录:《生命周期模型裁剪指南》

1 引言

1.1 目的

指导如何利用《软件生命周期模型定义与选择策略》、《软件产品生命周期模型定义》进行生命周期模型的裁剪,使企业的产品管理能够有效开展,确保项目形成适合项目自身特点的生命周期模型。

1.2 范围

软件项目生命周期及软件产品生命周期模型的裁剪。

2 项目生命周期模型裁剪指南

2.1 准则

☆依照现存的软件项目生命周期模型进行裁剪。

☆依据模型的根本特性进行裁剪,不能打破原有模型的基本特点。

☆被裁剪的项目必须是组织控制范围之内的。

☆不同模型可以合并应用到项目中。

☆裁剪后的模型能够清晰指导项目的进行。

☆项目可以依据模型稳步进行,不影响组织的管理。

☆裁剪过程必须可控。

☆裁剪结果需得到一致的认可。

2.2 方法

为了替你的项目选择最有效的生命周期模型,可以检查你的项目并提出以下问题:

☆在项目开始时,我和用户对需求的理解是否充分?在项目的进行过程中,对需求的理解有可能改变吗?

☆我们对项目架构的理解是否充分?是否在项目的进展过程中有可能对架构进行重大的改变?

☆可靠性需求有多少?

☆需求在项目中为未来版本提前进行多少计划和设计?

☆项目要承受多大风险?

☆是否有被迫事先预定的进度?

☆需要具备在进展过程中进行变更的能力吗?

☆需要在项目的进展过程中提供给用户可视的进展情况吗?

☆需要在项目的进展过程中提供给管理者可视的进展情况吗?

☆需要多少经验和技巧来成功的使用这些生命周期模型。

通过回答以上问题,你可以更好的了解目前的项目,参见《软件生命周期模型定义与选择策略》中的“生命周期模型特性比对表”,确定要选择的软件项目生命周期模型及其裁剪结果。

3 产品生命周期模型裁剪指南

3.1 准则

☆保证裁剪过程的标准性、可控性。

☆保证裁剪后的模型能够满足产品要求。

☆裁剪得到的结果不影响产品的实际研发。

☆裁剪得到的结果不影响项目的实际管理。

☆裁剪过程要求相关人员参与。

☆得到的结果需要一致的承诺。

3.2 方法

参考的裁剪列表:

产品阶段

活动

可否裁剪

裁剪说明

技术预研


承担产品的SE 已经对涉及的技术有充分的了解,具备直接提出技术方案的能力

产品规划

产品定义

×


技术方案

技术方案与上一个版本相比没有变化

产品原型

类库等基本无界面的产品

需求描述

×


产品开发

架构设计

系统架构与上一个版本相比没有变化。或者产品规模很小

子系统设计

×


程序编码

×


单元测试

×


用户手册

×


产品稳定

集成测试

×


Alpha 测试

×


Beta 测试

无合适的外部测试人员志愿参加Beta 测试,并且在Alpha 测试阶段已解决所有发现的缺陷

产品维护

版本发行

×


产品培训

产品功能简单,通过说明文档就可以掌握

安装部署

产品无须安装和部署

补丁版本

没有大量的错误需要发行补丁版本