功能安全专题之功能安全概念阶段

2023-11-15

前言

“当我们展望未来新技术的挑战时,采用统一的开发和应用标准至关重要。” — 通用汽车副总裁 Ken Kelzer, 2018。

在诸多的标准与规范中,ISO 26262(汽车功能安全标准),继承自 IEC 61508(通用电子电气功能安全标准),定义了针对汽车工业的安全(Safety)相关组件的国际标准。简单的说,ISO 26262通过指导与规范化的形式,对汽车电子产品,从概念阶段到最后的产品报废阶段,提出了标准化的要求。更进一步的是,ISO 26262细化了如何控制一个汽车电子产品或组件的人身伤害风险在可接受的范围,及文档化整个分析、设计、开发、测试及生产过程。
ISO 26262的历史可以追溯到2011年,第一版的ISO 26262标准发布。第一版标准包含10个部分:

  • Part 1: 词汇(Vocabulary)
  • Part 2: 功能安全管理(Management of functional safety)
  • Part 3: 概念阶段(Concept phase)
  • Part 4: 系统级的产品开发(Product development at system level)
  • Part 5: 硬件级的产品开发(Product development at hardware level)
  • Part 6: 软件级的产品开发(Product development at software level)
  • Part 7: 生产,运营(Production and operation)
  • Part 8: 支持过程(Supporting processes)
  • Part 9: 面向ASIL及面向安全的分析(Automotive Safety Integrity Level (ASIL)-oriented and safety-oriented analyes)
  • Part 10: ISO 26262指南(Guidelines on ISO 26262)

相对于2011版的ISO 26262,发布于2018年的第二版标准修改了Part 7的名字为:

  • Part 7: 生产,运营,维护及报废(Production, operation, service and decommissioning)

同时还增加了2个部分:

  • Part 11: 半导体厂商应用ISO 26262的指南(Guidelines on application of ISO 26262 to semiconductors)
  • Part 12: 适用于摩托车的ISO 26262(Adaptation of ISO 26262 for motorcycles)

在ISO 26262的Part 3中,介绍在产品开发的早期阶段的活动及用于保障功能安全的开发流程。这个部分包含了相关项的定义(Item Definition),危害分析与风险评估(Hazard Analysis and Risk Assessment)的内容。本文将从基本概念出发,介绍ISO 26262 : 2018 Part 3相关的流程,分析方法及相关技术。

1 基本概念

ISO 26262中的概念众多(2018版185个),无法在一篇文章中一一描述,所以在本节中,只针对Part 3中涉及到的重要概念进行解释说明。其中可以涉及到到的其它名词,都符上英文名词,便于在标准中查找。

1.1 相关项定义(Item Definition)

Part 3的第一个活动是相关项定义(Item Definition)。相关项定义对于应用ISO 26262到产品中非常重要,参与到产品开发人员和咨询人员需要对产品有深入的了解,而相关项定义则提供了理解产品所必需的信息。相关项(Item)在标准的Part 1中定义如下:

  • 应用了ISO 26262开发标准,实现了整车级的某个功能或者某个功能的一部分的系统或者系统的组合(System or Combination of Systems)

而相关项定义(Item Definition)是为了描述清楚:

  • 相关项(Item)的功能,依赖关系,与驾驶员、周围环境以及其它整车级相关项的交互关系
  • 提供足够的信息用于理解相关项(Item),以便于后续过程中的活动能够执行

1.2 相关项的构成

一个相关项(Item)可以分解为1个或多个系统(System),并向外提供1个或多个功能(Function)。系统可以由多个子系统(Sub-system)构成,也可以分解为多个组件(Component)。构成一个系统或子系统的组件至少是3个:负责输入信号的传感器(Sensor),负责信号处理及逻辑控制的控制器(Controller)及负责输出的驱动器(Actuator)。一个组件(Component)可以由1个或多个软件单元(Software Unit)或1个或多个硬件(Hardware Part)构成。下图给出了这些概念的逻辑关系:
在这里插入图片描述

