软件开发模型学习整理——瀑布模型

news2024/12/23 9:17:00

一 前言

       从参加工作至今也完整的跟随过一整个项目的流程了,从中也接触到了像瀑布模型,迭代模型,快速开发模型等。介于此,基于自己浅薄的知识对瀑布模型进行整理学习以及归纳。

二 瀑布模型简介

2.1 瀑布模型的定义和特点

定义:瀑布模型是一种软件开发过程模型,它将软件开发的过程划分为几个有序的阶段,每个阶段都有明确的输入和输出,以及质量保证的标准。

特点:1 严格的阶段划分和顺序性

           2 每个阶段的输出成果必须经过严格的审核和验证,才能进入下一个阶段

2.2 瀑布模型的发展历史和应用领域

瀑布模型(英语:Waterfall Model),亦称瀑布模式,是于1970年由温斯顿·W·罗伊斯等人所发展之系统发展生命周期的模型。该模型将系统发展的过程,大致区分为四个阶段:分析、设计、实现、测试,其并且明确的定义每一阶段中的工作。当完成一个阶段的工作以后,才会进入下一个阶段的工作。而依照该模型的系统发展的过程,即如同瀑布一般。(取自网络)

三 瀑布模型的各个阶段及其任务和文档

3.1 需求分析阶段

总所周知,业务是公司的命脉,只有满足了用户的需求,产品才会有更好的推广,换句话来说,公司的每一个齿轮都是为了业务(客户)服务的,只有满足了客户,公司才能发展前行。

需求分析阶段:这一部分需要完成产品需求规格书的编写:包括但不限于产品框图,产品交付信息,产品功能性需求,产品非功能需求,性能需求,以及风险等。

3.2 设计阶段

设计阶段:根据需求规格书,设计软件的结构和架构,编写软件方案规格书为后续开发做足准备

软件方案规格书应包含:系统设计的目标,关键的功能,关键性能,运行条件,系统总体架构,系统边界图,系统逻辑架构,子系统视图,系统功能划分,系统部署架构(数据架构,存储,接口等),非功能类的设计等

3.3 实现阶段

通俗来说,基于软件方案规格书,写代码,并进行自测。

3.4 测试阶段

测试阶段的任务:对软件进行集成,编写测试用例,系统测试,验收测试。检查软件的功能和性能,编写测试报告。

文档一般包括:测试计划,测试方案,测试数据,测试报告等。

测试通过后,进行再进行实机测试

注:分享一个测试的框架:unitytest

3.5 维护阶段

维护阶段:软件的运营和维护,修复错误以及缺陷,更新版本,编写维护文档等。

文档常见包括:维护计划,维护报告,版本控制等。

四 瀑布模型的优缺点以及客户需求

1、瀑布模型有以下优点:

  1)为业务提供了按阶段划分的检查点。

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

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

2、瀑布模型有以下缺点:

  1)在项目各个阶段之间反馈较少。

  2)项目周期的后期结果才会较明显。

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

3、瀑布模型的客户需求:

       尽管瀑布模型招致了很多批评,但是它对很多类型的项目而言依然还是有效的,如果正确使用,可以节省大量的时间。对于项目而言,是否使用这一模型主要取决于是否能理解客户的需求以及在项目的进程中这些需求的变化程度,对于经常变化的项目而言,瀑布模型可能就会有些影响效率了,对于这种情况,可以考虑其他的架构来进行项目管理,比如螺旋模型。

五 瀑布模型与其他软件开发模型比较与选择

​​​​​瀑布模型是一种预见性的开发方法,假设需求在项目开始时就已经明确且不会有太大变化,因此可以按照固定的顺序进行各个阶段的工作,每个阶段都有明确的输入输出,以及质量保证的标准。 

其他软件开发模型,如:敏捷模型等,是一些适应性开发方法,他们认为需求是不断变化的,因此需要灵活调整开发过程,采用迭代,增量,反馈等机制,以适应需求的变化以及用户需求。

瀑布模型与其他模型选择取决于项目的特点和环境,例如:环境规模,复杂度,风险,稳定性,可预见性等。

一般来说,瀑布模型适用于需求明确,稳定,低风险的项目。其他的开发模型一般适用于需求模糊,变化频繁,高风险的项目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1317681.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 动态库和静态库

文章目录 前言动态库创建和使用静态库创建和使用动态库和静态库差异生成过程的差异运行效果的差异 补充说明库的名称的注意事项库的搜索路径的方法什么是位置无关代码动态链接与静态链接/usr/lib 和 /usr/local/lib 前言 动静态库的创建和使用部分更多的是意在说明动态库和静态…

软件测试指南

软件测试指南 软件集成测试软件系统测试(功能性测试,性能测试)

dp中最短编辑距离的笔记(分析dp)

dp分析往往就是看最后一步的变化。 分析: 设a串长度为i,b串长度为j。题目要求为通过三种操作将a字符串转化为b字符串的最少次数。 删除操作: 把a[i]删除后a[1~i]和b[1~j]匹配,所以可以得到f[i - 1][j] 1,在此之前要先…

ce从初阶到大牛--grep篇

1、显示/etc/rc.d/rc.sysinit文件中以不区分大小的h开头的行; grep -i "^h" /etc/rc.d/rc.sysinit2、显示/etc/passwd中以sh结尾的行; grep "sh$" /etc/passwd3、显示/etc/fstab中以#开头,且后面跟一个或多个空白字符,…

