工程评审任务的覆盖驱动编排与结果失效控制方法与流程

摘要: 本发明涉及计算机辅助工程、电子设计自动化数据处理、静态分析和计算机任务调度,尤其涉及一种工程评审任务的覆盖驱动编排与结果失效控制方法、系统、电子设备、计算机可读...
工程评审任务的覆盖驱动编排与结果失效控制方法与流程

本发明涉及计算机辅助工程、电子设计自动化数据处理、静态分析和计算机任务调度,尤其涉及一种工程评审任务的覆盖驱动编排与结果失效控制方法、系统、电子设备、计算机可读存储介质和计算机程序产品。本发明适用于由原理图、物料清单、印制电路板设计文件以及对应解析器、确定性规则、图计算、数值计算或模型共同参与的电子硬件工程评审,用于根据实际可处理的数据范围控制处理器任务提交、结果状态和增量重评。

背景技术:

1、电子硬件工程评审系统通常读取原理图、物料清单和印制电路板设计文件,将文件转换为器件、网络、封装、焊盘、铜区和物料条目等工程对象以及对象之间的连接、包含和映射关系,再调用规则、图算法、数值计算或模型生成评审结果。

2、评审结果的可靠性不仅取决于检查算法本身,还取决于预期输入是否存在、文件是否被完整解析、目标对象和关系是否被提取、规则是否实际执行以及结果能否定位到工程证据。

3、现有系统常用单一解析成功标识、单一覆盖百分比或是否生成问题项表示整体状态。当印制电路板文件缺失、复杂图元不被解析、关系提取失败或规则没有被调用时,系统仍可能因问题项列表为空而生成通过标识。

4、在上述情况下,问题项列表为空可能是检查确实通过,也可能是检查没有取得必需输入、解析器不支持目标对象、检查没有进入执行队列或证据无法定位。若不区分这些状态,缺失输入会被误写为通过,形成机器评审中的假阴性。

5、另一方面,不同评审域所需数据不同。物料域可能只依赖原理图和物料清单,而封装或铜区评审还依赖印制电路板设计文件。任一输入缺失即停止全部检查会浪费可用数据,全部检查仍进入处理器队列又会产生无效调用和误导性结果。

6、已有验证覆盖技术能够统计代码、信号或测试项是否被执行,已有依赖图技术能够按脏节点局部重算,但不能直接给出多源工程设计数据的输入、解析、对象、关系、规则和证据联合覆盖,也不能使联合覆盖同时驱动检查入队、未知状态写入、历史结果失效和迟到回调拒绝。

7、当新的解析结果到达、解析器升级、规则版本变化或证据失效时,若系统直接覆盖运行中的状态,旧任务的迟到回调可能覆盖新结果;若每次变化都全量重跑,又会增加处理器时间、存储访问和任务队列负载。

8、因此,需要一种面向具体电子硬件工程设计数据的数据结构和计算机处理流程,使覆盖缺口能够转换为处理器任务门控和明确的机器状态,并在覆盖或版本变化后只失效、重算受影响结果。

技术实现思路

1、本发明要解决的技术问题是:在多源电子硬件工程设计数据不完整或解析能力受限时,如何阻止不具备必需数据的机器可执行检查消耗处理器资源并产生假通过,以及如何在覆盖或依赖版本变化后防止过期结果继续生效或覆盖当前状态。

2、为解决上述技术问题,本发明首先对原理图文件、物料清单和印制电路板设计文件中的至少两类分别计算内容摘要,并由格式对应的解析器生成工程对象记录和工程关系记录,形成冻结工程设计基线并生成基线标识。

3、机器可读评审配置声明评审域、预期输入项、预期对象类型、预期关系类型、机器可执行检查、证据定位要求以及检查依赖。评审配置与工程设计基线一起在评审运行开始时冻结并产生版本标识。

4、本发明针对输入、解析、工程对象、工程关系、规则和证据六个覆盖维度分别建立结构化覆盖记录。每一覆盖记录保存预期项、有效项、排除项、缺失项、覆盖状态和原因代码,而不是只保存一个百分比。

5、对于第d个覆盖维度,预期项集合为e_d,有效项集合为v_d,排除项集合为x_d。有效分母d_d等于集合e_d与x_d的差集的元素数量,覆盖分子n_d等于v_d与所述差集的交集的元素数量,缺失项集合m_d等于所述差集与v_d的差集。

6、覆盖状态包括已覆盖、部分覆盖、阻断和超出范围。硬依赖所需项缺失时确定为阻断;硬依赖满足而可选依赖存在缺口时确定为部分覆盖;排除项由冻结评审配置明确给出,不能在执行后为了提高覆盖率而任意增加。

7、全部覆盖记录被固化为覆盖快照。覆盖快照具有覆盖快照标识,绑定冻结工程设计基线的基线标识,并包含生成时刻的全部覆盖记录;覆盖记录的变化产生新的覆盖快照,而不原位修改已生成的覆盖快照。每次评审运行开始时生成运行标识,运行标识与基线标识和覆盖快照标识绑定,用于任务记录关联和结果回写校验。

8、本发明构建至少包括覆盖项节点与机器可执行检查节点的有向依赖图。从覆盖项节点指向机器可执行检查节点的依赖边至少记录依赖类型、最低覆盖状态、对象范围和依赖版本。依赖类型分为硬依赖和可选依赖。在一些实施方式中,有向依赖图还包括结果节点、问题项节点和报告快照节点。

9、调度器遍历每个机器可执行检查的入边。任一硬依赖未达到最低覆盖状态时,对应检查不进入处理器执行队列,系统直接写入未知状态记录;全部硬依赖满足时,依据可选依赖是否满足生成正常执行任务或降级执行任务。

10、执行任务只引用冻结工程设计基线和覆盖快照。执行结果被固化为结果元组,结果元组至少包括基线标识、覆盖快照标识、检查标识、规则版本、对象范围、证据定位集合、结果状态、结果有效性上限和处理尝试标识。

11、结果状态至少包括通过、失败、未知、未评估和不适用。汇总处理采用预先存储的有限状态汇总表,未知和未评估不计入通过数量,缺失硬依赖时不能因为问题项为空而写入通过。

12、当覆盖记录或依赖版本变化时,本发明从变化的覆盖项节点或依赖边出发遍历有向依赖图,获得受影响检查、结果、问题项和报告快照的闭包。

13、在生成重评任务前,系统先在事务中把受影响历史结果标记为失效或降低结果有效性上限;未受影响结果保持历史引用,仅受影响检查重新进入处理器执行队列。

14、每次评审运行生成运行标识,每次执行生成处理尝试标识。结果回写同时校验运行标识、检查标识、处理尝试标识、基线标识、实际读取输入的内容摘要和对象版本,不匹配的旧回调进入拒绝日志,不能覆盖当前结果。

15、人工覆盖确认与机器覆盖计算分离存储。人工确认能够记录已知缺口和降级理由,但不能改写预期项、有效项和缺失项,不能把阻断改为已覆盖,也不能把未知改为通过。

16、与把所有检查无条件加入队列的方案相比,本发明使硬依赖不满足的检查在入队前终止,从而减少无效处理器调用、数据读取和任务队列占用。

17、与问题项为空即通过的方案相比,本发明将覆盖缺口转换为具有原因代码和缺失集合的未知状态,防止不具备观察条件的检查产生假通过。

18、与全量重评方案相比,本发明通过受影响闭包只重排受影响检查;通过先失效再重评和处理尝试校验,能够防止旧结果在覆盖下降或版本变化后继续生效并防止迟到回调覆盖当前状态。

1.一种工程评审任务的覆盖驱动编排与结果失效控制方法,由计算机系统执行,用于处理电子硬件工程设计数据,其特征在于,包括:对包含原理图文件、物料清单和印制电路板设计文件中至少两类的工程设计文件分别计算内容摘要,由与文件格式对应的解析器生成工程对象记录和工程关系记录,并形成由所述内容摘要和解析器版本共同标识的冻结工程设计基线,并生成所述冻结工程设计基线的基线标识;读取机器可读评审配置,所述机器可读评审配置声明评审域、各评审域的预期输入项、预期对象类型、预期关系类型、机器可执行检查、证据定位要求以及所述机器可执行检查的依赖;针对输入、解析、工程对象、工程关系、规则和证据六个覆盖维度分别建立覆盖记录,每一覆盖记录至少包括预期项集合、有效项集合、排除项集合、缺失项集合、覆盖状态和原因代码,其中规则覆盖和证据覆盖随检查实际执行及证据定位结果更新;生成具有覆盖快照标识的覆盖快照,所述覆盖快照绑定所述基线标识并包含生成时刻的全部覆盖记录,覆盖记录的变化产生新的覆盖快照而不原位修改已生成的覆盖快照;构建至少包括覆盖项节点与机器可执行检查节点的有向依赖图,每条从覆盖项节点指向机器可执行检查节点的依赖边至少记录硬依赖或可选依赖、最低覆盖状态、对象范围及依赖版本;遍历各机器可执行检查的入边,在任一硬依赖未达到所述最低覆盖状态时,阻止对应机器可执行检查进入处理器执行队列,并写入包含所述缺失项集合和原因代码的未知状态记录,在全部硬依赖达到所述最低覆盖状态时,根据可选依赖的满足情况生成正常执行任务或降级执行任务;执行所述正常执行任务或降级执行任务,并持久化结果元组,所述结果元组至少包括所述基线标识、所述覆盖快照标识、检查标识、规则版本、对象范围、证据定位集合、结果状态、结果有效性上限和处理尝试标识;以及在检测到覆盖记录或依赖版本变化时,以发生变化的覆盖项节点或依赖边为起点遍历所述有向依赖图,获得受影响的机器可执行检查的闭包,并将引用所述受影响的机器可执行检查的结果元组确定为受影响结果,在生成重评任务前将所述受影响结果原子地标记为失效或降低结果有效性上限,保持未受影响结果的历史引用,仅将所述受影响的机器可执行检查提交至处理器执行队列,并在结果回写时校验所述处理尝试标识和所述基线标识,以拒绝旧处理尝试对当前结果的覆盖。

2.根据权利要求1所述的方法,其特征在于,所述工程对象记录至少包括对象标识、对象类型、字段集合、源文件摘要、源位置定位器和解析器版本;所述工程关系记录至少包括关系标识、关系类型、起点对象标识、终点对象标识、源位置定位器和解析器版本;所述源位置定位器包括文件内层级路径、页码、坐标、单元格、网络名、位号或对象序号中的至少一种;对于第d个覆盖维度,将预期项集合记为e_d、有效项集合记为v_d、排除项集合记为x_d,有效分母d_d为集合e_d与集合x_d的差集的元素数量,覆盖分子n_d为集合v_d与所述差集的交集的元素数量,缺失项集合m_d为所述差集与集合v_d的差集;所述覆盖记录同时保存d_d、n_d和m_d,而不是仅保存由n_d与d_d得到的覆盖比值;所述覆盖状态包括已覆盖、部分覆盖、阻断和超出范围;当缺失项集合为空时确定为已覆盖,当硬依赖对应的预期项均有效且至少一个可选依赖对应的预期项缺失时确定为部分覆盖,当至少一个硬依赖对应的预期项缺失时确定为阻断,当机器可读评审配置明确排除对应项时确定为超出范围;输入缺失、摘要不一致、解析失败、对象类型不支持、关系提取失败、规则未执行、规则执行异常和证据不可定位分别采用不同原因代码。

3.根据权利要求1所述的方法,其特征在于,每次评审运行生成运行标识,每次任务首次执行或重试生成不同的处理尝试标识;生成正常执行任务或降级执行任务包括:将冻结工程设计基线的只读地址、所述基线标识、所述运行标识、所述覆盖快照标识、检查标识、对象范围、规则版本和处理尝试标识写入任务记录;对于降级执行任务,还将未满足的可选依赖集合和结果有效性上限写入所述任务记录;任务执行器只读取所述任务记录指向的冻结数据,并禁止运行期间到达的新解析结果改变当前覆盖快照;当前任务记录保存允许写入的运行标识、检查标识、处理尝试标识和基线标识;所述工程对象记录具有对象版本,所述对象版本随对应工程对象记录的字段集合、源文件摘要或解析器版本的变化而变化;结果写入操作在同一事务中将回调所携带的运行标识、检查标识、处理尝试标识和基线标识与所述当前任务记录中保存的对应值比较,并将回调所携带的实际读取输入的内容摘要和对象版本,分别与所述冻结工程设计基线中的输入内容摘要以及所述对象范围内工程对象记录的当前对象版本比较,仅在全部一致时更新当前结果指针,否则把回调写入拒绝日志而不改变当前结果。

4.根据权利要求1所述的方法,其特征在于,所述结果状态包括通过、失败、未知、未评估和不适用;按照预先存储的有限状态汇总表生成评审域状态,其中失败的优先级高于未知,未知的优先级高于通过,未知和未评估不计入通过数量,只有所述评审域的全部必需检查均为通过或被机器可读评审配置确定为不适用时,才将所述评审域状态写为通过;所述结果有效性上限取方法资格上限、工程对象覆盖上限、证据覆盖上限和输出策略上限中的最低值,其中所述方法资格上限根据机器可执行检查所采用的方法类型预先配置;当结果状态为未知或结果有效性上限低于预设输出门限时,禁止对应结果写入正式问题队列或通过标识字段,并将原因代码和缺失项集合写入机器可读报告;各评审域具有相互独立的域状态和处理器执行队列;一个评审域因硬依赖不满足而产生未知状态时,与该评审域不存在依赖路径的另一评审域继续执行,并在总体运行记录中写入部分完成状态以及各评审域的基线标识、覆盖快照标识和域状态。

5.根据权利要求1所述的方法,其特征在于,所述有向依赖图还包括结果节点、问题项节点和报告快照节点;获得所述闭包以及确定所述受影响结果包括:将覆盖状态下降、有效项集合变化或依赖版本变化对应的节点或边加入遍历队列;沿覆盖项节点、机器可执行检查节点、结果节点、问题项节点和报告快照节点之间的出边进行广度优先或深度优先遍历;把遍历到的机器可执行检查加入重评集合,把遍历到的结果、问题项和报告快照加入失效集合;不在所述重评集合中的检查保持其原结果元组引用,其中保持所述原结果元组引用包括:将该结果元组所记录的实际读取输入的内容摘要与当前冻结工程设计基线中对应输入的内容摘要比较,并将该结果元组的规则版本与当前机器可读评审配置中对应机器可执行检查的规则版本比较;仅在上述各项均匹配且该结果元组的结果有效性上限不低于预设输出门限时保持所述引用;任一项不匹配时,将该结果元组确定为受影响结果,先行标记失效并将对应机器可执行检查加入所述重评集合。

6.根据权利要求1所述的方法,其特征在于,所述覆盖快照具有快照类型,所述快照类型包括准入类型和结果类型;在机器可执行检查进入处理器执行队列之前生成的覆盖快照为准入类型;因规则覆盖或证据覆盖随检查实际执行及证据定位结果更新而产生的新的覆盖快照为结果类型,且结果类型的覆盖快照与产生该覆盖快照的处理尝试标识绑定;检测覆盖记录变化时仅将准入类型的覆盖快照作为前后比较对象,结果类型的覆盖快照不作为生成重评任务的触发源。

7.根据权利要求1所述的方法,其特征在于,人工覆盖确认记录与覆盖计算记录分离存储,所述人工覆盖确认记录包括确认主体、确认时间、确认所依据的基线标识、已知缺口和降级原因;写入人工覆盖确认记录不修改预期项集合、有效项集合和缺失项集合,不将阻断改写为已覆盖,也不将未知改写为通过。

8.一种工程评审任务的覆盖驱动编排与结果失效控制系统,用于处理电子硬件工程设计数据,其特征在于,包括:基线生成模块,用于对原理图文件、物料清单和印制电路板设计文件中的至少两类计算内容摘要并解析为工程对象记录和工程关系记录,形成冻结工程设计基线并生成基线标识;覆盖计算模块,用于按照机器可读评审配置,针对输入、解析、工程对象、工程关系、规则和证据六个覆盖维度分别生成包括预期项集合、有效项集合、排除项集合、缺失项集合、覆盖状态和原因代码的覆盖记录,并生成具有覆盖快照标识且绑定所述基线标识的覆盖快照;依赖图与调度模块,用于构建至少包括覆盖项节点与机器可执行检查节点、且从覆盖项节点指向机器可执行检查节点的依赖边具有硬依赖或可选依赖属性以及最低覆盖状态的有向依赖图,在硬依赖未达到所述最低覆盖状态时阻止对应机器可执行检查进入处理器执行队列并写入未知状态记录,在硬依赖达到所述最低覆盖状态时生成正常执行任务或降级执行任务;结果固化模块,用于持久化包含所述基线标识、所述覆盖快照标识、检查标识、规则版本、对象范围、证据定位集合、结果状态、结果有效性上限和处理尝试标识的结果元组;以及失效重评模块,用于在覆盖记录或依赖版本变化时遍历所述有向依赖图获得受影响的机器可执行检查的闭包,将引用所述受影响的机器可执行检查的结果元组确定为受影响结果并先使其失效,仅将受影响的机器可执行检查提交至处理器执行队列,并通过处理尝试标识和基线标识校验拒绝旧处理尝试回写。

9.一种电子设备,包括处理器和存储器,其特征在于,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现权利要求1至7任一项所述的方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。