1.3 危害分析与风险识别(Hazard Analysis & Risk Assessment)

危害分析与风险识别(以下简称HA & RA)的主要目的在于以下2个方面:

  • 识别危害与危害事件(Hazard and Hazardous Event),相关项的异常行为会导致这些危害事件
  • 为预防与缓解识别出来的危害事件,推导出相应安全目标(Safety Goal)及其ASIL评级,来避免不合理的风险

ISO 26262:2011中,HA & RA的输入主要是相关项定义(Item Definition)影响分析(Impact Analysis)。影响分析指出了2种可能的进入HA & RA的初始条件:

  • 从产品的Idea和期望的功能开始,把相关项视为全新开发而进行HA & RA
  • 由于产品本身的功能修改或者运行环境变化,从影响分析(Impact Analysis)开始进行HA & RA

从2018版开始,关于影响分析的部分被划分到Part 2 功能安全管理中,因此在2018版中,只有相关项定义作为HA & RA的输入。
相关项定义的过程中,已经考虑了产品的功能、性能及可能的失效带来的后果(如已知的失效模式),但并没有这些需求进行分类。通过HA & RA识别产品的安全目标,将这部分需求同产品自身功能区别开,纳入功能安全管理的流程(如下图所示)。因此,HA & RA对于产品的后续开发活动有重要的意义。
在这里插入图片描述

1.4 危害与危害事件(Hazard and Hazardous Event)

危害(Hazard) 是指由于产品功能的失效,作为潜在的原因,会导致发生人身伤害。但这种危害只是一种可能性,把危害和危害发生的场景(Operation Situation) 结合起来,形成危害事件(Hazardous Event),才能对其进行分级(如,可接受或不可接受)。对危害事件的分级主要考虑以下3个方面:严重度(Severity)暴露度(Exposure)可控度(Controllability)。在HA & RA过程中,分别对这3个方面进行打分:严重度(0 - 3,伤害的严重程度逐渐增加),暴露度(0 - 4,暴露在危险环境中的程度逐渐增加),可控度(0 - 3,危害发生时的可控度逐渐降低)。这3个数值中,经过评估任一数值取值为0,或者相加后的数值小于7,则认为这个危害事件的风险可接受,即相关的功能开发按照QM管理即可;但如果相加的数值大于等于7,则认为风险不可接受,对这个危害事件要分配 ASIL(Automotive Safety Integrity Level) 等级。ASIL分为4个等级,分别对应相加数值的7,8,9和10。ASIL与严重度、暴露度和可控度的对应关系可以参考下表:
ASIL

1.5 安全目标(Safety Goal)

对于识别出的危害事件,进行细致的分析,并制定安全目标(Safety Goal)。安全目标在功能安全产品开发中,处于最上层的需求。安全目标与危害事件之间,可以是1:N或N:1(N大于等于1)的关系。安全目标可以用自然语言的形式来描述,通常是如下的模式化形式:

  • 避免(Avoid to),如,避免近光灯非预期的熄灭
  • 阻止(Prevent to),如,阻止安全相关提示信息在2秒内关闭
  • 应该(Should),如,收到胎压不足的警告信号后,胎压不足警告灯应该亮起

每个安全目标都有对应的ASIL评级,安全目标的ASIL等级取决于与之相关联的风险事件的最高ASIL等级。可以为每个安全目标分配故障响应时间间隔(Fault Tolerance Time Interval),用以规定检测违反安全目标的故障和安全机制响应时间的最大间隔。安全目标可以用如下的表格的形式表示:
在这里插入图片描述

1.6 功能安全需求(Functional Safety Requirement)

功能安全需求(Functional Safety Requirement,FSR)派生自安全目标,一个安全目标至少派生一条功能安全需求。派生出的功能安全需求有无歧义,可理解,无矛盾,可实现及可测试等要求。派生的过程中,功能安全需求独立于系统的技术架构,还要给功能安全需求分配唯一的ID,当前状态及对应ASIL等级属性。下面是一个表格形式的功能安全需求的例子:
在这里插入图片描述

