首页 / 专利库 / 软件 / 建模语言 / 软件功能验证系统及其验证方法

软件功能验证系统及其验证方法

阅读:1017发布:2020-05-27

专利汇可以提供软件功能验证系统及其验证方法专利检索,专利查询,专利分析的服务。并且一种 软件 功能验证系统及其验证方法。此系统包括第一 数据库 、文件获取设备以及功能验证设备。功能验证设备藉由 机器学习 技术以分析所述第一方文件而产生多个第一方技术点,并转换这些第一方技术点而产生第一方决策表单。功能验证设备分析所述第二方文件以产生多个第二方技术点,转换这些第二方技术点以产生第二方决策表单。功能验证设备分别将此第一方决策表单以及此第二方决策表单转换为第一方树状结构以及第二方树状结构,比较此第一方树状结构以及此第二方树状结构以判断所述第一方文件与所述第二方文件之间功能的差异程度。,下面是软件功能验证系统及其验证方法专利的具体信息内容。

1.一种软件功能验证系统,包括:
第一数据库,包括多个第一方信息;
第二数据库,包括多个第二方信息;
文件获取设备,用以获取第一方文件以及第二方文件;以及
功能验证设备,耦接该第一数据库以及该第二数据库,藉由机器学习技术、这些第一方信息以及这些第二方信息以通过该第一方文件分析出多个第一方技术点,并转换这些第一方技术点而产生第一方决策表单,
通过该第二方文件分析出多个第二方技术点,转换这些第二方技术点以产生第二方决策表单,
分别将该第一方决策表单以及该第二方决策表单转换为第一方树状结构以及第二方树状结构,比较该第一方树状结构以及该第二方树状结构以判断该第一方文件与该第二方文件之间功能的差异程度。
2.如权利要求1所述的软件功能验证系统,其中该功能验证设备以数据探勘算法而从该第一方文件依据其上下文信息而辨认这些第一方技术点,依据特定领域以将这些第一方技术点转换为多个第一方元素,反向转换这些第一方元素以形成至少一第一方统一建模语言(UML)图形,从该至少一第一方UML图形中获得多个训练样本并依据这些训练样本以产生该第一方决策表单。
3.如权利要求2所述的软件功能验证系统,其中该数据探勘算法为半监督式机率形模式识别算法。
4.如权利要求2所述的软件功能验证系统,其中该功能验证设备藉由静室设计手段以反向转换这些第一方元素而产生多个决策表单。
5.如权利要求4所述的软件功能验证系统,其中该功能验证设备依据这些训练样本来训练这些决策表单,并从这些决策表单中选择其中之一以作为该第一方决策表单。
6.如权利要求1所述的软件功能验证系统,其中该功能验证设备藉由权重功能分类法或梯度推进机器分类法来计算该第一方文件与该设计文件之间功能的该差异程度。
7.一种软件功能验证方法,适用于计算机系统,其中该软件功能验证方法包括:
获取第一方文件以及第二方文件;
藉由机器学习技术、第一数据库中的多个第一方信息以及第二数据库中的多个第二方信息以分析该第一方文件而产生多个第一方技术点,并转换这些第一方技术点而产生第一方决策表单;
藉由该机器学习技术、这些第一方信息以及这些第二方信息以分析该第二方文件而产生多个第二方技术点,转换这些第二方技术点以产生第二方决策表单;
分别将该第一方决策表单以及该第二方决策表单转换为第一方树状结构以及第二方树状结构;以及
比较该第一方树状结构以及该第二方树状结构以判断该第一方文件与该第二方文件之间功能的差异程度。
8.如权利要求7所述的软件功能验证方法,通过该第一方文件分析出这些第一方技术点,并转换这些第一方技术点而产生该第一方决策表单包括:
以数据探勘算法而从该第一方文件依据其上下文信息而辨认这些第一方技术点;
依据特定领域以将这些第一方技术点转换为多个第一方元素;
反向转换这些第一方元素以形成至少一第一方统一建模语言(UML)图形;以及从该至少一第一方UML图形中获得多个训练样本,并依据这些训练样本以产生该第一方决策表单。
9.如权利要求7所述的软件功能验证方法,其中藉由静室设计手段以反向转换这些第一方元素而产生多个决策表单。
10.如权利要求9所述的软件功能验证方法,依据这些训练样本以产生该第一方决策表单包括:
依据这些训练样本来训练这些决策表单;以及
藉由本德尔斯分解与模拟退火相结合的算法以从这些决策表单中选择其中之一以作为该第一方决策表单,其中该模拟退火藉由最大后验机率估计来获得较佳解,该本德尔斯分解藉由最小损失估计来获得较佳解。

说明书全文

软件功能验证系统及其验证方法

技术领域

[0001] 本发明涉及一种将功能性文件(如,软件文件、电路布局文件、光罩布局文件…等)以机器学习来进行功能验证与险判断的技术,也涉及一种软件功能验证系统及其验证方法。

背景技术

[0002] 在全球化及信息网络化的时代中,将公司的特定需求(如,特定的软件功能、经设计的功能)或电路设计(如,电子电路布局)外包或委托给外部厂商来实现或实作,是目前常有的商业手段。然而,公司如何验收软件是否为其所需,或是如何评估此软件的实际功能与需求功能之间的差异及风险程度,便是所需要解决的问题之一。从另一度来说,实作方(如,外部厂商)希望得知自己所实作的产品是否符合设计方(如,客户)需求,并希望能够有公平的机制来评比自身产品。为此,许多公司或机构便希望能够以制式化的标准来评判每个软件的研发以及功能验证。目前所知有能成熟度模型(Capability Maturity Model;CMM)/能力成熟度模型整合(Capability Maturity Model Integration;CMMI)可以做为分析软件厂商开发能力,以及评选合格软件承包商的准则。然而,这些准则并非可实际应用的验证软件或自动化计算机设施,而是需要以人力(如,软件工程师)藉由逐步地学习才能获得认证的软件撰写技巧与目标。
[0003] 因此,目前仍然仅能利用人工方式分析委外的功能性文件(如,软件文件、电路布局文件、光罩布局文件…等)是否符合公司的需求,或是其编码是否符合公司的设计。然而,如此作法将需要大量人力介入处理,因而费时费力。另一方面,由人力去验证功能性文件的相应功能时,将会因为该位验证者的资历、经验以及能力来对此软件的评价有所不同。例如,对于软件的可扩充性跟修改难易度的判断上,不同验证者的想法可能会有相当大的差异。另一方面,有许多软件的功能虽然相同或相似,但是在软件的编码撰写所采用的逻辑概念却完全不同。因此,许多厂商皆希望能够将软件功能的分析及验证交由计算机设备来处理,藉以通过统一性的验证成效以及相应数据来作为较具备公信力的依据。

发明内容

[0004] 本发明提供一种软件功能验证系统及软件功能验证方法,可藉由计算机系统来自动化进行功能性文件的功能分析、评比软件设计与需求之间、或是设计方与编码方之间的功能落差的风险差异以及采集相关数据,避免以人力来进行软件功能验证,节省时间以及人力。
[0005] 本发明的软件功能验证系统包括第一数据库、第二数据库、文件获取设备以及功能验证设备。第一数据库包括多个第一方信息,且第二数据库包括多个第二方信息。文件获取设备用以获取第一方文件以及第二方文件。功能验证设备耦接所述第一数据库以及所述第二数据库。功能验证设备藉由机器学习技术、第一方信息以及第二方信息以分析所述第一方文件而产生多个第一方技术点,并转换这些第一方技术点而产生第一方决策表单。功能验证设备分析所述第二方文件以产生多个第二方技术点,转换这些第二方技术点以产生第二方决策表单。功能验证设备分别将此第一方决策表单以及此第二方决策表单转换为第一方树状结构以及第二方树状结构,比较此第一方树状结构以及此第二方树状结构以判断所述第一方文件与所述第二方文件之间功能的差异程度。
[0006] 本发明的软件功能验证方法适用于计算机系统。所述软件功能验证方法包括下列步骤。获取第一方文件以及第二方文件。藉由机器学习技术、第一数据库中的多个第一方信息以及第二数据库中的多个第二方信息以分析所述第一方文件而产生多个第一方技术点,并转换这些第一方技术点而产生第一方决策表单。藉由所述机器学习技术、第一方信息以及第二方信息以分析所述第二方文件而产生多个第二方技术点,转换这些第二方技术点以产生第二方决策表单。分别将此第一方决策表单以及此第二方决策表单转换为第一方树状结构以及第二方树状结构。以及,比较第一方树状结构以及第二方树状结构以判断此第一方文件与此第二方文件之间功能的差异程度。
[0007] 基于上述,本发明实施例所述的软件功能验证系统及软件功能验证方法可藉由考虑功能性文件的上下文语意特征来从中提取技术点,并藉由这些技术点来进行设计回顾(design review)或编码回顾(code review),藉以比对第一方文件以及第二方文件中的软件功能差异,并评估这些软件功能差异的风险等级。藉此,便可藉由计算机系统来自动化进行软件功能的分析、评比软件设计与需求之间的风险差异以及采集相关数据,避免以人力来进行软件功能验证,节省时间以及人力。并且,机器学习技术可从这些功能性文件(例如,软件文件)的海量数据中挖掘出所需信息来自主学习,藉以完善以计算机自动化来进行软件功能验证以及以技术点来评断功能差异程度。
[0008] 为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

[0009] 图1是依照本发明实施例所述的软件功能验证系统的方图。
[0010] 图2是依照本发明实施例所述的软件功能验证方法的流程图
[0011] 图3是依照本发明实施例所述的软件功能验证方法中步骤S220及步骤S230的详细流程图。
[0012] 图4为本德尔斯分解与模拟退火相互结合的算法的步骤流程图。
[0013] 【符号说明】
[0014] 100:软件功能验证系统
[0015] 110:计算机系统
[0016] 120:第一数据库
[0017] 130:第二数据库
[0018] 140:文件获取设备
[0019] 150:功能验证设备
[0020] 152:处理器
[0021] 154:存储介质
[0022] S210~S250、S310~S340、S410~S480:步骤
[0023] D1:第一方文件
[0024] D2:第二方文件

具体实施方式

[0025] 图1是依照本发明实施例所述的软件功能验证系统100的方块图。软件功能验证系统100主要包括计算机系统110、第一数据库(或称为,需求方数据库)120以及第二数据库(或称为,设计方数据库)130。计算机系统110则主要包括文件获取设备140以及功能验证设备150。计算机系统110可藉由本发明实施例所述的机器学习技术来考虑功能性文件的上下文语意特征来从中提取技术点,并将这些技术点整合为语义决策表单,并比较需求方文件的语义决策表单与设计或实作方文件的语义决策表单之间的差异以进行设计回顾或编码回顾,藉以比对需求方文件以及设计方文件中的软件功能差异,并评估这些软件功能差异的风险等级。藉此,本发明实施例通过藉由机器学习技术来对需求方与设计方之间、实作方与设计方之间的文件进行功能验证。此外,“需求方”、“设计方”或“实作方”仅是描述有双方的文件需要进行功能验证,然则本发明实施例并没有限制双方为谁,因此也可将双方称为是“第一方”及“第二方”。也就是说,只要本发明实施例能够从文件(如,软件文件、电子电路布局、光罩布局…等文件)中抽取出技术点,且可与另一个文件的技术点进行比较,皆为本发明实施例所述的实现范围。在本实施例中,需求方数据库也可称为是第一方数据库,设计方数据库也可称为是第二方数据库。
[0026] 详细来说,文件获取设备140可以是物理的网络协议或通信协议接口卡。功能验证设备150也可以自行具备通信接口,藉以通过网络来与其他设备(如,第一数据库120、第二数据库130,甚至是文件获取设备140)进行通信以及数据传递。功能验证设备150可包括处理器152以及非易失性存储介质154。处理器152可藉由非易失性存储介质154以及相应硬件来实现本发明实施例所述的软件功能验证方法。
[0027] 第一数据库120可以是由第一方(例如,“需求方”、“委外的公司”)所提供的相关信息(可称为,第一方信息),藉以作为机器学习之用。另一方面,第二数据库130则包括第二方(如,“设计方”)的多个功能性信息。换句话说,第二数据库130可以是软件的语言数据库、电子电路的词语数据库…等,端视软件功能验证系统100对于此功能性文件的特定领域而可有所不同。所谓的“特定领域”可以是功能性文件的用途领域,例如不同的软件语言(如,C语言、Verilog、VC++…等)领域、电路布局领域、光罩设计领域…等。
[0028] 在此说明本发明实施例所使用的机器学习技术中所用的相关术语。在机器学习技术中,经常采用规则集(rule set)来做为实现方式。规则集是一种以自然语言来描述结构形式规则的集合。所谓的“规则集”有两种模式。一种模式为有序模式,此机器学习系统会从规则集中的第一个规则开始对数据进行检查,并在检查满足后才会继续检查第二个规则,并以此类推。另一种模式则为无序模式,此机器学习系统会将规则集中的所有规则全部进行检查,并根据这些规则组成的整合方案来检查规则是否符合。本发明实施例所述的机器学习技术主要在用无序模式的规则集来实现语义决策表单(semantic decision table;SDT)。
[0029] 所谓的“语义决策表单”是使用先进的概念工程(ontology engineering;OG)技术来强化传统的决策表单。语义决策表单包括远多于以往决策表单的决策规则集。这些规则集的决定可从真实世界中决策的问题中获得,也就是可以藉由上下文信息来通过语义来决定多个规则。用来提取语义的程序可以抽为是知识收获程序。在本实施例中,SDT可藉由发展基于概念的方法及应用(Developing Ontology-Grounded Methods And Applications;DOGMA)的框架(frame)来模块化。可藉由应用程序来将概念分离成非常简单的语言结构,且此语言结构的层级可以适应性地调整。此处的“语言结构”可被称为是Lexon。根据DOGMA框架,SDT包括具备二进位层级的事实类型(fact type)(事实类型可被称为是SDT Lexon)以及。SDT承诺层级包括这些事实类型的限制以及理由。Lexon可以利用自然语言呈现的物件,以及这些物件之间的关系或规则来呈现。SDT承诺层级(commitment layer)在形式上可藉由使用Lexon的应用程序(或是,代理者(agent))来定义许多被选择的规则以及限制(constraint)。基于需求,承诺层级可包括多个限制、规则以及理论上二进位事实(axiomatized binary fact)。承诺层级可藉由许多不同的建模工具来建立模块,例如对象脚色建模(object-role modeling)、概念图形(conceptual gragh;CG)以及统一建模语言(Unified Modeling Language;UML)。本实施例主要以统一建模语言(UML)来做为实现方式。
[0030] 图2是依照本发明实施例所述的软件功能验证方法的流程图。此软件功能验证方法可适用于图1所述的软件功能验证系统100以及计算机系统110当中。请同时参考图1及图2,在步骤S210中,文件获取设备140用来获取第一方文件D1以及第二方文件D2。在本实施例中,第一方文件D1可以是公司的特定需求或电路设计的态样文件,或是以自然语言等可藉由文件获取设备140来得知其内容的文件。第二方文件D2则可以是外部厂商所完成的软件文件、电路布局文件或是光罩布局文件。这些文件在经由特定软件或机器读取并执行后便会执行其功能,因此在此称为是“第二方文件”。
[0031] 在步骤S220中,功能验证设备150中的处理器152则藉由机器学习技术、第一数据库120中的多个第一方信息以及第二数据库中130的多个第二方信息以分析第一方文件D1而产生多个第一方技术点,并转换这些第一方技术点而产生第一方决策表单。并且,相似地,在步骤S230中,处理器152藉由机器学习技术、上述第一方信息以及第二方信息以分析第二方文件D2而产生多个第二方技术点,并转换这些第二方技术点以产生第二方决策表单。本实施例的第一方决策表单以及第二方决策表单皆属于语义决策表单。本实施例的步骤S220与步骤S230可以互换顺序,也就是第一方决策表单以及第二方决策表单的行程顺序不受限制。步骤S220以及步骤S230的详细步骤流程将在图3中更为详细描述。
[0032] 在步骤S240中,功能验证设备150中的处理器152分别将步骤S220所产生的第一方决策表单以及步骤S230所产生的第二方决策表单分别转换为第一方树状结构以及第二方树状结构。将上述这些语义决策表单转换为树状结构的用意是,树状结构的数据结构比语义决策表单的数据结构来说较易于比对两者的差异。在步骤S250中,处理器152比较此第一方树状结构以及此第二方树状结构,从而判断第一方文件D1与第二方文件D2之间功能的差异程度。处理器152可通过树枝结构比较算法来逐一比对第一方树状结构以及此第二方树状结构中的各个节点以及树叶点,藉以得知这两个树状结构的差异为何,以获得树状结构比较成果。另一方面,功能验证设备150可依据上述的树状结构比较成果,并藉由权重功能分类法或梯度推进机器分类法(gradient boosting machine classifying)来计算第一方文件D1与第二方文件D2之间功能的差异程度。此种差异程度可藉由百分比来呈现、藉由多个层级(如,层级一至层级十)来呈现、也可藉由数字来呈现。本发明实施例并不限制差异程度以何种方式呈现,以让使用者可藉由软件功能验证系统100来获得较为客观的功能差异数据为准则。
[0033] 图3是依照本发明实施例所述的软件功能验证方法中步骤S220及步骤S230的详细流程图。由于步骤S220以及步骤S230皆是功能验证设备150藉由文件(如,第一方文件或第二方文件)来产生对应的语义决策表单(如,第一方决策表单或第二方决策表单),因此本实施例将步骤S220、S230的详细步骤流程说明于图3,并以第一方文件以及第一方决策表单来做为举例。然而,应用本实施例者也可将“第一方文件”换成“第二方文件”,藉以产生第二方决策表单。请同时参照图1及图3,在步骤S310中,功能验证设备150以数据探勘(data mining)算法而从第一方文件D1依据其上下文信息而辨认第一方文件D1当中的第一方技术点。这些第一方技术点设备可被称为是设计样式(design patterns)。本实施例以半监督式机率形模式识别算法(semi-supervised probabilistic pattern recognition algorithm)来作为上述数据探勘算法,其可更为有效地获得所需的第一方技术点,并避免错误传播。
[0034] 在步骤S320中,功能验证设备150依据使用者设定或是由功能验证设备150自行检测得到的特定领域以将这些第一方技术点转换为多个第一方元素。此处的“特定领域”可由使用者自行设定,藉以获得较佳的效果,当然也可由功能验证设备150自行藉由文件中的上下文信息来自动判定。本实施例的“第一方元素”可以是统一建模语言(UML)元素。在步骤S330中,功能验证设备150可藉由静室设计(Cleanroom design)手段或其他项应手段来反向转换这些第一方元素以形成至少一个第一方统一建模语言(UML)图形。
[0035] 在步骤S340中,功能验证设备150可从上述至少一个第一方UML图形中获得多个训练样本,并依据这些训练样本以产生多个第一方决策表单。功能验证设备150可从第一方决策表单或第二方决策表单所对应的UML图形中获得多个训练样本,并使用这些训练样本来训练对应的第一方决策表单或第二方决策表单。这些训练样本可以经由取样获得、或是不经由取样而以全部类型的样本来做为训练样本。在部分实施例中,功能验证设备150可在针对UML图形的预先数据探勘中获得前件表(antecedent list),并以这些前件表中的训练样本来训练这些决策表单。在训练过程中,功能验证设备150可依据这些训练样本来训练这些决策表单,并从这些决策表单中藉由有关于数学优化的算法以选择其中之一来作为第一方决策表单。本实施例可藉由本德尔斯分解(Benders decomposition)与模拟退火(Simulated Annealing)相结合的算法以从这些决策表单中选择其中之一以作为第一方决策表单,并在下述进行说明详细步骤流程。
[0036] 在大数据机器学习领域的火花拉姆达结构(spark lambda architecture)中,假定在批次视点(batch view)中的总损失可由方程式(1)来表示:
[0037]
[0038] 方程式(1)中的“a”为先行名单。“xi”、“yi”为训练样本。Nb为正整数。“Loss(a)”是一种突出形损失函数,例如是绞炼损失(hinge loss)、物流损失或指数损失。
[0039] 在即时视点(realtime view)中的总损失可由方程式(2)来表示,其中Nr为正整数:
[0040]
[0041] 因此,两者合起来的总损失则可由方程式(3)来实现:
[0042]
[0043] 本实施例便藉由上述方程式来找出最佳的SDT参数,藉以从多个SDT中选择出具备最佳解的第一方SDT或是第二方SDT。
[0044] 本发明实施例提出在数学优化领域中由本德尔斯分解与模拟退火相互结合的算法,藉以从这些SDT中选择较佳的SDT来使用。图4为本德尔斯分解(Benders decomposition)与模拟退火(Simulated Annealing)相互结合的算法的步骤流程图。请同时参照图1及图4,图4中的所有步骤可由图1中的处理器152来实现。
[0045] 在此先行设定相关参数。参数δ为上限与下限之间的公差间隙。P为具备目标函数(objective function)的原始优化问题(original optimization problem),此问题P可由下述方程式(4)呈现:
[0046]
[0047] P0为具备标函数的起始代理问题(initial proxy problem),其可由方程式(5)呈现:
[0048]
[0049] 切割线θ可由方程式(6)呈现:
[0050]
[0051] 参数aN为前件表中的前件集a的其中一个单元。参数k的起始值为0,参数UBk的起始值为无限大(∞)参数LBk的起始值为0。甲骨文功能(oraclefunction)可计算Loss(aN)以及N以获得经计算后Loss(a )以及 的数据。
[0052] 在步骤S410中,处理器152判断参数UBk减去参数LBk的数值是否小于公差间隙δk k(UB -LB >δ),且参数k是否小于k的最大值kmax(k
[0053] 在步骤S430中,处理器152将参数LBk+1设定为 的数值。在步骤S440中,处理器152查询(query)上述的甲骨文功能(oracle function)以获得Loss(ak)以及的数据。在步骤S450中,处理器152将参数UBk+1设定为 的数值。在步骤
S460中,处理器152藉由在点Pk上增加最优切割线 并
通过最小损失估计以在方程式Loss(ak)上获得另一点Pk。换句话说,步骤S460的本德尔斯分解算法藉由最小损失估计来获得较佳解。在步骤S470中,处理器152将参数k加1,并回到步骤S410以重复上述步骤。藉此,当步骤S410为否时,处理器152便可在步骤S480中输出用于问题P的最佳解答ak来作为本发明实施例的最佳SDT。
[0054] 特别说明的是,处理器152在判断是否要回到步骤S410续行计算最佳解答时,除了在步骤S460中判断本德尔斯分解算法的条件是否符合以外,还在步骤S420中判断模拟退火算法的条件是否符合。因此,本实施例将会同时考虑到本德尔斯分解算法以及模拟退火算法的条件,用此种方式将可获得高质量的次优解答,进而有助于提升算法的精确度跟执行效率。
[0055] 综上所述,本发明实施例所述的风险评估系统及数据处理方法可藉由数据中的上下文信息以及低复杂度的模型算法来达到风险评估的效果,并可提升使用效率。
[0056] 虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附权利要求书界定范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