[发明专利]应用程序模块的分析方法、装置以及分析工具在审
申请号: | 202010177068.2 | 申请日: | 2020-03-13 |
公开(公告)号: | CN113391812A | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 叶俊星;李猛超;贾杰 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F11/36 |
代理公司: | 北京思格颂知识产权代理有限公司 11635 | 代理人: | 潘珺 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 模块 分析 方法 装置 以及 工具 | ||
本公开涉及一种应用程序模块分析方法、装置以及分析工具。其中应用程序模块分析方法包括:对应用程序所包含的至少一个文件的源码进行分析,得到应用程序至少一个文件的分析结果,得出模块所包含的所有文件的分析结果;在模块级别上进行模块依赖分析,得到模块正向依赖分析结果,再结合模块文件分析结果,得到模块的分析结果;最后进行跨模块分析,得到在模块级别和文件级别上模块和文件之间的逆向依赖分析结果。本公开提供了文件级别和模块级别的逆向依赖分析结果,可供研发人员清楚地了解应用程序中模块和文件中的逆向依赖关系,减少程序的冗余,降低了程序的维护和迭代成本。
技术领域
本公开涉及计算机程序领域,特别涉及一种应用程序模块的分析方法、装置以及分析工具。
背景技术
一款复杂的应用程序为了并行开发、降低开发复杂度、提升开发效率,通常应用程序中包含多个模块,一个模块包含一个或多个文件,一个文件包含一个或多个API。模块之间通过某种约定方式进行相互依赖协作。
采用这种方法带来了一个新的问题:模块间的依赖难以追踪,在应用程序迭代的过程中,易出现改动一个模块,影响多个模块的问题。由于应用程序内的模块数量众多,人工检索成本较高,导致开发人员难以知道模块之间逆向依赖(被其他模块依赖)情况,也就是难以知晓一个模块的迭代,具体会影响哪些其它模块,例如当多个模块均依赖同一个模块时,一旦该模块发生迭代或修改,则难免都会对被依赖的模块产生影响,但由于研发人员难以知悉模块和文件之间的逆向依赖关系,会导致在迭代和维护过程中源码大量冗余,程序变得越来越臃肿,迭代成本越来越高。
发明内容
鉴于上述问题,提出了本公开以便提供一种克服上述问题或者至少部分地解决上述问题的一种分析应用程序模块的分析方法、装置以及分析报告。
第一方面,本公开实施例提供一种应用程序模块的分析方法,包括:
对应用程序所包含的至少一个文件的源码进行分析,得到所述至少一个文件的分析结果;
根据所述模块包含的文件,确定模块所包含的文件的分析结果;并对所述应用程序的模块,在模块级别上进行模块依赖分析,得到所述模块的正向依赖分析结果;
根据所述模块的正向依赖分析结果和模块所包含的文件的分析结果,得到所述模块的分析结果;
汇总所述应用程序中模块的分析结果,进行跨模块分析,得到在模块级别和文件级别上模块之间的逆向依赖分析结果。
在一个实施例中,对应用程序所包含的至少一个文件的源码进行分析,得到所述至少一个文件的分析结果,具体包括:
从应用程序的至少一个入口文件开始,依次对所述入口文件的源码进行文件依赖分析,得到文件依赖分析结果,以递归的方式的对入口文件依赖文件继续进行文件依赖分析,直到遍历完所述应用程序包含的文件,得到应用程序所有文件的分析结果。
在一个实施例中,一种应用程序模块的分析方法,还包括:
创建栈数据结构,在所述栈数据结构中记录应用程序所包含的文件递归的路径;
根据所述文件递归的路径,判断当前所需分析的文件的源码是否已被遍历;
当判断为否时,执行对所述文件的源码进行分析的步骤;
当判断为是时,跳转至下一个所依赖的文件的源码进行分析。
在一个实施例中,对应用程序所包含的至少一个文件的源码进行分析,得到所述至少一个文件的分析结果,包括:
分别收集文件的属性数据;
对所述文件的源码进行语法分析,构建对应的语法树;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010177068.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:显示设备
- 下一篇:一种高精度地图数据的生成方法、装置及服务器