软件开发常用的几种模型

    软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。 软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境。

瀑布模型

    

    瀑布模型又叫软件生存周期模型,瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采 瀑布模型,用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,所以如果项目经常变化,不适合使用瀑布模型开发。

瀑布模型的优点

1为项目开发提供了按阶段划分的检查点;

2当前一阶段完成后,只需要去关注后续阶段;

3可在迭代模型中应用瀑布模型。

瀑布模型的缺点

1项目各个阶段之间很少有反馈;

2只有在项目生命周期的后期才能看到结果,与用户期待不同;

3产生很多文档,增加了工作量;

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

原型模型

    原型模型通过向用户提供原型获取用户的反馈,使开发出的软件能够真正反映用户的需求。同时,原型模型采用逐步求精的方法完善原型,使得原型能够“快速”开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈作出快速的响应。

原型模型的特点  

(1)开发人员和用户在“原型”上达成一致。这样一来,可以减少设计中的错误和开发中的风险,也减少了对用户培训的时间,而提高了系统的实用、正确性以及用户的满意程度。   

(2)缩短了开发周期,加快了工程进度

(3)降低成本。   

原型模型的缺点

    由原型图可以看出,在开发的过程中有可能返回顶部重新开发。  

螺旋模型

    它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,适合于大型复杂的系统。螺旋模型采用一种周期性的方法来进行系统开发,这会导致开发出众多的中间版本。该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,
    螺旋模型基本做法是在“瀑布模型”的每一个开发阶段前引入一个非常严格的风险识别、风险分析和风险控制,它把软件项目分解成一个个小项目。每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。在实践中,螺旋法技术和流程变得更为简单。在某个方案中如果某些风险不能排除,该方案立即终止,否则启动下一个开发步骤。由于风险分析占很大部分,所以如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。螺旋模型的项目适用:对于新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。

    下表是螺旋法能够解决的各种问题:

  

问题解决方案
用户需求不够充分允许并鼓励用户反馈信息
沟通不明在项目早期就消除严重的曲解
刚性的体系开发首先关注重要的业务和问题
主观臆断通过测试和质量保证,作出客观的评估
潜在的不一致在项目早期就发现不一致问题
糟糕的测试和质量保证从第一次迭代就开始测试
采用瀑布法开发在早期就找出并关注风险

每轮循环包含如下六个步骤:

  1. 确定目标,可选项,以及强制条件。

  2. 识别并化解风险。

  3. 评估可选项。

  4. 开发并测试当前阶段。

  5. 规划下一阶段。

  6. 确定进入下一阶段的方法步骤。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
常用几种软件工程开发模型包括瀑布模型、迭代模型、增量模型和敏捷模型。 1. 瀑布模型:瀑布模型是一种线性顺序的开发模型,它将软件开发过程划分为需求分析、设计、开发、测试和部署等阶段,并且每个阶段都有严格的前后依赖关系。这种模型适用于需求较为稳定、项目较小、风险可控的情况。 2. 迭代模型:迭代模型软件开发过程分成若干个迭代周期,每个迭代周期包括需求分析、设计、开发和测试等阶段。每个迭代周期都可以产生一个可执行的软件产品,可以根据用户反馈不断迭代和改进。这种模型适用于需求变化频繁、项目规模较大的情况。 3. 增量模型:增量模型软件开发过程划分为多个增量,每个增量都是完整的软件系统的一部分,并且每个增量都可以作为一个可交付的产品。在每个增量中,可以根据用户需求进行功能增加或修改。这种模型适用于需求变化频繁、项目规模较大的情况。 4. 敏捷模型:敏捷模型强调迭代、交互和适应性,通过团队合作和持续交付来满足用户需求。敏捷开发方法包括Scrum、XP等,注重快速响应需求变化、持续集成和测试、迭代开发等。这种模型适用于需求变化频繁、项目规模较小的情况,以及对灵活性和快速交付有要求的项目。 这些模型各有特点,选择适合的模型需要根据项目需求、规模、时间和资源等因素进行综合考虑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值