软件的图形比较显示器的制作方法

文档序号:6438980阅读:207来源:国知局
专利名称:软件的图形比较显示器的制作方法
技术领域
本发明涉及一种用于显示出软件中的区别的方法。该软件在此特别涉及一种软件程序,其用于控制和/或调节工业过程和/或工业机器。该过程例如是化学过程、逻辑过程等等。机器例如是机床、生产用机床、铸造机床、压床、印刷机、木加工机床等等。
背景技术
用户为其应用而在可编程控制器和Motion-Control-System(运动控制器)中对固有的程序进行编程。这些程序加载到目标装置上并且在那里运行。在机器的使用寿命期间、也或者例如在开始使用机器期间,例如可以通过过程改变也引起在用于目标装置(例如整流器、可编程控制器(SPS)、主机)的程序中的改变。由此可以为相应的目标装置产生多个程序版本。因此必须一方面根据相互间的改变来对程序(即软件)进行比较(离线-离线-比较),以及可以在存储的规划状态和目标装置之间(在线-离线-比较)确定区别。例如Motion-Control-System是已知的,其中为用户提供了编程语言或编程方法的至少一个下列提到的实例。这详细地例如是 结构性文本(文本的高级语言编程) 梯形图(图形的连接逻辑) 功能图(图形的连接逻辑) 过程图、特别是Motion-Control-Chart MCC (图形的流程图编程)对于比较文本语目(特别是闻级语目)、例如C、C++、Pascal、Fortran等等而目, 比较功能性可以通过比较编程文本得出。在图形的编程语言、特别是在图形的流程图编程中无法使用比较功能。

发明内容
本发明的目的在于,在图形的编程语言中、特别是在图形的流程图编程中提供比较功能。该目的例如通过一种根据权利要求I所述的用于比较图形程序的方法来实现。其它实施方式根据依据从属权利要求2至10所述的特征得出。图形程序在此理解为软件程序,其借助于图形元素显示和/或编程。对此的实例是图形的流程图编程、梯形图(KOP)或功能图(FUP)。在这样的用于比较程序(在此可以涉及全部程序也或者设计部分程序)的方法中,将第一对象模型和第二对象模型进行比较,其中例如生成第一差别对象模型。第一差别对象模型基于第一对象模型显示出在第一对象模型和第二对象模型之间的区别(如果其存在的话)。有利地,也显示出第二差别对象模型,其基于第二对象模型显示出在第二对象模型和第一对象模型之间的区别(如果存在至少一个区别的话)。对象模型例如理解为梯形图、功能图或流程图。对象模型因此相应地可以在以下表示图形的程序。
3
借助于过程图可以对程序过程进行编程和/或显示。特别是自动化技术中的程序因此可以以简单的方式借助于图形的元素进行图形的编程。可以运行这样编程的自动化装置的实施例是 可编程控制器(SPS),·(特别是用于调节和/或控制运动过程的)运动控制器,籲整流器,·(例如用于印刷机的)主机,例如用于流水线、钢厂、机床、包装机、玻璃成型机
坐坐寸寸ο程序可以在这样的装置上运行,并且例如借助于工程系统在图形基础上编程。机床的应用程序(特别是用于机床的子程序)然后可以例如用在机床的运行时间系统上。过程图是程序过程图(PAP),其也可以称为流程图(flowchart)或程序结构图。借助于图形的显示可以实现计算机程序中的算法(Algorithmus)的转换。计算机程序在其它意义上是这种程序,其如上面已说明地例如在处理器上在工业设备中的控制装置(例如可编程控制器(SPS))或调节装置(例如运动控制器)上运行。通过图形显示可以以直观的方式描述用于实现一个目的的一系列操作。用于程序过程图中的元素的可能的符号例如在DIN 66001中进行了描述。在此也将用于数据流程图的符号限定为其它类型的过程图。程序过程图也可以和计算机程序无关地用于显示过程和活动。过程图的另一个实施例是Nassi-Shneiderman图(结构图)。在通过UML反映面向对象的程序构思时,应用扩展的过程图。由ISO 5807信息处理系统已知了用于过程图的符号和协议。作为过程图示出的程序是对象模型,其特别借助于图形的编程界面说明,即已经在过程图的意义上存在。也可能的是,程序生成为文本形式,以便因此在过程图中以图形示出。在KOP(梯形图)或FUP(功能图)中说明的程序可以在过程图中被说明。这样的程序被翻译成机器语言。过程图的元素例如可以是说明了确定的功能的椭圆形、矩形、菱形等等。根据DIN 66001例如通过椭圆形说明了开始点、停止点或边界点。箭头和直线说明了到接下来的元素的连接。矩形说明了操作,其中具有两条垂直直线的矩形显示出对子程序的调用。借助于菱形说明了分支,由此用符号表示真实性判断。输入和输出例如可以显示为并行程序。除了开始-元素、停止-元素、边界点-元素、运行-元素、用于调用或处理一个或多个子程序的元素、分支-元素、输入-元素或输出-元素以外,也还可以在过程图中实现其它的元素。对于自动化系统的用户、例如操作者或程序员重要的是,对程序的过程在图形上可以容易地识别和/或编程。对于用户也重要的是,可以识别或分析程序例如相对于程序的旧版本状态的改变。自动化系统例如具有这种装置,其用于参数化、规划和/或启动控制系统和/或用于利用图形编辑器完成优选为循环形式的控制程序,该编辑器用于对控制程序进行编辑。 为此可以使用工程操作系统。该工程操作系统可以例如执行对对象模型的比较。对此可替换地或附加地,也可以使用运行时间系统用于比较对象模型。在对象模型之间的区别可通过不同的图形方式来显示。元素的和元素之间的连接的图形的外观例如可以通过一个或多个以下的方式进行改变 在元素中改变颜色; 在元素中改变线条粗细; 在元素中改变灰度; 在元素中改变标记; 在元素中改变颜色饱和度; 使元素闪烁; 等等。通过以图形为基础来比较程序,其中将第一对象模型(特别是第一过程图)和第二对象模型(特别是第二过程图)进行比较,实现了在图形上简单地详细比较流程图编程的元素。因此也有可能相互比较图形的连接逻辑。在用于比较图形的程序的方法的一个实施方式中,将第一对象模型和第二对象模型进行比较,其中生成了第一和第二差别对象模型。该差别对象模型显示出第一对象模型或第二对象模型分别和相应的另一个对象模型有何不同。在本方法的一个实施方式中,将第一对象模型和第二对象模型组合成总模型以用于进行比较。该总模型(总对象模型)可以(然而不是必需的)为用户显示出。将至少一个对象模型和总模型进行比较,其中在总模型和至少一个对象模型之间的区别显示在相应的差别对象模型中。在第一差别对象模型中显示出在总模型和第一对象模型之间的区别。 在第二差别对象模型中显示出在总模型和第二对象模型之间的区别。在本方法的一个实施方式中,将第一对象模型和总模型进行比较。在第一差别对象模型中显示出第一对象模型和相对于总模型的区别。也将第二对象模型和总模型进行比较,并且在第二差别对象模型中显示出第二对象模型和相对于总模型的区别。在此特别以颜色来强调区别,其中有利地同时并排在屏幕上显示出第一差别对象模型和第二差别对象模型。在本方法的一个实施方式中,这样对差别对象模型进行对比,即第一和第二对象模型的相同的或类似的元素在相同高度上垂直或水平地显示在两个差别对象模型中。这使得模型的比较特别简单。有利地并不强调和相应的输出-对象模型没有区别的差别对象模型的元素。在本方法的一个实施方式中,在差别对象模型中显示出在第一对象模型和第二对象模型之间的相似性。在本发明的一个实施方式中,在第一差别对象模型和/或在第二差别对象模型中显示出或标记出缺少的元素和/或附加的元素。在本方法的一个实施方式中,差别对象模型显示出下列在对象模型之间的至少一个区别:
附加的元素,
缺少的元素,
附加的联系,
缺少的联系,
籲元素的相同的参数化,
籲元素的不同的参数化,和/或
元素的不同的版本状态。在本方法的一个实施方式中,将第一对象模型和第二对象模型这样进行比较,即由第一对象模型生成第一 XML数据,由第二对象模型生成第二 XML数据,并且这样处理XML 数据,即借助于被处理的数据生成第一差别对象模型和第二差别对象模型。也借助于XML数据可以产生用于总模型的表现形式,其中然后将总模型的该XML 数据和对象模型的XML数据进行比较并且由此再次产生差别对象模型的图形的显示。如果用户希望对图形的程序例如梯形图(KOP)和/或功能图(FUP)进行比较,那么可以为此确定至少一个用于程序的特征值,其用于进行比较。这允许用户将图形的、在连接逻辑中进行编程的程序相互迅速地并且以较小的计算投入进行比较。在此可以一方面向用户示出编程中的结构区别以及也示出参数化中的区别。在比较中,特别是将起点(K0P或 FUP)进行对比并且例如彩色地显示出区别。在用于图形的程序KOP或FUP的比较方法中, 确定用于第一程序的第一特征值并且确定用于第二程序的第二特征值。可以然后将第一程序的第一特征值和第二程序的第二特征值进行比较。程序在此例如涉及一个完整的程序也或者是一部分。在KOP逻辑中和FUP逻辑中的程序有利地可以交错执行。两个程序类型 (Κ0Ρ和FUP)以图形的编程界面为基础、或者以程序的图形的显示方式为基础,因此这样的程序也可以称为对象模型。在功能图中显示出功能块,其可以相互连接,其中块表示了连接成编程的模型的对象。在梯形图中图形地显示出构成网络并且在其连接中也形成了编程的模型的梯形块。这同样适用于功能图。在一个实施方式中可以由不同的对象模型、第一对象模型和第二对象模型中再次这样生成比较,即生成第一差别对象模型和第二差别对象模型,其中这在“合并”的总对象模型的基础上实现。KOP和FUP说明了在连接逻辑中用于编程的实例。通过形成用于相应的程序的特征值可以简单并且迅速地识别并且图形地示出区别。通过应用特征值,不必再比较一个程序的全部细节来识别是否存在区别。借助于用于程序或用于程序的特定特征的特征值,可以更快地识别两个或多个程序的预定的特征是否不同。在本方法的一个实施方式中,将散列值用作为特征值。散列、即散列值(杂散值) 以Hash函数(杂散值函数)为基础,该函数的结果就是散列值。不同的散列函数、例如加密的散列函数作为散列函数的特殊形式,其具有单向函数的特别的特性。散列函数是这样一种函数,其可以根据具有确定长度的字符串构成任意长度的字符串。目标量因此小于经过散列计算的源数据的输出量。不同的源数据引起不同的散列值。由于可以几乎明确地表明较大的数据量,因此散列值是一种指纹形式。散列函数例如在其输入值的限定量方面、在可能的输出值的目标量方面不同,并且在样本和不同输入值的相似性对输出值的影响方面不同,因此也可以由散列函数的不同输出值推导出区别的类型。由于散列值在实际中比原本的数据结构短,因此可能在一些情况下有所抵触,因此可以有利地提供用于抵触识别的方法。如果散列值足够大,则可以避免抵触。借助于生成的散列值可以识别在程序之间的区别。有利地以指定的形式实现区别的可视化。有利地识别了以下区别中的至少一个 在第一程序中的元素/结构比在第二程序中多; 在第二程序中的元素/结构比在第一程序中多;
·在两个程序中存在相同的指令,但被不同地参数化。这样发现的区别例如可以直接在显示系统中进行比较,利用该显示系统也显示出这些区别。在用于比较程序的方法的一个实施方式中,特征值并非由总程序或部分程序的数据构成(这也是有可能的),而是由对应于至少一个预定功能的程序的数据构成。该特征值可以由一个程序(特别是两个需要进行比较的程序)的以下功能数据中的至少一个确定 相应的程序的连接数据(关于功能块的或联系的连接的数据) 相应的程序的变量数据(关于功能块的或联系的变量的数据) 相应的程序的注释数据(关于对功能块或联系的注释的数据);和/或 相应的程序的声明数据(特别是声明表)。因此可以例如构成连接散列也或者是变量散列。在用于比较至少两个程序的方法的一个实施方式中,对于连接逻辑的每个网络分别设置用于结构信息(其涉及连接数据)的第一散列以及用于参数化的第二散列。在进行比较时,现在首先将网络的程序部分的散列相互比较。在结构散列之间不同时进行另一个在程序结构方面的检查。在参数散列之间不同时进行参数化的比较。在这种至少两级的方案的两种方法中实现了特别通过一个在启发式的特征码中的Fuzzy逻辑部分来考虑对于比较功能性进行详细检查。这种启发式的检查通过不同的路径实现,其中为每个路径提供了相应的结果数。最高的结果数相应于具有最大相等可能性的路径。然后对于可视化的准备考虑具有最高结果数的路径。在图形的准备中然后通过彩色的特征标记为用户显示出网络中的区别。借助于散列值得出对于程序、特别是工业自动化技术中的程序的多级比较方法。这个过程在比较利用编程语言K0P/FUP生成的程序时可以如下多级地进行,其中也可以在至少三层中进行用于详细比较的运算 网络层(最高层)散列码(散列值)分别设计用于网络的参数化和结构。在比较两个程序时,首先将结构散列和参数散列相互比较。由此然后决定必须怎样执行详细比较的其它级别。如果程序的各个散列相同,则两个网络也相同并且该网络标记为相同的。如果两个散列中的任一个不同,则被较深地分支到细节比较中。该比较基于单个元素的启发值来实现,这些值然后为单个元素提供详细的比较结果。 模块层(中间层)此外在不相同时在两个散列中任一个中对在网络中应用的模块进行检查。如果应用的模块在网络中具有相同性或不同性,则相应地考虑和存储启发式的参数用于结果评估。在模块层上的相同性的真值通过特别加权的平均计算由引脚层的真值导出。该分量被启发式地调整,并且可能随后准确确定地相应于一致程度实现在引脚层上的其它检测。 引脚层(最低层)在引脚层上对于引脚对使用简单的算法并且用于确定引脚的相同性的真值。该算法取决于模块的类型。如果两个散列不相同,则两个网络如已经说明的那样并非自动地不相同。因此例如在网络层和模块层上例如将改变的LCS算法(Longest Common Subsequence最长公共子序列)和fuzzy逻辑组合。对于是否“A等于B”的描述,该算法代替是/否的描述为元素分派所谓的真值。这种真值可以设定为O和I之间的任意值。因此描述可以具有不同大小的真实度。真实度越高,则比较结构就更可能相同。LCS算法的目的是在两个层上确定不相交的“ (A,B) ”元素对的量,其中该真值的总数最大。相应地存储了结果以用于显示。在本方法的另一个实施方式中,附加的下极限值被提供给较高的两个层上的对。 可能的、其中相同性的真值低于下极限值的元素对被排除。低极限值被启发式地确定。比较哈希值的确定的区别或结果可以借助于不同的方法示出。借助于算法例如可以如下表示 在网络层上在每个网络对中生成网络对(左/右)的列表和相同性的真值。将其中相同性的真值小于下极限值的网络对排除。如果网络位于该网络对列表中,则将网络结对。 在模块层上为上述列表的每个网络对生成模块对的列表,并且在每个模块对中生成相同性的真值。将其中相同性的真值小于下极限值的模块对排除。如果模块的网络结对,并且如果该模块位于属于该网络对的模块列表中,则将该模块结对。 在引脚层上为上述模块列表的每个模块对生成引脚对的列表。将具有连接的引脚的引脚对从该列表中排除。如果引脚的模块结对,并且如果该引脚位于属于该模块对的引脚列表中,则将引脚结对。两个需要比较的程序可以在编辑器中通过至少一个下列描述变体并排地显示 两个程序的网络并排地显示,第一程序在显示区域的左侧上,第二程序在显示区域的右侧上; 如果左侧上的网络并未结对,那么在右侧上插入相应大小的间隙;在此情况下没有彩色标记;在右边的程序中没有网络; 如果右侧上的网络并未结对,那么在左侧上插入相应大小的间隙;在此情况下没有彩色标记;在左边的程序中没有网络; 如果网络结对,那么在左边和右边显示出两个网络,并且如下地显示出存在的区别-如果网络名称不同,则将网络名称彩色地存储在两侧上;-如果网络注释不同,则将网络注释彩色地存储在两侧上;-未结对的模块被彩色地存储在网络中(包括其引脚、标题或步骤名称);-在结对的模块中,如下地显示出存在的区别■如果标题或步骤名称不同,则将这些信息彩色地存储在两侧上;■未结对的、不连接的引脚被彩色地存储(例如仅仅是值区域); 在其中一侧上选择结对的模块或结对的引脚,因此选择的模块/引脚的对被自动选择;这同样也适用多次选择。以这种显示方式可以特别通过元素的彩色标记为用户清楚地识别出网络中的区别。相同的元素例如并不利用颜色存储,其中因此也可以为用户辨别出程序中的变化程度。在本方法的一个实施方式中,以真值的特征值为基础进行确定,其中真值特别借助于Fuzzi逻辑来确定,其中该真值也被有利地显示出。由此可以识别显示出的区别是否可能是不真实的。然后用户取决于真值例如可以将程序中的一个转换到另一个程序中。


以下根据附图示例性地说明并阐述了本发明。图中示出图I是用于比较对象模型的第一方法;图2是用于比较对象模型的第二方法;图3是第一对象模型;图4是第二对象模型;图5是对两个差别对象模型的第一比较图6是对两个差别对象模型的第二比较图7是对两个差别对象模型的第三比较图8是用于功能图的比较;图9是用于梯形图的比较;图10是根据图9的网络的详细描述;和图11是有关于功能元素的区别的详细描述。
具体实施例方式根据图I的附图示出了用于比较对象模型的第一方法。示出的是第一对象模型 I和第二对象模型2。两个对象模型代表了程序图,即以图形为基础的软件程序,特别是 Motion-Control-Chart (运动控制图)MCC。对象模型I和2在继续的处理步骤4中借助于 MCC差别形成进行相互比较,并且合并在总模型(对象模型I加2的总对象模型)3中。这样生成的总对象模型3用于借助于MCC图形引擎5以第一对象模型I为基础生成第一差别对象模型11并且以第二对象模型2为基础生成第二差别对象模型12。借助于引擎5也可以生成总对象模型的描述13。观察者或用户20可以在图形单元(屏幕)上观察差别对象模型11和12以及总对象模型13。对于用户20也可能的是,通过校正功能8补偿在对象模型之间的区别。因此例如可以借助于来自总对象模型3中的信息改变第一对象模型I。该改变可以引起对对象模型I和2进行部分的或完全的补偿。根据图2的描述示出了用于比较对象模型的另一种方法。示出的有第一对象模型I和第二对象模型2。两个对象模型代表了程序图,即以图形为基础的软件程序,特别是 Motion-Control-Chart MCC0两个对象模型I和2在处理步骤25中被装入XML (可扩展标记语言)-Export (输出)中。在XML-Export 25之后,存在基于XML的对象模型21和22。 第一和第二基于XML的对象模型I和2借助于差别形成的类型(识别区别)在另一个处理步骤24中相互进行比较,并且合并在基于XML的总模型(基于XML的对象模型I加2的基于XML的总对象模型)23中。基于XML的总模型23可以在另一个处理步骤26中和对象模型I和2 —起合并成总模型3。这样生成的总对象模型3用于借助于MCC图形引擎5以第一对象模型I为基础生成第一差别对象模型11和以第二对象模型2为基础生成第二差别对象模型12。借助于引擎5也可以生成总对象模型的描述13。这是可选的并且因此在图I 和图2中以虚线示出。观察者或用户20可以在图形单元(屏幕)上观察到差别对象模型11和12以及总对象模型13。对于用户20也可能的是,通过校正功能8补偿对象模型之间的区别。因此例如可以借助于来自总对象模型3中的信息改变第一对象模型I。该改变可以引起对对象模型I和2进行部分的或完全的补偿。借助于上述方法中任一种,可以将以图形的流程图为基础存在的程序仅仅作为图形进行比较或者显示相对于其它程序的区别。由用于图形的数据经过生成过程形成固有的可进行的程序(机器程序),其中直至没有可能时不提供该生成过程,经过逆向的过程将数据再次转变为图形。以所说明的方法为基础,现在存在将需要比较的流程图以图形的信息为基础进行比较的可能性。为了进行比较,例如由用于图形的数据生成图形的简化的说明形式。该简化的说明形式例如没有关于过程图的元素怎样翻译成机器语言的数据。该简化的说明形式特别为两个对象模型而生成,其中对象模型是用于比较的过程图。此外,图形的两个简化的说明形式被组合。该组合的说明形式现在再次以第一简化的说明形式和第二简化的说明形式进行比较,并且由此确定出区别。根据该结果现在可以再次由简化的说明和区别产生具有区别的源程序的图形,这就是差别对象模型11和12。因此可以彩色地标记出这些区别,即用户可以直接识别出新添加的、改变的或删除的元素。因此得出了用于比较图形的流程图并且用于直接在图形的程序中显示区别的方法。可以以适合的并且因此制定的形式实现对象模型的区别的可视化。例如可以显示出下列区别 在第一程序中存在比第二程序中更多的元素/结构, 在第二程序中存在比第一程序中更多的元素/结构,和/或 在两个程序中存在相同的指令,但被不同地参数化。可以可选地也或者直接低对发现的区别进行调整。该方法为用户20提供的可能性是,将两个程序相互比较,并且根据区别类型以相应的颜色标记给区别着色。此外提出, 相应地比较所发现的区别。根据图3的描述示出了具有元素31至50的第一对象模型1,它们相应于根据图3 的描述被彼此连接。根据图4的描述示出了具有元素31至36,39,40,42,45至47和50至59的第二对象模型2,它们相应于根据图4的描述被彼此连接。根据图5的描述示出了具有元素31至50和60的第一差别对象模型11,它们相应于根据图5的描述被彼此连接。此外根据图5的描述示出了具有元素31至36,39,40,42, 45至47,50至59和61的第二差别对象模型12,它们相应于根据图5的描述被彼此连接。 第一差别对象模型11以在图3中示出的对象模型I为基础。第二差别对象模型12以在图 4中示出的第二对象模型2为基础。在第一差别对象模型11中对元素进行标记,通过这些元素来将第一对象模型I和第二对象模型2区别开。因此第一对象模型I是第一差别对象模型11的基础。由于第一对象模型I的元素36,37,41,43,44,48和49并不出现在第二对象模型2中,因此对这些元素进行标记。例如通过如在图5中示出的那样将相应的元素以灰色阴影进行标记。未示出的但有可能的是,被彩色标记的元素36,37,41,43,44,48和49 例如是蓝色。可以以相同的方式在第二差别对象模型12中进行标记或者也以其它方式、例如以橙色进行标记。在差别对象模型11和12中的相同的元素并不被标记。这涉及了元素 31至35,38至40,42,45至47和50。差别对象模型11具有附加的元素60,其也通过灰色阴影进行标记并且例如说明了,元素32的参数在对象模型I和2之间的比较中是不同的。在第二差别对象模型12中对元素进行标记,通过这些元素来将第二对象模型2和第一对象模型I区别开。因此第二对象模型2是第二差别对象模型12的基础。通过在第二差别对象模型12中画上灰色阴影的元素51至53,50,54,56,57,58和59,将第二对象模型2和第一对象模型I区别开。差别对象模型12具有附加的元素61,其也通过灰色阴影进行标记并且例如说明了,元素32的参数在对象模型2和I之间的比较中是不同的。如在图5中明显示出地,第一和第二差别对象模型11和12可以这样并排被示出, 即相同的元素(31至35,38至40,42,45至47和50)位于相同高度上。在图5中选择了垂直比较的描述。这通过箭头62表示。在根据图5的描述变体中,在对象模型中缺少的元素并未在以该缺少此元素的对象模型为基础的差别对象模型中示出。在一个也可能的描述变体中,缺少的元素也可以例如借助于缺少的元素的半透明的图示被示出。根据图6的描述示出了两个差别对象模型11和12的第二比较。相同的元素65 在不同的差别对象模型11和12中具有共同的图示。不同的元素66在第一差别对象模型 11中具有区别于共同的元素65的标记。不同的元素67在第二差别对象模型12中具有区别于共同的元素65的标记。根据图7的描述示出了两个差别对象模型11和12的第三比较。相同的元素65 再次在不同的差别对象模型11和12中具有共同的图示。不同的元素66在第一差别对象模型11中具有区别于共同的元素65的标记。不同的元素67在第二差别对象模型12中具有区别于共同的元素65的标记。不同的元素67具有不同的参数化过程。作为第二差别对象模型12的基础的对象模型具有的元素不位于作为第一差别对象模型11的基础的对象模型中。元素68在第一差别对象模型11中尤其通过空白框被特别标记。在Motion-Control-Charts中因此可以设计相同类型的比较,这也如由图3至7 表明地那样。这意味着,将程序(对象模型)进行对照并且将区别例如以彩色着色。此外在两侧相应地调整图形,因此在相同高度上示出相同或类型相同的元素(有区别的元素)。 在对程序中的指令进行标记时,在一个程序中缺少的元素例如以蓝框在另一个程序的相对侧上被标出。因此用户可以看出在程序中的什么地方没有该指令。有利地可以接收单个元素,也或者一次性接收全部区别。由于在指令框(说明一个元素类型)内部同样可能存在区别,因此有利地在MCC中也还附加地对各个指令框进行详细地比较。在缺少元素时,该比较能够确定图中缺少的元素,并且然后使得图形相应地扩展。因此元素始终位于同一平面内。由此可以为用户清楚地示出,结构是相似的,但是在相应的位置上缺少元素。为了进行说明,用户可以标记出额外的元素,并且在图中缺少该元素的位置上例如再次获得蓝框。在元素类型相同、然而这些元素并不相同时,将元素进行对照。通过着色来告知用户,尽管指令类似,但存在参数化中的区别。参数化中的区别例如可以通过调用(双击)细节掩码来进行调用。这种比较的方法也可以用于流程图的其它图形的描述。在比较中通过该方法应用了图形的描述的推导。此外为了确定额外的或缺少的元素而将两个图形的表现形式组合。由两个图得到的该结果然后用于描述扩展的图形。通过相对于组合的表现形式确定在各个图中存在的元素,然后在有区别时相应地给各个图中的元素着色,并且排除并不存在的元素。然而在此保持图形的扩展。在各个图的图形描述中的结果是对两个具有相应的区别的图的同步说明。通过在例如标记的指令框(元素)上双击,可以有利地打开对话窗口。在对话窗口中示出了关于元素的详细信息,其中也在此对区别进行标记、特别是着色。此外用户例如可以附加地获知在指令中的赋值。如果这时有区别,则也彩色地表明该区别。这用于帮助用户判定是否有必要接收指令。根据图8的描述示出了用于第一程序11的功能图和用于第二程序12的功能图, 其中已经分别对区别进行标记。程序11和12因此描述为差别对象模型11和12。相同的元素65在不同的差别对象模型11和12中具有共同的图示。不同的元素66在第一差别对象模型11中具有区别于共同的元素65的标记。不同的元素67在第二差别对象模型12中具有区别于共同的元素65的标记。利用标记60和61示出了变体中的区别。在结果中示出了对两个程序的比较。参考程序例如在图示中在左侧示出。进行比较的程序在右侧示出。 彼此适合的网络被进行对照并且位于同一层内。此外对网络中的区别例如彩色地着色,然而这在图中未示出。确定为相同的元素保持其正常的图示。在实例中此外示出,通过新的比较算法也可以对非全部输入的程序相互比较。根据图9的描述示出了对两个作为梯形图示出的程序的比较。示出的是第一梯形图71和第二梯形图72。为了比较这些程序来源而将梯形图71和72进行对照。可以对区别彩色地着色,其中在图9中仅仅示出了灰色阴影。在图71中的区别例如可以表现为蓝色或以左斜阴影线示出。在图72中的区别例如可以表现为橙色或者说黄色或以右斜阴影线示出。对于每个程序71和72分别示出了 4个网络。在图的左半边中示出了具有网络号码的列表。网络73和83具有号码001。网络74和84具有号码002。网络75和85具有号码003。网络76和86具有号码004。程序71的网络在A列中标记。程序72的网络在 B列中标记。如果两个程序的网络不同,那么例如这样对此进行标记,即例如并不在图9中对矩形进行填充。如果有区别,则彩色地标记用于相应网络的矩形(例如蓝色用于程序71 在A列中的网络,以及橙色或者说黄色用于程序72在B列中的网络)。在图9中,网络002, 003,004和005不相同。在左边的纵览中因此列出了 A,B列中的网络号码,其中提出,可以通过以鼠标在区别位置上进行点击来跳转。在大型程序中这是有利的,因此用户不必滚读到区别位置。同样对变量声明中的区别进行彩色着色。为此设置用于第一程序71的窗口 78和用于第二程序72的窗口 88。如果存在例如对于 参数/变量; I/O 符号; 结构;和 计数的不同描述,并且这例如可以通过标签或方形标志93,94进行选择,则也可以彩色地标记该标签或方形标志93,94,如果在相应的标签或方形标志的数据中存在区别的话。
网络73和83相同,并且因此在对照中未被着色。在对网络74至76和84至86中的区别的描述中对单个的元素着色(特别是有区别地着色)或存储为灰色。如果在变量中有区别,则仅仅对此着色或存储为灰色。当在连接中有区别时,在此仅仅进行上色或标灰。如果区别涉及这两种情况,则也可以在这两种情况下进行上色或标灰。这可以通过应用至少2个不同的散列来实现。因此可以单独地确定在结构和变量中的区别。注释中的区别也被发现并且被相应地存储为彩色的或灰色的,这如在图9中在注释79和80中示出的那样。借助于左上方的功能按钮91和92可以将左边的来源71中的区别单独地或完全地传输到右边的来源72中。在此也可以跳转到下一个区别。根据图10的描述示出了图9的网络的细节图。网络73和83是相同的并且在对照时无需着色和彩色的标记。对于网络74和84以变量散列为基础确定了网络在输出端有区别。此外两个网络的功能相同,但输出端通过编程顺序被交换。该区别被标记。对于网络75和85确定的是,输出变量和输出端的功能不同。此外在注释中存在区别。但该网络足够相似,以便进行对照。该区别被标记。对于网络76和86确定的是,仅仅在结构散列中存在区别。这意味着全部变量相同。然而开启件相对于关闭件进行了交换。该区别也被标记。根据图11的描述示出了功能元素轴96的区别的细节图。通过双击例如在差别对象模型中的相应的元素将元素开启,其中利用色彩标记示出了在两个同类型的元素之间的区别。用户利用对话框97可以判定应将一个程序中的哪些改变传输到另一个程序中。因此这非常简单,这是因为在此着色表明了区别。此外用户可以附加地获知指令中的赋值。如果在那里也存在区别,则也彩色地表明该区别。这用于帮助用户判定,是否需要接收指令。如果在关于附图的描述中涉及借助于灰色阴影或借助于存储为灰色进行标记,那么这在相应的附图中也可以通过相应的阴影线替代。
1权利要求
1.一种用于比较图形程序的方法,其中将第一对象模型(I)和第二对象模型(2)进行比较,其中显示出第一差别对象模型(11)和特别是第二差别对象模型(12)。
2.根据权利要求I所述的方法,其中将所述第一对象模型(I)和所述第二对象模型 ⑵组合成总模型⑶以用于进行比较,其中将至少一个所述对象模型(1,2)和所述总模型(3)进行比较,其中在所述总模型(3)和至少一个所述对象模型(1,2)之间的区别显示在所述差别对象模型(11,12)之一中。
3.根据权利要求2所述的方法,其中将所述第一对象模型(I)和所述总模型(3)进行比较,并且在所述第一差别对象模型(11)中显示出所述第一对象模型(I)和相对于所述总模型⑶的区别,其中特别也将所述第二对象模型⑵和所述总模型⑶进行比较,并且在所述第二差别对象模型(12)中显示出所述第二对象模型和相对于所述总模型(3)的区别。
4.根据权利要求I至3中任一项所述的方法,其中同时并排显示出所述第一差别对象模型(11)和所述第二差别对象模型(12)。
5.根据权利要求I至4中任一项所述的方法,其中在所述差别对象模型(11,12)中显示出在所述第一对象模型(I)和所述第二对象模型(2)之间的相似性。
6.根据权利要求I至5中任一项所述的方法,其中在进行所述第一对象模型(I)和所述第二对象模型(2)的对比时以彩色标记出区别。
7.根据权利要求I至6中任一项所述的方法,其中在进行所述第一对象模型(I)和所述第二对象模型(2)的对比时在相同高度上垂直或水平地显示出两个所述对象模型(1,2) 中的类似的元素。
8.根据权利要求I至7中任一项所述的方法,其中在所述第一差别对象模型(11)中和 /或在所述第二差别对象模型(12)中显示出缺少的元素和/或附加的元素。
9.根据权利要求I至8中任一项所述的方法,其中所述差别对象模型(11,12)显示出下列至少一个区别附加的元素,缺少的元素,附加的联系,缺少的联系,元素的相同的参数化,元素的不同的参数化,和元素的不同的版本状态。
10.根据权利要求I至9中任一项所述的方法,其中将所述第一对象模型(I)和所述第二对象模型(2)这样进行比较,即由所述第一对象模型(I)生成第一 XML数据¢),由所述第二对象模型(2)生成第二 XML数据(7),并且这样处理所述XML数据出,7),即借助于被处理的数据生成所述第一差别对象模型(11)和所述第二差别对象模型。
全文摘要
本发明涉及一种用于比较图形程序的方法,在该方法中将第一对象模型(1)和第二对象模型(2)进行比较,其中显示出第一差别对象模型(11)和特别是第二差别对象模型(12)。程序的区别被分别标记在差别对象模型中。
文档编号G06F9/45GK102591635SQ20111037347
公开日2012年7月18日 申请日期2011年11月22日 优先权日2010年11月22日
发明者格韦多林·科纳普, 迈克尔·布劳恩, 阿蒂拉·萨博 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1