当前位置: 首页 > article >正文

软件工程复试专业课-软件生命周期

文章目录

  • 软件过程模型
    • 瀑布模型
      • 模型图
      • 特点
      • 优缺点
      • 改进后的瀑布模型
    • 快速原型模型
      • 模型图
      • 优缺点
    • 增量模型(迭代-递增模型)
      • 原型图
      • 与瀑布和快速原型的区别
      • 优缺点
      • 风险更大的增量模型
    • 螺旋模型
      • 简介
      • 模型图
      • 优缺点
    • 喷泉模型
      • 模型图
      • 优缺点
    • 编码修补模型
    • 敏捷过程优缺点
    • Rational统一过程
      • 优点
    • 微软公司软件开发过程*

软件过程模型

瀑布模型

模型图

在这里插入图片描述

特点

1、阶段具有顺序性和依赖性
前一阶段结束,后一阶段开始,前一个阶段的输出文档是后一个阶段的输入文档。
2、推迟实现观点
编码前设置系统分析、系统设计,推迟程序物理实现,保证前期工作扎实。
3、质量保证
每阶段坚持两个做法:一、每阶段必须完成完整、准确的文档。二、每阶段结束前对文档评审。

优缺点

1、优点
提高软件质量,降低维护成本,缓解软件危机
2、
缺乏灵活性,无法解决需求不明确问题、用户不经过实践提出完整需求不切实际。

改进后的瀑布模型

在这里插入图片描述

快速原型模型

模型图

在这里插入图片描述

优缺点

优点:
1、确定需求上优于瀑布模型,通过原型与用户交互
2、提供学习手段,通过开发原型和演示原型对开发者和使用者了解系统都有积极作用
3、有的原型最后会成为最终产品的一部分缺点:
快速建立的系统结构加连续修改可能导致产品质量低下,原型系统的内部的结构可能不好

增量模型(迭代-递增模型)

又称渐增模型

原型图

在这里插入图片描述

与瀑布和快速原型的区别

瀑布和快速模型是一次满足所有需求产品提交给用户增量模型是分批向用户提交产品

优缺点

优点:
1、较短时间向用户提交可完成有用工作产品
2、用户有充裕时间学习适应产品
3、软件架构开放,方便向现有产品加入新构件缺点:
第三点不容易做到

风险更大的增量模型

在这里插入图片描述

普通的增量模型在实现构件前完成总体的需求分析、规格说明和概要设计,相对风险较小后面这种:确定用户需求后,各构件集并行构建

螺旋模型

简介

主要适用于内部开发的大规模软件项目

模型图

在这里插入图片描述

优缺点

优点:
大型软件开发项目有较好的风险控制缺点:
1、需要风险评估的经验
2、契约开发通常需要事先指定过程模型和发布产品
3、普及不如前述模型

喷泉模型

在这里插入图片描述

模型图

在这里插入图片描述

优缺点

优点:
无缝,可同步开发,提高开发效率,节省开发时间,适应面向对象软件缺点:
可能随时加各种信息、需求和资料,需严格管理文档,审核的难度加大

编码修补模型

当一个如软件在没有规格说明或主要设计的情况下被开发时,开发者往往不得不重新对产品编码多次直到得到正确稳定的产品优点:
适用于不需要任何维护的小程序缺点:
不适合重要程序

敏捷过程优缺点

把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态优点:具有对变化和不确定的更敏捷,更快捷的反应特性,在快速的同时仍然能保持开发速度缺点:由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难适用于商业竞争环境下对小型项目提出的有限资源,有限开发时间的约束

Rational统一过程

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

优点

优点:他是不断的迭代来完成一个软件开发的,不断的版本发布成为一种团队的日常工作的真正驱动力,将发现问题,制定方案和解决过程集成到下一次迭代。迭代开发降低风险

微软公司软件开发过程*

在这里插入图片描述

相关文章:

