CN106873982A - 一种基于图形用户界面的软件搜索复用方法及*** - Google Patents

一种基于图形用户界面的软件搜索复用方法及*** Download PDF

Info

Publication number
CN106873982A
CN106873982A CN201710023059.6A CN201710023059A CN106873982A CN 106873982 A CN106873982 A CN 106873982A CN 201710023059 A CN201710023059 A CN 201710023059A CN 106873982 A CN106873982 A CN 106873982A
Authority
CN
China
Prior art keywords
interface
project
graphic user
user interface
code
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.)
Granted
Application number
CN201710023059.6A
Other languages
English (en)
Other versions
CN106873982B (zh
Inventor
范碧天
陈湘萍
罗笑南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN201710023059.6A priority Critical patent/CN106873982B/zh
Publication of CN106873982A publication Critical patent/CN106873982A/zh
Application granted granted Critical
Publication of CN106873982B publication Critical patent/CN106873982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation 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 (10)

1.一种基于图形用户界面的软件搜索复用方法,其特征在于,所述方法包括:
收集图形界面视图、组件属性和布局信息;
对源项目进行提取,为每个独立的界面生成一个独立的项目;
根据收集到的图形界面视图、组件属性和布局信息和提取到的项目,建立之间的联系链接;
为每个独立的项目生成描述信息并建立索引;
显示搜索结果列表及可复用的项目。
2.如权利要求1所述的基于图形用户界面的软件搜索复用方法,其特征在于,所述收集图形界面视图、组件属性和布局信息的步骤,包括:
把源项目运行在真实的设备上,使用黑盒测试工具进行界面之间的跳转;
收集界面上所有可执行的事件,使用深度优先的算法对软件进行遍历,得到所有可到达的界面。E。
3.如权利要求1所述的基于图形用户界面的软件搜索复用方法,其特征在于,所述对源项目进行提取,为每个独立的界面生成一个独立的项目的步骤,包括:
使用AST工具提取每个界面的实现代码,过滤掉非界面实现的代码;
对提取出来的代码进行修改,生成一个可以独立运行的项目。
4.如权利要求1所述的基于图形用户界面的软件搜索复用方法,其特征在于,所述为每个独立的项目生成描述信息并建立索引的步骤,包括:
对界面上出现的文本信息及界面的实现代码的关键字进行分词,并查找对应的词根;
分别对界面上出现的文本信息以及界面的实现代码的关键字计算TF-IDF,并根据权重对TF-IDF进行组合。
5.如权利要求4所述的基于图形用户界面的软件搜索复用方法,其特征在于,所述显示搜索结果列表包括多个图形用户界面的视图,以及与图形用户界面对应的描述信息;所述可复用的项目包括文档目录视图、代码阅读视图、图形用户界面视图。
6.一种基于图形用户界面的软件搜索复用***,其特征在于,所述***包括:
收集模块,用于收集图形界面视图、组件属性和布局信息;
提取模块,用于对源项目进行提取,为每个独立的界面生成一个独立的项目;
建立模块,用于根据收集到的图形界面视图、组件属性和布局信息和提取到的项目,建立之间的联系链接;
生成模块,用于为每个独立的项目生成描述信息并建立索引;
显示模块,用于显示搜索结果列表及可复用的项目。
7.如权利要求6所述的基于图形用户界面的软件搜索复用***,其特征在于,所述收集模块包括:
运行单元,用于把源项目运行在真实的设备上,使用黑盒测试工具进行界面之间的跳转;
收集单元,用于收集界面上所有可执行的事件,使用深度优先的算法对软件进行遍历,得到所有可到达的界面。
8.如权利要求6所述的基于图形用户界面的软件搜索复用***,其特征在于,所述提取模块包括:
提取单元,用于使用AST工具提取每个界面的实现代码,过滤掉非界面实现的代码;
修改单元,用于对提取出来的代码进行修改,生成一个可以独立运行的项目。
9.如权利要求6所述的基于图形用户界面的软件搜索复用***,其特征在于,所述建立模块包括:
分词单元,用于对界面上出现的文本信息及界面的实现代码的关键字进行分词,并查找对应的词根;
计算单元,用于分别对界面上出现的文本信息以及界面的实现代码的关键字计算TF-IDF,并根据权重对TF-IDF进行组合。
10.如权利要求9所述的基于图形用户界面的软件搜索复用***,其特征在于,所述显示搜索结果列表包括多个图形用户界面的视图,以及与图形用户界面对应的描述信息;所述可复用的项目包括文档目录视图、代码阅读视图、图形用户界面视图。
CN201710023059.6A 2017-01-12 2017-01-12 一种基于图形用户界面的软件搜索复用方法及*** Active CN106873982B (zh)

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 true CN106873982A (zh) 2017-06-20
CN106873982B 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345600A (zh) * 2017-01-23 2018-07-31 阿里巴巴集团控股有限公司 一种搜索应用的管理、数据搜索方法及其装置
CN109783139A (zh) * 2019-02-21 2019-05-21 四川大学 软件界面特征提取方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079048A (zh) * 2006-05-24 2007-11-28 上海万纬信息技术有限公司 基于软件机器人排除标准的互联网信息搜索引擎及方法
CN105512233A (zh) * 2015-11-30 2016-04-20 北京奇虎科技有限公司 应用商店中应用搜索方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
KAIYUAN LI 等: "A Platform for Searching UI Component of Android Application", 《2014 5TH INTERNATIONAL CONFERENCE ON DIGITAL HOME (ICDH)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345600A (zh) * 2017-01-23 2018-07-31 阿里巴巴集团控股有限公司 一种搜索应用的管理、数据搜索方法及其装置
CN108345600B (zh) * 2017-01-23 2022-02-22 阿里巴巴集团控股有限公司 一种搜索应用的管理、数据搜索方法及其装置
CN109783139A (zh) * 2019-02-21 2019-05-21 四川大学 软件界面特征提取方法、装置及电子设备

Also Published As

Publication number Publication date
CN106873982B (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
Dit et al. Feature location in source code: a taxonomy and survey
CN102855313B (zh) 网页浏览设备、网页摘要的生成方法及网页打开的方法
US20130204874A1 (en) Hyper Adapter and Method for Accessing Documents in a Document Base
WO2015093540A1 (ja) フレーズペア収集装置、及びそのためのコンピュータプログラム
CN103488663A (zh) 自动检测和交互显示来自多模态自然语言源的关于实体、活动和事件的信息的***和方法
JP6542612B2 (ja) テストシナリオ生成支援装置およびテストシナリオ生成支援方法
Garcia et al. Systematic analysis of mobile diabetes management applications on different platforms
Lee et al. A tool to visualize architectural design decisions
CN106873982A (zh) 一种基于图形用户界面的软件搜索复用方法及***
Kirsh Using mouse movement heatmaps to visualize user attention to words
JP2014531678A (ja) 情報オブジェクトのユーザにより拡張されるランキング
Kirsh Directions and speeds of mouse movements on a website and reading patterns: a web usage mining case study
Jiang et al. Log-it: Supporting Programming with Interactive, Contextual, Structured, and Visual Logs
Sharafi A systematic analysis of software architecture visualization techniques
Al-Msie'deen Tag clouds for object-oriented source code visualization
Seifert et al. Crowdsourcing fact extraction from scientific literature
Cheng et al. KVS: a tool for knowledge-driven vulnerability searching
Aziz et al. Domain and challenges of big data and archaeological photogrammetry with blockchain
Menin et al. From linked data querying to visual search: towards a visualization pipeline for LOD exploration
Minelli Software analytics for mobile applications
Walk et al. How to apply markov chains for modeling sequential edit patterns in collaborative ontology-engineering projects
CN107590044A (zh) 一种分布式存储集群的测试方法、装置及设备
Zamakhsyari et al. A Systematic Literature Review of Design Thinking Approach for User Interface Design
Cui et al. VineMap: A metaphor visualization method for public opinion hierarchy from text data
Zhao et al. AutoComPaste: auto-completing text as an alternative to copy-paste

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