软件工程中数据挖掘技术的应用与研究
来源:用户上传
作者:李高杰
摘 要:传统软件工程领域的数据处理缺陷使得软件运行容易出现卡顿和错误、信息传输不稳定的现象。将数据挖掘技术融入软件工程的开发能避免该问题,同时也保障了信息数据的正常传输、过滤和整合,从而有效提升数据处理能力,确保数据的准确性和来源的安全性,提升文档安全性,过滤危险和无用信息。文章对软件工程中数据挖掘技术的应用及其发展进行了研究。
关键词:软件工程;数据挖掘技术;代码;数据
随着科学技术不断发展、网络通信技术不断进步,海量的数据信息需要有匹配的软件进行过滤和整合。传统软件工程领域的数据处理缺陷使得软件运行容易出现卡顿和错误、信息传输不稳定,日常生活中对信息数据的要求不断提高,数据挖掘技术能更好地满足用户需求。数据挖掘技术融入软件工程的开发能避免该问题,同时保障了信息数据的正常传输、过滤和整合数据,从而提升数据处理能力,确保数据的准确性和来源的安全性。软件工程中利用数据挖掘技术可挖掘、收集有效数据存放在数据库中,整理数据、提升文档安全性、过滤危险和无用信息。
1 软件工程与数据挖掘技术
数据挖掘(Data Mining,DM)是一种在海量数据集中挖掘有效信息数据的技术。软件工程数据挖掘技术(Data Mining for Software Engineering,DMSE)是应用在软件工程领域的一种数据挖掘技术,主要指开发新的或者利用现有的数据挖掘技术,经过表示、分析和提取等步骤挖掘对软件开发者有用的信息数据[1]。软件工程数据挖掘技术广泛应用于软件工程、人工智能、数据挖掘和模式识别等领域。软件工程中的数据挖掘技术与传统的数据挖掘具有相似之处,又在处理和提取软件工程数据、采用合适算法挖掘软件工程之间的应用数据、为软件开发者提供有价值的数据信息等方面存在特色。
软件开发过程积累大量数据,包括可行性分析、设计文档、软件代码、需求分析、软件版本、测试数据和结果、用户反馈等。一般情况下,软件工程数据是软件开发者获得信息的唯一渠道。随着软件日渐工程化和大型化,软件工程中的数据复杂性和数量在飞速增加,软件开发者通过浏览代码、文档等传统的方式难以获取能满足软件开发所需信息。
2 软件工程中数据挖掘技术的应用
软件开发和软件工程是相辅相成的,软件工程是软件开发必须遵循的操作原则,软件开发是软件工程的具体实现。软件开发的每个阶段都需要特定信息来开展工作,但单个开发者难以具备开发过程中所需的一切信息数据,且缺乏从软件工程的数据中搜索有效信息的方法,导致软件开发者陷于卡顿。软件工程中数据挖掘技术的应用显得越发重要,其应用主要表现在以下几方面。
2.1 开源软件数据挖掘技术的应用
开源软件主要是指一种源代码是开放式的应用,由于其具有开放性,通常该类软件都是免费的,拥有广大的用户群。但大量的用户群给该类软件带来了管理的问题,从而拖累软件的使用。由于开源软件存在缺陷,因此可以有针对性地把数据挖掘技术融入开源软件中,提升软件质量,使得该类软件既具有基本数据处理功能,又能在数据挖掘技术支持下挖掘、筛选整合大规模的数据,为复杂的软件提供数据处理功能,提升软件的使用效率,有效管理用户群体。
2.2 软件项目数据挖掘技术的应用
数据挖掘技术应用在软件项目中主要有两种,分别是挖掘组织关系和挖掘版本控制信息。软件项目管理相对复杂,要挖掘项目中人员的组织关系就需要分配和协调好软件项目中的人力资源。大型的软件工程项目参与人员可达到成百上千,在软件项目研发过程中将会产生大量的信息数据,如参与者之间相互沟通交流的文档、电子邮件等数据,没有过滤、整合就容易造成数据混乱,影响软件项目中的正常秩序。软件项目工程中数据挖掘技术的应用能有效地区分参与者的组织关系和过滤无用数据,整合有效数据,确保软件项目的顺利开展。
2.3 代码中数据挖掘技术的应用
数据挖掘技术应用在代码中主要体现在代码搜索和克隆代码检测两方面:(1)代码搜索工具主要是以用户接受的一组关键字作为输入,输入关键字匹配和向用户返回的一组代码段。目前的代码搜索引擎把注释和代码看作文本,把每个程序文件认作文档,对代码库执行搜索命令,以文档为单位返回结果。大多数编程语言主要用标识符对函数、变量等命名,强调注释和标识符对程序可读性的关键作用。但由于编程风格不统一等,在实现中,直接对注释和标识符进行搜索难以返回正确结果。数据挖掘技术融入代码搜索能更准确地搜索、提取关键字。提取关键字的过程在数据挖掘中就是理解程序的过程,也是采用關键字对程序准确表述的过程[2]。(2)克隆代码检测与代码搜索相类似,是用代码本身来描述软件行为。用户输入一段已知行为代码,克隆代码检测会向用户返回与该代码相似的代码段,且已知行为代码的特征皆可用于描述与之相近的代码段。目前克隆代码检测是软件工程中数据挖掘技术的最热门应用之一。
2.4 软件故障的数据挖掘技术应用
数据挖掘技术在应用过程中不但要完成挖掘任务,还需挖掘出实际程序执行记录具体说明,挖掘出的数据能够测定和判断软件发生的故障。数据挖掘过程中要先明确挖掘的目的和目标,及时跟踪和了解信息,根据实际问题处理信息,以确保后续工作的顺利开展,提升对应用程序的熟悉度。在种类繁多的挖掘工具中,自动化类和基于规则广泛应用在实际生活中。在各类实际因素的推动下,软件在运行过程中会发生故障,采用传统的定位技术能够解决故障问题,但传统定位技术存在效率较低、使用繁琐和定位精准度不稳定等问题。在数据挖掘技术中采用程序谱对程序运行轨迹实行抽象定位,利用对比排查方式排出故障,找出源头,有效地提升了故障排查的效率和故障检测的准确性。
3 软件工程中数据挖掘技术的应用发展研究 軟件工程中数据挖掘技术的应用主要是为了提升软件的质量和开发效率。相对而言,软件工程是纯脑力劳动,要实现该应用目标,需要便捷、准确和高效地给软件开发者提供有效信息。目前,软件工程中数据挖掘技术难以满足软件工程各个领域的需求,同时,由于软件工程中数据挖掘技术的各个要素都随着技术的发展不断更新,如软件工程的方法、数据量和结构、数据挖掘的算法和方式等,促使软件工程中数据挖掘技术的研究和应用必然会随之不断革新变化,主要体现在以下几点。
3.1 根据目前软件工程中数据挖掘存在的缺陷,研发高性能挖掘算法
针对目前存在的问题,软件工程数据挖掘技术关键要采用高效软件,重用规则检索和发现,软件规则检索由关键词向自然语言检索和模糊检索发展。检索返回内容从原始简单语句向完全文档发展。同时,根据目前存在缺陷的检测工具仅能检测一些违反给定程序动态或静态规则造成的缺陷,根据软件的执行信息和结构统计出容易出现的缺陷,研发能够检测原因范围更广泛的复杂缺陷的缺陷检测工具。由于软件行为模型和程序规则之间的联系,开发出用自然语言表述行为的模型和方法,将微观和宏观的软件行为模型整合,使得软件在各个粒度和层次上的行为信息表述更丰富和准确[3]。采用更高效的软件设计评价工具和标准,与软件工程领域相结合使其实现更丰富的可视化表示。
3.2 研发应对海量软件工程中数据的挖掘算法和高效预处理
软件工程规模扩大,软件需求将增加,软件开发工具细化,软件开发参与者增加,开发周期延长。为了应对这一问题,软件工程中数据挖掘使用者或者研发者应围绕数据降维和特征提取开发具有更高效里的数据处理方式,同时针对动态数据流、在线挖掘算法等研发效率更高的挖掘算法,充分利用机器学习、人工智能等数据挖掘新技术,开发更高效的软件工程数据挖掘技术。
4 结语
软件工程中数据挖掘技术应用广泛,各个领域都引入该技术。目前软件工程中的数据挖掘技术被不断研发和投入使用,但主要是以软件开发工具插件的形式或者原型系统发布出来,很多技术问题还有待解决,并没有完全实现商业化应用。软件工程中数据挖掘技术应用的处理方法和数据提取、挖掘结果和算法等方面仍存在很大的研究空间。软件工程中利用数据挖掘技术可挖掘、收集有效数据存放在数据库中,整理数据、提升文档安全性、过滤危险和无用信息。随着技术的不断发展,软件工程中数据挖掘技术应用将越来越广泛、实用和智慧化。
[参考文献]
[1]LAPORTE C Y,MUNOZ M,MIRANDA J M,et al.Applying software engineering standards in very small entities from start-ups to grownups[J].IEEE Software, 2018(1):99-103.
[2]CHEN Y.A method of mining association rules of big data based on cloud computing[J].Radio Engineering,2017(3):8-11.
[3]SUN X.Design of association rules data mining system based on improved ant colony algorithm[C].New York:International Conference on Education,Management,Information and Mechanical Engineering,2017.
Application and research of data mining technology in software engineering
Li Gaojie
(Zhengzhou Instituse of Finance and Economics, Zhengzhou 450000, China)
Abstract:The defects of data processing in the field of traditional software engineering make the operation of software prone to Catton and error, and the instability of information transmission. Integrating data mining technology into the development of software engineering can avoid this problem, and at the same time ensure the normal transmission, filtering and integration of information data, so as to effectively improve the ability of data processing, ensure the accuracy and source security of data, improve the security of documents, filter dangerous and useless information. In this paper, the application and development of data mining technology in software engineering are studied.
Key words:software engineering; data mining technology; code; data
转载注明来源:https://www.xzbu.com/8/view-15084334.htm