数据挖掘在软件工程技术中的应用毕业论文
【 摘要 】计算机技术在发展,软件也发展的越来越复杂,而系统开发工作也显得更加重要。信息技术的广泛应用会产生大量数据,通过对数据进行挖掘,分析其存在的规律,对实现数据资源的有效利用意义重大。本文就数据挖掘技术在软件工程中的应用作简要阐述。
【 关键词 】数据挖掘技术;软件工程中;应用软件技术
随着信息技术发展而快速发展,但是其可控性并不是特别强。软件在应用过程中会产生大量数据,数据作为一种宝贵的资源,有效的利用可以带来价值增值。作为软件开发行业,数据挖掘技术应用则实现了数据资源的有效利用,通过对其中规律进行研究,为软件工程提供相应指导,并且对于系统故障能够有效处理,成本评估的有效性也能够提升。
1数据挖掘技术应用存在的问题
1.1信息数据自身存在的复杂性
软件工程所包含的数据可以分为两个类别,结构化与非结构化。在非结构化数据中软件代码发挥着重要作用。而对结构化数据产生影响的则是软件版本信息。结构与非结构化数据二者之间联系非常密切。实现数据有效利用就需要通过一定技术找出其中的规律。数据挖掘技术则刚好满足需求。利用该技术对结构与非结构化数据进行整合,提升其使用的有效性。
1.2在评价标准方面缺乏一致性
数据挖掘技术在生活中的应用比较广泛,通过该技术应用能够更好的对实际情况进行评价,从而对结果进行优化。但是由于没有统一标准,导致了软件信息复杂。而在表述方式方面自身又存有差异性。信息获取者无法有效的对信息进行应用及对比。而信息缺乏统一标准的原因就在于评价方式不一致。
2数据挖掘技术在软件工程中的应用
2.1数据挖掘执行记录
执行记录挖掘主要是对主程序的路径进行分析,从而发现程序代码存有的相关关系。其实质是通过对相关执行路径进行分析,并进行逆向建模,最终达到目的。作用在于验证,维护,了解程序。记录挖掘的过程通常是对被分析的系统进行初步插装,之后是记录过程,该过程在执行上一步程序后,对应用编程接口,系统,模块的状态变量记录,最后是对所得到的信息进行约简,过滤,聚类。最终得到的模型能够表达系统的特征。
2.2漏洞检测
系统或是软件自身都会存在漏洞,漏洞自身具一定的隐蔽性,由于人的思维存在某些盲区,无法发现漏洞的存在,就需要借助于某些软件。检测漏洞的目的就在于找出软件中存在的漏洞及错误,并对其进行修复,从而保证软件质量与安全。将数据挖掘技术应用于软件检测,首先要确定测试项目,结合到用户需要,对测试内容进行规划,从而确定测试方法,并制定出具体方案。测试工作环节主要是对数据进行清理与转换,其基础在于漏洞数据收集,通过对收集与采集的信息进行清理,将与软件数据有关联同时存在缺陷的数据筛选出来,而将剩余无数据清理,对丢失项目采取相应措施补充,将其属性转换为数值表示。之后是选择适当的'模型进行训练与验证,该环节要结合到项目实际的需要选择挖掘方式,通过对不同数据结果进行分析与比较找到最适合的方式。之后则是重复应用上述方法,对软件存在的漏洞进行定位与检测。并将与之对应的数据收集于软件库,在对漏洞进行描述的基础上分类,最后将通过挖掘得到的知识应用到测试的项目中.
2.3开源软件
对于开源软件的管理由于其自身的开放,动态与全局性,需要与传统管理软件进行区别对待,一般情况下,成熟的开源软件对于软件应用记录较为完整,参与的内容包括了错误报告,开发者活动。参与开发的工作人员会处在动态变化之中,存在动态变化的原因就在于软件的开放性。同时对于软件中动态性特征的挖掘,可达到对开源软件进行优质管理的目标。
2.4版本控制信息
为了保证参与项目人员所共同编辑内容的统一性,就需要对系统应用进行控制。软件开发工程应用中,开发工作管理与保护都会通过版本控制系统来实施。并且其应用方式主要是对变更数据挖掘,找出不同模块及系统存在关系,并对程序中可能会存在的漏洞进行检测。此类技术的应用,使得系统后期维护成本被有效的降低,而对后期变更产生的漏洞也有一定的规避作用。
3数据挖掘在软件工程中的应用
3.1关联法
该方法作用在于寻找数据中存在的相关联系与有趣关联。而体现的关联规则有两个明显的特征。①支持度;②信度。前者表示在某个事物集中,两个子集出现的概率是相同的。而后者则表明了某事物在事物集中出现的概率,而另一事物也会出现。
3.2分类方法
该方法主要是应用于分类标号与离散值的操作。该方法的操作步骤是,首先要建立相应的模型,对数据进行描述,并利用模型对其进行分类。在分类方法选择方面,常用的有判定树法,贝叶斯法,支持项量机法等。判定树法应用的基础是贪心算法。
3.3聚类方法
该方法常用的有划分方法,基于密度,模型,网格的方法与层次方法。聚类分析输入的是一组有序对,有序对中的数据分别表示了样本,相似度。其基本的应用理论是依据不同的对象数据予以应用。
4数据挖掘在软件工程中的应用
4.1对克隆代码的数据挖掘
在软件工程中最为原始的是对克隆代码的检查测试。就其方式而言有文本对比为基础,标识符对比为基础。前者是利用系统中程序代码包含的语句进行判断。该方法在后期改进过程中主要是对字符串匹配效率进行提升。实际应用过程中是通过相关函数匹配对效率进行优化。
4.2软件数据检索挖掘
该方法同样是软件工程中原始的挖掘需求之一。该方法在应用时主要有以下三个步骤。
①数据录入。其实质是对需要检索的信息录入,并结合到使用者需要在数据中查找使用者需要的数据。
②信息查找过程。确认了用户需要查找的信息后,系统将依据信息内容在数据库中进行查找,并分类罗列。
③信息数据导出与查看。用户可以依据自身需要将数据导出或者是在线查看。数据在导出时会形成相应的记录,客户再次进行查找时就会更加的方便与快捷。而将数据导出则需要利用到相关的软件。
4.3应用于设计的三个阶段
软件工程有许多关于软件的资料,资料通常是存放于代码库中。数据运用可以提升工作效率。软件工程每一次循环都会产生大量的数据。基于软件工程生命周期可以将其分为分析设计,迭代的开发,维护应用三个阶段。
4.4面向项目管理数据集的挖掘
软件开发工作到目前已经是将多学科集中于一体。如经济学,组织行为学,管理学等。对于软件开发者而言,关注的重点除过技术方面革新外,同时也需要科学规范的管理。除过对于版本控制信息挖掘外,还有人员组织关系挖掘。对于大规模的软件开发工作而言,对人力资源的有效分配与协调也是软件工作领域需要面对的问题。例如在大型系统开发过程中,往往会有许多人参与其中,人员之间需要进行沟通交流。交流方式包括了面对面沟通,文档传递,电子信息等。通过对人员之间的关系进行挖掘,有利于管理工作开展。员工群体存在的网络是社会网络。通过人员合理组织与分配,将会影响到项目进度,成本,成功的可能性。而对该方面实施研究通常采用的是模拟建模。
5结束语
软件工程技术在生活中许多领域都有广泛的应用,数据挖掘作为其中的一项技术,其重要性及作用随着技术发展而表现的越加明显。为了保证挖掘技术的可靠性与高效,与其它工程技术有一定融合性。数据挖掘在实际应用工作中体现出了巨大的经济效益,因此应该大力推进其应用的范围,并拓展其应用的深度与层次。
参考文献
[1]李红兰.试论数据挖掘技术在软件工程中的应用综述[J].电脑知识与技术,2016(34).
[2]雷蕾.关于数据挖掘技术在软件工程中的应用综述究[J].电子测试,2014(02).
[3]孙云鹏.数据挖掘技术在软件工程中的应用综述[J].中国新通信,2015(15).
大数据分析是一个含义广泛的术语,是指数据集,如此庞大而复杂的,他们需要专门设计的硬件和软件工具进行处理。该数据集通常是万亿或EB的大小。这些数据集收集自各种各样的来源:传感器,气候信息,公开的信息,如杂志,报纸,文章。大数据分析产生的其他例子包括购买交易记录,网络日志,病历,军事监控,视频和图像档案,及大型电子商务。
大数据分析,他们对企业的影响有一个兴趣高涨。大数据分析是研究大量的数据的过程中寻找模式,相关性和其他有用的信息,可以帮助企业更好地适应变化,并做出更明智的决策。
一、Hadoop
Hadoop是一个开源框架,它允许在整个集群使用简单编程模型计算机的分布式环境存储并处理大数据。它的目的是从单一的服务器到上千台机器的扩展,每一个台机都可以提供本地计算和存储。
Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 是可靠的,即使计算元素和存储会失败,它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,它采用并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
Hadoop是轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
1、高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
2、高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
3、高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
4、高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
Hadoop带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。
二、HPCC
HPCC,High Performance Computing and Communications(高性能计算与通信)的缩写。1993年,由美国科学、工程、技术联邦协调理事会向国会提交了"重大挑战项目:高性能计算与通信"的报告,也就是被称为HPCC计划的报告,即美国总统科学战略项目,其目的是通过加强研究与开发解决一批重要的科学与技术挑战问题。HPCC是美国实施信息高速公路而上实施的计划,该计划的实施将耗资百亿美元,其主要目标要达到:开发可扩展的计算系统及相关软件,以支持太位级网络传输性能,开发千兆比特网络技术,扩展研究和教育机构及网络连接能力。
该项目主要由五部分组成:
1、高性能计算机系统(HPCS),内容包括今后几代计算机系统的研究、系统设计工具、先进的典型系统及原有系统的评价等;
2、先进软件技术与算法(ASTA),内容有巨大挑战问题的软件支撑、新算法设计、软件分支与工具、计算计算及高性能计算研究中心等;
3、国家科研与教育网格(NREN),内容有中接站及10亿位级传输的研究与开发;
4、基本研究与人类资源(BRHR),内容有基础研究、培训、教育及课程教材,被设计通过奖励调查者-开始的,长期的调查在可升级的高性能计算中来增加创新意识流,通过提高教育和高性能的计算训练和通信来加大熟练的和训练有素的人员的联营,和来提供必需的基础架构来支持这些调查和研究活动;
5、信息基础结构技术和应用(IITA ),目的在于保证美国在先进信息技术开发方面的领先地位。
三、Storm
Storm是一个免费开源、分布式、高容错的实时计算系统。Storm令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求。Storm经常用于在实时分析、在线机器学习、持续计算、分布式远程调用和ETL等领域。Storm的部署管理非常简单,而且,在同类的流式计算工具,Storm的性能也是非常出众的。
Storm是自由的开源软件,一个分布式的、容错的实时计算系统。Storm可以非常可靠的处理庞大的数据流,用于处理Hadoop的批量数据。Storm很简单,支持许多种编程语言,使用起来非常有趣。Storm由Twitter开源而来,其它知名的应用企业包括Groupon、淘宝、支付宝、阿里巴巴、乐元素、Admaster等等。
Storm有许多应用领域:实时分析、在线机器学习、不停顿的计算、分布式RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务)、 ETL(Extraction-Transformation-Loading的缩写,即数据抽取、转换和加载)等等。Storm的处理速度惊人:经测试,每个节点每秒钟可以处理100万个数据元组。Storm是可扩展、容错,很容易设置和操作。
四、Apache Drill
为了帮助企业用户寻找更为有效、加快Hadoop数据查询的方法,Apache软件基金会近日发起了一项名为"Drill"的开源项目。Apache Drill 实现了Google’s Dremel。"Drill"已经作为Apache孵化器项目来运作,将面向全球软件工程师持续推广。
该项目将会创建出开源版本的谷歌Dremel Hadoop工具(谷歌使用该工具来为Hadoop数据分析工具的互联网应用提速)。而"Drill"将有助于Hadoop用户实现更快查询海量数据集的目的。
"Drill"项目其实也是从谷歌的Dremel项目中获得灵感:该项目帮助谷歌实现海量数据集的分析处理,包括分析抓取Web文档、跟踪安装在Android Market上的应用程序数据、分析垃圾邮件、分析谷歌分布式构建系统上的测试结果等等。
通过开发"Drill"Apache开源项目,组织机构将有望建立Drill所属的API接口和灵活强大的体系架构,从而帮助支持广泛的数据源、数据格式和查询语言。
五、RapidMiner
RapidMiner提供机器学习程序。而数据挖掘,包括数据可视化,处理,统计建模和预测分析。
RapidMiner是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价。
功能和特点
免费提供数据挖掘技术和库;100%用Java代码(可运行在操作系统);数据挖掘过程简单,强大和直观;内部XML保证了标准化的格式来表示交换数据挖掘过程;可以用简单脚本语言自动进行大规模进程;多层次的数据视图,确保有效和透明的数据;图形用户界面的互动原型;命令行(批处理模式)自动大规模应用;Java API(应用编程接口);简单的插件和推广机制;强大的可视化引擎,许多尖端的高维数据的可视化建模;400多个数据挖掘运营商支持;耶鲁大学已成功地应用在许多不同的应用领域,包括文本挖掘,多媒体挖掘,功能设计,数据流挖掘,集成开发的方法和分布式数据挖掘。RapidMiner的局限性;RapidMiner 在行数方面存在大小限制;对于RapidMiner,您需要比ODM和SAS更多的硬件资源。
六、Pentaho BI
Pentaho BI 平台不同于传统的BI 产品,它是一个以流程为中心的,面向解决方案(Solution)的框架。其目的在于将一系列企业级BI产品、开源软件、API等等组件集成起来,方便商务智能应用的开发。它的出现,使得一系列的面向商务智能的独立产品如Jfree、Quartz等等,能够集成在一起,构成一项项复杂的、完整的商务智能解决方案。
Pentaho BI 平台,Pentaho Open BI 套件的核心架构和基础,是以流程为中心的,因为其中枢控制器是一个工作流引擎。工作流引擎使用流程定义来定义在BI 平台上执行的商业智能流程。流程可以很容易的被定制,也可以添加新的流程。BI 平台包含组件和报表,用以分析这些流程的性能。目前,Pentaho的主要组成元素包括报表生成、分析、数据挖掘和工作流管理等等。这些组件通过 J2EE、WebService、SOAP、HTTP、Java、JavaScript、Portals等技术集成到Pentaho平台中来。 Pentaho的发行,主要以Pentaho SDK的形式进行。
Pentaho SDK共包含五个部分:Pentaho平台、Pentaho示例数据库、可独立运行的Pentaho平台、Pentaho解决方案示例和一个预先配制好的 Pentaho网络服务器。其中Pentaho平台是Pentaho平台最主要的部分,囊括了Pentaho平台源代码的主体;Pentaho数据库为 Pentaho平台的正常运行提供的数据服务,包括配置信息、Solution相关的信息等等,对于Pentaho平台来说它不是必须的,通过配置是可以用其它数据库服务取代的;可独立运行的Pentaho平台是Pentaho平台的独立运行模式的示例,它演示了如何使Pentaho平台在没有应用服务器支持的情况下独立运行;
Pentaho解决方案示例是一个Eclipse工程,用来演示如何为Pentaho平台开发相关的商业智能解决方案。
Pentaho BI 平台构建于服务器,引擎和组件的基础之上。这些提供了系统的J2EE 服务器,安全,portal,工作流,规则引擎,图表,协作,内容管理,数据集成,分析和建模功能。这些组件的大部分是基于标准的,可使用其他产品替换之。
七、Druid
Druid是实时数据分析存储系统,Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。
八、Ambari
大数据平台搭建、监控利器;类似的还有CDH
1、提供Hadoop集群
Ambari为在任意数量的主机上安装Hadoop服务提供了一个逐步向导。
Ambari处理集群Hadoop服务的配置。
2、管理Hadoop集群
Ambari为整个集群提供启动、停止和重新配置Hadoop服务的中央管理。
3、监视Hadoop集群
Ambari为监视Hadoop集群的健康状况和状态提供了一个仪表板。
九、Spark
大规模数据处理框架(可以应付企业中常见的三种数据处理场景:复杂的批量数据处理(batch data processing);基于历史数据的交互式查询;基于实时数据流的数据处理,Ceph:Linux分布式文件系统。
十、Tableau Public
1、什么是Tableau Public - 大数据分析工具
这是一个简单直观的工具。因为它通过数据可视化提供了有趣的见解。Tableau Public的百万行限制。因为它比数据分析市场中的大多数其他玩家更容易使用票价。使用Tableau的视觉效果,您可以调查一个假设。此外,浏览数据,并交叉核对您的见解。
2、Tableau Public的使用
您可以免费将交互式数据可视化发布到Web;无需编程技能;发布到Tableau Public的可视化可以嵌入到博客中。此外,还可以通过电子邮件或社交媒体分享网页。共享的内容可以进行有效硫的下载。这使其成为最佳的大数据分析工具。
3、Tableau Public的限制
所有数据都是公开的,并且限制访问的范围很小;数据大小限制;无法连接到[R ;读取的唯一方法是通过OData源,是Excel或txt。
十一、OpenRefine
1、什么是OpenRefine - 数据分析工具
以前称为GoogleRefine的数据清理软件。因为它可以帮助您清理数据以进行分析。它对一行数据进行操作。此外,将列放在列下,与关系数据库表非常相似。
2、OpenRefine的使用
清理凌乱的数据;数据转换;从网站解析数据;通过从Web服务获取数据将数据添加到数据集。例如,OpenRefine可用于将地址地理编码到地理坐标。
3、OpenRefine的局限性
Open Refine不适用于大型数据集;精炼对大数据不起作用
十二、KNIME
1、什么是KNIME - 数据分析工具
KNIME通过可视化编程帮助您操作,分析和建模数据。它用于集成各种组件,用于数据挖掘和机器学习。
2、KNIME的用途
不要写代码块。相反,您必须在活动之间删除和拖动连接点;该数据分析工具支持编程语言;事实上,分析工具,例如可扩展运行化学数据,文本挖掘,蟒蛇,和[R 。
3、KNIME的限制
数据可视化不佳
十三、Google Fusion Tables
1、什么是Google Fusion Tables
对于数据工具,我们有更酷,更大版本的Google Spreadsheets。一个令人难以置信的数据分析,映射和大型数据集可视化工具。此外,Google Fusion Tables可以添加到业务分析工具列表中。这也是最好的大数据分析工具之一,大数据分析十八般工具。
2、使用Google Fusion Tables
在线可视化更大的表格数据;跨越数十万行进行过滤和总结;将表与Web上的其他数据组合在一起;您可以合并两个或三个表以生成包含数据集的单个可视化;
3、Google Fusion Tables的限制
表中只有前100,000行数据包含在查询结果中或已映射;在一次API调用中发送的数据总大小不能超过1MB。
十四、NodeXL
1、什么是NodeXL
它是关系和网络的可视化和分析软件。NodeXL提供精确的计算。它是一个免费的(不是专业的)和开源网络分析和可视化软件。NodeXL是用于数据分析的最佳统计工具之一。其中包括高级网络指标。此外,访问社交媒体网络数据导入程序和自动化。
2、NodeXL的用途
这是Excel中的一种数据分析工具,可帮助实现以下方面:
数据导入;图形可视化;图形分析;数据表示;该软件集成到Microsoft Excel 2007,2010,2013和2016中。它作为工作簿打开,包含各种包含图形结构元素的工作表。这就像节点和边缘;该软件可以导入各种图形格式。这种邻接矩阵,Pajek .net,UCINet .dl,GraphML和边缘列表。
3、NodeXL的局限性
您需要为特定问题使用多个种子术语;在稍微不同的时间运行数据提取。
十五、Wolfram Alpha
1、什么是Wolfram Alpha
它是Stephen Wolfram创建的计算知识引擎或应答引擎。
2、Wolfram Alpha的使用
是Apple的Siri的附加组件;提供技术搜索的详细响应并解决微积分问题;帮助业务用户获取信息图表和图形。并有助于创建主题概述,商品信息和高级定价历史记录。
3、Wolfram Alpha的局限性
Wolfram Alpha只能处理公开数字和事实,而不能处理观点;它限制了每个查询的计算时间;这些数据分析统计工具有何疑问?
十六、Google搜索运营商
1、什么是Google搜索运营商
它是一种强大的资源,可帮助您过滤Google结果。这立即得到最相关和有用的信息。
2、Google搜索运算符的使用
更快速地过滤Google搜索结果;Google强大的数据分析工具可以帮助发现新信息。
十七、Excel解算器
1、什么是Excel解算器
Solver加载项是Microsoft Office Excel加载项程序。此外,它在您安装Microsoft Excel或Office时可用。它是excel中的线性编程和优化工具。这允许您设置约束。它是一种先进的优化工具,有助于快速解决问题。
2、求解器的使用
Solver找到的最终值是相互关系和决策的解决方案;它采用了多种方法,来自非线性优化。还有线性规划到进化算法和遗传算法,以找到解决方案。
3、求解器的局限性
不良扩展是Excel Solver缺乏的领域之一;它会影响解决方案的时间和质量;求解器会影响模型的内在可解性;
十八、Dataiku DSS
1、什么是Dataiku DSS
这是一个协作数据科学软件平台。此外,它还有助于团队构建,原型和探索。虽然,它可以更有效地提供自己的数据产品。
2、Dataiku DSS的使用
Dataiku DSS - 数据分析工具提供交互式可视化界面。因此,他们可以构建,单击,指向或使用SQL等语言。
3、Dataiku DSS的局限性
有限的可视化功能;UI障碍:重新加载代码/数据集;无法轻松地将整个代码编译到单个文档/笔记本中;仍然需要与SPARK集成
以上的工具只是大数据分析所用的部分工具,小编就不一一列举了,下面把部分工具的用途进行分类:
1、前端展现
用于展现分析的前端开源工具有JasperSoft,Pentaho, Spagobi, Openi, Birt等等。
用于展现分析商用分析工具有Style Intelligence、RapidMiner Radoop、Cognos, BO, Microsoft Power BI, Oracle,Microstrategy,QlikView、 Tableau 。
国内的有BDP,国云数据(大数据分析魔镜),思迈特,FineBI等等。
2、数据仓库
有Teradata AsterData, EMC GreenPlum, HP Vertica 等等。
3、数据集市
有QlikView、 Tableau 、Style Intelligence等等。
当然学大数据分析也有很多坑:
《转行大数据分析师后悔了》、《零基础学大数据分析现实吗》、《大数据分析培训好就业吗》、《转行大数据分析必知技能》