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

news2025/2/28 16:37:04

文章目录

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

软件过程模型

瀑布模型

模型图

在这里插入图片描述

特点

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

优缺点

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

改进后的瀑布模型

在这里插入图片描述

快速原型模型

模型图

在这里插入图片描述

优缺点

优点:
1、确定需求上优于瀑布模型,通过原型与用户交互
2、提供学习手段,通过开发原型和演示原型对开发者和使用者了解系统都有积极作用
3、有的原型最后会成为最终产品的一部分

缺点:
快速建立的系统结构加连续修改可能导致产品质量低下,原型系统的内部的结构可能不好

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

又称渐增模型

原型图

在这里插入图片描述

与瀑布和快速原型的区别

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

增量模型是分批向用户提交产品

优缺点

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

缺点:
第三点不容易做到

风险更大的增量模型

在这里插入图片描述

普通的增量模型在实现构件前完成总体的需求分析、规格说明和概要设计,相对风险较小

后面这种:确定用户需求后,各构件集并行构建

螺旋模型

简介

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

模型图

在这里插入图片描述

优缺点

优点:
大型软件开发项目有较好的风险控制

缺点:
1、需要风险评估的经验
2、契约开发通常需要事先指定过程模型和发布产品
3、普及不如前述模型

喷泉模型

在这里插入图片描述

模型图

在这里插入图片描述

优缺点

优点:
无缝,可同步开发,提高开发效率,节省开发时间,适应面向对象软件

缺点:
可能随时加各种信息、需求和资料,需严格管理文档,审核的难度加大

编码修补模型

当一个如软件在没有规格说明或主要设计的情况下被开发时,开发者往往不得不重新对产品编码多次直到得到正确稳定的产品

优点:
适用于不需要任何维护的小程序

缺点:
不适合重要程序

敏捷过程优缺点

把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态

优点:具有对变化和不确定的更敏捷,更快捷的反应特性,在快速的同时仍然能保持开发速度

缺点:由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难

适用于商业竞争环境下对小型项目提出的有限资源,有限开发时间的约束

Rational统一过程

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

在这里插入图片描述

优点

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

微软公司软件开发过程*

在这里插入图片描述

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

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

相关文章

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

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

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

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

苍穹外卖-阿里云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…

DeepSeek 提示词:常见指令类型

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

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

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

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; 输出的…

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

这是一个基于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;需要程序异步执行&…

九、数据治理架构流程

一、总体结构 《数据治理架构流程图》&#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;已经成为追求自动驾驶的一种有前景的范式。这些方法使自动驾驶系统能够更…

【我的 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;傅里叶分析的公式看起来太复…

从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(五) 实现登录功能

1.登录页面 完善登录页面 和注册差不多 直接copy signUpPage 内容 再稍微修改下 import { useState } from "react"; import { useAuthStore } from "../store/useAuthStore"; import { MessageSquare,Mail,Lock,Eye, EyeOff,Loader2} from "lucide…

【机器学习】Logistic回归#1基于Scikit-Learn的简单Logistic回归

主要参考学习资料&#xff1a; 《机器学习算法的数学解析与Python实现》莫凡 著 前置知识&#xff1a;线性代数-Python 目录 问题背景数学模型类别表示Logistic函数假设函数损失函数训练步骤 代码实现特点 问题背景 分类问题是一类预测非连续&#xff08;离散&#xff09;值的…

8.Dashboard的导入导出

分享自己的Dashboard 1. 在Dashboard settings中选择 JSON Model 2. 导入 后续请参考第三篇导入光放Dashboard&#xff0c;相近

next.js-学习2

next.js-学习2 1. https://nextjs.org/learn/dashboard-app/getting-started2. 模拟的数据3. 添加样式4. 字体&#xff0c;图片5. 创建布局和页面页面导航 1. https://nextjs.org/learn/dashboard-app/getting-started /app: Contains all the routes, components, and logic …