实现流程图自动调整布局的方法及装置的制作方法

文档序号:6585566阅读:624来源:国知局
专利名称:实现流程图自动调整布局的方法及装置的制作方法
技术领域
本发明涉及流程图设计技术,具体涉及一种实现流程图自动调整布局的方法及装置。
背景技术
在软件或项目开发中,通常会借助流程图更清晰、直观地表达设计思想或者业务 实现的完整过程。流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图 框中的文字和符号表示操作的内容,流程线表示操作的先后次序。目前,为了提高绘图效率,现有技术中提供一些绘图工具,利用该绘图工具可以自 动布局,生成相应的流程图。但在实现本发明的过程中发明人发现,对一般结构的流程图自 动布局之后,生成的流程图整体看起来比较清晰,但对于较复杂结构的流程图(比如回路 较多、分支较多),生成的流程图会出现节点位置不当等问题。在这种情况下,通常采用手工调整流程图中图元节点、连接线位置的方式,对生成 的流程图进行布局调整。这不仅会花费大量的时间,而且手工调整会出现误差,从而会影响 流程图整体的整洁与精确度,如经常对不齐,节点和节点之间间距大小不一等现象,特别是 图元比较多的情况下这种现象会更加明显。

发明内容
本发明实施例提供一种实现流程图自动调整布局的方法及装置,以提高流程图布 局的效率,保证流程图整体的整洁与精确度。为此,本发明实施例提供如下技术方案一种实现流程图自动调整布局的方法,包括获取流程图的节点信息;根据所述节点信息确定所述流程图中的各分支的信息;根据所述各分支的信息确定主线;根据所述主线确定所述流程图中的所有分支的最优组合方式;根据确定的最优组合方式调整图元坐标位置。优选地,所述各分支的信息包括节点及对应所述节点的连接信息,所述节点包 括开始节点、中间节点、结束节点;所述根据所述各分支的信息确定主线包括计算各分支中的连接线数;选取连接线数最多的分支作为主线。优选地,所述根据所述各分支的信息确定主线还包括如果预先设置了主线节点,则优先选取所述主线节点所在的分支中连接线数最多 的分支作为主线。优选地,所述根据所述各分支的信息确定主线还包括
检查选取的主线之外的其他分支是否为所述主线的子集;如果是,则将该子集对应的分支作为主线。优选地,所述根据所述主线确定所述流程图中的所有分支的最优组合方式包括对各分支进行全排列组合;分别计算各组合中所有连接线的长度和;选取长度和最小的组合作为最优组合方式。一种实现流程图自动调整布局的装置,包括节点信息获取单元,用于获取流程图的节点信息;分支信息确定单元,用于根据所述节点信息确定所述流程图中的各分支的信息;主线确定单元,用于根据所述各分支的信息确定主线;最优组合方式确定单元,用于根据所述主线确定所述流程图中的所有分支的最优 组合方式;调整单元,用于根据确定的最优组合方式调整图元坐标位置。优选地,所述各分支的信息包括节点及对应所述节点的连接信息,所述节点包 括开始节点、中间节点、结束节点;所述主线确定单元包括计算子单元,用于计算各分支中的连接线数;主线选择子单元,用于选取连接线数最多的分支作为主线。优选地,所述装置还包括主线节点设置单元,用于设置主线节点;所述主线选择子单元,具体用于优先选取所述主线节点所在的分支中连接线数最 多的分支作为主线。优选地,所述主线确定单元还包括检查子单元,用于检查所述主线选择子单元选取的主线之外的其他分支是否为所 述主线的子集,如果是,则通知所述主线选择子单元将该子集对应的分支作为主线。优选地,所述最优组合方式确定单元包括排列子单元,用于对各分支进行全排列组合;长度和计算子单元,用于分别计算各组合中所有连接线的长度和;组合方式选取子单元,用于选取长度和最小的组合作为最优组合方式。本发明实 施例提供的实现流程图自动调整布局的方法及装置,利用流程图的节点信息确定所述流程 图中的各分支的信息,根据所述各分支的信息确定主线,根据所述主线确定所述流程图中 的所有分支的最优组合方式,根据确定的最优组合方式调整图元坐标位置,从而可以有效 地减少流程图设计人员布局方面的工作量,提高流程图布局的效率,保证流程图整体的整 洁与精确度。


图1是本发明实施例实现流程图自动调整布局的方法的流程图;图2是本发明实施例中待调整布局的流程图的一种示意图;图3是图2所示流程图中的各分支示意5
图4是本发明实施例中待调整布局的流程图包含的两个分支示意图;图5是图4所示分支自动调整布局后的流程图的一种示意图;图6是图4所示分支自动调整布局后的流程图的另一种示意图;图7是图2所示流程图调整布局后的效果示意图;图8是本发明实施例实现流程图自动调整布局的装置的一种结构示意图;图9是本发明实施例实现流程图自动调整布局的装置的另一种结构示意图。
具体实施例方式为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施 方式对本发明实施例作进一步的详细说明。本发明实施例实现流程图自动调整布局的方法及装置,针对现有技术中通过手工 调整流程图布局工作量大,效率低,并且有可能影响流程图整体的整洁与精确度的问题,利 用流程图的节点信息确定所述流程图中的各分支的信息,根据所述各分支的信息确定主 线,根据所述主线确定所述流程图中的所有分支的最优组合方式,根据确定的最优组合方 式调整图元坐标位置,从而实现对流程图的自动调整,即自动使流程图的布局达到尽可能 的清晰、直观,为用户展现的数据的流向及内在的业务逻辑关系。如图1所示,是本发明实施例实现流程图自动调整布局的方法的流程图,包括以 下步骤步骤101,获取流程图的节点信息。在本发明实施例中,可以将节点分为三种类型开始节点、结束节点和中间节点。 开始节点表示一个流程的开始,结束节点表示一个流程的结束,对于一个流程图,开始节点 和结束节点都只有一个。中间节点是流程内部的节点,一个中间节点表示流程处理的一个 过程。在实际开发中,根据业务实现的不同,中间节点还可以区分为很多类型,但是这些 类型只与具体的业务实现有关,在流程布局时可忽略这些信息。因此,在此可以不考虑这些 fn息o对于已生成的一个流程图,与各节点有关的信息除了上述节点类型外,还可以获 得各节点的连接信息及位置信息。因此在本发明实施例的具体实现时,可以设定以下数据 结构 节点(Module)-开始节点、结束节点,中间节点-fromLinkList 连接到当前节点的连接列表(ArrayList<Link>)-toLinkList 当前节点连接下一节点的连接列表(ArrayList<Link>)-point 位置(Point) 连接线(Link)-start 父亲节点(Module)-end 下一节点(Module) 位置信息(Point)-x(int)
6
-y(int)在本发明实施例中,所述连接线只需表示节点的连接关系,在实际业务中可能有 多种连接线,但也只是与具体的业务实现有关,在此可以不考虑这些信息。因此,只需建立一种节点模型,从而使本发明实施例可以应用于不同的业务流程, 使其具有较强的移植性和适应性。步骤102,根据所述节点信息确定所述流程图中的各分支的信息。对于一个节点,其包含了类型、连接线、位置等信息,根据这些信息即可确定所述 流程图中的各分支。所述分支是指流程图中从开始节点到结束节点的一条通路,在该通路 中包含开始节点、一个或多个中间节点、结束节点,以及这些节点间的连接线。步骤103,根据所述各分支的信息确定主线。在确定主线时,优选地,可以首先计算各分支中的连接线数,然后选取连接线数最 多的分支作为主线。为了避免自动调整布局后的效果不理想,并便于用户的使用,还可以由用户预先 设置主线节点,使特定节点纳入主线中。在这种情况下,优先选取所述主线节点所在的分支 中连接线数最多的分支作为主线。当然,也可以在计算各分支中的连接线数之前,先检查用户是否设置了主线节点。 如果设置了主线节点,则只需计算该主线节点所在的各分支中的连接线数,从中选取连接 线数最多的分支作为主线;如果未设置主线节点,则计算所有分支中的连接线数,然后选取 连接线数最多的分支作为主线。步骤104,根据所述主线确定所述流程图中的所有分支的最优组合方式。首先,对各分支进行全排列组合,然后,分别计算各组合中所有连接线的长度和, 选取长度和最小的组合作为最优组合方式。步骤105,根据确定的最优组合方式调整图元坐标位置。可见,本发明实施例实现流程图自动调整布局的方法,利用流程图的节点信息确 定所述流程图中的各分支的信息,根据所述各分支的信息确定主线,根据所述主线确定所 述流程图中的所有分支的最优组合方式,根据确定的最优组合方式调整图元坐标位置,从 而实现对流程图的自动调整,即自动使流程图的布局达到尽可能的清晰、直观,为用户展现 的数据的流向及内在的业务逻辑关系。有效地减少流程图设计人员布局方面的工作量,提 高流程图布局的效率,保证流程图整体的整洁与精确度。下面举例进一步详细说明本发明实施例实现流程图自动调整布局的方法对流程 图布局的调整过程。以图2所示流程图为例,将其作为调整前的流程图,其对应三个分支,如图3所示, 分别为分支1、分支2、分支3。在确定主线时,需要计算各分支中所有节点的连接线数,如图3所示对于分支1,其各节点的连接线数如下开始节点1 ;检查1 :4 ;检查2 2 ;节点1 :2 ;结束节点3。因此,分支1的连接线 总数为12。对于分支2,其各节点的连接线数如下开始节点1 ;检查1 :4 ;节点2 2 ;结束节点3。因此,分支2的连接线总数为10。
对于分支3,其各节点的连接线数如下开始节点1 ;检查1 4 ;节点3 2 ;节点4 2 ;节点5 2 ;结束节点3。因此,分支3 的连接线总数为14。比较分支1、分支2、分支3的连接线数可知,分支3的连接线数最多,因此可以选 取分支3作为主线。另外,为了避免自动调整布局后的效果不理想,并便于用户的使用,还可以由用户 预先设置主线节点,使特定节点纳入主线中。在这种情况下,优先选取所述主线节点所在的 分支中连接线数最多的分支作为主线。比如,如果用户设置了节点2作为主线节点,则在确定主线时,优先选择包含节点 2的分支2作为主线,如果包含所述主线节点的分支有多个,则还要计算各分支的连接线 数,从中选取连接线数多的分支作为主线。需要说明的是,在自动确定总线后,可能会出现一种特殊情况,即其中一条分支是 另外一条分支的子集。在这种情况下,为了避免连接线的重叠,在本发明实施例中,在自动 选取主线之后,还需要检查选取的主线之外的其他分支是否为所述主线的子集,如果是,则 将该子集对应的分支作为主线。对比,下面举例进行详细说明。假设待调整布局的流程图中包含的两个分支如图4所示,其中,分支1是分支2的子集。如果根据连接线的计算,选定了分支2作为主线,此时,如果不做上述子集的检 查,则调整布局后的流程图如图5所示。从图5可以看出,有一条连接线穿透节点5,即分支1重叠到了分支2上,这样的布 局不直观,而且容易使人产生错觉。如果进行子集检查,则将分支1作为主线,此时,调整布局后的流程图如图6所示。显然,图6所示布局比图5所示布图更具直观性,可以将图6所示布局作为最佳选 择。下面仍以图2所示流程图为例,说明本发明实施例中根据主线确定流程图中的所 有分支的最优组合方式的过程。在本发明实施例中,最优组合方式的确定可以通过比较各组合中连接线的长短来 确定。如图3所示的三条分支,其全排列组合共有六种情况,分别为1,2,3 ;1,3,2 ;2,1,3 ;2,3,1 ;3,1,2;3,2, lo每种组合可确定一个流程图。因此,计算每种组合中所有单位连接线的长度之和, 具体计算时,可根据各节点的位置信息,即节点在点阵图中的坐标(X,y)来计算。比较这六种组合对应的所有单位连接线的长度之和,选取所述长度之和中最小的 数对应的组合作为最优组合方式。
8
这样,即可根据该最优组合方式,调整图元(即节点、连接线)坐标位置,实现流程 图布局的自动调整,调整后的流程图布局效果如图7所示。可见,本发明实施例实现流程图自动调整布局的方法,无需区分流程图中节点及 连接线的业务类型,具有较强的移植性适应性,可以应用于任何流程图布局。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以 通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中, 所述的存储介质,如ROM/RAM、磁碟、光盘等。相应地,本发明实施例还提供一种实现流程图自动调整布局的装置。如图8所示, 是该装置的一种结构示意图。在该实施例中,所述装置包括节点信息获取单元801,用于获取流程图的节点信息;分支信息确定单元802,用于根据所述节点信息确定所述流程图中的各分支的信 息;主线确定单元803,用于根据所述各分支的信息确定主线;最优组合方式确定单元804,用于根据所述主线确定所述流程图中的所有分支的 最优组合方式;调整单元805,用于根据确定的最优组合方式调整图元坐标位置。在本发明实施例中,所述各分支的信息包括节点及对应所述节点的连接信息,所 述节点包括开始节点、中间节点、结束节点。所述主线确定单元803的一种优选结构包括计算子单元和主线选择子单元(未 图示)。其中,所述计算子单元,用于计算各分支中的连接线数;所述主线选择子单元,用于 选取连接线数最多的分支作为主线。为了避免自动调整布局后的效果不理想,并便于用户的使用,还可以由用户预先 设置主线节点,使特定节点纳入主线中。在这种情况下,优先选取所述主线节点所在的分支 中连接线数最多的分支作为主线。为此,在本发明实施例中,如图9所示,所述装置还可进一步包括主线节点设置 单元806,用于设置主线节点。在这种情况下,如果主线节点设置单元806设置了主线节点,则所述主线确定单 元803在确定主线时,需要将该节点纳入主线,具体地,由所述主线选择子单元优先选取所 述主线节点所在的分支中连接线数最多的分支作为主线。具体过程可参照前面本发明实施 例实现流程图自动调整布局的方法中的描述,在此不再赘述。为了避免连接线的重叠,使流程图的布局更直观,所述主线确定单元还可进一步 包括检查子单元(未图示),用于检查所述主线选择子单元选取的主线之外的其他分支是 否为所述主线的子集,如果是,则通知所述主线选择子单元将该子集对应的分支作为主线。在本发明实施例中,所述最优组合方式确定单元804的一种优选结构包括排列 子单元、长度和计算子单元和组合方式选取子单元(未图示)。其中所述排列子单元,用于对各分支进行全排列组合;所述长度和计算子单元,用于分别计算各组合中所有连接线的长度和;所述组合方式选取子单元,用于选取长度和最小的组合作为最优组合方式。
最优组合方式确定单元804根据主线确定所述流程图中的所有分支的最优组合 方式的详细过程可参照前面本发明实施例实现流程图自动调整布局的方法中的描述,在此 不再赘述。本发明实施例提供的实现流程图自动调整布局的装置,利用流程图的节点信息确 定所述流程图中的各分支的信息,根据所述各分支的信息确定主线,根据所述主线确定所 述流程图中的所有分支的最优组合方式,根据确定的最优组合方式调整图元坐标位置,从 而实现对流程图的自动调整,即自动使流程图的布局达到尽可能的清晰、直观,为用户展现 的数据的流向及内在的业务逻辑关系。有效地减少流程图设计人员布局方面的工作量,提 高流程图布局的效率,保证流程图整体的整洁与精确度。由于无需区分流程图中节点及连 接线的业务类型,具有较强的移植性适应性,可以应用于任何流程图布局。以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式
对本发明进行 了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的 一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所 述,本说明书内容不应理解为对本发明的限制。
权利要求
一种实现流程图自动调整布局的方法,其特征在于,包括获取流程图的节点信息;根据所述节点信息确定所述流程图中的各分支的信息;根据所述各分支的信息确定主线;根据所述主线确定所述流程图中的所有分支的最优组合方式;根据确定的最优组合方式调整图元坐标位置。
2.根据权利要求1所述的方法,其特征在于,所述各分支的信息包括节点及对应所述 节点的连接信息,所述节点包括开始节点、中间节点、结束节点;所述根据所述各分支的信息确定主线包括 计算各分支中的连接线数; 选取连接线数最多的分支作为主线。
3.根据权利要求2所述的方法,其特征在于,所述根据所述各分支的信息确定主线还 包括如果预先设置了主线节点,则优先选取所述主线节点所在的分支中连接线数最多的分 支作为主线。
4.根据权利要求2或3所述的方法,其特征在于,所述根据所述各分支的信息确定主线 还包括检查选取的主线之外的其他分支是否为所述主线的子集; 如果是,则将该子集对应的分支作为主线。
5.根据权利要求1所述的方法,其特征在于,所述根据所述主线确定所述流程图中的 所有分支的最优组合方式包括对各分支进行全排列组合;分别计算各组合中所有连接线的长度和;选取长度和最小的组合作为最优组合方式。
6.一种实现流程图自动调整布局的装置,其特征在于,包括 节点信息获取单元,用于获取流程图的节点信息;分支信息确定单元,用于根据所述节点信息确定所述流程图中的各分支的信息; 主线确定单元,用于根据所述各分支的信息确定主线;最优组合方式确定单元,用于根据所述主线确定所述流程图中的所有分支的最优组合 方式;调整单元,用于根据确定的最优组合方式调整图元坐标位置。
7.根据权利要求6所述的装置,其特征在于,所述各分支的信息包括节点及对应所述 节点的连接信息,所述节点包括开始节点、中间节点、结束节点;所述主线确定单元包括计算子单元,用于计算各分支中的连接线数;主线选择子单元,用于选取连接线数最多的分支作为主线。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括 主线节点设置单元,用于设置主线节点;所述主线选择子单元,具体用于优先选取所述主线节点所在的分支中连接线数最多的分支作为主线。
9.根据权利要求7或8所述的装置,其特征在于,所述主线确定单元还包括检查子单元,用于检查所述主线选择子单元选取的主线之外的其他分支是否为所述主 线的子集,如果是,则通知所述主线选择子单元将该子集对应的分支作为主线。
10.根据权利要求6所述的装置,其特征在于,所述最优组合方式确定单元包括 排列子单元,用于对各分支进行全排列组合;长度和计算子单元,用于分别计算各组合中所有连接线的长度和; 组合方式选取子单元,用于选取长度和最小的组合作为最优组合方式。
全文摘要
本发明涉及流程图设计技术,公开了一种实现流程图自动调整布局的方法及装置,所述方法包括获取流程图的节点信息;根据所述节点信息确定所述流程图中的各分支的信息;根据所述各分支的信息确定主线;根据所述主线确定所述流程图中的所有分支的最优组合方式;根据确定的最优组合方式调整图元坐标位置。利用本发明,可以提高流程图布局的效率,保证流程图整体的整洁与精确度。
文档编号G06F9/44GK101876900SQ20091024600
公开日2010年11月3日 申请日期2009年11月24日 优先权日2009年11月24日
发明者竹一峰, 罗果 申请人:恒生电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1