软件工程学习笔记:五种软件过程模型的特点、适用情形以及优缺点

2023-05-16

软件工程笔记:五种软件过程模型的特点、适用情形以及优缺点

  • 软件过程模型:
    • 一张图了解五种软件过程模型
    • 瀑布模型
    • 快速原型模型
    • 增量(渐增)模型
    • 螺旋模型
    • 喷泉模型

软件过程模型:

一张图了解五种软件过程模型

五种软件过程模型

瀑布模型

描述:
按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。
适用情形:
需求是预知的;
软件实现方法是成熟的;
项目周期较短。
优点:
可使开发人员采用规范的方法;
严格地规定了每个阶段必须提交的文档;
要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:
只能通过文档了解产品,不经过实践的需求是不切实际的。

快速原型模型

描述:
是快速建立起来的可以在计算机上运行的程序,它所能完成的功能是最终产品能完成的功能的一个子集。
适用情形:
需求多变
陌生领域产品开发
优点:
克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
这种模型适合预先不能确切定义需求的软件系统的开发。
缺点:
所选用的开发技术和工具不一定符合主流的发展;
快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。

增量(渐增)模型

描述:
把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。
适用情形:
适用于需求经常改变的软件开发过程。
如果在项目既定的商业要求期限之前不可能找到足够的开发人员,在这种情况下,增量模型显得特别有用。
优点:
人员分配灵活,刚开始不用投入大量人力资源,先推出核心产品。
逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品。
缺点:
软件体系结构必须是开放的。
模型本身是自相矛盾的。整体——独立构件。
不同的构件并行地构建有可能加快工程进度,但可能有无法集成到一起的风险。

螺旋模型

描述:
使用原型及其他方法来尽量降低风险。把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。
适用情形:
特别适用于庞大、复杂并具有高风险的系统。
适用于内部开发的大规模软件项目。
优点:
主要优势在于它是风险驱动的。
对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;
减少了过多测试或测试不足所带来的风险;
缺点:
采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
过多的迭代次数会增加开发成本,延迟提交时间。

喷泉模型

