软件生命周期模型知识点总结(瀑布模型、演化模型、增量模型、V模型、W模型、螺旋模型、构件组装模型、RAD模型、RUP模型、极限编程模型)

基本概念

–PDCA循环(戴明环)

PDCA循环,针对针对工程项目的质量目标提出的模型,称为戴明环(Plan, Do, Check, Action)
在这里插入图片描述

–软件工作过程

软件工程过程是为了获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动。
具体活动包括:
软件规格说明、软件开发、软件确认、软件演进、

–软件生命周期

指软件产品从考虑其概念开始,到该软件产品不再使用为止的整个时期。
一般包括概念阶段、分析与设计阶段、构造阶段、移交和运行阶段等不同时期。
软件生命周期的六个基本步骤:制定计划(P)、需求分析(D)、设计(D)、程序编码(D)、测试(C)、运行维护(A)。
软件生命周期和戴明环的对应关系:
在这里插入图片描述

–软件过程模型

对软件过程的概括描述和抽象,包括各种活动(Activities)、软件工件(artifacts)和参与角色(Actors/Roles)等。

传统软件生命周期模型

–瀑布模型

工作流程
需求分析—软件需求—分析—程序设计—编码—测试—运行
每个阶段都需要进行审核和文档输出(文档驱动)

模型作用
为软件开发和维护提供了有效的管理模式。在软件开发早期,在消除非结构化软件、降低软件复杂度、促进软件开发工程化方面起着显著的作用。

每个开发活动的特征:
·本活动依赖于上一项活动的输出作为工作对象,这些输出一般是代表某活动结束的里程碑式文档。
·根据本阶段的活动规程执行相应的任务。
·本阶段活动的最终产出——软件工件,将会作为下一活动的输入。
·对本阶段活动执行情况进行评审。

优点:
降低复杂度、提高透明性和可管理性、强调需求分析和设计、阶段审核和文档输出保证了阶段之间的正确衔接,能够及时发现问题。
缺点:
缺乏灵活性、不适用于需求不明的开发情况、风险控制能力较低、文档驱动增加了系统的工作量、只依赖于文档来评估进度,可能会得出错误结论、成功周期较长

适用场景:
需求明确、较大型系统、开发周期不紧张
在这里插入图片描述

–演化模型

工作流程
在瀑布模型的基础上,一次性开发难以成功,因此,演化模型提倡进行“两次开发”,分别是试验开发和产品开发。每个开发阶段按照瀑布模型进行具体开发活动。

优点:
明确用户需求、提高系统质量、降低开发风险
缺点:
管理难度提高、开发结构化较差、可能抛弃文档驱动、可能导致产品结构化较差

适用场景:
需求不清、开发周期短的中小型系统。
在这里插入图片描述

–增量模型

模型概述:
结合瀑布模型和演化模型的优点,在需求不清时,对最核心或最清晰的需求,利用瀑布模型实现。再对后续需求进行重复开发(可能按照需求的优先级逐个进行),从而逐步建成一个完整的软件系统。

优点:
保障核心功能实现、开发风险较低、保障最高优先级的功能的可靠实现、提高系统稳定性和可维护性。
缺点:
增量粒度难以合理选择、确定所有的需求服务较困难
在这里插入图片描述

–喷泉模型

模型概述:
又称迭代模型,每个阶段是相互重叠、多次反复的。每个开发阶段没有次序要求,可以并发进行,在某个阶段随时补充其他阶段中遗漏的需求。

优点:
提高效率、缩短周期
缺点:
管理结构性较差
在这里插入图片描述

–V模型

模型概述:
是瀑布模型的变种。它将测试模块细化分解,把测试看作与开发同等重要的过程,每一测试阶段的前提和要求是对应开发阶段的文档。

测试模块:
·单元测试:根据详细设计说明书,检测每个单元模块是否符合预期要求。主要检查编码过程中可能存在的错误。
·集成测试:根据概要设计说明书,检测模块是否正确聚集。主要检查模块与接口之间可能存在的错误。
·系统测试:根据需求分析,检测系统作为一个整体在预定环境中能否正常的有效工作。
·验收测试: 是否满足客户的需求。

优点
改进开发效率和开发效果
缺点:
前期出现错误的话,后期难以挽救和弥补或者花费的代价巨大。
在这里插入图片描述

–W模型

模型概述
由两个V模型构成,分别代表测试与开发过程。每个开发过程对应一个测试,体现了开发和测试的并行关系,测试的不局限于程序,对于阶段文档也需要进行测试。

