CN114371998A - 一种基于考虑约束的并行广度优先搜索的架构测试方法 - Google Patents

一种基于考虑约束的并行广度优先搜索的架构测试方法 Download PDF

Info

Publication number
CN114371998A
CN114371998A CN202111679873.6A CN202111679873A CN114371998A CN 114371998 A CN114371998 A CN 114371998A CN 202111679873 A CN202111679873 A CN 202111679873A CN 114371998 A CN114371998 A CN 114371998A
Authority
CN
China
Prior art keywords
function
search
functions
constraint
constraints
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.)
Granted
Application number
CN202111679873.6A
Other languages
English (en)
Other versions
CN114371998B (zh
Inventor
张俊勃
陈戈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN202111679873.6A priority Critical patent/CN114371998B/zh
Publication of CN114371998A publication Critical patent/CN114371998A/zh
Application granted granted Critical
Publication of CN114371998B publication Critical patent/CN114371998B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

本发明提供一种基于考虑约束的并行广度优先搜索的架构测试方法,把该类基于服务的软件的架构测试内容聚焦于业务流程的正确性检验。首先,建立基于服务的软件架构图模型。然后,基于图模型和所设置的约束进行并行广度优先搜索,约束包括对功能的调用约束和对功能本身的约束,对流程集A中的所有元素按照逐步加深原则逐层扩展,当某一深度的功能都扩展完后,才继续展开对下一层深度的功能扩展。在这一搜索方法中,通过设计约束的方式降低搜索出来的无实际用途的业务流程。同时,通过搜索并行化的方式,提高搜索效率。最后,对业务流程进行正确性检测。本发明可以对图模型所能实现的业务流程进行搜索,找出所有业务流程,便于检测流程的正确性。

Description

一种基于考虑约束的并行广度优先搜索的架构测试方法
技术领域
本发明属于软件工程领域,尤其涉及一种基于考虑约束的并行广度优先搜索的架构测试方法。
背景技术
随着工业的不断发展,工业业务变得越来越复杂,许多工业业务仍依靠工人来完成,这对工人的知识水平和过往经验提出了较高的要求。目前,工人已越来越难以应付日益复杂且充满不确定性的业务,因此,一些数字化、智能化工业软件正被广泛研发,为工人提供辅助决策工具。然而,在软件研发过程中,可能会引入软件缺陷,前面环节引入的缺陷,如果等到后续环节才发现,则修正错误的代价将随缺陷发现时间的延后而呈指数增加。一种降低研发成本的可行方法是在完成软件架构设计后,立即对软件架构进行测试,测试的内容一般由具体工业场景特点来决定。
工业领域通常包含大量业务,每一种业务都有具体的业务流程。其中,复杂业务流程通常包含大量分支,针对不同的输入数据,业务会被执行到不同分支上。因此,找出该软件所能实现的所有业务流程,让软件研发者能够看清业务流程的全貌,以此判断该软件是否能处理实际业务、是否存在设计上的缺陷,具有重要意义。看清该软件架构所能实现的所有业务流程,有助于找出软件架构所存在的缺陷。这与软件测试领域中,通过使用大量测试用例来对软件进行测试,并找出软件缺陷的过程有异曲同工之处(C.Sun,Y.Zhao,L.Pan,H.Liu and T.Y.Chen,"Automated Testing of WS-BPEL Service Compositions:AScenario-Oriented Approach,"in IEEE Transactions on Services Computing,vol.11,no.4,pp.616-629,1 July-Aug.2018,doi:10.1109/TSC.2015.2466572.)。然而,目前还鲜有对软件架构所能实现的业务流程进行搜索的方法。
发明内容
为了解决现有技术中存在的问题,本发明提供了一种基于考虑约束的并行广度优先搜索的架构测试方法,可以搜索出软件架构所能实现的所有业务流程,有利于帮助开发者找出软件架构所存在的缺陷,并针对缺陷对架构进行优化。
为了实现本发明目的,本发明提供的一种基于考虑约束的并行广度优先搜索的架构测试方法,所述约束包括对功能的调用设置约束和对功能本身设置的约束,基于所述约束,所述方法包括以下步骤:
S1:建立基于服务的表征业务流程的软件架构图模型,并定义节点功能信息及功能调用信息,基于图模型进行步骤S2~S12的并行广度优先搜索,搜索出业务流程;
S2:启动搜索算法,读取搜索所需要的节点功能信息及功能调用信息;
S3:搜索起始功能,把起始功能添加到流程集A中,同时令搜索的深度为i=1;
S4:依次对流程集A的所有流程进行并行功能扩展,并行功能扩展即为对流程集A中的所有流程并行执行步骤S5~S10,令流程集A的索引k=1,初始化暂存流程集AT
S5:定位到流程集A的第k个流程Ak,开始对流程Ak进行搜索扩展;
S6:定位到流程Ak的第i层深度,假设该层深度有n个功能,读取这n个功能的调用信息,并令n=1;
S7:对Ak的第i层深度的第n个功能进行扩展,搜索出第n个功能及其与其他未扩展功能之间的所有组合情况,这些组合情况构成可能流程,并把这些可能流程添加到AT中;
S8:把第i层深度的第n个功能标为已扩展功能;
S9:若Ak的第i层深度中还有未扩展的功能,则令n=n+1,并返回执行S7;如果没有,则继续执行S10;
S10:若流程集A中还有未被扩展的流程,则令k=k+1,并返回执行S5;如果没有,则继续执行S11;
S11:若AT中还有元素,则执行S12;如果没有,则继续执行S13;
S12:把AT中的元素添加到流程集A中,然后令i=i+1,并返回执行S4;
S13:对搜索出的业务流程进行正确性检测,以优化软件架构。
进一步地,所述对功能的调用设置约束包括限制节点功能的调用约束和限制对同一节点功能的并行调用次数约束。
进一步地,所述限制节点功能的调用约束的获取方法为:根据业务的特点及组织结构,抽象出业务流程中实际存在的调用关系,并把这些调用关系转化为功能间的调用关系,所有所述功能间的调用关系构成了可行调用集合。所述可行调用集合将作为限制节点功能的调用约束。
进一步地,所述限制对同一节点功能的并行调用次数是指,把同一节点功能的并行调用次数限制为1次。
进一步地,所述对功能本身设置的约束包括起始功能约束和可终止功能约束。
进一步地,所述起始功能约束是指将起始功能的数量限制为一个,其中起始功能为业务流程的第一个功能,剔除其他以非起始功能为起点的流程。
进一步地,所述可终止功能是指,既可以通过功能调用的方式继续推进业务,又可以把结果反馈给客户端以结束该流程分支的功能。
进一步地,步骤S1中所述业务流程表示为所述图模型中各节点先后执行功能的过程。
进一步地,步骤S3中所述起始功能是指起始功能约束中设置的起始功能,算法基于该起始功能开始进行搜索。
进一步地,步骤S4中所述并行功能扩展是指,并行对流程集A中的所有元素按照深度逐步加深原则逐层扩展,当某一深度的功能都扩展完后,才继续展开对下一层深度的功能的扩展。
进一步地,步骤S7中所述扩展考虑了限制节点功能的调用约束、限制对同一节点功能的并行调用次数约束和可终止功能约束,且只能依据可行调用集合中的功能调用关系进行扩展。
进一步地,步骤S13中所述正确性检验是指检验搜索出的业务流程是否正确。
与现有技术相比,本发明能够实现的有益效果至少如下:
本发明综合考虑了基于服务的大型复杂工业软件架构测试的特点,提出一种基于考虑约束的并行广度优先搜索的架构测试方法,把该类基于服务的软件的架构测试内容聚焦于业务流程的正确性检验。首先,对该类基于服务的软件进行架构测试建模,把软件架构描述成图模型的形式,图模型中各节点相继执行功能的情况描述成业务流程。然后,采用本发明所涉及的考虑约束的并行广度优先搜索方法,对上述图模型所能实现的业务流程进行搜索,找出所有业务流程。在这一搜索方法中,通过设计约束的方式减少搜索出来的无实际用途的业务流程。同时,通过搜索并行化的方式,提高搜索效率。最后,对业务流程进行正确性检测,找出业务流程中不合理的地方,并进行优化,完成架构测试。
附图说明
图1是本发明实施例中图模型的示意图。
图2是图1中图模型所能实现的一种业务流程示意图。
图3是本发明实施例中限制调用关系的示意图。
图4是本发明实施例中并行执行功能的示意图。
图5是本发明实施例中搜索方法流程示意图。
图6是本发明实施例中110kV线路跳闸后的恢复调度业务处理流程示意图。
图7是图6业务的软件架构图模型示意图。
图8是本发明实施例中搜索方法搜出的其中6张流程图。
图9是本发明实施例中搜索方法搜出的剩余8张流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都是本发明保护的范围。
在使用本发明提供的方法对业务流程进行并行广度优先搜索时,要先根据业务需求,建立基于服务的表征业务流程的软件架构图模型,然后基于图模型对业务流程进行并行广度优先搜索,最后对业务流程进行正确性检测。
下面先对图模型的建立进行介绍。
为适应工业软件功能多、交互复杂等特点,现代工业软件通常会优先考虑交互友好的基于服务的架构,本发明采用图模型的方式来表示基于服务的软件架构。
在图模型中,节点表示服务,边表示服务间的交互关系。为通过图模型搜索出实际的全部业务流程,需要赋予节点和边唯一的标识和相应的属性,使其能反映出实际业务人员工作的特点。具体定义如下:
1)节点。节点包括节点名称和节点功能。节点名称是节点的唯一标识符,节点功能代表实际业务人员可执行的业务。常见的节点功能包括逻辑判断、计算算法、知识推理等。一个节点可以有多个功能,表征实际业务人员可处理多种业务。为便于描述,本发明用唯一标识符fm_l代表第m个节点的第l个功能,用集合Fm表示第m个节点的全部功能集,即Fm={fm_1,fm_2,…}。同时,定义图模型的状态为图模型中各节点正在执行功能的情况。
2)边。边包括边名称和边属性。边名称是边的唯一标识符,边属性用于刻画边的固有特征。在本发明的其中一些实施例中,边具有“方向”属性,用于刻画节点间信息的传递方向,用元组<从节点名称,到节点名称>表示。如果是双向边,则用两个方向相反的元组来表示。
定义好了节点和边后,软件架构可表示成图模型的形式。图1是一个本发明其中一些实施例中的图模型,其中服务层结构包括6个节点和8条边,图中的6个节点都包括节点名称和节点功能,其中节点N1的功能为f1_1、f1_2和f1_3;节点N2的功能为f2_1和f2_2;节点N3的功能为f3_1和f3_2;节点N4的功能为f4_1和f4_2;节点N5的功能为f5_1;节点N6的功能为f6_1和f6_2。图中的8条边都有边名称和“方向”属性,各节点之间的边均为双向边。当然,边的单向和双向是由节点间的交互关系决定,在其他的图模型中所包含的边可以全部是单向边,也可以部分是单向边,部分是双向边。
在上述软件架构的图模型的支撑下,软件按照既定的流程执行顺序,可实现各项业务。业务流程能够表示为图模型中各节点先后执行功能的过程。图2是采用有向无环图表示图1所示软件架构可实现的其中一项业务。该图同样包括节点和边,但与图模型中的节点与边有所不同。为了与图模型中的节点和边区分,本发明称业务流程中的节点为“流程节点”,边为“流程边”。
在对如图2所示的工业业务流程进行抽象后,本发明总结出的一些普遍特征如下:
1)输入。业务流程的输入是启动业务流程的信号,包括客户端传来的启动信号、计算机开机后的自启动信号等。
2)执行过程。业务流程是节点通过调用功能的方式先后执行功能的过程,具有明确的先后顺序,且执行功能后会产生功能信息。在本发明其中一些实施例中,功能调用方式主要有三种:
·一对一调用。功能信息一对一传递到后继节点中。例如,图2中,节点N5完成节点功能f5_1后,直接把功能信息传递到节点N6中,触发其开始执行功能f6_1
·发散调用。功能信息可能会发散式地传递到不同的后继节点,然后多个后继节点分别并行执行节点功能。例如,图2中,节点N1完成节点功能f1_2后,会把功能信息同时传递到节点N3、N4和N5,触发他们分别开始执行功能f3_1、f4_1和f5_1
·汇集调用。功能信息可能会由多个前驱节点共同汇集到一个节点。当节点的功能信息来源有多个时,该节点可能需要等待多个前驱节点的功能信息都到达后,才能开始本节点的功能执行,即其开始执行功能需要满足一定条件。例如,图2中,节点N3、N4和N6执行完功能后,会共同汇集到节点N1中,节点N1会根据逻辑判断是否开始执行功能f1_3
3)结果。业务流程执行完毕后,会把执行结果反馈回客户端,让用户查看相关执行信息。
至此,表征基于服务的软件架构的图模型已经搭建,该图模型运转后将能实现业务流程。然而,该图模型所能实现的业务流程将比实际所需要的业务流程多,其中包含许多无实际用途的业务流程,这将会为软件开发者带来极大不方便。为解决这一问题,本发明通过设置约束的方式,在保证搜索出实际所需要的业务流程的基础上,尽量减少搜索出其他无用业务流程的数量。
目前,图模型会搜索出许多无实际用途的业务流程,这是因为图模型还未设置有效约束,节点与节点间能实现任意交互,即节点间的功能可以进行任意调用。为了给软件开发者提供便利,需要通过设置合理性约束的方式,降低搜索出的无实际用途的业务流程数量。
实际上,业务流程的数量主要和功能调用的情况和功能本身有关,因此本发明主要从功能调用的情况和功能本身这两方面出发来设计约束。
随着业务规模的不断扩展,节点和功能数量会变多,功能对外的可能调用情况也变多。然而,实际工业业务往往存在约束,并不是每个业务人员都与其他业务人员有业务上的交互,因此一个节点的功能并不会无限制地调用其他节点功能。通过对功能的调用设置约束,可以把一些与实际业务不相符的调用情况给剔除掉,在进行业务流程的搜索时实现业务流程的剪枝,减少业务流程的数量。在本发明的其中一些实施例中,对功能调用设置的约束包括限制节点功能的调用和限制对同一节点功能的并行调用次数。
约束1:限制节点功能的调用。
该约束存在于搜索方法步骤S7中。该约束首先需要根据实际业务的特点及组织结构,抽象出业务流程中实际存在的调用关系,这些调用关系构成了可行调用集合。在进行搜索时,只能够对可行调用集合中的调用关系进行扩展,而对于其他调用关系,则不能扩展。
例如,假设现在有四个功能,分别是功能f1_1、f2_1、f3_1和f4_1,如图3所示,且假设实际业务流程中,功能f1_1不可能调用功能f4_1,而只可能调用功能f2_1和f3_1,因此功能f1_1调用功能f4_1的所有情况都应该被剔除。图3右边的可行调用集合中已经给出了功能调用的限制情况。其中,“f1_1→f2_1”表示功能f1_1直接一对一调用功能f2_1,对应于图3的第1种流程;“f1_1→f3_1”表示功能f1_1直接一对一调用功能f3_1,对应于图3的第2种流程;“f1_1→{f2_1,f3_1}”表示功能f1_1发散调用功能f2_1和f3_1,对应于图3的第3种流程。由此可看出,所有功能f1_1调用功能f4_1的情况都已经被限制,搜索方法将不会搜索到这一种调用情况。
约束2:限制对同一节点功能的并行调用次数。
该约束存在于搜索方法步骤S7中。在业务执行过程中,相同的功能可能被并行调用,如图4中左图所示。如果功能fq_b被功能fp_a并行调用n次,则在流程图中将有n条有向边从功能fp_a指向功能fq_b,这将对搜索造成困难,因为并行执行同一流程在工业软件里是比较常见的,如果每一次并行执行都要在图上体现,流程图的复杂度将会提高,软件开发者将难以检查流程所存在的问题,造成测试成本的增加。实际上,每次调用同一功能的过程都是相同,没有必要把n次调用过程都体现在图上。因此可以把对同一节点功能的并行调用次数限制为1次,如图4中右图所示。至于实际功能fq_b被并行执行n次的情况,可以在具体设计功能fq_b的内部业务时解决。
在本发明的其中一些实施例中,对功能本身设置的约束包括起始功能约束和可终止功能约束。
约束3:设置起始功能。
该约束存在于搜索方法步骤S3中。在实际工业软件中,一些功能由客户端触发,这类功能通常是业务流程的起始点,本发明将其称为起始功能。为保证业务信息源头一致,起始功能通常只有一个,使该业务流程的第一个功能被限制为起始功能,其他以非起始功能为起点的流程被剔除,从而减少业务流程的数量,如图2中的功能f1_1为该流程的起始功能。
约束4:设置可终止功能。
该约束存在于搜索方法步骤S7中。考虑到起始功能的输入信息可能不同,使后续业务流程在进行分支选择时可能不同,导致业务流程形成差异。因此,对不同的输入信息,一些功能可能会通过功能调用的方式继续推进业务,也可能会把结果反馈给客户端以结束该流程分支。对于这类既可能继续推进业务,又可能结束业务的功能,本发明称其为可终止功能。可终止功能可以有多个,例如业务开展过程中可能会存在多条业务分支,各业务分支都可以独立结束,如图2中的功能f2_2、f2_3和f3_2为该流程的可终止功能。在设置可终止功能后,如果搜索方法检测到当前功能属于可终止功能,则会停止某一流程的搜索过程。因此,设置可终止功能也可以对业务流程的数量进行限制。
本发明采用广度优先搜索寻找架构图模型所包含的所有业务流程,并且为提升搜索效率,引入并行化技术,在搜索同一深度下所有节点时进行并行扩展。
考虑上面设计的约束后,搜索方法的流程如图5所示。该方法会对流程集A中的所有元素按照深度逐步加深原则逐层扩展,当某一深度的功能都扩展完后,才会继续展开对下一层深度的功能的扩展。另外,为了提高搜索的效率,发挥广度优先搜索方法的优势,步骤S3中引入了并行化技术,实现对流程的并行搜索,即并行对这些流程执行M1内的步骤。
本发明提供的一种基于考虑约束的并行广度优先搜索的架构测试方法,包括以下步骤:
S1:建立基于服务的表征业务流程的软件架构图模型,并定义节点功能信息及功能调用信息,基于图模型进行步骤S2~S12的并行广度优先搜索,搜索出业务流程;
S2:启动搜索算法,读取搜索所需要的节点功能信息及功能调用信息;
S3:搜索起始功能,把起始功能添加到流程集A中,同时令搜索的深度为i=1;
S4:依次对流程集A的所有流程进行并行功能扩展,并行功能扩展即为对流程集A中的所有流程并行执行步骤S5~S10,令流程集A的索引k=1,初始化暂存流程集AT
S5:定位到流程集A的第k个流程Ak,开始对流程Ak进行搜索扩展;
S6:定位到流程Ak的第i层深度,假设该层深度有n个功能,读取这n个功能的调用信息,并令n=1;
S7:对Ak的第i层深度的第n个功能进行扩展,搜索出第n个功能及其与其他未扩展功能之间的所有组合情况,这些组合情况构成可能流程,并把这些可能流程添加到AT中;
S8:把第i层深度的第n个功能标为已扩展功能;
S9:若Ak的第i层深度中还有未扩展的功能,则令n=n+1,并返回执行S7;如果没有,则继续执行S10;
S10:若流程集A中还有未被扩展的流程,则令k=k+1,并返回执行S5;如果没有,则继续执行S11;
S11:若AT中还有元素,则执行S12;如果没有,则继续执行S13;
S12:把AT中的元素添加到流程集A中,然后令i=i+1,并返回执行S4;
S13:对搜索出的业务流程进行正确性检测,以优化软件架构。
此时,该软件架构图模型所能实现的所有业务流程已被找出来,但业务流程是否正确还未知,因此需要对业务流程的正确性进行检验。在本发明的其中一些实施例中,给出一些可能造成软件架构缺陷的判断原则:
1)业务流程缺失。如果有个别流程没有被搜索到,则说明当前软件架构还不能完全满足业务需求,需对软件架构进行修改和完善。
2)业务流程不合理。其中不合理是指一些可能引起潜在软件架构缺陷的地方,例如功能间的调用关系错乱,使功能间的输入输出不匹配,造成软件架构缺陷;功能划分颗粒度过细导致软件集成和管理的难度加大,在集成过程中容易引发软件架构缺陷。
3)节点交互频繁。在基于服务的软件架构图模型中,节点间的交互通常是基于网络的通信。如果节点间的交互过于频繁,则通信的代价可能较大,在服务请求频繁的场景中甚至会出现调用超时的情况,使业务流程的执行被迫中断。
在本发明的其中一些实施例中,以电网恢复调度业务中的一个典型业务为例,分析本发明所提方法对降低软件研发成本的有效性。电网恢复调度软件能实现多种业务的数字化和智能化,这里以110kV线路跳闸后的恢复调度业务处理场景为例来进行详细分析。
如图6所示为该业务处理的流程图。首先,对故障告警信息进行解析、识别与校核,确定发生了110kV线路跳闸故障(M1-M3)。然后,根据现有拓扑信息和实时量测信息进行故障诊断,分析出故障的发生环境及影响程度,例如重合闸的动作情况、故障是否影响到线路下级的变电站、是否造成母线失压等(M4-M10)。最后,针对上述故障诊断信息,进行决策方案生成,旨在迅速恢复失压母线供电,降低故障对电网运行的影响(M11-M29)。
根据图6中的业务处理流程图,得到如图7所示的用于该业务处理的软件架构图模型。该图模型中包含8个服务,以及8条服务间的交互关系,其中8个服务包括:N1为综合业务管理服务、N2为信息监控与管理服务、N3为配电网管理服务、N4为本地变电站管理服务、N5为故障诊断、评估和处理服务、N6为信息记录与管理服务、N7为业务处理服务1、N8为业务处理服务2。对上述流程图进行搜索后,可以搜索出其全部流程,一共搜索出14种流程,这些流程如图8所示。因此,通过本发明所提供的并行广度优先搜索方法能够搜索出软件架构所能实现的所有业务流程,有利于帮助开发者找出软件架构所存在的缺陷。
找出了这些流程后,软件开发者可对流程进行正确性检测,以找出流程中存在的不合理或不正确的地方,并进行优化,例如:
1)多个流程都出现了从f5_1到f5_2的调用,这种调用会造成软件通信代价的提升,因此可以考虑把两功能合并为一个大功能。
2)f7_1和f7_2所在的节点7与f8_1和f8_2所在的节点8存在频繁的交互过程,因此宜考虑把这两个节点的相关功能进行整合。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种基于考虑约束的并行广度优先搜索的架构测试方法,其特征在于,所述约束包括对功能的调用设置约束和对功能本身设置的约束,基于所述约束,所述方法包括以下步骤:
S1:建立基于服务的表征业务流程的软件架构图模型,并定义节点功能信息及功能调用信息,基于图模型进行步骤S2~S12的并行广度优先搜索,搜索出业务流程;
S2:启动搜索算法,读取搜索所需要的节点功能信息及功能调用信息;
S3:搜索起始功能,把起始功能添加到流程集A中,同时令搜索的深度为i=1;
S4:依次对流程集A的所有流程进行并行功能扩展,并行功能扩展即为对流程集A中的所有流程并行执行步骤S5~S10,令流程集A的索引k=1,初始化暂存流程集AT
S5:定位到流程集A的第k个流程Ak,开始对流程Ak进行搜索扩展;
S6:定位到流程Ak的第i层深度,假设该层深度有n个功能,读取这n个功能的调用信息,并令n=1;
S7:对Ak的第i层深度的第n个功能进行扩展,搜索出第n个功能及其与其他未扩展功能之间的所有组合情况,这些组合情况构成可能流程,并把这些可能流程添加到AT中;
S8:把第i层深度的第n个功能标为已扩展功能;
S9:若Ak的第i层深度中还有未扩展的功能,则令n=n+1,并返回执行S7;如果没有,则继续执行S10;
S10:若流程集A中还有未被扩展的流程,则令k=k+1,并返回执行S5;如果没有,则继续执行S11;
S11:若AT中还有元素,则执行S12;如果没有,则继续执行S13;
S12:把AT中的元素添加到流程集A中,然后令i=i+1,并返回执行S4;
S13:对搜索出的业务流程进行正确性检测,以优化软件架构。
2.根据权利要求1所述的一种基于考虑约束的并行广度优先搜索的架构测试方法,其特征在于,所述对功能的调用设置约束包括限制节点功能的调用约束和限制对同一节点功能的并行调用次数约束。
3.根据权利要求2所述的一种基于考虑约束的并行广度优先搜索的架构测试方法,其特征在于,所述限制节点功能的调用约束的获取方法为:根据业务的特点及组织结构,抽象出业务流程中实际存在的调用关系,并把这些调用关系转化为功能间的调用关系,所有所述功能间的调用关系构成了可行调用集合,所述可行调用集合将作为限制节点功能的调用约束。
4.根据权利要求2所述的一种基于考虑约束的并行广度优先搜索的架构测试方法,其特征在于,所述限制对同一节点功能的并行调用次数是指,把同一节点功能的并行调用次数限制为1次。
5.根据权利要求1所述的一种基于考虑约束的并行广度优先搜索的架构测试方法,其特征在于,所述对功能本身设置的约束包括起始功能约束和可终止功能约束。
6.根据权利要求5所述的一种基于考虑约束的并行广度优先搜索的架构测试方法,其特征在于,所述起始功能约束是指将起始功能的数量限制为一个,其中起始功能为业务流程的第一个功能,剔除其他以非起始功能为起点的流程。
7.根据权利要求5所述的一种基于考虑约束的并行广度优先搜索的架构测试方法,其特征在于,所述可终止功能是指,既可以通过功能调用的方式继续推进业务,又可以把结果反馈给客户端以结束该流程分支的功能。
8.根据权利要求1所述的一种基于考虑约束的并行广度优先搜索的架构测试方法,其特征在于,步骤S1中所述业务流程表示为所述图模型中各节点先后执行功能的过程。
9.根据权利要求1所述的一种基于考虑约束的并行广度优先搜索的架构测试方法,其特征在于,步骤S3中所述起始功能是指起始功能约束中设置的起始功能,算法基于该起始功能开始进行搜索。
10.根据权利要求1所述的一种基于考虑约束的并行广度优先搜索的架构测试方法,其特征在于,步骤S4中所述并行功能扩展是指,并行对流程集A中的所有元素按照深度逐步加深原则逐层扩展,当某一深度的功能都扩展完后,才继续展开对下一层深度的功能的扩展。
11.根据权利要求1所述的一种基于考虑约束的并行广度优先搜索的架构测试方法,其特征在于,步骤S7中所述扩展考虑了限制节点功能的调用约束、限制对同一节点功能的并行调用次数约束和可终止功能约束,且只能依据可行调用集合中的功能调用关系进行扩展。
12.根据权利要求1-11任一所述的一种基于考虑约束的并行广度优先搜索的架构测试方法,其特征在于,步骤S13中所述正确性检验是指检验搜索出的业务流程是否正确。
CN202111679873.6A 2021-12-31 2021-12-31 一种基于考虑约束的并行广度优先搜索的架构测试方法 Active CN114371998B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111679873.6A CN114371998B (zh) 2021-12-31 2021-12-31 一种基于考虑约束的并行广度优先搜索的架构测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111679873.6A CN114371998B (zh) 2021-12-31 2021-12-31 一种基于考虑约束的并行广度优先搜索的架构测试方法

Publications (2)

Publication Number Publication Date
CN114371998A true CN114371998A (zh) 2022-04-19
CN114371998B CN114371998B (zh) 2024-06-11

Family

ID=81142029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111679873.6A Active CN114371998B (zh) 2021-12-31 2021-12-31 一种基于考虑约束的并行广度优先搜索的架构测试方法

Country Status (1)

Country Link
CN (1) CN114371998B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116301735A (zh) * 2023-05-19 2023-06-23 华南理工大学 将软件要素组织为软件数据链路的方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130103676A1 (en) * 2011-10-24 2013-04-25 International Business Machines Corporation Semantic analysis driven service creation within a multi-level business process
US20150186457A1 (en) * 2012-06-05 2015-07-02 Hitachi, Ltd. Similar assembly-model structure search system and similar assembly-model structure search method
CN110383340A (zh) * 2016-08-19 2019-10-25 莫维迪厄斯有限公司 使用稀疏体积数据进行路径规划
WO2020047338A1 (en) * 2018-08-29 2020-03-05 Movidius Ltd. Computer vision system
CN112800282A (zh) * 2021-01-15 2021-05-14 厦门大学 一种业务流程异常节点溯源方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130103676A1 (en) * 2011-10-24 2013-04-25 International Business Machines Corporation Semantic analysis driven service creation within a multi-level business process
US20150186457A1 (en) * 2012-06-05 2015-07-02 Hitachi, Ltd. Similar assembly-model structure search system and similar assembly-model structure search method
CN110383340A (zh) * 2016-08-19 2019-10-25 莫维迪厄斯有限公司 使用稀疏体积数据进行路径规划
WO2020047338A1 (en) * 2018-08-29 2020-03-05 Movidius Ltd. Computer vision system
CN112800282A (zh) * 2021-01-15 2021-05-14 厦门大学 一种业务流程异常节点溯源方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘海;张卫民;张瞩熹;贾雄;廖蔚;: "满足原子事务与QoS端对端约束的服务优化选择方法", 通信学报, no. 07, 25 July 2011 (2011-07-25) *
陈明志;许春耀;陈健;余轮;: "基于语义信息的虚拟环境路径规划", 山东大学学报(工学版), no. 04, 16 August 2011 (2011-08-16) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116301735A (zh) * 2023-05-19 2023-06-23 华南理工大学 将软件要素组织为软件数据链路的方法、装置及存储介质
CN116301735B (zh) * 2023-05-19 2023-07-21 华南理工大学 将软件要素组织为软件数据链路的方法、装置及存储介质

