论文部分内容阅读
软件复用能够有效的减少软件开发中的重复劳动,是提高软件生产率和质量的有效途径。存在大量可复用的软件资源是软件复用的前提和基础。随着Internet和软件复用技术的发展,Internet上出现了大量可以被复用的软件资源,如Web服务、JAR包等。收集、整理这些软件资源极大的丰富了软件资源库中的资源种类和数量,能够有力的推动软件复用的进一步发展。北京大学软件资源库系统从Internet上自动收集了大量可复用的软件资源,其中包括三千多个Web服务和六千多个JAR包等。
对软件资源准确的把握和理解是开发人员成功复用软件资源的前提。把握和理解软件资源需要有全面的描述信息以及合理的分类方式。对于从Internet上收集到的软件资源,只包含软件资源的实体,缺少软件资源的描述信息和标签,这给用户复用软件资源造成了障碍。另一方面,Internet上存在着与软件资源相关的网页,其中包含了与软件资源有关的信息。因此,收集软件资源的相关网页,从中提取出软件资源的描述信息并生成资源的标签,将其发布到软件资源库中,可以帮助用户理解和使用这些软件资源,提高这些资源的复用程度。
本文针对上述问题给出相应的解决方案,主要内容包括:
1)软件资源相关网页的收集:对Web服务和JAR包资源,通过解析资源实体提取资源特征。对两种类型的资源分别利用资源特征构造通用搜索引擎的查询以获得相关网页。本文设计并实现了多线程的抓取系统,用以快速收集资源相关网页。
2)软件资源描述信息的提取:本文将开发人员需要的描述信息分为三类一一定义型、摘要型和全面型。全面型描述包含资源功能、目标、使用、用户评价等多方面内容;摘要型描述概括资源主要的功能、目标等信息;定义型描述界定软件资源的界限。本文从相关网页中提取主要内容,并对内容进行去重,将去重后的网页内容作为全面型描述;将资源全面型描述进行分段,选取出与资源实体最相似的若干段作为摘要型描述;利用规则方法,提取主语是资源名称的若干语句作为资源的定义型描述。
3)软件资源标签的生成:本文提出两种标签生成方式--提取式和分类式。提取式标签生成方法主要提取资源名称、版本、License等隶属于资源属性特征的词作为标签。分类式标签生成方法利用资源库中含有标签的资源作为训练数据,对标签构造标签类别,将资源自动分到标签类别中以生成相应的标签。
基于上述解决方案,本文在北京大学软件资源库系统的基础上设计并实现了软件资源信息收集整理工具--Assetlnfo Engine。本文对工具的设计和实现进行了详细的论述,并对工具进行了实验验证,通过实验可以发现1)Internet上存在大量与软件资源相关的网页;2)AssetlnfoEngine能够有效的从资源相关网页中提取出资源的描述信息。3)AssetlnfoEngine能够有效的为资源生成标签。