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

软考高级之系统架构师之系统开发基础

架构

场景

场景(scenarios)在进行体系结构评估时,一般首先要精确地得出具体的质量目标,并以之作为判定该体系结构优劣的标准。为得出这些目标而采用的机制做场景。场景是从风险承担者的角度对与系统的交互的简短描述。在体系结构评估中,一般采用刺激(stimulus)、环境(environment)和响应(response)三方面来对场景进行描述

在进行体系结构(架构)评估时,一般首先要精确地得出具体的质量目标,并以之作为判定该体系结构优劣的标准。我们把为得出这些目标而采用的机制叫做场景。场景是从风险承担者的角度对与系统的交互的简短描述。在体系结构评估中,一般采用刺激、环境和响应三方面来对场景进行描述。刺激是场景中解释或描述风险承担者怎样引发与系统的交互部分。例如,用户可能会激发某个功能,维护可能会做某个更改,测试人员可能会执行某种测这些都属于对场景的刺激。环境描述的是刺激发生时的情况。例如,当前系统处于什么状态?有什么特殊的约束条件?系统的负载是否很大?某个网络通道是否出现了阻塞等。响应是指系统是如何通过体系结构对刺激作出反应的例如,用户所要求的功能是否得到满足?维护人员的修改是否成功?测试人员的测试是否成功等。

软件

软件重用

分垂直式重用与水平式重用,垂直式重用是指局限于某一垂直领域的重用,如只在电力系统中用到的构件;而水平式重用是指通用领域的重用,如标准函数库,任何软件都能用,所以是水平式重用。

软件复用

软件复用过程:创建、复用、支持、管理4个过程。
创建过程:界定和提供可复用资产,以满足复用者的需要
复用过程:利用可复用资产来生产应用软件产品
支持过程:全面支持可复用资产的获取、管理和维护工作
管理过程:执行计划、启动、资源、跟踪,并协调其他各个过程;

SDE

软件开发环境(Software Development Environment,SDE)是指支持软件的工程化开发和维护而使用的一组软件,由软件工具集和环境集成机制构成。
软件开发环境应支持多种集成机制:如平台集成、数据集成、界面集成、控制集成和过程集成。软件开发环境应支持小组工作方式,并为其提供配置管理,环境的服务可用于支持各种软件开发活动,包括分析、设计、编程、调试和文档等。 较完善的软件开发环境通常具有多种功能,例如,软件开发的一致性与完整性维护,配置管理及版本控制,数据的多种表示形式及其在不同形式之间的自动转换,信息的自动检索与更新,项目控制和管理,以及对开发方法学的支持。软件开发环境具有集成性、开放性、可裁减性、数据格式一致性、风格统一的用户界面等特性,因而能大幅度提高软件生产率。

软件开发环境应支持多种集成机制,根据功能的不同,集成机制可以划分为环境信息库、过程控制与消息服务器、环境用户界面三个部分。

  • 环境信息库。环境信息库是软件开发环境的核心,用以存储与系统开发有关的信息,并支持信息的交流与共享。环境信息库中主要存储两类信息,一类是开发过程中产生的有关被开发系统的信息,例如分析文档、设计文档和测试报告等;另一类是环境 提供的支持信息,如文档模板、系统配置、过程模型和可复用构件等。
  • 过程控制与消息服务器。过程控制与消息服务器是实现过程集成和控制集成的基础。过程集成时按照具体软件开发过程的要求进行工具的选择与组合,控制集成使各工具之间进行并行通信和协同工作。
  • 环境用户界面。环境用户界面包括环境总界面和由它实行统一控制的各环境部件及工具的界面。统一的、具有一致性的用户界面是软件开发环境的重要特征,是充分发挥环境的优越性、高效地使用工具并减轻用户的学习负担的保证。

文档

在初步项目范围说明书中已文档化的主要的可交付物、假设和约束条件的基础上准备详细的项目范围说明书,是项目成功的关键。范围定义的输入包括以下内容:① 项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用,同样的信息需要进一步收集和开发,以产生详细的项目范围说明书。② 项目范围管理计划。③ 组织过程资产。④ 批准的变更申请。

用户文档

用户文档主要描述所交付系统的功能和使用方法,并不关心这些功能是怎样实现的。用户文档是了解系统的第一步,它可以让用户获得对系统准确的初步印象。 用户文档至少应该包括下述5方面的内容:
功能描述:说明系统能做什么
安装文档:说明怎样安装这个系统以及怎样使系统适应特定的硬件配置
使用手册:简要说明如何着手使用这个系统(通过丰富的例子说明.怎样使用常用的系统功能,并说明用户操作错误是怎样恢复和重新启动的)
参考手册:详尽描述用户可以使用的所有系统设施以及它们的使用方法,并解释系统可能产生的各种出错信息的含义(对参考手册最主要的要求是完整,因此通常使用形式化的描述技术)
操作员指南(如果需要有系统操作员的话):说明操作员应如何处理使用中出现的各种情况。 系统文档是从问题定义、需求说明到验收测试计划这样一系列和系统实现有关的文档。描述系统设计、实现和测试的文档对于理解程序和维护程序来说是非常重要的。