描述:
是典型的面向对象生命周期模型。 “喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。为避免使用喷泉模型开发软件时开发过程过分无序,应该把一个线性过程(例如,快速原型模型或图中的中心垂线)作为总目标。
适用情形:
适用于面向对象的软件开发过程。
优点:
该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。
多次反复地增加或明确目标系统,而不是本质性的改动,降低错误的可能性。
缺点:
由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,不利于项目的管理。
要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件工程学习笔记:五种软件过程模型的特点、适用情形以及优缺点 的相关文章

  • STM32 控制LED灯 亮灭

    lcd c include 34 led h 34 void Delay uint32 t count unsigned int i for count 61 0 count i 61 500 while i void LED GPIO C
  • 树莓派import cv2 失败解决方法

    设备 树莓派4b 问题简述 xff1a 原装系统自带python3 9 2 xff0c 参考了大佬流 浪 猫的教程 超简单教你在树莓派上安装opencv xff08 二 xff09 时 xff0c 遇到了一个依赖源的安装错误 xff0c 直
  • Ansible学习笔记

    目录 1 Ansible搭建 xff08 基于CentOS 7 9 xff09 1 1 在控制节点和被控节点获取epel源 1 2 安装Ansible 2 理论 3 基础配置 3 1 Ansible发送指令的原理 3 2 Ansible配置
  • 半字符入栈的回文判定

    回文是指正读反读均相同的字符序列 xff1b 如 abba 和 abdba 均是回文 xff0c 但 good 不是回文 试写一个算法判定给定的字符序列是否是回文 xff08 提示 xff1a 将一半字符入栈 xff09 算法分析 xff1
  • vue中封装axios 以及api 统一管理

    目录 一 安装axios二 创建文件夹三 封装axios1 引入axios2 引入vuex3 引入vant4 引入我们的环境变量5 创建axios实例6 添加请求拦截7 响应拦截8 导出封装的axios函数 四 api统一管理1 引入我们封
  • 提示虚拟内存不足可能的原因以及该怎么处理

    一 什么是虚拟内存 虚拟内存的概念是相对于物理内存而言的 在硬盘上开辟一块磁盘空间当做内存使用 xff0c 这部分硬盘空间就叫虚拟内存 xff0c 是Windows系统将部分硬盘空间作为内存来使用 xff0c 解决物理内存被占用过多 xff
  • vue常用指令

    常用指令 xff1a vue常用指令有 xff1a v html指令 v show指令 v if指令 v else指令 v else if指令 v for指令 v text指令 v bind指令 v on指令 v model指令等等 1 v
  • wsl的安装及迁移至其他盘

    安装 xff1a wsl是什么 xff1a 适用于Linux的Windows子系统 编辑 维基百科 xff0c 自由的百科全书 xff08 重定向自Windows Subsystem for Linux xff09 跳到导航跳到搜索 适用于
  • ubuntu 不能检测到显卡信息

    开始时 xff1a lspci grep 39 VGA 39 lspci grep 39 VGA 39 01 00 0 VGA compatible controller NVIDIA Corporation Device 2560 rev
  • 记录Vue项目中使用的各插件

    记录项目 package json 文件中各插件的使用 xff1a 目录 1 axios 2 babel polyfill 3 core js 4 echarts 5 element ui 6 es6 promise 7 js beauti
  • 看懂机器视觉(CV)\听懂语音识别(ASR)\理解自然语言处理(NLP)

    缩略语 机器视觉 xff08 CV xff09 Computer vision 语音识别 xff08 ASR xff09 Automatic Speech Recognition 自然语言处理 xff08 NLP xff09 Natural
  • zeal 文档下载及其离线文档下载

    下载地址 百度网盘 链接 xff1a https pan baidu com s 1r4d1OfrUTrbaZ9k9YfdWLA pwd 61 o7au 提取码 xff1a o7au 下载讲解 xff1a 1 下载安装 2 Tools gt
  • Linux系统部署JAVA项目

    Linux系统部署项目 一 准备工作 1 WinSCP 远程服务器可视化工具 2 Xshell5 linux服务器打命令用的 3 准备一台阿里云 华为云 腾讯云服务器 要求 xff1a 系统镜像centeOS7 0以上 二 开始搭建环境 1
  • Spring Boot 之---什么是热部署?---怎么使用?

    Spring Boot 之 什么是热部署 xff1f 怎么使用 xff1f 1 什么是热部署2 怎么启用热部署 xff08 1 xff09 手动配置 xff08 2 xff09 自动配置 总结 1 什么是热部署 所谓热部署 xff0c 就是
  • 什么是反向代理?

    正向代理 当客户端访问一台服务器有障碍 xff0c 访问不到的时候 xff0c 这时候就可以找一台可以访问到该服务器的另外一台服务器去代替他去访问 xff0c 这台代替他去访问的服务器称之为代理服务器 然后客户端就可以把请求发送给代理服务器
  • Java IO流 实现文件复制

    Java IO流 实现文件复制 思路 1 将指定文件转换成输入流 2 创建数组接收输入字节 3 将文件复制想要存放的轮径创建输出流 4 将输入流的字节输出出去 实现 span class token comment 创建输入和输出流 spa
  • Python之文件读写

    1 写文件 f 61 open 39 out txt 39 39 w 39 f write 39 s d d d d 0 0 0 0 0 0 0 39 bbx name bbx x bbx y bbx w bbx h f close 2 读

