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

软件设计师——系统基础开发

 3564004ba7684821b9ee7777f1d34efb.jpeg

📔个人主页📚:秋邱-CSDN博客
☀️专属专栏✨:软考——软件设计师
🏅往期回顾🏆:软件设计师——信息安全
🌟其他专栏🌟:C语言_秋邱 

一、软件工程概述

1.1、考点1、信息系统基本生存周期 (⭐⭐⭐)

  1. 可行性分析与项目开发计划
  2. 需求分析
  3. 概要设计
  4. 详细设计
  5. 编码
  6. 测试
  7. 维护

1.2、考点2、软件过程

1.2.1、CMM

  1. 初始级:杂乱无章,甚至混乱,几乎没有明确定义的步骤项目的成功完全依赖个人的努力和英雄式核心人物的作用。
  2. 可重复级:建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中成功。
  3. 已定义级:管理和工程两方面的软件过程已经文档化、标准化并综合成整个软件开发组织的标准过程。
  4. 已管理级:制定了软件过程和产品质量的详细度量标准。
  5. 优化级:加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进。

1.2.2、CMMI

1.2.2.1、阶段模型
  1. 初始的:过程不可预测且缺乏控制
  2. 已管理的:过程为项目服务。
  3. 已定义的:过程为组织服务。
  4. 定量管理的:过程已度量和控制。
  5. 优化的:集中于过程改进。
1.2.2.2连续式模型

等级

说明

关键字

CL0

(未完成的)

过程域未执行或未得到CL1中定义的所有目标。

未执行或未得到

CL1

(已执行的)

其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。

可标识的输入工作产品转换成可标识的输出工作产品

Cl2

(已管理的)

其共性目标是集中于已管理的过程的制度化。根据组织级政策规定过程的运作将使用哪个过程,项目遵循已文档化的计划和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和工作产品都被监控、控制、和评审

已管理的过程的制度化

CL3

(已定义级的)

其共性目标集中于已定义的过程的制度化。过程是按照组织的裁剪指南从组织的标准过程中裁剪得到的,还必须收集过程资产和过程的度量,并用于将来对过程的改进。

已定义的过程的制度化

CL4

(定量管理的)

其共性目标集中于可定量管理的过程的制度化。使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程执行的质量目标作为管理准则。

可定量管理的过程的制度化

CL5

(优化的)

使用量化(统计学)手段改变和优化过程域,以满足客户的改变和持续改进计划中的过程域的功效。

量化(统计学)手段改变和优化过程域

二、软件开发方法

