软考-软件工程

  软件工程概述 软件工程指的是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件 问题的工程,目的是提高软件生产率、提高软件质量、降低软件成本。

概述:

软件开发模型:指导软件开发的体系

需求分析确定软件要完成的功能及非功能性要求;

概要设计将需求转化为软件的模块划分,确定模块之间的调用关系;

详细设计将模块进行细化,得到详细的数据结构和算法;

编码根据详细设计进行代码的编写,得到可以运行的软件,并进行单元测试。

1 CMM

五个成熟度级别

  • 初始级
  • 可重复级
  • 可定义级
  • 已管理级
  • 优化级

2.能力成熟度模型集成(CMMI)

CMMI提供了两种表示方法:阶段式模型和连续式模型(考)。

(1)阶段式模型。结构类似于CMM,它关注组织的成熟度。CMMI-SE/SW/IPPD 1.1版本中 有五个成熟度等级。

1)初始级:过程不可预测且缺乏控制。

2)已管理级:过程为项目服务。

3)已定义级:过程为组织服务。

4)定量管理级:过程已度量和控制。

5)优化级:集中过程改进。

2)连续式模型。关注每个过程域的能力,一个组织对不同的过程域可以达到不同的过程域 能力等级(简称CL)。

基于连续式表述的CMMI 共有6个(0〜5)能力等级,对应于未完成级、已执行级、已管理级、已定义级、量化管理级、优化级。每个能力等级对应到一个一般目标,以及一组一般执行方法和特定方法。

  • 能力等级0指未执行过程,表明过程域的一个或多个特定目标没有被满足
  • 能力等级1指过程通过转化可识别的输入工作产品,产生可识别的输出工作产品,关注于过程域的特定目标的完成
  • 能力等级2指过程作为已管理的过程制度化,针对单个过程实例的能力
  • 能力等级3指过程作为已定义的过程制度化,关注过程的组织级标准化和部署
  • 能力等级4指过程作为定量管理的过程制度化
  • 能力等级5指过程作为优化的过程制度化,表明过程得到很好地执行且持续得到改进

例题:

3、软件过程模型

  软件过程模型习惯上称为软件开发模型,它是软件开发全部过程、活动和任务的结构框架。典 型的软件过程有瀑布模型、增量模型、演化模型(原型模型、螺旋模型)、喷泉模型、基于构件的 开发模型和形式化方法模型等。

3.1 瀑布模型

#每个阶段末尾都会有评审,评审上一阶段的工作是否达标

优点:容易理解,管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。

缺点:初期分析需求无法把控,开发末期的结果和客户要求不一致,全盘推翻(不能适应变化的需求)

适用场景:需求明确/二次开发/有过经验,用新技术重构也用瀑布

v模型:质量保证活动
例题:

3.2 增量模型

增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,如图所示。

增量:先做出核心,好处在核心模块尽早和用户接触了==(逐步理解需求)==,但是这种模式如何进行模块划分是难点

很容易把需求划分为一系列增量

  • 增量模型的优点:可交付的第一个版本所需要的成本和时间很少,开发由增量表示的小系统所 承担的风险不大,由于很快发布了第一个版本,因此可减少用户需求的变更。同时,它也具有瀑布 模型所有的优点
  • 增量模型的缺点:若没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;若需求像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发或重新发布管理发生的成本进度和配置的复杂性可能会超出组织的能力。
例题:

 3.3 原型模型

原型:定义在需求不明确的情况,初期构建一个简易系统让用户发现问题,探索用户的需求(只应用于需求分析阶段),也可以探索出特殊的软件解决方案

能够迅速开发出一个让用户看得见的系统框架,可以用来支持用户界面设计

不能指导代码优化

原型模型最不适合大规模软件开发

 3.4 演化(迭代)模型

相比原型,适用于需求清楚尽早投入使用,要不断改善的时候

3.5 螺旋模型

最适合大规模开发的模型

将开发活动和风险管理结合起来,求将风险降到最小并控制风险

有多个模型的特点:瀑布+快速原