1.7 功能安全概念(Functional Safety Concept)

功能安全概念(Functional Safety Concept)是Part 3的最后一个活动。虽然在产品开发尚未进入系统设计阶段(Part 4),但此时需要假设一个系统架构(System Architectural Design),因为功能安全概念需要在整车的架构上实现。功能安全概念阶段需要描述必要的功能安全需求,并分配这些安全需求到系统的功能要素(Element)上。在ISO 26262中,功能安全概念阶段要求达成以下目标:

  • 指定与相关项安全目标相符功能行为(Functional Behavior)或者降级的功能行为(Degraded Functional Behavior)。系统功能的降级是指如果由于故障不能正确的运行,需要系统工作在一个功能或性能受限的状态。一般系统降级要设计降级的策略,如近光灯系统,降级策略要求至少有一个灯可以工作。
  • 根据安全目标,指定针对合适的手段及时检测和控制相关的故障的限制条件
  • 在相关项的层面上,设计策略或者措施用来达成要求的容错能力,或者基于相关项本身、驾驶员或者外部措施以减轻相关故障造成的影响
  • 分配功能安全需求到系统架构或者外部措施上
  • 验证功能安全概念并指定功能安全确认标准,这里的验证是指对设计过程的验证(Verification),主要是检查设计过程的正确性。

2 功能安全概念阶段相关技术

为保障功能安全概念阶段的活动能够正确实施,对应每个活动都有一系列的实施方法。本节对涉及到的一些重要技术手段进行介绍。

2.1 识别相关项(Identify Item)

为了识别出相关项(Item)及针对相关项(Item)任何的功能开发之前,无论这些涉及到的功能,是否是功能安全相关的,都需要一个合适的出发点。在这里,系统工程(System Engineering)的方法论可以给出一个很有价值的方案。系统工程方法论中,为描述系统对外提供的服务,有一个针对系统上下文(System Context)建模的过程。通过模型化的系统上下文,可以表达出一个系统针对周围环境直接的影响,还可以得到系统的输入与输出信息流(包括数据流与控制流)。在这个阶段,在外部与系统交互的是系统参与者(System Actor)。
通常系统工程中对系统建模采用SysML/UML,但系统上下文并没有作为独立概念在SysML/UML中存在,因此需要引入一种能够形象表达系统上下文的方法:SYSMOD。通过SYSMOD,我们就可以在SysML/UML中,以如下的方式定义一个车灯管理系统(Headlight Management System)的上下文:
在这里插入图片描述

2.2 明确相关项的边界

一个车载系统或相关项,必然要和周边系统或驾驶员产生交互,它的边界就是一个非常重要的信息:哪些组件属于系统元素,哪些位于系统之外?这些信息要在相关项定义这个过程中识别出来(至少是一部分,因为有时项目初期产品的需求并不十分明确)。明确相关项边界的第一个任务是要明确系统交互的参与者(System Actor)。系统参与者在概念阶段应该是清晰的,否则就会陷入一个怪圈:如果系统的开发者对于系统的使用者无法识别清楚,那么该如何正确的建立系统的概念和理解呢?下面有几个方法可以快速的帮助识别系统的参与者:

  • 系统的参与者应该主要来自于需求分析
  • 系统的参与者应该是使用系统提供的服务或接口,与系统有直接交互的人员
  • 与正在开发的系统有交互的其它系统也应该被列为系统的参与者,并且进行分类,如,传感器,驱动器,外部系统,或者由于系统的运行,会受到影响的外部环境(光线、温度等),这些可以帮助我们更好的理解当前开发的系统,更容易的描述其提供的服务

识别出系统的参与者之后,第二个任务要识别出参与者与系统之间的信息流。通过SysML/UML,我们可以建立系统参与者和相关项之间的连接(如使用Connector将2者相连),这表示系统的参与者提供信息流给系统,或者接收从系统提供来的信息流(如从传感器来的车速信号,或者输出到屏幕的视频信号)。同系统的参与者一样,我们需要在系统开发的早期识别出这些信息流,并用建模的形式把它们识别出来(可以使用SysML中的Information Item来表示,参考系统上下文图中的黑色三角)。以下几个方法可以用来识别系统中的信息流:

  • 哪些信息是系统参与者发送给相关项的,如系统上下文中的车辆信号、开关信号
  • 这些信息是否与我们正在实现的系统密切相关
  • 相关项如何集成到整车环境中,如与供电模块的连接
  • 相关项发送哪些信息到系统的参与者

定义完系统的参与者与相应的信息流后,最后一个任务则是它们如何同相关项交互(包括输入及输出),即识别出系统的交互点(Interaction Point,系统上下文图中的带箭头的小正方形)。当我们使用Connector建立系统参与者与相关项之间的连接时,Connector与相关项的交点可以认为就是交互点。但这种识别方法不够精确,需要使用以下方法进行提炼:

  • 相关项使用哪些途径与外界交换信息
  • 已识别出的交互点是概念上的还是物理上的
  • 是否有哪些交互的路径可以合并的

需要注意的是,在功能安全概念阶段,系统的交互点(Interaction Point)和系统接口(Interface)是不同的:系统交互点在这个阶段仍然是个抽象的概念,只用于识别相关项与外部环境之间存在交互;而接口则包含在交互点内,描述相关项对外要求或提供的服务,以及信息流的具体内容。接口的建模在系统设计过程中实施,如ASPICE流程中的SYS.2。

2.3 需求定义技术(Techniques for Specifying Requirements)

概念阶段的功能安全需求(Functional Safety Requirement)是后续功能安全开发活动的基础。产品开发的成功或失败依赖于功能安全需求的质量,大量的事故可以追溯到有缺陷的需求,如不完整的表述,错误的实现以及对不清晰的需求的错误理解。ISO 26262中需求可以分为4个等级(但不限于4个,可以根据需要再细分):功能安全目标,功能安全需求,技术安全需求及硬件/软件安全需求。好的需求对于产品质量、成本/时间、功能安全的实现及测试都有重要的意义,因此本节对需求的定义技术做一些基本的描述。
需求定义通常由需求工程师进行。大多数成功的项目至少有2名资深的需求工程师,他们协同工作并相互检查对方的成果。需求开发过程中,最好也有其他的助理工程师加入,因为从组织的角度,需求开发过程中的知识积累需要传递给下游的工程活动,并且组织也需要培养更多的需求专家。需求开发要求的工程师技能要求一般包括以下几点:

  • 需求开发的经验。没有什么比经验更重要,经过多个项目的磨练后,有经验的工程师可以判断出哪些该做,哪些不该做。即使没有成功项目的经验,那么那些从失败的错误中获取的经验也十分重要。
  • 合作。需求工程师几乎和项目中的所有人员打交道,特别是在敏捷(Agile)开发团队中,还要和客户进行面对面的沟通。
  • 倾听和观察的技巧。需求工程师应该擅长从系统工程师或客户处发现细微的线索,用于挖掘缺失的需求。
  • 写作沟通能力。需求工程师的主要角色是将需求文档化,那就要求需求工程师能够清晰有组织的把需求表达出来,即使是一些复杂问题和想法。常用的手段包括图表化、数据流图、控制流图、用例图或状态图等。
  • 领域知识。对于正在开发的产品,需求工程师要具备相应的领域知识,如导航工程师就不是十分适合开发刹车或者燃油系统的需求。

需求的表达方式除了采用MS Office系列(Word,Excel),还可以使用支持SysML的工具进行描述,除了具备直观的好处之外,还可以和后续的工程活动方便的追溯(见下节)。SysML中增加了需求图(Requirement Diagram)用于描述系统需求,如下图所示:
在这里插入图片描述
在工具中,每一个需求块(Block)会分配一个全局唯一的GUID,可以用于标识这个需求。但GUID通常与需求定义时分配的ID不一致且难于理解,因此针对需求块,SysML还提供了需求ID字段,用于与外部工具建立需求对应关系。另外,为方便在各个需求管理工具之间交换数据,通常会采用CSV格式的表格,通过导入/导出的形式进行数据传递。

2.4 追溯性相关技术(Techniques for Traceability)

作为消除系统性故障(Systematic Fault)的重要手段,可追溯性在功能安全相关设计的验证过程中是重点检查的内容。可追溯性在系统开发的不同阶段表现不同,如用例和需求之间,可以表现为实现关系(Realization);用例和用例之间,可以表现为包含、扩展(Include, Extend)等关系。可追溯性的表现形式可以有多种:

  • 基于ID的可追溯性
  • 基于SysML/UML关系图的追溯
  • 以及基于关系矩阵的追溯

下图是一个使用SysML/UML关系图建立追溯性的例子,在图中通过手工连接的方式把用例和需求连接起来,优点是图形比较直观:
在这里插入图片描述
追溯图的形式能够同时表达的追溯范围有限,如果需求和用例较多,追溯图由于图中的元素太多,就不容易使用(如,查找是否有需求的遗漏),在这种情况下使用追溯矩阵(Traceability Matrix)就更合适。追溯矩阵可以在工程的全路径的任意2个连续的环节(如,需求和用例)中间建立直观的关系矩阵。如下图所示,图的横纵坐标分别表示需求与用例,箭头则表示实现(Realization)的方向,高亮的行表示需求有遗漏的情况:
在这里插入图片描述
建立了双向追溯之后,需求或者设计发生了变更,就可以通过追溯判定变更的影响范围。支持Baseline的SysML/UML工具,还可以基于Baseline进行差分。基于Baseline可以很容易的识别出需求和设计中发生了变更的部分,从发生了变更的部分出发,可以追溯到对应的上下游工程中,需要变更的内容,以确保一致性。

2.5 危害识别与分析技术(Techniques for Hazard Identification and Analysis)

常用的危害分析技术有20多种,几乎覆盖了包括了:概念,概要设计,详细设计,测试及运行在内的产品开发的各个阶段。从方法论上来说,危害分析技术可以分为2大类:内推法(Inductive)和外推法(Deductive):

  • 内推法从系统中某个组件的故障出发,自下而上的推导,在整车的级别上产生的影响是否违反功能安全目标
  • 外推法从违反功能安全目标的失效开始,自上而下的推导可能产生这个影响的组件故障

在功能安全概念阶段,危害分析的主要目的是保障完整及正确的派生功能安全需求。在ISO 26262:2018, Part 3中提到了3种危害分析方法:FMEA (Failure Mode and Effects Analysis),HAZOP (Hazard and Operability Analysis) 和FTA (Fault Tree Analysis)。这三种分析方法的分类见下图:

在这里插入图片描述
以下介绍一下FMEA的基本分析技巧。FMEA用于分析系统中的关键组件的失效是否会影响功能安全目标,影响功能安全目标的失效是否设计了安全机制,相应的安全机制可以作为功能安全需求而记载到对应的文档中。FMEA的主要成果物为FMEA Worksheet,下图是来自于Ford的FMEA Handbook,图中给出了FMEA的主要的分析过程:
在这里插入图片描述
FMEA的输入有多种,其中比较重要的是功能块图(Functional Block Diagram)和参数图(Parameter Diagram)。功能块图简化了系统设计和支持的服务,在功能安全概念阶段可以帮助快速建立对产品的理解。功能块图展示了子系统之间的关系和接口,同时也指示了系统所必须提供的功能。下图给出了系统的功能块图的例子:
在这里插入图片描述
对于功能块图中的任一功能,对其进行危害分析时,需要明确该功能的输入信号,运行环境,配置信息及期望的和错误的输出。把这些信息整合,可以如下图所示的参数图(Parameter Diagram):
在这里插入图片描述
通过对这些参数的分析,可以得出导致某个功能出现故障的基本原因。在后续的分析过程中,针对故障原因,设计合理的检测和消除机制,可以有效的提升系统的安全性。

