【备战软考架构师系列笔记 · 002】软件工程篇 —— 软件开发模型(上篇:经典开发模型) ⭐⭐⭐⭐⭐

简介: 软件开发模型笔记(上篇)—— 经典的几个软件开发模型

软件开发模型笔记(上篇)—— 经典的几个软件开发模型

 

 

# 常见软件开发模型


## 原型模型⭐


### 特点


- 适用于需求不明确的场景,可以帮助用户明确需求


## 瀑布模型


### 特点


- 软件开发阶段划分明确,每个阶段有明显界限,一旦发生错误,需要推倒重来


   - 1、需求分析

   - 2、总体设计

   - 3、详细设计

   - 4、编码与调试

   - 5、集成测试与系统测试


- 容易理解,管理成本低,每个阶段有对应的成果产物

- 适用于需求明确的项目,一般表述为需求明确、二次开发或者对于数据处理类型的项目

- 瀑布模型会产生一大堆文档,大部分对客户无意义,完成文档需要花费大量人力,是一种重载的过程


## (瀑布)V模型


### 特点


- V模型是瀑布模型的变体,更强调测试

- 更强调测试,测试贯穿项目始终


   - 设计阶段


       - 1、需求分析

       - 2、概要(总体)设计

       - 3、详细设计

       - 4、编码与调试


   - 测试阶段


       - 5、单元测试

       - 6、集成测试

       - 7、系统测试/验收测试


- 保持了瀑布模型阶段式文档驱动的特点


## 演化模型


### 可以看作是若干次瀑布模型的迭代,根据不同的迭代特点,可以演化为螺旋模型、增量模型


## 螺旋模型


### 特点


- 结合瀑布模型和演化模型的优点

- 每个周期都包括四个阶段


   - 1、需求定义/制定计划

   - 2、风险分析(典型特点)

   - 3、工程实现/实施

   - 4、评审/客户评估


- 适用于庞大而复杂、具有高风险的系统

- 支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便

- 有助于提高目标软件的适应能力

- 在风险较大的系统中,如果不能及时识别风险,会造成重大损失

- 过多的迭代次数,会增加成本,延迟提交时间


## 增量模型


### 特点


- 融合瀑布模型的基本成分和原型实现的迭代特征

- 可以有多个可用版本的发布,每个版本都是一个完整的系统

- 版本间的增量比较均匀,并且后一版本以前一个版本为基础进行开发,扩充核心功能


   - 第一个版本往往是系统的核心功能,可以满足用户基本的需求

   - 用户可以短时间内获得系统初始版本的试用,问题可以很快进行反馈到后续开发中


### 增量与迭代(UP模型 / 敏捷开发模型)


- 增量:每次实现一部分局部的功能

- 迭代:先绘制整体轮廓,每次实现轮廓内的一部分


## 喷泉模型


### 特点


- 典型的面向对象模型

- 迭代、无间隙

- 将软件开发划分为多个阶段,每个阶段无明显界限,并且可以交叉迭代


## 快速应用开发(RAD)


### 概念


- 瀑布模型的一个高速变种,适用比传统生命周期快得多的开发方法

- 强调极短的开发周期

- 通常适用于基于构建的开发方法获得快速开发


### 过程


- 业务建模

- 数据建模

- 过程建模

- 应用生成

- 测试与交付


### 适用性


- 对模块化要求比较高

- 如果有高性能指标,且必须通过调整结构使其适应系统构件才能获取该指标的情况,RAP不适用

-  开发者和客户必须在很短时间内完成一系列需求分析,任何一方配合不当都会导致失败

- 只能适用于管理信息系统的开发,不适用于技术风险很高的场景


## 构件组装模型


### 概念


- 利用构件进行搭积木式的开发

- 构件是独立的、自包容的,架构开发也是独立的,构件之间通过接口进行交互协作


### 模型


- 1、需求分析和定义

- 2、软件架构设计/设计构件组装

- 3、建立构件库


   - 构件标准


       - CORBA

       - COM/DCOM

       - EJB


   - 构件库


       - 构件获取

       - 构件管理


- 4、构建应用软件

- 5、测试与发布


### 特点


- 构件的自包容性,系统拓展更容易

- 设计良好的构件更容易被重用,降低软件开发成本

- 构件粒度小,安排开发更灵活,可以并行独立开发构件

- 构件设计需要经验丰富,设计不良的构件会降低组装模型的重用度

- 考虑软件重用度,往往需要对其他方面做出让步,例如性能

- 需要程序员熟练掌握构件,增加学习成本

- 第三方构件库的质量会影响软件的质量,第三方的构件库质量难以保证


## 统一过程(UP/RUP)


### 特点


- 用例驱动

- 以架构为中心


   - 同需求和项目管理人员密切协作

   - 细化软件架构

   - 保持整个架构的概念完整性,包括设计系统架构、定义设计方案、设计指南、编码指南、评审设计等


- 迭代和增量


   - 但不属于敏捷方法,未经裁剪的UP是一个重载过程


### 四个阶段


- 构思(初始)


   - 界定系统范围,确定系统架构,明确系统目的

   - 制定工作计划及资源要求

   - 业务建模和需求工作是重头戏,强调定义和细化用例


- 细化


   - 抽象出软件的逻辑模型

   - 设计出软件架构

   - 分析和设计模型是最主要的工作,强调类的定义和体系结构的表示


- 构建


   - 将设计转化为实现,并进行集成和测试

   - 需要基本完成系统的构建,该阶段的重点是实施和测试


- 交付(转移阶段)


   - 系统需求已经完全成熟或产品化

   - 该阶段会存在对软件系统的重构、修改、测试和部署


### 九个核心工作流


- 1、业务建模

- 2、需求

- 3、分析设计

- 4、实施

- 5、测试

- 6、部署

- 7、配置与变更管理

- 8、项目管理

- 9、环境(管理)


1995789-20220109190050258-610321535.png

目录
相关文章
|
机器学习/深度学习 人工智能 监控
大型动作模型LAM:让企业重复任务实现80%效率提升的AI技术架构与实现方案
大型动作模型(LAMs)作为人工智能新架构,融合神经网络与符号逻辑,实现企业重复任务的自动化处理。通过神经符号集成、动作执行管道、模式学习、任务分解等核心技术,系统可高效解析用户意图并执行复杂操作,显著提升企业运营效率并降低人工成本。其自适应学习能力与上下文感知机制,使自动化流程更智能、灵活,为企业数字化转型提供坚实支撑。
709 0
大型动作模型LAM:让企业重复任务实现80%效率提升的AI技术架构与实现方案
|
12月前
|
数据采集 机器学习/深度学习 搜索推荐
MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
MIT与丰田研究院研究发现,扩散模型的“局部性”并非源于网络架构的精巧设计,而是自然图像统计规律的产物。通过线性模型仅学习像素相关性,即可复现U-Net般的局部敏感模式,揭示数据本身蕴含生成“魔法”。
427 3
MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
|
12月前
|
Java API 开发工具
灵码产品演示:软件工程架构分析
本演示展示灵码对复杂软件项目的架构分析与文档生成能力。通过Qwen3模型,结合PlantUML,自动生成系统架构图、微服务时序图,并提取API接口文档,实现高效、智能的代码理解与文档输出。
653 5
|
11月前
|
机器学习/深度学习 存储 缓存
115_LLM基础模型架构设计:从Transformer到稀疏注意力
大型语言模型(LLM)的架构设计是其性能的核心决定因素。从2017年Transformer架构的提出,到如今的稀疏注意力和混合专家模型,LLM架构经历了快速的演进。本文将全面探讨LLM基础架构的设计原理,深入分析Transformer的核心机制,详细介绍稀疏注意力、MoE等创新架构,并展望未来架构发展方向。通过数学推导和实践案例,为构建高效、强大的LLM提供全面指导。
1304 0
|
11月前
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
503 0
|
编解码 文字识别 自然语言处理
Dots.ocr:告别复杂多模块架构,1.7B参数单一模型统一处理所有OCR任务22
Dots.ocr 是一款仅1.7B参数的视觉语言模型,正在重塑文档处理技术。它将布局检测、文本识别、阅读顺序理解和数学公式解析等任务统一于单一架构,突破传统OCR多模块流水线的限制。在多项基准测试中,其表现超越大参数模型,展现出“小而精”的实用价值,标志着OCR技术向高效、统一、灵活方向演进。
1092 0
Dots.ocr:告别复杂多模块架构,1.7B参数单一模型统一处理所有OCR任务22
|
存储 人工智能 调度
上海创智学院联合无问芯穹发布Megrez2.0,本征架构突破端模型不可能三角,以终端算力撬动云端智能
终端是实现数字智能和生命智能自由交互的重要接口,持续帮助人类拓展生产能力的边界。当下,终端智能面临着“能效-空间-智能”的不可能三角:以DeepSeek-R1为例,其参数规模高达6710亿,超出了大部分笔记本电脑的内存容量;即使勉强在一台笔记本电脑上成功运行满血版模型,理论上坚持不到9分钟就会耗尽电池;如果通过蒸馏,将满血版模型压缩到更小尺寸,此时的精度损失又可能满足不了智能水平的要求。
329 0
上海创智学院联合无问芯穹发布Megrez2.0,本征架构突破端模型不可能三角,以终端算力撬动云端智能
|
人工智能 监控 API
MCP中台,究竟如何实现多模型、多渠道、多环境的统一管控?如何以MCP为核心设计AI应用架构?
本文产品专家三桥君探讨了以 MCP 为核心的 AI 应用架构设计,从统一接入、数据管理、服务编排到部署策略等维度,系统化分析了 AI 落地的关键环节。重点介绍了 API 网关的多终端适配、数据异步处理流程、LLM 服务的灰度发布与 Fallback 机制,以及 MCP Server 作为核心枢纽的调度功能。同时对比了公有云 API、私有化 GPU 和无服务器部署的适用场景,强调通过全链路监控与智能告警保障系统稳定性。该架构为企业高效整合 AI 能力提供了实践路径,平衡性能、成本与灵活性需求。
886 0
|
11月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路