摘要:信息时代背景下, 计算机技术等现代信息技术在社会各个行业、领域, 得到了越来越广泛且深入的应用, 极大提高人们信息处理效率, 方便人们工作、生活的同时, 对于数据挖掘技术的科学应用, 提出了更高、更新的要求。信息时代背景下, 数据挖掘技术表现出广阔的应用前景, 是快速处理海量信息的技术基础。笔者即从数据挖掘技术入手, 就其在软件工程中的应用, 发表几点看法, 以供相关人员参考。
关键词:数据挖掘技术; 软件工程; 应用;
本文即围绕数据挖掘技术, 就其在软件工程中的具体应用, 进行了分析和探讨, 具体内容如下:
1 数据挖掘技术概述
数据挖掘 (Data mining) , 也称为数据采矿, 是数据库知识发现的一个基础环节, 是在海量数据中自动完成隐藏特殊关系数据搜索的过程, 数据挖掘技术就是这一过程应用的相关技术。一般来说, 数据挖掘过程可以分为四个环节进行, 分别是选择软件库保存的数据、完成选择数据的预处理、对预处理得到的格式化数据进行挖掘、以及最终获得目标数据。
软件工程是数据挖掘技术的重要应用领域, 具体的数据挖掘工作普遍分为三个层次进行, 分别是交互式可视数据探查、自动模式提取和建构模型。三个层次之间存在着直接的关联联系, 其中可视数据探查是后两者的基础, 而建构模型又是前两者的指导。
软件工程领域应用数据挖掘技术的目的, 主要是借助聚类、分析、预测、统计等技术手段, 在海量数据资源中快速分辨、寻找符合人们应用需求的数据信息, 并自动将检索到的信息反馈至软件系统。此外, 为保障数据挖掘的科学性和有效性, 数据源还应尽可能达到庞大、真实的要求。
2 数据挖掘技术的应用分析
2.1 开源软件开发中的应用分析
所谓开源软件, 就是源代码处于开放状态的软件, 一般来说, 开源软件普遍对客户免费开放, 也正由于开源软件的这一特性, 导致对开源软件的管理和控制变得相对困难。在这种环境背景下, 在开源软件开发阶段引入数据挖掘技术, 可有效提高开源软件的开发质量。以大阪大学设计的分布式数据挖掘系统为例, 该系统就可以在实现大规模系统挖掘的同时, 完成对不同开源软件的挖掘;再以牛津大学设计的数据挖掘系统为例, 该系统实现了系统开发者和使用者的持续跟踪管理, 从而大幅度地提高了开源软甲的使用率。
2.2 软件项目管理中的应用分析
数据挖掘技术在软件项目管理中的应用, 主要表现在以下两个方面:
(1) 版本控制信息挖掘包含的对组织关系的挖掘;
(2) 对版本控制信息的挖掘。
就软件项目管理而言, 其本身具有鲜明的系统性和复杂性特征, 对组织关系的挖掘, 是实现各类资源科学分配和协调的重要前提。以整个软件项目管理过程中产生的电子邮件、共享文档为例, 对此进行数据挖掘就可以有效区分不同工种人员的组织关系, 避免秩序混乱问题的发生, 从而保障软件项目管理工作的顺利进行。
另一方面, 版本控制可以实现对文件内容变化的详细记录, 并作为用户了解版本修订情况的依据和基础。针对版本控制信息应用数据挖掘技术可进一步降低系统维护成本, 同时可起到一定的警示作用, 及时反映系统修复记录中存在的纰漏, 最终达到提高软件项目管理水平的目的。
2.3 程序代码中的应用分析
本文涉及的程序代码, 主要是指克隆代码, 即通过简单的“复制、粘贴”操作获得并再次进行使用的代码。数据挖掘在克隆代码检测中的应用, 是数据挖掘技术应用的早期形式之一, 目前应用较为普遍的方法包括基于标识符对比方法、基于文本对比方法等几类。总的来说, 数据挖掘在克隆代码检测中的应用还有待进一步的发展和完善, 尤其是关于语法信息和语义挖掘的考虑, 以提高检测的科学性和准确性。
对横切关注点进行挖掘, 也是数据挖掘技术的重要应用, 主要是由于部分关注点在程序中的代码具有极高的相似度, 甚至是使用相同代码导致的。目前, 应用于Aspect的挖掘方法众多, 根据不同方法的具体特点, 可以分为形式概念分析方法、本文和类型分析方法、聚类分析方法、以及自然语言分析方法等等。在对执行模式进行数据挖掘时, 应优先选择方法执行关系挖掘和形式概念分析法两种方法。
此外, 数据挖掘技术还可用于对数据库目标构件或代码的挖掘应用, 在数据挖掘技术的支持下, 可大幅度提高检索速度、效率和准确度。
2.4 故障检测中的应用分析
从故障检测的角度分析, 对程序执行记录进行数据挖掘, 可提供程序的交互模式和说明, 而以上信息均可以作为软件故障定位和检测的依据。
对程序说明的数据挖掘过程, 就是对信息的跟踪和逆向建模的过程, 该过程对于加深对程序的理解, 以及优化程序后续的维护管理, 具有重要的作用和意义。目前, 基于规则的挖掘方法是应用较为普遍的方法, 其主要通过对程序行为的挖掘发现对应的规则, 进而借助时态逻辑完成表达。
3 数据挖掘技术的主要应用方法
3.1 分类
数据挖掘技术涉及的相关分类方法, 大致等同于某种预测分类标号的执行动作。在实际应用过程中, 通常需要建构相应的分析模型, 并提前根据相应规则输入概念集或数据类集, 以作为分析模型的应用基础。
目前, 数据挖掘技术应用于软件工程领域的分类方法中, 主要的分类方法包括神经网络分类法、判断树法、贝叶斯分类法、以及支持向量机等几类。其中, 判断树法在分类计算过程中主要借助贪心算法作为逻辑基础, 根据从上而下递归的模式完成判定树的构造, 而判定树包含的各个子节点, 就分别表示不同的软件类别标号。
3.2 聚类
聚类具体是指将研究涉及的大量数据, 按照一定标准细分为不同簇或类的过程, 从而在保障相同簇的对象之间拥有较好相似度的同时, 不同的簇的对象之间有着较明显的差异度。聚类和分类有着本质上的差异, 聚类过程划分的类对象具有不可预知性, 即无指导的学习方法。聚类分析方法在其他算法的预处理范畴中有着大范围的应用, 尤其在数据分布信息独立性分析方面有重要应用, 不仅可更好地挖掘孤立点, 同时可提高欺诈行为检测的效率和准确性。
4 结语
综上所述, 信息时代背景下, 数据挖掘技术是快速处理海量信息、准确寻找目标信息的关键。就软件工程而言, 数据挖掘技术在开源软件开发、软件项目管理、程序代码、以及故障检测等方面, 均有着重要的应用, 相关人员必须提高对数据挖掘技术的重视和关注, 切实加强数据挖掘技术的实际应用, 以促进我国软件工程行业的进一步发展。
参考文献
[1]张佳新.数据挖掘技术在软件工程中的应用探究[J].电脑编程技巧与维护, 2018 (04) :88-89, 114.
[2]阮弘毅.软件工程数据挖掘技术应用研究[J].数码世界, 2018 (02) :126.