包含维护周期,所以开发和维护之间没有本质区别

引入了风险分析:当某一个事件存在两种或者两种以上的可能性时,才认为该事件存在风险

风险分析是4个不同的活动:风险识别(系统化地确定对项目计划的威胁)、风险预测(两方面评估:发生的可能性和产生的后果)、风险评估(根据发生概率和影响,决定是否影响参考水平值)、风险控制(辅助项目路建立处理风险的策略,有效的策略要考虑风险避免、风险监控和意外事件计划)

喷泉模型与RAD

1.面向对象

2.用户需求为动力对象作为驱动克服了瀑布模型不支持软件重用和多项开发活动集成的局限性

3.迭代、无间隙(开发活动之间不存在明显边界)

RAD:快速开发模型,SDLC(瀑布模型)+CBSD(构件化开发模型)

4.可以快速构建应用系统

构件的开发模型

(1)领域工程的目的是构建领域模型、领域基准体系结构和可复用构件库。 (2)应用系统工程的目的是使用可复用构件组装应用系统。

形式化方法模型 形式化方法是建立在严格数学基础上的一种软件开发方法,主要活动是生成计算机软件形式化 的数学规格说明。

4.、统一过程UP

也称RUP,用例和风险为驱动,以架构为中心,迭代并增量开发

用于大型项目

五个阶段:起始、精化、构建、移交、产生

开发过程包括多次迭代,每次迭代包括:计划、分析、设计、构造、集成、测试、内部发布、外部发布

每个迭代有五个核心工作流

初始:需求

细化:建立架构

构建:开发(产生产品)

β测试:由用户发起的测试 (α测试是在开发环境里做的)

每个阶段达到里程碑的时候代表结束了:

初始:生命周期目标(产生一个构想文档、一个有关用例模型的调查、一个初始的业务用例、一个早期的风险评估和一个可以显示阶段和迭代的项目计划等制品)

精化:生命周期架构(产生一个补充需求分析、一个软件架构描述和一个可执行的架构原型等)

构建:初始运作功能(产生一个转交到最终用户手中的产品,包括:在适当的平台上集成的软件产品,用户手册,版本描述)

移交:产品发布(产生移交给用户产品发布版本

例题:

5、敏捷开发方法

  1. 给开发减轻负担
  2. 适合小型项目
  3. 随时对接客户
  4. 大型任务上连续

包括:

  1. 自适应方法ASD==(6个基本原则)、
  2. 水晶方法Crystal(每个项目用不同方法)、
  3. 特征驱动开发
  4. 并列争球法SCRUM(30天一迭代的冲刺,按需求优先级实现)、
  5. 极限编程XP(激发创造性、管理负担小

scrum步骤
  • Product Backlog 产品待办事项清单(不包括Refactoring 重构)
  • Sprint Backlog Sprint待办事项清单
  • Sprint冲刺迭代

选B选B

极限编程XP

是一种轻量级、高效、低风险、柔性、可预测的、科学的软件开发方法,其特性包含在12个最佳实践中。

(1)计划游戏:快速制定计划、随着细节的不断变化而完善;

(2)小型发布:系统的设计要能够尽可能早地交付

(3)隐喻:找到合适的比喻传达信息;

(4)简单设计:只处理当前的需求使设计保持简单

(5)测试先行:先写测试代码再编写程序;

(6)重构:重新审视需求和设计,重新明确地描述它们,以符合新的和现有的需求;

(7)结队编程;(编码速度和担任差不多)

(8)集体代码所有制;

(9)持续集成:可以按日甚至按小时为客户提供可运行的版本;

(10)每周工作40个小时;

(11)现场客户;

(12)编码标准。

    统一过程的典型代表是RUP,RUP是UP的商业扩展,完全兼容UP,比UP更完整、更详细。 敏捷方法的总体目标是通过“尽可能早地、持续地对有价值的软件进行交付”使客户满意。

    敏捷过程的典型方法有很多,每一种方法基于一套原则,这些原则实现了敏捷方法所宣称的理念,即 敏捷宣言。 常用的方法极限编程(XP)、水晶法(Crystal)、并列争球法(Scrum)、自适应软件开发(ASD)、 敏捷统一过程(AUP)。

敏捷统一过程(AUP)

6、软件需求

信息系统开发方法(四种)

结构化法:流程不灵活,所以被面向对象方法取代了(用来开发结构简单的项目)

原型法:需求不明确

  1. 开发人员和管理人员沟通的主要文档是:系统开发计划,包括工作任务分解表、PERT图、甘特图和预算分配表等
  2. 总体规划和开发合同用于与系统分析人员在系统规划和系统分析阶段的沟通。
  3. 测试计划用于系统测试人员与系统开发人员之间的沟通。

1. 软件系统文档是系统建设过程的“痕迹”,是系统维护人员的指南,是开发人员与用户交流的工具。

2. 软件系统文档不仅包括应用软件开发过程中产生的文档,还包括硬件采购和网络设计中形成的文档;不仅包括有一定格式要求的规范文档,还包括系统建设过程中的各种来往文件、会议纪要、会计单据等资料形成的不规范文档

3. 软件系统文档可以提高软件开发的可见度,提高软件开发效率,且便于用户理解软件的功能、性能等各项指标。

  系统设计为系统制定蓝图,软件设计模型关注新系统总体结构、代码设计、处理过程、数据结构和界面模型等。对项目范围的关注在软件设计之前。

7、系统设计

        系统设计的主要内容包括新系统总体结构设计、代码设计、输出设计、输入设计、处理过程设 计、数据存储设计、用户界面设计和安全控制设计等。

        常用的设计方法有:面向数据流的结构化设计方法(SD)、面向对象的分析方法(OOD)。         系统设计包括两个基本的步骤概要设计详细设计。     

         概要设计主要包括:①软件系统总体结构设计(模块);②数据结构及数据库设计;③编写概要设计文 档(概要设计说明书、数据库设计说明书、用户手册及修订测试计划);④评审。

        详细设计主要包括:①对每个模块进行详细设计;②对模块内部数据结构进行设计;③对数据库进行物理设计,即确定数据库的物理结构;④其他设计(代码设计、输入/输出设计、用户界 面设计);⑤编写详细设计说明书;⑥评审。

 需求的分类

设计约束:例如让使用特定语言进行开发

基本需求:用户明确提出的需求

期望需求:用户默认希望做到的需求

兴奋需求:用户也没有觉得要做到的,但是额外做了(不提倡)

结构化设计

调用的深度越深,出错的可能性越大

扇入:自己调用

扇出:自己调用的

扇入扇出适中

划分模块的原则:作用范围应该在控制范围内

8、系统测试

系统测试系统测试是将已经确认的软件、硬件、外设、网络等其他因素结合在一起,进行各种集成测试和确认测试,主要包括恢复测试、安全性测试、压力测试、性能测试、部署测试。

测试原则与类型

测试不只是从程序编码时开始

回归测试:修改了测试出的bug之后,要把之前测过的重新测

已经发现bug越多的,越要重点测试

测试是用来发现尽可能多的错误,而不能证明没有错误

  • 动态测试:用到计算机的
  • 静态测试:手动
测试方法

(1)静态测试:被测程序不在机器上运行,采用人工检测和计算机辅助静态分析的手段对程 序进行测试,包括人工检测、计算机辅助静态分析。

(2)动态测试:通过运行程序发现错误,一般采用黑盒测试和白盒测试。

        1)黑盒测试:也称功能测试,在不考虑软件内部结构和特性的情况下,测试软件的外部特性。

         2)白盒测试:也称结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和 过程进行测试,检查是否满足设计的需要。

白盒

        覆盖技术从弱到强:语句覆盖、判定覆盖(分支覆盖)、条件覆盖、路径覆盖

  • 语句覆盖:所有的程序语句只要经过就可以
  • 判断覆盖:只针对整个判断语句
  • 条件覆盖:在统计所有用例中,每个判断中的每个条件的true和false都有取一次就行(两个条件,用例就可以是TF和FT)
  • 路径覆盖是最高级别:所有可行路径都覆盖
