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

目录
相关文章
|
27天前
|
Java 网络安全 开发工具
Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合
通过本文,读者可以深入了解Git的核心概念和实际操作技巧,提升版本管理能力。
|
1月前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
2月前
|
前端开发 搜索推荐 安全
陪玩系统架构设计陪玩系统前后端开发,陪玩前端设计是如何让人眼前一亮的?
陪玩系统的架构设计、前后端开发及前端设计是构建吸引用户、功能完善的平台关键。架构需考虑用户需求、技术选型、安全性等,确保稳定性和扩展性。前端可选用React、Vue或Uniapp,后端用Spring Boot或Django,数据库结合MySQL和MongoDB。功能涵盖用户管理、陪玩者管理、订单处理、智能匹配与通讯。安全性方面采用SSL加密和定期漏洞扫描。前端设计注重美观、易用及个性化推荐,提升用户体验和平台粘性。
91 0
|
2月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
179 3
|
2月前
|
消息中间件 运维 安全
后端开发中的微服务架构实践与挑战####
在数字化转型的浪潮中,微服务架构凭借其高度的灵活性和可扩展性,成为众多企业重构后端系统的首选方案。本文将深入探讨微服务的核心概念、设计原则、关键技术选型及在实际项目实施过程中面临的挑战与解决方案,旨在为开发者提供一套实用的微服务架构落地指南。我们将从理论框架出发,逐步深入至技术细节,最终通过案例分析,揭示如何在复杂业务场景下有效应用微服务,提升系统的整体性能与稳定性。 ####
62 1
|
2月前
|
消息中间件 运维 API
后端开发中的微服务架构实践####
本文深入探讨了微服务架构在后端开发中的应用,从其定义、优势到实际案例分析,全面解析了如何有效实施微服务以提升系统的可维护性、扩展性和灵活性。不同于传统摘要的概述性质,本摘要旨在激发读者对微服务架构深度探索的兴趣,通过提出问题而非直接给出答案的方式,引导读者深入
57 1
|
2月前
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####
|
10天前
|
传感器 监控 安全
智慧工地云平台的技术架构解析:微服务+Spring Cloud如何支撑海量数据?
慧工地解决方案依托AI、物联网和BIM技术,实现对施工现场的全方位、立体化管理。通过规范施工、减少安全隐患、节省人力、降低运营成本,提升工地管理的安全性、效率和精益度。该方案适用于大型建筑、基础设施、房地产开发等场景,具备微服务架构、大数据与AI分析、物联网设备联网、多端协同等创新点,推动建筑行业向数字化、智能化转型。未来将融合5G、区块链等技术,助力智慧城市建设。
|
2月前
|
Cloud Native API 持续交付
云原生架构下的微服务治理策略与实践####
本文旨在探讨云原生环境下微服务架构的治理策略,通过分析当前面临的挑战,提出一系列实用的解决方案。我们将深入讨论如何利用容器化、服务网格(Service Mesh)等先进技术手段,提升微服务系统的可管理性、可扩展性和容错能力。此外,还将分享一些来自一线项目的经验教训,帮助读者更好地理解和应用这些理论到实际工作中去。 ####
72 0
|
2月前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
303 69
从单体到微服务:如何借助 Spring Cloud 实现架构转型

热门文章

最新文章