软件开发模式

        软件的开发模式包括:大棒开发法、边写边改法、瀑布法、快速原型法和螺旋模式法,它们的定义及特点如下:

第一,大棒开发法

       它是源于能量爆发创造宇宙,万物都由能量和物质积聚而成的理论,但如果不是遵循某种正确的排列和组合,形成的将不是预先期望的事物;大棒模式与上述理论一样:一大堆能量(这里指开发软件所需的人力和物力)放在一起,巨大的能量进行释放,通常的结果可能是产生了优秀的软件产品或成为一堆“废品”(不成功的软件)。其优点为:思路简单,通常可能是开发者的“突发奇想”;其缺点为:开发过程是非工程化的,随意性大。对于该方法的测试,有时会非常的困难。

 

第二,边写边改法

        它采用边写边改法的软件开发通常只是有了比较粗略的想法就开始进行简单的设计,然后进行较长的反复编写、测试与修复这样一个循环的过程;在认为无法更精细地描述软件产品要求时,就发布产品;如下图所示:

        其优点为:能够较为迅速地展现成果,适合需要快速制作而且用完就扔的小项目,如示范程序、演示程序等;其缺点为:编码和测试可能将是长期的循环往复的过程。

 

第三,瀑布法

        瀑布模式是将软件生命周期的各项活动,规定为按照固定顺序相连的若干个阶段性工作,形如瀑布流水,最终得到软件产品;如图下所示:

        其优点为:易于理解,调研开发的阶段性,强调早期计划及需求调查,确定何时能够交付产品及何时进行评审与测试。其缺点为:需求调查分析只进行一次,不能适应需求变化;顺序的开发流程,使得开发中的经验教训不能反馈到该项目的开发中去;不能反映出软件开发过程的反复与迭代性;没有包含任何类型的风险评估;开发中出现的问题直到开发后期才能够显露,因此失去及早纠正的机会。

 

第四,快速原型法

       根据客户需求在较短的时间内解决用户最迫切解决的问题,完成可演示的产品;这个产品只实现最重要功能,在得到用户的更加明确的需求之后,原型将丢弃;如图下所示:

 

第五,螺旋模式法

        螺旋模式是瀑布模式与边写边改演化模式相结合,并加入风险评估所建立的软件开发模式。其主要思想是:在开始时不必详细定义所有细节,而是从小开始,定义重要功能,尽量实现,接受客户反馈,进入下一阶段,并重复上述过程,直到获得最终产品;如图下所示:

        每一螺旋(开发阶段)包括5个步骤:1)确定目标,选择方案和限制条件;2)对方案风险进行评估,并能解决风险;3)进行本阶段的开发和测试;4)计划下一阶段;5)确定进入下阶段的方法。其优点为:严格的全过程风险管理,强调各开发阶段的质量,提供机会评估项目是否有价值继续下去。

时间: 2024-10-25 09:48:50

软件开发模式的相关文章

《系统分析与设计方法及实践》一2.2 敏捷软件开发

2.2 敏捷软件开发 在传统的软件开发方法中,工作人员努力构建客户想要的产品.他们花费大量的时间努力从客户那里获取需求,针对需求进行分析和建模,并且归纳成规格说明书.然后,评审说明书,与客户开会讨论,最后签字.表面上看他们开发的产品是符合客户的要求的,但通常事与愿违.在项目快要结束的时候,需求和范围.产品的适用性成为争论的焦点. 敏捷软件开发方法告诉我们开发项目是一个学习的体验.没有谁能完全理解所有需求之后才开始项目,即使是客户也一样.客户一开始有一些主意,但是他们也会随着项目的进展进一步了解他

《精通软件性能测试与LoadRunner最佳实战》—第1章1.5节软件开发与软件测试的关系

1.5 软件开发与软件测试的关系精通软件性能测试与LoadRunner最佳实战前面已经提到软件生命周期,大家已经清楚软件从无到有是需要需求人员.研发人员.测试人员.实施维护等人员相互协作的.作为软件测试人员,在从事软件测试工作的同时,最好对软件的研发过程有一个整体的了解.随着信息技术和各行各业的蓬勃发展,现在的软件系统通常都比较复杂,一个新的软件产品研发过程少则需要几个人,多则需要几百人.数千人来协同完成,下面我们就来看一看软件的开发模式. 常见的几种软件开发模式从开始构思到正式发布软件产品的过