3 总结

本文从ISO 26262:2018,Part 3中的基本概念出发,介绍了该部分涉及到重要概念及开发过程中需要用到的基本技术。在ISO 26262流程中,概念阶段(包括功能安全概念和技术安全概念)是最重要的阶段,这个阶段出现的任何纰漏,都会影响后续的功能安全开发活动。由于ISO 26262采用的是V模型,概念阶段变更引起的工作量会十分巨大。本文希望通过一些重要概念的解释和实用技术的说明,理清功能安全概念的过程,帮助功能安全开发人员,实现正确的功能安全概念。

4 参考文献

[1]: ISO26262 International Standard, Second Edition, 2018
[2]: AUTOSAR Specifications
[3]: FMEA Handbook Version 4.1, Ford Motor Company

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

功能安全专题之功能安全概念阶段 的相关文章

  • 解决:Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1问题

    解决 Cannot resolve plugin org apache maven plugins maven compiler plugin 3 1问题 问题 Cannot resolve plugin org apache maven
  • 拳王虚拟项目公社:0基础小白副业年赚30W玩法大揭秘!看懂一半至少年赚10W!

    今天 我们分享一个励志的案例 一位工程师兼职创业 每天不超过3个小时 副业年收入30W 这个案例对我的触动和启发也非常大 我们主要分享 1 一类规模庞大的群体和一个小众冷门领域 他切下的蛋糕有多大 2 战术上的勤奋永远赚不了大钱 怎样的战略
  • C语言生成20个随机二位整数求奇偶个数并且从小到大输出

    这道题考察的是生成随机二位整数保存是要保存在一个容量为20的数组中 然后再循环进行判断奇偶性进行求个数和求和最终输出奇数平均值和偶数的和 最后采用冒泡排序对这个数组进行排序 冒泡排序可以看我之前的文章最终输出就行了 代码如下 include
  • 用MSYS2安装mingw

    文章目录 前言 卸载mingw 安装MSYS2 前言 安装MSYS2的原因是 在windows安装protobuf时 想用mingw编译protobuf的库 而protobuf的官方手册只给出一句 To build from source
  • IDEA常用快捷键

    Intellij IDEA常用快捷键 Ctrl E 显示最近修改的文件列表 Ctrl Shift Backspace Ctrl alt 左右方向键 跳转到上次编辑的地方 Ctrl F12 可以显示当前文件的结构 Ctrl Shift Ins
  • 【ICKIM 2022】第四届知识与信息管理国际会议

    2022 知识与信息管理国际会议 ICKIM 2022 第四届国际知识与信息管理会议 作为WSSE的研讨会 将于2022年9月28日至30日在厦门举行 一 会议出版 会议被接收的文章将出版到ACM 会议论文集 ISBN 978 1 4503
  • mybatis中的options注解

    mybatis的 Options注解能够设置缓存时间 能够为对象生成自增的key 场景 一个表id 主键 设置为自增 而当我们需要在dao层插入数据的时候立刻获取到该自动生成的id 实现 如下 Insert insert into inst
  • 内存检测工具Dr.Memory在Windows上的使用

    之前在https blog csdn net fengbingchun article details 51626705 中介绍过Dr Memory 那时在Windows上还不支持x64 最新的版本对x64已有了支持 这里再总结下 Dr M
  • 抽象工厂方法

    在工厂方法中 我们可以很方便的创建一个产品继承结构下的多个产品 那么考虑这么一种情况 我们需要在工厂中创建多个不同继承结构的产品 例如皮肤库 包含按钮 文本框 选择框等多个不同的元素 Spring皮肤库包含了一组相似的按钮 文本框 选择框
  • Window10手把手带你YOLOV5的火焰烟雾检测+tensorrt量化加速+C++动态库打包

    目录 0 引言 1 yolov5模型训练 1 2 模型训练 1 3 模型测试 2 模型转换 2 1 pt wts engine 2 1 1 pt转wts 2 1 2 wts转engine 3 动态库打包 0 引言 本人配置 win10 py
  • 简单实现点击el-tab-pane中的子组件按钮切换el-tabs

    简单实现点击el tab pane中的子组件按钮切换el tabs 实现效果 点击单条查看详细信息 实现跳转到详细信息面板 实现步骤 1 在父组件中声明函数 二 在要实现点击跳转的子组件中设置点击事件 主要的原理就是 tabs组件的面板激活
  • python笔记5-循环for和while

    1 for 获取列表中的项 for name in Christopher Susan print name name为变量 in后面的是循环列表 for会自动遍历列表 输出结果 Christopher Susan 指定循环次数 for i
  • WEB架构师成长之路之3:要懂哪些知识

    Web架构师究竟都要学些什么 具备哪些能力呢 先网上查查架构师的大概的定义 参见架构师修炼之道这篇文章 写的还不错 再查查公司招聘Web架构师的要求 总结起来大概有下面几点技能要求 一 架构师有优秀的编码能力 解决开发人员无法解决的难题 二
  • 伽罗华有限域的FEC

    FEC算法 cloudfly cn的博客 CSDN博客 fec算法 I 基于IP的语音和视频通话业务为了实时性 一般都是采用UDP进行传输 基站无线一般配置UM模式的RLC承载 因此丢包是不可避免的 在小区信号的边沿则丢包率会更高 为了通话
  • CloudCompare学习笔记(一)-- 界面初识

    本人也是cc纯小白 博客只用来记录学习内容和一些不懂的地方 如有错误还望指正 一 主界面 CC的界面大致可以分为以下几块 中间部分 1 DB Tree 打开的文件或者创建的实体都会存放在这里 2 Properties 选择的文件的属性 在打
  • c++函数为什么带imp_算法

    算法数学之美 日期 2018年1月13日 正文共 2779字3图 预计阅读时间 7分钟 来源 周平 最近网易云课堂开放了一节叫Linux内核分析的课程 一直对操作系统和计算机本质很感兴趣 于是进去看了下 才第一堂课 老师就要求学生写一篇关于