例题:

循环别管次数

McCabe概念:

McCabe度量法是一种基于程序控制流的复杂性度量方法。
McCabe复杂性度量又称环路度量,其计算公式为: V(g)=m-n+2,其中m和n分别代表图中的边数顶点数

有向图环路复杂度:有向边数-节点数+2

软件复杂性主要参数:

  1. 规模:代码行数
  2. 难度:操作数的数目
  3. 结构:程序结构有关的度量
  4. 智能度:算法难易程

eg:(2015年上半年试题)若采用白盒测试方法测试以下代码,并满足条件覆盖,则至少需要___个测试用例。采用McCabe度量法算出该程序的环路复杂性为___

int find_max(int i, int j, int k){
    int max;
    if(i > j) {
        if(i > k){
           max = i;
        } else {
           max = k;
        }
    } else {
        if(j > k) {
            max = j;
        } else {
            max = k;
        }
    }
    return max;
}

先画出该代码的流程图,如下:

要满足条件覆盖,要求三个判断框的Y和N至少要经过一次,即:1Y2Y,1Y2N,1N3Y,1N3N,至少需要4个测试用例。
根据McCabe度量法环路复杂性公式V(g)=m-n+2,图中m=9,n=7, V(g)=9-7+2=4。
那么答案应是:4个用例,环路复杂度为4。

eg2:

语句覆盖:1条;

复杂度:3,这种直接算闭环比较简单;

测试阶段

  1. 确认测试一般是最后一个环节;始于集成测试的结束,那时已测试完单个构件,软件已经组装成完整的软件包,而且 接口错误已被发现和改正。 确认过程的一个重要成分是配置评审,主要检查软件、文档、数据是否齐全、分类有序。
  2. 单元测试:模块
  3. 确认测试:测需求
  4. 系统测试:性能,验证是否按照需求分析中的完成了(测试目标来自需求分析)
  5. 负载测试:并发
  6. 强度测试:系统不正常情况下
  7. 容量测试:极限值测试
  8. 三明治测试策略:结合了自顶向下和自底向上,一次性测试然后继承,缺点是需要写较多的驱动模块和桩模块
  9. 自顶向下的优点:较早验证主要的;只需要一个驱动
  10. 自底向上优点:较早验证底层组件,比顶向下效率高,减少了桩的工作量(不用写桩程序)

集成测试通常有以下两种方法:

(1)非增量集成:分别测试各个模块,再将这些模块组合起来进行整理测试。

(2)增量集成:以小增量的方式逐步进行构造和测试。

自顶向下集成测试、自底向上集成测试、回归测试、冒烟测试

调试

(1)试探法:调试人员分析错误的症状,猜测问题所在的位置,一步步试探和分析问题所在。 该方法效率低,适用于结构比较简单的程序。

(2)回溯法:调试人员从发现错误症状的位置开始,人工沿着程序的控制流程往回追踪代码, 直到找出问题根源为止。该方法适用于小型程序。

(3)对分查找法:该方法主要用来缩小错误范围,直到把故障范围缩小到比较容易诊断为止。

(4)归纳法:从测试所暴露的问题出发,收集所有正确、不正确的数据,并分析它们之间的 关系,提出假想的错误原因,用这些数据证明或反驳,从而查出错误所在。

(5)演绎法:根据测试结果,列出可能的错误原因,分析已有的数据,排除不可能和彼此矛 盾的原因。若有多个错误同时存在,就要重新分析,提出新的假设,直到发现错误为止。

系统运行与维护

可维护性评价指标:可理解性、可测试性、可修改

软件系统的可维护性评价指标包括可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率

改正性维护:发现bug后维护

适应性维护:兼容环境

软件文档:

软件可靠性,可用性,可维护性

eg:

软件质量管理

  • 快捷记忆:https://blog.csdn.net/fxq8866/article/details/49534269
  • 易使用性:易理解性、易学性、易操作性(没有易分析性,这个属性可维护性)
  • 将每个用户的数据隔离开,属于功能性
  • 模块结构评审包括:控制流结构、数据流结构、模块结构与功能结构之间的对应关系
  • 容错技术:对无法避免的差错,使其影响降到最低
  • 冗余技术分为四类:结构冗余、信息冗余、时间冗余、冗余附加技术
  • 结构冗余:按照工作方法可以分为静态、动态和混合冗余
  • 信息冗余,指的是为了检测或纠正信息在运算或传输中的错误另外加的一部分信息;
  • 冗余附加技术,是指为实现上述冗余技术所需的资源和技术。
  • (在屏蔽硬件错误的容错技术中,冗余附加技术包含:关键程序和数据的冗余存储:检测、表决、切换、重构、纠错、复算的实现)
  • (在屏蔽软件错误的容错技术中,冗余附加技术包含:冗余备份程序的存储和调用、实现错误检测和错误恢复的程序、实现容错软件所需的固化程序)
  • 知识冗余:可以通过知识分析得到的数据

软件配置管理

项目估算

得不到精确的估算结果

方法:专家估算方法(收到专家的主观影响)、启发式方法COCOMO模型(参数难以确定)、机器学习(难以训练数据集的特征和相似性)

Wolverton模型:基于成本矩阵,定义不同软件类型和难易成本

COCOMO模型:将规模视为成本的主要因素,考虑多个成本驱动因子

COCOMO II模型:还考虑了软件开发的不同阶段,包含三个阶段性模型,即应用组装模型、早期设计阶段模型和体系结构阶段模型,三种规模估算选择:对象点、功能点、代码行

Gantt图

Pert图

项目计划评审技术图(PERT)

最早时刻:

最晚时刻:

松弛时间:

= 迟-早

eg:

McCall

软件质量模型给出了一个三层模型框架,第一层为质量特性,第二层为评价准则,第 三层为度量指标。

McCall认为软件质量由12个特性组成,分别面向软件产品的运行、修正、转移。
(1) 产品运行:正确性、可靠性、可使用性、效率、完整性、安全性。
(2) 产品修正:可维护性、可测试性、灵活性。
(3) 产品转移:互连性、可移植性、复用性。

1、正确性:系统满足规格说明和用户目标的程度,即在预定环境下能正确地完成预期功能的程度。

2、健壮性:在硬件发生故障、输入的数据无效或操作错误等意外环境下,系统能做出适当响应的程度。

3、效率:为了完成预定的功能,系统需要的计算资源的多少。

4、完整性:对未经授权的人使用软件或数据的企图,系统能够控制(禁止)的程度。

5、可用性:系统在完成预定应该完成的功能时令人满意的程度。

6、风险:按预定的成本和进度把系统开发出来,并且为用户所满意的概率。

7、可理解性:理解和使用该系统的容易程度。

8、可维修性:诊断和改正在运行现场发现的错误所需要的工作量的大小。

9、灵活性:修改或改进正在运行的系统需要的工作量的多少。

10、可测试性:软件容易测试的程度。

11、可移植性:把程序从一种硬件配置和软件系统环境转移到另一种配置和环境时,需要的工作量多少。

12、可再用性:在其他应用中该程序可以被再次使用的程度。

13、互运行性:把该系统和另一个系统结合起来需要的工作量的多少。

软件风险管理

  1. 软件风险 软件风险包括两个特性:不确定性和损失。不确定性是指风险可能发生也可能不发生;损失是 指风险发生后会产生恶性后果。 常见的商业风险有:市场风险、策略风险、销售风险、管理风险、预算风险。

  2. 风险识别 当识别出已知风险和可预测风险后,项目管理者首先要做的是尽可能回避这些风险,在必要时 控制这些风险。风险因素可以定义为:性能风险、成本风险、支持风险、进度风险。

  3. 风险预测 风险预测又称为风险估计,它试图从两个方面评估一个风险:风险发生的可能性或概率;风险 发生后所产生的后果。

  4. 风险控制 应对风险最好的办法是主动地避免风险,即在风险发生前分析引起风险的原因,然后采取措施 避免风险的发生。