Also Published As

Publication number Publication date
CN114371998B (zh) 2024-06-11

Similar Documents

Publication Publication Date Title
Ben-Abdallah et al. Syntactic detection of process divergence and non-local choice in message sequence charts
Best et al. A formal model of atomicity in asynchronous systems
WO2016192583A1 (zh) 数据仓库的数据处理方法及装置
WO2017167062A1 (zh) 一种应用程序接口死锁监控方法和装置
CN104536896A (zh) 面向函数调用路径的回归测试用例选择与排序方法及系统
Dai et al. A choreography analysis approach for microservice composition in cyber-physical-social systems
Huai et al. Towards trustworthy composite service through business process model verification
Pu et al. Theoretical foundations of scope-based compensable flow language for web service
CN113961332A (zh) 一种工作流引擎实现的方法、装置、电子设备及存储介质
CN114371998A (zh) 一种基于考虑约束的并行广度优先搜索的架构测试方法
Lee Fast, centralized detection and resolution of distributed deadlocks in the generalized model
Daszczuk Communication and resource deadlock analysis using IMDS formalism and model checking
CN102087665B (zh) 支持持续查询的自动服务组合方法与系统
CN115061910A (zh) 一种基于pdca循环的半自动化安全性测试方法
Morison On-line dynamic security assessment using intelligent systems
Kumar et al. An efficient heuristic for logical optimization of ETL workflows
Xuandong et al. Timing analysis of UML activity diagrams
CN108734398B (zh) 任务流同步控制方法、装置及存储介质和电子设备
Arora et al. A regression test selection technique by optimizing user stories in an agile environment
CN101650799A (zh) 业务流程间的不匹配交互的发现方法
CN114706558A (zh) 基于K-Truss的复杂软件关键模块识别方法
Boghdady et al. An enhanced technique for generating hybrid coverage test cases using activity diagrams
CN112596887B (zh) 一种针对批量延迟的分析方法及相关装置
Bhargava et al. A causal model for analyzing distributed concurrency control algorithms
Liu et al. An improved test tree generation algorithm from a graphical model

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant