论文部分内容阅读
群体软件工程正成为云时代软件开发新模式,它利用群体开发力量和群体智能技术,快速构造规模庞大、功能复杂、技术创新的软件。然而群体协同开发面临大规模数据的挑战:几十万名开发人员、千万行代码、上千版本版次、大量的需求、设计模型、测试用例、缺陷、变更、任务、讨论记录和邮件等等,如何从这些分布异构的大规模数据中高效地知晓信息和发现知识成为了急需解决的问题。针对以上问题,本文将语义网引入软件工程领域,把这些多源异构数据进行细粒度语义关联,基于本体技术,自动构建包括需求、模块、代码、缺陷、提交、开发人员、邮件列表等核心实体的软件工程关联数据,为群体软件工程的信息智能搜索、数据挖掘、变更影响分析等提供有力的数据支撑。具体地,本文的贡献包括:1)软件工程本体的构建。采用基于映射的技术将来自不同数据源的结构化元数据直接映射生成初始本体,并进行本体融合,构建出软件工程领域本体。本文研究改进了基于映射的初始本体自动构建技术和本体融合技术。通过关系模式的抽取与合并,提高了映射生成的初始本体准确性;通过从本体概念命名、属性、关联和结构四个纬度识别相同或相似的本体概念并将其合并,从而得到完整有效的软件工程本体。采用eclipse.jdt、tomcat7和openssh开源项目进行对比实验,实验结果表明,和现有方法相比较,本文方法构建出的软件工程本体准确性更高。2)软件工程关联数据的抽取。本文采用了基于映射的技术,将各数据源中的结构化数据直接映射生成软件工程关联数据(即软件工程本体的实例),并利用实例消解技术和实例属性消歧技术进行清洗,解决存在的数据冗余和冲突问题。基于开源项目的对比实验表明,和现有方法相比较,本文方法能更有效地识别和处理抽取关联数据中的冗余和冲突,得到更有效的关联数据。3)软件工程关联数据的发现。基于同义词、动宾短语和结构关系三个特征,利用自然语言处理技术和信息检索技术从各数据源结构化与非结构化数据中发现潜在的或遗漏的关联关系,扩充关联数据。以两个开源项目和两个闭源项目为实验数据进行方法对比和特征对比实验,实验结果表明,本文方法发现的潜在关联数据在精准率和召回率上都高于现有其他方法,同时在三个特征中动宾短语对关联数据发现效率的提升最为明显。