随机推荐

  • 【C++】模板进阶--类模板特化

    这篇博客可参照我的上篇博客模板初阶 中讲的函数模板和类模板的内容 一起学习 本节内容 非类型模板参数 类模板的特化 1 非类型模板参数 模板参数分 类型形参与非类型形参 类型形参 出现在模板参数列表中 跟在class或typename之类的
  • 记录QString的StartsWith()错误使用引发的问题

    一 问题现象 在QT开发的即时通信软件中发送图片看不到缩略图和原图 二 解决方法 在下载图片时会去检擦图片URL开头的服务器地址是否正确 使用了startsWith 去判断 但是这个函数在fileServerUrl为空的情况下也会返回tru
  • git push origin与git push -u origin master的区别

    git push origin 上面命令表示 将当前分支推送到origin主机的对应分支 如果当前分支只有一个追踪分支 那么主机名都可以省略 git push 如果当前分支与多个主机存在追踪关系 那么这个时候 u选项会指定一个默认主机 这样
  • 什么是区块链?

    原文出处 https mp weixin qq com s uzPoQBVkEy WVVS 1DFDoA 在今天 无论商业圈 科技圈还是金融圈 最热的词汇无非只有一个 那就是 区块链 我是黑马程序员的 无崖子 老师 下面我来介绍一下区块链的
  • Sentinel做服务熔断与限流,服务能被监控,但是监控列表为空的问题思考

    首先我觉得 服务和Sentinel不在同一台机器上面 本身是能够正常监控的 只要保证两台机器能够在一个内网中 能够互相连通即可 我在学习Sentinel的时候 我盲目使用云服务器的docker拉取Sentinel镜像 但是我开启了服务后 服
  • CV学习笔记 — 数据集预处理常用脚本总结

    笔者在学习计算机视觉时 需要经常借助脚本对数据集进行预处理 现将常用的脚本总结如下 1 批量修改文件后缀名 批量修改 import os import sys 需要修改后缀的文件目录 os chdir r H 葡萄 datasets JPE
  • 17.subplot():绘制网格区域中的几何形状相同的子区布局

    文章目录 1 函数subplot 的使用方法 2 在极坐标轴上绘制折线图 3 在极坐标轴上绘制散点图 4 在非等分画布的绘图区域上实现图形展示 subplot C R P 表示在C行R列的网格布局上 子区subplot 会被放置到第p个位置
  • 如何用Python提升未来竞争力?十年工作经验老程序员来告诉你。一般人我都不告诉他

    今年很多人在问一个问题 到底什么才是抗风险能力 稳定的工作 存款 理财 有人预测 到2030年 今天一半的工作岗位都将消失 关于哪些工作最先消失 李开复提出过 五秒钟准则 一项工作如果可以在5秒钟内作出相应决定 那就非常可能被人工智能取代
  • 【iOS】【最新】2023苹果开发者账号注册流程(公司类型)

    一 Apple Developer 申请开发者账号 Apple Developer 点击 Account 创建 Apple ID 最好新注册一个新的 专门用做开发 需要注意的是 开发者的名字和 ID 想好在填写 注册成功后 不能自己修改 需
  • Netty网络编程(一):初步了解

    文章目录 简介 netty介绍 netty的第一个服务器 netty的第一个客户端 运行服务器和客户端 总结 简介 我们常用浏览器来访问web页面得到相关的信息 通常来说使用的都是HTTP或者HTTPS协议 这些协议的本质上都是IO 客户端
  • Javaweb的request请求

    1请求数据 request getMethod 获取请求方法 request getContextPath 获取虚拟路径 request getRequestURI 获取url String类型 request getRequestURL
  • Linux环境下安装Hadoop(完全分布式)

    切换到安装目录 解压Hadoop压缩包 修改软件名称 hadoop配置 切换目录 将以下配置文件放在usr app hadoop2 7 3 etc hadoop 目录下 这里 的文件是老师配好的 配置hadoop环境 让hadoop环境配置
  • msvcp120.dll丢失的解决方法?哪种解决方法比较推荐?

    关于msvcp120 dll丢失的解决方法这个问题 小编最近也经常看到有人在提问 可能这是一个比较容易丢失的文件 小编就来给大家详细的分析一下 说说它的三种解决方法 方便大家以后遇到这种问题 自己知道怎么处理 msvcp120 dll丢失的
  • mc服务器server文件夹位置,MC server.properties文件详解

    注 这里true为开启 false为关闭 Minecraft server properties 标题注释 Wed Sep 05 19 27 44 CST 2018 保存时间 spawn protection 16 设置为0将不会禁用出生点
  • Innovus/Encounter时序报告解读

    最近在学report timing这个命令 发现自己对timing report的认知只停留在看slack和delay数值上 于是 决定研究一下这个report Innovus Encounter的report格式确实有点不按套路出牌 初看
  • Es中索引的删除操作

    package com atguigu es test import org apache http HttpHost import org elasticsearch action admin indices delete DeleteI
  • Unity Android 安装apk后显示两个app的问题

    简介 前些天使用Unity打Android包的时候 安装到手机上 出现了两个icon一样的引用 分别点开后 启动的application不一致 原因 在项目中接入了一些SDK SDK的AndroidManifest文件中有个Applicat
  • webpack之引入css

    前言 本文演示了如何打包css文件 涉及到的loader css loader style loader css loader的任务 把css文件作为模块打包 style loader的任务 把打包好的css文件动态的插入到html文件的
  • js中获取token的函数

    1 从cookies获取 从Cookies中获取token function getToken var strcookie document cookie 获取cookie字符串 var arrcookie strcookie split
  • 功能安全专题之功能安全概念阶段

    目录 前言 1 基本概念 1 1 相关项定义 Item Definition 1 2 相关项的构成 1 3 危害分析与风险识别 Hazard Analysis Risk Assessment 1 4 危害与危害事件 Hazard and H