软考-软件工程开发模型

软考-软件工程开发模型

参考视频: 软件工程概述&开发模型 ,配合视频理解更清晰~

软件的生命周期为:需求分析软件设计软件开发运行维护直至被淘汰 几个阶段。

软件工程支持 4 个活动,简称 PDCA,分别是:Plan、Do、Check、Action

  • 软件规格说明:规定软件功能及其运行时限制
  • 软件开发:开发出满足规格说明的软件
  • 软件确认:确认开发的软件能满足用户需求
  • 软件演进:软件在运行过程中不断改进以满足用户新的需求

为了使软件生命周期中的各项任务有序进行,需要一定的模型给予规程约束,这就是软件生命周期模型。

1、瀑布模型

基础知识:

【1】又被称为生命周期法

【2】开发计划分为:软件计划、需求分析、软件设计、程序编码、软件测试、运行维护 6 个阶段

优点:

【1】为项目提供了按阶段划分的检查点

【2】当前一阶段完成后,只需要关注后一阶段

【3】提供了一个模板,使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导

缺点:

【1】各个阶段产生了大量的文档,极大地增加了工作量

【2】开发模型是线性的,用户只有在开发末期才能看到开发成果,从而增加了开发风险

【3】不适应用户需求的变化,并且在需求分析阶段不可能完全获取

【4】前期未发现的错误在后面的开发活动中可能被扩散,进而导致整个项目开发失败

适用场景:

【1】需求明确或很少变更的项目

2、原型化模型

基础知识:

【1】快速建立一个目标系统的最初版本,并交给用户试用、补充和修改,再进行新的版本开发,直到用户满意

【2】成败的关键和效率的高低,在于模型的建立和建模的速度

【3】按照最终的结果可以分为抛弃型原型和演化型原型

适用场景:

【1】用户需求不明确

3、螺旋模型

基础知识:

【1】瀑布型模型和演化型原型相结合

【2】强调风险分析

【3】每一次迭代分为:目标设定、风险分析、开发和有效性验证、评审

适用场景:

【1】大型软件开发

【2】面向规格说明、面向过程和面向对象的开发,及几种开发方法的组合

4、敏捷模型

基础知识:

【1】适应型(图右)而非预设型(或者叫可预测型,图左)

image-20250519221343062

【2】以人为本而非以过程为本,强调开发人员有权做技术方面的所有决定强调相关人员的沟通提倡面对面交流

【3】迭代增量式的开发过程

迭代(图左),增量(图右)

image-20250519221535137

敏捷模型适合需求变化较大或者开发前期对需求不是很清晰的项目。是一组,包含下面多种:

4.1 极限编程(XP)

基础知识:

【1】价值观是:交流、朴素、反馈和勇气,将开发过程分解为一个个相对比较简单的小周期

4.2 水晶方法

基础知识:

【1】提倡“机动性”,认为每个项目都有独特的角色、过程模式、工作产品和实践。

4.3 SCRUM

基础知识:

【1】侧重于项目管理,迭代式增量软件开发过程

4.4 特征驱动开发方法(FDD)

基础知识:

【1】一种迭代开发模型,认为有效的软件开发需要三要素:人、过程和技术

4.5 开放源码(很少考)

基础知识:

【1】程序员地域上分布十分广泛

4.6 ASD 方法(很少考)

基础知识:

【1】核心是三个非线性的、重叠的开放阶段:猜测、开放和学习

4.7 动态系统开放方法(DSDM)(很少考)

基础知识:

【1】倡导以业务为核心

5、构件组装模型(CBSD)

基础知识:

【1】利用模块化方法,将整个系统模块化,在一定构件模型的支持下,复用构件库中的一个或多个构件,通过组合手段高效率、高质量的构造软件系统

【2】融合了螺旋模型的许多特征,本质上是演化的,开发过程是迭代的

【3】基于构件的软件开发分为:需求分析和定义、体系结构设计、构件库的建立、应用软件构建、测试和发布

6、V 模型

基础知识:

【1】测试分段(每一步都有对应的测试)

【2】测试计划先行(例如详细设计阶段做单元测试的测试计划,这样提前做下一步骤的测试计划)