敏捷软件开发之何为敏捷开发

敏捷开发,Agile Development,就是指能够在需求迅速变化的情况下快速开发软件.我们接触最多敏捷实践方式有:极限编程(XP).结对编程.测试驱动开发(TDD)等. 追究敏捷的历史,就必须要提到著名的敏捷开发宣言,2001年,17位业界专家(其中包括我们非常熟悉的Martin, Martin Fowler)组成了一个敏捷联盟,并且创建了一份敏捷联盟宣言,宣扬了4条核心价值观:     1, Individuals and interactions over processes and

《敏捷软件开发:原则、模式与实践(C#版.修订版)》一导读

前 言 20世纪90年代初,我(Bob)写了一本名为Designing Object-Oriented C++ Application using the Booch Method的书.它曾是我的代表作,其效果和销量都让我非常高兴. 这本书最初想作为Designing一书的第2版,但是结果却并非如此.书中所保留的原书内容非常少,只有3章内容,即便这3章也进行了大量的修改,但书的意图.精神以及许多知识是相同的.自Desinging出版10年以来,在软件设计和开发方面我又学到了非常多的知识,这些将在

减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同

  本篇文章讨论并不是:不要使用存储过程,因为有些事情还是要存储过程来完成,不可能不用.而是关于:"业务逻辑是不是要封装在存储过程中实现,这样子php.java等就是调用存储过程".   业务逻辑,通俗说就是:比如要取数据的操作,取出会员编号为x的数据,原来我们一般是封装成函数,或者直接编写sql语句查询.现在是交给数据库的存储过程去完成. +------------------------------------------------------------            

软件开发的过程中,这些文档你都用到了吗(转)

导读:做软件的目的就是要满足客户的需求,这个需求包括功能.外观.操作.时间及性能等各方面.那么,在软件开发过程中那部分最重要呢,程序员说"毋庸置疑,我编写的程序实现了客户提出的功能以及业务流程,..... 众所周知,做软件的目的就是要满足客户的需求,这个需求包括功能.外观.操作.时间及性能等各方面.那么,在软件开发过程中那部分最重要呢,程序员说"毋庸置疑,我编写的程序实现了客户提出的功能以及业务流程,肯定我是最重要的",美工说"你开发的功能如果没有我的页面美化,是无

从网页到网络平台 网站开发模式改变

网络|网页 网络工作的方式正在发生改变. 10年之前,网络的出现给任何拥有互联网连接的人开启了一扇通向海量信息的大门.现在,公共网站上使用的智能数据技术正在让信息可以满足用户的特定需求. 能够让人们寻找到便宜汽油的Google地图界面就是这种技术的代表.越来越多的独立开发者正在使用网络巨头提供的工具,开发出越来越多的好玩程序,他们的努力令这些网站的内容越来越丰富. 对于网站所有者们来说,这预示着一个巨大的变革,尤其对于那些想迎接Web 2.0时代的人来说更是如此.分析师认为,和以往仅仅将网络看作

从网页到网络平台 网站开发模式改变

网络|网页 网络工作的方式正在发生改变. 10年之前,网络的出现给任何拥有互联网连接的人开启了一扇通向海量信息的大门.现在,公共网站上使用的智能数据技术正在让信息可以满足用户的特定需求. 能够让人们寻找到便宜汽油的Google地图界面就是这种技术的代表.越来越多的独立开发者正在使用网络巨头提供的工具,开发出越来越多的好玩程序,他们的努力令这些网站的内容越来越丰富. 对于网站所有者们来说,这预示着一个巨大的变革,尤其对于那些想迎接Web 2.0时代的人来说更是如此.分析师认为,和以往仅仅将网络看作

提前认识软件开发(25) 数据库简介

数据库是个通用化的综合性的数据集合,它可以供各种用户共享且具有最小的冗余度和较高的数据与程序的独立性.目前,国际上主导的大型数据库管理系统有ORACLE.SQL SERVER.SYBASE.INFORMIX和INGRES等. 数据库中常用的编程语言是SQL语言,按其功能可分为四大部分: 开发(25) 数据库简介-tcga数据库简介"> (1) 数据定义语言(Data Definition Language,DDL),用于定义.撤销和修改数据模式. (2) 数据查询语言(Data Query