基于路由交换范式的构件功能一致性验证方法及装置的制造方法_3

文档序号:8265586阅读:来源:国知局
[0045]具体地,读取模块10可用于读取待验证构件源程序代码。更具体地,读取模块10可从可重构路由器对应的源程序中读取出路由器构件对应的源程序代码作为待验证源程序代码。其中,可以理解,构件是可重构路由器体系中可重构实施给定处理的模块,即构件在可重构路由器中在实现层面上对应一个简单的程序处理模块,其源程序一般由顺序结构、选择结构和循环结构三种基本结构组成。
[0046]预处理模块20可用于对待验证构件源程序代码进行预处理。具体而言,在本发明的实施例中,预处理模块20可具体用于:将待验证构件源程序代码按照结构化编程方式进行调整处理,并删除调整处理后的待验证构件源程序代码中的注释部分、预包含部分和预定义部分。更具体地,预处理模块20可将待验证构件源程序代码按照结构化编程方式进行调整处理,形成结构清晰、层次分明的代码结构,若程序代码中的结构不符合基本结构(即顺序结结构、选择结构和循环结构)要求,则按照基本结构对该程序代码进行调整优化,否则对其不进行改变。然后,可删除程序代码中的注释、预包含、预定义等无关的内容。
[0047]第一生成模块30可用于根据预处理模块预处理后的待验证构件源程序代码生成对应的分块流程图。进一步的,在本发明的一个实施例中,如图5所示,该第一生成模块30可包括分块单元31和生成单元32。
[0048]具体地,分块单元31可用于按照执行顺序对预处理后的待验证构件源程序代码进行分块,得到至少一个分块代码。其中,在本发明的实施例中,执行顺序可包括但不限于入口参数、变量定义与赋值、选择结构、循环结构、函数调用和函数返回等中的一种或多种。生成单元32可用于将至少一个分块代码按照结构化流程图的方式表示成分块流程图。
[0049]需要说明的是,在本发明的实施例中,分块单元31在按照执行顺序对预处理后的待验证构件源程序代码进行分块时,可遵循以下分块原则:顺序结构相对集中,其他结构(如选择结构、循环结构)独立,且只对构件源程序代码最外层分块,内层结构视作一个整体,如有必要,则可将该内层结构单独视为独立构件进行一致性验证。
[0050]第二生成模块40可用于将分块流程图按照待验证构件源程序代码中的控制流程及约束条件生成至少一个单支树。进一步的,在本发明的一个实施例中,如图6所示,第二生成模块40可包括转化单元41和分解单元42。
[0051]具体地,转化单元41可用于用于按照待验证构件源程序代码中的控制流程及约束条件将分块流程图转化为单向无环图。具体而言,在本发明的实施例中,转化单元41可具体用于:将分块流程图中的各分块作为单向无环图的结点,其中,如果分块流程图中存在具有选择结构的分块,则获取分块中选择结构的分支个数,并生成与分支个数相同数量的结点;按照待验证构件源程序代码中的控制流程及约束条件利用箭头将所有结点进行连接以形成单向无环图;其中,如果分块流程图中存在具有循环结构的分块,则将具有循环结构的分块以结点加自环箭头表示。
[0052]分解单元42可用于以入口结点为根节点、出口结点为终端叶子结点,将单向无环图分解为至少一个单支树。
[0053]例如,转化单元41可将分块流程图中的各分块分别用大写字母表示,并作为单向无环图的结点,若分块流程图中的分块为具有选择结构的分块,则可将先获取该选择结构总共有几个分支,然后将各分支放置在单向无环图的同一层并分别用大写字母加数字下标的方式表示,分支条件在相应的边上用小写字母表示,其中若分块流程图中的分块为具有循环结构的分块,则该分块用字母结点加自环箭头表示,然后,按照待验证构件源程序代码中的控制流程及约束条件利用箭头将所有结点进行连接以形成单向无环图。分解单元42以入口结点为根节点、出口结点为终端叶子结点,可将单向无环图分解为至少一个单支树。
[0054]应当理解,在本发明的实施例中,至少一个单支树可理解为一个单支树、或一个以上的单支树。需要说明的是,当以入口结点为根节点、出口结点为终端叶子结点,可将单向无环图分解为一个单支树时,可理解单向无环图没有分支结点,即待验证构件源程序代码中不存在选择结构。当以入口结点为根节点、出口结点为终端叶子结点,可将单向无环图分解为一个以上单支树时,可理解单向无环图存在分支结点,即待验证构件源程序代码中存在选择结构。在本发明的实施例中,当单向无环图存在分支结点时,在将单向无环图分解为一个以上单支树之前,可先对单向无环图进行剔除分支节点的处理。举例而言,如果单向无环图中某个结点指向两个或两个以上的结点,则可说明单向无环图存在分支结点,则可将该单向无环图分解为除入口结点外没有分支结点的单向无环图,例如,假设分支结点的个数为2,则可将分支结点的上一层级的结点变为2个,然后,按照控制流程及约束条件利用箭头再将这些结点重新连接起来,以生成除入口结点外没有分支结点的单向无环图。
[0055]验证模块50用于根据构件功能定义对至少一个单支树进行构件功能一致性验证。更具体地,由于通过以上模块可将待验证构件源程序代码转化成一个完全是顺序结构的简易程序,所以验证模块50将构件功能定义和该具有顺序结构的简易程序进行对照,能够很方便地快速验证构件是否具备预期的功能。
[0056]进一步的,为了加快验证速度,可以使单支树的层级尽可能少,具体地,在本发明的实施例中,在将分块流程图按照待验证构件源程序代码中的控制流程及约束条件生成至少一个单支树之后,可对至少一个单支树中的普通结点(如代表顺序执行的分块)和无约束条件的边结点进行压缩,使单支树的层级尽可能少,其中,压缩后的结点例如用注明,以作为区分。
[0057]上述基于路由交换范式的构件功能一致性验证装置实施例,通过根据构件功能定义对简单的单支树进行构件功能一致性验证,加快了验证过程,提高了验证效率,并且,通过对于路由构件源程序代码进行分块和流程图分解,能够较为方便地发现代码结构缺陷,为缺陷改进打下良好的基础。
[0058]在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0059]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0060]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0061]在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1