image-20250519223418051

7、W 模型

基础知识:

【1】依据“尽早且持续进行软件测试”的原则,开发流程与测试活动并行展开

8、快速应用开发模型(RAD)

基础知识:

【1】增量型软件开发模型

【2】通过大量使用可复用构件,采用基于构件的开发方法快速开发,强调极短的开发周期

【3】流程分为:业务建模、数据建模、过程建模、应用生成、测试与交付

适用场景:

【1】模块化要求程度比较高

9、喷泉模型

基础知识:

【1】强调面向对象

10、统一过程开发模型(UP、RUP)

基础知识:

【1】用例驱动
【2】以架构为中心
【3】迭代和增量

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

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

相关文章

【写在创作纪念日】基于SpringBoot和PostGIS的各省东西南北四至极点区县可视化

目录 前言 一、空间检索简介 1、空间表结构 2、四至空间检索 二、前后端实现 1、后端实现 2、前端集成 三、成果展示 1、东部省份 2、西部省份 3、南部省份 4、北部省份 5、中部省份 四、总结 前言 在当今数字化时代,地理信息数据的分析与可视化对于众…

智能守护校园“舌尖安全“:AI视频分析赋能名厨亮灶新时代

引言: 在校园食品安全备受关注的今天,一套融合视频监控管理平台与AI视频分析盒子的智能解决方案正在全国多地学校食堂悄然落地,为传统的"名厨亮灶"工程注入科技新动能。这套系统不仅实现了后厨操作的"透明化"&#xff0…

【软件设计师】计算机网络考点整理

以下是软件设计师考试中 ​​计算机网络​​ 的核心考点总结,帮助您高效备考: ​​一、网络体系结构与协议​​ ​​OSI七层模型 & TCP/IP四层模型​​ 各层功能(物理层-数据链路层-网络层-传输层-会话层-表示层-应用层)对应协…

Starrocks的CBO基石--统计信息的来源 StatisticAutoCollector

背景 本文来从底层代码的实现来分析一下Starrocks怎么获取统计信息,这些统计信息在后续基于CBO的代价计算的时候有着重要的作用 本文基于Starrrocks 3.3.5 结论 Starrocks的统计信息的收集是通过周期性的运行一系列的SQL(以分区为维度,如果…

深度学习模型部署(四)——RKNN

一、RKNN部署及工具包安装 参考1:https://blog.csdn.net/qq_40280673/article/details/136211086#/ 参考2:瑞芯微官方教程 RKNN部署针对瑞芯微芯片优化,支持NPU硬件加速,需要安装rknn-toolkit,用于将pytorch模型转换为…

重构研发效能:项目管理引领软件工厂迈向智能化

1.项目管理智能化,激活软件工厂新引擎 在高速发展的软件开发时代,企业如何高效管理多个项目、协调团队合作、优化资源配置,已成为推动技术进步的关键。尤其是在多任务、多项目并行的复杂环境下,智能项目组合管理工具正成为软件工…

小米汽车二期工厂下月将竣工,产能提升助力市场拓展

在新能源汽车市场竞争日益激烈的当下,小米汽车传来重要进展消息。据多方信息显示,小米汽车二期工厂下月即将竣工,这一关键节点的到来,有望为小米汽车的产能提升与市场布局带来重大突破。​ 小米汽车二期工厂位于北京亦庄&#xff…

Python 爬虫实战:电竞比赛直播数据实时抓取与可视化分析

一、引言 在电竞行业快速发展的今天,电竞比赛直播数据成为了电竞爱好者、分析师和商业机构关注的焦点。实时抓取电竞比赛直播数据并进行分析,不仅可以帮助观众更好地理解比赛,还能为战队战术优化、选手表现评估以及赛事运营提供重要参考。 本文将详细介绍如何使用Python爬…

零基础设计模式——创建型模式 - 生成器模式

第二部分:创建型模式 - 生成器模式 (Builder Pattern) 前面我们学习了单例、工厂方法和抽象工厂模式,它们都关注如何创建对象。生成器模式(也常被称为建造者模式)是另一种创建型模式,它专注于将一个复杂对象的构建过程…

Debezium快照事件监听器系统设计

Debezium快照事件监听器系统设计 1. 系统概述 1.1 设计目标 为 Debezium 的快照过程提供可扩展的事件监听机制允许外部系统在快照过程中执行自定义逻辑提供线程安全的事件分发机制确保监听器的异常不会影响主快照流程1.2 核心功能 表快照开始事件监听表快照完成事件监听行数据…

手术机器人行业新趋势:Kinova多机械臂协同系统如何突破复杂场景适应性瓶颈?

机器人手术历经多阶段技术演进,已成为现代医疗重要方向。其需求增长源于医疗机构对高精度低风险手术方案的需求、微创手术普及及技术进步带来的复杂场景适应性提升。Kinova 轻型机械臂凭借模块化设计与即插即用功能,可快速适配不同手术环境,为…

力扣面试150题-- 二叉树展开为链表

Day 46 题目描述 思路 初次做法:由于我直接考虑O(1)级别的空间复杂度,于是采取了以下做法: 接下来的内容就是递归函数如果该节点为空,就返回null将此时的current作为头节点,left和right作为孩…

【Python】开发工具uv

文章目录 1. uv install1.1 下载安装脚本来安装1.2 使用pipx安装uv1.3 补充 2. 考虑在离线系统上安装uv2.1 下载并上传安装包2.2 用户级安装uv(~/.local/bin/)2.3 补充 3. uv 管理Python解释器4. uv 管理依赖5. uv运行代码5.1 uv不在项目下执行脚本5.2 u…

zabbix批量主机维护脚本兼容性更新

最近做新老版本zabbix监控主机迁移发现zabbix6.0后api安全有了效大升级,批量主机维护脚本出现认证兼容性问题,以下为脚本更新token支持:在这里插入代码片: # /usr/bin/env python3 # -*- coding:utf-8 -*- import requests impor…

Java中static关键字深度解析:从入门到高阶实战

Java中static关键字深度解析:从入门到高阶实战 目录 static的本质与核心特性静态变量 vs 实例变量:底层对比静态方法的设计哲学与应用场景高级用法:突破常规的static技巧 4.1 静态代码块:类加载的“初始化引擎”4.2 静态内部类&…

基于RT-Thread的STM32F4开发第五讲——软件模拟I2C

文章目录 前言一、RT-Thread工程创建二、AT24C02三、函数编写1.I2C_soft.c2.I2C_soft.h3.main.h 四、效果展示五、资源分享总结 前言 本章是基于RT-Thread studio实现软件模拟I2C,开发板是正点原子的STM32F4探索者,使用的RT-Thread驱动是5.1.0&#xff0…

49、c# 能⽤foreach 遍历访问的对象需满足什么条件?

在 C# 中,要使用 foreach 循环遍历一个对象,该对象必须满足以下条件之一: 1. 实现 IEnumerable 或 IEnumerable 接口 非泛型版本:System.Collections.IEnumerable public class MyCollection : IEnumerable {private int[] _da…

推客小程序系统开发:全栈式技术解决方案与行业赋能实践​

​ 在数字化营销深度渗透各行业的当下,传统推广模式已难以满足企业精细化运营与高效获客的需求。专业的推客小程序系统凭借其强大的裂变传播能力与灵活的推广机制,成为企业构建私域流量池、提升推广效能的核心工具。我们基于多年技术沉淀与行业洞察&…

WPF布局系统详解:掌握界面设计的核心艺术

掌握界面设计的核心艺术 1. WPF布局系统概述2. Grid布局详解2.1 基本行列定义2.2 单元格定位与跨行跨列 3. StackPanel布局4. DockPanel布局5. WrapPanel与Canvas5.1 WrapPanel自动换行布局 5. Canvas绝对定位6. 布局嵌套与综合应用7. 布局性能优化8. 响应式布局技巧9. 实战&am…

labview实现LED流水灯的第一种方法

目的:写一个跑马灯程序,7个灯从左到右不停的轮流点亮,闪烁间隔由滑动条调节。 一、方法1:使用顺序结构 使用顺序结构,平铺式顺序结构与创建局部变量实现LED流水灯 具体步骤如下: 第一步,选择…