CN104579989B - 基于路由交换范式的构件功能一致性验证方法及装置 - Google Patents
基于路由交换范式的构件功能一致性验证方法及装置 Download PDFInfo
- Publication number
- CN104579989B CN104579989B CN201510018873.XA CN201510018873A CN104579989B CN 104579989 B CN104579989 B CN 104579989B CN 201510018873 A CN201510018873 A CN 201510018873A CN 104579989 B CN104579989 B CN 104579989B
- Authority
- CN
- China
- Prior art keywords
- piecemeal
- program code
- source program
- component source
- verified
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012795 verification Methods 0.000 title claims abstract description 29
- 125000002015 acyclic group Chemical group 0.000 claims description 52
- 238000012545 processing Methods 0.000 claims description 15
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000000903 blocking effect Effects 0.000 claims description 4
- 230000007547 defect Effects 0.000 abstract description 16
- 230000008569 process Effects 0.000 abstract description 10
- 238000000354 decomposition reaction Methods 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 74
- 230000008520 organization Effects 0.000 description 8
- 238000003860 storage Methods 0.000 description 7
- 238000012827 research and development Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 210000003128 head Anatomy 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 210000003733 optic disk Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于路由交换范式的构件功能一致性验证方法,包括:读取待验证构件源程序代码;对待验证构件源程序代码进行预处理,并根据预处理后的待验证构件源程序代码生成对应的分块流程图;将分块流程图按照待验证构件源程序代码中的控制流程及约束条件生成至少一个单支树;以及根据构件功能定义对至少一个单支树进行构件功能一致性验证。该方法通过根据构件功能定义对简单的单支树进行构件功能一致性验证,加快了验证过程,提高了验证效率,并且,通过对于路由构件源程序代码进行分块和流程图分解,能够较为方便地发现代码结构缺陷,为缺陷改进打下良好的基础。本发明还公开了一种基于路由交换范式的构件功能一致性验证装置。
Description
技术领域
本领域涉及路由器构件功能的验证技术领域,尤其涉及一种基于路由交换范式的构件功能一致性验证方法及装置。
背景技术
目前,可重构路由器的发展使得路由器研发门槛进一步降低,研发周期进一步缩短,研发成本也降低了许多,产品更加适应多样化应用需求。可重构路由器体系结构可以分为三个等级,分别是平台、组件、构件。其中,平台是可重构完成多种任务的系统,组件是可重构实现特点功能的单元,构件是可重构实施给定处理的模块,即平台是任务系统,组件是功能单元,构件是处理模块。
路由器构件具备可扩展特性与可重构特性,是一种路由交换软件体系结构模型和实现框架的重要组成部分。可重构路由的构件有如下特点:第一,构件实现相对简单;第二,构件功能相对单一,只需完成组件功能的一个动作即可(比如转发组件的查表构);第三,构件开发模式具备开放性,通过制定构件统一的接口规范,使得第三方构件提供商在内的多类厂商都能参与其中,极大的提高可重构路由器的研发效率,明显降低研发成本。
然而,由于基于路由交换范式的路由器构件功能一致性静态验证是路由器构件研发过程中的重要结点,所以只有通过功能一致性静态验证,后续工作才能正常开展。构件在实现层面对应一个简单的程序处理模块,其源程序一般由顺序、选择、循环三种基本结构组成,这三种最基本的结构合理搭配使用就能得到一个可用的构件。目前有很多集成化开发工具可以快速发现源代码中语法错误,但是不能发现构件代码缺陷、构件功能一致性问题。
因此,如何快速发现构件代码缺陷、构件功能与设计一致性问题已经成为亟待解决的问题。
发明内容
本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本发明的一个目的在于提出一种基于路由交换范式的构件功能一致性验证方法。该方法可以通过根据构件功能定义对简单的单支树进行构件功能一致性验证,加快验证过程,提高验证效率,并且,通过对于路由构件源程序代码进行分块和流程图分解,能够较为方便地发现代码结构缺陷,为缺陷改进打下良好的基础。
本发明的另一个目的在于提出一种基于路由交换范式的构件功能一致性验证装置。
为了达到上述目的,本发明第一方面实施例的基于路由交换范式的构件功能一致性验证方法,包括:读取待验证构件源程序代码;对所述待验证构件源程序代码进行预处理,并根据预处理后的待验证构件源程序代码生成对应的分块流程图;将所述分块流程图按照所述待验证构件源程序代码中的控制流程及约束条件生成至少一个单支树;以及根据构件功能定义对所述至少一个单支树进行构件功能一致性验证。
根据本发明实施例的基于路由交换范式的构件功能一致性验证方法,可先读取待验证构件源程序代码,之后可对待验证构件源程序代码进行预处理,并根据预处理后的待验证构件源程序代码生成对应的分块流程图,并将分块流程图按照待验证构件源程序代码中的控制流程及约束条件生成至少一个单支树,以及根据构件功能定义对至少一个单支树进行构件功能一致性验证,加快了验证过程,提高了验证效率,并且,通过对于路由构件源程序代码进行分块和流程图分解,能够较为方便地发现代码结构缺陷,为缺陷改进打下良好的基础。
为了达到上述目的,本发明第二方面实施例的基于路由交换范式的构件功能一致性验证装置,包括:读取模块,用于读取待验证构件源程序代码;预处理模块,用于对所述待验证构件源程序代码进行预处理;第一生成模块,用于根据所述预处理模块预处理后的待验证构件源程序代码生成对应的分块流程图;第二生成模块,用于将所述分块流程图按照所述待验证构件源程序代码中的控制流程及约束条件生成至少一个单支树;以及验证模块,用于根据构件功能定义对所述至少一个单支树进行构件功能一致性验证。
根据本发明实施例的基于路由交换范式的构件功能一致性验证装置,通过根据构件功能定义对简单的单支树进行构件功能一致性验证,加快了验证过程,提高了验证效率,并且,通过对于路由构件源程序代码进行分块和流程图分解,能够较为方便地发现代码结构缺陷,为缺陷改进打下良好的基础。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的基于路由交换范式的构件功能一致性验证方法的流程图;
图2是根据本发明另一个实施例的基于路由交换范式的构件功能一致性验证方法的流程图;
图3(a)、图3(b)、图3(c)、图3(d)、图3(e)、图3(f)、图3(g)和图3(h)是分别根据图2中的方法对待验证构件源程序代码进行处理的过程中产生的相应结果的示例图;
图4是根据本发明一个实施例的基于路由交换范式的构件功能一致性验证装置的结构示意图;
图5是根据本发明一个实施例的第一生成模块的结构示意图;以及
图6是根据本发明一个实施例的第二生成模块的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
需要说明的是,本发明提出的基于路由交换范式的构件功能一致性验证方法及装置的适用条件:使用C/C++结构化编程方法编写的基于路由交换范式的路由器构件,构件源程序代码函数无嵌套调用(如有嵌套调用的函数,则将其视为构件)。
下面参考附图描述根据本发明实施例的基于路由交换范式的构件功能一致性验证方法及装置。
图1是根据本发明一个实施例的基于路由交换范式的构件功能一致性验证方法的流程图。如图1所示,该基于路由交换范式的构件功能一致性验证方法可以包括:
S101,读取待验证构件源程序代码。
具体地,可从可重构路由器对应的源程序中读取出路由器构件对应的源程序代码作为待验证源程序代码。其中,可以理解,构件是可重构路由器体系中可重构实施给定处理的模块,即构件在可重构路由器中在实现层面上对应一个简单的程序处理模块,其源程序一般由顺序结构、选择结构和循环结构三种基本结构组成。
S102,对待验证构件源程序代码进行预处理,并根据预处理后的待验证构件源程序代码生成对应的分块流程图。
具体而言,在本发明的实施例中,可先对待验证构件源程序代码进行预处理,之后,可按照执行顺序对预处理后的待验证构件源程序代码进行分块,得到至少一个分块代码,然后,将至少一个分块代码按照结构化流程图的方式表示成分块流程图。其中,在本发明的实施例中,执行顺序可包括但不限于入口参数、变量定义与赋值、选择结构、循环结构、函数调用和函数返回等中的一种或多种。
具体而言,对待验证构件源程序代码进行预处理的具体实现过程可为:将待验证构件源程序代码按照结构化编程方式进行调整处理,并删除调整处理后的待验证构件源程序代码中的注释部分、预包含部分和预定义部分。更具体地,可将待验证构件源程序代码按照结构化编程方式进行调整处理,形成结构清晰、层次分明的代码结构,若程序代码中的结构不符合基本结构(即顺序结结构、选择结构和循环结构)要求,则按照基本结构对该程序代码进行调整优化,否则对其不进行改变。然后,可删除程序代码中的注释、预包含、预定义等无关的内容。
需要说明的是,在本步骤中,在按照执行顺序对预处理后的待验证构件源程序代码进行分块时,可遵循以下分块原则:顺序结构相对集中,其他结构(如选择结构、循环结构)独立,且只对构件源程序代码最外层分块,内层结构视作一个整体,如有必要,则可将该内层结构单独视为独立构件进行一致性验证。
S103,将分块流程图按照待验证构件源程序代码中的控制流程及约束条件生成至少一个单支树。
具体而言,在本发明的实施例中,可先按照待验证构件源程序代码中的控制流程及约束条件将分块流程图转化为单向无环图,之后,以入口结点为根节点、出口结点为终端叶子结点,可将单向无环图分解为至少一个单支树。
更具体地,在本步骤中,首先,可将分块流程图中的各分块作为单向无环图的结点,其中,如果分块流程图中存在具有选择结构的分块,则获取分块中选择结构的分支个数,并生成与分支个数相同数量的结点。之后,按照待验证构件源程序代码中的控制流程及约束条件利用箭头将所有结点进行连接以形成单向无环图;其中,如果分块流程图中存在具有循环结构的分块,则将具有循环结构的分块以结点加自环箭头表示。
例如,可将分块流程图中的各分块分别用大写字母表示,并作为单向无环图的结点,若分块流程图中的分块为具有选择结构的分块,则可将先获取该选择结构总共有几个分支,然后将各分支放置在单向无环图的同一层并分别用大写字母加数字下标的方式表示,分支条件在相应的边上用小写字母表示,其中若分块流程图中的分块为具有循环结构的分块,则该分块用字母结点加自环箭头表示。然后,按照待验证构件源程序代码中的控制流程及约束条件利用箭头将所有结点进行连接以形成单向无环图。最后,以入口结点为根节点、出口结点为终端叶子结点,可将单向无环图分解为至少一个单支树。
应当理解,在本发明的实施例中,至少一个单支树可理解为一个单支树、或一个以上的单支树。需要说明的是,当以入口结点为根节点、出口结点为终端叶子结点,可将单向无环图分解为一个单支树时,可理解单向无环图没有分支结点,即待验证构件源程序代码中不存在选择结构。当以入口结点为根节点、出口结点为终端叶子结点,可将单向无环图分解为一个以上单支树时,可理解单向无环图存在分支结点,即待验证构件源程序代码中存在选择结构。在本发明的实施例中,当单向无环图存在分支结点时,在将单向无环图分解为一个以上单支树之前,可先对单向无环图进行剔除分支节点的处理。举例而言,如果单向无环图中某个结点指向两个或两个以上的结点,则可说明单向无环图存在分支结点,则可将该单向无环图分解为除入口结点外没有分支结点的单向无环图,例如,假设分支结点的个数为2,则可将分支结点的上一层级的结点变为2个,然后,按照控制流程及约束条件利用箭头再将这些结点重新连接起来,以生成除入口结点外没有分支结点的单向无环图。
S104,根据构件功能定义对至少一个单支树进行构件功能一致性验证。
具体地,由于通过以上步骤S101-S103可将待验证构件源程序代码转化成一个完全是顺序结构的简易程序,所以将构件功能定义和该具有顺序结构的简易程序进行对照,能够很方便地快速验证构件是否具备预期的功能。
进一步的,为了加快验证速度,可以使单支树的层级尽可能少,具体地,在本发明的实施例中,在将分块流程图按照待验证构件源程序代码中的控制流程及约束条件生成至少一个单支树之后,可对至少一个单支树中的普通结点(如代表顺序执行的分块)和无约束条件的边结点进行压缩,使单支树的层级尽可能少,其中,压缩后的结点例如用“*”注明,以作为区分。
为了使得本领域的技术人员能够更加清楚地了解本发明,下面将举例说明。
举例而言,图2是根据本发明另一个实施例的基于路由交换范式的构件功能一致性验证方法的流程图,图3(a)、图3(b)、图3(c)、图3(d)、图3(e)、图3(f)、图3(g)和图3(h)是分别根据图2中的方法对待验证构件源程序代码进行处理的过程中产生的相应结果的示例图。如图2所示,首先,可读取待验证构件源程序代码(S201),如图3(a)所示,为读取到的待验证构件源程序代码。之后,可对如图3(a)所示待验证构件源程序代码进行预处理,并删除代码中的包含、注释、全局变量的内容(S202),如图3(b)所示,即为删除的代码中的包含、注释、全局变量的内容之后得到的代码。之后,可将如图3(b)所示的源程序代码按照执行顺序(如入口参数、变量定义与赋值、选择结构、循环结构、函数调用、函数返回等功能)将其分块(S203),如图3(c)所示,可将如图3(b)中的源程序代码分为6块,即分块1:入口参数、分块2:变量定义、分块3:选择结构、分块4:循环结构、分块5:函数调用、分块6:函数返回。然后,可将如图3(c)中的6个分块用结构化流程图表示出来,以形成分块流程图(S204),如图3(d)所示,即为分块流程图。之后,可将如图3(d)所示的分块流程图中各分块分别用大写字母(A、B、C、D、E、F)表示,并作为单向无环图的结点,选择结构的各分支放置在图的同一层并用大写字母加数字下标(C1、C2等)的方式表示,分支条件在相应的边上用小写字母(c1、c2)表示,循环结构用字母结点加自环箭头表示,这样即将分块流程图转化为单向无环图(S205),如图3(e)所示。之后,可将如图3(e)所示的单向无环图分解为除入口结点A外没有分支结点的单向无环图(S206),如图3(f)所示。然后,将如图3(f)中的单向无环图以A结点为根节点,以出口结点C1和F为终端叶子节点,分解为2颗单支树(S207),如图3(g)所示。之后,可对图3(g)中的2颗单支树中的普通结点(如代表顺序执行的分块)和无约束条件的边结点进行压缩,即对A、B、D、E、F结点进行压缩,使单支树层级尽可能少,压缩后的结点用*注明(S208),如图3(h)所示。最后,可根据构件功能定义,将如图3(h)中的2棵单支树所代表的构件程序源代码进行功能一致性验证(S209)。
综上所述,经过如图2所示中的九个步骤,将基于路由交换范式的构件源程序代码分解为两个简单的顺序执行程序,能够快速方便地依据构件功能进行一致性验证,即将不符合功能定义的构件能方便快速的被发现,可以加快单元测试过程。此外,对于路由构件源程序代码进行分块和流程图分解,能够较为方便地发现代码结构缺陷,为缺陷改进打下良好的基础。
根据本发明实施例的基于路由交换范式的构件功能一致性验证方法,可先读取待验证构件源程序代码,之后可对待验证构件源程序代码进行预处理,并根据预处理后的待验证构件源程序代码生成对应的分块流程图,并将分块流程图按照待验证构件源程序代码中的控制流程及约束条件生成至少一个单支树,以及根据构件功能定义对至少一个单支树进行构件功能一致性验证,加快了验证过程,提高了验证效率,并且,通过对于路由构件源程序代码进行分块和流程图分解,能够较为方便地发现代码结构缺陷,为缺陷改进打下良好的基础。
为了实现上述实施例,本发明还提出了一种基于路由交换范式的构件功能一致性验证装置。
图4是根据本发明一个实施例的基于路由交换范式的构件功能一致性验证装置的结构示意图。如图4所示,该基于路由交换范式的构件功能一致性验证装置可以包括:读取模块10、预处理模块20、第一生成模块30、第二生成模块40和验证模块50。
具体地,读取模块10可用于读取待验证构件源程序代码。更具体地,读取模块10可从可重构路由器对应的源程序中读取出路由器构件对应的源程序代码作为待验证源程序代码。其中,可以理解,构件是可重构路由器体系中可重构实施给定处理的模块,即构件在可重构路由器中在实现层面上对应一个简单的程序处理模块,其源程序一般由顺序结构、选择结构和循环结构三种基本结构组成。
预处理模块20可用于对待验证构件源程序代码进行预处理。具体而言,在本发明的实施例中,预处理模块20可具体用于:将待验证构件源程序代码按照结构化编程方式进行调整处理,并删除调整处理后的待验证构件源程序代码中的注释部分、预包含部分和预定义部分。更具体地,预处理模块20可将待验证构件源程序代码按照结构化编程方式进行调整处理,形成结构清晰、层次分明的代码结构,若程序代码中的结构不符合基本结构(即顺序结结构、选择结构和循环结构)要求,则按照基本结构对该程序代码进行调整优化,否则对其不进行改变。然后,可删除程序代码中的注释、预包含、预定义等无关的内容。
第一生成模块30可用于根据预处理模块预处理后的待验证构件源程序代码生成对应的分块流程图。进一步的,在本发明的一个实施例中,如图5所示,该第一生成模块30可包括分块单元31和生成单元32。
具体地,分块单元31可用于按照执行顺序对预处理后的待验证构件源程序代码进行分块,得到至少一个分块代码。其中,在本发明的实施例中,执行顺序可包括但不限于入口参数、变量定义与赋值、选择结构、循环结构、函数调用和函数返回等中的一种或多种。生成单元32可用于将至少一个分块代码按照结构化流程图的方式表示成分块流程图。
需要说明的是,在本发明的实施例中,分块单元31在按照执行顺序对预处理后的待验证构件源程序代码进行分块时,可遵循以下分块原则:顺序结构相对集中,其他结构(如选择结构、循环结构)独立,且只对构件源程序代码最外层分块,内层结构视作一个整体,如有必要,则可将该内层结构单独视为独立构件进行一致性验证。
第二生成模块40可用于将分块流程图按照待验证构件源程序代码中的控制流程及约束条件生成至少一个单支树。进一步的,在本发明的一个实施例中,如图6所示,第二生成模块40可包括转化单元41和分解单元42。
具体地,转化单元41可用于用于按照待验证构件源程序代码中的控制流程及约束条件将分块流程图转化为单向无环图。具体而言,在本发明的实施例中,转化单元41可具体用于:将分块流程图中的各分块作为单向无环图的结点,其中,如果分块流程图中存在具有选择结构的分块,则获取分块中选择结构的分支个数,并生成与分支个数相同数量的结点;按照待验证构件源程序代码中的控制流程及约束条件利用箭头将所有结点进行连接以形成单向无环图;其中,如果分块流程图中存在具有循环结构的分块,则将具有循环结构的分块以结点加自环箭头表示。
分解单元42可用于以入口结点为根节点、出口结点为终端叶子结点,将单向无环图分解为至少一个单支树。
例如,转化单元41可将分块流程图中的各分块分别用大写字母表示,并作为单向无环图的结点,若分块流程图中的分块为具有选择结构的分块,则可将先获取该选择结构总共有几个分支,然后将各分支放置在单向无环图的同一层并分别用大写字母加数字下标的方式表示,分支条件在相应的边上用小写字母表示,其中若分块流程图中的分块为具有循环结构的分块,则该分块用字母结点加自环箭头表示,然后,按照待验证构件源程序代码中的控制流程及约束条件利用箭头将所有结点进行连接以形成单向无环图。分解单元42以入口结点为根节点、出口结点为终端叶子结点,可将单向无环图分解为至少一个单支树。
应当理解,在本发明的实施例中,至少一个单支树可理解为一个单支树、或一个以上的单支树。需要说明的是,当以入口结点为根节点、出口结点为终端叶子结点,可将单向无环图分解为一个单支树时,可理解单向无环图没有分支结点,即待验证构件源程序代码中不存在选择结构。当以入口结点为根节点、出口结点为终端叶子结点,可将单向无环图分解为一个以上单支树时,可理解单向无环图存在分支结点,即待验证构件源程序代码中存在选择结构。在本发明的实施例中,当单向无环图存在分支结点时,在将单向无环图分解为一个以上单支树之前,可先对单向无环图进行剔除分支节点的处理。举例而言,如果单向无环图中某个结点指向两个或两个以上的结点,则可说明单向无环图存在分支结点,则可将该单向无环图分解为除入口结点外没有分支结点的单向无环图,例如,假设分支结点的个数为2,则可将分支结点的上一层级的结点变为2个,然后,按照控制流程及约束条件利用箭头再将这些结点重新连接起来,以生成除入口结点外没有分支结点的单向无环图。
验证模块50用于根据构件功能定义对至少一个单支树进行构件功能一致性验证。更具体地,由于通过以上模块可将待验证构件源程序代码转化成一个完全是顺序结构的简易程序,所以验证模块50将构件功能定义和该具有顺序结构的简易程序进行对照,能够很方便地快速验证构件是否具备预期的功能。
进一步的,为了加快验证速度,可以使单支树的层级尽可能少,具体地,在本发明的实施例中,在将分块流程图按照待验证构件源程序代码中的控制流程及约束条件生成至少一个单支树之后,可对至少一个单支树中的普通结点(如代表顺序执行的分块)和无约束条件的边结点进行压缩,使单支树的层级尽可能少,其中,压缩后的结点例如用“*”注明,以作为区分。
上述基于路由交换范式的构件功能一致性验证装置实施例,通过根据构件功能定义对简单的单支树进行构件功能一致性验证,加快了验证过程,提高了验证效率,并且,通过对于路由构件源程序代码进行分块和流程图分解,能够较为方便地发现代码结构缺陷,为缺陷改进打下良好的基础。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种基于路由交换范式的构件功能一致性验证方法,其特征在于,包括以下步骤:
读取待验证构件源程序代码;
将所述待验证构件源程序代码按照结构化编程方式进行调整处理,并删除调整处理后的待验证构件源程序代码中的注释部分、预包含部分和预定义部分,并根据预处理后的待验证构件源程序代码生成对应的分块流程图;
按照所述待验证构件源程序代码中的控制流程及约束条件将所述分块流程图转化为单向无环图;
以入口结点为根节点、出口结点为终端叶子结点,将所述单向无环图分解为至少一个单支树;以及
根据构件功能定义对所述至少一个单支树进行构件功能一致性验证;其中,使用C/C++结构化编程方法编写的基于路由交换范式的路由器构件,构件源程序代码函数无嵌套调用。
2.如权利要求1所述的方法,其特征在于,所述根据预处理后的待验证构件源程序代码生成对应的分块流程图,包括:
按照执行顺序对预处理后的待验证构件源程序代码进行分块,得到至少一个分块代码;
将所述至少一个分块代码按照结构化流程图的方式表示成所述分块流程图。
3.如权利要求2所述的方法,其特征在于,所述执行顺序包括入口参数、变量定义与赋值、选择结构、循环结构、函数调用和函数返回中的一种或多种。
4.如权利要求1所述的方法,其特征在于,所述按照所述待验证构件源程序代码中的控制流程及约束条件将所述分块流程图转化为单向无环图,包括:
将所述分块流程图中的各分块作为所述单向无环图的结点,其中,如果所述分块流程图中存在具有选择结构的分块,则获取所述分块中选择结构的分支个数,并生成与所述分支个数相同数量的结点;
按照所述待验证构件源程序代码中的控制流程及约束条件利用箭头将所有结点进行连接以形成所述单向无环图;
其中,如果所述分块流程图中存在具有循环结构的分块,则将所述具有循环结构的分块以结点加自环箭头表示。
5.一种基于路由交换范式的构件功能一致性验证装置,其特征在于,包括:
读取模块,用于读取待验证构件源程序代码;
预处理模块,用于将所述待验证构件源程序代码按照结构化编程方式进行调整处理,并删除调整处理后的待验证构件源程序代码中的注释部分、预包含部分和预定义部分;
第一生成模块,用于根据所述预处理模块预处理后的待验证构件源程序代码生成对应的分块流程图;
第二生成模块,用于将所述分块流程图按照所述待验证构件源程序代码中的控制流程及约束条件生成至少一个单支树;其中,所述第二生成模块包括:转化单元,用于按照所述待验证构件源程序代码中的控制流程及约束条件将所述分块流程图转化为单向无环图;分解单元,用于以入口结点为根节点、出口结点为终端叶子结点,将所述单向无环图分解为所述至少一个单支树;以及
验证模块,用于根据构件功能定义对所述至少一个单支树进行构件功能一致性验证;其中,使用C/C++结构化编程方法编写的基于路由交换范式的路由器构件,构件源程序代码函数无嵌套调用。
6.如权利要求5所述的装置,其特征在于,所述第一生成模块包括:
分块单元,用于按照执行顺序对预处理后的待验证构件源程序代码进行分块,得到至少一个分块代码;
生成单元,用于将所述至少一个分块代码按照结构化流程图的方式表示成所述分块流程图。
7.如权利要求6所述的装置,其特征在于,所述执行顺序包括入口参数、变量定义与赋值、选择结构、循环结构、函数调用和函数返回中的一种或多种。
8.如权利要求5所述的装置,其特征在于,所述转化单元具体用于:
将所述分块流程图中的各分块作为所述单向无环图的结点,其中,如果所述分块流程图中存在具有选择结构的分块,则获取所述分块中选择结构的分支个数,并生成与所述分支个数相同数量的结点;
按照所述待验证构件源程序代码中的控制流程及约束条件利用箭头将所有结点进行连接以形成所述单向无环图;其中,如果所述分块流程图中存在具有循环结构的分块,则将所述具有循环结构的分块以结点加自环箭头表示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510018873.XA CN104579989B (zh) | 2015-01-14 | 2015-01-14 | 基于路由交换范式的构件功能一致性验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510018873.XA CN104579989B (zh) | 2015-01-14 | 2015-01-14 | 基于路由交换范式的构件功能一致性验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104579989A CN104579989A (zh) | 2015-04-29 |
CN104579989B true CN104579989B (zh) | 2017-11-21 |
Family
ID=53095213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510018873.XA Active CN104579989B (zh) | 2015-01-14 | 2015-01-14 | 基于路由交换范式的构件功能一致性验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104579989B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080055A (zh) * | 2022-06-15 | 2022-09-20 | 东南大学 | 面向信息安全的可重构系统芯片编译器、自动编译方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944064A (zh) * | 2010-10-12 | 2011-01-12 | 中国人民解放军国防科学技术大学 | 一种基于重构控制流图的控制流错误检测优化方法 |
CN102855174A (zh) * | 2011-06-28 | 2013-01-02 | 奇智软件(北京)有限公司 | 自动化测试中可自动恢复的目标程序运行控制方法及装置 |
CN103914372A (zh) * | 2012-12-31 | 2014-07-09 | 北京启明星辰信息技术股份有限公司 | 基于程序切片的代码缺陷静态检测的并行化方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5644777B2 (ja) * | 2010-01-21 | 2014-12-24 | 日本電気株式会社 | ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム |
-
2015
- 2015-01-14 CN CN201510018873.XA patent/CN104579989B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944064A (zh) * | 2010-10-12 | 2011-01-12 | 中国人民解放军国防科学技术大学 | 一种基于重构控制流图的控制流错误检测优化方法 |
CN102855174A (zh) * | 2011-06-28 | 2013-01-02 | 奇智软件(北京)有限公司 | 自动化测试中可自动恢复的目标程序运行控制方法及装置 |
CN103914372A (zh) * | 2012-12-31 | 2014-07-09 | 北京启明星辰信息技术股份有限公司 | 基于程序切片的代码缺陷静态检测的并行化方法及装置 |
Non-Patent Citations (1)
Title |
---|
"基于协议的实时构件行为一致性验证";张振领 等;《计算机科学》;20120630;第39卷(第6期);第125-128页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104579989A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Khot et al. | Parameterized complexity of finding subgraphs with hereditary properties | |
CN106293664A (zh) | 代码生成方法及装置 | |
CN104809182B (zh) | 基于动态可分裂Bloom Filter的网络爬虫URL去重方法 | |
CN104915262B (zh) | 一种基于excel数据结构的校验系统及其方法 | |
Hoogers et al. | A trace semantics for Petri nets | |
CN108536723A (zh) | 配电网gis电线图多工单协同制图方法和装置 | |
CN104579989B (zh) | 基于路由交换范式的构件功能一致性验证方法及装置 | |
Salowe et al. | Thirty‐five‐point rectilinear Steiner minimal trees in a day | |
CN104021002B (zh) | 一种pdm系统标准件存储方法 | |
Cai et al. | Supervisor localization of discrete-event systems based on state tree structures | |
Liu et al. | Complexity of the soundness problem of workflow nets | |
CN109324856A (zh) | 菜单处理方法、装置、计算机设备及存储介质 | |
Jayawant et al. | Minimum spanning trees | |
CN106503970A (zh) | 流程实例的编辑方法及装置 | |
CN108920938A (zh) | 一种集中管理功能权限的方法及装置 | |
CN105760424A (zh) | 用于存储企业产品关键数据的数据库建立方法 | |
Li et al. | RCC8 binary constraint network can be consistently extended | |
CN103218497B (zh) | 基于增量线性规划的动态系统在线增量式快速验证系统及方法 | |
US11074294B2 (en) | System and method for Directed Acyclic Graph (DAG) encoding into hash linked blocks | |
CN101571858B (zh) | 多个对象的安全性设定及检查的方法和装置 | |
CN106027032A (zh) | 一种单位延时模型下rm逻辑电路延时优化方法 | |
CN103207829B (zh) | 异步系统的测试方法及装置 | |
CN101957822A (zh) | 基于行为传播的业务逻辑执行方法 | |
US20180074934A1 (en) | Method for checking equivalence of code, non-transitory computer-readable storage medium, computer program product and computer for implementing the method | |
Bisztray et al. | Combining termination proofs in model transformation systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |