摘要:随着信息技术的持续发展,信息技术在日常生活及企业生产中得以大范围深入应用,也产生了各种各样的数据信息。然而,日常生活及企业生产所产生的数据是零碎的,对于企业生产研发而言是毫无意义的,这突出了数据挖掘技术应用的重要性。在当前软件工程领域内,数据挖掘技术发挥着重要的作用,将日常生活及企业生产应用所产生的数据由零碎提炼为有应用价值的数据信息。本文结合数据挖掘技术的定义与内涵,探讨数据挖掘技术在当前软件工程中的应用策略。
关键词:数据挖掘技术;软件工程;应用
在当前大数据时代,居民生活及企业生产领域内应用信息系统必然会产生大量的数据,这需要应用数据挖掘技术已发现其中的信息规律。而在软件工程领域内,所获取的数据信息同样非常庞大,这需要在庞大的数据量中应用数据挖掘技术以提炼出更多可用信息,必然推动数据挖掘技术在软件工程领域内大范围深入应用。
1 数据挖掘技术概述
1.1 数据挖掘技术的定义
数据挖掘技术,也成为数据库中的知识发现,发展于上个世纪末,是当前数据库领域内最新的应用研究技术。历经多年的发展,数据挖掘技术已成为当前数据库领域内最为关键的组成部分,但是还没有较为统一的定义。当前数据挖掘技术定义认可度最高的便是由W.J.Frawley等人所提出的,将数据挖掘技术理解为从数据中提炼出更为高效、更为新颖、更具潜在应用价值,并最终可理解模式的非平凡过程中。主要具有如下多方面内容:(1)数据源务必真实、数据量较大、并含噪音,不完全;(2)应用于获取终端用户兴趣较高的未知知识信息;(3)所获取的知识具备有效性、新颖性,且为潜在的;(4)更用于发现特定的问题,对知识量没有过多要求;综合而言,数据挖掘属于复杂度较高的交叉学科,包括人工智能、模式识别、统计学、数据可视化等等交叉性相对较大的新型学科,未来拥有良好的发展空间。
1.2 数据挖掘技术一般流程
一般而言,数据挖掘主要由数据预处理、数据挖掘以及模式评估和知识表示等三阶段组成。具体如下:(1)数据预处理。主要由原始信息获取、数据清洗、数据抽取及数据交换等构成。原始数据获取在于获取发现任务的处理对象,主要按照相应的需求而获取数据。数据清洗目的在于完善原始数据所缺失的数据。数据抽取指将特定的数据源中获取与分析任务相关的数据。数据转换在于规格化数据,以满足特定范围要求。(2)数据挖掘,第一步便是明确挖掘任务,包括数据分类、数据总结等等,紧接着便是确定挖掘算法,应结合数据实际特点以及具体系统特定需求来确定算法。(3)模式评估与知识表示。模式用于表示数据挖掘所形成的结果,用特定的兴趣度进行度量,用于识别表示知识的真正有趣模式。在此之中所使用的度量特定值通常由领域专家、用户标准等给出。
1.3 数据挖掘技术当前应用领域
数据挖掘技术的产生,最大的目的在于实际应用。当前,数据挖掘技术被大范围应用于诸多领域内,包括电信、银行、交通、保险及零售等重点商业领域内,目前主要被应用于解决包括数据库营销、背景分析、客户群体划分以及交叉销售等特定市场行为分析中,还包括客户关系管理、客户信用分析等市场消费者行为分析中。在当前金融市场领域内,包括银行及证券公司等等,信息量庞大,假如出现信用卡欺诈等行为将给金融机构带来巨大的损失。应用数据挖掘技术,可深入分析客户或者潜在客户的信用水平,最大化地减少金融机构潜在的损失。当前数据挖掘技术在软件工程应用最为典型的案例包括投资评估预测以及股票交易市场预测等。同时,在医学、工农业、军事、电信以及互联网领域内,数据挖掘技术均得以大范围深入应用,发挥着重要的作用。
2 数据挖掘技术在软件工程中应用内容
2.1 软件工程应用数据挖掘技术在的历史与现状分析
数据挖掘技术,最早产生于上个世纪末,早先另称为数据库中知识发现,以数据库为发展基础。历经多年的发展,数据挖掘技术的发展重心已从过去的理论化研究转移至实际系统应用领域,并且在实际发展中呈现出多学科相互渗透等发展趋势,最终重要的便是与软件工程的交叉结合发展。软件工程,最早于上个世纪六十年代末所进行的“软件危机”摆脱会议上由科委会进行讨论、提出并制定的。软件工程,是通过工程化的方式构建并维护积极有效的、可用性较高、软件质量良好的特定学科。软件工程,是基于特定的项目成本、项目周期基础上,按照特定用户的实际需求开发而成的软件产品。在软件工程领域内应用数据挖掘技术主要开始于上个世纪九十年代初,由 Allen K 等人提出通过数据挖掘技术以分析探讨软件工程内系统代码间的复杂关系。在此之后,数据挖掘技术在软件工程中得以高速的应用发展,并呈现出较大的应用价值。包括 ASE、ICSE 等全球性的顶尖会议均安排专业性较强的会议主题以探讨软件工程中数据挖掘技术的实际情况情况。于 21 世纪初,挖掘软件资源库研讨会的胜利召开,意味着数据挖掘技术在软件工程中的应用已成为当前软件工程学科中非常关键的应用分支点,并已逐步深入大范围渗透至软件工程代码分析、系统漏洞检测、软件工程项目管理以及开源软件开发等不同应用领域内。当前软件工程应用数据挖掘技术主要细分为如下几个方面。首先,挖掘对象,也就是将软件工程数据库作为数据挖掘的独享,通常包括软件工程系统源代码信息库、软件工程系统历史版本信息、软件工程版本状态以及软件工程文本数据库等等。在当前软件工程开发以及实际应用中存在诸多具有较大研究价值的数据信息,这对于未来更高效地开展软件工程开发工作有着较大的研究价值。其次,所应用的数据挖掘技术,应用价值较大的重要包括分类、聚类、评估与预测以及关联等等。此外,在当前软件工程应用数据挖掘技术时通常需要协助的目标包括漏洞检测以及缺陷探测等等方面。
2.2 软件版本信息挖掘
软件工程版本控制信息挖掘,是当前软件工程领域内应用数据挖掘技术范围最广的对象之一。软件工程版本控制目的在于可对软件工程开发人员在软件开发过程中所编辑的信息进行统一化的管理,以确保在软件开发过程中软件工程所有数据均能够得以一致更新,这也是当前软件工程确保软件开发质量的重要渠道,以积极开展软件工程项目开发任务。在当前软件工程系统版本信息控制中应用数据挖掘技术,重点在于将软件开发变更信息纳入数据挖掘范畴之内,以深入分析探讨同一软件平台不同程序模块间所存在的相互关系或差异,从而更为有效地分析、预测软件工程系统模块在未来实际应用中可能所存在的潜在漏洞问题,并分析软件工程系统模块未来可能的发展趋势。将数据挖掘技术深入应用于软件工程版本信息控制工作中,可明显降低软件工程的后期运维成本,并且解决过去因软件工程变更所造成的系统漏洞问题,还可对后续的软件工程运维产生积极有效的警示作用。
2.3 软件漏洞检测挖掘
在当前软件工程应用数据挖掘技术内,检测软件漏洞是最为重要的应用目标之一。应用目的在于获取并确定软件工程在系统开发阶段所产生的问题与漏洞,并针对所产生的漏洞问题制定修复处理方案,及时进行处理,以提升软件工程的运行质量与安全系数。一般而言,在软件工程中应用数据挖掘技术开展软件漏洞检测工作由如下几部分组成:第一,明确软件漏洞检测项目内容。以终端用户层面进行考虑,深入分析终端用户会提出哪些系统应用需求,以最终确定应该从哪些方面开展软件测试工作,应该采用何种方法以更为高效地进行软件测试工作,并最终确定软件工程的测试计划与测试方案。第二,深入开展软件工程功能漏洞检测数据信息的获取、清理与转换工作。通过软件工程系统平台的数据信息进行分析,获取当前软件工程中所存在的系统漏洞问题信息,并清理当前软件工程中所存在的冗余信息,并持续完善当前软件工程中所或缺的系统平台数据信息,从而将软件工程系统数据提炼为信息与知识。第三,科学、合理地选择软件工程合适的数据挖掘数据,并深入开展数据信息的验证与训练工作。在软件工程中深入应用数据挖掘技术以开展软件工程数据训练与测试工作,并严格按照软件工程的实际需求,科学、正确地选用积极有效的数据挖掘技术。第四,科学划分软件工程中所存在的系统平台缺陷与漏洞,正确描述与合理定位。在软件工程中正确应用数据挖掘技术以高效地定位软件工程的系统漏洞问题,然而依据特定的系统管理方法科学分类当前系统平台所存在的系统漏洞,科学描述与定位,以便软件工程项目管理人员高效管理平台漏洞问题。第五,在软件工程中深入应用数据挖掘技术以深入开展系统测试工作。在当前的软件工程中应用数据挖掘技术目的在于将所获取的工程数据信息按照一定的规则转化为知识,从而将转换后的知识存储到所指定的信息库内,并依据相应的要求严格再次进行软件测试工作,以最终确定软件工程内是否存在上述的漏洞问题,并将再次测试的结果应用于后续的软件工程项目开发工作中。
2.4 开源软件代码挖掘
开源软件代码挖掘,可归结为软件工程数据挖掘技术应用中的对象挖掘类型。其中,开源软件代码挖掘技术应用范围最广的应该是代码克隆检测,通常使用于软件程序代码以及系统应用数据的复制与拷贝。通过数据挖掘领域内代码克隆检测技术的应用,可实现代码检测操作,解决过去软件工程中所存在的代码漏洞问题,大大地提升了软件工程后期的运维效率与质量。
2.5 软件执行记录挖掘
在数据挖掘技术应用过程中,软件执行记录挖掘便是其中最为重要的应用领域之一。在软件执行记录中应用数据挖掘技术,目的在于借助于对软件系统的执行路径进行大数据分析,以探讨分析不同软件间或者同一软件不同模块代码间所存在的关联关系。在软件执行记录中应用数据挖掘技术的本质在于深入跟踪软件系统的执行路径,从而达到逆向建模的目的,以更好地跟踪、分析、维护当前所使用的软件系统代码,保障软件工程的稳定性。
3 数据挖掘技术在软件工程应用的主要方法
当前软件工程中应用数据挖掘技术主要通过如下几种方法予以实现:
3.1 分类
数据挖掘技术所应用的分类方法,可理解为某种预测分类标号的执行动作,一般情况下需要事先构建特定的分析模型,并按照一定的规则输入所需的数据类集或概念集,为分析模型的实际应用提供分类基础。在当前软件工程数据挖掘技术所应用的分类方法中,主要可细分为判断树法、神经网络分类法、支持向量机、贝叶斯分类法以及 K-最临近分类法等等。其中,判定树法主要将贪心算法作为分类法计算的逻辑基础,按照自上而下递归的方法完成判定树的构造工作,判定树中不同的子节点均代表着特定的软件类别标号,也就是软件工程相应的最终分类结果。而 K-最临近分类法与支持向量机均属于判定树法范畴之内。K-最临近分类法计算的基本逻辑为,假如特定的样品在规定的特征空间内有 K 个相似度最高的样本,并且这些样本绝大部分均可归属于特定的类别,则可推测该样品也应该归属于此类别。K-最临近分类算法当前最多应用于样本容量相对庞大的自动分类计算中,而不适用样本容量相对较少的应用案例中,以避免产生误分现象。
3.2 聚类
聚类,通常是指将所研究的数据或信息对象细分为不同的类或簇,以在同一个簇内对象间产生相对较高的相似度,并且确保不同的簇对象间有着相对较大的差异度。与分类有所区别,聚类所要划分的类对象是不可预知的,此种学习方法可归属为无指导的。聚类分析方法通常被大范围应用于其他算法的预处理范畴中,通常被用于分析数据分布信息的独立性巩固,从而更好地挖掘孤立点,从而更有效地分析了解可能存在的欺诈行为等等。通常而言,在使用聚类分析方法时需要输入一组诸如(X,s)或(X,d)的有序组数据,其中用 s 或者 d 以分析评估不同样本之间的相似度或者相异度高低。应用聚类分析方法通常可获取诸如 C={C1, C2, C3,…,Ck}的分区数据集,其中 Cn 作为X 的子集,也被称之为类。应用聚类分析方法目的在于组建 k个划分,不同的划分意味着不同的簇。
3.3 关联
在软件工程数据挖掘技术所利用的关联方法,主要指在规模相对较大的数据中所形成的关联或者相关联系。数据挖掘技术中的关联方法通常具备如下关键属性。首先为支持度,也就是在 A 跟 B 等数据集之间出现事务集 D 的概率高低。其次为置信度,主要指出现 A 的事务集 D 中,B 同样存在的概率高低。其中,强规则主要指同时满足最小置信度与最小支持度的规则。在特定的事务集 D 中,挖掘技术中的关联规则通常是指所形成的可信度与支持度比软件终端用户所设定的最小可信度及最小支持度大的关联规则。
3.4 软件工程数据检索
与软件工程代码克隆有所相近,作为软件工程作为原始的数据挖掘方法,在数据挖掘过程中主要由信息录入、信息查找以及数据信息内容分析等三个主要挖掘过程。其中,信息录入主要是将软件工程数据挖掘分析检索的信息对象进行维护录入的过程;而数据信息查找,主要是指软件工程最终用户准备获取分析信息对象时,将相应的检索关键词维护到相应的检索框内,通过查找分析的功能实现研究对象的分析目的。而数据信息分析,主要指软件工程终端用户结合个人所需要的数据分析需求进行在线阅读或者线下分析。软件工程终端用户当进行下载数据时,会相应地产生下载信息,能够相对简单地查找分析客户所获取的信息记录,以进行用户行为分析处理。
4 软件工程数据挖掘技术应用面临的挑战及未来发展
4.1 软件工程数据挖掘技术应用面临的挑战
在当前软件工程应用数据挖掘技术时,软件工程自身所使用的数据库有着自身独特的特性,在某种程度上对软件工程中数据挖掘技术的应用产生一定影响,提出了新的挑战。整体而言,当前软件工程应用数据挖掘技术面临如下几方面的挑战:软件工程数据复杂度高是当前软件工程应用数据挖掘所面临的一大挑战。当前软件工程中所产生的数据通常包括结构式数据类型以及非结构式数据类型,这也造成并非所有的数据挖掘算法能够通用语软件工程中,即便结构式数据类型与非结构式数据类型存在某种联系。比如,在应用数据挖掘技术分析特定软件工程的代码缺陷时,因结构式数据类型会存在相应比例的非结构式数据,而非结构式数据同样也会含有一定比例的结构化数据,这明显加大了软件工程数据挖掘算法的设计难度。其次,软件工程中相对较为复杂的系统数据是当前数据挖掘技术应用的一大困难以外,还同时面临着非传统分析的重大困难。在软件工程数据挖掘技术应用过程中将所获取的数据或知识呈现给软件最终用户是其最终应用步骤与目标。在过去的数据挖掘应用过程中,包括传统金融领域及新兴的电子商务应用领域,所提交的数据信息内容通常包括简单的文字及图表等数据存储方式。而在软件工程中所需要存储的数据内容并非传统简单的统计数据。为了能够更高效地配合软件开发工作,实际案例、软件开发模板信息、软件缺陷问题以及软件设计结构等均是不可或缺的重要存储内容,这必然要求在软件工程应用数据挖掘技术时持续研发新型的信息知识存储方式,以及信息展示以及知识评价方法与手段。此外,在软件工程应用数据挖掘技术进行结果评价时,同样需要面临一个棘手问题。在传统金融及其他领域内应用数据挖掘技术已形成相对较为成熟的结果评价体系,而新兴的软件工程数据挖掘结果评价体系并未完善。因软件工程开发者所面对的数据信息复杂度相对较高,难以通过积极有效的定量分析方法以完成软件工程的数据挖掘结果评价工作。
4.2 软件工程数据挖掘技术应用未来发展
在软件工程领域内应用数据挖掘技术,与软件工程的程序实际开发编写工作息息相关。但是,在实际软件工程代码编写过程中,代码重用、静态及动态规则重要等诸多突出问题,严重影响了数据挖掘技术在软件工程中的高效应用。在当前数据量急剧增长的信息网络时代,对数据的管理处理方式也产生了重大的变化,这自然决定了数据挖掘未来的发展方向也会有所调整。实际上,当前互联网信息时代通常会采用云处理的方式以解决数据复杂度高的数据处理问题,明显提升了数据挖掘处理效率。当前信息时代所形成的大数据发展趋势,自然也决定了数据挖掘技术向大数据模式发展,自然意味着在软件工程应用数据挖掘技术时应同时考虑数据处理与数据管理的多方面变化情况,最大化地提升数据挖掘技术应用效果。
5 结语
软件工程自身发展的复杂性,必然决定了软件开发时需应用更具量化的精准评估工具,这也突出了数据挖掘技术应用的必要性,以满足软件工程开发过程中众多个性化需求。历经多年的发展,数据挖掘技术应用于软件工程中已产生良好的经济效益,从而给软件应用者提供积极有效的决策数据。因而,在后续的软件工程发展中应该推动数据挖掘技术的大范围深入应用。
参考文献:
[1]陈建桦. 数据挖掘技术在软件工程中的应用研究[J]. 硅谷,2014(1):73+51.
[2]雷蕾. 0关于数据挖掘技术在软件工程中的应用综述[J].电子测试,2014(2):128-129.
[3]罗韬,罗峰. 数据挖掘在软件工程领域中的应用浅析[J]. 电子技术与软件工程,2014(1):222.
[4]徐赐发. 数据挖掘在软件工程领域中的应用浅析[J]. 电子技术与软件工程,2014(19):206.
作者:耿正熙 单位:曲阜师范大学信息科学与工程学院
网为您提供的关于《数据挖掘技术在软件工程中的应用》的内容,如需查看更多硕士毕业论文范文,查找硕士论文、博士论文、研究生论文参考资料,欢迎访问硕士论文网软件工程实习论文栏目。