系统文档

项目

项目范围说明书

项目范围定义的输入有:
①项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用,同样的信息需要进一步收集和开发,以产生详细的项目范围说明书
②项目范围管理计划
③组织过程资产
④批准的变更申请
项目范围是为了达到项目目标,为了交付具有某种特制的产品和服务,项目所规定要做的。在信息系统项目中,产品范围是指信息系统产品或者服务所应该包含的功能,项目范围是指为了能够交付信息系统项目所必须做的工作。产品范围是项目范围的基础,产品的范围定义是信息系统要求的度量,而项目范围的定义是生产项目计划的基础。产品范围描述是项目范围说明书的重要组成部分。

初步范围说明书

最初的项目范围说明书是依据发起人或赞助人提供的信息制定的,并由项目管理团队在范围定义过程中进一步细化。内容包括:

  • 项目和范围的目标
  • 产品或服务的需求和特性
  • 项目的需求和可交付物
  • 产品验收的标准
  • 项目的边界
  • 项目约束条件
  • 项目假设
  • 最初的项目组织
  • 最初定义的风险
  • 进度里程碑
  • 对项目工作的初步分解
  • 初步的量级成本估算
  • 项目配臵管理的需求
  • 审批要求

详细范围说明书

范围定义的主要交付物是范围说明书,它详细描述项目的可交付物以及产生这些可交付物所必须做的项目工作。项目范围说明书在在所有干系人之间建立一个对项目范围的共同理解,描述项目的主要目标,使项目团队能进行更详细的计划,指导项目团队在项目实施期间的工作,并为评估是否为客户需求进行变更或附加的工作是否在项目范围之内提供基准。内容如下:
(1)项目的目标。包括成果性目标和约束性目标。
(2)产品范围描述。描述项目承诺交付的产品、服务或成果的特征。
(3)项目的可交付物。包括项目的产品、服务或成果,以及附属产出物例如项目管理报告和文档。
(4)项目边界。边界严格定义了哪些事项属于项目,也明确说明什么事项不属于项目的范围。
(5)产品验收标准。明确界定了验收可交付物的过程和原则。
(6)项目的约束条件。描述和列出具体的于西南股范围有关的约束条件,约束条件对项目团队的选择会造成影响。
(7)项目的假设。描述并列出特定的与项目范围相关发的假设,以及当这些假设不成立时对项目潜在的影响。

成本管理

成本管理过程包括:成本估算、成本预算与成本控制。成本预算的含义是将总的成本估算分配到各项活动和工作包上,来建立一个成本的基线。成本估算是对完成项目活动所需资金进行近似的估算。

时间管理

包括使项目按时完成所必需的管理过程。项目时间管理中的过程包括:活动定义、活动排序、活动资源估算、活动历时估算、制定进度计划、进度控制。

SV,Schedule Variance,进度偏差=已完工程计划时间—已完工程实际时间。
当进度偏差为负值时,表示进度滞后;当进度偏差等于零时,表示实际与计划相符。当进度偏差为正值时,表示进度提前。

CV,Cost Variance,成本偏差 = 挣值(EV)- 实际成本(AC)
当CV为正值时,表示实际消耗的人工(或费用)低于预算值,即有结余或效率高;当CV等于零时,表示实际消耗的人工(或费用)等预算值;当CV为负值时,表示实际消耗的人工(或费用)超出预算值或超支。

为了得到工作分解结构(Work Breakdown Structure,WBS)中最底层的交付物,必须执行一系列的活动。对这些活动的识别以及归档的过程就是活动定义。

鱼骨图(Ishikawa图)是一种发现问题根本原因的方法,通常用来进行因果分析。

可行性分析

可行性分析是所有项目投资、工程建设或重大改革在开始阶段必须进行的一项工作。项目的可行性分析是对多因素、多目标系统进行的分析、评价和决策的过程。

可行性研究通常从经济可行性、技术可行性、法律可行性和用户使用可行性4个方面来进行分析:

  • 经济可行性也称为投资收益分析或成本效益分析,主要评价项目的建设戍本、运行成本和项目建成后可能的经济收益。经济收益可以分为直接收益、间接收益、有形收益和无形收益等。
  • 技术可行性也称为技术风险分析,研究的对象是信息系统需要实现的功能和性能,以及技术能力约束。
  • 法律可行性也称为社会可行性,具有比较广泛的内容,它需要从政策、法律、道德、制度等社会因素来论证信息系统建设的现实性。
  • 用户使用可行性也称为执行可行性,是从信息系统用户的角度来评估系统的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等。

