软件是一个整体,可以从各个侧面进行理解和分析。有大量的技术方法和工具为程序理解提供帮助。这些工具和方法包括: 程序分片、聚类、架构恢复、依赖关系提取、相似度分析、组件恢复、动态分析、静态分析、概念分析、设计模式恢复、图形化模拟、反向工程、文档关联恢复、状态机恢复等非常多的方法和技术。按照程序理解的过程,可以将程序理解工具分为 4 类(1~3 的分类见) 1)提取器(Extractors),从源代码或者文档等材料中提取和分离信息。提取器的例子如 ACACIA,CPPX,andColumbus/CAN,A- SIS(ADA Semantic Interface Specification)。 2) 抽象器(Abstractors),对提取的信息进行分析,得到更深抽象层次的信息, 或者对提取的信息进行转换。抽象器的例子如 PROGRES 图转换系统,GUPRO, 基于图的查询机制的图分析工具 Grokand GReQL,分析软件系统之关系的 RPA 工具,架构分析和恢复工具控制流,数据流和依赖分析,软件测试分析。 3) 显示器(Visualizers),将提取器提取的和抽象器得到的信息以不同的方式显示出来。这些工具包括代码编辑器、浏览器和程序可视化工具等。显示器的例子如源码浏览和文本显示器, 类 图, 序 列 图, 图 表 显 示 器, 作 图 工 具 daVinci,Graphlet,和 GraphViz,Rigi 和 Shrimp 可以用来做更大规模的图。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !