当前位置: 首页 > news >正文

软件项目管理课程之第4讲:软件需求管理

讲授内容

  1. 项目案例

  2. 软件需求管理的基本概念

  3. 软件需求开发

  4. 软件需求管理

项目案例

  • 案例背景:小王作为软件项目负责人,带领团队开展需求调查工作,但在需求分析和后续开发过程中出现了一系列问题。

  • 问题表现

    • 项目规模庞大,需求分析小组不知如何开展工作,对需求分析的复杂性和难度估计不足。

    • 需求分析小组不能有效工作,不知哪些属于用户需求,哪些不是,不知怎样获取用户需求,如何分析清楚。

    • 不知按照怎样的规范书写软件需求规格说明书,得到的软件需求质量不高,存在说不清、遗漏、矛盾、啰嗦等问题。

    • 需求评审不严格,导致遗漏了许多需求,获取的用户需求不一致、描述不清晰和准确。

    • 用户没有参加需求评审,许多软件需求未得到用户认可,最终开发出的软件不能满足用户要求,用户拒绝接收软件并拒绝付款。

    • 在软件开发阶段,由于软件需求的不准确性、不一致性和二义性,软件设计人员需通过用户再次确认需求。

    • 在开发过程中,用户的需求仍在改变,这些改变的需求未得到有效管理和控制,未能及时反馈给软件开发小组,导致未能在待开发的软件中得到体现。

    • 由于需求未能有效管理,在最终项目验收过程中出现问题,实际开发的软件未能完全反映用户的需求,导致用户不满意,项目延期。

  • 案例启示:需求分析极为重要且困难复杂,用户需求经常性变更正常,为保证软件需求质量,必须对需求分析的人、过程和产品进行有效管理,需求管理不善将导致严重后果。

软件需求管理的基本概念

  • 什么是软件需求

    • 软件需求是用户对目标软件系统在功能、性能、设计约束等方面的期望和要求,是用户希望软件能做的事情和完成的功能。

    • 软件需求关注用户的期望、要求和需要,不是解决方案,需区分what和how。

    • 软件需求主要指功能、性能、设计约束、时间进度等,不包括重量、软件大小等。

    • 并非所有用户的期望和要求都是软件需求,用户需求必须中肯、有意义。

    • 软件需求解决目标系统“做什么”的问题,而非“如何做”的问题,是连接用户和软件开发团队的桥梁。

  • 软件需求的分类

    • 业务需求:组织或客户高层次的目标,来自项目投资人、购买产品的客户、实际用户、市场营销部门或产品策划部门,描述组织开发系统的理由和目标,使用愿景和范围文档记录。

    • 用户需求:描述用户目标和任务,通过用例、场景描述和事件-响应表表达。

    • 功能需求:规定软件系统开发人员必须实现的功能,描述开发人员需要实现的内容。

    • 非功能性需求:包括质量属性(可靠性、可维护性、安全性、易操作性等)、系统需求(系统运行环境、开发环境等)、业务规则等。

  • 软件需求的重要性

    • 软件开发的基础和前提,明确需求后才能开展系统设计和编码。

    • 制定软件开发计划的基础,知道需求才能确定工作量,进而制定计划。

    • 软件系统验收的标准,明确需求才能进行验收。

  • 获取软件需求的复杂性和面临的问题

    • 系统复杂和庞大,难以全面获取需求。

    • 需求可能存在片面、不完全、模糊、不准确、不一致、歧义等问题。

    • 需求变更时,难以及时通知相关人员。

    • 需求变动可能带来波动性和放大性问题。

  • 解决方法和手段

    • 技术层面:运用需求分析方法、技术和工具,如数据流、面向对象、抽象、建模、多视点、原型、UML、Rose、Word、Excel、RequisitePro等。

    • 管理层面:对需求分析中的人、活动和产品进行管理,形成需求工程研究领域。

