首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

基于UML类图的Java程序可视化方法经验谈

作者:乔海滨 来源:电子技术与软件工程


  摘要随着软件技术在不断的更新,软件可视化在软件逆向工程中发挥着重要的作用,该软件自身具有直观以及比较容易理解的优势。然而在软件的开发技术中,面对对象软件在结构UML类图中能够为工程师们提供更加容易理解的Java程序。因此本文针对逆向工程对Java程序进行可视化分析,根据其中面临的问题进行研究,在UML类图中从支持类关系中进行精确的提取,对软件进行模式以及版本演化,并且进行了可视化的扩展分析,最终实现了可视化系统中的Venus技术应用,推动了软件技术的更新。
  【关键词】UML类图 Java程序可视化
  在我国软件技术的更新中,可视化是一段代码的展示,能够将图形化的东西显示成一大型软件系统的结构模型。在程序可视化技术中,主要是利用排版、图形化设计、动画以及电影等现代人机交互的技术来进行计算机软件的理解和应用,本文在研究类图算法的技术基础上,分析了图元之间的关系,来最终决定结果图的摆放位置,进一步将图示更加清晰的展示。最终实现了可视化工具的Venus,将类间关系的多重性更加精确的展现出来,并且支持了Java程序的进一步演化,将图示展示在具体的结构中。
  1 逆向绘制Java类图
  逆向工程它是一个支持统一建模语言UML的面向对象的可视化分析、设计建模的工具,其设计可以完成面向对象方法所需要的四层模型的设计与维护,其中这四项模型是:用例模型、类和对象模型、组件模型和分布处理模型,在具体的制图过程中,通过逐层建模最后生成所需要开发环境的源代码,并且可以根据应用程序进行系统的逆向建模。然而在绘制具体的Java类图中,通过逆向建模在进行可视化的基础上,将关系提取的准确性以及软件设计模式和程序代码进行演化,最终产生对可视化的具体影响。
  在绘制类图的过程中,由于其中面临着多重性的问题,因此在不同的应用领域需要对系统进行特定的设计模式和体系结构的调整,需要建立精确的关系来将软件进行设计模式和程序结构的开发,在Java程序进行的逆向可视化中,需要将软件的演进过程,在动画或者是不同颜色的区分中来划分具体的版本,最终了解结构之间的差异,以及观察具体的变化过程。因此在层次制图的过程中,需要综合的考虑UML类图的规范、软件设计模式以及程序的演化过程,重点研究Java可视化方法。
  2 可视化技术
  在研究Java可视化程序中,UML类图是由节点和边组成的复杂图,并且在图元之间存在着关系,具体的研究方法是:在研究一般图的基础上添加包含关系映射,最终扩展为复合图。然后定义ULM类图语义映射将复合图确定为扩展类图。最终确定为扩展类图的节点图元有类、接口、包、注释,关系图元有继承、聚集、实现、锚定以及有向关联。通常在可视化模型的建立中,UML类图的扩展图是将entiy为节点,集合成V并且最终到UML类图的节点图元的映射中,这两个映射之间是一对一的关系。
  可视化程序的主要步骤可以归纳为:在研究可视化程序的基础上,首先是要去除自环边、压缩注释、删除孤立节点和划分模式子图来具体的调整UML类图的模型设计,但是在模型的研究中需要对具体的节点以及排列顺序进行具体的研究,避免其影响布图的结果。在具体的模型建立中,需要第模式子图进行详细的划分,具体的要求根据软件设计模式来将类图中的包图元连同其子元素进行划分到不同的子图中,在Java可视化程序中,在通过计算不同的包与类库中界面。数据库以及包间的距离等,将具体的设计划分为包图不同式的子图当中,确定包图的具体是根据D=▕A+I-I▕/2,式子中A作为包的抽象度,I是包不稳定度。
  然后将UML类图进行调整,将集合分为层次边和非层次边,并且在深度优先遍历的方法中反转以及反馈边,最终将未出现环的图进行划分,在划分中需要根据节点的优先级以及边的权来将图中的环分配到节点中,在划分的过程中,需要考虑的是边拐点数目以及边长度的最小化,确定好边的分层,具体的操作步骤是:将节点优先级用其入度表示,将入度大的节点优先放置在图的正中间,而Length表示的是边的长度,Weight表示的是边的权重。其权性高的边分配的边长比较短,因此需要根据权值来确定边长度。利用这样的表示方法来确定目标函数,利用网络单纯形法来接函数,完成对层次划分图的结构布置。在使用UML类图的基础上,根据逐层最小化算法,对节点以及边进行添加UML语义,将映射来划分图转化为类图,然后将类图中的符合节点进行展开,按照坐标计算的原则来将图元的层次的纵坐确定,而横坐边是按照同层的图元的相邻顺序排列分配。在横坐标和纵坐标的划分中需要考虑图元之间的空隙以及边拐点的控制,利用边都是由水平和垂直的线段具体组成。最终完成UML类图的转化,将Java可视化程序进行验证。
  3 总结
  通过分析层次布图法,然后从逆向工程的角度进行具体研究,在分析了支持类关系精度中提取,将可视化软件模式以及软件在演化中进行了不断的扩展分析,最终实现了支持Venus系统的可视化Java程序,在该逆向软件工程设计中,复合UML类图的语义,将层次具体的划分,并且支持图元嵌套的关系,这种逆向绘制的Java类图能够更加准确的将软件的设计模式划分为子图,并且具体的相互转化,推动了软件的演化过程,另外在添加图元中采用增量进行插入,使同一种程序可以在不同版本之间以及颜色的区分中绘制更多的类图,并且保持一致性。基于UML类图的Java可视化程序中,能够将关联边比较多的图,具体的确定关联距,确定逐层最小化,保证关联关系的最小化,确定好横坐标以及纵坐标之间的距离,为推动Java程序的进一步可视化软件更新提供了有利的准备,加大了软件的扩展性,以及转化性。
  
  参考文献
  [1]李荣荣,樊博.JAVA语言理解中算法可视化表示和实现的研究[J].信息工程,2012(15).
  [2]王小波,刘建斌,邓敏.可视化面向对象Java程序设计工具的研究[J].计算机科学,2013(14).
  [3]张志猛,胡小凡,胡斌.一个JAVA可视化面向对象程序设计支撑系统的设计[J].计算机信息工程,2013(31).
  
  作者单位
  同济大学上海市200092