软件开发模型有哪些,政府信息化项目常用哪种模型,为什么?

  • 瀑布模型:瀑布模型将软件生命周期分为八个阶段,包括问题定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。并规定了他们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。
  • 瀑布模型的主要问题:

l  各个阶段划分完全固定,阶段之间产生大量文档,极大增加工作量。

l  用户只有等到整个线性过程的末期才能见到开发成果,从而增加开发风险。

l  早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重后果。

  • 增量模型:在增量模型中,软件被作为一系列增量构件来设计、实现、集成和测试。每一个构件由多种相互作用模块所形成的提供特定功能的代码片段构成。增量模型各个阶段交付满足客户需求的一个子集的可运行产品。在使用增量模型时,第一个增量实现基本需求的核心产品,交付用户使用后,经过评价形成下一个增量的开发计划,包括对核心产品的修改和一些新功能的发布,这个过程在每个增量发布后不断重复,直到产生最终的完善产品。
  • 增量模型的主要问题:

l  各个构件逐步并入已有软件体系结构中,所加入构件必须不破坏已构造好的系统部分,需要软件具备开放式的体系结构。

l  软件开发过程中,需求变化不可避免,该模型容易退化成边做边改,对整个软件过程失去整体控制性。

  • 螺旋模型:采用一种周期性的方法来进行系统开发,在每个项目阶段使用瀑布模型法,每一个周期都包括需求定义、风险分析、工程实现和评审四个阶段。螺旋模型强调风险分析。
  • 优点:

l  设计灵活,可以在项目各个阶段进行变更。

l  以小分段构建大型系统,使成本计算简单容易。

l  客户始终参与每个阶段,保证项目不偏离方向。

  • 缺点:

l  建设周期长,软件技术发展比较快,经常出现软件开发完毕后,与当前技术水平差距大,无法满足当前需求。

  • 螺旋模型与增量模型的区别:

l  螺旋模型事先定义大部分需求,开发过程中计划性强;增量模型事先定义少部分需求。

l  螺旋模型在开发周期内采用简化瀑布模型或快速模型,而增量模型是先做总体需求分析和设计,再在编码和测试中逐个增量开发。

l  螺旋模型每次迭代都提交一个完整软件版本,而增量开发每次在上次增量基础上提交新的一部分软件。

l  增量模型通过避免使用未成熟技术和经常的用户反馈等方法减少风险;螺旋模型中直接增加了风险分析,评价所选方案,识别和消除风险。

  • 如何选择生命周期模型:

l  在前期需求明确的情况下尽量采用瀑布模型或改进型的瀑布模型。

l  在用户无信息系统使用经验,需求分析人员技能不足情况下一定要借助原型。

l  在不确定性因素很多,很多东西前面无法计划情况下尽量采用增量迭代和螺旋模型。

l  在需求不稳定情况下尽量采用增量迭代模型。

l  在资金和成本无法一次到位情况下可以采用增量模型,软件产品分多个版本进行发布。

l  对于完全多个独立功能开发可以在需求阶段就分功能并行,但每个功能内都应该遵循瀑布模型。

l  对于全新系统的开发必须在总体设计完成后再开始增量或并行。

l  对于编码人员经验较少情况下建议不要采用敏捷或迭代等生命周期模型。

l  增量、迭代和原型可以综合使用,但每一次增量或迭代都必须有明确的交付和出口准则。

时间: 2024-10-12 03:33:27

软件开发模型有哪些,政府信息化项目常用哪种模型,为什么?的相关文章

软件工程--常用软件开发模型比较分析

正如任何事物一样,软件也有其孕育.诞生.成长.成熟和衰亡的生存过程,一般称其为"软件生命周期".软件生命周期一般分为6个阶段,即制定计划.需求分析.设计.编码.测试.运行和维护.软件开发的各个阶段之间的关系不可能是顺序且线性的,而应该是带有反馈的迭代过程.在软件工程中,这个复杂的过程用软件开发模型来描述和表示. 软件开发模型是跨越整个软件生存周期的系统开发.运行和维护所实施的全部工作和任务的结构框架,它给出了软件开发活动各阶段之间的关系.目前,常见的软件开发模型大致可分为如下3种类型.

三种项目风险管理手段,你常用哪种

风险管理手段,虽然有三种,但是根据实际情况,或许你常用的风险管理手段也就是一种.因为很多时候,相似的项目工程,遇到的风险有很多一部分类似.还有一个原因就是,人们习惯于应用自己熟悉的手段来处理问题.因为这样子更省事,风险也更小.实际情况是不是这样呢?这个很难一概而论.但是,每一个风险管理手段都有其使用的条件.那一种项目风险管理手段更适合您的项目,要根据条件而定.下面三种项目风险管理手段,你常用哪种?选择其他手段,是否更合适呢?带着问题,看看下文吧. 当前的项目风险处理手段主要包括风险控制.风险自留

主攻ASP.NET.4.5.1 MVC5.0之重生:政府行政网站常用友情链接跳转javascript[干货分享]

<!-----------------------------------> <script language="JavaScript" type="text/JavaScript"> <!-- function MM_jumpMenu(targ, selObj, restore) { //v3.0 window.open(selObj.options[selObj.selectedIndex].value); if (restore)

软件评测时笔记_软件开发模型学习20161021

软件开发模型 为了指导软件的开发,可以用不同的方式将软件生命周期中的所有开发活动组织起来,从而形成了不同的软件开发模型.常见的开发模型有瀑布模型(Waterfall Model).快速原型模型(Rapid Prototype Model).演化模型(Evolutionary Model).增量模型(Incremental Model).螺旋模型(Spiral Model)和喷泉模型(Water Fountain Model)等. 1.瀑布模型 瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划.

软件开发模型对比

软件开发模型(Software Development Model)是指软件开发全部过程.活动和任务的结构框架.软件开发包括需求.设计.编码和测试等阶段,有时也包括维护阶段.软件开发模型能清晰.直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础 下面对瀑布模型 增量模型 快速原型模型 螺旋模型 喷泉模型做简要分析. 1.瀑布模型 瀑布模型是经典的软件开发模型,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈

软件工程之软件开发模型类型

软件工程之软件开发模型类型 1.边做边改模型 2.瀑布模型 3.演化模型 4.增量模型 5.螺旋模型 6.喷泉模型 7.敏捷模型-SCRUM 各种模型的优点和缺点 瀑布模型 文档驱动 系统可能不满足客户的需求 快速原型模型 关注满足客户需求 可能导致系统设计差.效率低,难于维护 增量模型 开发早期反馈及时,易于维护 需要开放式体系结构,可能会设计差.效率低 螺旋模型 风险驱动 风险分析人员需要有经验且经过充分训练 1边做边改模型(Build-and-Fix Model) 国内许多软件公司都是使用

Android项目---常用动画

在项目中经常会有闪屏的效果 在这里主要是通过定时器,将已经设定好的效果展现出来 /* * 2.5秒以后开始执行Runnable的run方法 */ new Handler().postDelayed(new Runnable() { @Override public void run() { // TODO Auto-generated method stub Intent intent = new Intent(FlashActivity.this, HomeActivity.class); s

集团信息化之路 记一次申报信息化项目的历程

最近一个月一直在忙着申报信息化项目的事情,经过这段时间的紧张奋战终于把这个稿弄出来,昨天都装订完毕报送出去. 以往报这样的信息化项目,都是我们信息部门在做,也就是一两个人写,要写上好长时间,都是信息化方面的内容还好,轻车熟路有些材料可以借鉴.今年这次要报的项目是智能制造的项目,跟国家的发展方向很贴合,有很多的内容都是生产方面的,所以说写起来就不那么轻松了. 先是找生产部门要些设备及工控方面的资料,其实他们这方面现成的文字材料也很少,有些工控截图和一些他们以往的项目的文字稿但不太相关.又和专家专门

(未完结)软件开发模型比较

软件开发模型比较 软件开发模型是跨越整体软件生命周期的系统开发,测试.运维的全部工作和任务的结构框架,他给出了软件开发各个阶段之间的关系. http://blog.chinaunix.net/uid-11572501-id-2868606.html 瀑布模型:         常见开发模型有: 瀑布模型. 快速原型模型.增量模型.螺旋模型等,这里主要介绍瀑布模型:瀑布模型是一种自上而下对的模型. 瀑布模型将软件生命周期划分为制定计划.需求分析.软件设计.程序编写.软件测试和运维等六个基本活动.