软件需求开发

  • 什么是软件需求开发:需求开发是从用户处获得需求并形成与用户需求相一致的、可供阅读的软件需求规格说明书的过程。

  • 软件需求开发的任务:通过对应用问题及其环境的理解和分析,准确、一致和完全地刻画用户需求,并达成一致,形成软件需求规格说明书(SRS)。

  • 软件需求开发的目标

    • 全面性:没有遗漏。

    • 一致性:没有矛盾。

    • 准确性:说清楚。

    • 认同:共同、相互认可。

    • 文档化:书面文档。

  • 软件需求开发的过程

    1. 需求获取:从用户处收集、获取软件需求,帮助用户发现潜在的软件需求。技术手段包括Q&A列表邮件提问、电话会议访谈、用户调研、需求专题讨论会、头脑风暴、参观交流、实践等。需求获取的注意事项包括识别真正的用户、正确理解用户需求尤其是隐含需求、具备较强的忍耐力和清晰思维、说服和教育用户。

    2. 需求分析与建模:提炼、分析和审查已收集到的用户需求,建立一个概念模型,发现并纠正不一致、不准确和不全面的软件需求,形成准确的用户需求描述。主要活动包括绘制系统关联图、创建用户接口原型、分析需求可行性、确定需求的优先级别、为需求建立模型(如UML)、建立数据字典、使用质量功能调配等。需求建模方法包括用例分析方法、原型分析方法和结构化分析方法。

    3. 文档化软件需求:根据软件需求初步描述和软件需求模型,撰写软件需求规格说明书(SRS)。SRS的编制是为了使用户和软件开发者对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。SRS的原则包括从现实中分离功能、采用一定的规格说明语言、包括系统运行环境的说明、容许不完备性并允许扩充。

    4. 软件需求验证:由多方对软件需求规格说明书进行评审,分析需求的正确性、完整性以及可行性等,确保需求说明准确、无二义性并完整地表达系统功能以及必要的质量特性。验证活动包括审查需求文档、以需求为依据编写测试用例、编写用户手册、确定合格的标准、最后的签字。参与验证评审的人员包括项目经理、用户方代表、需求分析小组、软件设计小组、软件测试小组、软件质量保证小组等。

软件需求管理

  • 需求管理的必要性

    • 需求获取的偏差难以避免,客户描述的需求与项目经理、分析员、程序员等的理解可能存在差异。

    • 需求具有易变性和难以表述性,需求错误出现的高频性和修复的高昂成本。

  • 需求管理的目标

    1. 使软件需求受控,并建立供软件工程和管理使用的基线。

    2. 使软件计划、产品和活动与软件需求保持一致。

  • 需求管理的原则

    • 需求一定要分类管理:目标性、业务需求和操作性。

    • 需求必须分优先级:需求过多、需要裁剪。

    • 需求必须文档化:记录,避免忽略重要需求。

    • 需求一旦变化,就必须对需求变更的影响进行评估。

    • 需求管理必须与需求工程的其他活动紧密整合。

  • 需求管理策略

    • 需求一定要与投入有必然的联系。

    • 需求变更要经过出资方认可,小的需求变更也要经过正规的需求管理流程。

    • 精确的需求与范围定义并不会阻止需求变更。

  • 需求管理活动

    • 需求管理规划:需求识别、变更管理过程、需求跟踪和自动化工具。

    • 需求管理是一个对系统需求变更了解和控制的过程,与其他需求工程过程相互关联。

    • 变更控制:建议需求变更并分析其影响,做出是否变更的决策。

    • 版本控制:确定单个需求和SRS的版本。

    • 需求跟踪:定义对于其他需求及系统元素的联系链。

    • 需求状态:定义并跟踪需求的状态。

  • 需求变更的原因

    1. 在项目的早期所有的问题不可能被完全定义,软件需求是不完全的,注定了需求需要变更。

    2. 随着软件项目的进行,软件开发人员对问题的理解会发生变化,这些变化也要反馈到需求中去。

    3. 不同类型的用户的需求可能是冲突的或是矛盾的,最后的系统需求是它们之间的一个妥协,这种妥协的程度在项目进行过程中有可能发生改变,从而导致系统需求的改变。

    4. 系统购买者或系统最终用户很少是同一人,有的系统客户对系统提出的一些需求可能和最终用户需求不一致。

  • 需求变更控制基本流程

    1. 客户或开发人员提出变更请求。

    2. 项目经理进行初步判断,分流处理。

    3. 对于应重视的问题,提交变更控制委员会进行决策。

    4. 变更控制委员会分析变更影响,做出接受或不接受的决策。

    5. 如果接受,修改SRS、开发计划和其他相关文档。

  • 需求文档版本控制

    • 保证软件项目干系人得到最新版本的需求文档和记录需求的全部历史版本。

    • 统一确定需求文档的每一个版本,保证每个成员都能得到当前的需求版本。

    • 清楚地将变更写成文档,并及时通知项目开发所涉及的人员。

    • 只允许指定的人来更新需求文档。

  • 需求状态

    • 包括需求属性(背景资料和上下文关系、创建时间、涉及的子系统、版本、涉及的产品版本、创建者、批准者、验证方法、状态、优先级、原因、稳定性等)。

    • 需求状态的变化过程(提出需求、已建议、已批准、已拒绝、需求分析、已设计、已实现、已验证、已删除、已交付等)。

  • 需求跟踪

    • 目的:建立和维护从用户需求开始到测试之间的一致性与完整性,确保所有实现都以用户需求为基础,而实现的需求也全部覆盖了预期的需求,同时确保所有输出与用户需求的符合性。

    • 可追溯性信息:源可追溯性信息、需求可追溯性信息、设计可追溯性信息。

    • 需求跟踪的方式:正向跟踪和逆向跟踪。

    • 需求跟踪的实现:需求跟踪矩阵。

    • 需求跟踪的作用:在需求验证中的作用、有助于需求变更影响分析、便于需求的维护、便于测试时找出问题所在、便于项目跟踪、减小项目的风险、简化了系统的再设计、易于软件重用。

  • 需求管理工具:CaliberRM、DOORS、RTMRational RequisitePro。

案例分析:如何面对项目需求变更?

  • 案例背景:小主的公司遇到两个项目,分别由项目经理A和B负责。项目经理A对客户提出的问题无论大小都给予解决,客户满意但项目进度拖得较长;项目经理B对客户提出的问题大多不予理睬,客户不满意但项目进度控制较好。

  • 问题

    1. 如果你遇到需求变更,你会采用哪种方式?

    2. 分析这两种应对需求变更方式的优缺点。

  • 分析

    1. 需求变更对项目的成本、进度、质量都会产生影响,对客户提出的需求变更要求要谨慎对待,既不能一味接受也不能全盘拒绝,要综合分析,合理的需求变更可以接受,过分的要求则要拒绝,且需求变更要严格按照需求变更审核控制流程来进行。

    2. 在项目前期尽量把用户的需求了解清楚,注意引导用户的需求到我们的方案中来,与销售部保持良好沟通,避免项目实施后进行变更。

    3. 对于用户提出的意见和建议,要系统评估需求变化导致的成本增加和质量改进,最终进行决策,并与用户及时沟通。

  • 分析2

    • 项目经理A的应对方式的优点是客户满意,缺点是对项目进度延期,成本增加,质量没保障。

    • 项目经理B的应对方式优点是项目可以按时完成和交付使用,缺点是影响客户关系,对将来的合作产生不利影响。

本章小结

  • 软件需求工程:包括需求获取、需求分析、需求规格编写、需求验证、需求变更控制、版本控制、需求跟踪等。

  • 需求管理:包括需求状态、需求管理原则、需求管理策略、需求管理活动等。

相关文章:

软件项目管理课程之第4讲:软件需求管理

讲授内容 项目案例 软件需求管理的基本概念 软件需求开发 软件需求管理 项目案例 案例背景:小王作为软件项目负责人,带领团队开展需求调查工作,但在需求分析和后续开发过程中出现了一系列问题。 问题表现: 项目规模庞大&…...

java基础知识和语法

1.类的信息加载完成后,会自动调用静态代码块,可以完成静态属性的初始化功能 对象准备创建时,也会自动调用代码块,但不是静态的; public class java_3_24 {public static void main(String[] args) {new User08();}} …...

横扫SQL面试——事件流处理(峰值统计)问题

横扫SQL面试 📌 事件流处理(峰值统计)问题 “会议室预定冲突怎么查? 🔍 服务器瞬时负载如何算?🎢 健身房的‘人挤人’高峰究竟出现在几点?🏃‍♂️” 这些看似毫不相干…...

如何降低频谱分析仪的底噪

测量微小信号的时候,底噪可能会淹没有用的信号:(如下图,底噪为-60dB) 如何降低底噪: 1.分辨率带宽RBW设置小一点,可以减小信号的底噪 2.减小衰减器(频谱分析仪底噪的功率随着输入衰…...

C语言基础知识09---文件操作

目录 文件操作 1.1 文件操作 1.2 文件操作的数据传输形式 1.3 文件操作的分类 1.4 文件存储格式 1.5 文件流指针 1.6 函数名:fopen() 1.7 函数名:fclose() 1.8 函数名:fprintf() 1.9 函数名:fscanf() 1.10 函数名&…...

GRS认证的主要步骤是什么?

GRS认证的具体步骤,是一个严谨而系统的过程,旨在确保产品从原料来源到最终消费的每一个环节都符合全球回收标准(Global Recycle Standard,简称GRS)的严格要求。 首先,企业需要向GRS认证机构提交申请&#…...

探究 CSS 如何在HTML中工作

2025/3/28 向全栈工程师迈进&#xff01; 一、CSS的作用 简单一句话——美化网页 <p>Lets use:<span>Cascading</span><span>Style</span><span>Sheets</span> </p> 对于如上代码来说&#xff0c;其显示效果如下&#xff1…...

软件工程面试题(七)

1、DAO设计模式及DELEGATE模式 DAO(Data Access Object)模式实际上是两个模式的组合,即Data Accessor 模式和 Active Domain Object 模式,其中 Data Accessor 模式实现了数据访问和业务逻辑的分离,而Active Domain Object 模式实现了业务数据的对象化封装,一般我们将这两…...

AfxMessageBox()如何显示string字符串

书籍&#xff1a;《Visual C 2017从入门到精通》的2.7 字符串 环境&#xff1a;visual studio 2022 内容&#xff1a;几个字符串类型->&#xff08;将单字节char*转换为宽字节wchar_t *&#xff09; 在 MFC 中&#xff0c;AfxMessageBox 默认支持显示 CString 或宽字符字符…...

基于 kubekey -实现懒人一键部署K8S集群

基于 kubekey -实现懒人一键部署K8S集群 操作步骤 官网&#xff1a; https://kubesphere.io/zh/ 一、执行以下命令快速创建一个 Kubernetes 集群。 Master节点 如果您访问 GitHub/Googleapis 受限&#xff0c;请登录 Linux 主机&#xff0c;执行以下命令设置下载区域。 [roott…...

19款超级华丽动画的图片轮播HTML5+CSS3模板源码

大家好&#xff0c;我是分享源码和设计思想的程序媛&#xff0c; 今天给大家分享一个 19款超级华丽动画的图片轮播HTML5CSS3模板源码。 纯CSS3HTML5代码实现&#xff0c;没有任何其它杂乱的框架东西。 图片演示 1. 3D立方体轮播效果 2. 视差滚动轮播效果 3. 卡片堆叠轮播效果 4…...

第十六:redis 的 帖子投票要点

ZADD orders 100 order1 ZADD orders 200 order2 ZADD orders 300 order3 zadd myzset 100 nameorder // 添加一个有序集合 其中存储了用户的订单信息&#xff0c;每个订单用一个唯一的 ID 表示 ZSCORE myzset nameorder  // myzset 是key  nameorder 是成员&#xff…...

51c深度学习~合集4

我自己的原文哦~ https://blog.51cto.com/whaosoft/12327892 #robustlearn 本文提出了「鲁棒关键微调」&#xff0c;通过「微调」对抗训练模型的「非鲁棒关键性模块」&#xff0c;充分利用其冗余能力提升泛化性。 对抗训练&#xff08;Adversarail Training&#xff09;…...

解决Vmware 运行虚拟机Ubuntu22.04卡顿、终端打字延迟问题

亲测可用 打开虚拟机设置&#xff0c;关闭加速3D图形 &#xff08;应该是显卡驱动的问题&#xff0c;不知道那个版本的驱动不会出现这个问题&#xff0c;所以干脆把加速关了&#xff09;...

Arduino硬件控制开发基础资料

Arduino 的程序可以划分为三个主要部分&#xff1a;结构、变量&#xff08;变量与常量&#xff09;、函数。 结构部分 一、结构 1.1 setup() 1.2 loop() 二、结构控制 2.1 if 2.2 if...else 2.3 for 2.4 switch case 2.5 while 2.6 do... while 2.7 break 2.8 cont…...

地图项目入手学习

如果你目前对自己的地图项目实现原理不太了解&#xff0c;周末可以通过以下方法进行高效学习&#xff1a; ⸻ 第一步&#xff1a;梳理项目相关代码&#xff08;3 小时&#xff09; 目标&#xff1a;先大致了解你的地图项目代码&#xff0c;找到核心实现逻辑。 具体做法&…...

OpenCV图像处理:边缘检测

文章目录 前言一、什么是边缘检测&#xff1f;二、算法分类1、Sobel算子2、Scharr算子3、Canny边缘检测3.1 Canny检测的优点3.2 Canny 边缘检测分为 4 个部分3.2.1 、图像降噪3.2.2 、梯度计算3.2.3 、非极大值抑制3.2.4 、双阈值边界跟踪 4、算法比较 三、代码实现总结 前言 …...

性能测试~

1.什么是性能测试 1.什么是性能 就像这两个车一样,虽然都是代步工具,构造都是一样的,但是路虎的发动机要比捷达好.路虎的百米加速却是比捷达快的,我们就知道路虎的性能要比捷达好 . 那么什么是软件的性能呢?我们分析一下 2.常见的性能测试指标 2.1并发数 并发数是指在同一…...

pagehelper 分页插件使用说明

pom.xml&#xff1a;pageHelper坐标 <!--pageHelper坐标--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</version></dependency> 分…...

使用crypto-js进行DES加/解密

crypto-js 官方网站&#xff1a;https://github.com/brix/crypto-js 中文参考教程&#xff1a;前端加密JS库–CryptoJS 使用指南 在线加解密网站&#xff1a;https://www.mklab.cn/utils/des 首先要安装crypto-js库&#xff0c;根据自己使用的方式按照官方网站步骤进行即可。 …...

【图片识别Excel表格】批量将图片上的区域文字识别后保存为表格,基于WPF和阿里云的项目实战总结

一、项目背景 在信息处理和文档管理中,经常会遇到需要从大量图片中提取文字并进行整理的场景。例如,财务部门需要从大量报销票据中提取金额、日期等信息;法务部门需要从合同文档中提取关键条款;教育行业需要从试卷中提取学生的答题内容等。传统的手工处理方式不仅耗时长、…...

在 i.MX8MP 上用 C++ 调用豆包 AI 大模型实现图像问答

本文介绍了如何在 i.MX8MP 嵌入式平台上使用 C 调用豆包 AI 大模型&#xff08;Doubao-vision-pro-32k&#xff09;进行图像问答。我们将详细讲解代码实现的各个步骤&#xff0c;包括文件读取、Base64 编码、构造 JSON 请求体、使用 libcurl 进行 HTTP POST 请求以及解析响应数…...

uni-app自动升级功能

效果图 一、VUE login.vue <template><view><view class"uni-common-mt"><view class"uni-flex uni-column"><view class"flex-item flex-item-V"><view class"logo"><image src"/st…...

线性回归 + 基础优化算法

线性回归 线性回归是机器学习最基础的模型&#xff0c;也是理解后续所有深度学习的基础。 线性模型可以看做是单层神经网络。 上述有个0.5是在求导的时候可以很方便的将2消去。 实际上&#xff0c;这里的数据样本受限很大&#xff0c;比如地球上房子就那么多&#xff0c;肯…...

MyBatis分页插件混用问题解析:IPage与PageHelper的冲突与解决

一、背景 在同时使用 MyBatis-Plus 的 IPage 分页 和 PageHelper 时&#xff0c;开发者可能会遇到以下两类问题&#xff1a; 分页结果异常&#xff1a;IPage 查询的 total 总条数返回 0&#xff0c;但实际数据正常。依赖冲突报错&#xff1a;启动时报错 Column.withColumnNam…...

4.Socket类、InetAddr类、Epoll类实现模块化

目录 1. InetAddr类 类定义 代码说明 类实现 2.Socket类 类定义 类实现 3. Epoll类 类定义 构造与析构函数 方法实现 类实现 4. 使用模块化设计 示例使用&#xff08;main.cpp) 5. 运行程序 随着程序复杂度的增加&#xff0c;单一的面向过程的代码会变得难以理…...

19 python 模块

在办公室的日常工作中&#xff0c;我们常常会用到各种各样的工具&#xff0c;像计算器用于计算数据、打印机用来打印文件、订书机将纸张装订成册等。这些工具会被反复使用&#xff0c;而且不同的工具具有不同的功能。 一、模块的定义 在 Python 里&#xff0c;模块就如同一个…...

医疗智能体通信整合-大模型训练中沟通优化策略研究

一、引言:医疗模型训练的沟通困境 1.1 医疗 AI 发展背景 在数智化浪潮的推动下,医疗 AI 正以前所未有的速度融入现代医疗体系。从智能影像诊断助力医生精准识别病灶,到基于大数据分析的个性化药物研发,医疗 AI 在提升医疗效率、改善医疗质量方面展现出巨大潜力。据相关数据…...

LearnOpenGL-笔记-其六

今天我们来聊一些更深入的东西&#xff1a; Depth Testing 在之前的学习过程中&#xff0c;我们有接触过深度缓冲&#xff0c;彼时的深度缓冲的意义就是可以让我们体现出深度的差异从而达到立体的效果&#xff0c;而现在我们将在深度缓冲的基础进一步扩展&#xff0c;进行深度…...

【商城实战(91)】安全审计与日志管理:为电商平台筑牢安全防线

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…...

Windows 10更新失败解决方法

在我们使用 Windows 时的时候&#xff0c;很多时候遇到系统更新 重启之后却一直提示“我们无法完成更新&#xff0c;正在撤销更改” 这种情况非常烦人&#xff0c;但其实可以通过修改文件的方法解决&#xff0c;并且正常更新到最新版操作系统 01修改注册表 管理员身份运行注…...

【安当产品应用案例100集】042-基于安当KADP实现机密文件安全流转

一、客户需求 某集团公司客户&#xff0c;在系统业务流中&#xff0c;存在大量的内部文件流转的需求。内部业务文件有不同的安全密级&#xff0c;最初在文件流转时&#xff0c;公司内部规定点对点的文件传输&#xff0c;要使用加密工具加密后再发给需要的一方。这种方式虽然能…...

【网络】Socket套接字

目录 一、端口号 二、初识TCP/UDP协议 三、网络字节序 3.1 概念 3.2 常用API 四、Socket套接字 4.1 概念 4.2 常用API &#xff08;1&#xff09;socket &#xff08;2&#xff09;bind sockaddr结构 &#xff08;3&#xff09;listen &#xff08;4&#xff09;a…...

蓝桥杯[每日一题] 真题:连连看

题目描述 小蓝正在和朋友们玩一种新的连连看游戏。在一个 n m 的矩形网格中&#xff0c;每个格子中都有一个整数&#xff0c;第 i 行第 j 列上的整数为 Ai, j 。玩家需要在这个网格中寻找一对格子 (a, b) − (c, d) 使得这两个格子中的整数 Aa,b 和 Ac,d 相等&#xff0c;且它…...

新手SEO优化实战快速入门

内容概要 对于SEO新手而言&#xff0c;系统化掌握基础逻辑与实操路径是快速入门的关键。本指南以站内优化为切入点&#xff0c;从网站结构、URL设计到内链布局&#xff0c;逐层拆解搜索引擎友好的技术框架&#xff1b;同时聚焦关键词挖掘与内容策略&#xff0c;结合工具使用与…...

Android面试总结之Glide源码级理解

当你的图片列表在低端机上白屏3秒、高端机因内存浪费导致FPS腰斩时&#xff0c;根源往往藏在Glide的内存分配僵化、磁盘混存、网络加载无优先级三大致命缺陷中。 本文从阿里P8级缓存改造方案出发&#xff0c;结合Glide源码实现动态内存扩容、磁盘冷热分区、智能预加载等黑科技&…...

基于类型属性的重载

算法重载 在一个泛型算法中引入更为特化的变体&#xff0c;这种设计和优化方式称为算法特化。之所以需要算法特化&#xff0c;原因有二&#xff1a; 针对特定类型使用更加合理的实现&#xff0c;对于const char *&#xff0c;less的第二个实现更加合理 template <typename…...

对称加密算法和非对称加密算法

在这个互联网普及的时代&#xff0c;在不同终端对敏感甚至机密数据进行传输是非常常见的场景&#xff0c;但是如何保证数据传输过程的安全性和高效性是一个值得深入探讨的问题。 为此&#xff0c;伟大的人类研究出了多种加密算法&#xff0c;我们可以大致将其分为两类&#xf…...

工程数字建造管理系统平台有哪些?好的数字建造管理系统推荐

一、什么是工程数字建造管理系统平台&#xff1f; 工程数字建造管理系统平台是一种集成了先进信息技术&#xff08;如云计算、大数据、物联网等&#xff09;的综合性管理工具&#xff0c;它旨在通过数字化手段提升工程建造全过程的管理效率和决策水平。这一平台不仅覆盖了工程…...

CMake ERROR: arm-none-eabi-gcc is not able to compile a simple test program.

用 cmake 构建 STM32 工程问题【已解决】 环境信息 os: ubuntu22.04gcc: arm-none-eabi-gcc (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 13.2.1 20231009cmake: cmake version 3.22.1ninja: 1.10.1 问题 log [main] 正在配置项目: Olidy [driver] 删除 /home/pomegr…...

容器主机CPU使用率突增问题一则

关键词 LINUX、文件系统crontab 、mlocate根目录使用率 There are many things that can not be broken&#xff01; 如果觉得本文对你有帮助&#xff0c;欢迎点赞、收藏、评论&#xff01; 一、问题现象 业务一台容器服务器&#xff0c;近期经常收到cpu不定期抖动告警&#x…...

CTFshow【命令执行】web29-web40 做题笔记

web29----过滤关键字 正则匹配&#xff0c;过滤flag&#xff0c;可以使用通配符绕过 先查看目录 使用通配符&#xff1f;查看flag 点击查看源代码 web30---过滤函数和关键字 看到过滤了system执行系统命令和flag&#xff0c;php关键字 找一个与其功能差不多的执行函数passthr…...

L2正则化:优化模型的平滑之道

常见的正则化方法1. **L1正则化&#xff08;Lasso&#xff09;**1.1基本原理1.2特点1.3数学推导1.4参数更新1.5选择合适的正则化系数1.6优点1.7缺点1.8实际应用中的注意事项1.9示例 2. **L2正则化&#xff08;Ridge&#xff09;**L2正则化的定义L2正则化如何防止过拟合1. **限制…...

Golang 的 GMP 调度机制常见问题及解答

文章目录 Golang GMP 调度模型详解常见问题基础概念1. GMP 各组件的作用是什么&#xff1f;2. 为什么 Go 需要自己的调度器&#xff1f;3. GOMAXPROCS 的作用是什么&#xff1f; 调度流程4. Goroutine 如何被调度到 M 上执行&#xff1f;5. 系统调用会阻塞整个线程吗&#xff1…...

使用VSCODE导致CPU占用率过高的处理方法

1&#xff1a;cpptools 原因&#xff1a;原因是C/C会在全局搜索文件&#xff0c;可以快速进行跳转&#xff1b;当打开的文件过大&#xff0c;全局搜索文件会占用大量CPU&#xff1b; 处理方法&#xff1a; 1&#xff1a;每次只打开小文件夹&#xff1b; 2&#xff1a;打开大文…...

17--华为防火墙智能选路全解:网络世界的智能导航系统

华为防火墙智能选路全解&#xff1a;网络世界的智能导航系统 开篇故事&#xff1a;快递小哥的烦恼与网络世界的相似性 想象你是个快递站站长&#xff0c;每天要处理来自全国各地的包裹。突然某天遇到&#xff1a; &#x1f69a; 双11爆仓&#xff1a;如何把包裹最快送到客户手…...

CSS-BFC(块级格式化上下文)

一、BFC 的本质理解&#xff08;快递仓库比喻&#xff09; 想象一个快递分拣仓库&#xff08;BFC容器&#xff09;&#xff0c;这个仓库有特殊的规则&#xff1a; 仓库内的包裹&#xff08;内部元素&#xff09;摆放不影响其他仓库包裹必须整齐堆叠&#xff0c;不能越界不同仓…...

Java 大视界 -- Java 大数据在智慧港口集装箱调度与物流效率提升中的应用创新(159)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

ZygoPlanner:一种基于图形的三阶段框架,用于颧骨种植体植入的最佳术前规划|文献速递-医学影像人工智能进展

Title 题目 ZygoPlanner: A three-stage graphics-based framework for optimal preoperative planning of zygomatic implant placement ZygoPlanner&#xff1a;一种基于图形的三阶段框架&#xff0c;用于颧骨种植体植入的最佳术前规划 01 文献速递介绍 1.1 研究背景 颧…...

【2.项目管理】2.4 Gannt图【甘特图】

甘特图&#xff08;Gantt&#xff09;深度解析与实践指南 &#x1f4ca; 一、甘特图基础模板 项目进度表示例 工作编号工作名称持续时间(月)项目进度&#xff08;周&#xff09;1需求分析3▓▓▓░░░░░░░2设计建模3░▓▓▓░░░░░░3编码开发3.5░░░▓▓▓▓░░…...