1.智能软件对于未来数据挖掘影响的视源文献?
2.比特派钱包是开源的吗 比特派钱包成立时间 www.cnshty.com
智能软件对于未来数据挖掘影响的文献?
智能软件:数据挖掘的未来
Ahmed E. Hassan
皇后大学
计算机学院
金士顿(Kingston), 安大略(Ontario), 加拿大(Canada)
ahmed@cs.queensu.ca
Tao Xie
北卡罗来纳州立大学
计算机科学系
罗利(Raleigh),北卡罗来纳州(NC),视源美国(USA)
xie@csc.ncsu.edu
摘要
在过去的视源十年中,软件工程数据挖掘已经成为了一个成功的视源研究方向。站在本文的视源立场,我们主张把智能软件(SI)作为未来软件工程数据挖掘的视源销量联盟补单源码发展方向,并同时应用在现代软件工程的视源研究,实践和教学当中。视源我们提出智能软件这个名词,视源来源于基于事实的视源提供创新理念,技术支持和商业决策的视源商务智能系统(BI)的灵感。同样,视源智能软件为软件从业人员(不只是视源开发人员)提供实时的相关信息,以支持他们的视源日常决策。智能软件应该在软件系统的视源整个生命周期提供决策支持,而不仅仅是在开发阶段。
智能软件在现代软件工程实践中对软件工程的研究造成巨大影响的愿景并没有实现。然而,智能软件在软件库数据挖掘(MSR)领域所展现出的优势对未来对于智能软件的认可提供了极大的保证。本文总结了智能软件在研究和实践中的现状,并且陈述了应用智能软件进行数据挖掘的未来研究方向。
分类和主题描述
[软件工程]:分布,维护和提高
通用术语
文件,经济学,实验,人为因素,管理,衡量,可靠性,核实
关键词
智能软件,软件工程数据挖掘,软件档案库挖掘
1. 简介
许多软件中心都被一些日常的问题和决策所困扰(比如:什么时候发布一个软件系统?软件系统的哪些部分需要修改?系统的哪些部分需要测试?谁会用到这些功能?谁了解这些功能?)。不幸的是,现如今许多关于软件系统的决定都是基于直觉。决定软件系统什么时候发布,系统的某个部分是否要修改或重新编写,或者软件的哪个部分需要彻底的测试是一种艺术,而不是一门学科。随意的决策导致了资源的浪费,以及大型复杂软件系统构建和维护的费用增加。
软件从业人员迫切地需要我们所提到的智能软件。商业智能通过基于实际的tpo图指标源码系统提供理念和技术来提高商务决策的质量,智能软件为软件从业人员提供实时的相关信息,来支持他们的日常决策。智能软件为软件从业人员具体的有依据的观点,以让他们可以回答关于软件系统的关键问题。使用人员,维护人员和软件的开发人员可以通过智能软件做出长期或者短期的战略规划。此外,智能软件能让公司对他们软件的潜力和限制有一个更好的了解。
在过去的十年中,软件工程数据挖掘已经成为了一个研究方向。这项研究已经在探索和实践上取得了大量的成功。站在本文的立场,我们主张把智能软件(SI)作为未来软件工程数据挖掘的发展方向,并同时应用在现代软件工程的研究,实践和教学当中。
智能软件的愿景并没有变为现实。然而,因为软件工程的研究目的在于它对现代软件系统的联系和影响,智能软件在软件库数据挖掘(MSR)领域所展现出的优势对未来对于智能软件的认可提供了极大的保证。本文总结了智能软件在研究和实践中的现状,并且陈述了应用智能软件进行数据挖掘的未来研究方向。
2. 现状
以前的经验和主导模式,极大地影响着现代软件组织的决策。软件从业人员在作出重大决策时经常依靠他们的经验和直觉。管理者在分配开发和测试的资源时同样基于他们在之前项目中的经验,以及直觉上对于当前项目和以前项目复杂性的对比。开发人员通常依据他们的经验增加新功能或者修复漏洞。测试人员经常根据字段和错误报告对已知容易出现错误的部分优先测试。
由于许多高级工程师根据直觉作出决策,智能软件在实际中的应用甚少。然而,这样的开发人员的职业发展道路具有局限性,而且随着系统使用年限的增加和人员的流动,这种局限性将显现的更加明显。此外,目前对于文献信息的努力在实践中非常有限。根本上来讲,非专业的维基网站被当作知识库来使用,电子表格和幻灯片被作为做出决策的依据。
3. 研究的现状
在过去的十年中,软件库数据挖掘已经成为一个研究方向。这项研究在科研和实践上都取得了实质性的玫瑰情人app源码成功。软件库数据挖掘(MSR)[,,,,,]领域是这项研究的一个实例。软件库数据挖掘通过对软件库中海量数据的分析,来发现对系统和项目有用的信息。以下是软件库的例子:
历史信息库:比如源代码控制库,错误记录库,项目进行过程中的信息记录
实时库:比如包含一个软件系统在单个站点或者多个站点执行的有效信息的日志
代码库:比如Sourceforge.net, Google code, 和 Codeplex.com,这些网站包含了一个开发团队所开发的多个软件系统的源代码。
软件库包括了大量有用的项目信息。在使用这些信息的时候,软件从业人员可以较少的依赖自己的直觉和经验,较多地依靠历史数据。历史资料库撷取项目产品之间重要的历史依赖关系,比如函数,文档文件和配置文件。开发人员可以把这些信息延伸到相关的产品,而不仅仅是使用静态和动态代码间的依赖关系。后者可能无法获得重要的依赖关系。例如,把数据写入文件的代码的变化,可能会引起从文件读出数据的代码的变化,虽然这两段代码之间没有传统意义上的依赖关系(例如数据和工作流)。运行时库可以通过对首要执行模式和部署模式是否偏离的确认,用来指出执行的异常。代码库可以通过对多个项目API使用模式或者资料库的挖掘,来确认正确的框架和API的使用模式。
然而软件库在实际应用中通常被用作保存记录,很少用于决策支持。例如,历史资料库通常用来跟踪一个错误或者一个功能的历史,但是很少基于以往对于错误修复的时间对现有问题需要修复的时间做出判断。
软件库数据挖掘领域是在众多应用智能软件的领域中,发展前景最为广阔的领域之一。我们可以通过把这些静的记录转变为“活”的信息,为现代软件项目做出决策指导。例如,传统上把代码存档的0.2km源码源代码控制库,可以与错误记录库相关联,用来帮助从业人员记录和交流复杂的变化,并且基于之前的修改和错误,当出现有风险的代码时对他们进行警告。
智能软件在软件库数据挖掘领域的应用要归功于丰富,广泛和随时可用的软件库。表1列出了几个可能用于数据挖掘的软件库的描述。图1展示了可以被挖掘的数据的例子(第一列),通过对第一列中列出的每种软件工程数据应用数据挖掘算法(第三列)的软件工程任务(中间列)的例子。
4. 智能软件的实现
接下来我们着重提出需要软件库数据挖掘研究人员和软件工程研究人员共同注意的一些领域,以确保软件库数据挖掘领域能够为智能软件的发展作出充分的贡献。对每个我们认为有巨大潜力的领域,我们简单地描述它的现状和发展前景。
4.1 项目生命周期中的智能软件
现状 在至年间的软件库数据挖掘工作会议和研讨会上对于当前出版物的分析显示,大部分的出版物(大于%)把注意力集中于源代码和错误关联库。部分原因可能是由于旧的错误记录库和源代码控制库仍然可用,而且源代码和错误报告结构合理,易于用来做自动分析和处理。对于软件库数据挖掘出版物的研究也表明,由于可用性的局限性,文档资料库很少被用来研究。总之,过去的软件工程数据挖掘出版物着重挖掘源代码和错误关联库,通常致力于促进软件项目生命周期编码阶段的任务,受益的主要是开发人员。
未来方向 要实现智能软件,未来软件库数据挖掘的工作应该着眼于更高的位置,而不仅仅局限于作为软件项目生命周期中一小部分的编码阶段。项目经理,测试人员,部署人员和技术支持团队,都是软件系统的涉众,他们都需要智能软件的支持。以往的过分注重于开发阶段的软件库数据挖掘工作是不正确的,并且限制了智能软件对整个软件产业的影响。此外,软件库数据挖掘的研究成功和创新应该纳入涉众日常的工作环境中,包括但不仅仅局限于集成开发环境。
4.2 智能软件在非历史数据库中的应用
现状 软件库数据挖掘领域开始于对历史数据库,如源代码控制库和错误记录库的研究。因此,4.3km源码似乎有一个错觉,认为所有的软件库数据挖掘都是针对历史数据源(或数据库)的。这个错觉需要被解决,来帮助智能软件实现其全部潜力。我们认为:软件库数据挖掘和软件工程数据挖掘的意义是相同的:软件库数据挖掘是关于挖掘软件工程中任何类型的数据的(例如,执行日志[],整个互联网上散落的代码段[,,],和API文档资料[]),即使这些数据没有明确地存在于某个“库”中。
未来方向 要实现智能软件,未来软件库数据挖掘的工作应该着眼于更高的位置,而不仅仅局限于储存在库中的传统类型的软件工程数据。一些新兴的数据类型,包括集成开发环境下的交互数据和工具,开发会议记录(甚至是录音和对口语的识别),技术支持电话记录,和网上软件产品发布信息。这些类型的数据可能是实时流的数据,而且由于过大或者隐似问题而不能储存在库中。事实上,由于越来越多的相对私人的信息正在变的可用,隐私问题需要引起整个软件工程研究的关注。
此外,需要特别注意在研究和实践中提高数据收集。现有的数据收集方法主要依赖于大数搜索,这将可能导致噪声数据的出现。未来软件库数据挖掘的工作应该致力于提高库和集成开发环境的设计,以便更容易地收集数据。一些现代的集成开发环境,如IBM Jazz[3] 和Microsoft Visual Studio Team Foundation Server [4],都在引领着正确的发展方向(允许在明确的产品中查找,而不是在噪声数据中挖掘)。然而,为数据挖掘创造更高质量的数据需要大量的工作。然而,随着智能软件领域的成熟,我们希望创造一种新的角色,来负责维护和规划软件项目库中的各种类型的数据。这些人员将确保高质量的数据存储在这些库中,并且可以使用多年。
最后,同时在多个数据源中挖掘数据是一个机遇,即使在异构数据,比如错误报告的文本数据,和测试失败的执行数据之间执行。
4.3 智能软件被用作高效的数据挖掘技术
现状 以往的软件库数据挖掘工作主要是采用现成的数据挖掘(DM)算法(比如关联规则挖掘算法和频繁项集挖掘算法[]),或工具(比如Weka [])。当这些软件库数据挖掘的研究人员在软件工程的数据上应用这些挖掘算法的时候,他们经常不得不降低他们的需求,以迎合现有的挖掘算法和工具所能提供的服务。
未来方向 要实现智能能软件,未来的软件库数据挖掘工作在如下领域要遵循问题驱动的方法:(1)实地调查在软件工程领域的问题,(2)找出解决这些问题的数据挖掘需求,(3)从数据挖掘组织采纳或接受高级的挖掘算法[9],或者开发新的挖掘算法[,]来满足数据挖掘的需求。事实上,为软件库数据挖掘的需求开发一种新的算法,对于软件工程的研究人员是一项很大的挑战。一种可能的解决方法是与数据挖掘的研究人员合作。另一种可能的解决办法是通过预处理输入数据,或者后置处理数据挖掘模式,来适应现有的数据挖掘算法。
4.4 智能软件在实践中的应用
现状 Coverity公司[1]和Pattern Insight公司[5]的一些成功的产品已经集成了基于软件工程数据挖掘的思想和创新。这些产品被世界各地的从业人员所使用。使智能软件依赖于现有的可用的库(比如历史变更库,代码执行日志),在智能软件创新实验上的花费和阻碍相对于其他软件工程技术创新(比如便捷开发和极限编程)要低得多。总之,如果公司有一个这样的库,可以非常容易地进行数据挖掘。
未来方向 为了使智能软件得到广泛的接受,我们必须首先考虑智能软件将在什么层面提供支持。例如,智能软件可以帮助从业人员在小的问题上做出决策(审查某个特定的变更),或者大的问题(比如系统某个部分的重新设计)。智能软件所提供的支持越具体,越有针对性,就越容易被采纳。在整个管理链条中,需要越少的许可和花销,智能软件的提议就越容易被遵循(比如,审查修改还是重新设计某个组件)。
其次,我们要确保智能软件技术是直观的,并且智能软件的结果要易于描述。直观和易于理解是关键,甚至比高性能更为重要,因为一个主要的障碍是:没有人希望他们的业务在一个未知的系统里运行。虽然一些数据挖掘技术[]已经提供了易于理解的挖掘结果,公司仍然希望结果能够变得更加详尽。此外,在理解数据挖掘的结果和挖掘出的数据上使用有效的工具,将有利于智能软件的结果在开发人员和管理者之间的交流。
5.结论
利用在商务智能领域取得的成就和经验教训,更多的理论需要被提出。在许多方面,智能软件就是软件公司的商务智能。我们应该深入探索,是否可以将出售软件决策作为传统商务智能平台的一部分,因为软件正在越来越多的商务中扮演一个重要的角色,而且软件商务也是商务的一种。我们可以探讨,我们是否能用利用传统的商务智能平台。例如,IBM当前的产品Rational Insight[2],就是利用Cognos商务智能平台为项目管理者提供智能软件。在商务智能的基础上构建智能软件体系将更易于被接受,因为商务智能的基础更为成熟和高级,而且已经被许多大型组织所认可。
我们认为,智能软件不只对软件从业人员,也为软件工程研究人员提供支持。例如,智能软件可以为现有的研究方向提供支持,并有助于实现软件工程的自动化。我们设想,数据选择(基于数据挖掘的结果)和数据挖掘(基于产生的数据)之间有一条协同的反馈回路。当前的软件测试工作[,]已经在开始研究这个回路的概念,也就是所说的机器学习中的主动学习[]。
智能软件将在研究结果的评估上担当越来越重要的角色。研究项目和论文可以而且应该根据他们对智能软件的应用能力进行评估。而且他们必须向从业人员展示真实的价值。在软件库数据挖掘领域,一些新兴的公司(在软件库数据挖掘的学术研究上成立的),比如Coverity[1],Pattern Insight[5],和Tasktop[7],已经展示了智能软件在生产实践中的巨大价值。我们期待着出现更多这种技术交流和智能软件的成功案例。
我们强调智能软件在实际中的应用,而不应该停滞在长远的研究上面。例如,智能软件将为研究人员和从业人员提供事实的依据,来帮助他们寻找先进的途径,比如新的编程语言和工具,并且根据事实决定是否采纳他们,而不是根据直觉。我们设想,智能软件将成为一个各种软件工程研究理论的通用平台。
致谢
Ahmed E. Hassan is the NSERC RIM Industrial Chair in Software Engineering. Tao Xie’s work is supported in part by NSF grants CNS-, CCF-, CCF-, CCF-, CNS- , an NCSU CACC grant, ARO grant WNF--1-, and ARO grant WNF--1- managed by NCSU SOSI.
图1-数据,数据挖掘算法,和软件工程任务[]
软件工程数据—
程序段:执行/静态线程,协同变更等
图:动态图/静态调用图,依赖图等
文本:错误报告,邮件,代码注释,文档资料等
挖掘算法—
关联算法,频繁项集算法/子序列法/偏序挖掘法,字段匹配法/聚类法/分类法等
频繁子图挖掘算法,图匹配法/聚类法/分类法等
文本匹配法/聚类法/分类法等
软件工程任务—
编程,维护,错误检测,调试等
错误检测,调试等
维护,错误检测,调试等
表1:软件库的例子
源代码控制库:这些库记录项目的开发历史。它们跟踪与所有改变相关联的源代码的变化,例如,做出变更的开发人员的姓名,更改的时间,和一个简短的描述。源代码控制库是软件项目中最常用的库。CVS, subversion, Perforce, ClearCase, 和 Git,都是实践中被用到的源代码控制库的例子。
错误记录库:这些库跟踪大型软件项目中开发人员和用户提出的错误报告以及功能需求的解决方案。
通讯记录库:这些库记录软件生命周期中所有关于软件项目的讨论。邮件列表,电子邮件,网络会议,即时信息,都是一个项目通讯记录的例子。
部署日志:这些库对一个软件系统或不同系统的单一部署信息进行记录。例如,部署日志可以记录一个系统在不同站点的错误信息。部署日志的使用仍在快速地增长,因为它在远程问题解决上的使用(远程上传工具的冲突),和现代法律的规定。例如,年,塞班斯法案规定,电信和金融业的活动信息必须要进行记录。
代码库:这些库把大量项目的源代码进行存档。Sourceforge.net 和Google code都是大型代码库的例子。
比特派钱包是开源的吗 比特派钱包成立时间 www.cnshty.com
首先,回答您的第一个问题:比特派钱包是开源的。至于第二个问题,比特派钱包的成立时间,根据我所了解的信息,比特派钱包成立于年。
接下来,让我们详细讨论一下比特派钱包及其开源特性。
比特派钱包是一款去中心化的数字货币钱包,它支持多种主流的数字货币,如比特币、以太坊等。作为一款去中心化的钱包,比特派赋予了用户完全的控制权,用户的私钥由自己保管,从而确保了资产的安全。
开源是比特派钱包的一个重要特性。开源意味着比特派钱包的源代码是公开的,任何人都可以查看和审核。这一特性带来了诸多好处。首先,开源增加了透明度,用户可以更清楚地了解钱包的工作原理,从而增强信任。其次,开源促进了社区的发展。开发者可以在源代码的基础上进行改进和创新,共同推动钱包的完善。最后,开源有助于提高安全性。由于源代码是公开的,安全专家可以更容易地发现并修复潜在的安全漏洞。
至于比特派钱包的成立时间,年是数字货币和区块链技术迅速发展的时期。比特派钱包应运而生,凭借其去中心化、安全可靠的特性,迅速在数字货币领域崭露头角。经过多年的发展,比特派钱包已经成为了市场上最受欢迎的数字货币钱包之一。
总之,比特派钱包是一款开源的、去中心化的数字货币钱包,成立于年。其开源特性为用户带来了透明度、社区发展和安全性等多方面的好处。在未来,随着数字货币和区块链技术的不断发展,比特派钱包有望继续保持领先地位,为用户提供更加优质的服务。