黄金准则

Theo mandel关于界面设计(人机交互)的三条换黄金准则:

用户操纵控制、减轻用户记忆负担、保持界面一致

管道过滤器体系结构

系统处理数据流的结构

单步数据处理封装在一个过滤器中,数据在过滤器之间的管道传输。

data source(数据源),filter(过滤器)和data sink(数据汇点)三者,使用pipe(管道)进行连接
过滤器视为组件。
管道视为连接件。
管道将一个过滤器的输出传给另一个过滤器的输入。

优点:

  1. 高内聚低耦合
  2. 经系统看做过滤器简单合成
  3. 支持软件复用
  4. 维护和增强性能简单
  5. 允许分析吞吐量和死锁
  6. 支持并行

缺点:
1.数据传输和转化开销大
2.错误处理复杂


后续刷题,写错题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/615689.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Remix部署智能合约到币安链(Remix的操作介绍 币安链合约的部署) 点赞收藏哦

大家好,我是程序员大猩猩呀。 据我所知,很多人进入币圈之后,想要通过炒币一夜暴富!另一部分人呢他们希望自己能创建一个项目,然后发行自己的数字货币然后暴富。 不管是什么方式吧,只要不违法,…

原创未发表!24年新算法SBOA优化TVFEMD实现分解+四种熵值+频谱图+参数变化图+相关系数图!

声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 数据介绍 优化流程 创新点 使用TVFEMD的创…

【详细介绍下Visual Studio】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

树莓派、ubuntu低版本python3安装库

如果遇到树莓派中自带低版本python3,又不想额外去安装python3时,可能会遇到版本过低,无法安装库的情况,以下用我实际情况举例解决方案。 本次遇到的问题是树莓派低版本中,python3为3.7.3,需要安装numpy&am…

数据结构与算法学习笔记三---循环队列的表示和实现(C语言)

目录 前言 1.为啥要使用循环队列 2.队列的顺序表示和实现 1.定义 2.初始化 3.销毁 4.清空 5.空队列 6.队列长度 7.获取队头 8.入队 9.出队 10.遍历队列 11.完整代码 前言 本篇博客介绍栈和队列的表示和实现。 1.为啥要使用循环队列 上篇文章中我们知道了顺序队列…

【数据结构】静态链表

静态链表 1.静态链表的结构设计: typedef struct SNode {int data; // 数据int next; //后继指针(下标) }SNode, SLinkList[MAXSIZE];2.静态链表的结构示意图 0:有效数据链的头结点 1:空闲数据链的头结点 3.静态链表…

重生奇迹mu再生宝石怎么用有什么用

重生奇迹mu再生宝石有2个用处: 1、在玛雅哥布林处给380装备加PVP属性4追4以上的380级装备,守护宝石一颗,再生宝石一颗,成功得到PVP装备,失败宝石消失,装备无变化; 2、给非套装点强化属性用法跟祝福,灵魂,生命一样直接往装备上敲,成功得到随机强化属性一…

【linux软件基础知识】如何使用 run_list 字段将任务放入就绪队列中

在给定的代码片段中,struct task_struct 表示内核中任务或进程的进程控制块 (PCB)。 run_list 字段的类型为 struct list_head,这表明它是链表实现的一部分。 run_list字段在Linux内核中常用来表示任务在调度队列中的位置,例如就绪队列或各种优先级队列。 init_task是一个…

深入理解Java并发:Future与CompletableFuture详解

知识背景: 在工作过程中有用到CompletableFuture,之前接触不多,特此下来学习一下,与大家一起分享! 总体介绍: 在多线程编程中,异步计算是一种常见的需求。其中Future和CompletableFuture是处…

SVN 合并到 Git 时有文件大于 100 M 被限制 Push

如果有文件大小大于 100M,GitHub 是会被限制推送到仓库中的,大概率情况会显示下面的错误: remote: Resolving deltas: 100% (3601/3601), done. remote: error: Trace: aea1f450da6f2ef7bfce457c715d0fbb9b0f6d428fdca80233aff34b601ff59b re…

飞书API(8):MySQL 入库定制版本

一、引入 通用版能解决百分之八九十的任务,剩下的部分任务需要进行定制。 先说明通用版本和定制版本有什么不同,通用版本就是只管大的数据类型,将数据处理为对应的类型入库,而定制版本会考虑局部列的数据类型,。举个…

SpringCloud 2023.0.1

本文介绍如何使用 springboot3及cloud2023 进行微服务模块化开发 采用父-module 模块开发 父工程 demo-java pom.xml <!--配置 springboot的依赖的版本号, 方便 module 进行继承--><dependencyManagement><dependencies><!--增加 springboot的依赖--&g…

XXE-lab靶场搭建

源码下载地址 https://github.com/c0ny1/xxe-lab1.php_xxe 直接放在php web页面下即可运行。 2.java_xxe java_xxe是serlvet项目&#xff0c;直接导入eclipse当中即可部署运行。 3.python_xxe: 安装好Flask模块python xxe.py 4.Csharp_xxe 直接导入VS中运行 phpstudy…

第100+7步 ChatGPT文献复现:ARIMA-GRNN预测出血热

基于WIN10的64位系统演示 一、写在前面 这一次&#xff0c;我们来解读ARIMA-GRNN组合模型文章&#xff0c;也是老文章了&#xff1a; 《PLoS One》杂志的2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal…

用HAL库改写江科大的stm32入门例子8-1 DMA数据转运

实验1-实验目的&#xff1a;通过DMA把buffer的数据搬运到buffer2当中。 //declare a buffer to store the data uint32_t buffer[3] {1,2,3};//declare a buffer to store the data uint32_t buffer2[3] {0,0,0}; DMA&#xff1a;是个搬运数据的小助手。 相关设置&#xff1…

DHCP原理

什么是DHCP DHCP (Dynamic Host Configuration Protocol,动态主机配置协议&#xff09;是由Internet工作任务小组设计开发的&#xff0c;专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议&#xff0c;是一个应用层协议&#xff0c;使用UDP的67和68端口。 DHCP的前身是B…

导航软件iApp源码V3+配置教程

一款支持侧边导航栏的网页导航APP源码&#xff0c;风格简约为主&#xff0c;可以通过远程文档进行远程控制列表&#xff0c;浏览器拥有检测下载的功能。&#xff0c;配置较为简单&#xff0c;适合入门小白学习参考。 导航软件iApp源码V3配置教程 配置教程在mian.iyu的载入事件…

BGP基础

1.BGP概述 &#xff08;1&#xff09;AS IANA&#xff08;Internet Assigned Numbers Authority&#xff0c;因特网地址分配组织&#xff09;&#xff1a;IAB&#xff08;Internet Architecture Board&#xff0c;因特网体系委员会&#xff09;的下设组织。IANA授权NIC&#x…

【hana】hana1.0多容器常用命令

基础命令 数据库 连接数据库 hdbsql -u system -p {passwd} -i 02 -d {dbname}查询所有数据库 SELECT DATABASE_NAME, ACTIVE_STATUS FROM M_DATABASES;停止数据库&#xff0c;会修改数据库状态为No ALTER SYSTEM STOP DATABASE testdb; 启动数据库&#xff0c;会修改数据…

基于阿里云向量检索 Milvus 版与 PAI 搭建高效的检索增强生成(RAG)系统

阿里云向量检索 Milvus 版现已无缝集成于阿里云 PAI 平台&#xff0c;一站式赋能用户构建高性能的检索增强生成&#xff08;RAG&#xff09;系统。您可以利用 Milvus 作为向量数据的实时存储与检索核心&#xff0c;高效结合 PAI 和 LangChain 技术栈&#xff0c;实现从理论到实…