随机推荐

  • Java 基于TCP的socket实现文件传输

    Java 基于TCP的socket实现文件传输 基于TCP的socket结合java的io流 实现客户端与服务器之间的文件传输 Socket 套接字 xff08 socket xff09 是一个抽象层 xff0c 应用程序可以通过它发送或接
  • MySQL索引的创建与使用

    索引的分类 在学习如何创建索引之前 xff0c 先了解一下索引的分类 MySQL中分为 xff1a 普通索引 xff0c 唯一索引 xff0c 主键索引 xff0c 组合索引 xff0c 和全文索引 index name xff1a 索引名
  • ThreadLocal类

    ThreadLocal类 什么是ThreadLocal为什么ThreadLocal是线程安全的呢 什么是ThreadLocal ThreadLocal可以简单的理解为他其实就是一个工具类 xff0c 用来存储线程局部变量的一个工具类 xff
  • spring boot 访问HTML

    HTML整合spring boot 简介默认文件路径访问自定义文件路径访问 或通过Controller控制器层跳转访问 简介 SpringBoot默认的页面映射路径 xff08 即模板文件存放的位置 xff09 为 classpath te
  • HTML重定向解析ModelMap

    HTML实现重定向解析ModelMap 日常开发中 很多场景需要跳转页面 xff0c 又要携带参数 xff0c 重定向就可以起到很好的作用 业务场景 xff1a 登录成功后展示用户信息 登录页面输入用户名 密码进行登录访问 span cla
  • RHCE-ansible(一)--- 安装ansible、主机清单、sudo提权、特权升级

    目录 一 环境配置 1 配置三个主机 etc hosts 文件 xff0c 实现通过域名访问 2 配置SSH远程免密连接 2 1 在控制主机生成密钥 2 2 发送公钥到受控主机 二 受控主机 xff08 xixi xff09 安装ansib
  • 针对opencv导入Android studio不成功的解决办法?

    一 问题如下 xff1a AS gt File gt New gt Import Module 选择导入 压缩包路径 sdk java文件夹 xff0c 然后发现AS没有下一步 xff1f 二 解决办法 新建一个项目 在新建项目下创建一个包
  • Attempt to invoke virtual method ‘void android.widget.TextView.setText(java.lang.CharSequence)‘ on a

    问题简述 xff1a Attempt to invoke virtual method 39 void android widget TextView setText java lang CharSequence 39 on a null
  • WebRTC使用Linux搭建服务器(二)

    搭建服务器流程 xff1a 注意 xff1a 每个人搭建服务器可能会出现奇奇怪怪的问题 xff0c 照着我的方法可能会出现其他问题 xff0c 不要着急 xff0c 耐心搭建 xff0c 确实比较烦 1 安装JDK apt get upda
  • Java基础——有无参数和有无返回值

    一 有无参数 有参数 xff1a 小括号里面有内容 xff0c 当一个方法需要一些数据条件 xff0c 才能完成任务的时候 xff0c 就是有参数 例如两个数字相加 xff0c 必须知道两个数字各自有多少 xff0c 才能相加 无参数 xf
  • STM32学习:利用寄存器点亮LED

    使用普中PZ6806L开发板 由对应的LED模块的电路可知 xff0c 要想点亮一个LED xff0c 就要将其对应的引脚输出低电平 要使用寄存器 xff0c 首先要对其进行封装 xff0c 具体代码如下 xff1a define PERI
  • java基础——求数组长度、遍历数组、求最值和数组元素反转

    一 求数组长度 获取数组的长度的格式 xff1a 数组名称 length 这将会得到一个int数字 xff0c 代表数组的长度 数组一旦创建 xff0c 程序运行期间 xff0c 长度不可改变 代码如下 xff1a public class
  • java基础—Random

    一 概述 Random 类用来生成随机数字 xff0c xff0c 使用起来也是三个步骤 xff1a 1 导包 2 创建 Random r 61 new Random 小括号留空即可 3 使用 获取一个随机数的int的数字 范围是int所有
  • ffmpeg播放器(二)音频解码与播放

    音频解码和播放的前面准备工作和视频的格式差不多 xff0c 创建两个线程分别解码和播放 xff0c 这里统一只放代码了 void AudioChannel play 设置为播放状态 packets setWork 1 frames setW
  • RTMP直播推流(一)视频推流

    关于cmakeList的配置 xff0c 这里就直接给出代码 xff1a cmake minimum required VERSION 3 4 1 引入指定目录下的CMakeLists txt add subdirectory src ma
  • RTMP直播推流(二)音频推流

    音频推流java层代码 xff1a package com example push channel import static android media AudioFormat CHANNEL IN STEREO import andr
  • SpringBoot查询数据时报空指针异常

    我的问题是 64 Test包导入错误 是这个包不是另外一个
  • SQL 之 CASE WHEN 修改查询数据,不符合修改条件的部分则保持不变

    Q Region is a mix of abbreviations and full names Fix up the remaining regions by converting the full names to their cor
  • P3366 【模板】最小生成树 java prim算法 洛谷

    传送门 P3366 模板 最小生成树 洛谷 计算机科学教育新生态 luogu com cn https www luogu com cn problem P3366 这道题有两种常规做法 xff0c kruskal 对边进行研究 和 pri
  • 软件工程学习笔记:五种软件过程模型的特点、适用情形以及优缺点

    软件工程笔记 xff1a 五种软件过程模型的特点 适用情形以及优缺点 软件过程模型 xff1a 一张图了解五种软件过程模型瀑布模型快速原型模型增量 渐增 模型螺旋模型喷泉模型 软件过程模型 xff1a 一张图了解五种软件过程模型 瀑布模型