关于软件生命周期模型的几个问题

栏目: 编程工具 · 发布时间: 5年前

内容简介:软件生命周期模型是软件工程的重要标志和核心内容。软件生命周期模型用的好不好,直接影响到组织的软件工程实施效果。但在实际使用软件生命周期模型过程当中,总会遇到这样或那样的问题。诸如:

软件生命周期模型是软件工程的重要标志和核心内容。软件生命周期模型用的好不好,直接影响到组织的软件工程实施效果。

但在实际使用软件生命周期模型过程当中,总会遇到这样或那样的问题。

诸如:

生存周期模型中各阶段要素描述不全

软件生命周期模型适用范围未能覆盖组织所有项目类型

定义的生命周期模型中未考虑软件交付和软件维护活动,未覆盖全生命周期

部分软件生命周期模型的的适用情况不明确

PS以上问题来自GJB5000评价发现的问题。

如果对这些问题进行分类,可能有定义、选择和剪裁等3类问题。

  • 定义问题

在有关生命周期模型定义的问题中比较重要的是定义的生命周期模型未能覆盖组织的实际情况,组织通过简单地使用瀑布模型或者基于瀑布模型的裁剪就覆盖所有软件项目,而这样一来,对于某些项目来说,就只能使项目的成本增加、项目进度可控性下降,项目管理代价太高……

有些组织已经意识到这个问题,但是苦于缺少制订生命周期模型的经验,无从定义适合自己的开发模型。

这一点可以学习下现有的各类模型的定义以及Humphey著的《软件过程管理》一书中关于过程定义的章节内容。现有的开发模型除了瀑布模型之外,还有快速原型开发模型、增量模型、迭代模型、螺旋模型、敏捷模型、RUP模型等;过程定义的内容可以帮助对模型内的活动作进一步定义。

  • 选择问题

软件生命周期模型的选择指南是面向项目组使用的,有了它,项目才能正确地选择适合本项目的生命周期模型,以追求软件管理效益的最大化。选择指南要能覆盖项目的特点,包括项目类型、软件关键等级、软件规模等。

部分已有的软件生命周期模型的建议的选择指南如下:

模型 建议的选择指南
快速原型模型 已有产品或产品的原型,只需客户化的工程项目;简单而熟悉的行业或领域;有快速原型开发工具;进行产品移植或升级
迭代模型 在项目开发早期需求可能有所变化;分析设计人员对应用领域很熟悉;高风险项目;用户可不同程度地参与整个项目的开发过程;使用面向对象的语言或UML语言;使用CASE工具,如Rose;具有高素质的项目管理者和软件研发团队
增量模型 在整个项目开发过程中,需求都可能发生变化,客户接受分阶段交付;分析设计人员对应用领域不熟悉,难以一步到位;中等或高风险项目(工期过紧且可分阶段提交的系统或目标、 环境不熟悉);用户可参与到整个软件开发过程中;使用面向对象语言或第4代语言;软件公司自己有较好的类库、构件库
瀑布模型 在开发时间内需求没有或很少变化;分析设计人员对应用领域很熟悉;低风险项目(对目标、环境很熟悉);用户使用环境很稳定;用户除提出需求以外,很少参与开发工作
  • 裁剪问题

软件生命周期模型裁剪的主要问题是过裁剪。比如,本来定义的模型是瀑布模型,包括系统需求分析、需求分析、设计、单元测试、集成测试、配置项测试、验收交付这几个阶段,如果裁剪掉单元测试阶段,那么它还是你定义的瀑布模型吗?

关于软件生命周期模型定义、选择和裁剪的这些问题,很大一部分原因是由于没有正确认识项目的实际需要。比如,项目需求是逐步明确的,但用户又需要短时间内交付可用版本,就应该考虑类迭代或增量模型;用户要求尽快提供软件以帮助其明确需求或者验证系统方案,就应该考虑类快速原型开发模型。

理解了项目的实际需要,就可以参照已有的软件生命周期模型,定义适合项目的类似的衍生模型。

这正是:

生命周期问题多,不解需要惹的祸

工程原理不忘记,衍生模型定义得

作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。


以上所述就是小编给大家介绍的《关于软件生命周期模型的几个问题》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Linux内核完全剖析

Linux内核完全剖析

赵炯 / 机械工业出版社 / 2006-1 / 79.00元

本书对早期Linux操作系统内核全部代友文件进行了详细的剖析,旨在让读者在尽量短的时间内对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux系统打下坚实的基础。虽然选择的版本较低,但该内核已能够正常编译运行,并且其中已包括了Linux工作原理的精髓。书中首先以Linux源代码版本的变迁为主线,简要介绍了Lin-ux系统的发展历史,同时着重说明了各个内核版本之间的主要区别和改进方......一起来看看 《Linux内核完全剖析》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具