首页 > 编程知识 正文

软件开发之道软件过程模型分析,软件工程过程模型和开发技术

时间:2023-05-03 23:50:44 阅读:278262 作者:4172

瀑布模型

    瀑布模型也被称为线性顺序模型或软件生存周期模型,是W.Royce于1970年提出。瀑布模型遵循软件生存周期划分,生存周期的各个阶段是按固定顺序连接的,各个阶段的工作自上而下顺序展开,如同瀑布流水,逐级下落,最终得到开发的软件产品。

    理想瀑布模型

    

    带有反馈的瀑布模型


    瀑布模型特征

        1.从上一项活动接收该活动的工作对象,作为输入。

        2.利用这一输入实施该项活动要完成的内容。

        3.给出该项活动的工作结果,作为输出传给下一项活动。

        4.对该项活动实施的工作进行评审。若其工作得到确认,则继续进行下一项活动,否则返回前项甚至           更前项的活动,进行返工。

    瀑布模型最突出的缺点是该模型缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。这些问题的存在会给软件开发带来严重影响,最终可能导致开发出的软件不符合用户需求而夭折。

    瀑布模型中至关重要的一点是只有当一个阶段的文档已经编制好并获得认可才可以进入下一阶段。该模型是文档驱动的,对于非专业用户来说难以阅读和理解,而且导致很多的问题在最后才暴露出来,风险巨大。瀑布模型主要应用于结构化的软件开发。


 快速原型模型

    快速原型模型是快速建立起来的可以在计算机上运行的程序,它完成的功能往往是最终产品能完成的功能的一个子集。


    快速原型优点

         1.有助于满足用户的真实需求

         2.原型系统已经通过与用户的交互得到了验证,据此产生的规格说明文档能够正确地描述用户需              求。

         3.软件产品的开发基本上是按线性顺序进行的。

         4.因为规格说明文档正确的描述了用户的需求,因此,在设计开发过程的后续阶段不会因为发现规            格说明文档的错误而进行较大的返工。

         5.开发人员通过建立原型系统已经学到了许多东西,因此,在设计和编码阶段发生错误的可能性也            比较小,这自然减少了在后续阶段需要改正前面阶段所犯的错误的可能性。

         6.快速原型的突出特点是快速。开发人员应该尽可能快地建立起原型系统,以加速软件开发过程,            节约软件开发成本。原型的用途是获知用户的真正需求,一旦需求确定了,原型就可以抛弃,当            然也可以在原型的基础上进行开发。

    软件开发中的原型是软件的一个早期可运行版本,它反映了最终系统的重要特性。


螺旋模型

    螺旋模型将瀑布和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适用于大型复杂系统。螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。螺旋模型可理解为在每个阶段之前都增加了风险分析过程的快速原型模型。螺旋模型强调四个方面的活动:制定计划、风险分析。实施工程和客户评估。


    螺旋模型

    

    螺旋模型的优点

        1对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重           要目标。

        2.减少了过多测试或测试不足所带来的风险

        3.在螺旋模型中维护只是模型的另一周期,因而在维护和开发之间并没有本质的区别。

    螺旋模型的缺点

    螺旋模型的缺点是,螺旋模型是风险驱动的,因此要求软件开发人员必须具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险,即当项目实际上正在走向灾难时,开发人员可能还以为一切正常。

   

增量模型

    增量模型是一种非整体开发模型,它把软件产品作为一系列的增量构件来设计、实现、集成和测试。开发时分批向用户提交产品,每次提交一个满足用户需求子集的增量构件,直到最后一次得到满足用户全部需求的完整产品为止。根据增量的方式和形式不同,分为基于瀑布模型的渐增模型和基于快速原型模型。

增量模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。该模型能在较短的时间内向用户提交部分功能部件,减小一个全新的软件可能给用户带来的冲击。


    增量模型


    增量模型的优点

     1.能在较短时间内向用户提交可完成一些有用的工作的产品,即从第一个构件交付之日起,用户就能做一些有用的工作。

     2.逐步增加产品的功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给用户组织带来的冲击。

     3.项目失败的风险较低,虽然在某些增量构件中可能遇到一些问题,但其他增量构件将能够成功地交付给客户。

     4.优先级最高的服务首先交付,然后再将其他增量构件逐次集成进来。一个必要的事实是,最重要的系统服务将接受最多的测试。这意味着系统最重要的部分一般不会遭遇失败。

 

   增量构件的划分依赖于系统功能的构成和软件开发人员的经验。每次集成新的构件必须不破坏原有软件系统的结构,为此要求软件系统的体系结构必须具有高度的开放性和可扩展性。

   增量模型和瀑布模型有着本质的区别,瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前必须完成前一阶段工作的所有细节,而增量模型属于非整体开发模型,它推迟某些阶段或所有阶段中的细节,从而能够较早的产生工作软件。


总结

    软件过程模型,瀑布模型、快速原型模型、螺旋模型、增量模型,他们各有特色,分别适用于不同特征的软件项目,但一般都包含定义(计划)、开发和维护3类活动。定义活动主要弄清楚软件”做什么“,开发活动集中解决让软件“怎么做”,维护活动则聚集于软件的”修改“,即”What-How-Change“。瀑布模型主要用来开发需求明确的系统,而快速原型模型通过快速建立软件模型来获取需求,解决的主要是需求不明确问题,螺旋模型集成了瀑布模型和快速原型两者的优点,并加入风险分析。增量模型属于非整体开发,在项目开发周期内,以一定时间间隔增量方式向用户提交工作软件及相应的文档。能在较短时间内向用户提交可完成一些有用的工作的产品,即从第一个构件交付之日起,用户就能做一些有用的工作。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。