论文部分内容阅读
软件构件理解是软件复用过程中关键技术环节之一。近年来,随着互联网和软件开发技术的发展,互联网上积累了大量可复用构件及其构件信息。面对海量资源,开发人员面临的主要问题是如何高效、准确地理解构件的特征,从中获取满足功能和非功能需求的构件并将其组装到目标系统中。互联网上的构件信息有助于开发人员进行构件理解,但这些信息种类繁多、分布广泛、数量巨大且不断更新,现有工作在收集整理互联网上构件信息及用其辅助开发人员进行构件理解等方面尚有较多改进之处。 本文围绕互联网环境下软件构件理解问题展开研究,研究获取及应用互联网上的构件信息进行构件理解的方法,以支撑开发人员进行高效的软件复用。本文主要研究内容及工作特色包括: (1)针对获取及利用互联网上构件信息进行构件理解过程中的共性问题,提出了一套基于互联网的构件理解技术框架。该技术框架能够为基于互联网上构件信息进行构件理解提供框架性指导。通过对北京大学软件资产管理信息模型进行五个方面的扩展,得到了一个构件理解信息模型,能够对基于互联网的构件理解过程中的主要信息进行描述;针对互联网上获得的各类构件信息的海量存储问题,研究了一种通用的构件信息存储机制,实现了各类构件信息的统一存取,并支持数据的按需存储和复用;定义了基于互联网上构件信息进行构件理解的共性过程及过程间的协作关系,支持过程的动态更新和用户配置,能够实现具体理解方法的集成。以技术框架为指导,本文进一步研究了软件构件的功能特性和非功能特性的理解方法,并设计实现了相应的支持系统。 (2)针对理解构件功能特性的需求,以开源软件为主要研究对象,提出了一种基于主题建模和静态分析的软件代码功能性主题获取方法。该方法以主题为核心理解单元,利用功能性主题及其关联信息(关联词项、代码及描述信息等)帮助开发人员理解开源软件功能特性。与传统理解单元(类、方法、变量或关键词等)相比,功能性主题具有面向语义、粒度更大、抽象层次更高等特点,更适合于捕获构件信息中的高层抽象业务逻辑信息。该方法在应用一组预处理启发式规则过滤代码中的噪音(编程相关信息等)基础上构造主题建模输入;利用主题建模技术从输入中挖掘原始主题;针对原始主题中各类主题混杂的问题,基于静态分析获得的代码间结构关系,提出了一种基于主题内聚度的功能性主题识别算法;利用代码注释及相关文档基于向量空间模型为主题生成易于理解的描述信息,帮助开发人员更好地理解主题的语义。文中基于Lucene、Heritrix等多个不同规模开源软件的实验分析验证了方法的有效性。 (3)针对构件非功能特性理解问题,以Web服务为主要研究对象,使用可信性度量Web服务的非功能特性,提出了一种基于互联网上全面可信证据的可信评估方法。该方法能够综合QoS为代表的客观可信评估证据和用户反馈为基础的主观可信评估证据对Web服务进行可信评估,应用评估结果帮助开发人员理解Web服务非功能特性。文中提出了基于命题逻辑和基于可信证据矩阵的可信评估算法,前者使用可信等级表示Web服务可信性,较为直接、易于理解,并可根据应用领域为可信等级赋予语义(如可用级、实用级等);后者使用连续的可信值表示Web服务可信性,较为精确、易于计算及与其他方法(如搜索引擎排序算法、可信预测算法等)结合。针对Web服务非功能特性动态变化的特性,在可信评估基础上,提出了一种基于时间序列分析的可信性预测方法。该方法能够通过一个多步迭代的过程对预测模型进行自动识别、拟合及诊断,并在此基础上根据历史可信数据对Web服务未来一段时间内的非功能特性进行预测分析。文中基于收集的3万余个Web服务进行案例和实验分析,分别验证了上述方法的有效性。 在上述研究基础上,基于本文提出的技术框架,从互联网上收集整理了大量开源软件和Web服务构件信息,设计实现了支持上述构件理解方法的支持系统MIKE和CoWS。MIKE是一个面向主题的开源软件代码理解系统,以主题为核心理解单元,利用主题及其关联信息帮助开发人员理解开源软件功能及其代码实现;CoWS是一个支持可信评估的Web服务搜索引擎,将可信评估结果融入到Web服务搜索过程中,帮助开发人员发现并选择满足功能和非功能需求的Web服务。并将收集到的构件信息和两个支持系统发布到互联网上,目前已被国内外相关研究所接受和使用。