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

目录
相关文章
|
6天前
|
机器学习/深度学习 编解码 vr&ar
NeurIPS 2024最佳论文,扩散模型的创新替代:基于多尺度预测的视觉自回归架构
本文详细解读NeurIPS 2024最佳论文《视觉自回归建模:基于下一尺度预测的可扩展图像生成》。该研究提出VAR模型,通过多尺度token图和VAR Transformer结构,实现高效、高质量的图像生成,解决了传统自回归模型在二维结构信息、泛化能力和计算效率上的局限。实验表明,VAR在图像质量和速度上超越现有扩散模型,并展示出良好的扩展性和零样本泛化能力。未来研究将聚焦于文本引导生成和视频生成等方向。
49 8
NeurIPS 2024最佳论文,扩散模型的创新替代:基于多尺度预测的视觉自回归架构
|
8天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
1月前
|
机器学习/深度学习 测试技术 定位技术
新扩散模型OmniGen一统图像生成,架构还高度简化、易用
近期,一篇题为“OmniGen: Unified Image Generation”的论文介绍了一种新型扩散模型OmniGen,旨在统一图像生成任务。OmniGen架构简洁,无需额外模块即可处理多种任务,如文本到图像生成、图像编辑等。该模型通过修正流优化,展现出与现有模型相当或更优的性能,尤其在图像编辑和视觉条件生成方面表现突出。OmniGen仅含3.8亿参数,却能有效处理复杂任务,简化工作流程。尽管如此,OmniGen仍存在对文本提示敏感、文本渲染能力有限等问题,未来研究将继续优化其架构与功能。
56 16
|
29天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
90 3
|
27天前
|
前端开发 搜索推荐 安全
陪玩系统架构设计陪玩系统前后端开发,陪玩前端设计是如何让人眼前一亮的?
陪玩系统的架构设计、前后端开发及前端设计是构建吸引用户、功能完善的平台关键。架构需考虑用户需求、技术选型、安全性等,确保稳定性和扩展性。前端可选用React、Vue或Uniapp,后端用Spring Boot或Django,数据库结合MySQL和MongoDB。功能涵盖用户管理、陪玩者管理、订单处理、智能匹配与通讯。安全性方面采用SSL加密和定期漏洞扫描。前端设计注重美观、易用及个性化推荐,提升用户体验和平台粘性。
56 0
|
1月前
|
消息中间件 运维 安全
后端开发中的微服务架构实践与挑战####
在数字化转型的浪潮中,微服务架构凭借其高度的灵活性和可扩展性,成为众多企业重构后端系统的首选方案。本文将深入探讨微服务的核心概念、设计原则、关键技术选型及在实际项目实施过程中面临的挑战与解决方案,旨在为开发者提供一套实用的微服务架构落地指南。我们将从理论框架出发,逐步深入至技术细节,最终通过案例分析,揭示如何在复杂业务场景下有效应用微服务,提升系统的整体性能与稳定性。 ####
46 1
|
1月前
|
消息中间件 运维 API
后端开发中的微服务架构实践####
本文深入探讨了微服务架构在后端开发中的应用,从其定义、优势到实际案例分析,全面解析了如何有效实施微服务以提升系统的可维护性、扩展性和灵活性。不同于传统摘要的概述性质,本摘要旨在激发读者对微服务架构深度探索的兴趣,通过提出问题而非直接给出答案的方式,引导读者深入
47 1
|
1月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
2月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
62 3
|
2月前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####

热门文章

最新文章