zoukankan      html  css  js  c++  java
  • 软考难点—软件开发模型(借鉴)

    借鉴《http://wiki.mbalib.com/wiki/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E6%A8%A1%E5%9E%8B

    一、瀑布模型

     定义:瀑布模型即生存周期模型,其核心思想是按工序将问题化简、将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。

    结构:瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

    特点:在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果影响,实施完成所需的工作内容。

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

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

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

    二、增量模型

     定义:又称演化模型。增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。

    特点:当使用增量模型时,第一个增量往往是核心的产品,即第一个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,知道产生了最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。

     

    优点:在增量模型中,软件被作为一系列的增量构建来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。

    整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。

     三、螺旋模型

    定义:1988年,Barry Boehm正是发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。

    迭代方式:螺旋模型沿着螺线进行若干迭代。

    1、制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件。

    2、风险分析:分析评估所选方案,考虑如何识别和消除风险。

    3、实施工程:实施软件开发和验证。

    4、客户评估:评价开发工作,提出修正建议,制定下一步计划。

    优点:螺旋模型夸大风险阐发,使得开发职员以及用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具备高风险的系统。

    缺点:1、采用该模型需要具备相当丰富的风险评估经验以及专门知识,在风险较大的项目开发中,如果没有货及时标识风险,势必造成重大损失。

    2、过多的迭代回数会增长开发成本,延迟提交时间。

    四、喷泉模型

    定义:喷泉模型是一种以用户需求为动力,以对象为驱动的模型,首先要用于描述面向对象的如阿健开发历程。该模型认为软件开发历程自下而上周期的各阶段是彼此重叠以及屡次反复的,就像水喷上去又可以落下来,近似一个喷泉。

    特点:各开发阶段没有特定的次序要求,并且可以交互进行,可以再某个开发阶段中随时增补其他不论什么开发阶段中的遗漏。喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,而且在项目的整个生存期中还可以嵌入子生存期。

                                                   

    优点:是可以提高软件项目开发效率,节省开发时间,顺应于面向对象的软件开发历程。

    缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发历程中需要大量的开发职员,因此失败于项目的办理。此外这种模型要求严格的办理文档,使得审查核定的困难程度加大,尤其是面临可能随时插手各类信息、需求与资料的情况。

    五、原型模型——样品模型

    原型模式的主要思想:先借用已有系统作为原型模型,通过样品不断改进,使得最后的产品就是用户所需要的。

    原型模式通过向用户提供原型获取用户的反馈,使开发出的软件能够真正的反映用户的需求。同时,原型模式采用逐步求精的方法完善原型,使得原型能够快速开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈做出快速的响应。相对瀑布模型而言,原型模式更符合人们开发软件的习惯,是目前较为流行的一种实用软件生存期模型。

    特点:

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

    2、缩短了开发周期,加快了工程进度。

    3、降低成本。

    缺点:当告诉用户,还必须重新生产该产品时,用户是很难接受的。这往往给工程继续开展带来不利因素。开发者为了使一个原型快速运行起来,往往在实现过程中采用这种手段。不易利用原型系统作为最终产品。采用原型模式开发系统,用户和开发者必须达成一致:原型被建造仅仅是用户来定义需求,之后便部分或全部抛弃,最终的软件是要充分考虑了质量和可维护性等方面之后才会被开发。

    几种模式的对比:

    模型优点缺点
    瀑布模型 文档驱动 系统可能不满足客户的需求
    快速原型模型 关注满足客户需求 可能导致系统设计差、效率低,难于维护
    增量模型 开发早期反馈及时,易于维护 需要开放式体系结构,可能会设计差、效率低
    螺旋模型 风险驱动 风险分析人员需要有经验且经过充分训练
  • 相关阅读:
    使用vim + cscope/ctags
    python类库32[序列化和反序列化之pickle]
    Perforce2012新特征=20个用户免费+云
    Linux进程的uid和euid
    perl安装模块到自己的home ( install perl module without root)
    Python分布式+云计算
    Linux命令xargs+cut
    python实例32[简单的HttpServer]
    Python转载[编码规范]
    Linux命令lsof
  • 原文地址:https://www.cnblogs.com/jyh317/p/3082680.html
Copyright © 2011-2022 走看看