软考-软件工程

news2024/12/28 21:01:58

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

概述:

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

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

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

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

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

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.错误处理复杂


后续刷题,写错题

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣127.单词接龙讲解

距离上一次刷题已经过去了.........嗯............我数一一下............整整十天,今天再来解一道算法题 由于这段时间准备简历,没咋写博客。。今天回来了!!!!!!!&…

ctfshow SSRF 351-358

做题前,需要先学习关于ssrf漏洞的相关知识 小注意: 当使用 file_get_contents() 函数访问远程 URL 时,它会尝试获取该 URL 指向的资源的内容,并将内容以字符串的形式返回。 如果 b.php 文件是一个 PHP 文件,它包含的内容取决于该 PHP 文件…

Visual Studio,第1个hello world,入门C++,分别编译一个可以在Windows和Linux下运行的程序

本人的VxTerm,是在Visual Studio 2022下编写的。 其它的语言工具是不是也可以那么方便的使用,本人并不得而知,至少本人能知道:对于我来说,Visual Studio可以让我觉得C/C语言非常简单! 一、安装Visual Stu…

D - Another Sigma Problem(ABC)

思路:我们可以处理一个后缀来记录当前数a[i]需要乘上多少(类似于1110这样的),然后对于当前位来说,对答案的贡献还要加上(i - 1) * a[i],因为a[i]还要做前(i - 1)个数的后缀。 代码: #include &…

基于FPGA的NC图像质量评估verilog实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 vivado2019.2和matlab2022a测试,结果如下: 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 timescale …

数据中台:企业数字化转型的桥梁_光点科技

在数字化日益深入企业核心运营的今天,数据中台作为一个关键的信息化架构,正逐渐崭露头角,成为连接企业各部门、优化数据管理和推动业务创新的重要桥梁。 一、数据中台:连接与整合的桥梁 数据中台的核心作用在于连接与整合。传统的…

深入理解MySQL三大日志:redo log、binlog、undo log

前言 MySQL是一个功能强大的关系型数据库管理系统,它的高可靠性、高性能和易用性使得它成为众多企业和开发者的首选。在MySQL内部,为了保证数据的完整性、恢复能力和并发性能,设计了一套复杂的日志系统。其中,redo log、bin log和…

Android 13 系统自定义安全水印

效果 源码实现 frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java public final void showSafeModeOverlay() {View v LayoutInflater.from(mContext).inflate(com.android.internal.R.layout.safe_mode, null);WindowManager.Layout…

串口数据的发送(单词的发送)and UART原理协议---第九天

1.在中断函数中,定义一个数组给SBUF, i数组的偏移以便输入单词,; 用strstr()函数来比较cmd输入的单词里面的 "en" , " se ";亮灯后i回来原来的位置0,清空cmd, UART 原理…

搭建私有仓库Nexus的流程以及npm包的开发和发布

搭建私有仓库 Nexus 的流程(Ubuntu)以及 npm 包的开发和发布 本文档是关于在 Ubuntu 上面搭建 Nexus,以及制作 npm 包并发布到 Nexus 的流程说明。 关于 Ubuntu Ubuntu 是一个基于 Linux 的操作系统,通常会用在服务器或者嵌入式…

Git团队协作机制

Git 团队协作机制 1.团队内协作 小故事:岳不群手里有华山剑法但是不完整,需要弟子令狐冲进行完善,岳不群将华山剑法推送(push)到代码托管中心,这样岳不群就有属于自己的远程库,令狐冲从远程库…

(文章复现)基于变异粒子群算法的主动配电网故障恢复策略

参考文献: [1]徐岩,张荟,孙易洲.基于变异粒子群算法的主动配电网故障恢复策略[J].电力自动化设备,2021,41(12):45-53.DOI:10.16081/j.epae.202108030. 1.基本原理 为提高主动配电网故障恢复的快速性和可靠性,提出一种基于变异粒子群算法的恢复策略。光…

六级翻译笔记

理解加表达 除了专有名词不能自己理解翻译,其它都可以 时态一般唯一 题目里出现有翻译为 客观存在: there be 单词结尾加er和ee的区别:er是主动,ee是被动 中文句子没有被动,也可以英文翻译为被动 中文的状语可以不是…

3月笔记本电脑行业线上市场销售数据分析

笔记本电脑市场在过去几年中经历了起伏,但总体上呈现出稳定增长的态势。特别是随着远程办公、在线学习等需求的增加,以及消费者对于便携性、高性能等方面的追求,笔记本电脑市场得到了进一步的发展。 据鲸参谋数据统计,线上平台&a…

在Tiled中制作动画瓦片图

什么是瓦片图?瓦片图是指用图块把游戏场景评出来 工具安装链接:Tiled | Flexible level editor 资源下载教程 资源下载:Mystic Woods - 16x16 Pixel Art Asset Pack by Game Endeavor 解压后得到一些资源 新建图块集合 Tiled的安装就不介绍…

2024最新从0部署Django项目(nginx+uwsgi+mysql)

云服务器 我这里用的是腾讯云免费试用的2H4Gcentos服务器(后升级为2H8G,保险一点提高内存) 因为网上很多关于django部属的教程都是宝塔啊,python版本控制器啊这种的,我也误打误撞安装了宝塔面板,但这里我…

AR人像滤镜SDK解决方案,专业调色,打造个性化风格

视觉内容已成为企业传达品牌价值和吸引用户眼球的重要载体,为满足企业对于高质量、多样化视觉内容的迫切需求,美摄科技凭借先进的AR技术和深厚的图像处理经验,推出了业界领先的AR人像滤镜SDK解决方案。 一、一站式解决方案,覆盖多…

C++语法|智能指针的实现及智能指针的浅拷贝问题、auto_ptr、scoped_ptr、unique_ptr、shared_ptr和weak_ptr详细解读

文章目录 1.自己实现智能指针智能指针引起的浅拷贝问题尝试定义自己的拷贝构造函数解决浅拷贝 2.不带引用计数的智能指针auto_ptrscoped_ptrunique_ptr(推荐) 3.带引用计数的智能指针模拟实现引用计数shared_ptr和weak_ptr循环引用(交叉引用&…

Maven 的仓库、周期和插件

优质博文:IT-BLOG-CN 一、Maven 仓库 在Maven的世界中,任何一个依赖、插件或者项目构建的输出,都可以称为构建。Maven在某个统一的位置存储所有项目的共享的构建,这个统一的位置,我们就称之为仓库。任何的构建都有唯一…

信息系统架构模型_2.面向服务架构(SOA)模式

前面讲的客户机/服务器模式,无论多少层的C/S软件结构,对外来讲,都只是一个单结点应用(无论它由多个不同层的“服务”相互配合来完成其功能),具体表现为一个门户网站、一个应用系统等。而多个单点应用相互通…