软件工程复试专业课-软件生命周期

文章目录 软件过程模型瀑布模型模型图特点优缺点改进后的瀑布模型 快速原型模型模型图优缺点 增量模型(迭代-递增模型)原型图与瀑布和快速原型的区别优缺点风险更大的增量模型 螺旋模型简介模型图优缺点 喷泉模型模型图优缺点 编码修补模型敏捷过程优缺点…...

DILLEMA:扩散模型+大语言模型,多模态数据增强框架

引言:深度学习模型的鲁棒性测试需要全面且多样化的测试数据。现有的方法通常基于简单的数据增强技术或生成对抗网络,但这些方法在生成真实且多样化的测试数据集方面存在局限性。为了克服这些限制,DILLEMA框架应运而生,旨在通过结合…...

OpenBMC:BmcWeb app获取socket

OpenBMC:BmcWeb app.run-CSDN博客 app对象在run函数中调用了setupSocket() static std::vector<Acceptor> setupSocket() {std::vector<Acceptor> acceptors;char** names = nullptr;int listenFdCount = sd_listen_fds_with_names(0, &names);BMCWEB_LOG_DE…...

突破加速度计的精度与量程瓶颈:HEROS-GAN技术

在当今科技飞速发展的背景下&#xff0c;低成本传感器的应用范围日益扩大。然而&#xff0c;低成本加速度计由于其固有的限制——如信号噪声显著和动态范围狭窄——往往难以满足高精度应用场景的需求。哈尔滨工业大学的研究团队最近提出了一项名为HEROS-GAN&#xff08;Honed-E…...

C++程序员内功修炼——Linux C/C++编程技术汇总

在软件开发的宏大版图中&#xff0c;C 语言宛如一座巍峨的高山&#xff0c;吸引着无数开发者攀登探索。而 Linux 操作系统&#xff0c;以其开源、稳定、高效的特性&#xff0c;成为了众多开发者钟爱的开发平台。将 C 与 Linux 相结合&#xff0c;就如同为开发者配备了一把无坚不…...

苍穹外卖-阿里云OSS文件上传

苍穹外卖-阿里云OSS文件上传 一、阿里云OSS简介**获取AccessKey**获取enpoint 二、代码实现1 引入依赖2 定义OSS相关配置2.1 application-dev.yml2.2 application.yml 3 读取OSS配置3.1 AliOssProperties 4 生成OSS工具类对象4.1 AliOssUtil4.2 OssConfiguration2.5 CommonCont…...

C# 中 Array、ArrayList 和 List 的比较

C# 中 Array、ArrayList 和 List 的比较 在 C# 中&#xff0c;Array、ArrayList 和 List<T> 都用于存储和管理数据集合&#xff0c;但它们在类型安全性、性能、灵活性和使用场景上存在显著差异。以下是对这三种集合的详细比较&#xff1a; 1. 概述 特性ArrayArrayList…...

DeepSeek 提示词:常见指令类型

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

商业AI模型新篇章:Granite 3.2引领行业创新

摘要 Granite 3.2 是一款专为商业环境设计的人工智能模型&#xff0c;旨在提高AI驱动应用的信任度和可扩展性。该模型从零开始构建&#xff0c;采用最新的密集型架构&#xff0c;支持12种语言&#xff0c;覆盖11个不同领域。通过其先进的技术&#xff0c;Granite 3.2 不仅增强了…...

Spring boot中的@ConfigurationProperties注解

Spring boot中的ConfigurationProperties注解 ConfigurationProperties 是 Spring Boot 提供的一个强大注解&#xff0c;用于将配置文件&#xff08;如 application.properties 或 application.yml&#xff09;中的配置绑定到一个 Java 对象中。它不仅简化了配置管理&#xff…...

Rust中的异步编程:构建简单的网页爬虫

一、什么是Rust中的Futures和Async&#xff1f; 在Rust中&#xff0c;异步编程基于future&#xff08;未来&#xff09;的概念。一个future表示一个当前可能不可用&#xff0c;但将来某个时候可以获得的值。Rust中的Future特征定义了这一概念&#xff0c;任何实现了该特征的类…...

springai系列(二)从0开始搭建和接入azure-openai实现智能问答

文章目录 前言1.从0开始搭建项目2.进入微软openai申请key3.配置application.yaml4.编写controller5.测试源码下载地址总结 前言 之前使用openai的官网的api需要科学上网&#xff0c;但是我们可以使用其他的代理间接实现使用chatgpt的相关模型&#xff0c;解决这个问题。比如:本…...

flutter 局部刷新控件Selector源码实现原理

Flutter 中的 Selector 组件是 provider 包提供的一个优化工具&#xff0c;用于在状态管理中仅选择所需数据片段&#xff0c;避免不必要的 Widget 重建。其实现原理基于以下几个关键点&#xff1a; 1. 核心设计目标 选择性重建&#xff1a;仅当特定数据变化时触发 Widget 重建&…...

Eclipse 编译项目指南

Eclipse 编译项目指南 引言 Eclipse 是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;广泛用于Java、C/C、Python等多种编程语言的开发。在Eclipse中编译项目是进行软件开发的基础步骤。本文将详细介绍如何在Eclipse中编译项目&#xff0c;包括项目设置…...

Go在1.22版本修复for循环陷阱

记录 前段时间升级Go版本碰到一个大坑&#xff0c;先记录。 先上代码案例&#xff1a; func main() {testClosure() }func testClosure() {for i : 0; i < 5; i {defer func() {fmt.Println(i)}()} }在1.22之下&#xff08;不包括1.22&#xff09;版本&#xff1a; 输出的…...

c++_sort函数

sort介绍 在C/C中&#xff0c;要想应用排序算法&#xff0c;可以使用c语言的qsort&#xff0c;也可以使用c的sort 。 1)qsort 是 C 标准库提供的一个通用排序函数&#xff0c;位于 stdlib.h 头文件中。 qsort 适用于 C 语言中的数组。 2)sort 是 C 中STL的泛型算法&#xf…...

【Stable Diffusion】AnimatedDiff--AI动画 插件使用技巧分享;文生视频、图生视频、AI生成视频工具;

本专栏主要记录人工智能的应用方面的内容,包括chatGPT、DeepSeek、AI绘画等等; 在当今AI的热潮下,不学习AI,就要被AI淘汰;所以欢迎小伙伴加入本专栏和我一起探索AI的应用,通过AI来帮助自己提升生产力; 本文的目标就是让每一个读者,都能学会并掌握AnimateDiff的使用;成…...

可视化约瑟夫生死环小游戏

这是一个基于Tkinter的图形界面应用程序&#xff0c;用于模拟约瑟夫环问题。约瑟夫环问题是一个经典的数学问题&#xff0c;描述的是N个人围成一圈&#xff0c;从第一个人开始报数&#xff0c;每数到第M个人就将其淘汰&#xff0c;然后从下一个人继续报数&#xff0c;直到剩下最…...

【深入理解JWT】从认证授权到网关安全

最近的项目学习中&#xff0c;在进行登陆模块的用户信息验证这一部分又用到了JWT的一些概念和相关知识&#xff0c;特在此写了这篇文章、方便各位笔者理解JWT相关概念 目录 先来理解JWT是什么&#xff1f; 区分有状态认证和无状态认证 有状态认证 VS 无状态认证 JWT令牌的…...

学习路之PHP --TP6异步执行功能 (无需安装任何框架)

学习路之PHP --异步执行功能 &#xff08;无需安装任何框架&#xff09; 简介一、工具类二、调用三、异步任务的操作四、效果&#xff1a; 简介 执行异步任务是一种很常见的需求&#xff0c;如批量发邮箱&#xff0c;短信等等执行耗时任务时&#xff0c;需要程序异步执行&…...

DeepSeek-R1:GPU编程自动化加速的新纪元

摘要 DeepSeek-R1是由斯坦福大学和普林斯顿大学研究者共同开发的项目&#xff0c;其自研的CUDA核心在性能测试中取得了卓越成绩&#xff0c;超越了o1和Claude 3.5 Sonnet&#xff0c;位居榜首。尽管DeepSeek-R1目前仅在约20%的任务中实现了对PyTorch Eager模式的性能超越&#…...

CSS 对齐:深入理解与技巧实践

CSS 对齐:深入理解与技巧实践 引言 在网页设计中,元素的对齐是至关重要的。一个页面中元素的对齐方式直接影响到页面的美观度和用户体验。CSS 提供了丰富的对齐属性,使得开发者可以轻松实现各种对齐效果。本文将深入探讨 CSS 对齐的原理、方法和技巧,帮助开发者更好地掌握…...

vue深拷贝:1、使用JSON.parse()和JSON.stringify();2、使用Lodash库;3、使用深拷贝函数(采用递归的方式)

文章目录 引言三种方法的优缺点在Vue中,实现数组的深拷贝I JSON.stringify和 JSON.parse的小技巧深拷贝步骤缺点:案例1:向后端请求路由数据案例2: 表单数据处理时复制用户输入的数据II 使用Lodash库步骤适用于复杂数据结构和需要处理循环引用的场景III 自定义的深拷贝函数(…...

九、数据治理架构流程

一、总体结构 《数据治理架构流程图》&#xff08;Data Governance Architecture Flowchart&#xff09; 水平结构&#xff1a;流程图采用水平组织&#xff0c;显示从数据源到数据应用的进程。 垂直结构&#xff1a;每个水平部分进一步划分为垂直列&#xff0c;代表数据治理的…...

【数据结构】 最大最小堆实现优先队列 python

堆的定义 堆&#xff08;Heap&#xff09;是一种特殊的完全二叉树结构&#xff0c;通常分为最大堆和最小堆两种类型。 在最大堆中&#xff0c;父节点的值总是大于或等于其子节点的值&#xff1b; 而在最小堆中&#xff0c;父节点的值总是小于或等于其子节点的值。 堆常用于实…...

51c自动驾驶~合集52

我自己的原文哦~ https://blog.51cto.com/whaosoft/13383340 #世界模型如何推演未来的千万种可能 驾驶世界模型&#xff08;DWM&#xff09;&#xff0c;专注于预测驾驶过程中的场景演变&#xff0c;已经成为追求自动驾驶的一种有前景的范式。这些方法使自动驾驶系统能够更…...

服务 ‘Sql Server VSS writer‘ (SQLWriter) 在安装 LocalDB 时无法启动

安装Microsoft Visual C 2015-2019 Redistributable (x64)...

【我的 PWN 学习手札】House of Husk

House of Husk House of Husk是利用格式化输出函数如printf、vprintf在打印输出时&#xff0c;会解析格式化字符如%x、%lld从而调用不同的格式化打印方法&#xff08;函数&#xff09;。同时C语言还提供了注册自定义格式化字符的方法。注册自定义格式化字符串输出方法&#xf…...

Nmap使用指南

Nmap使用指南 Nmap (网络映射器) 是一款强大的应用网络扫描和安全核查工具&#xff0c;适合于网络管理和安全专家。本文将介绍Nmap的基本使用方法&#xff0c;包括基本命令和常用功能。 1. 基本使用方式 Nmap的基本命令格式如下&#xff1a; nmap [选项] 目标地址目标地址 可…...

傅里叶分析

傅里叶分析之掐死教程&#xff08;完整版&#xff09;更新于2014.06.06 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析不仅仅是一个数学工具&#xff0c;更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是&#xff0c;傅里叶分析的公式看起来太复…...