论文部分内容阅读
“软件定义一切”的思想正在对整个行业造成深刻的影响,人类对软件的需求日益剧增,软件过程模型对于保证开发高质、高效的软件产品具有重要作用。传统软件过程建模方法存在模型获取困难、步骤复杂、结果不准确等问题。因此,传统人为建模方法已经不能有效满足当前大数据时代软件工程领域对模型获取的需求,如何自动化地从软件开发组织已有的海量过程数据中挖掘出过程模型已经成为了当前软件过程研究的热点问题。本文针对缺少活动及案例属性的软件开发过程数据进行研究,提出双层次的过程挖掘框架,重点解决基于过程日志的活动信息获取问题、过程实例少而导致的单实例性问题、具有复杂行为的开发过程高效挖掘问题、基于软件过程库的模型发现问题。具体而言从以下四个方面展开工作:(1)活动层挖掘方面,提出加权结构连接向量模型对过程日志进行向量化,通过平均活动熵来确定过程日志模糊聚类的最终结果,并将聚类结果作为活动信息支持后续挖掘工作的开展;(2)过程层单触发序列循环实例划分方面,对划分基础的正确性进行证明,提出改进的启发式度量方法来发现单触发序列中的循环,并将多条循环实例作为过程日志的案例信息;(3)支持复杂结构的混成挖掘方法方面,针对软件开发过程的特征,首先将事件日志转化为具有发生次数的后继图,然后通过对活动两两之间的关系模式进行判断,递归式地利用过程树和基本块对日志及对应的后继图进行更新,直到所有基本结构被发现为止。最后又利用并行化多线程的方法来加快搜索速度;(4)基于软件过程库的过程模型发现方面,在过程层主要针对当前亟待解决的软件过程模型的检索和相似性问题进行研究,提出一种基于过程树的软件过程索引构建方法以及基于过程树的编辑距离的过程模型相似性度量方法;在活动层通过建立知识库来进行功能分解,提出将活动分解为一系列子活动及之间关系的方法。通过大量基于真实数据的实验及案例研究对上述研究内容进行了验证。总之,本文旨在为软件开发过程挖掘奠定理论基础,建立过程挖掘与过程管理之间的桥梁,对于提高软件产品质量和效率具有重要的科学意义和应用价值。