`
wandejun1012
  • 浏览: 2730739 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

进化式 开发模型

    博客分类:
  • CMMI
 
阅读更多

瀑布模型(Waterfall Model)是由W.W.Royce在1970年最初提出的软件开发模型,在瀑布模型中,开发被认为是按照需求分析,设计,实现,测试 (确认), 集成,和维护坚定地顺畅地进行。 瀑布模型(Waterfall Model)最早强调系统开发应有完整之周期,且必须完整的经历周期之每一开发阶段,并系统化的考量分析与设计的技术、时间与资源之投入等,因此瀑布模型又可以称为‘系统发展生命周期’(System Development Life Cycle, SDLC)。由于该模式强调系统开发过程需有完整的规划、分析、设计、测试及文件等管理与控制,因此能有效的确保系统品质,它已经成为业界大多数软件开发的标准(Boehm, 1988)。
瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。

 


迭代式开发也被称作迭代增量式开发或迭代进化式开发,是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代。每一次迭代都包括了需求分析、设计、实现与测试。采用这种方法,开发工作可以在需求被完整地确定之前启动,并在一次迭代中完成系统的一部分功能或业务逻辑的开发工作。再通过客户的反馈来细化需求,并开始新一轮的迭代。
 

 

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

 

 

 


敏捷软件开发又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。
目前列入敏捷方法的有:
软件开发节奏,Software Development Rhythms
敏捷数据库技术,AD/Agile Database Techniques
敏捷建模,AM/Agile Modeling
自适应软件开发,ASD/Adaptive Software Development
水晶方法,Crystal
特性驱动开发,FDD/Feature Driven Development
动态系统开发方法,DSDM/Dynamic Systems Development Method
精益软件开发,Lean Software Development
AUP(Agile Unified Process)
Scrum
XBreed
极限编程,XP Extreme Programming
探索性测试

 

refurl:http://cnn237111.blog.51cto.com/2359144/568514

http://baike.baidu.com/view/4169795.htm#3

http://zh.wikipedia.org/wiki/%E8%BF%AD%E4%BB%A3%E5%BC%8F%E5%BC%80%E5%8F%91

http://zh.wikipedia.org/wiki/%E8%9E%BA%E6%97%8B%E6%A8%A1%E5%9E%8B

 

 

分享到:
评论

相关推荐

    迭代进化式开发引入软件工程课程教学.pdf

    在介绍迭代进化式开发如何引入软件工程课程教学之前,首先需要明确一些核心概念,包括迭代进化式开发(RUP)、统一建模语言(UML)等,并探讨这些概念在软件工程教育中的作用和重要性。 迭代进化式开发(Rational ...

    进化式需求

    ### 进化式需求分析与敏捷方法 #### 引言 在软件开发过程中,随着项目的复杂性和不确定性增加,传统的固定式需求分析方法逐渐暴露出其局限性。为了解决这一问题,敏捷方法学应运而生,其中一个重要组成部分就是...

    河北工业大学软件工程期末复习.doc

    相比之下,进化式开发模型,特别是原型法,通过与用户交互逐步明确需求,适用于中小规模的交互系统或大型系统的局部开发。此外,增量式开发允许系统按功能模块逐步交付,优先满足关键需求,提高了软件的可靠性和可用...

    matlab开发-一种训练单进化算法和元启发式

    在这个特定的MATLAB开发项目中,“YPFZ104 Evolutionary ANFIS Training”可能是指使用进化算法或元启发式来训练Adaptive Network-based Fuzzy Inference System(ANFIS),这是一种融合模糊逻辑和神经网络的模型,...

    软件工程要点串讲.pptx

    进化式开发模型是一种灵活的软件开发模型,它通过开发系统原型和用户反复交互,以明确需求,使系统在不断调整与修改中得以进化成熟。这种模型适合中小规模的交互系统、生命周期较短的系统或大型系统的局部开发。 ...

    适合ChatGPT的水母式软件开发模式-陈斌.pdf

    ### 适合ChatGPT的水母式软件开发模式 #### 概述 在当前快速发展的信息技术领域中,人工智能(AI)技术尤其是以ChatGPT为代表的自然语言处理技术正在深刻地改变着软件开发的方式与流程。《适合ChatGPT的水母式软件...

    基于神经进化的深度学习模型研究综述.pdf

    此外,神经进化和深度学习的融合也为理论研究和应用开发带来了新的挑战和机遇。理论研究者需要关注算法的收敛性、效率和泛化能力,而应用开发者则关注如何将这种方法实际应用于现实世界的问题解决中。未来,随着更多...

    软件工程复习概要及一些概念

    不同的软件过程模型,如瀑布模型、快速原型模型、增量模型、螺旋模型、进化式开发模型、形式化方法模型和组件式开发模型,提供了不同的开发策略。这些模型从不同角度简化了软件过程,帮助我们理解和管理软件开发的...

    软件开发生存周期

    7. 进化开发模型:进化开发模型是一种基于迭代式开发的软件开发模型。该模型将软件开发过程分为多个小的迭代,每个迭代都包括需求分析、设计、实现和测试四个阶段。 软件开发生存周期选择指导 选择合适的软件开发...

    响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 第1章 HTML5+CSS3初体验 课后练习

    响应式 Web 开发项目教程(HTML5+CSS3+Bootstrap)第 2 版第 1 章 HTML5+CSS3 初体验课后练习 本资源涉及到的知识点包括 HTML5、CSS3、Bootstrap 等响应式 Web 开发技术。下面是对每个知识点的详细解释: 一、 ...

    第2章 软件工程的开发模型.pptx

    进化式原型,逐渐演变成最终产品;以及可操作式原型,用户可以直接与之交互。这种模型适合需求探索和用户参与度高的项目。 除了上述模型,还有其他如敏捷开发模型,它强调迭代、灵活响应变化,团队合作和客户反馈。...

    程序猿如何进化——云上的开发运维一体化.pdf

    根据提供的文档信息,本文将围绕“程序猿如何进化——云上的开发运维一体化”这一主题进行深入探讨,重点解析开发运维一体化(DevOps)的概念、重要性及其在云端的应用。 ### 开发运维一体化(DevOps)简介 开发...

    如何利用开源式敏捷开发来提供速度与价值

    开源式敏捷开发是一种融合了敏捷开发原则与开源软件开发方法论的新型软件开发模式。在这种模式下,开发团队不仅遵循敏捷的原则进行快速迭代和持续集成,还积极地将项目代码贡献到开源社区,通过社区的力量加速软件的...

    第2章软件工程的开发模型.pptx

    原型可以是抛弃式的,即只用于验证需求,也可以是进化式的,即成为最终产品的基础。可操作式原型则更加注重实际操作体验,通过用户与原型的互动来完善设计。 螺旋模型结合了瀑布模型的线性顺序和增量模型的迭代特性...

    安卓Android开发模式与框架设计

    在安卓(Android)开发领域,理解并掌握不同的开发模式和框架设计是至关重要的。这些模式和设计原则不仅可以提升应用的性能、可维护性,还能确保代码的可扩展性和复用性。以下是对“安卓Android开发模式与框架设计”...

    分解类进化算法

    分解类进化算法是一种在多目标优化问题中应用的算法,该算法的特点在于将一个复杂的多目标优化问题分解为多个单目标优化子问题,再通过进化算法(EA)协作式地优化这些子问题。这种方法在传统多目标优化领域并不广泛...

Global site tag (gtag.js) - Google Analytics