论文摘要
基于构件的软件开发(CBSD)提出复用软件构件,而不是采用一切“从零开始”的方式,来组装特定领域的应用系统。CBSD可以充分利用已有的开发成果,减少重复劳动,提高软件的开发效率。同时,通过复用已测试过的高质量构件,避免了重新开发可能引入的错误,从而提高了软件质量。然而当存在大量构件时,在构件库中检索符合特定复用需求的构件变得十分困难。特别是在万维网(WWW)逐渐成为一个丰富的构件来源之后,这一问题变得更加突出。因此可复用构件的描述和检索一直是CBSD的一个研究重点。传统的基于关键字、型构(signature)或刻面的构件检索由于缺少特定领域语义信息,因此在查准率和查全率上存在不足。针对这些问题,许多学者提出对基于语义的构件检索方法进行研究。基于语义的构件检索在各个步骤都考虑到用户查询的语义以及相关领域的知识,因而具有较高的查准率和查全率。然而从当前一些研究工作看,基于语义的构件检索仍然存在一个突出的问题,即用户对问题域的理解以及所熟悉的自然语言表达方式与构件的规范语义描述之间存在差异。本文提出了一种基于语义构件检索的交互式查询方案生成方法,允许用户使用受限的自然语言进行检索。该方法首先通过概念映射将用户的自然语言查询转换为本体描述,在此基础上根据语义约束关系对原始查询方案进行扩展,并根据初步的返回结果进行优化,从而最终确定用户的查询方案。其中,概念映射充分利用了用户自然语言描述中的上下文(主要由谓语、宾语、状语和定语组成)信息以及领域本体中的语义上下文之间的相似度信息,同时辅以交互式会话过程。而查询方案优化过程则根据初步的查询返回结果计算可能的优化方案,并通过交互会话引导用户进行确认。该方法可以充分挖掘潜在的用户查询语义,对于提高构件检索的查准率和查全率、减少查询努力具有十分重要的作用。本文对基于语义的构件检索的各个步骤进行了研究,并实现了整个构件检索系统。文章的最后对用户查询实例进行了演示,并且分析了检索系统的查准率、查全率和检索效率,以此验证了本文所提出方法。