结构化方法(需求明确

  • 用户至上
  • 严格区分工作阶段,每阶段有任务和结果
  • 强调系统开发过程的整体性和全局性
  • 系统开发过程工程化,文档资料标准化
  • 自顶向下,逐步分解(求精)

原型法(需求不明确

面向对象法(复杂,大项目

  • 更好的复用性
  • 关键在于建立一个全面、合理、统一的模型
  • 分析、设计、实现三个阶段,界限不明确

向服务的方法

  • 抽象级别:操作、服务、业务流程

Jackson

  • 面向数据结构

三、软件开发模型(⭐⭐⭐)

3.1、考点1:瀑布模型与V模型(⭐⭐⭐)

瀑布模型特点以文档作为驱动、适合于软件需求很明确的软件项目。

V模型特点:将验证确认活动应用于早期软件工程工作中,测试贯穿始终

3.2、考点2:演化模型(原型模型、螺旋模型)(⭐⭐⭐)

演化模型:演化模型是迭代的过程模型,使得软件开发人员能够逐步开发出更完整的软件版本。演化模型特别适用于对软件需求缺乏确认识的情况

原型方法比较适合于用户需求不清、需求经常变化的情况,当系统规模不是很大也不太复杂时,采用该方法比较好。

原型有多种分法:抛弃性原型、演化性原型

探索性原型、实验性原型、演化性原型

螺旋模型:瀑布模型演化模型结合,加入了风险分析。特别适用于庞大、复杂并且具有高风险的系统。

3.3、考点3:增量模型(⭐⭐⭐)

第1个增量往往是核心产品。将需求分段为一系列增量产品,每一增量可以分别开发。

3.4、考点4:喷泉模型(面向对象)

以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。

特点:迭代无间隙

3.5、考点5:统一过程UP(RUP)

3.6、考点6:敏捷方法(⭐⭐⭐)

3.6.1、基本原则

  • 短平快的会议
  • 小型版本发布
  • 较小的文档
  • 合作为重
  • 客户直接参与
  • 自动化测试
  • 适应性计划调整
  • 结对编程
  • 测试驱动开发
  • 持续集成
  • 重构

总体目标是通过“尽可能早地、持续地对有价值的软件的交付”使客户满意。适用于:“小步快跑”的思想,适合小项目小团队。

3.6.1.2、敏捷开发方法

敏捷方法

特点

极限编程XP

4大价值观、5个原则、12个最佳实践

水晶法(Crystal)

认为每一个不同的项目都需要一套不同的策略、约定和方法论,认为人对软件质量有重要的影响(以人为本),因此随着项目质量和开发人员素质的提高,项目和过程的质量也随之提高。通过更好地交流和经常性交付,软件生产力得到提高。

开放式源码

程序开发人员在地域上分布很广

并列争球法( SCRUM)

每30天一次的迭代称为一个“冲刺”,并按需求的优先级来实现产品。多个自组织和自治的小组并行地递增实现产品。协调是通过简短的日常情况会议来进行,就像橄球中的“并列争球”。

功用驱动开发方法FDD

首席程序员和“类”程序员

自适应软件开发ASD

核心是三个非线性的、重叠的开发阶段:猜测、合作与学习。ASD有6个基本的原则:有一个使命作为指导;特征被视为客户价值的关键点;过程中等待是很重要的,因此“重做与“做”同样关键;变化不被视为改正,而是被视为对软件TAS开发实际情况的调整,确定的交付时间造使开发人员认真考虑每一个生产的版本的关键需求;风险也包含其中。

极限编程XP

4大价值观

5大原则

12大最佳实践

沟通

简单

反馈

勇与

快速反馈

简单性假设

逐步修改

提倡更改

优质工作

计划游戏:快速制定计划、随着细节的不断变化而完善小型发布:系统的设计要能够尽可能早地交付

隐喻:找到合适的比喻传达信息

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

测试先行:先写测试代码,然后再编写程序

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

结对编程

集体代码所有制

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

每周工作40小时

现场顾客:系统最终用户代表应该全程配合XP团队编码标准

四、需求分析(⭐⭐⭐)

4.1、考点1:需求分析的概念

软件需求包括:功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密需求、可靠性要求、软件成本消耗与开发进度需求、其他非功能需求。

需求分析阶段的输出包括:数据流图、实体联系图、状态迁移图、数据字典,补充材料。

4.2、考点2:需求的分类

4.3、考点3:需求分析的工具

4.3.1、数据流图(⭐⭐⭐)

4.3.1、数据字典(⭐⭐⭐)

数据字典有以下四个条目:数据流、数据项、数据存储和基本加工,(源点和终点不在系统之内,不在字典中说明)

4.3.3、判定表

4.3.4、判定树

五、系统设计

5.1、考点1:系统设计概述

系统设计分为概要设计详细设计

概要设计:

  1. 设计软件系统总体结构
  2. 数据结构及数据库设计
    1. 概念设计
    2. 逻辑设计
    3. 物理设计
  1. 编写概要设计文档
  2. 评审

详细设计:对每个模块进行详细的算法设计

5.2、考点2:模块设计(⭐⭐⭐)

5.2.1、模块设计原则:

  1. 保持模块的大小适中
  2. 尽可能减少调用的深度(适中)
  3. 多扇入,少扇出(适中)
  4. 单入口,单出口
  5. 模块的作用域应该在模块之内
  6. 模块的作用域应该在模块之内

控制域>作用域

被调用模块和调用模块组成控制域名

高层依赖低层

5.2.2、高内聚、低耦合

内聚

内聚类型

描述

功能内聚

完成一个单一功能,各个部分协同工作,缺一不可

顺序内聚

处理元素相关,而且必须顺序执行

通信内聚

所有处理元素集中在一个数据结构的区域上

过程内聚

处理元素相关,而且必须按特定的次序执行

瞬时内聚(时间内聚)

所包含的任务必须在同一时间间隔内执行

逻辑内聚

完成逻辑上相关的一组任务

偶然内聚(巧合内聚)

完成一组没有关系或松散关系的任务

5.2.3、耦合(板块与板块之间的关联)

耦合类型

描述

非直接耦合

两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的

数据耦合

一组模块借助参数表传递简单数据

标记耦合

一组模块通过参数表传递记录信息(数据结构)

控制耦合

模块之间传递的信息中包含用于控制模块内部逻辑的信息

外部耦合

一组模块之间传递的信息中包含用于控制模块内部逻辑的信息

公共耦合

多个模块都访问同一个公共数据环境

内容耦合

一个模块直接访问另一个模块的内部数据;;一个模块不通过正常入口转到另一个模块的内部;两个模块有一部分程序代码重叠;一个模块有多个入口

5.3、考点3:人机界面设计考(⭐⭐⭐)

黄金三原则

  1. 置于用户控制之下
    1. 允许用户交互可以被终端和撤销
    2. 当技能级别增加可以使交互流水化并允许定制交互
  1. 减少用户的记忆负担
    1. 建立有意义的缺省
    2. 定义直觉性的捷径
  1. 保持界面的一致性

5.4、考点4:架构设计(⭐⭐⭐)

5.4.1、软件架构风格

架构设计的一个核心问题是能否达到架构级的软件复用

架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效地组织成一个完整的系统

架构风格定义了用于描述系统的术语表和一组指导构建系统的规则

数据流风格:批处理序列、管道-过滤器

调用/返回风格:主程序/子程序、面向对象、层次结构J(MVC、C/S、B/S)

独立构件风格:进程通信、事件驱动系统(隐式调用)

虚拟机风格:解释器、基于规则的系统

仓库风格: 数据库系统、超文本系统、黑板系统

5.4.2、数据流风格

批处理序列

构件为一系列固定顺序的计算单元,构件之间只通过数据传递交互。每个处理步骤是一个独立的程序,每一步必须在其前一步结束后才能开始数据必须是完整的,以整体的方式传递。

管道-过滤器

每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理:然后产生输出数据流。这个过程通常是通过对输入数据流的变换或计算来完成的,包括通过计算和增加信息以丰富数据、通过浓缩和删除以精简数据、通过改变记录方式以转化数据和递增地转化数据等。这里的构件称为过滤器,连接件就是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。

早期编译器就是采用的这种架构。要一步一步处理的,均可考虑采用此架构风格。

5.4.3、调用/放回风格

主程序/子程序

单线程控制,把问题划分为若干个处理步骤,构件即为主程序和子程序,子程序通常可合成为模块。过程调用作为交互机制,即充当连接件的角色。调用关系具有层次性,其语义逻辑表现为主程序的正确性取决于它调用的子程序的正确性

面向对象

构件是对象,对象是抽象数据类型的实例。在抽象数据类型中,数据的表示和它们的相应操作被封装起来,对象的行为体现在其接受和请求的动作。连接件即是对象间交互的方式,对象是通过函数和过程的调用来交互的

层次结构

构件 组织成一个层次结构,连接件通过决定层间如何交互的协议来定义。每层为上一层提供服务,使用下一层的服务,只能见到与自己邻接的层。通过层次结构,可以将大的问题分解为若干个渐进的小问题逐步解决,可以隐藏问题的复杂度。修改某一层,最多影响其相邻的两层(通常只能影响上层)

优点:

1、这种风格支持基于可增加抽象层的设计,允许将一个复杂问题分解成一个增量步骤序列的实现。2、不同的层次处于不同的抽象级别:越靠近底层,抽象级别越高;越靠近顶层,抽象级别越低;

3、由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件复用提供了强大的支持。

缺点:

1、并不是每个系统都可以很容易地划分为分层的模式。

2、很难找到一个合适的、正确的层次抽象方法。

5.4.4、层次架构风格

两层C/S

客户端和服务器都有处理功能。处理在表示层(客户端)和数据层(服务器)进行

三层C/S架构

将处理功能独立出来。表示层在客户机上,功能层在应用服务器上,数据层在数据库服务器上。

三层B/S架构

将客户端变为用户客户端上的浏览器,将应用服务器变为网络上的WEB服务器,又称为0客户端架构.

5.4.5、MVC架构风格

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。

View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。

Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

J2EE体系结构中:

  • 视图(View):JSP
  • 控制(Controller):Servlet
  • 模型(Model ): Entity Bean、 Session Bean

5.4.6、独立构件风格

进程通信

构件是独立的过程,连接件是消息传递。构件通常是命名过程,消息传递的方式可以是点对点、异步或同步方式,以及远程过程(方法)调用等。

事件驱动系统(隐式调用)

构件不直接调用一个过程,而是触发或广播一个或多个事件。构件中的过程在一个或多个事件中注册,当某个事件被触发时,系统自动调用在这个事件中注册的所有过程。一个事件的触发就导致了另一个模块中的过程调用。这种风格中的构件是匿名的过程,它们之间交互的连接件往往是以过程之间的隐式调用来实现的。主要优点是为软件复用提供了强大的支持,为构件的维护和演化带来了方便:其缺点是构件放弃了对系统计算的控制。

5.4.7、虚拟机风格

解释器

解释器通常包括一个完成解释工作的解释引擎、一个包含将被解释的代码的存储区、一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行的进度的数据结构。具有解释器风格的软件中含有一个虚拟机,可以仿真硬件的执行过程和一些关键应用,其缺点是执行效率比较低。

基于规则的系统

基于规则的系统包括规则集、规则解释器、规则/数据选择器和工作内存一般用在人工智能领域和DSS中。

5.4.8、仓库风格(以数据为中心的风格)

数据库系统

构件主要有两大类,一类是中央共享数据源,保存当前系统的数据状态;另一类是多个独立处理单元,处理单元对数据元素进行操作。

黑板系统

包括知识源、黑板和控制三部分。知识源包括若干独立计算的不同单元,提供解决问题的知识。知识源响应黑板的变化,也只修改黑板;黑板是一个全局数据库包含问题域解空间的全部状态,是知识源相互作用的唯一介;知识源响应是通过黑板状态的变化来控制的。黑板系统通常应用在对于解决问题没有确定性算法的软件中(信号处理、问题规划和编译器优化等)。

超文本系统

构件以网状链接方式相互连接,用户可以在构件之间进行按照人类的联想思维方式任意跳转到相关构件。超文本是一种非线性的网状信息组织方法,它以结点为基本单位,链作为结点之间的联想式关联。超文本系统通常应用在互联网领域。

现代集成编译环境一般采用这种架构风格。

六、系统测试

6.1、考点1:测试的基本概念及分类

测试遵循的原则:

  1. 尽早、不断的进行测试
  2. 程序员避免测试自己设计的程序
  3. 既要选择有效、合理的数据,也要选择无效、不合理的数据
  4. 修改后应进行回归测试
  5. 尚未发现的错误数量与该程序已发现错误数成正比

6.2、考点2:黑盒测试

等价类划分

  1. 确定无效与有效等价类
  2. 设计用例尽可能多的覆盖有效类
  3. 设计用例只覆盖一个无效类

边界值分析

  1. 处理边界情况时最容易出错
  2. 选取的测试数据应该恰好等于、稍小于或稍大手边界值

6.3、考点3:白盒测试(⭐⭐⭐)

定义

特点

语句覆盖

被测试程序中的每条语句至少执行一次。

对执行逻辑覆盖很低,一般认为是很弱的逻辑覆盖。

判定覆盖(分支覆盖)

被测程序每个判定表达式至少获得一次“真”值和“假”值(或者程序中每一个判定取“真”分支和取“假”分支至少通过一次。)

判定覆盖比语句覆盖更强一些。判定可以是1个条件,也可以是多个条件的组合。

条件覆盖

每一个判定语句中每个逻辑条件的各种可能的值至少满足一次。

条件覆盖和判断覆盖没有包含关系。

判断/条件覆盖

判定中每个条件的所有可能取值(真/假)至少出现一次,并使每个判定本身的判定结果(真/假)也至少出现一次。

同时满足判定覆盖和条件覆盖

条件组合覆盖

每个判定中的各种可能值的组合都至少出现一次。

同时满足判定覆盖、条件覆盖、判定/条件覆盖。

路径覆盖

覆盖被测试程序中所有可能的路径。

基本路径测试

每一条独立路径都执行过(即程序中可执行语句至少执行一次)。

测试用例个数与环路复杂度致。判定为关键控制结点,必须出现在基本路径中。

循环覆盖

循环中每个条件都得到验证。

注意数组参数可循环验证

6.4、考点4:测试阶段划分

单元测试:模块测试,模块功能、性能、接口等

集成测试:模块间的接口

系统测试:真实环境下,验证完整的软件配置项能否和系统正确连接。

确认测试:验证软件与需求的一致性。内部确认测试、Alpha测试(开发)、Beta测试(用户),验收测试。

回归测试:测试软件变更之后,变更部分的正确性对变更需求的符合性。

6.5、考点5:McCabe复杂度计算(⭐⭐⭐)

计算有向图的环路复杂度公式:V=m-n+2

说明:其中V是有向图中的环路个数,m是G中的有向弧数,n是G中的节点个数。

上图:15-12+2=5

七、软件维护(⭐⭐⭐)

可维护性因素决定

  • 可理解性
  • 可测试性
  • 可修改性

软件维护类型

  • 改正性维护
  • 适应性维护
  • 预防性维护
  • 完善性维护

适应性维护:指使应用软件适应信息技术变化和管理需求变化而进行的修改。企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。

完善性维护:扩充功能和改善性能而进行的修改。对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。

八、软件文档(⭐⭐⭐)

开发文档

产品文档

管理文档

  • 可行性研究和项目任务书
  • 需求规格说明
  • 功能规格说明
  • 设计规格说明(包括程序和数据规格说明)
  • 开发计划
  • 软件集成和测试计划
  • 质量保证计划、标准、进度
  • 安全和测试信息
  • 培训手册
  • 参考手册和用户指南
  • 软件支持手册
  • 产品手册和信息广告
  • 开发过程的每个阶段的进度和进度变更的记录
  • 软件变更情况的记录
  • 相对于开发的判定记录
  • 职责定义

九、软件质量保证模型(⭐⭐⭐)

功能性

可靠性

易用性

效率

维护性

可移植性

适合性

准确性

互操作性

安全保密性

依从性

功能性的依从性

成熟性

容错性

易恢复性

可靠性的依从性

易理解性

易学性

易操作性

易用性的依从性

时间特性

资源利用性

效率依从性

易分析性

易分析性

稳定性

易测试性

维护性的依从连

适应性

易安装性

易替换性

可移植性的依从性

相关文章:

软件设计师——系统基础开发

📔个人主页📚:秋邱-CSDN博客☀️专属专栏✨:软考——软件设计师🏅往期回顾🏆:软件设计师——信息安全🌟其他专栏🌟:C语言_秋邱 ​ 一、软件工程概述 1.1、考…...

架构设计笔记-7-系统架构设计基础知识

目录 知识要点 单选 案例分析 1.质量属性 / 管道过滤器 / 数据仓库风格 2.面向对象风格 / 控制环路风格 3.软件架构风格 / 架构风格选择 4.体系结构方案对比 5.面向对象风格 / 基于规则风格 6.解释器风格 / 管道过滤器风格 7.面向对象风格 / 解释器风格 8.软件架构复…...

跨平台应用程序本地化过程的特点

跨平台应用程序本地化不仅仅是将单词从一种语言翻译成另一种语言。这是关于调整应用程序,使其无缝融入全球用户的不同文化和语言环境,无论他们使用的是哪种设备或平台。这个过程对于跨平台应用程序来说尤其复杂,它们需要在多个操作系统和设备…...

C++面试速通宝典——9

170. 简述数组和指针的区别? ‌‌‌‌  答:数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。 1. 修改内容上的区别 char a[] “hello”; a[0] ‘X’; char * p …...

阿里巴巴商品详情API返回值:电商行业发展的新动力

阿里巴巴的商品详情API在电商行业中扮演着至关重要的角色,它不仅为商家和消费者提供了丰富的产品信息,还推动了电商行业的进一步发展和创新。通过API接口,开发者可以获取商品的详细信息,如标题、价格、库存、评价等,进…...

php的urlencode和rawurlencode区别

urlencode和rawurlencode都是用于对URL进行编码的函数,但它们在处理方式和应用场景上存在明显的区别。以下是关于这两个函数的详细比较: 一、定义与标准 urlencode:基于rawurlencode标准,但有略微的不同,它定义在rfc…...

LeetCode讲解篇之322. 零钱兑换

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们可以使用动态规划解决这道题,我们首先定义一个数组,数组中第i个元素表示组成金额 i 的最少硬币个数 我们遍历数组的1 ~ amount号位置,对coins进行遍历,查找选…...

猴子吃桃-C语言

1.问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个…...

【C++】单例模式「详尽版」

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 什么是单例模式如何实现单例模式饿汉模式和懒汉模式饿汉模式懒汉模式饿汉模式和懒汉模式的优缺点1.饿汉模式的优缺点2.懒汉模式的优缺点 什么是单例模式 C单例模式是一种非常重要的设计模式&#xf…...

MongoDB集群模式详解及应用实战

目录 本节课内容: 集群搭建 1.创建3个目录: 2.编辑配置文件 ​编辑 3.启动: 4.看看: 5.另外,两个如上1,2,3步骤操作 ,但是日志目录,端口什么的需要改一下即可。 …...

接着上一篇stp 实验继续

理论看上一篇,我们直接实验 首先找出root 桥 很明显 sw1 为root 桥,所谓sw1  &a…...

怎么将手机备忘录传送至电脑

在数字化时代,手机备忘录已成为我们生活中不可或缺的一部分。无论是记录购物清单、工作事项,还是灵感闪现的瞬间,手机备忘录都能随时记录下这些宝贵的信息,帮助我们防止遗忘。然而,有时候我们需要将这些备忘录内容转移…...

解决触摸屏屏幕乱动的问题:E: 无法定位软件包 libinput

在 Ubuntu 中,你可能已经有 libinput 库,它通常默认包含在系统中。如果你想使用 libinput 来管理输入设备(例如触摸屏或触摸板),通常不需要安装额外的软件包,而是直接使用系统自带的工具。 不过&#xff0…...

RISC-V笔记——基础

1. 前言 RISC-V旨在支持广泛的定制和专业化。RISC-V的ISA是由一个基本整型ISA和其它对基本ISA的可选扩展组成。每个整型ISA可以使用一个或多个可选的ISA扩展进行扩展。 基本整型ISA精选了最小的一组指令,这些指令足以为编译器、汇编器、链接器和操作系统提供足够的…...

「Kafka」Kafka消息可靠性和重复消费问题(五)

在 Kafka 中,实现消息的可靠性和避免重复消费是保证数据一致性和系统稳定性的关键。Kafka 提供了多种机制来实现这两个目标。 1. Kafka 消息可靠性 Kafka 的可靠性主要体现在消息的投递和存储上,以确保消息不会丢失。具体来说,有以下几个措…...

现代身份和访问管理 IAM 如何降低风险

您的公司是否仍在使用 1998 年时的身份管理系统?仅凭用户名和密码就能登录本地网络并访问几乎所有资源吗? 虽然大多数企业已经转向现代身份和访问管理(IAM) 平台,但成千上万的企业和其他组织仍然依赖过时的用户名/密码系统。 如果你看一下传…...

2024年江西省职业院校技能大赛(高职组)信息安全管理与评估”赛项竞赛规程

附件 1 2024年江西省职业院校技能大赛(高职组)信息安全管理与评估”赛项竞赛规程附件 1 一、赛项名称 信息安全管理与评估赛 二、竞赛目的 通过赛项检验参赛选手网络组建、按照等保要求加固网络、安全架构、 渗透测试等技术能力,检验参赛队计划组织和团队协作等综合…...

在 Koa 中,中间件函数的参数ctx是什么?

在 Koa 中,ctx 是指 context 对象,它是请求与响应的上下文,封装了 request 和 response。每当 Koa 收到一个 HTTP 请求时,都会为该请求创建一个 ctx 对象,ctx 使开发者可以通过它方便地获取请求信息并设置响应。 ctx …...

在 Gitlab 中使用 ChatGPT 进行 CodeReview

ChatGPT集成Gitlab,实现自动代码审计并进行评论,为软件开发团队提供高效、智能的代码审查解决方案。支持其他模型如通义千问等 自动触发与及时响应:利用Gitlab的Webhook功能,实现代码提交、合并请求和标签创建等事件的自动触发。一…...

解决新版Android studio不能连接手机的问题

我要说的是一个特例,装了22年的版本AS可以正常连接手机,装了23年以后新版本,AS不能正常连接手机了,但是在CMD控制台可以正常的执行adb命令,并且CMD和AS都是指向D:\android_sdk\platform-tools\adb.exe 一、 为什么会出…...

arcgis for js点位渲染与实际坐标不一致且popupTemplate偏移

问题描述 arcgis for js 鼠标点击地图时的经纬度, 使用该经纬度加载一个Point点, 该Point点渲染位置与实际经纬度不一致(存在偏差)该Point点设置popupTemplate弹窗, 点击Point点无法弹出 (位置偏移导致) 原因 地图容器或更外层元素CSS的scale属性导致...

定点数和浮点数的详细介绍(一)定义、范围、位宽

1.定点数 1.1定点数描述 定点数包括定点小数(纯小数)、定点整数(纯整数)、整数和小数位数固定的实数。 1.2定点小数: 小数点默认在符号位后面,首位为符号位,其他为数值位(在用二进制代表小数时,例如0xFF,就表示0.5+0.25+0.125+0.0625+0.03125........) 例如,用…...

Redis: 集群环境搭建,集群状态检查,分析主从日志,查看集群信息

集群环境搭建 在 Redis 5版本以前是用 Ruby 来搭建集群,在后面的版本中仍保留了相关功能可以再源码src目录中,看到 redis-trib.rb 这个东西,只是现在用这种方式搭建的少了我们看新的版本是怎样搭建集群的,新版构建集群的方式简单…...

『网络游戏』动态界面制作创建角色UI【02】

将上一章的登录界面隐藏 创建空物体重命名为CreateWnd 自适应铺满父物体 创建image重命名为bg并铺满 将以下资源图片放进Art文件夹 设置为精灵模式 填充背景 创建介绍Image面板与角色按钮 制作将3D模型动态防止UI界面上 首先创建RawImage 创建RenderTextures文件夹 创建Render…...

CMake 教程跟做与翻译 2

目录 STEP 1(Extra A):指定C的版本 STEP1(Extra B): 为我们的项目添加版本信息与配置的头文件 Reference STEP 1(Extra A):指定C的版本 有的时候,我们会是对一个比较年老的项目进行构建。这个时候,我们可能就需要限制一下使用的…...

Linux 之 安装软件、GCC编译器、Linux 操作系统基础

安装软件、GCC编译器、Linux 操作系统基础 学习任务: 安装 Vmware虚拟机、掌握Ubuntu 系统的使用认识 Ubuntu 操作系统的终端和 Shell掌握软件安装、文件系统、掌握磁盘管理与解压缩掌握 VIM 编辑器、Makefile 基本语法熟悉 Linux 常见指令操作 安装好开发软件&…...

[CTF夺旗赛] CTFshow Web13-14 详细过程保姆级教程~

前言 ​ CTFShow通常是指网络安全领域中的“Capture The Flag”(夺旗赛)展示工具或平台。这是一种用于分享、学习和展示信息安全竞赛中获取的信息、漏洞利用技巧以及解题思路的在线社区或软件。参与者会在比赛中收集“flag”,通常是隐藏在网络环境中的数据或密码形…...

【Matlab】Matlab 导入数据.csv或者.xlsx文件,然后使用这些数据来绘制图表

Matlab 导入数据.csv或者.xlsx文件,然后使用这些数据来绘制图表 初始数据 filename C:\Users\jia\Desktop\yadian\data\1Hz 2024_09_12 17_10_06.csv; 代码: clc;clear close all; % 读取Excel文件 filename C:\Users\jia\Desktop\yadian\data\1Hz …...

Awaken Likho恶意组织利用高级网络工具对俄罗斯政府发起“猛攻”

近日,俄罗斯政府机构和工业实体遭遇了一场名为“ Awaken Likho ”的网络活动攻击活动。 卡巴斯基表示,攻击者现在更倾向于使用合法MeshCentral平台的代理,而不是他们之前用来获得系统远程访问权限的UltraVNC模块。这家俄罗斯网络安全公司详细…...

【洛谷】P10938 Vani和Cl2捉迷藏 的题解

【洛谷】P10938 Vani和Cl2捉迷藏 的题解 洛谷传送门 题解 噢噢噢噢哦哦哦,神奇网络流,有点像 Floyd 在图上选取若干条互不相交的路径,并让这些路径不重不漏覆盖到每一个点。符合上述要求且总数最小的方案就叫做原图的最小路径点覆盖&…...