配置项

软件产品配置是指一个软件产品在生存周期各个阶段所产生的各种形式和各种版本的文档、计算机程序、部件及数据的集合。该集合的每一个元素称为该产品配置中的一个配置项。
配置项是构成产品配置的主要元素,配置项主要有以下两大类:

  1. 属于产品组成部分的工作成果:如需求文档、设计文档、源代码和测试用例等;
  2. 属于项目管理和机构支撑过程域产生的文档:如工作计划、项目质量报告和项目跟踪报告等。这些文档虽然不是产品的组成部分,但是值得保存。

配置项的状态通常包括:草稿、正式发布、正在修改。

管理工具

软件配置管理工具是指支持完成配置项标识、版本控制、变化控制、审计和状态统计等任务的工具,主要有下述功能:

  • 配置支持:配置是一组有共同目的的中间软件产品,其中每一个中间软件产品称为一个配置项。软件配置管理支持用户建立配置项之间的各种关系,并对这些关系加以维护,维护这些关系有助于完成某些特定任务(例如Build)和标识某一变化对整个系统开发的影响。
  • 版本控制:版本控制是软件配置管理的基本要求,它可以保证在任何时刻恢复任何一个版本、版本控制还记录每个配置项的发展历史,这样就保证了版本之间的可追踪性,也为查找错误提供了帮助,版本控制也是支持并行开发的基础。
  • 变更控制:是指在整个软件生存周期中对软件变更的控制。变更控制系统记录每次变更的相关信息(变更的原因、变更的实施者以及变更的内容等)。这些信息有助于追踪出现的各种问题。
  • 构造支持:软件系统往往由许多配置项构成,建立整个系统是个复杂和费时的过程,软件配置管理工具可以记录和追踪每个配置项信息,帮助用户自动和快速地建立系统,和版本控制结合在一起,可以有效地支持同时开发系统的多个版本。
  • 过程支持。过程详细描述各种人员在整个软件生存周期中如何使用整个系统,过程控制可以保证每一步都按照正确的顺序由合适的人员实施。过程控制本来是软件开发环境中一个独立的部分,软件配置管理也开始提供这部分功能。软件配置管理工具对过程的支持还很不够,而且支持方式差别也很大,许多管理只是提供一个预先定义好的生存周期模型,并保证开发的每一步都按照这个模型规定进行。
  • 团队支持。团队支持是指多个开发人员同时开发一个软件系统。大多数软件系统都需要多个开发人员参与,有效的团队支持对开发人员是很有用的。团队支持主要包括工作区管理、并行开发管理和远程开发管理(某些软件配置管理工具还包括对开发人员支持)。

基准测试

大多数情况下,为测试新系统的性能,用户必须依靠评价程序来评价机器的性能。把应用程序用的最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序(benchmark)。
真实程序、核心程序、小型基准程序和合成基准程序,其评测的准确程度依次递减。

事务处理性能委员会(Transaction Processing Performance Council,TPC)是制定商务应用基准程序(Benchmark)标准规范、性能和价格度量,并管理测试结果发布的非营利组织,其发布的TPC-C是在线事务处理的基准程序,TPC-D是决策支持的基准程序。

Web服务器性能指标主要有请求响应时间、事务响应时间、并发用户数、吞吐量、资源利用率、每秒钟系统能够处理的交易或者事务的数量等。

需求

需求特性

理想情况下,每一项用户、业务需求和功能需求都应具备下列性质:

  • 完整性:每一项需求都必须完整地描述即将交付使用的功能
  • 正确性:每一项需求都必须正确地描述将要开发的功能
  • 可行性:需求必须能够在系统及其运行环境的已知能力和约束条件内实现
  • 必要性:每一项需求记录的功能都必须是用户的真正需要
  • 无歧义:每一项需求声明对所有读者应该只有一种一致的解释
  • 可验证性:如果某项需求不可验证,那判定其实现的正确与否就变成主观臆断。

需求定义

需求定义的过程也就是形成需求规格说明书的过程,通常有两种需求定义的方法: 严格定义方法和原型方法。

严格定义方法,也称为预先定义,需求的严格定义建立在以下基本假设之上:

  • 所有需求都能够被预先定义。这意味着在没有实际系统运行经验的情况下,全部的系统需求均可通过逻辑推断得到。但这种假设在许多场合是不能成立的。
  • 开发人员与用户之间能够准确而清晰地交流。
  • 采用图形(或文字)可以充分体现最终系统。在使用严格定义需求的开发过程中,开发人员与用户之间交流与沟通的主要工具是定义报告,包括文字、图形、逻辑规则和数据字典等技术工具。

原型化的需求定义过程是一个开发人员与用户通力合作的反复过程。从一个能满足用户基本需求的原型系统开始,允许在开发过程中提出更好的要求,根据用户的要求不断地对系统进行完善,它实质上是一种迭代的循环型的开发方式。
使用原型方法时需注意几个问题:

  • 并非所有的需求都能在系统开发前被准确地说明
  • 项目干系人之间通常都存在交流上的困难
  • 需要实际的、可供用户参与的系统模型
  • 有合适的系统开发环境
  • 反复是完全需要和值得提倡的。需求一旦确定,就应该遵从严格定义的方法

需求管理

需求管理的活动包括:

  • 变更控制
  • 版本控制
  • 需求跟踪
  • 需求状态跟踪

需求跟踪

需求跟踪包括编制每个需求与系统元素之间的联系文档,这些元素包括别的需求、体系结构、其他设计部件、源代码模块、测试、帮助文件和文档等。跟踪能力信息使变更影响分析十分便利,有利于确认和评估实现某个建议的需求变更所必须的工作。 利用需求跟踪能力链(traceability link)可以跟踪一个需求使用的全过程,也就是从初始需求到实现的前后生存期。跟踪能力是优秀需求规格说明书的一个特征,为了实现跟踪能力,必须统一地标识出每一个需求,以便能明确地进行查阅。
客户需求向前追溯到软件需求。这样就能区分出开发过程中或者开发结束后,由于客户需求变更受到影响的软件需求,这也就可以确保软件需求规格说明包括所有客户需求。
从软件需求回溯响应的客户需求。这也就是确认每个软件需求的源头。如果使用实例的形式来描述客户需求,那么客户需求与软件需求之间的跟踪情况就是使用实例和功能性需求。从软件需求向前追溯到下一级工作产品。由于开发过程中系统需求转变为软件需求、设计、编码等,所以通过定义单个需求和特定的产品元素之间的(联系)链,可以从需求向前追溯到下一级工作产品。这种联系链告诉我们每个需求对应的产品部件,从而确保产品部件满足每个需求。从产品部件回溯到软件需求。说明了每个部件存在的原因。如果不能把设计元素、代码段或测试回溯到一个需求,可能存在“画蛇添足”的程序。然而,如果这些孤立的元素表明一个正当的功能,则说明需求规格说明书漏掉一项需求

需求抽取和分析的过程

  1. 发现需求
  2. 需求分类和组织
  3. 需求优先级划分和协商
  4. 需求规格说明

用例

是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。它确定一个和系统参与者进行交互,并可由系统执行的动作序列。用例模型描述的是外部执行者(Actor)所理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。 两个用例之间的关系主要有两种情况:一种是用于重用的包含关系,用构造型 include表示;另一种是用于分离出不同行为的扩展,用构造型extend表示。
①包含关系:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能 够使用一个构件来实现某一个用例的部分功能是很重要的事时,应该使用包含关系来表示它们。
②扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,可以断定将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。

软件质量

软件质量是指反映软件系统或软件产品满足规定或隐含需求的能力的特征和特性全体。软件质量管理是指对软件开发过程进行的独立的检查活动,由质童保证、质量规划和质量控制三个主要活动构成。软件质量保证是指为保证软件系统或软件产品充分满足用户要求的质量而进行的有计划、有组织的活动,其目的是生产髙质量的软件。软件评审是软件质量保证的主要活动之一。

用户界面设计

用户界面设计的基本原则是从实践中总结出来的一些设计规则。Theo Maiidel在他的界面设计著作中提出3条“黄金规则”:

  • 让用户拥有控制权:用户希望控制计算机,而不是被计算机控制,因此在设计人机界面时应遵循以下原则:交互模式的定义不能强迫用户进入不必要的或不希望的动作的方式;提供灵活的交互;允许用户交互可以被中断和撤销;当技能级別增长时可以使交互流水化并允许定制交互;使用户隔离内部技术细节。
  • 减少用户的记忆负担:要求用户记住的东西越多,与系统交互时出错的可能也越大,因此好的用户界面设计不应加重用户的记忆负担。减少用户记忆负担的设计原则为:减少对短期记忆的要求;建立有意义的默认值;定义直觉性的捷径;界面的视觉布局应该基于真实世界的隐喻;以不断进展的方式祸示信息。
  • 保持界面一致:用户应该以一致的方式展示和获取信息,这意味着:所有可视信息的组织遵循统一的设计标准,所有屏幕显示都遵守该标准。输入机制被约束到有限的集合内,在整个软件系统中被一致地使用,同时从任务到任务的导航机制也被一致地定义和实现。保持界面一致性的设计原则包括以下内容:允许用户将当前任务放在有意义的语境中;在应用系列内保持一致性;不要改变用户己经熟悉的用户交互模型。

安全

重放攻击

重放攻击,Replay Attacks,又称重播攻击、回放攻击或新鲜性攻击(Freshness Attacks),是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。Kerberos系统采用的是时间戳方案来防止重放攻击,这种方案中,发送的数据包是带时间戳的,服务器可以根据时间戳来判断是否为重放包,以此防止重放攻击。

