论文部分内容阅读
软件复用能够有效的减少软件开发中的重复劳动,是提高软件生产率和质量的有效途径。存在大量的可复用软件资源是软件复用的前提和基础。随着Internet和软件复用技术的发展,在Internet上出现了越来越多可以被利用的软件资源,如Web Services、JAR包等。收集、整理这些软件资源将极大地丰富软件资源库中资源的数量和种类,从而有力地推动软件复用的进一步发展。
基于上述目标,北京大学软件资源库管理系统研发了基于Internet的JAR包搜索子系统原型,该系统目前已经收集了大约六千个JAR包资源。
但是,上述工作还需要进一步的完善。一方面,准确的把握和理解资源是成功复用资源的前提和保证。当前资源库实现的JAR包搜索子系统仅仅将Internet上的JAR包下载到本地资源库中,缺乏与该JAR包相关的描述信息,这给复用者使用软件资源带来了一定的障碍;另一方面,某个JAR包可能已经被复用多次,存在着很多使用评论信息。这些使用评论信息将有助于用户进一步了解JAR包在功能、效率、安全等多方面的质量。因此,系统需要收集、整理JAR包的相关描述和使用评论信息以帮助用户理解、使用这些JAR包资源。
本文针对上述问题给出了相应的解决方案,并在北京大学软件资源库管理系统的基础上设计并实现了基于Internet的JAR包信息收集和整理工具,论文主要工作包括:
1)JAR包描述和使用评论信息收集:本文提出了一种借助Internet搜集与指定JAR相关的描述和使用评论信息的方法。该方法采用通用搜索引擎Google和特定站点抓取相结合的策略来实现相关信息的收集。对于通用搜索引擎,本文首先从JAR包中提取足够多的、能够唯一标识该JAR包的信息,通过计算这些信息与Google返回结果的文档相似度来提取与之相关的描述和使用评论信息。对于特定的JAR包发布和管理站点,由于其中包含的信息质量较高,我们可以直接从中提取所需的信息。通过将通用搜索引擎与特定站点抓取相结合的策略,最终达到了丰富JAR包描述和使用评论信息的目的。
2)JAR包描述和使用评论信息分离算法:在上一步骤中,针对Internet获得的JAR包相关的描述和使用评论信息。本文提出了一个基于机器学习的将描述和评论分离的方法。实现描述和评论信息分离的意义在于:一方面有助于复用者更有针对性的理解、使用收集到的信息,缩短复用时间,提高复用效率;另一方面综合JAR包的多个使用评论信息,将为资源的可信评估提供更多的可信证据。
经过收集和分析处理后的JAR包描述和使用评论信息,将会持久化在文件中,随同JAR包资源实体一同发布到资源库。这样,资源复用者在复用该JAR包资源时,可通过阅读相关文件中的描述和使用评论信息,从而达到进一步理解资源的目的。
基于上述解决方案,本文设计并实现了JAR包描述和使用评论信息收集和整理工具原型,并对于设计和实现中的详细技术点进行了较为详细的论述,对工具中的关键算法进行了实验验证。