【备战软考架构师系列笔记 · 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

目录
相关文章
|
15天前
|
机器学习/深度学习 人工智能 文件存储
Llama Nemotron:英伟达开源基于Llama架构优化的推理模型,253B参数持平DeepSeek R1!
NVIDIA推出的Llama Nemotron系列推理模型,基于Llama架构优化,包含Nano/Super/Ultra三款,在数学推理、编程和工具调用等任务中展现卓越性能。
56 5
Llama Nemotron:英伟达开源基于Llama架构优化的推理模型,253B参数持平DeepSeek R1!
|
8天前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
44 5
|
8天前
|
人工智能 算法 网络安全
基于PAI+专属网关+私网连接:构建全链路Deepseek云上私有化部署与模型调用架构
本文介绍了阿里云通过PAI+专属网关+私网连接方案,帮助企业实现DeepSeek-R1模型的私有化部署。方案解决了算力成本高、资源紧张、部署复杂和数据安全等问题,支持全链路零公网暴露及全球低延迟算力网络,最终实现技术可控、成本优化与安全可靠的AI部署路径,满足企业全球化业务需求。
|
10天前
|
机器学习/深度学习 人工智能 算法
超越 DeepSeek-R1!Seed-Thinking-v1.5:字节跳动开源MoE架构推理模型,200B总参数仅激活20B,推理效率提升5倍
字节跳动推出的200B参数混合专家模型,在AIME/Codeforces/GPQA等基准测试中实现多项突破,采用强化学习框架与流式推理系统,支持7大领域复杂推理任务。
132 13
超越 DeepSeek-R1!Seed-Thinking-v1.5:字节跳动开源MoE架构推理模型,200B总参数仅激活20B,推理效率提升5倍
|
19天前
|
机器学习/深度学习 人工智能 并行计算
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
|
3天前
|
存储 人工智能 自然语言处理
Cursor这类编程Agent软件的模型架构与工作流程
编程Agent的核心是一个强大的大语言模型,负责理解用户意图并生成相应的代码和解决方案。这些模型通过海量文本和代码数据的训练,掌握了广泛的编程知识和语言理解能力。
35 1
|
13天前
|
人工智能 JavaScript 开发工具
MCP详解:背景、架构与应用
模型上下文协议(MCP)是由Anthropic提出的开源标准,旨在解决大语言模型与外部数据源和工具集成的难题。作为AI领域的“USB-C接口”,MCP通过标准化、双向通信通道连接模型与外部服务,支持资源访问、工具调用及提示模板交互。其架构基于客户端-服务器模型,提供Python、TypeScript等多语言SDK,方便开发者快速构建服务。MCP已广泛应用于文件系统、数据库、网页浏览等领域,并被阿里云百炼平台引入,助力快速搭建智能助手。未来,MCP有望成为连接大模型与现实世界的通用标准,推动AI生态繁荣发展。
288 8
|
11天前
|
机器学习/深度学习 编解码 人工智能
Kimi开源MoE架构多模态推理模型,小激活参数,大能量!
最近Moonshot AI推出了 Kimi-VL,这是一个高效的开源混合专家(MoE)视觉-语言模型(VLM),它提供了先进的多模态推理、长上下文理解以及强大的代理能力——所有这些功能都只需激活其语言解码器中的2.8B参数(Kimi-VL-A3B)。
67 1
|
4月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
17天前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
98 12
下一篇
oss创建bucket