软件工程—软件开发模型

来源:互联网 发布:杭州小知科技 知乎 编辑:程序博客网 时间:2024/05/01 12:42

    【前言】在软件工程视频中看到了很多软件模型,这些模型有什么作用,各个模型有什么优缺点,我们怎样选择合适的模型。

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

   一、瀑布模型

    定义:是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,则返回上一个阶段并进行适当的修改,项目开发进程从一个阶段流动到下一个阶段,所以称为瀑布模型。

    优点:1.为项目提供了按阶段划分的检查点

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

           3.提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。

    缺点:1.各个阶段的划分完全固定,阶段之间产生大两的文档,极大地增加了工作量

          2.由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,增加了开发风险

          3.通过过多的强制完成日期和里程碑来跟踪各个阶段的项目

          4.不适应用户需求的变化

             

   二、螺旋模型

    定义:是一种演化软件开发过程模型,他兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。(适合大型的昂贵的系统级软件应用和需求不明确的情况)

    优点:1.设计上的灵活性可以在项目的各个阶段进行变更

          2.以小的分段来构建大型系统,使成本计算变得简单容易

          3.客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。

          4.随着项目推进,客户始终掌握项目的最新信息,从而他或她能够和管理层有效的交互

          5.客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品

    缺点:很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。

     

   三、快速原型模型

    定义:是在开发真是系统之前,构造一个原型,在该原型的基础上逐渐完成整个系统的开发工作。快速模型的第一步是建造一个快速模型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意额软件作品。

    优点:克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。这种模型适合预先不能确切定义需求的软件系统的开发。

    缺点:1.所选用的开发技术和工具不一定符合主流的发展;

          2.快速建立起来的系统加上连续的修改可能会导致产品质量低下;

          3.使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。

                                                         

 

   四、演化模型

    定义:该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……

即根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本,这个初始的软件通常称之为原型,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。重复这一过程,最终可得到令用户满意的软件产品。

感觉和快速原型差不多,演化模型适合于对软件需求缺乏准确认识的情况。

    优点:1.功能一经开发就能进入测试来完整是否符合产品需求

          2.帮助引出高质量的产品要求

          3.开发中行的经验和教训能反馈应用于本产品的下一个循环过程,大大提高质量和效率

    缺点:1.没有完全弄清楚需求,会给总体设计带来困难及削减产品设计的完整性

          2.如果缺乏严格的过程管理,这个生命周期模型可能退化为原始的无计划的“试—错—改”

   五、喷泉模型

     定义:喷泉模型(fountainmodel)是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。

     优点:提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

     缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

          

    【总结】不同的软件模型适合于不同的情况,根据我们的现有情况来分析需要采用哪种软件开发模型。我们要了解各种模型的优缺点和适合条件,方便快速选择软件开发模型。

 

0 0
原创粉丝点击