【软件工程】常见的软件开发模型

news/2025/1/8 21:17:47/

一.瀑布模型

瀑布模型将软件生命周期划分为:

指定计划——需求分析——软件设计——程序编写——软件测试——运行维护

适用场景

一般适用于功能,性能明确,完整无重大变化的软件系统的开发

特点:

  (1) 阶段间具有顺序性和依赖性

(2)推迟现实的观点

(3)质量保证的观点

优点:

(1)有利于大型软件开发过程中人员的组织,管理

(2)   有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率

缺点:

(1)开发过程一般不能逆转,否则代价太大

(2)实际的项目开发很难严格按该模型进行

(3)客户往往很难清楚地给出所有的需求

二.增量模型

增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批

次地分析,设计,编码,和测试这些增量组件。

适用范围:

适合于软件需求不明确,设计方案有一定风险的软件项目

特点:

将开发的软件系统模块化和组件化

优点:

   (1)  将待开发的软件系统模块化,可以分批次提交软件产品,用户可以及时了解

项目的进展

(2)以组件为单位进行开发降低了软件开发的风险

(3)开发顺序灵活,开发人员可以对组件的实现顺序进行优先级排序

缺点:

要求待开发的软件系统可以被模块化,如果待开发的软件系统很难被模块化,将会

给增量开发带来很大麻烦

三.螺旋模型

螺旋模型是一种演化软件开发过程模型,兼顾了快速原型的迭代的特征以及瀑布模型的

系统化与严格监控

适用范围:

对于新近开发,需求不明确的情况下,适用于螺旋模型进行开发

优点:

(1)设计上的灵活性,可以在项目的各个阶段进行变更

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

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

(4)  随着项目的推进,客户始终掌握项目的最新信息,从而客户能够和管理层有效地

        交互。

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

缺点:

很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快

经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。

四. 快速原型模型

快速原型模型是模型模式在软件分析,设计阶段的应用,用来解决用户对软件需求上

的模糊认识,或用来试探某种设计是否能够获得预期结果

适用范围:

一般适用于以下特征的软件开发项目。已有产品或产品的原型,只需客户的工程项目

简单而熟悉的行业和领域,有快速原型开发工具,进行产品移植或升级

优点:

  (1) 可及早为用户提供有用的产品

(2) 可及早发现问题,随时纠正错误

  (3) 减少技术,应用风险,缩短开发时间,减少费用,提高生产率

(4)通过实际运行原型,提供直接评价系统的方法,促使用户主动

         参与开发活动,加强了信息反馈,促进各类人员的协调,减少

         误解,适应需求变化,能有效提高系统质量

缺点:

(1)缺乏丰富而强有力的软件工具和开发环境

(2)缺乏有效的管理机制,还未建立起自己的开发标准。

(3)对设计开发环境要求较高

(4)在多次重复改变原型的过程中,程序员会感到厌倦

(5)系统的易变性对测试有一定影响,难于做到彻底测试,更新文档较为困难

五.喷泉模型

喷泉模型是一种以用户为动力,以对象为驱动的模型,主要用于描述面向对象

的软件开发过程。该模型认为软件开发过程自上而下周期的各阶段是相互迭代

和无间隙的特性。

适用范围:

适用于面向对象的开发方法

优点:

  (1)  为项目提供了按阶段划分的检查点

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

(3)可在迭代模型中应用瀑布模型 

缺点:

(1)在项目各个阶段之间极少有反馈

(2)   只有在项目生命周期的后期才能看到结果

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


http://www.ppmy.cn/news/50207.html

相关文章

条码控件Aspose.BarCode入门教程(8):C#从图像中读取条形码

Aspose.BarCode for .NET 是一个功能强大的API,可以从任意角度生成和识别多种图像类型的一维和二维条形码。开发人员可以轻松添加条形码生成和识别功能,以及在.NET应用程序中将生成的条形码导出为高质量的图像格式。 Aspose API支持流行文件格式处理&am…

【算法】从x的n次方看递归时间复杂度计算

从x的n次方看递归时间复杂度计算 1.循环 这个问题&#xff0c;最简单的办法是用循环 int pow1(int x,int n) {int result 1;for(int i0;i<n;i){result*x;}return result; }如上算法的时间复杂度为O(N)&#xff0c;但还是不够理想。这时尝试使用递归算法 2.递归1 int po…

4月17号软件资讯更新合集.....

CrateDB 5.3.0 发布&#xff0c;分布式 SQL 数据库 CrateDB 是一个分布式的 SQL 数据库&#xff0c;使得实时存储和分析大量的机器数据变得简单。CrateDB 提供了通常与 NoSQL 数据库相关的可扩展性和灵活性&#xff0c;最小的 CrateDB 集群可以轻松地每秒摄取数万条记录。这些…

Python爬虫实战——下载小说

Python爬虫实战——下载小说 前言第三方库的安装示例代码效果演示结尾 前言 使用requests库下载开源网站的小说 注意&#xff1a;本文仅用于学习交流&#xff0c;禁止用于盈利或侵权行为。 操作系统&#xff1a;windows10 家庭版 开发环境&#xff1a;Pycharm Conmunity 202…

NAT网络地址转换技术入门到详解

本文目录 1、NAT简介1.1、SNAT 和IP伪装(Masquerade)1.2、DNAT1.3、Full NAT (也称为Full Cone NAT)1.4、PAT (也称为NAPT) 2、如何通过iptables将一台多网卡的主机配置成NAT路由器3、汇总 本文会从NAT的简介入手&#xff0c;详解NAT技术本身&#xff0c;通过本文&#xff0c;你…

AI Stable Diffusion Prompt参数【一】

AI Stable Diffusion Prompt参数【一】 配置场景1:草丛里的女性promptNegative Prompt结果 场景2: 雨中披头散发的女孩promptNegative Prompt结果 场景3: 一个女孩和她的朋友在逛街promptNegative Prompt结果 场景4: 学生在教室promptNegative Prompt结果 场景5: 穿着白色丝袜和…

ArcGIS发展历史及体系架构

ArcGIS是美国能源环境研究所ESRI&#xff08;Environmental Systems Research Institute&#xff09;开发的GIS软件。 1 ArcGIS软件发展历史 &#xff08;1&#xff09;ARC/INFO Workstation 1981年&#xff0c;ARC/INFO第一代商业产品发布; 1986年&#xff0c;PC版ARC/INFO问世…

OpenGL入门教程之 变化颜色的三角形

一、 知识点 &#xff08;1&#xff09;着色器 着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说&#xff0c;着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序&#xff0c;因为它们之间不能相互通…