相关文章:

软考高级之系统架构师之系统开发基础

架构 场景 场景(scenarios)在进行体系结构评估时,一般首先要精确地得出具体的质量目标,并以之作为判定该体系结构优劣的标准。为得出这些目标而采用的机制做场景。场景是从风险承担者的角度对与系统的交互的简短描述。在体系结构…...

Web 3.0 安全风险,您需要了解这些内容

随着技术的不断发展,Web 3.0 正在逐渐成为现实,为我们带来了许多新的机遇和挑战。然而,与任何新技术一样,Web 3.0 也伴随着一系列安全风险,这些风险需要被认真对待。在这篇文章中,我们将探讨一些与Web 3.0 …...

万宾科技22款产品入选《城市生命线安全工程监测技术产品名录》

2023年8月17日-18日,由北京市地下管线协会主办的2023首届城市生命线安全与发展大会在北京召开,本次大会汇聚中央及地方政府主管领导、院士专家、行业领袖、龙头代表、产业精英等。 大会聚焦安全监管智慧平台和燃气爆炸、城市内涝、地下管线交互风险、第三…...

MFC 隐藏窗口

亲测能用 改变主窗体的创建方式 将 C***App::InitInstance() 函数中的代码 CMFCApplication1Dlg dlg; m_pMainWnd &dlg; INT_PTR nResponse dlg.DoModal(); 替换为 CMFCApplication1Dlg dlg; m_pMainWnd &dlg; //INT_PTR nResponse dlg.DoModal(); INT_PTR nRe…...

Java数据库连接池原理及spring boot使用数据库连接池(HikariCP、Druid)

和线程池类似,数据库连接池的作用是建立一些和数据库的连接供需要连接数据库的业务使用,避免了每次和数据库建立、销毁连接的性能消耗,通过设置连接池参数可以防止建立连接过多导致服务宕机等,以下介绍Java中主要使用的几种数据库…...

百度商业AI 技术创新大赛赛道二:AIGC推理性能优化TOP10之经验分享

朋友们,AIGC性能优化大赛已经结束了,看新闻很多队员已经完成了答辩和领奖环节,我根据内幕人了解到,比赛的最终代码及结果是不会分享出来的,因为办比赛的目的就是吸引最优秀的代码然后给公司节省自己开发的成本&#xf…...

微服务时代java异常捕捉

一、尽量不要使用e.printStackTrace(),而是使用log打印。 ​反例:​ try{ // do what you want }catch(Exception e){ e.printStackTrace(); } ​ 正例:​ try{ // do what you want }catch(Exception e){ log.info("你的程序有异常啦,{}",e)…...

Hadoop支持LZO压缩

LZO(Lempel-Ziv-Oberhumer)是一种快速压缩算法,特别适用于大数据处理。在Hadoop生态系统中,LZO压缩通常用于Hadoop MapReduce作业的输入和输出数据,以减少存储空间和数据传输的开销。 以下是在Hadoop中使用LZO压缩的一般步骤: 安装LZO库和工具: 首先,需要在Hadoop集群…...

vue3 01-setup函数

1.setup函数的作用: 1.是组合式api的入口2.比beforeCreate 执行更早3.没有this组件实例一开始创建vue3页面的时候是这样的 <template></template> <script> export default{setup(){return{ }} } </script>给容器传参在页面中显示 数据给模板使用,以…...

iOS swift 类似AirDrop的近场数据传输 MultipeerConnectivity 框架

文章目录 1.github上的demo 1.github上的demo insidegui/MultipeerDemo – github insidegui/MultipeerKit – github...

Lnton羚通云算力平台OpenCV-PythonCanny边缘检测教程

Canny 边缘检测是一种经典的边缘检测算法&#xff0c;由 John F. Canny 在 1986 年提出。它被广泛应用于计算机视觉和图像处理领域&#xff0c;用于检测图像中的边缘。 ​【原理】 1. 去噪 由于边缘检测非常容易收到图像的噪声影响&#xff0c;第一步使用 5x5 高斯滤波去除图…...

2023-8-23 滑动窗口

题目链接&#xff1a;滑动窗口 #include <iostream>using namespace std;const int N 1000010;int n, k; int a[N], q[N];int main() {scanf("%d%d", &n, &k);for(int i 0; i < n; i) scanf("%d", &a[i]);int hh 0, tt -1;for(…...

SOA通信中间件常用的通信协议

摘要&#xff1a; SOA&#xff08;面向服务的架构&#xff09;的软件设计原则之一是模块化。 前言 SOA&#xff08;面向服务的架构&#xff09;的软件设计原则之一是模块化。模块化可以提高软件系统的可维护性和代码重用性&#xff0c;并且能够隔离故障。举例来说&#xff0c;…...

解决npm安装依赖失败,node和node-sass版本不匹配的问题

npm安装依赖报错&#xff1a; npm ERR! cb() never called! npm ERR! This is an error with npm itself. 一. 问题描述 用npm安装依赖报错&#xff1a; npm ERR! cb() never called! npm ERR! This is an error with npm itself. Please report this error at: npm ERR! …...

2023 网络建设与运维 X86架构计算机操作系统安装与管理题解

任务描述: 随着信息技术的快速发展,集团计划2023年把部分业务由原有的X86架构服务器上迁移到ARM架构服务器上,同时根据目前的部分业务需求进行了部分调整和优化。 一、X86架构计算机操作系统安装与管理 1.PC1系统为ubuntu-desktop-amd64系统(已安装,语言为英文),登录用户…...

LAMP 架构及Discuz论坛与Wordpress博客搭建

目录 1 LAMP 配置与应用 1.1动态资源与语言 1.2 LAMP 架构的组成 1.2.1 主要功能 2 编译安装Apache http 服务 2.1 环境准备 2.1.1 关闭防火墙及selinux服务 2.1.2 安装依赖环境 2.2 安装软件包 2.2.1 解压软件包 2.2.2 移动apr包 apr-util包到安装目录中&#xff0c;并…...

考研C语言进阶题库——更新51-60题

目录 51.银行系中有很多恒星&#xff0c;H 君晚上无聊&#xff0c;便爬上房顶数星星&#xff0c;H 君将整个银河系看做一个平面&#xff0c;左上角为原点&#xff08;坐标为&#xff08;1, 1&#xff09;&#xff09;。现在有 n 颗星星&#xff0c;他给每颗星星都标上坐标&…...

智能算法挑战赛决赛题目——初中组

题目 1. 判断是否存在重复的子序列 从 m 个字符中选取字符&#xff0c;生成 n 个符号的序列&#xff0c;使得其中没有 2 个相邻的子序列相同。如从 1&#xff0c;2&#xff0c;3&#xff0c;生成长度为 5 的序列&#xff0c;序列“12321”是合格的&#xff0c;而“12323”和“…...

一分钟学算法-递归-斐波那契数列递归解法及优化

一分钟学一个算法题目。 今天我们要学习的是用递归算法求解斐波那契数列。 首先我们要知道什么是斐波那契数列。 斐波那契数列&#xff0c;又称黄金分割数列&#xff0c;是一个经典的数学数列&#xff0c;其特点是第一项&#xff0c;第二项为1&#xff0c;后面每个数字都是前…...

选择Rust,并在Ubuntu上使用Rust

在过去的 8 年里&#xff0c;Rust 一直是开发人员最喜欢的语言&#xff0c;并且越来越被各种规模的软件公司采用。然而&#xff0c;它的许多高级规则和抽象创造了一个陡峭的初始学习曲线&#xff0c;这可能会给人留下 Rust 是少数人的保留的印象&#xff0c;但这与事实相去甚远…...

SVM详解

公式太多了&#xff0c;就用图片用笔记呈现&#xff0c;SVM虽然算法本质一目了然&#xff0c;但其中用到的数学推导还是挺多的&#xff0c;其中拉格朗日约束关于α>0这块证明我看了很长时间&#xff0c;到底是因为悟性不够。对偶问题也是&#xff0c;用了一个简单的例子才明…...

mysql全文检索使用

数据库数据量10万左右&#xff0c;使用like %test%要耗费30秒左右&#xff0c;放弃该办法 使用mysql的全文检索 第一步:建立索引 首先修改一下设置: my.ini中ngram_token_size 1 可以通过 show variables like %token%;来查看 接下来建立索引:alter table 表名 add f…...

opencv 进阶17-使用K最近邻和比率检验过滤匹配(图像匹配)

K最近邻&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;和比率检验&#xff08;Ratio Test&#xff09;是在计算机视觉中用于特征匹配的常见技术。它们通常与特征描述子&#xff08;例如SIFT、SURF、ORB等&#xff09;一起使用&#xff0c;以在图像中找到相似…...

Mac Flutter web环境搭建

获取 Flutter SDK 下载以下安装包来获取最新的 stable Flutter SDK将文件解压到目标路径, 比如: cd ~/development $ unzip ~/Downloads/flutter_macos_3.13.0-stable.zip 配置 flutter 的 PATH 环境变量&#xff1a; export PATH"$PATH:pwd/flutter/bin" // 这个命…...

在外SSH远程连接macOS服务器

文章目录 前言1. macOS打开远程登录2. 局域网内测试ssh远程3. 公网ssh远程连接macOS3.1 macOS安装配置cpolar3.2 获取ssh隧道公网地址3.3 测试公网ssh远程连接macOS 4. 配置公网固定TCP地址4.1 保留一个固定TCP端口地址4.2 配置固定TCP端口地址 5. 使用固定TCP端口地址ssh远程 …...

Dockerfile文件详细

Dockerfile 是一个文本文件&#xff0c;里面包含组装新镜像时用到的基础镜像和各种指令&#xff0c;使用dockerfile 文件来定义镜像&#xff0c;然后运行镜像&#xff0c;启动容器。 dockerfile文件的组成部分 一个dockerfile文件包含以下部分&#xff1a; 基础镜像信息&…...

C语言学习系列-->看淡指针(3)

文章目录 一、字符指针变量二、数组指针变量2.1 概述2.2 数组指针初始化 三、二维数组传参本质四、函数指针五、typedef关键字六、函数指针数组 一、字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 char* 一般使用&#xff1a; #include<stdio.h>int main…...

Java抽象类详解

抽象类 抽象类的概念 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是来描绘对象的&#xff0c;如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类。比如&#xff1a; 说…...

06-微信小程序-注册程序-场景值

06-微信小程序-注册程序 文章目录 注册小程序参数 Object object案例代码 场景值场景值作用场景值列表案例代码 注册小程序 每个小程序都需要在 app.js 中调用 App 方法注册小程序实例&#xff0c;绑定生命周期回调函数、错误监听和页面不存在监听函数等。 详细的参数含义和使…...

多种方法实现 Nginx 隐藏式跳转(隐式URL,即浏览器 URL 跳转后保持不变)

多种方法实现 Nginx 隐藏式跳转(隐式URL,即浏览器 URL 跳转后保持不变)。 一个新项目,后端使用 PHP 实现,前端不做路由,提供一个模板,由后端路由控制。 Route::get(pages/{name}, [\App\Http\Controllers\ResourceController::class, getResourceVersion])...

视频汇聚云平台EasyCVR视频监控管理平台进行SDN转推的操作步骤

视频汇聚/视频云存储/集中存储/视频监控管理平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;实现视频资源的鉴权管理、按需调阅、全网分发、云存储、智能分析等&#xff0c;视频智能分析平台EasyCVR融合性强、开放度…...

SQL 语句继续学习之记录二

三&#xff0c; 聚合与排序 对表进行聚合查询&#xff0c;即使用聚合函数对表中的列进行合计值或者平均值等合计操作。 通常&#xff0c;聚合函数会对null以外的对象进行合计。但是只有count 函数例外&#xff0c;使用count(*) 可以查出包含null在内的全部数据行数。 使用dis…...

【Python原创设计】基于Python Flask 机器学习的全国+上海气象数据采集预测可视化系统-附下载链接以及详细论文报告,原创项目其他均为抄袭

基于Python Flask 机器学习的全国上海气象数据采集预测可视化系统 一、项目简介二、开发环境三、项目技术四、功能结构五、运行截图六、功能实现七、数据库设计八、源码获取 一、项目简介 在信息科技蓬勃发展的当代&#xff0c;我们推出了一款基于Python Flask的全国上海气象数…...

Unity进阶–通过PhotonServer实现人物选择和多人同步–PhotonServer(四)

文章目录 Unity进阶–通过PhotonServer实现人物选择和多人同步–PhotonServer(四)服务端客户端 Unity进阶–通过PhotonServer实现人物选择和多人同步–PhotonServer(四) 服务端 服务端结构如下&#xff1a; UserModel using System; using System.Collections.Generic; usin…...

【Go 基础篇】Go语言获取用户终端输入:实现交互式程序的关键一步

介绍 在许多编程场景中&#xff0c;我们需要编写交互式程序&#xff0c;以便用户可以在终端中输入数据并与程序进行交互。Go语言提供了丰富的方式来获取用户终端输入&#xff0c;使得编写交互式程序变得简单而有趣。本篇博客将深入探讨Go语言中获取用户终端输入的各种方法&…...

学习笔记:Opencv实现拉普拉斯图像锐化算法

2023.8.19 为了在暑假内实现深度学习的进阶学习&#xff0c;Copy大神的代码&#xff0c;记录学习日常 图像锐化的百科&#xff1a; 图像锐化算法-sharpen_lemonHe_的博客-CSDN博客 在环境配置中要配置opencv&#xff1a; pip install opencv-contrib-python Code and lena.png…...

如何在前端实现WebSocket发送和接收UDP消息(多线程模式)

目录 简介&#xff1a;步骤1&#xff1a;创建WebSocket连接步骤2&#xff1a;创建Web Workers步骤3&#xff1a;发送和接收UDP消息&#xff08;多线程模式&#xff09;结束语&#xff1a; 简介&#xff1a; 本文将继续介绍如何在前端应用中利用WebSocket技术发送和接收UDP消息…...

【微服务】一文了解 Nacos

一文了解 Nacos Nacos 在阿里巴巴起源于 2008 2008 2008 年五彩石项目&#xff08;完成微服务拆分和业务中台建设&#xff09;&#xff0c;成长于十年双十一的洪峰考验&#xff0c;沉淀了简单易用、稳定可靠、性能卓越的核心竞争力。 随着云计算兴起&#xff0c; 2018 2018 20…...

量子计算对信息安全的影响:探讨量子计算技术对现有加密方法和信息安全基础设施可能带来的颠覆性影响,以及应对策略

第一章&#xff1a;引言 随着科技的迅猛发展&#xff0c;量子计算作为一项颠覆性的技术正逐渐走入我们的视野。量子计算以其强大的计算能力引发了全球科技界的广泛关注。然而&#xff0c;正如硬币的两面&#xff0c;量子计算技术所带来的不仅仅是计算能力的巨大飞跃&#xff0…...

ajax-axios-url-form-serialize 插件

AJAX AJAX 概念 1.什么是 AJAX ? mdn 使用浏览器的 XMLHttpRequest 对象 与服务器通信 浏览器网页中&#xff0c;使用 AJAX技术&#xff08;XHR对象&#xff09;发起获取省份列表数据的请求&#xff0c;服务器代码响应准备好的省份列表数据给前端&#xff0c;前端拿到数据数…...

【AIGC】单图换脸离线版软件包及使用方法

云端再好&#xff0c;都不如放自己手里啊&#xff0c;想怎么就怎么玩。云端再好&#xff0c;都不如放自己手里啊&#xff0c;想怎么就怎么玩。 Roop作为一个新出的开源项目&#xff0c;配置起来还是有一定难度的。 我已经把各种依赖&#xff0c;模型&#xff0c;环境配置已经…...

8.19论文阅读

文章目录 Graph-Segmenter: Graph Transformer with Boundary-aware Attention for Semantic Segmentation方法 SCSC: Spatial Cross-scale Convolution Module to Strengthen both CNNs and Transformers方法 Deformable Mixer Transformer with Gating for Multi-Task Learni…...

HAProxy

目录 HAProxy HAProxy介绍 主要特性 LVS、nginx、HAProxy区别 nginx LVS HAProxy 负载均衡策略 Haproxy搭建 Web 群集 Haproxy服务器 编译安装 Haproxy Haproxy服务器配置 添加haproxy 系统服务 节点服务器部署 日志定义 HAProxy HAProxy介绍 HAProxy是可提供高…...

基于EasyExcel的Excel读取

1.引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.11</version> </dependency>2.读取器代码&#xff1a; package com.vz.utils.excel;import com.alibaba.excel.Eas…...

链路聚合详解

链路聚合详解 华为交换机链路聚合&#xff1a;Linux链路聚合bond配置 华为交换机链路聚合&#xff1a; 方式一&#xff1a;配置手工负载分担方式的链路聚合 [CORE1] interface Eth-Trunk 1 [CORE1-Eth-Trunk1] trunkport GigabitEthernet 0/0/5 to 0/0/6 [CORE1-Eth-Trunk1] p…...

Shell编程学习之if分支语句的应用

Shell编程中的if分支语句&#xff1a;伪代码表示&#xff1a;注意符号和表达式之间的空格&#xff1b; if [ 表达式1 ] then分支1 elif [ 表达式2 ] then分支2 elif [ 表达式3 ] then分支3 else其它 fi按整型的方式&#xff0c;if分支语句比较字符串的大小&#xff1a;等于&am…...

2023.8 - java - 泛型

泛型问题的引出&#xff1a; jdk 1.5 引出泛型 // package 泛型; public class index {public static void main (String[] args){test t new test();t.setContent("aaa");int a (int) t.getContent();System.out.println(a);} }class test{Object content;publi…...

【数据结构练习】链表面试题锦集一

目录 前言&#xff1a; 1. 删除链表中所有值为key的节点 方法一&#xff1a;正常删除&#xff0c;头结点另外讨论 方法二:虚拟头结点法 方法三&#xff1a;递归 2.反转链表 方法一&#xff1a;双指针迭代 方法二&#xff1a;递归法解析&#xff1a; 3.链表的中间结点 方法…...

自然语言处理从入门到应用——LangChain:链(Chains)-[通用功能:SequentialChain和TransformationChain]

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 SequentialChain 在调用语言模型之后&#xff0c;下一步是对语言模型进行一系列的调用。若可以将一个调用的输出作为另一个调用的输入时则特别有用。在本节中&#xff0c;我们将介绍如何使用顺序链来实现这一点。顺序…...

什么是卷积神经网络

目录 什么是卷积神经网络 全链接相对笨重&#xff1a;大胖子​编辑 ​编辑 参数众多&#xff1a;容易造成过拟合 ​编辑 卷积核&#xff1a;进行图像特征提取&#xff0c;源于卷积原理&#xff1a;求相交面积 卷积的作用 卷积的意义 ​编辑 通过卷积核减少参数 深度卷积…...