群体软件工程环境下的软件本体建模及其相关技术
【摘要】:群体模式是利用群体的智慧完成相关工作的一种新兴模式。随着近些年互联网的快速发展和普及,群体模式在很多社会创新领域被采用。研究者将群体模式引入软件工程领域并提出群体软件工程的概念。在群体软件工程中,开发过程由传统封闭模式转化为开放模式,软件开发人员不再相对固定,开发时间地点也不再统一,组织方式也由传统工厂式转变到社区模式,开发方法从机器工程转变为社会工程。因此,这个过程需要协同工作和交换分享软件描述、模型和代码等诸多资源。如何表示和交互这些共享资源对于实现群体软件开发至关重要。选择一个核心的知识表示模型是一个亟待考虑的工作。本文引入本体概念作为群体软件开发中知识表示的核心模型。本体具有概念化、明确、形式化、可共享等特征,非常适合这个开放的群体软件开发场景。本文的主要工作包括以下三个方面:首先,构建了一个软件本体模型来描述软件信息。本文借鉴了一些Web服务和组件的本体建模方式,将软件本体模型设计为概念层次结构:顶层概念为软件概念,其子概念包括系统软件概念、多媒体软件概念、办公软件概念等。软件概念包含名称、开发者、大小、版本号等属性。本体模型添加与软件相关的其它概念,如接口概念、数字签名概念、硬件概念等。软件本体模型主要关注两类关系:软件间的关系,如软件间依赖关系、分支软件与主线软件之间的关系、完整软件与其包含组件之间的关系等,软件与其它概念间的关系,如软件与数字签名之间的关系、与接口描述之间的关系、与硬件之间依赖的关系等。其次,以构建手机子本体为例,详细介绍了软件本体建模过程。具体工作包括:设计网络爬虫从手机应用商店获取手机软件信息,并对初始文本数据进行预处理;构建手机软件本体并检查本体一致性:由于数据集中存在不少重复软件,其名称可能不完全相同,设计一个软件语义相似度方法来检测同款软件关系,从而去除重复;针对部分有错误或者缺失的数据,结合同款软件关系和互联网搜索引擎,自动化地修正和补充。实验获取到三十多万个软件实体,检测到四万多个同款软件集合。最后,通过功能聚类,丰富软件本体模型语义。其核心是对PC软件的功能表述构建对应的本体内容。具体工作包括:设计网络爬虫从Softpedia网站中获取大量软件的基本信息和功能信息;设计基于语义距离的K-means聚类方法,处理由自然语言表达的功能信息。该方法主要利用WordNet工具计算单词间的语义相似度,并使用基于短文本的点互信息技术计算单词间的相似度作为补充。该方法聚集相似的软件功能,并把最接近簇中心的功能代表相应的簇,然后加入到软件功能本体中。与基于余弦距离的K-means聚类进行对比实验,结果显示本文设计的方法在BCubed召回率上较高,最后说明功能聚类对软件本体建模的影响。