优点:
增加了软件各开发阶段中应同步进行的验证和确认活动。
缺点:
开发,测试活动保持着一种前后关系,无法支持迭代软件开发模型。
在这里插入图片描述

–螺旋模型

模型概述:
将开发过程分为四个类型:风险分析、制定计划、实施工程、客户评估。每次评估之后确定是否进行螺旋线的下一个回路。

适用对象:
风险较高、开发周期较长的大型软件项目

优点和缺点

降低风险,但是开发周期长。
在这里插入图片描述

–构件组装模型

模型概述:
将整个系统模块化,在一定构件模型的支持下,复用构件库中软件构件,通过组装构件构造软件系统。开发过程就是构件组装的过程,是迭代的过程,维护过程就是构件升级、替换和扩充的过程。

优点:
软件复用充分,提高效率,允许多项目同时开发,降低开发费用,提高可维护性,可实现分步提交软件产品。
缺点:
构件组装结构没有通用标准,组装过程存在风险、构件可重用性和系统高效性不易协调;构件质量直接影响产品质量。
在这里插入图片描述

–快速开发应用模型(RAD)

模型概述:
增量型开发模型,通过大量使用可复用 构件,采用基于构件的建造方法赢得了快速开发。
其流程从业务建模开始,随后是数据建模、过程建模、应用生成、测试及反复。RAD目的是快速发布系统方案,而技术上的优美相对发布的速度来说是次要的。

优点:
开发周期短
缺点:
需求分析的阶段时间较短、适用性一般

适用范围
适合于管理信息系统开发,不适合于技术风险较高、与外围系统的互操作性较高的系统开发
在这里插入图片描述

–原型方法

在传统的软件生命开发周期中,原型方法是经常被使用的一种开发方法。

概念

瀑布模型以及基于瀑布模型的软件生命周期模型,都需要精确的需求才能很好地执行后续的开发活动,但是准确的需求分析很难获取。
原型方法指在获得基本需求后,快速分析,实现一个小型的软件系统原型,满足用户的基本要求。用户可以提出修改意见,校正需求。
原型方法主要用于明确需求,但也可以用于软件开发的其他阶段。

种类

1、废弃策略

  • 探索型:弄清用户要求,确定期望特性;探讨多个方案的可行性。主要针对需求模糊、用户和开发者对项目都缺乏经验的情况。
  • 实验型:用于大规模开发和实现之前,考核技术方案是否合适、分析和设计的规格说明是否可靠。

2、追加策略

  • 进化型:适应需求变化,不断改进原型,逐步将原型进化成最终系统。它将原型方法的思想扩展到软件开发的全过程,适用于需求经常变动的软件项目。

优缺点

优点:
有助于快速理解用户需求、容易确定系统性能和设计可行性、有利于建成最终系统。
缺点:
文档容易被忽略、建立原型增加工作量、项目难以有效规划和管理。

新型软件生命周期模型

RUP模型

模型概述:
它是一类面向对象的程序开发方法论,既是一个生命周期模型,也是一个支持面向对象软件开发的工具。
软件生命周期在时间上被分解为四个顺序的阶段:初始阶段、细化阶段、构造阶段、交付阶段。每个阶段在阶段结尾执行一次评估,确定阶段目标是否满足、是否可以进入下一个阶段。以用例为驱动,软件体系结构为核心,应用迭代及增量的新型软件生命周期模型。

各阶段工作说明
初始阶段:了解业务,确定项目边界。包括验收规范、风险评估、资源估计、阶段计划制定等
细化阶段:分析问题领域,建立软件体系结构基础,编制项目计划,完成技术要求高、风险大的关键需求开发。
构造阶段:将所有剩余的技术构件和业务需求功能开发出来,集合成产品,所有功能被详细测试。
移交阶段:重点是确保软件可被最终用户使用。交付阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量调整。

每个迭代的主要活动:
核心过程工作流(6个):业务建模、需求、分析和设计、实现、测试、部署
核心支持工作流(3个):配置和变更管理、项目管理、环境

模型特点:
·适应性开发:小步骤、快速反馈和调整;
·使用用例驱动软件建模:用例是获取需求、制定计划、进行设计、测试、编写终端用户文档的驱动力量。
·可视化软件建模:使用UML进行软件建模。
在这里插入图片描述
在这里插入图片描述

敏捷建模和极限编程

模型概述:
一种以实践为基础的软件工程过程和思想。使用快速反馈测试(测试驱动)、大量而迅速的交流,经过保证的测试来最大限度的满足用户的需求。主要强调用户满意,开发人员可以对需求的变化作出快速的反应。
每个参加项目开发的人都将担任一个角色(项目经理、项目监督人等等)并履行相应的权利和义务。

特点:

  • 测试驱动:XP内层的过程基于Test Driven Development,每个开发周期都有很多相应的单元测试。
  • 大力提倡设计复核(Review)、代码复核以及重整和优化(Refectory),这些过程也是优化设计的过程;
  • 提倡配对编程(Pair Programming),而且代码所有权是归于整个开发队伍。
  • 程序员在写程序和重整优化程序时要严格遵守编程规范。
  • 任何人可以修改其他人写的程序,但修改后要确定新程序能通过单元测试。
  • 在开始写程序之前先写单元测试。

在这里插入图片描述

解决ESP32烧录MicroPython时esptool.py未识别的错误 当出现esptool.py not recognized错误时,通常是由于环境变量未正确配置或工具未安装。以下是逐步解决方法: 1. 确认esptool.py是否安装 安装命令: Bash pip install esptool # 或使用Python3 pip3 install esptool 如果已安装但版本过旧,可升级: Bash pip install --upgrade esptool 2. 检查环境变量配置 Windows系统: Python脚本默认安装路径为C:\Users\<用户名>\AppData\Local\Programs\Python\PythonXX\Scripts(XX为版本号)。 将此路径添加到系统环境变量PATH中4。 修改后需重启命令行工具或IDE(如VS Code)。 Linux/macOS系统: Bash export PATH="$PATH:$HOME/.local/bin" 可将此命令添加到~/.bashrc或~/.zshrc中永久生效。 3. 通过Python模块直接运行 若环境变量未生效,可显式调用Python模块: Bash python -m esptool --help # 或指定Python3 python3 -m esptool --help 4. 检查开发环境配置 如果使用ESP-IDF框架,确保已执行环境初始化脚本: Bash # Linux/macOS . $IDF_PATH/export.sh # Windows %IDF_PATH%\export.bat 此步骤可能影响工具链路径的识别。 5. 验证命令格式 确保烧录命令正确,典型MicroPython烧录命令示例: Bash esptool.py --port COM3 erase_flash esptool.py --port COM3 --baud 460800 write_flash -z 0x1000 firmware.bin 替换COM3为实际串口号,firmware.bin为固件路径。 6. 重装或修复工具 若问题持续,尝试: 卸载后重装: Bash pip uninstall esptool pip install esptool 检查系统架构兼容性(如32/64位系统或文件损坏问题,参考文件格式错误解决方法35)。第二步的具体步骤
03-14
<think>好的,用户遇到了ESP32烧录MicroPython时出现的“esptool.py未识别的错误”,需要解决这个问题。首先,我得回想一下常见的导致这个错误的原因。通常,这可能是因为esptool.py没有正确安装,或者环境变量配置有问题,导致系统找不到这个工具。另外,有时候用户可能使用了错误的Python版本,或者在虚拟环境中没有激活相关环境,也会导致命令无法识别。 首先,用户的问题中提到环境变量未正确配置或工具未安装。我需要确认用户是否已经正确安装了esptool。用户可能只是输入了命令,但安装过程中可能有错误,或者安装的位置不在系统的PATH环境变量里。比如,在Windows上,Python的Scripts目录如果没有添加到PATH,那么无论怎样输入esptool.py,系统都无法找到这个可执行文件。 接下来,检查环境变量配置。对于不同操作系统,步骤有所不同。Windows用户需要找到Python安装路径下的Scripts文件夹,然后手动添加到系统环境变量中。而Linux或macOS用户可能需要修改shell配置文件,如.bashrc或.zshrc,添加export PATH="$PATH:$HOME/.local/bin"这样的语句。这里需要注意,用户是否知道如何修改这些文件,以及如何应用更改后的配置,比如重启终端或执行source命令。 然后,用户可能已经安装了esptool,但环境变量没有生效,这时候建议他们使用python -m esptool来显式调用模块,这样即使环境变量有问题,也能正确执行。这里需要确认用户使用的Python版本,是否有多个Python版本导致冲突,比如系统自带的Python2和用户安装的Python3。这时候可能需要明确指定python3或者pip3来安装和运行。 另外,如果用户在使用ESP-IDF框架,可能需要初始化环境变量,因为ESP-IDF的export脚本可能会设置一些必要的路径。用户可能没有执行这个步骤,导致工具链路径未被正确识别。这时候需要提醒用户检查是否已经正确配置了ESP-IDF的环境。 还有,用户可能在烧录时使用了错误的命令格式,比如串口号不正确或者固件路径错误。需要提供典型的烧录命令示例,并提醒用户替换实际的串口号和固件路径。此外,用户可能需要检查串口权限,特别是在Linux/macOS下,可能需要sudo权限或者将用户加入dialout组。 如果以上步骤都无效,可能需要重装esptool或者检查系统兼容性问题,比如32位和64位系统的差异,或者文件损坏导致安装不完整。这时候建议用户卸载后重新安装,并确保使用正确的pip版本。 在用户给出的步骤中,第二步是检查环境变量配置的具体步骤,特别是Windows部分。用户提到需要将Python的Scripts路径添加到PATH,并重启命令行工具或IDE。这里可能需要详细说明如何找到Scripts文件夹的路径,如何进入系统环境变量设置界面,如何添加路径,以及重启的重要性,因为不重启的话,新的环境变量不会被已打开的终端会话识别。 同时,需要注意不同Python版本对应的路径可能不同,比如Python38、Python39等,用户需要根据自己安装的版本来替换路径中的XX部分。此外,如果用户使用了虚拟环境,那么esptool可能安装在虚拟环境的Scripts目录下,这时候需要激活虚拟环境才能使用,或者在全局环境中安装。 可能用户遇到的另一个问题是,在安装esptool时使用了pip,但实际调用的pip关联的Python版本不是用户预期的版本,导致esptool安装到了其他位置。这时候需要检查pip和python的路径是否一致,可以使用pip --version来查看。 总结下来,需要一步步引导用户检查安装、环境变量、命令格式等方面,确保每个环节都正确无误。同时,提供具体的命令示例和操作步骤,帮助用户逐一排查问题。可能还需要提醒用户注意操作系统的差异,以及权限问题,比如在Linux下是否需要sudo来执行烧录命令,或者串口设备的使用权限。</think>解决`esptool.py not recognized`错误时,**环境变量配置**是关键步骤之一。以下是针对不同操作系统的详细操作指南: --- ### **第二步:检查环境变量配置(具体步骤)** #### **Windows系统** 1. **定位Python的Scripts目录** - 默认路径为: `C:\Users\<你的用户名>\AppData\Local\Programs\Python\PythonXX\Scripts` (`XX`为Python版本号,例如`Python311`) - 若不确定路径,可通过以下方式查找: ```bash pip show esptool ``` 在输出中查看`Location`字段,Scripts目录通常位于同级路径下的`Scripts`文件夹。 2. **添加路径到系统环境变量** - 按下`Win + S`,搜索“环境变量”,选择**编辑系统环境变量**。 - 点击**环境变量(N)...** → 在“系统变量”中选中`Path` → 点击**编辑** → **新建**。 - 粘贴Scripts目录的完整路径(例如`C:\Users\Alice\AppData\Local\Python\Python311\Scripts`)。 - 逐一点击**确定**保存所有窗口。 3. **验证配置** - 打开新的命令提示符(需重启终端使配置生效),输入: ```bash esptool.py --help ``` - 若显示帮助信息,则配置成功;若仍报错,尝试重启电脑。 --- #### **Linux/macOS系统** 1. **临时添加环境变量** - 在终端执行: ```bash export PATH="$PATH:$HOME/.local/bin" ``` - 验证命令是否生效: ```bash esptool.py --help ``` 2. **永久生效配置** - 编辑shell配置文件(根据使用的Shell类型): ```bash # 对于bash nano ~/.bashrc # 对于zsh nano ~/.zshrc ``` - 在文件末尾添加: ```bash export PATH="$PATH:$HOME/.local/bin" ``` - 保存后执行: ```bash source ~/.bashrc # 或 source ~/.zshrc ``` --- ### **常见问题补充** - **路径错误**:确保Scripts目录实际存在且包含`esptool.py`文件。 - **多Python版本冲突**:若系统有多个Python版本,使用`python3 -m pip install esptool`安装,并通过`python3 -m esptool`调用。 - **IDE未继承环境变量**:如VS Code需重启或新建终端标签页。 --- ### **操作验证** - 执行以下命令测试: ```bash esptool.py chip_id ``` 若输出ESP32芯片信息,则环境配置成功。 通过以上步骤,可解决大部分因环境变量导致的`esptool.py not recognized`问题。若仍报错,请检查工具安装完整性或系统权限。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值