在软件工程中数据挖掘技术的应用探索
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在软件工程中数据挖掘技术的应用探索
摘要:自进入大数据时代以来,强大的数据网络已经对人们的工作、生活,乃至科技发展方向都产生了巨大的影响。
尤其是在软件工程中数据挖掘技术的应用,不仅有助于提高数据信息的处理效率,还为开发出高质量软件工程项目奠定了良好的基础。
所以,深入研究与剖析数据挖掘技术在软件工程中的应用具有十分重要的现实意义。
为此,该文结合个人在数据挖掘技术上的研究经验,以及相关的参考文献,从多个方向、多个角度入手,对数据挖掘技术在软件工程中的作用与应用展开探讨,旨在为相关工作者在软件工程科学技术的发展上提供有益的参考借鉴。
关键词:软件工程数据挖掘技术优势应用发展方向在軟件开发过程中,往往需要收集海量的数据信息,并对这些数据信息进行不断的更新、优化。
而数据挖掘技术恰恰就是从海量数据信息中寻求其内部发展规律的一种技术手段。
也正因如此,将数据挖掘技术应用到软件工程,有助于提高软件开发效率,提高软件开发质量,同时也为后来的软件管理工作奠定了良好的基础。
所以,做好数据挖掘技术的应用则具有十分巨大的价值。
该文结合相关参考文献以及个人实践研究经验,对数据挖掘技术的应用展开分析,以期促
进数据挖掘技术与软件工程的紧密结合,更好地发挥其应用价值。
1 软件工程与数据挖掘技术溯源
早在20世纪80年代初期,为了对数据库中所蕴含的知识价值进行更好的挖掘,数据挖掘技术这一全新的理论被提出来。
随着大数据技术的飞速发展,数据挖掘技术也得到了越来越多的关注,相应的研究重点也由最初的理论研究转变为实践操作[1]。
软件工程最早出现于20世纪60年代末期,是为了更好地解决软件危机而提出的全新概念[2]。
软件工程与数据挖掘技术在历史发展上大致保持在同步状态,这为数据挖掘技术在软件工程中的应用奠定了十分良好的基础。
进入21世纪至今,在全球范围内软件工程的发展进入到了一个崭新的阶段,同时在软件工程中需要使用的信息数据也越来越多,对信息数据的处理难度也越来越大。
利用数据挖掘技术解决在软件工程工作领域中遭遇到的实际困难,俨然已经成为最好的选择与必然趋势[3]。
2 在软件工程中应用数据挖掘技术的优势
2.1 加强对数据信息的正确理解
单从个人角度来讲,每个人对每条数据信息的理解都不尽相同。
如果对数据信息的采集与理解上仅依靠人力作业,不
仅大大地增加了数据信息的采集与理解时间,也增加了数据信息的处理成本。
由于受到个人主观意识的影响,数据信息的权威性也有待商榷[4]。
而利用数据挖掘技术,将其科学合理地应用在软件工程中,不仅能够针对不同的数据分析目标,对数据信息展开科学化分类,还能够对采集到的数据信息进行系统化整合,形成完善的查询体系,大大提高数据信息的权威性与准确性,并为后续软件开发、管理等工作提供便利,也进一步增强了对数据信息的正确理解。
2.2 有助于提高数据信息的处理质量
数据挖掘技术能够开展大规模的数据计算。
近年来,随着数据挖掘技术的进一步完善,其数据功能也越发专业,在数据算速度以及准确程度上都得到了良好的提升[5]。
在实际工作中,只需要利用较短的时间,就可以顺利完成对混乱数据、无效数据的多次筛选与处理,大大提高了数据信息的处理质量。
2.3 有助于提升数据信息的利用率
借助于数据挖掘技术能够对看似无用的、混乱无序的数据信息进行重新分类、深度挖掘,从而得到工作人员想要的数据信息结果。
此时,相关工作人员就可以将所得到的数据信息结果应用到实际工作之中,根据事件效果选择更为适合的数据信息,从而进一步提高数据信息的利用效率。
同时,借
助数据挖掘技术还能够将较为抽象的数据信息,转变成为更容易被人们理解的信息资料,这也就使得转换后的数据信息更容易被人们接受与利用,能够成为人们工作决策的重要支撑。
3 在软件工程中数据挖掘技术的具体应用
3.1 在软件版本信息上的应用
众所周知,在大型软件的开发过程中,软件版本信息管理相对较为复杂,每一次的更新升级都有可能造成代码管理混乱。
而利用数据挖掘技术,不仅可以有效挖掘出软件的历史变更信息,还能够通过对大量代码的对比分析,确定各个版本、模块之间的内部联系,从而在确保代码融合效率的同时,避免出现管理混乱、管理漏洞[6]。
3.2 在软件执行记录上的应用
通过应用数据挖掘技术,实现对软件执行记录的挖掘工作,可实现对软件程序的全面分析,从而确保软件运行符合预期判断。
为此,在执行记录的挖掘上,需要安装路径进行全面的查询,对数据结构进行拟向建模处理,从而展开软件的维护与检测工作,及时发现软件在运行过程中存在的漏洞问题,进一步提高软件运行的可靠性与安全性。
3.3 在软件故障检测中的应用
在软件工程中,科学地应用数据挖掘技术,可以有效检测出软件可能存在的故障问题,进而对软件故障展开针对性的修复与维护。
尤其是在软件的开发与管理过程中,影响软件正常运行的因素众多,仅仅依靠传统的定位技术,虽然能够对软件故障展开初步处理,但是操作相对较为繁琐、低效,且定位精确度不高。
反之,利用数据挖掘技术,结合全新的定位方式,就能够迅速找出软件故源头,从而对软件故障展开高效率地排查与处理。
比如:配合使用程序谱抽象定位,对运行规矩加以处理,并且利用对比的方法,有效排除软件故障问题。
通过数据挖掘技术的应用,还能够有效鉴别出存在缺陷的软件程序,并且科学地分配软件修复顺序,保证每一个软件缺陷都能够获得最佳的修复方式。
需要注意的是,为了进一步提高软件修复效率,应进一步对检测重复缺陷报告技术进行强化。
4 在软件工程中数据挖掘技术的实际应用方法
4.1 关联法
所谓的关联法,主要是指对两个事物之间的内外在联系着重关注的一种研究方法。
在数据挖技术中,关联法常常被应用到数据信息的处理与采集之中。
在关联法的实际使用上,其工作原则主要体现在相关关联与有趣关联上。
在这两个关联原则之上,数据挖掘技术与软件工程之间的关系属性又包
括支持度与置信度这两个属性,同样也是对所挖掘出的关联规则是否有效的重要检测指标。
具体而言,对于支持度这个属性,可以用P(A∪B)这个公式进行表示,其主要指在事务集D中,同时出现A项集与B项集的概率;对于置信度这个属性,可以用P(B|A)这个公式进行表示,其主要是指在事务集D中出现项集A时,项集B出现的概率。
4.2 分类法
可以将分类法简单地理解为:可以利用分类标号进行预测的一种执行动作。
在分类法的实际应用过程中,就必须要确保具备相应的分析模型作为基础,即必须要构建与分类法相对应的分析型。
同时,构建的分析模型本身也必须要具备一定的应用基础,这就需要提前引入数据类集或者概念集。
目前,在软件工程领域分类法的实际应用中,判断树法是最为常见的一种方法,其下又包括神经网络分类法、K-最临近分类法等几种小的方法。
需要注意的是,在分类法的使用过程中,必须能够清楚地了解并且掌握分类法大类下所包含的计算方法及其适用范围,以便用最低的成本取得最佳的效果。
4.3 聚类法
所谓的聚类法就是基于一定的划分标准,将研究工作中所涉及的数据对象细化为不同类、不同簇的一个过程。
同时,
在这个过程中,必须要确保同类、同簇的数据对象之间具备相当高的相识度。
相反的,不同类、不同簇的数据之间则必须要存在较为明显的差异度。
可以说,聚类法与上述的分类方法存在本质性的差異,通过聚类法划分出的数据对象不可作为指导学习方法,也就是不可以预知。
但是,聚类法却可以在其他算法的预处理范畴内得到较为良好的应用,尤其是在数据分布信息的独立性分析上,聚类法得到了十分广泛的应用。
这是因为聚类法在孤立点的挖掘上有着十分有益的表现[7]。
5 在软件工程中数据挖掘技术的应用发展方向
应用数据挖掘技术于软件工程中,其根本目的是为了最大限度地提高软件开发质量、开发效率,为后续的管理工作奠定良好的基础[8]。
因此,在软件工程中数据挖掘技术的各个要素,都必须随着软件工程的发展而不断优化、更新,从而促使软件工程于数据挖掘技术能够更为紧密地结合在一起,发挥出最佳的作用。
为此,数据挖掘技术在未来的发展应用过程中,应该会向着更高性能的挖掘算研究而努力前进[9]。
也就是说应该针对目前软件工程中数据挖掘技术存在的实际问题,研发出具备更高性能的挖掘算法。
需要注意的是,目前在软件工程中,绝大多数的检测工具虽然能够检测出因为违反了给定程序
的动态或者是静态规则而造成的缺陷,检测出能够根据软件执行信息容易出现的缺陷,但是仍旧存在较大的缺陷,对于更为复杂的缺陷情况难以准确检测。
所以,研发的方向应该放在能够检测范围更加广泛的复杂化缺陷检测工具之上。
与此同时,面对近年来软件工程规模的逐步扩大,软件需求的进一步增加,无论是在软件开发工具的细化上,还是软件开放者的参与度上都提出了较高的要求,且软件开发周期还在进一步被迫延长。
针对这一问题,针对海量的数据息,数据挖掘技术应该围绕数据降维、特征提取开放的方向发展,从而制定出更加高效的数据预处理方法[10]。
此外,还应该充分结合人工智能化技术、机械人技术等更加先进的科学技术,对数据挖掘技术本身进行完善,从而更好地服务于软件工程的各个领域。
6 结语
如今,数据挖掘技术已经成为软件工程不断发展进步的关键。
因此,在未来的软件工程中,更要加强数据挖掘技术与软件开发、软件管理等工作环节的有机融合,让数据挖掘技术更加科学合理地应用到软件工程领域,推动软件产品的优化升级,更好地服务于客户、服务于企业、服务于现代科技发展。