烦躁的广告弹窗如何在 Edge 上消失?轻松招架 3 种方法

Edge问题解决教程之广告弹窗如何消失? 一、前言:广告弹窗问题二、使用Edge浏览器内置的广告拦截功能三、安装广告拦截浏览器扩展程序四、处理恶意软件和广告弹窗网站五、总结 一、前言:广告弹窗问题 Edge浏览器中出现的广告弹窗问题是由恶意…

Android 动画 Lottie 如何使用

Android 动画 Lottie 如何使用 一、简介 Lottie 是Airbnb开源的一个面向 iOS、Android、React Native 的动画库,能分析 Adobe After Effects 导出的动画,并且能让原生 App 像使用静态素材一样使用这些动画,完美实现动画效果。 二、Lottie动…

openwrt中taiscale自动安装脚本详解

openwrt中taiscale自动安装脚本详解 一、代码仓库地址 https://github.com/adyanth/openwrt-tailscale-enabler 二、代码仓库中脚本文件详解 主要包含三个脚本分别是etc/init.d/tailscale、usr/bin/tailscale、usr/bin/tailscaled ,接下来逐个分析一下脚本中的具…

数字孪生Web3D智慧机房可视化运维云平台建设方案

前言 进入信息化时代,数字经济发展如火如荼,数据中心作为全行业数智化转型的智慧基座,重要性日益凸显。与此同时,随着东数西算工程落地和新型算力网络体系构建,数据中心建设规模和业务总量不断增长,机房管理…

【深度学习目标检测】九、基于yolov5的安全帽识别(python,目标检测)

YOLOv5是目标检测领域一种非常优秀的模型,其具有以下几个优势: 1. 高精度:YOLOv5相比于其前身YOLOv4,在目标检测精度上有了显著的提升。YOLOv5使用了一系列的改进,如更深的网络结构、更多的特征层和更高分辨率的输入图…

“四十不纵欲,五十不纵情,六十不纵……”这三样东西,影响一生

著名文豪曹植曾在诗作中写道:“清时难屡得,嘉会不可常。天地无终极,人命若朝霞。” 天地之悠悠无穷无尽,而人生之寿命短如晨霜稍纵即逝,几十年时光也不过是弹指一挥间。 纵使曾经怀有豪情万丈,总饱含凌云…

HarmonyOS给应用添加消息通知

给您的应用添加通知 通知介绍 通知旨在让用户以合适的方式及时获得有用的新消息,帮助用户高效地处理任务。应用可以通过通知接口发送通知消息,用户可以通过通知栏查看通知内容,也可以点击通知来打开应用,通知主要有以下使用场景…

MY SQL数据库系统

一、认识MY SQL: MySQL是-个真正的多线程.多用户的SQL 数据库服务.凭借其高性能、高可靠和易于使用的特性.成为服务器领域中最受欢迎的开源数据库系统。在2008年以前,MySQL项目由MySaLAB公司进行开发、发布和支持,之后…

【精选】计算机网络教程(第1章计算机网络概述)

目录 前言 第1章计算机网络概述 1、计算机网络的分类 2、典型的网络交换方式主要分为两种 3、计算机网络体系结构——原理体系结构 结语 前言 总结计算机网络教程课程期末必记知识点。 第1章计算机网络概述 1、计算机网络的分类 按网络的覆盖范围进行分类 局域网&#xf…

Linux---文本搜索命令

1. grep命令的使用 命令说明grep文本搜索 grep命令效果图: 2. grep命令选项的使用 命令选项说明-i忽略大小写-n显示匹配行号-v显示不包含匹配文本的所有行 -i命令选项效果图: -n命令选项效果图: -v命令选项效果图: 3. grep命令结合正则表达式的使用 正则表达式说明^以指…

部署LVS的NET模式

实验准备 #负载调度器# 192.168.116.40 #内网 12.0.0.100 #外网 先添加双网卡 #web服务器# 192.168.116.20 #web1 192.168.116.30 #web2 #nfs共享服务# 192.168.116.10 #nfs systemctl stop firewalld setenforce 0 1.nfs共享文件 1…

Unity 常用资料

1. Layer layer本质是按序左移的一个Int32数字,int32有4个字节》32位,故可以支持32个层级。系统自身使用了5个层,意味着用户还有27个层可以使用。 0000 0000 0000 0000 0000 0000 0000 0000 可以且只能任意位为1。unity具体的0-31的层级分布…

【观测宇宙】

这个网站一眼看清整个宇宙。可观测范围一亿光年。 Cocosmos | 掌上宇宙 作者开发介绍:Cocosmos 序章 | 掌中宇宙,浩瀚星海,一眼万年 (qq.com)

HPM6750系列--第十篇 时钟系统

一、目的 上一篇中《HPM6750系列--第九篇 GPIO详解(基本操作)》我们讲解了HPM6750 GPIO相关内容,再进一步讲解其他外设功能之前,我们有必要先讲解一下时钟系统。 时钟可以说是微控制器系统中的心脏,外设必须依赖时钟才…

Java反序列化漏洞-CC1利用链分析

文章目录 一、前置知识1. 反射2. Commons Collections是什么3. 环境准备 二、分析利用链1. Transformer2. InvokeTransformer执行命令 3. ConstantTransformer4. ChainedTransformer执行命令 5. TransformedMap6. AbstractInputCheckedMapDecorator7. AnnotationInvocationHand…

软件设计师——数据结构(一)

📑前言 本文主要是【数据结构】——软件设计师——数据结构的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1f304…