CN106873982B - 一种基于图形用户界面的软件搜索复用方法及*** - Google Patents
一种基于图形用户界面的软件搜索复用方法及*** Download PDFInfo
- Publication number
- CN106873982B CN106873982B CN201710023059.6A CN201710023059A CN106873982B CN 106873982 B CN106873982 B CN 106873982B CN 201710023059 A CN201710023059 A CN 201710023059A CN 106873982 B CN106873982 B CN 106873982B
- Authority
- CN
- China
- Prior art keywords
- interface
- graphical user
- project
- user interface
- independent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012360 testing method Methods 0.000 claims description 11
- 230000009191 jumping Effects 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 5
- 230000011218 segmentation Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims 1
- 230000004048 modification Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明实施例公开了一种基于图形用户界面的软件搜索复用方法及***,其中,该方法包括:收集图形界面视图、组件属性和布局信息;对源项目进行提取,为每个独立的界面生成一个独立的项目;根据收集到的图形界面视图、组件属性和布局信息和提取到的项目,建立之间的联系链接;为每个独立的项目生成描述信息并建立索引;显示搜索结果列表及可复用的项目。在本发明实施例中,根据图形用户界面的特点,利用软件复用的思想,把软件分解为一个个独立的界面,当程序员进行图形用户界面的搜索时可以复用这些界面,可以帮助程序员快速、方便、准确地找到可以复用的代码。
Description
技术领域
本发明涉及代码搜索复用技术领域,尤其涉及一种基于图形用户界面的软件搜索复用方法及***。
背景技术
软件复用是一种计算机软件工程方法和理论。随着计算机和互联网的发展,软件的规模变得越来越庞大。用于维护软件的成本是非常昂贵的,即使投入了大量的资金,也不一定能得到可靠的产品,而软件复用的思想可以解决这一问题。软件复用的主要思想是把软件分成一系列具有特定功能的模块,每个模块建立起来之后,编写软件就成了组装模块的问题。而各个具有特定功能的模块就可以被重复利用起来。
图形用户界面的特点是与人类视觉直接交互,并且具有较高的重复率。对于程序员来说,直接看到运行时刻的用户界面的视图,比通过阅读代码来想象用户界面要快速、准确得多。现在的主流搜索引擎返回的结果主要是项目的文字描述信息或者代码段。对于程序员来说,要在这些结果中找到需求的用户界面并不容易,在这个过程中,要花费大量的时间来阅读代码,才能找到想要的结果。
发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种基于图形用户界面的软件搜索复用方法及***,可以帮助程序员快速、方便、准确地找到可以复用的代码。
为了解决上述问题,本发明提出了一种基于图形用户界面的软件搜索复用方法,所述方法包括:
收集图形界面视图、组件属性和布局信息;
对源项目进行提取,为每个独立的界面生成一个独立的项目;
根据收集到的图形界面视图、组件属性和布局信息和提取到的项目,建立之间的联系链接;
为每个独立的项目生成描述信息并建立索引;
显示搜索结果列表及可复用的项目。
优选地,所述收集图形界面视图、组件属性和布局信息的步骤,包括:
把源项目运行在真实的设备上,使用黑盒测试工具进行界面之间的跳转;
收集界面上所有可执行的事件,使用深度优先的算法对软件进行遍历,得到所有可到达的界面。
优选地,所述对源项目进行提取,为每个独立的界面生成一个独立的项目的步骤,包括:
使用AST工具提取每个界面的实现代码,过滤掉非界面实现的代码;
对提取出来的代码进行修改,生成一个可以独立运行的项目。
优选地,所述为每个独立的项目生成描述信息并建立索引的步骤,包括:
对界面上出现的文本信息及界面的实现代码的关键字进行分词,并查找对应的词根;
分别对界面上出现的文本信息以及界面的实现代码的关键字计算TF-IDF,并根据权重对TF-IDF进行组合。
优选地,所述显示搜索结果列表包括多个图形用户界面的视图,以及与图形用户界面对应的描述信息;所述可复用的项目包括文档目录视图、代码阅读视图、图形用户界面视图。
相应地,本发明实施例还提供一种基于图形用户界面的软件搜索复用***,所述***包括:
收集模块,用于收集图形界面视图、组件属性和布局信息;
提取模块,用于对源项目进行提取,为每个独立的界面生成一个独立的项目;
建立模块,用于根据收集到的图形界面视图、组件属性和布局信息和提取到的项目,建立之间的联系链接;
生成模块,用于为每个独立的项目生成描述信息并建立索引;
显示模块,用于显示搜索结果列表及可复用的项目。
优选地,所述收集模块包括:
运行单元,用于把源项目运行在真实的设备上,使用黑盒测试工具进行界面之间的跳转;
收集单元,用于收集界面上所有可执行的事件,使用深度优先的算法对软件进行遍历,得到所有可到达的界面。
优选地,所述提取模块包括:
提取单元,用于使用AST工具提取每个界面的实现代码,过滤掉非界面实现的代码;
修改单元,用于对提取出来的代码进行修改,生成一个可以独立运行的项目。
优选地,所述建立模块包括:
分词单元,用于对界面上出现的文本信息及界面的实现代码的关键字进行分词,并查找对应的词根;
计算单元,用于分别对界面上出现的文本信息以及界面的实现代码的关键字计算TF-IDF,并根据权重对TF-IDF进行组合。
优选地,所述显示搜索结果列表包括多个图形用户界面的视图,以及与图形用户界面对应的描述信息;所述可复用的项目包括文档目录视图、代码阅读视图、图形用户界面视图。
在本发明实施例中,根据图形用户界面的特点,利用软件复用的思想,把软件分解为一个个独立的界面,当程序员进行图形用户界面的搜索时可以复用这些界面,可以帮助程序员快速、方便、准确地找到可以复用的代码。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例的基于图形用户界面的软件搜索复用方法的流程示意图;
图2是本发明实施例中所收集的信息示意图;
图3是本发明实施例中搜索结果列表示意图;
图4是本发明实施例中可复用的项目结果示意图;
图5是本发明实施例的基于图形用户界面的软件搜索复用***的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例的基于图形用户界面的软件搜索复用方法的流程示意图,如图1所示,该方法包括:
S1,收集图形界面视图、组件属性和布局信息;
S2,对源项目进行提取,为每个独立的界面生成一个独立的项目;
S3,根据收集到的图形界面视图、组件属性和布局信息和提取到的项目,建立之间的联系链接;
S4,为每个独立的项目生成描述信息并建立索引;
S5,显示搜索结果列表及可复用的项目。
S1进一步包括:
把源项目运行在真实的设备上,使用黑盒测试工具进行界面之间的跳转;
收集界面上所有可执行的事件,使用深度优先的算法对软件进行遍历,得到所有可到达的界面。
其中,使用黑盒测试工具模拟鼠标、键盘、手势等事件,实现界面之间的跳转。
具体实施中,把源项目运行在真实的设备上;使用黑盒测试工具模拟鼠标、键盘、手势等事件;如果当前界面是一个新的界面,收集当前界面的界面视图、界面上所有的组件属性、界面的布局等信息;执行当前界面上未被执行过的事件,如果所以事件都被执行过了,那么就返回上一界面;在事件执行之后,如果发生了跳转,并且跳转到的界面是一个新的界面,那么重复收集的过程;如果发生了跳转,但跳转到的界面是旧的界面,就进行回退;如果未发生跳转,那么就执行下一个事件。如果当前界面的事件都被执行完了,那么就结束收集。
如图2所示,收集到的信息包括了左边的图形界面视图,组件属性和布局信息以json文件的格式储存起来。组件属性信息不限于实例所展示的内容。
S2进一步包括:
使用AST工具提取每个界面的实现代码,过滤掉非界面实现的代码;
对提取出来的代码进行修改,生成一个可以独立运行的项目。
具体地,可以通过增加一个完整项目需要的配制信息完成修改代码;而提取每个界面的实现代码并过滤掉非界面实现的代码,可以保证界面的完整性,使提取出来的代码尽可能少。
首先要确定一种语言中,哪些代码会与界面直接相关(如与界面相关的API),设这个集合为RCSL(Relative code set of language)。对于一个独立的界面,找到生成这个界面的主要方法,然后对主要方法提取与界面直接相关的代码RCSUI(Relative code set ofUI)。RCSL(code)表示code在RCSL中,UIMethod(code)表示code在生成这个界面的主要方法中,RCSUI(code)表示code在RCSUI中,那么:
如果code1在RCSUI中,code1会使用到code2的结果,那么code2也在RCSUI中。Use(code1,code2)表示code1会使用到code2的结果,那么:
当RCSUI不再增长,对其增加一个完整项目需要的配制信息等,生成一个可以独立运行的项目。
在S3中,黑盒测试工具收集到的信息里包括了组件和它们的属性,建立每个组件到它们的实现代码的链接。使用黑盒测试工具可以收集到图形界面视图,组件属性和布局信息,而使用AST工具可以提取出一个单独的界面。在代码中,必定包含了实现各个组件的代码。根据这种关系,把组件信息与对应的代码联系起来,并建立链接。
S4进一步包括:
对界面上出现的文本信息及界面的实现代码的关键字进行分词,并查找对应的词根;
分别对界面上出现的文本信息以及界面的实现代码的关键字计算TF-IDF,并根据权重对TF-IDF进行组合。
具体实施中,对界面上出现的文本信息,更能表现出这个界面的功能,而在代码中出现的关键字与功能的联系相对弱一些。首先收集这两个方面的信息,并对这些信息进行分词,找到它们的词根。分别对界面上出现的文本信息,界面的实现代码的关键字计算TF-IDF,并用一定的权重把它们组合起来。根据计算的结果为每个独立的界面建立索引,提供给搜索引擎检索。
在S5中,用图像结合文本的方式展示搜索结果列表,用带链接的图像结合代码的方式展示可复用的项目。
在本发明实施例中,显示搜索结果列表包括多个图形用户界面的视图,以及与图形用户界面对应的描述信息;可复用的项目包括文档目录视图、代码阅读视图、图形用户界面视图。在图形用户界面视图里面的每个组件,可直接定位到这个组件的代码实现位置。
如图3所示,当用户在搜索引擎上检索时,其返回的列表是以图像与文本结合的信息。界面的图像来自黑盒测试工具收集到的信息,文本信息来自于描述信息的生成。以这种方式展示各项内容,程序员可以快速浏览各个结果,并找到符合开发需求的界面。当程序员选择其中的结果的时候,可以进行图4所示的内容。如图4所示,界面分为三个部分,左边的是项目的文档结构视图,中间的是当前浏览的代码,右边的是当前项目所实现的界面的运行时刻的视图。其中右边的界面视图中的各个组件包含了定位代码的链接。当点击其中的组件时,可以直接跳转到实现当前组件的代码上。
相应地,如图5所示,本发明实施例还提供一种基于图形用户界面的软件搜索复用***,该***包括:
收集模块1,用于收集图形界面视图、组件属性和布局信息;
提取模块2,用于对源项目进行提取,为每个独立的界面生成一个独立的项目;
建立模块3,用于根据收集到的图形界面视图、组件属性和布局信息和提取到的项目,建立之间的联系链接;
生成模块4,用于为每个独立的项目生成描述信息并建立索引;
显示模块5,用于显示搜索结果列表及可复用的项目。
进一步地,收集模块1包括:
运行单元,用于把源项目运行在真实的设备上,使用黑盒测试工具进行界面之间的跳转;
收集单元,用于收集界面上所有可执行的事件,使用深度优先的算法对软件进行遍历,得到所有可到达的界面。
提取模块2包括:
提取单元,用于使用AST工具提取每个界面的实现代码,过滤掉非界面实现的代码;
修改单元,用于对提取出来的代码进行修改,生成一个可以独立运行的项目。
建立模块3包括:
分词单元,用于对界面上出现的文本信息及界面的实现代码的关键字进行分词,并查找对应的词根;
计算单元,用于分别对界面上出现的文本信息以及界面的实现代码的关键字计算TF-IDF,并根据权重对TF-IDF进行组合。
其中,显示搜索结果列表包括多个图形用户界面的视图,以及与图形用户界面对应的描述信息;所述可复用的项目包括文档目录视图、代码阅读视图、图形用户界面视图。
具体地,本发明实施例的***相关功能模块的工作原理可参见方法实施例的相关描述,这里不再赘述。
在本发明实施例中,根据图形用户界面的特点,利用软件复用的思想,把软件分解为一个个独立的界面,当程序员进行图形用户界面的搜索时可以复用这些界面,可以帮助程序员快速、方便、准确地找到可以复用的代码。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
另外,以上对本发明实施例所提供的基于图形用户界面的软件搜索复用方法及***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种基于图形用户界面的软件搜索复用方法,其特征在于,所述方法包括:
收集图形界面视图、组件属性和布局信息,具体为:把源项目运行在真实的设备上,使用黑盒测试工具进行界面之间的跳转;收集界面上所有可执行的事件,使用深度优先的算法对软件进行遍历,得到所有可到达的界面;
对源项目进行提取,为每个独立的界面生成一个独立的项目,具体为:使用AST工具提取每个界面的实现代码,过滤掉非界面实现的代码;对提取出来的代码进行修改,生成一个可以独立运行的项目;
根据收集到的图形界面视图、组件属性和布局信息和提取到的项目,建立之间的联系链接;
为每个独立的项目生成描述信息并建立索引;
显示搜索结果列表及可复用的项目。
2.如权利要求1所述的基于图形用户界面的软件搜索复用方法,其特征在于,所述为每个独立的项目生成描述信息并建立索引的步骤,包括:
对界面上出现的文本信息及界面的实现代码的关键字进行分词,并查找对应的词根;
分别对界面上出现的文本信息以及界面的实现代码的关键字计算TF-IDF,并根据权重对TF-IDF进行组合。
3.如权利要求2所述的基于图形用户界面的软件搜索复用方法,其特征在于,所述显示搜索结果列表包括多个图形用户界面的视图,以及与图形用户界面对应的描述信息;所述可复用的项目包括文档目录视图、代码阅读视图、图形用户界面视图。
4.一种基于图形用户界面的软件搜索复用***,其特征在于,所述***包括:
收集模块,用于收集图形界面视图、组件属性和布局信息,包括:运行单元,用于把源项目运行在真实的设备上,使用黑盒测试工具进行界面之间的跳转;收集单元,用于收集界面上所有可执行的事件,使用深度优先的算法对软件进行遍历,得到所有可到达的界面;
提取模块,用于对源项目进行提取,为每个独立的界面生成一个独立的项目,包括:提取单元,用于使用AST工具提取每个界面的实现代码,过滤掉非界面实现的代码;修改单元,用于对提取出来的代码进行修改,生成一个可以独立运行的项目;
建立模块,用于根据收集到的图形界面视图、组件属性和布局信息和提取到的项目,建立之间的联系链接;
生成模块,用于为每个独立的项目生成描述信息并建立索引;
显示模块,用于显示搜索结果列表及可复用的项目。
5.如权利要求4所述的基于图形用户界面的软件搜索复用***,其特征在于,所述建立模块包括:
分词单元,用于对界面上出现的文本信息及界面的实现代码的关键字进行分词,并查找对应的词根;
计算单元,用于分别对界面上出现的文本信息以及界面的实现代码的关键字计算TF-IDF,并根据权重对TF-IDF进行组合。
6.如权利要求5所述的基于图形用户界面的软件搜索复用***,其特征在于,所述显示搜索结果列表包括多个图形用户界面的视图,以及与图形用户界面对应的描述信息;所述可复用的项目包括文档目录视图、代码阅读视图、图形用户界面视图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710023059.6A CN106873982B (zh) | 2017-01-12 | 2017-01-12 | 一种基于图形用户界面的软件搜索复用方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710023059.6A CN106873982B (zh) | 2017-01-12 | 2017-01-12 | 一种基于图形用户界面的软件搜索复用方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106873982A CN106873982A (zh) | 2017-06-20 |
CN106873982B true CN106873982B (zh) | 2020-04-07 |
Family
ID=59158449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710023059.6A Active CN106873982B (zh) | 2017-01-12 | 2017-01-12 | 一种基于图形用户界面的软件搜索复用方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106873982B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345600B (zh) * | 2017-01-23 | 2022-02-22 | 阿里巴巴集团控股有限公司 | 一种搜索应用的管理、数据搜索方法及其装置 |
CN109783139B (zh) * | 2019-02-21 | 2020-12-04 | 四川大学 | 软件界面特征提取方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079048A (zh) * | 2006-05-24 | 2007-11-28 | 上海万纬信息技术有限公司 | 基于软件机器人排除标准的互联网信息搜索引擎及方法 |
CN105512233A (zh) * | 2015-11-30 | 2016-04-20 | 北京奇虎科技有限公司 | 应用商店中应用搜索方法和装置 |
-
2017
- 2017-01-12 CN CN201710023059.6A patent/CN106873982B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079048A (zh) * | 2006-05-24 | 2007-11-28 | 上海万纬信息技术有限公司 | 基于软件机器人排除标准的互联网信息搜索引擎及方法 |
CN105512233A (zh) * | 2015-11-30 | 2016-04-20 | 北京奇虎科技有限公司 | 应用商店中应用搜索方法和装置 |
Non-Patent Citations (1)
Title |
---|
A Platform for Searching UI Component of Android Application;Kaiyuan Li 等;《2014 5th International Conference on Digital Home (ICDH)》;20141130;摘要、第205-210页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106873982A (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832229B (zh) | 一种基于nlp的***测试用例自动生成方法 | |
US10354002B2 (en) | Interaction relationship building and explorer for dashboard | |
US8595236B2 (en) | Searching existing user interfaces to enable design, development and provisioning of user interfaces | |
Sulír et al. | Visual augmentation of source code editors: A systematic mapping study | |
RU2696305C2 (ru) | Браузинг изображений через интеллектуально проанализированные связанные гиперссылкой фрагменты текста | |
JP6542612B2 (ja) | テストシナリオ生成支援装置およびテストシナリオ生成支援方法 | |
Evert | A Lightweight and Efficient Tool for Cleaning Web Pages. | |
CN106873982B (zh) | 一种基于图形用户界面的软件搜索复用方法及*** | |
CN110399063B (zh) | 页面元素属性的查看方法及装置 | |
Al-Msie'deen | Tag clouds for object-oriented source code visualization | |
JP6822220B2 (ja) | 推論結果可視化装置、推論結果可視化方法、及びプログラム | |
Yano et al. | Labeling feature-oriented software clusters for software visualization application | |
KR20210098813A (ko) | 텍스트 데이터 수집과 분석 장치 및 방법 | |
Chen et al. | DCTracVis: a system retrieving and visualizing traceability links between source code and documentation | |
Burch et al. | An analysis and visualization tool for DBLP data | |
Al-Msie'deen | Softcloud: A tool for visualizing software artifacts as tag clouds | |
Piasecki et al. | WordnetLoom: a graph-based visual wordnet development framework | |
Nishimoto et al. | Supporting program understanding by automatic indexing of functionalities in source code | |
Goh et al. | Region based data extraction | |
CN111124548B (zh) | 一种基于yaml文件的规则解析方法及*** | |
Ng et al. | VFX: A VISION-BASED APPROACH TO FORUM DATA EXTRACTION | |
Schulte | Investigating topic modeling techniques for historical feature location. | |
Farah et al. | Analysis of intercrossed open-source software repositories data in GitHub | |
Cysneiros Filho et al. | Towards a traceability visualisation tool | |
KR102449580B1 (ko) | 컴포넌트 네트워크 기반의 분석 시스템을 이용한 비정형 데이터 분석 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |