基于模型关联关系的遗产软件系统的现代化的制作方法_2

文档序号:8344592阅读:来源:国知局
其他元素(例如,中间层和底层中的元素),但是没有其他元素可以关联于顶层中的元素。中间层中的元素可以关联于其他元素(例如,底层中的元素),并且其他元素(例如,顶层中的元素)可以关联于中间层中的元素。底层中的元素不可以关联于其他元素,但是其他元素(例如,顶层和底层中的元素)可以关联于底层中的元素。
[0030]顶层、中间层和底层可以分离FORTRAN应用112的区别特征。顶层可以表示顶层程序接口。中间层可以表示程序逻辑。底层可以表示函数、公共块、子程序等。通过将FORTRAN应用112的元素分离为这些不同层,划分模块118能够获得FORTRAN应用112的模块性。在其他实施例中,划分模块118可以生成任何数量的层。下面描述图3中示出的已经执行基于组件的划分之后的DSM表示116的一个示例。
[0031]聚类模块120可以对DSM表示116执行提供者临近性聚类(provider proximityclustering),以便识别DSM表示116内的聚类。提供者临近性分析一般可以指用于确定矩阵中的任何任意元素与矩阵中的其他元素的接近程度的技术。基于这种技术的聚类可以基于关联关系权重识别最接近的邻点。在DSM表示116中,使用提供者临近性分析识别的每个聚类可以包括每列以下的元素,该元素关联于相同列之上的其他元素。由于提供者临近性分析可以不需要或利用域知识,所以这种分析可以被称为域独立分析。
[0032]每个聚类可以包括紧密连接的元素(例如子程序、函数和/或公共块)的组合。具体地,聚类模块120可以基于数据仿射性(affinity)(例如,公共块仿射性)和程序逻辑仿射性(例如,子程序仿射性)对元素聚类。这种仿射性可以通过聚类每列以下的元素组来识别,其中该元素关联于相同列之上的其他元素。每个聚类中的元素中的至少一些可以具有相邻关联关系。下面描述图4中示出的已经执行提供者临近性聚类之后的DSM表示116的一个示例。
[0033]功能性知识分析模块122可以基于基于组件的划分和/或提供者临近性聚类的结果生成目标系统对象模型124。目标系统对象模型124可以根据聚类模块120识别的聚类,通过重组DSM表示116的标记而生成。标记可以提供通用标识符(例如,聚类1、聚类2等)或详述每个聚类的功能或类别的具体标识符。标记可以嵌套以使每个标记能够被扩展从而显示包括在对应聚类内的元素。根据划分模块118识别的层和/或聚类模块120识别的聚类,目标系统对象模型124可以被布置为下三角矩阵。因为功能性知识分析会需要或利用域知识,这种分析可以被称为域关联分析。下面描述图5示出的目标系统对象模型124的一个示例。
[0034]通过功能性知识分析模块122的接口,用户能够应用功能性域知识验证元素的每个聚类,作为面向对象的框架中的潜在类或低层模块。如果标记被通用地命名,用户还可以将标记修订为更具功能性和更有意义的名字。通过功能性知识分析模块122的接口,用户可以进一步将多个聚类聚合为面向对象的框架中的高层模块、子系统或包,从而产生最终对象模型126。下面描述图6示出的最终对象模型126的一个示例。
[0035]目标系统映射模块106可以接收最终对象模型126作为输入。最终对象模型126中的每个聚类可以是面向对象的框架中的潜在类或低层模块。给定聚类内的一些元素可以形成类的属性。聚类内的一些其他元素可以形成类的方法。目标系统映射模块106可以对最终对象模型126中的每个聚类执行低层分析,以便识别每个聚类的属性和方法。给定聚类的属性和方法的集合可以形成聚类的类定义。下面描述图7中示出的对应于目标系统对象模型124的类定义的一个示例。
[0036]利用每个聚类的类定义,目标系统映射模块106可以将最终对象模型126中的高层模块、子系统或包映射为面向对象的开发环境的代码框架表示128。代码框架表示128可以定义包、类、方法、函数和/或其他结构,这些结构组成面向对象的开发环境中的面向对象的表示。这些结构可以在不同的面向对象的开发环境之间改变。面向对象的开发环境的一些示例可以包括ECLIPSE基金会公司(THE ECLIPSE FOUNDAT1N, INC)的ECLIPSE和MATHWORKS公司(也称为MATHWORKS)的MATLAB。下面描述的图8和图9中示出的代码框架表示128的示例。程序员可以利用代码框架表示128有效和高效地将FORTRAN应用翻译为面向对象的目标语言(例如,JAVA)。
[0037]图2示出根据本文提出的实施例的DSM表示116的示例性实施方式的屏幕显示图。如前面描述的,DSM表示116可以基于FORTRAN应用112通过FORTRAN解析器108和DSM表示生成工具110生成。DSM表示116可以包括行202的集合和列204的集合。行202和列204可以包括相同顺序的元素的相同列表。如图2中示出的,信息窗口 206指定元素列表包括42个公共块、90个公共块成员、45个FORTRAN文件、一个FORTRAN程序、11个函数和56个子程序。也就是说,元素的组合组成FORTRAN应用112的系统结构114。
[0038]DSM表示116可以包括多个单元。阴影单元可以指示对应行中的组件和对应列中的组件之间的关联关系。如图2中示出的,阴影单元指示对应列中的组件关联于对应行中的组件。换句话说,阴影单元可以指示对应行中的组件关联于对应列中的组件。对角线单元208可以加阴影,因为这些单元对应于沿着相同行和沿着相同列的相同的元素。在其他实施例中,其他合适的高亮可以用于替代阴影。
[0039]DSM表示生成工具110可以基于FORTRAN解析器108的原始输出生成DSM表示116。因此,如图2中示出的,元素列表可以不按照对DSM表示116提供的数据进行有意义解释的方式布置、分离或分组。如下面描述的,DSM分析模块104可以对DSM表示116执行分析,以便布置、分离或分组元素列表,使得能够更有效地解释DSM表示116。
[0040]图3是根据本文提出的实施例在划分模块118已经划分DSM表示116之后的示例性划分的DSM表示300的屏幕显示图。划分模块118可以根据元素之间的关联关系,对DSM表示116执行基于组件的划分,以便识别顶层302、中间层304和低层306。划分模块118可以根据识别的层重新布置DSM表示116中的元素列表(行202的集合和列204的集合中)。顶层302中的元素可以关联于其他元素,但是没有其他元素可以关联于顶层中的元素。中间层中的元素可以关联于其他元素,并且其他元素可以关联于中间层中的元素。底层中的元素不可以关联于其他元素,但是其他元素可以关联于底层中的元素。
[0041]在一些实施例中,顶层302可以表示FORTRAN应用112的顶层程序接口。中间层304可以表示FORTRAN应用112的程序逻辑。低层306可以表示函数、公共块和子程序。如图3中示出的,划分的DSM表示300可以布置为下三角矩阵。
[0042]图4是根据本文提出的实施例在聚类模块120已经识别DSM表示116中的聚类之后的示例性聚类的DSM表示400的屏幕显示图。聚类模块120可以对DSM表示116执行提供者临近性聚类,以便识别DSM表示116中的聚类,如聚类402、404、406。聚类模块120可以根据识别的聚类重新布置DSM表示116中的元素列表(行202的集合和列204的集合中)。
[0043]每个聚类可以包括紧密连接的元素(例如子程序、函数和/或公共块)的组合。具体地,聚类模块120可以基于数据仿射性(例如,公共块仿射性)和程序逻辑仿射性(例如,子程序仿射性)对元素聚类。这种仿射性可以通过聚类关联于DSM表示116的对角线单元208附近的元素组来识别。例如,聚类402、404、406示出对角线单元附近的聚类的密集度。如图4中示出的,聚类的DSM表示400可以布置为下三角矩阵。
[0044]图5示出根据本文提出的实施例的目标系统对象模型124的示例性实施方式的屏幕显示图。如前面描述的,功能性知识分析模块122可以基于划分的DSM表示300中的层和/或聚类的DSM表示400中的聚类生成目标系统对象模型124。目标系统对象模型124可以包括行502的集合和列504的集合。行502和列504可以包括相同顺序的相同聚类列表。聚类的列表可以对应于聚类模块120识别的聚类。聚类列表还可以根据划分模块118识别的层被布置。
[0045]如图5中示出的,用于列出聚类的标记是通用的(例如,vp_l、vp_2、vp_3等)。在其他实施例中,用于列出聚类的标记可以是详述每个聚类的功能或类别的具体标识符。标记可以嵌套以使每个标记能够被扩展以便显示相应聚类内包含的元素。例如,如在图5中示出的,标记vp_15已经被扩展为显示元素506,元素506嵌套在对应于标记vp_15的聚类508内。每个聚类,包括聚类508,可以表示面向对象的平台中的潜在类或低层模块。
[0046]多个对角线单元510中的每个可以指示关于对应关联关系的百分比。例如,百分比可以表示给定聚类或元素沿着行和沿着列做出调用的量与FORTRAN应用112中的所有聚类或元素做出调用的总量的关系。多个对角线外单元512中的每个还可以指示关于对应关联关系的整数。例如,整数可以指定从对应列的聚类或元素到对应行的聚类或元素做出的调用的量。在其他实施例
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1