首页 > 其他分享 >软件开发模型

软件开发模型

时间:2024-04-05 21:13:54浏览次数:26  
标签:软件开发 迭代 模型 开发 原型 软件 Model

这部分是之前准备复试的时候所做的笔记,主要参考是这个视频

瀑布模型(Waterfall Model)

又称为线性模型,每完成一步都需要验证来保证该步的正确性,后一步是基于前一步是正确的基础上。

但实际开发过程中不可能不犯错误,且开发过程中需求可能会调整,故瀑布模型是带反馈环的:

当发生错误或者需求变更时,返回前面阶段修正后再继续

优点是过程简单,缺点是无法适应变更

  • 回溯性差,需求变更代价高昂
  • 开发人员经验丰富。
  • 软件项目风险较低。瀑布模型不具有完善的风险控制机制

快速原型模型

快速建立一个能基本反应用户主要需求的原型系统,然后让用户在其上实践后提出进一步的意见

原型为了获取全面准确的用户需求,获取后便是瀑布模型

原型有两种

  • 追加型(throw away)
  • 废弃型(add on)
    主要优点是不带反馈环,软件产品的开发基本是线性顺序进行的

可理解为错误与需求变更都在原型阶段完成了,后续阶段再出现的可能性较小,因此可以基本实现线性顺序开发

增量模型(Incremental Model)

又称渐增模型,把软件模块化,每个模块作为一个增量组件来分批次的分析、设计、编码和测试。

开发过程是递增式的过程。

不是瀑布模型的一次性提交,而是分批次进行提交

第一个增量往往是实现基本需求的核心产品,交付用户使用后,经过评价形成下一个增量的开发计划(对核心产品的修改和新功能的发布)。如是不断重复迭代,直到产生最终的完善产品

  • 分批次的提交软件产品,用户可以及时了解软件项目的进展
  • 以组件为单位开发降低了软件开发的风险。一个开发周期内的错误不会影响整个系统
  • 开发顺序灵活,可以灵活安排构件实现优先顺序的优先级
  • 功能逐步增加,使用户有充裕的时间去适应与学习新产品,从而减少新的软件可能带给用户组织的冲击。

螺旋模型(Spiral Model)

用于风险较大的大型项目开发,综合瀑布模型和快速原型模型并加入前二者忽略的风险分析

优点是将风险分析扩展到各个阶段中,大幅降低开发过程的风险,
缺点是控制和管理复杂,可操作性不强,对项目管理人员的要求比较高

简单理解,其就是快速原型模型基础上在其每一步都加上风险分析

喷泉模型(Fountain Model)

喷泉指的是面向对象方法的迭代(各阶段多次重复进行以更好的的实现需求,类似于每个阶段的过程都是迭代模型)和无间隙性(各阶段没有明显界限,并常在时间上相互交叉,并行进行)

主要用于面向对象的软件项目

所谓喷泉的得名看图更好理解

迭代模型(Iterative Model)

将整个软件开发过程分解为一系列独立的迭代周期。每个迭代周期都包含了需求分析、设计、编码、测试和评审等活动,周期结束时产生一个可交付的软件版本

前一次迭代中收集的反馈和经验是指导下一次迭代的重要依据,每次迭代都可以增加新的功能或修复已知问题,若干次迭代后最终产生一个可交付的软件版本。

简单说就是反复开发优化。

其可以灵活响应变化,提高软件质量和客户满意度(客户可根据每次迭代的结果来提出意见),但其也可能导致过度的迭代和范围膨胀(得陇又望蜀,欲壑难填满)

标签:软件开发,迭代,模型,开发,原型,软件,Model
From: https://www.cnblogs.com/3-141592653589/p/18116180

相关文章

  • 【CANN训练营笔记】OrangePI AIPro 体验手写体识别模型训练与推理
    CANN简介当我们谈到香橙派AIPro的时候,总会把她和昇腾生态关联起来,因为在昇腾芯片的加持下,这款开发板有着出色的算力,被众多开发者追捧。而谈到昇腾芯片,我们不得不提上层的AI异构计算架构CANN。异构计算架构CANN(ComputeArchitectureforNeuralNetworks)是华为针对AI场......
  • 大模型现有领域研究
    分类参考https://csdnnews.blog.csdn.net/article/details/137337597?spm=1000.2115.3001.5926&ydreferer=aHR0cHM6Ly93d3cuY3Nkbi5uZXQv对现有领域热点进行总结,后续会基于这些进行补充,会对其中的名词进行解释。开始编辑日期2024/4//4,最后编辑时间2024/4/41.大语言模......
  • ARM架构的异常模型
    一、异常级别1、异常级别0(EL0)       用户模式,是四个异常级别中权限最低的一个。    目标软件:应用程序代码    设计用途:运行绝大多数终端用户的软件,如文档编辑器、游戏和通讯应用。这些应用程序运行在一个受限的环境中,以减少它们对系统安全性和稳......
  • 在深度学习模型中引入先验
    当面对复杂问题的时候,在深度学习模型提取特征的过程中完全抛弃知识是非常不明智的策略。虽然有很多研究者在深度网络处理数据之前,利用具有某种知识的模型驱动方法对数据进行预处理,但是这种方法没有进行实质性地改造深度网络,且这种两阶段方法从端到端学习策略来看很难达到最优。......
  • 书生·浦语大模型全链路开源体系——学习笔记day2&day3--纯纯新手入门
    学习链接:tutorial/helloworld/hello_world.mdatmain·InternLM/tutorial(github.com) 【精彩,照着做就能体验很多本来遥不可及的东西】笔记分享链接:https://github.com/InternLM/tutorial/discussions/37 本笔记定位是对学习链接的补充和小白发牢骚,希望大佬能愿意点评一......
  • three.js基础之几何体颜色、纹理贴图、外部模型
    几何体颜色<body><canvasid="mainCanvas"width="400px"height="300px"></canvas></body><scripttype="importmap">{"imports":{"three":"./js/build/......
  • 突破编程_C++_网络编程(TCPIP 四层模型(传输层))
    1传输层的功能与作用在TCP/IP四层模型中,传输层位于网络层之上和应用层之下,负责在源主机和目标主机之间提供端到端的可靠数据传输服务。传输层的主要功能与作用体现在以下几个方面:分段与重组:由于网络层的数据包大小有限制(如IP数据包的最大长度为65535字节),而应用层......
  • 【系统深入学习GO】Go 的并发机制-原理探究 线程实现模型
    在操作系统提供的内核线程之上,Go搭建了一个特有的两级线程模型。*两级线程模型:两级线程模型也称为多对多(M:N)的线程实现。与其他模型相比,两级线程模型提供了更求的灵活性。在此模型下,一个进程可以与多个KSE相关联,这与内核级线程模型相似。但与内核级线程模型不同的是,进程......
  • springAI初体验 让人人都能跑大模型
    springAI初体验让人人都能跑大模型SpringAI是一个旨在简化开发包含人工智能功能的应用程序的项目。它受到Python项目如LangChain和LlamaIndex的启发,但并非这些项目的直接移植。SpringAI的核心理念是为开发AI应用程序提供基础抽象,这些抽象有多个实现,使得在不同实现之间......
  • OpenAI劲敌出手!Claude 3正式发布,全面超越GPT-4。Claude3模型特点和使用教程分享
    已有GPT官方账号不会升级GPT4请参考:【国内如何用gpt4?如何升级gpt4?保姆级教程】一、Claude震撼发布焦点分析1.Claude震撼发布北京时间2024年3月4日晚间,Anthropic,毫无预警地发布了最新一代大模型Claude3,距离上一代的Claude2发布,仅相隔8个月。Claude发布了最新的大模型Cla......