数据分析软件

2024-05-30

数据分析软件(精选12篇)

数据分析软件 篇1

随着社会的进步以及经济的发展, 软件的规模不断加大, 其复杂度也在不断提高, 导致软件的开发与过程管理困难重重, 软件项目出现成本超支、进度拖延以及质量较低等情况。就目前而言, 中小软件企业在软件过程管理中, 其存在一系列的问题, 如难以控制任务完成进度, 难以控制需求, 软件质量难以控制, 软件版本混乱等, 导致软件质量和交付受到严重影响, 降低了软件的满意度。为了有效改变这种现状, 中小软件企业对软件过程改进、管理以及规范等方面采取了辅助手段, 如CMM/CMMI认证、质量管理体系的建立等, 从而促进中小软件企业的可持续发展。

1 中小软件企业软件过程管理概述

1.1 中小软件企业特点分析

在我国软件产业中, 中小软件企业占据着较大的比例, 其主要特点是熟悉行业需求, 能够对优势业务领域加以有效把握, 执行力高, 管理快捷清晰, 组织结构简洁, 响应速度快等。但是中小软件企业也存在一定的劣势, 其具有较高的维护成本, 总收入中软件销售收入占据的比例低, 经验到制度的转化程度不高, 依赖性强, 制度约束力不高, 人员流动性高以及人力资源不足等。

1.2 软件过程概念

软件过程主要指的是软件开发人员在对软件以及相关的产品进行开发与维护时, 其形成的方法、实践、行为以及变化过程。一般在对软件过程进行管理时, 必须要确保软件产品的质量, 加强其开发与维护过程的质量, 将方法, 工具以及人员进行有机结合, 从而确保软件产品的质量, 提高管理的水平。

2 中下软件企业软件过程管理的改进方法

2.1 加强质量保证与配置管理

一个软件项目的配置项包括该项目的所有相关资料, 如安装程序、工具、代码以及文档等, 配置管理良好是保证软件一致性的重要前提。因此对配置管理进行合理计划, 并对配置管理软件进行恰当选择, 统一管理软件版本, 制定基线配置项变更控制流程, 能够确保软件开发与管理过程的合理性, 提高软件过程管理以及软件产品的质量。在改进软件过程时, 中小软件企业可以从以下几个方面进行考虑:一是在对软件进行测试时, 侧重于控制和检查软件产品的质量, 并且在保证质量的同时, 严格检查和控制软件过程。二是质量保证由专人进行, 从项目计划以及阶段成果等方面进行检测, 对质量问题进行跟踪和记录, 从而有效提高软件产品的质量, 确保产品质量的维护性以及延续性。

2.2 选择重点, 优先突破

在对软件过程进行改进时, 必须要对其重点领域进行选择, 循序渐进。由于软件过程改进是对现有的软件开发与管理过程进行改善, 这对于企业管理人员以及开发人员而言, 具有较大的难度。因此在软件过程改进过程中, 企业可以有针对性地选择改进重点, 逐渐突破, 从而确保软件改进过程的合理性以及科学性。此外, 从软件开发过程而言, 软件企业不同, 使得软件项目开发的过程也不尽相同, 在软件开发过程中, 其编码、设计以及需求等阶段受企业开发人员的综合能力、知识经验以及企业自身的技术水平的影响, 因此必须要对软件过程的相关部分进行重点选择, 有效突破。

2.3 加强自评估

中小软件企业为了保证软件过程的完整性以及规范性, 往往会对软件过程进行盲目改进, 无法对自身软件过程的阶段和水平进行全面清晰的分析, 导致实施的效果低下。因此, 中小软件企业在对自身的软件过程进行改进时, 必须要加强自评估, 有效采用某磐软件度量方法, 利用定量和定性相结合的方式, 提高软件过程状态的评价。此外, 中小软件企业可以在组织内部对岗位的人员进行不同选择, 确保全体人员能够参与到软件的评估过程中, 从而保证软件过程的合理性和准确性。

2.4 重视个体软件过程改进

开发人员作为软件企业中的主体, 其工作计划的恰当性、缺陷率、时间利用率和编码质量的高低等都会影响组织软件过程和软件质量。因此为了提高开发人员的工作效率, 确保软件过程的管理质量, 必须要重视个体软件过程的改进工作。一般个体软件过程具有完整的规程、表格以及方法, 其能够对软件开发人员的工作方式进行改进、管理和控制, 对开发人员计划、管理和度量自身的工作具有指导作用。个体软件过程改进能够对时间利用的情况进行记录, 从而有效掌握时间利用率以及工作的效率;同时能够利用管理缺陷, 有效控制软件缺陷, 并提高相关人员的工作能力。

2.5 合理利用辅助工具

一般而言, 软件过程管理及其改进在很大程度上属于管理的过程, 需要遵守一定的规则, 充分合理利辅助工具, 能够有效提高软件过程管理的水平和质量。就目前而言, 软件企业常用的软件类别包括缺陷管理工具、软件测试工具、配置管理工具以及项目管理工具等, 这些工具具有完善和强大的功能。因此企业能够从自身的实际情况出发, 对这些软件工具进行合理选择与利用, 从而提高软件过程管理的水平, 增强企业的综合竞争实力, 实现企业的可持续发展。

3 结束语

一般来说, 软件过程改进是一个循序渐进的过程, 中小软件企业必须要不断积累和丰富自身的经验, 对软件过程管理进行持续改进。同时, 中小软件企业在对软件过程进行管理和改进时, 必须要加强质量保证与配置管理, 选择重点, 优先突破, 加强自评估, 重视个体软件过程改进, 合理利用辅助工具, 从而提高软件过程管理的水平, 实现自身的可持续发展。

参考文献

[1]楚书来, 于文新.小规模软件企业软件过程管理与改进策略研究[J].黑龙江科技信息, 2012, 02:199-200.

[2]田丽从, 李铁牛, 彭宏.中小型企业软件过程改进方法研究[J].计算机应用与软件, 2011, 04:208-211.

[3]李楠.我国中小软件企业实施CMM改进软件过程的研究[J].中国城市经济, 2011, 26:129-130.

[4]马小龙.一种中小型软件企业软件过程改进框架研究[J].电脑与电信, 2010, 10:38-39.

数据分析软件 篇2

于我个人而言,所用的数据分析软件包括EXCEL、SPSS、STATA、EVIEWS。在分析前期可以使用EXCEL进行数据清洗、数据结构调 整、复杂的新变量计算(包括逻辑计算);在后期呈现美观的图表时,它的制图制表功能更是无可取代的利器;但需要说明的是,EXCEL毕竟只是办公软件,它 的作用大多局限在对数据本身进行的操作,而非复杂的统计和计量分析,而且,当样本量达到“万”以上级别时,EXCEL的运行速度有时会让人抓狂。

SPSS是擅长于处理截面数据的傻瓜统计软件。首先,它是专业的统计软件,对“万”甚至“十万”样本量级别的数据集都能应付自如;其次,它是统计软 件而非专业的计量软件,因此它的强项在于数据清洗、描述统计、假设检验(T、F、卡方、方差齐性、正态性、信效度等检验)、多元统计分析(因子、聚类、判 别、偏相关等)和一些常用的计量分析(初、中级计量教科书里提到的计量分析基本都能实现),对于复杂的、前沿的计量分析无能为力;第三,SPSS主要用于 分析截面数据,在时序和面板数据处理方面功能了了;最后,SPSS兼容菜单化和编程化操作,是名副其实的傻瓜软件。

STATA与EVIEWS都是我偏好的计量软件。前者完全编程化操作,后者兼容菜单化和编程化操作;虽然两款软件都能做简单的描述统计,但是较之 SPSS差了许多;STATA与EVIEWS都是计量软件,高级的计量分析能够在这两个软件里得到实现;STATA的扩展性较好,我们可以上网找自己需要 的命令文件(.ado文件),不断扩展其应用,但EVIEWS就只能等着软件升级了;另外,对于时序数据的处理,EVIEWS较强。

综上,各款软件有自己的强项和弱项,用什么软件取决于数据本身的属性及分析方法。EXCEL适用于处理小样本数据,SPSS、STATA、EVIEWS可以处理较大的样本;EXCEL、SPSS适合做数据清洗、新变量计算等分析前准备性工作,而STATA、EVIEWS在这方面 较差;制图制表用EXCEL;对截面数据进行统计分析用SPSS,简单的计量分析SPSS、STATA、EVIEWS可以实现,高级的计量分析用 STATA、EVIEWS,时序分析用EVIEWS。关于因果性

做统计或计量,我认为最难也最头疼的就是进行因果性判断。假如你有A、B两个变量的数据,你怎么知道哪个变量是因(自变量),哪个变量是果(因变量)?

早期,人们通过观察原因和结果之间的表面联系进行因果推论,比如恒常会合、时间顺序。但是,人们渐渐认识到多次的共同出现和共同缺失可能是因果关 系,也可能是由共同的原因或其他因素造成的。从归纳法的角度来说,如果在有A的情形下出现B,没有A的情形下就没有B,那么A很可能是B的原因,但也可能 是其他未能预料到的因素在起作用,所以,在进行因果判断时应对大量的事例进行比较,以便提高判断的可靠性。

有两种解决因果问题的方案:统计的解决方案和科学的解决方案。统计的解决方案主要指运用统计和计量回归的方法对微观数据进行分析,比较受干预样本与 未接受干预样本在效果指标(因变量)上的差异。需要强调的是,利用截面数据进行统计分析,不论是进行均值比较、频数分析,还是方差分析、相关分析,其结果 只是干预与影响效果之间因果关系成立的必要条件而非充分条件。类似的,利用截面数据进行计量回归,所能得到的最多也只是变量间的数量关系;计量模型中哪个 变量为因变量哪个变量为自变量,完全出于分析者根据其他考虑进行的预设,与计量分析结果没有关系。总之,回归并不意味着因果关系的成立,因果关系的判定或 推断必须依据经过实践检验的相关理论。虽然利用截面数据进行因果判断显得勉强,但如果研究者掌握了时间序列数据,因果判断仍有可为,其中最经典的方法就是 进行“格兰杰因果关系检验”。但格兰杰因果关系检验的结论也只是统计意义上的因果性,而不一定是真正的因果关系,况且格兰杰因果关系检验对数据的要求较高(多期时序数据),因此该方法对截面数据无能为力。综上所述,统计、计量分析的结果可以作为真正的因果关系的一种支持,但不能作为肯定或否定因果关系的最 终根据。科学的解决方案主要指实验法,包括随机分组实验和准实验。以实验的方法对干预的效果进行评估,可以对除干预外的其他影响因素加以控制,从而将干预实施后的效果归因为干预本身,这就解决了因果性的确认问题。关于实验

在随机实验中,样本被随机分成两组,一组经历处理条件(进入干预组),另一组接受控制条件(进入对照组),然后比较两组样本的效果指标均值是否有差 异。随机分组使得两组样本“同质”,即“分组”、“干预”与样本的所有自身属性相互独立,从而可以通过干预结束时两个群体在效果指标上的差异来考察实验处 理的净效应。随机实验设计方法能够在最大程度上保证干预组与对照组的相似性,得出的研究结论更具可靠性,更具说服力。但是这种方法也是备受争议的,一是因 为它实施难度较大、成本较高;二是因为在干预的影响评估中,接受干预与否通常并不是随机发生的;第三,在社会科学研究领域,完全随机分配实验对象的做法会 涉及到研究伦理和道德问题。鉴于上述原因,利用非随机数据进行的准实验设计是一个可供选择的替代方法。准实验与随机实验区分的标准是前者没有随机分配样本。

通过准实验对干预的影响效果进行评估,由于样本接受干预与否并不是随机发生的,而是人为选择的,因此对于非随机数据,不能简单的认为效果指标的差异 来源于干预。在剔除干预因素后,干预组和对照组的本身还可能存在着一些影响效果指标的因素,这些因素对效果指标的作用有可能同干预对效果指标的作用相混淆。为了解决这个问题,可以运用统计或计量的方法对除干预因素外的其他可能的影响因素进行控制,或运用匹配的方法调整样本属性的不平衡性——在对照组中寻 找一个除了干预因素不同之外,其他因素与干预组样本相同的对照样本与之配对——这可以保证这些影响因素和分组安排独立。

随机实验需要至少两期的面板数据,并且要求样本在干预组和对照组随机分布,分析方法就是DID(倍差法,或曰双重差分法);准实验分析用截面数据就 能做,不要求样本在干预组和对照组随机分布,分析方法包括DID(需两期的面板数据)、PSM(倾向性得分匹配法,需一期的截面数据)和PSM-DID(需两期的面板数据)。从准确度角度来说,随机实验的准确度高于准实验和非实验分析。

关于分析工具的选择

如果根据理论或逻辑已经预设了变量间的因果关系,那么就无需使用实验方法。我对非实验数据分析工具的选择原则如下。

        因变量为连续变量,自变量至少有一个连续变量,进行多元线性回归; 因变量为连续变量,自变量全部为分类变量,进行方差分析;

因变量为分类变量,自变量至少有一个连续变量,使用Logit模型或Probit模型; 因变量为分类变量,自变量全部为分类变量,进行交叉表分析和卡方检验;

因变量在某个闭区间内分布,并且有较多样本落在闭区间的边界上,使用Tobit模型;

因变量不唯一,如多产出问题,进行数据包络分析(DEA);

因变量为整数、数值小、取零个数较多,使用计数(Count)模型; 数据具有层次结构(嵌套结构),使用多层线性模型(HLM)。

随着统计和计量经济学的发展,各种前沿分析工具层出不穷,但我认为最靠谱的分析工具不外乎以下四种:DID(针对随机实验),多元线性回归,固定效 应变截距模型(FE,针对面板数据),Logit模型或Probit模型(针对分类因变量数据)。其他方法或适用条件苛刻,或分析过程折腾,或方法本身不 可靠(尤其是聚类分析、判别分析,超级不靠谱),因此能用以上四种方法分析问题时,不必为“炫方法”而瞎折腾。关于拟合优度、变量选择原则及估计值绝对大小的意义

在人人的“数据分析”小站中,某同学提出这样一个问题:“多元回归分析中,怎么选择自变量和因变量,可以使R方达到80%以上?”

很显然,问这个问题的同学要么没学好计量,要么就是犯了功利主义的错误,或者二者皆有。拟合优度的大小很大程度上取决于数据本身的性质。如果数据是 时序数据,只要拿有点相关关系的变量进行回归就能使拟合优度达到80%以上,但这样的高R方根本说明不了什么,很可能使分析者陷入伪回归的陷阱,严谨的做 法当然是做平稳性检验和协整检验;如果是截面数据,根本没必要追求R方到80%的程度,一般来说,有个20%、30%就非常大了。

如果一定要增大R方,那么最应该做的的确是对纳入模型的变量进行选择。选择纳入模型的原则我认为有三条。第一,从理论和逻辑出发,将可能影响因变量 的变量作为自变量纳入模型,即理论上或逻辑上能影响因变量的自变量必须纳入模型,即使该自变量的回归系数不显著。第二,奥姆剃刀原则——如无必要,勿增实体,即理论上或逻辑上不能影响因变量的自变量不能纳入模型,即使该自变量的回归系数显著。第三,防止纳入具有多重共线性的自变量。

证券分析软件 篇3

中国证券市场起步初期,并没有证券分析软件,股民们相信炒股主要靠“消息”,探听各种“内幕消息”成了一些人最热衷的事。随着钱龙软件从台湾进入A股市场,各种均线,技术指标成为了许多股民的“制胜法宝”。此后各类证券分析软件不断涌现,特别是互联网在中国的迅速普及,使股票行情数据传输更为方便,这大大地推动了证券分析软件的发展。

证券投资分析软件的功能

证券投资分析系统应当是一个进行证券投资分析的集数据,分析和分析工具为一体的平台。该平台的功能应该包括进行投资分析的主要工具和方法。具体来看,这个证券投资分析系统应该具有以下功能:

1具有丰富,及时、连续的数据和信息来源;

2利用采集的股票、债券、投资基金等证券品种、公司、行业及市场的数据信息,能够分类列示以上类别的信息,并进行基本的比较分析和统计分析;

3能够进行股票的基本性资料分析,包括股权结构分析、财务数据分析、增长前景分析等基本面的分析;

4能够利用价格、成交量、技术图形、技术指标等手段,进行证券的技术分析;

5数据统计功能;

6可编写选股公式。

主要三种分析软件介绍《大智慧分析家》软件

分析家软件是国内首家推出的基于windows95/98/NT的开放式、智能化证券投资分析平台,功能强劲。后来大智慧公司买下分析家系统后,在原来良好的系统平台中增加了资讯及咨询方式的功能,使得此软件更加优秀。

软件的主要特点:(1)采用全推行情技术,支持盘中即时分析和技术指标预警,股票切换时行情无丝毫延误。(2)强大的数据统计和分析功能,把技术分析的理论和方法发展到了极至。(3)专业资讯即时快递,“实时解盘”采用推送技术,盘中发生的任何重大消息近乎无时间差发送给用户。

《指南针》软件

指南针软件成名于其形象代言人发明的成本均线及筹码分布等新的技术的运用。后来由于其公司的插件功能,受到许多热衷于技术分析股民的喜爱,编写了大量的选股公式。后来发展出多种版本,其中,一款曾标称售价为几十万元一套。它不仅有基本面分析和基本面选股功能,更可以通过内嵌的指标平台和定式平台对所有的上市公司财务数据进行分析和计算与比较,并可参与技术指标的混合计算与编制,实现基本面分析的技术化。但目前因指南针的发明人陈浩已离开了指南针公司,后续的技术创新能力存在不确定性。

《同花顺》软件

同花顺是一款功能非常强大的网上证券交易分析软件,是投资者炒股的必备工具。同花顺采用全推行情技术,支持盘中即时选股和技术指标、画线等预警,股票切换时行情无丝毫延误。基本面分析简洁直观。公式编辑器能帮助客户构建自己喜欢的指标系统。同花顺软件除各种分析功能外,还可与同花顺网站的资讯进行较好的结合。在选择分析软件时用户应注意的事项

不要过分迷信各种技术分析功能,技术分析只是人们分析判断的一种辅助手段。有一些软件开发商为了销售目的,将软件的功能说得神乎其神,其实在股市中根本就不存在“必胜”的选股公式;也不要轻信高价的软件就一定有用,这只是商家的一种营销策略,更重要的是自己对证券分析的理解与运用。

数据分析软件 篇4

1 网络结点重要性

软件网络结点作为一个基本的网络构成要素, 复杂网络中许多问题都与其有着密不可分的关系, 发现并研究网络结点的重要性, 有着很高的实用性。一般网络中都会有一个核心的网络结点, 这个结点是与其他结点都联系, 起着重要的作用, 相当于一个网络中核心中点, 保护好这个核心, 可以提高整个网络的可靠性和安全性, 营造一个良好的网络环境, 否则就会容易受到攻击, 成为全网的薄弱环节, 更为严重的可能是会摧毁整个网络。因此关注软件网络结点, 更好地保护软件安全, 保护网络安全至关重要。

1.1 评估重要性的意义

既然在复杂软件系统中软件网络结点有着重要的作用, 那么就会有相应的系统去研究这个网络结点, 而一个很重要的研究指标就是评价网络结点的重要度。对复杂软件网络系统中的软件网络结点的重要度的评估是一件非常有意义的事。当网络中出现故障时, 一般来说都是网络结点出现问题, 而最有可能出现问题的地方就是所谓的核心结点。虽然这个结点是被想象出来的、根本不存在的, 但实际上依然存在对系统起到核心作用的网络结点。发生故障时就要去修复这个网络, 在修复时不是盲目地去修复, 而是有先后顺序的。先去修复较为重要的核心结点, 再去修复影响相对较小的结点, 这样的修复方式才不会使系统再次陷入瘫痪, 而且在很大程度上会减少损失。

重要性的评估是一个非常庞大的工程, 需要各个方面的共同努力。在软件系统中, 不仅仅要在维修方面注意维修顺序, 最为重要的是要在软件开发中加大投入力度, 减少软件系统中出现的问题, 这是从根本上解决问题。在网络结点自身方面, 加大对核心结点的保护力度, 减少核心出故障的次数, 将每一次的损失都降到最小。抓住核心结点不是一个容易的事, 在构建时要注意, 如果在软件系统开发时没有注意构建, 就要在实践中找到这个核心。这种情况就要对网络结点进行重要性的评估。核心结点及其周围结点的重要性是呈放射状, 逐渐降低的, 距离核心结点越近的结点重要性也就越大, 在维修时就要越先维修, 反之, 距离越远的是不太重要的, 维修就会越靠后。也就是说, 网络结点的重要性的评估对决定维修先后顺序有着重要的作用, 只有根据结点重要性排定先后顺序, 才会在出现故障时最短时间内找到最为有效、损失最小的维修方法。

1.2 评价方法

软件网络结点有着非常重要的作用, 而核心结点对网络软件系统有重要意义, 判定重要性也就是一个必要的工作。一个工作的展开要有一定的工作方法, 评定网络结点的重要性这项工作也需要行之有效的方法去实现工作目标。一般来说, 最为常用的, 也是最为有效的方法就是中介数法。这种方法是通过计算结点和结点的路径, 并记录, 然后再进行比较各结点间的路径距离大小。经过某一个结点的路径最短的个数越多, 那么这个结点重要性就越大, 反之重要性不大, 距离越远, 维修也就越靠后。经过比较各个结点路径, 有着个数最多而且距离最短的某个结点就是最为理想的核心结点。找到了理想中的核心结点, 并且能够通过这种中介数法排好结点重要性的顺序, 那么这个工作也就能够顺利地展开, 为以后工作中的维修奠定良好的基础。

2 影响分析

软件网络结点之所以重要与它自身的特性分不开, 在复杂软件系统中他担任的是一个桥梁的角色, 起到连接各个网络结点的作用。复杂软件系统彼此间交叉联系, 共同构成一个复杂的网络, 这个网络也就有着复杂性, 它涉及很多方面的知识比如医学、物理等。这个复杂的网络是由复杂的拓扑结构和动学行为通过结点连接起来的。考虑网络的拓扑结构特性和各个相邻节点重要性的反馈, 对于研究复杂软件系统的软件网络结点有重要影响。软件网络结点有着深刻的意义, 能够构建一个复杂的小世界和无标度网络, 这也是软件网络结点的重要影响。

2.1 小世界效应

小世界效应在学术上也被称为六度分离。这个理论与计算机软件网络结点相结合后, 它是指在网络中任意两个结点间的平均距离会随着结点个数的增长呈对数增长, 而且增长的越来越多, 就会形成明显的局部结构。这种结构不会因为结点的增加而使得核心结点远离理想中的位置, 核心结点仍然具有原来的特征, 与每个结点产生联系, 而且在两个结点中距离最近, 距离近的结点数最多。在六度分离理论产生的时候, 是作为一个社会心理学去研究的, 它是通过一封信件来不断与发信的人一步步接近, 形成一个以信件为核心的信件链条, 最后取与发信件人的联系。一般来说, 在逐渐取得联系时平均会经过6个人, 这6个人就相当于网络中核心结点与其他结点之间的联系, 无论是一个结点距离核心结点有多远都会通过其他的结点取得联系。这种联系不是片面地带来好处, 也不会片面地带来坏处, 结点的这种特征应该好好被加以利用, 达到趋利避害的效果, 进而让软件网络系统更加安全可靠地运行。

当一个结点被破坏时, 这个被破坏了的地方就会通过不同的结点, 将这个信号传达出去, 但在传达时, 原来的传递任务就无法完成, 因为还有其他的结点信息要通过这个发生故障的结点去传递信息。做好软件网络结点的保护, 积极维修, 将故障控制在小世界内发生的范围极其重要。

2.2 无标度网络

无标度网络是指在现实网络中, 每一个结点的连接都不是随机的, 大部分结点只与少部分的结点相连接, 在不同地方的结点连接的结点个数有着很大的不同。无标度网络有着异质性的特点, 每个结点连接有较强的分布不均匀性。简单来说就是在复杂软件系统中, 软件网络结点中的核心结点与其他结点连接的个数比较多, 在距离核心结点越远的结点, 它所连接的网络结点也就越少。相对应的, 连接个数越多其重要度也就越高, 在被破坏时也要去先维修。复杂软件系统的软件网络结点在维修时注意无标度网络的特性, 抓住主要的问题, 以及会出现主要问题的结点, 加强维修, 在构建时多加防范。

3 结语

复杂软件系统的软件网络结点对软件系统的安全性有着直接密切的联系。这种联系与网络结点自身的特性是分不开的, 当然在研究网络结点的影响时还要从其他方面着手, 共同寻求网络结点产生影响的原理, 进而可以在保护软件系统时能够采用行之有效的方法, 减少因结点出现故障而产生的损失。通过网络结点重要度的评价, 找到理想中的核心结点, 加强对核心结点的监控力度, 及时发现软件系统中的问题, 以便能够更早地解决问题。

参考文献

[1]汪北阳, 吕金虎.复杂软件系统的软件网络结点影响分析[J].软件学报, 2013 (12) :2814-2829.

[2]严驰.复杂软件系统的软件网络结点影响分析[J].环球人文地理, 2014 (10) :30-32.

[3]支阿龙, 李大兴.网络结点安全加固[D].济南:山东大学, 2008.

[4]张婷.浅析复杂软件的网络结点影响[J].计算机光盘软件与应用, 2014 (10) :60-61.

数据分析与软件应用心得. 篇5

贾学昌

3118425 我很高兴选修了《数据分析与软件》这门课程,通过本课程的学习,让我学会应用数据分析和多元统计中的诸多方法进行数据分析,通过和不同的学科知识相结合,对所考虑具体问题能给出合理的推断,还学会了利用SPSS软件进行一些简单的操作,能够与EXCEL结合应用。总之,受益匪浅。

现实生活中的数据多不胜数,但要得到有用的数据并不容易,这就要应用数据分析的方法确定数据的属性,再用清理工具(清洗、集成、转换、消减)进行筛选转化为有用的信息,再用SPSS深入分析,得出规律。

对数据的分析是以统计学为基础的,统计学提供了一套完整的科学方法论,统计软件则是实现的手段,统计分析软件具有很多有点。它功能全面,系统地集成了多种成熟的统计分析方法;有完善的数据定义、操作和管理功能;方便地生成各种统计图形和统计表格;使用方式简单,有完备的联机帮助功能;软件开放性好,能方便地和其他软件进行数据交换。我们接触最多的统计软件是EXCEL 和SPSS。在统计学中应用EXCEL,在数据分析中则主要是SPSS,它具有很好的人机界面和完善的输出结果。

因此,要学好SPSS,必须掌握理论知识和对数据具有良好的分析处理能力。弄清楚数据分析的目的与对应的分析方法。掌握基本的统计方法是基础。我掌握的基本统计量有频数分布分析、描述性统计分析、多选项分析等等。利用这些方法可以得出计算数据和统计图形,看出数据的离散程度、集中趋势和分散程度,单变量的比重,还有对数据进行标准化处理,不过,我对这个不是太熟悉;利用多选项分析把每个变量设为1/0变量,一般应用于多选项的问卷调查处理。

在这门课程中我们学习了一个重要分析方法就是假设检验,它是用样本推断总体有用工具。尽管在统计学和概率论中学过,但学起来并轻松一些。假设检验分为参数假设检验和非参数假设检验以及方差分析。基本原理就是“小概率事件实际不可能发生”。其中参数检验是对总体分布作出某种假设,然后利用样本信息来判断关于总体的参数的原假设是否成立。方差分析实际上是通过多个总体均值相等的假设检验,来推断变量间因果联系的统计方法。在这里,我们主要要掌握原假设H0与被则假设H1的设置,看懂SPSS分析结果的数据,其中最为关注的一般是P-Value值,如果大则原假设成立,否则选择被则假设,还有F检验值和T检验值以及卡方检验值。与参数检验相比,在非参数检验中不需要对总体分布的具体形式作出严格假设,或者只需要很弱的假设。大部分非参数检验都是针对总体的分布进行的检验,但也可以对总体的某些参数进行检验。在这可学习中,最大的问题就是如何区分各种检验和合理应用。到现在我还很难理解,感觉很惭愧。

这门课程中我们学了另外一种数据分析方法就是聚类分析。它与“物以类聚,人以群分”是同样的道理。多元统计分析方法就是对样品或指标进行量化分类的问题,它们讨论的对象是大量的样品,要求能合理地按各自的特性也就是相似性来进行合理的分类,没有任何模式可供参考或依循,即是在没有先验知识的情况下进行的。我们学习了Q型聚类法、R型聚类法以及系统聚类法。Q型聚类分析样品间的聚类,用距离来测度亲疏程度。R型聚类分析变量间的聚类,用相似系数来测度亲疏程度。常用的Q聚类法有闵氏距离和马氏距离,只是我们必须掌握的。具体的计算方法有最短距离法、最长距离法、重心法、离差平方和连接法等等。在最后一节课老师讲了贝叶斯理论,根据先验概率和实验事件得出后验概率,从而得出更为可信的概率。最后,这门课程就学完了,学到了很,还有很多不懂。本课程需要很好的统计和概率论的基础,要不,很难听懂或者简直听不懂。同时,老师很少强求我们及时做作业,以至于我们知识掌握不牢固,前学后忘现象严重。有时候觉得老师讲得过深,我们根本无法接受。希望老师以后讲授本课程时把难度降低一点,多给学生练习的机会。我希望在考试之前把学懂的知识巩固,把不懂得尽量弄懂,但愿以后在工作中能轻松运用。

软件定义的数据中心 篇6

8月,VMware公司联合250余家虚拟化及云计算厂商,在VMworld2012大会上将虚拟化技术进行了淋漓尽致的演绎。

现场,技术人员用几分钟的时间演示了如何创建、配置虚拟数据中心,灵活、快捷到不可想象。在虚拟化和云计算技术的驱动下,企业IT基础架构层、应用层、终端接入层都将面临巨大的变革。

正像10年前业内专家们预测的一样,虚拟化技术将会在不远的将来给数据中心管理带来深刻的变革。没有哪个企业能够抵御应用虚拟化技术来简化服务部署、提高运行维护效率、降低管理复杂性的巨大诱惑。

在VMworld2012大会上,VMware首席执行官PaulMaritz在大会第一天就隆重发布了VMware的最新产品VMwarevCloudSuite。它可以向客戶提供构建、运行和管理云环境所需的所有技术和解决方案,提供实现云计算的架构,即软件所定义的数据中心。

在过去的半个多世纪,信息技术的发展尤其是计算机和互联网技术的进步,极大地改变了人们的工作和生活方式。大量企业开始采用以数据中心为业务运营平台的信息服务模式。数据中心变得空前重要和复杂,这对管理工作提出了全新的挑战,一系列问题接踵而来。企业如何通过数据中心快速地创建服务并高效地管理业务?怎样根据需求动态调整资源以降低运营成本?如何更加灵活、高效、安全地使用和管理各种资源?如何共享已有的计算平台而不是重复创建自己的数据中心?在需求之上,虚拟化和云计算应运而生。

虚拟化技术很早就在计算机体系结构、操作系统、编译器和编程语言等领域得到了广泛应用。它实现了资源的逻辑抽象和统一表示,在服务器、网络及存储管理等方面都有着突出的优势,大大降低了管理复杂度,提高了资源利用率和运营效率,从而有效地控制了成本。由于在大规模数据中心管理和基于互联网的解决方案交付运营方面有着巨大的价值,服务器虚拟化技术受到人们的高度重视,人们普遍相信虚拟化将成为未来数据中心的重要组成部分。

数据分析软件 篇7

众所周知,软件故障对软件可靠性具有重要影响。软件错误是一种人为错误,一个软件错误必定产生一个或多个软件缺陷。当一个软件缺陷被激活时,便产生一个软件故障。软件故障如果没有得到有效、及时的处理,便不可避免地导致软件失效。因此,分析不同软件故障对软件可靠性的影响,是软件可靠性研究的重要内容之一。

由于软件错误和缺陷是软件失效的源头,人们对此进行了大量的研究工作,提出了多种软件缺陷分类法。由于观察问题的角度不同,其分类也各有不同,下面是几种有代表性的软件缺陷分类[1,2]:

(1) Putnam等人从软件生存周期的角度提出的分类方法,将软件缺陷分为六类:需求缺陷、设计缺陷、文档缺陷、算法缺陷、界面缺陷和性能缺陷。

(2) Thayer软件错误分类方法[3]按错误性质分类,它利用测试人员在软件测试过程填写的问题报告和用户使用软件过程反馈的问题报告作为错误分类的信息,包括16大类,164个子类。这16个大类分别是计算错误、逻辑错误、I/O错误、数据加工错误、操作系统和支持软件错误、配置错误、接口错误、用户需求改变(指用户在使用软件后提出软件无法满足的新要求产生的错误)、预置数据库错误、全局变量错误、重复的错误、文档错误、需求实现错误(指软件偏离了需求说明产生的错误)、不明性质错误、人员操作错误、问题(指软件问题报告中提出的需要答复的问题)。该分类方法特别适用于指导开发人员的缺陷消除和软件改进工作。通过对错误进行分类统计,可以了解错误分布状况,对错误集中的位置重点加以改进。该方法分类详细,适用面广,当然分类也较为复杂。该分类方法没有考虑造成缺陷的过程原因,不适用于软件过程改进活动。

(3) 电气和电子工程师学会制定的软件异常分类标准(IEEE Standard Classification for Anomalies 1044-1993)对软件异常进行了全面的分类,该标准描述了软件生命周期各个阶段发现的软件异常的处理过程。分类过程由识别、调查、行动计划和实施处理四个步骤组成,每一步骤包括三项活动:记录、分类和确定影响。异常的描述数据称为支持数据项,分类编码由两个字母和三个数字组成,如果需要进一步的分类可以添加小数。其中调查步骤将异常类型分为逻辑问题、计算问题、接口/时序问题、数据处理问题、数据问题、文档问题、文档质量问题和强化问题,共八个大类,每一个大类又分为数量不等的小类。分类细致深入,准确说明了异常的类型。

(4) 正交缺陷分类ODC[4](Orthogonal Defects Classification)是IBM公司提出的缺陷分类方法。缺陷类型被分为七大类:赋值、检查、算法、时序、接口、功能、关联。该分类方法提供一个从缺陷中提取关键信息的测量范例,用于评价软件开发过程,提出正确的过程改进方案。该分类方法分类细致,适用于缺陷的定位、排除、原因分析和预防活动。缺陷特征提供的丰富信息为缺陷的消除、预防和软件过程的改进创造了条件。它的缺点在于分类复杂,难以把握分类标准,缺陷分析人员的主观意见会影响属性的确定。

(5) 马里兰大学/NASA软件工程实验室缺陷分类法。它从缺陷的最初来源,缺陷修复时间,缺陷发现方法,缺陷发现的模块这四个因素入手开展缺陷分析。该分类法仅从缺陷产生的原因分析,没有从缺陷发生的角度分析,仅是ODC方法实现的一部分。

(6) 优利系统公司错误分类方案。1984年优利系统公司实行的错误分类方案通过填写软件变更报告,搜集软件变更原因、问题适合的发现和隔离方式、软件开发人员最初编写的代码是否正在被修补、隔离和修改花费的时间、修改的模块等客观问题,以及问题原因判断、理由两个主观问题的答案。这些问题的回答帮助将缺陷从“错误主要分类”、“错误类型”、“限定”、“用途”四个方面分类。该分类从软件开发过程中多个角度实现了有价值的分析,但分类不够清晰。

(7) IBM的缺陷预防方案。1990年IBM研究中心的R.G.Mays等人提出的缺陷预防方案是采用因果分析方法对缺陷进行分析,包括三个步骤:1)将缺陷归类于疏忽、教育、交流不当、文字错误等问题;2)分析缺陷起因及引入的时间,并讨论如何防止类似缺陷再次出现;3)查找剩余残留缺陷,并消除所有存在的缺陷并改进开发过程。该方法和根源分析法类似,人为执行因果分析时容易受到过多主观因素的影响,分析结果不客观。

以上是当前有代表性的几种软件缺陷分类方式,但这些分类法都是宏观地考虑整个软件开发过程,并没有从代码的角度对软件缺陷进行分类。

1 面向程序代码的缺陷分类

使用程序变异方法注入故障,首先必须从程序代码的角度对软件缺陷进行分类。在分析、研究了已有的各种分类方法的基础上,针对C++语言,我们提出了面向程序代码的软件缺陷分类法。该方法将软件缺陷分为以下五类:

(1) 赋值缺陷 主要指由变量未赋值和赋值不正确引起的故障。这类软件故障主要包括:变量未初始化就使用错误;数组变量的越界错误;数组元素使用错误;指针变量使用错误;指针越界;数据类型不匹配的错误;算术表达式优先级错误;非法算术运算错误(除数0,负数开方);整数和浮点数的上溢下溢错误;非法类型转换错误;引用赋值与内容赋值使用错误等。这类故障常发生于函数的开头部分。

(2) 分支缺陷 主要发生在分支的判断体及分支结构部分。这类软件缺陷主要包括:等于运算符使用错误;边界值被忽略;逻辑运算符与位运算符的误用;逻辑运算符使用错误;if-else匹配错误;缺少默认情况;逻辑表达式优先级错误;引用比较与内容比较使用错误等。

(3) 循环缺陷 主要发生在循环条件及循环结构部分。这类软件缺陷主要包括:边界值错误;等于运算符使用错误;循环变量使用错误;多循环嵌套时,因大括号位置错误引起的循环体不完整;break语句与continue语句使用错误;永不循环错误等。

(4) 接口缺陷 主要指用户、构件、函数之间的信息交换错误。这里所说的接口表现为函数调用、参数传递、函数返回值及共享的全局变量。这类软件缺陷主要包括:函数调用参数传递错误;多出口函数中某个return语句的丢失错误;return语句返回值错误;函数调用错误;函数调用丢失;响应延迟;响应丢失类故障;发送/接受错误消息;多用户冲突引起的系统异常;同步异常等。其中,响应延迟、响应丢失类故障、发送/接受错误消息、多用户冲突引起的系统异常和同步异常主要发生在分布式软件中。

(5) 类缺陷 主要指与面向对象特征相关的错误。这类软件缺陷主要包括:访问控制错误;状态可见性异常;状态定义不一致;状态定义异常;异常处理错误;构造函数行为异常;构造函数不完整;类型使用不一致;重载函数实现错误;重载函数使用错误等。

2 程序变异及其分类

程序变异作为一种软件实现的故障注入方法,最早在20世纪70年代末期由DeMillo等人提出。它能够系统地模拟软件中存在的各种缺陷,并构造较为完备的测试用例集。虽然该技术具有较强的排错能力,但它对资源的消耗也是不容忽视的。

程序变异是指根据软件缺陷定义一系列的变异算子,并将变异算子作用于程序代码,从而改变程序句法以达到故障注入的目的。程序变异理论基于两个基本假设:一是程序员的能力假设,即假设程序不存在功能型错误,只存在一些代码编写的失误;二是组合效应假设,即复杂错误是简单错误的组合。

程序变异常用于软件测试阶段,它的基本原理是使用变异算子每次对被测试程序做一处微小的合乎语法的改动,从而产生大量的新程序,我们称之为变异体,然后根据已有的测试数据运行变异体,比较变异体和原程序的运行结果,如果两者不同,就称测试数据将该变异体杀死[5]。这样做的目的是不断提高测试数据集的测试充分度。变异测试是一种行之有效的测试方法,具有排错能力强、灵活性好、自动化程度高等优点。但它也存在一些缺点,如需要大量的计算机资源来产生、存储、运行变异体,并且需要大量的人工操作。

在程序变异中,变异算子的设计一直是人们研究的重点。针对不同类型的软件缺陷,研究人员设计出不同类型的变异算子。按照模拟软件缺陷的类型不同,可将程序变异分为以下四种:

(1) 传统变异 在早期程序变异的研究中,变异算子的设计主要集中在对操作数和运算符的变异上。有代表性的研究成果是Mothra测试工具集[6]。它针对Fortran语言定义了22种变异算子,这些变异算子源自程序员的错误。

(2) 接口变异 它模拟集成错误,在模块的接口处作用变异算子产生变异体。变异算子的设计主要针对函数调用、参数传递、函数返回值、共享的全局变量。文献[7]针对C语言设计了分别作用于被调用函数内部和调用函数内部的两组接口变异算子。文献[8]的实验结果表明接口变异不仅产生较少的变异体,消耗较少的资源,而且揭错率也维持在较高的水平。

(3) 类变异 是传统变异测试的一个延伸,它针对面向对象软件的特殊性质,模拟类、对象、继承、封装、信息隐蔽、多态、动态绑定等方面的软件缺陷。

文献[9]针对Java语言定义类变异算子,通过类变异算子植入与Java面向对象特征相关的错误。这些变异算子包括:更改访问控制符;删除隐藏变量;插入隐藏变量;删除覆盖方法;改变覆盖方法调用位置;重名命覆盖方法;删除super关键词;删除父类构造函数的显式调用;将子类型对象的声明替换为父类型;子类对象替换参数中的父类对象;兼容类型对象的赋值替换;改变重载方法的内容;删除重载方法;删除异常处理;修改异常处理;引用赋值和内容赋值之间的替换;引用比较和内容比较之间的替换。

(4) 合约变异 它是针对功能规约的变异测试,发现由于规约被错误理解或实现所导致的程序中的错误。与传统变异测试相比,合约的规模小于程序,其产生的变异体数目较小。此外,还可以通过定义有效的变异算子来减少合约变异体的数量,从而降低变异测试的计算代价[10]。

3 变异算子的设计

我们用变异算子模拟软件中将会出现的各类软件缺陷,通过程序变异的方法将软件故障注入到代码中。程序变异的同时,在变异体中插入故障检测代码,实现对故障的自动检测。按照第1节的软件缺陷分类,为每一类软件缺陷设计了一些变异算子来进行模拟。在设计变异算子时,我们遵循变异算子的两个设计原则:第一,程序的改动必须是微小的;第二,改动必须是符合语法规则的,也就是编译时不报错,程序能够正常执行。表1是为这五类软件缺陷所设计的变异算子。

3.1 赋值缺陷

为了模拟赋值故障,设计了五种变异算子。当被赋值的变量与原变量的值不一致时,认为故障发生。

(1) 删除变量初始化(DVI)

通过删除局部变量的第一次赋值,模拟变量未初始化就使用错误。

(2) 随机数替换整形值(RIR)

通过用随机数赋值给当前整形变量,模拟整形变量的赋值错误。在变量的使用过程中,整形变量的使用是最为频繁的,因此我们单独设计变异算子来模拟整形变量的赋值错误。

(3) 数组长度代替数组下标(LRS)

通过用数组长度的值代替当前数组元素的下标,模拟数组越界错误。

(4) 数组元素替换(AAR)

通过随机选择数组中的元素替换当前元素,模拟数组元素使用错误。与RIR算子相同,使用C语言的库函数rand()产生一个随机数,再通过求余运算,即可得到数组长度范围内的随机数。

(5) 将float型转换为int型(FCI)

通过float型变量强制转换为int型,模拟非法类型转换错误。

3.2 分支缺陷

为了模拟分支故障,设计了三种变异算子。当变异体的执行路径与原程序的执行路径不一致时,认为故障发生。

(1) 分支结构中赋值运算符替换等于关系运算符(ACB)

在分支结构的判断条件处,经常会发生“==”与“=”的误用,这类错误主要由于程序员的疏忽所致。

(2) 分支结构中逻辑运算符替换(LRB)

通过在分支结构的判断条件中,用“&&”替换“‖”,或者用“‖”替换“&&”,模拟分支结构中逻辑运算符使用错误。

(3) 删除括号(DPB)

通过删除嵌套的if语句中的括号,模拟if-else的匹配错误。

3.3 循环缺陷

为了模拟循环故障,设计了以下三种变异算子。当变异体的循环判断条件的真假值与原程序的不一致时,认为故障发生。

(1) 循环结构中赋值运算符替换等于关系运算符(ACL)通过将循环条件中“==”替换为“=”的方法,模拟循环结构中的等于运算符使用错误。

(2) 循环结构中逻辑运算符替换(LRL) 通过在循环条件中,用“&&”替换“‖”,或者用“‖”替换“&&”,模拟循环结构中逻辑运算符使用错误。

(3) 改变循环变量(CVL) 通过用相同类型的变量替换循环变量,模拟循环变量使用错误。这种变异也常会伴随引入变量未初始化就使用错误。

3.4 接口缺陷

为了模拟接口故障,设计了以下四种变异算子:

(1) 改变调用参数顺序(POC) 通过改变函数调用中兼容类型参数的顺序,模拟函数参数传递错误。这种类型的错误通常由于程序员的疏忽所致。

(2) 兼容型变量替换参数(VPR) 通过用兼容型的变量替换被调用函数参数,同样可模拟函数参数传递错误。另外,此变异若发生在Socket中的Send函数时,可模拟发送错误消息。

(3) 删除调用语句(FCD) 通过删除一个不在赋值语句中的函数调用,模拟函数调用丢失。

(4) 删除return语句(RSD) 在有多个出口的函数中,通过删除其中一个出口的return语句,模拟return语句丢失。

3.5 类缺陷

为了模拟类故障,设计了以下五种变异算子:

(1) 改变访问控制符(AMC) 通过改变成员变量的访问控制符模拟访问控制错误。该类故障依赖于软件特性,一般不易发生。此变异一般作用于类的头文件。

(2) 删除隐藏变量(IHD) 通过删除派生类中与基类同名同类型的变量,模拟因隐藏变量引起的状态定义不一致错误。此变异一般作用于类的头文件。

(3) 声明基类成员变量(MDB) 通过用基类声明一个派生类的对象,模拟类型使用不一致错误。

(4) 删除派生类覆盖函数(OMD) 通过删除派生类中的覆盖函数,模拟因覆盖引起的状态定义异常。

(5) 改变被覆盖函数的调用位置(OCC) 有些情况下派生类的覆盖函数需要调用基类的函数,通过改变被调用的基类函数的位置,模拟状态可见性异常。

4 软件缺陷对软件可靠性影响的分析

4.1 实验内容及步骤

选取经过充分测试后的软件作为实验对象,其缺陷数为0,软件可靠性为1。用程序变异的方法将上述变异算子分别作用于该实验对象,估计软件的可靠性,分析比较这些故障对可靠性的影响。实验的具体步骤如下:

(1) 从实验对象中选取待注入故障的构件。因为在C++语言中程序代码以CPP格式的文件存放,所以我们选择待注入故障的构件所在的CPP文件。

(2) 从上一节选择变异算子,将其作用于步骤(1)中所选的CPP文件,生成多个变异体。变异体的命名采用“原文件名+变异算子+流水号”。例如“CImageView_DVI_5.cpp”表示DVI变异算子作用于CImageView.cpp文件后所产生的第五个变异体。

(3) 选择一个步骤(2)中产生的变异体替换原文件,达到故障注入的目的。此时的实验对象中已包含了产生该变异体的变异算子所模拟的故障。

(4) 使用改进后的Cheung模型估计上一步得到的含有故障的软件的可靠性,具体步骤如下:

① 根据分布式软件在实际使用中各功能与数据的出现频率,建立操作剖面。频率必须从大样本中获取,以确保统计数据的有效性。

② 为分布式软件划分构件,确定构件间的连接件。将每台主机上的通信模块定义为一个连接件,该主机的其余模块定义为一个构件。根据各构件之间的调用关系,建立分布式软件体系结构及转移概率矩阵。

③ 根据耦合性最小的原则,并为每个构件划分子构件。根据子构件之间的调用关系,建立该构件的转移概率矩阵。

④ 从操作剖面中选择一个操作序列,通过执行分布式软件,收集失效数据。

⑤ 取一个构件,根据步骤④得到的失效数据,计算其中每个子构件的可靠性。

⑥ 根据步骤③中所得到的该构件的转移概率矩阵与步骤⑤中得到的子构件的可靠性,计算当前构件的可靠性。

⑦ 从步骤⑤开始重复执行,直到所有构件的可靠性都已计算完成。

⑧ 根据步骤④得到的失效数据,计算每个连接件的可靠性。

⑨ 根据步骤②、⑥、⑧所得到的分布式软件转移概率矩阵、构件可靠性、连接件可靠性,修正分布式软件的转移概率矩阵,计算当前操作序列下的软件可靠性。

⑩ 从步骤④开始重复执行,直到所有操作序列下的软件可靠性均计算完成。根据步骤①、⑨得到的操作剖面与各操作序列下的软件可靠性,计算最终的分布式软件可靠性。

(5) 重复执行步骤(3)、(4),记录所有的软件可靠性的值,分析比较实验结果,得出结论。

按照设计好的实验步骤,漫游系统实验选取文献[11]中提到的立方体全景图虚拟场景漫游系统(简称漫游系统)作为实验对象。该系统是在VC++ 6.0集成环境下,基于文档视图结构开发的可以在单机上运行的软件,属于集中式软件。它包含2017行代码,提供了水平、垂直方向的360度旋转漫游及场景的缩放功能。

4.2 实验数据分析及结论

选择第3节中的变异算子作用于漫游系统的CImageView.cpp文件,估计软件可靠性,我们用图形来表示注入各故障后漫游系统的可靠性,其中横轴表示各变异体,纵轴表示含有该变异体的软件可靠性。图1-图5分别表示五种类型故障对漫游系统可靠性的影响程度。

根据上述数据可以得到注入各类故障后系统可靠性的分布区间和平均值,如表2所示。

从表2中我们可以看到,含有赋值故障的软件可靠性的平均值最小,并且其分布较为集中,故认为赋值故障对该软件可靠性影响最大;含有类故障的软件可靠性的平均值最大,并且其分布区间也相对集中,所以我们可以得出类故障对软件可靠性的影响最小;除类故障外,含有接口故障的软件可靠性的平均值较大,其次是含有循环故障的软件和含有分支故障的软件。

总体来看,可以得出这五类故障对漫游系统可靠性的影响由大到小依次为赋值故障、分支故障、接口故障、类故障。由于含有循环故障的软件可靠性分布区间较宽,且较散乱,因此其平均值并不能说明该类故障对软件可靠性的影响程度,但我们可以得出该类故障会因变异体的个体差异而对软件可靠性造成不同的影响。

赋值故障一般发生在程序中函数的开头部分,后续的语句会直接或间接的使用到这些变量,故障的扩散性较强,因此该类故障对软件可靠性的影响较大。分支故障仅会发生在分支型结构的某个分支上,当程序在分支结构中的执行路径发生变化时故障才会发生,因此该类型故障发生的概率要比其他类型故障发生的概率要小,对软件的影响也较小。由于分支结构与循环结构在程序中占有很大的比例,而接口故障经常会发生在分支结构与循环结构中,因此故障发生的次数较少,所以该类故障对软件可靠性的影响较小。另外,在含有循环故障的软件中,由于循环次数的不确定性,导致故障发生次数的不确定,因此故障的个体差异使其对软件可靠性的影响不同。

类故障对不同的软件影响程度不同。第一,类故障与面向对象特性使用的多少有关,如覆盖、继承、重载等。当这些技术在软件中的应用较多时,出错的概率也较大,对软件可靠性的影响也较大。第二,类故障与软件的规模有关。类故障发生的条件较严格,在软件的一次运行中失效次数较少。当软件规模较大时,构件的执行次数较多,因此构件的可靠性较高,软件的可靠性也较高。

通过进一步的实验发现,软件可靠性值的分布与软件规模有关。表3给出了二个实验软件的测试数据。可以看到,软件规模较大时,可靠性的值的分布也较广,下限低,上限高;软件规模较小时,可靠性的值分布较窄,下限高,上限低。表中C/S系统的软件规模指的是客户端的代码行数。当软件规模较大时,构件的执行次数会增多,构件的失效次数也会增多。当执行次数增长速度大于失效次数增长速度时,构件可靠性提高,同时软件可靠性也提高;反之,构件可靠性和软件可靠性均降低。因此当软件规模较大时,可靠性波动也较大,各类故障对软件影响的差异性也较大。

5 结束语

软件缺陷是引起各类软件失效的根本原因,是影响软件可靠性的重要因素。研究人员从不同的角度出发,对软件缺陷进行了分类。然而这些分类方法均没有从程序代码的角度对软件缺陷进行分类。本文提出了一种面向程序代码的缺陷分类方法。根据这一分类法,设计了模拟各类软件故障的变异算子;采用程序变异方法,通过实验获得了各类软件故障对软件可靠性影响的相关数据,得出了各类软件故障对软件可靠性的影响程度,对软件的开发和使用都具有实际意义。

参考文献

[1]聂林波,刘孟仁.软件缺陷分类的研究[J].计算机应用研究,2004(6):8486.

[2]戚馨文.ODC和OPC方法在软件质量管理中的应用[D].浙江大学,2006.

[3]黄锡滋.软件可靠性、安全性与质量保证[M].北京:电子工业出版社,2002.

[4]Ram Chillarege,et al.Orthogonal Defect Classification:A Concept forIn-process Measurements[J].IEEE Transactions on Software Engineer-ing,1992,18(11):94395.

[5]单锦辉,李炳斌,孙萍.变异测试——一种面向缺陷的软件测试方法[J].半导体技术,2007,32(增刊):8085.

[6]King K N.A Fortran Language System for Mutation-Based SoftwareTesting[C]//ACMSIGPLAN Symposium on Interpreters and Interpre-tive Techniques,St.Paul MN,1987,7.

[7]Delamaro ME,Maldonado J C,Mathur A P.Interface mutation:an ap-proach for integration testing[J].IEEE Transactions on Software Engi-neering,2001,27(3):228247.

[8]Delamaro M E,Maldonado J C,Mathur A P.Integration Testing UsingInterface Mutation[C]//Proc.VII Int'l Symp.Software Reliability En-gineering(ISSRE'96).1996,11:112121.

[9]Ma Y S,Kwon Y R,Offutt A J.Inter-class mutation operators for Java[C]//Proceedings of the 13thInternational Symposium on SoftwareReliability Engineering(ISSRE 2002).Annapolis,MA,USA,2002:352363.

[10]姜瑛,辛国茂,单锦辉,等.一种Web服务的测试数据自动生成方法[J].计算机学报,2005,28(4):568577.

数据分析软件 篇8

1 可行性研究

我们在设计中完全采用了工程化的思维, 用这一理性思路充当软件研制的向导。通常情况下, 我们都是从三个不同的方向去研究和探讨并联机床所有控制软件开发中的操作可行性、经济可行性、技术可行性, 最后才能根据所设计的机床基本要求, 通过软件获得最初的数据流简图。一般情况下, 我们都是以传统数控机床的控制软件设计作为研究基础, 根据机床所要执行的全部任务再给出所有驱动关节的运动轨迹。之后根据提前所规划好的实测的驱动杆长量和运行轨迹作一个比较, 这样就能得到数字控制器的实现, 通过计算机的实时不间断的监控和故障分析。在这一环节最常见的就是开放性软件结构, 因为只有这样才能方便所有用户对机床进行改变和重组。这种开发的成本比较低, 但在操作方式和技术上都有着极强的可行性, 经过一系列的可行性分析, 就可以得到控制系统数据流图。

2 需求的分析

设计的控制软件一定要满足所有并联机床的基本功能所需, 最关键的就是必须保证其能在动平台的活动范围之内可以加工所有不同形状的零部构件, 由于零部构件具有形态各异的形状, 所以在加工中就会随时出现机床伸缩臂的运动方式与刀具的运动轨迹大不相同。这样就必须要根据实际加工的零件, 设计出刀具的运动轨迹, 然后再根据不同类别的零部构件进行相关的控制模块的编写。通过两种设计就可以进给轨迹加上刀具姿态变化组合而成刀具姿态变化, 同时还可以实现其他复杂的进给轨迹。通常情况下, 我们都是通过以下的两种方式解决对精度要求的细化。

首先, 通过改变细化控制时候所输出的脉冲当量的变化, 设置出脉冲分配的模块, 模块参数的相互调整, 可以提高相应的精度;其次:传感器的选择是否合适也是至关重要的, 我们通过对所有的信息反馈功能模块进行设置, 实现了在机床进行加工的过程中, 对其加工的位置进行实时的监测, 然后再将信息反馈到控制系统, 这样一来就可以使系统根据具体情况做出相应的补偿, 从而以满足了精度的要求。

3 数据字典

用软件工程的思想法去进行设计并联机床控制软件, 建立数据字典成了一个至关重要的中心环节, 它不但能提供数据的详细描述信息, 还能做到增强程序的可维护性和可读性。以下介绍一种并联机床的控制软件字典。

检测反馈:实时检测、拾取动平台位置姿态信息, 并反馈给控制系统, 并对该信息进行比对。加工余量:材料的三维去除量;零件形状:被加工的所有零件都具有自身比较特殊的几何特征 (水平平面、空间曲面、竖直平面、空间平面) ;六杆伸缩量:相对于动平台零点位移量 (正、负) ;步进电机脉冲数:精度:零件形状与刀具轨迹的一致性;与杆长伸缩量 (正、反转) 相对应的电机转数;位姿:动平台的位置和姿态;参数输入:人机交互的界面, 输入且显示零件的形状、精度、加工余量值;配置:根据所有构件和动平台的运行姿态和综合位置;脉冲协调与分配:按精度将六杆伸缩量分配成脉冲, 并协调各杆对应电机的伺服脉冲频率;反求轨迹:根据工件形状及加工余量确定各杆伸缩量的功能模块拾取法。

4 总体设计

采用模块化结构根据软件模块化理论为思路, 进行并联机床控制软件的总体设计, 软件的模块内部应具有高聚合性, 模块之间应具有低耦合性, 模块的层次深度不可以设置太大, 扇出数4~6, 才有利于控制;扇入数尽量大, 以便减少软件设计中的冗余度, 根据此原则对并联机床控制软件进行规划。

4.1 参数输入模块

输入的参数:精度、余量、形状。这些后续模块与参数的关系:反馈+余量→反求模块。形状→加工形状选择模块。精度→脉冲分配协调模块。

4.2 加工形状选择模块

包括平面曲线加工模块、空间直线加工模块、刀具姿态变化模块、空间曲线加工模块。

4.3 反求模块

通过现有的动平台运动的轨迹 (待加工零件的形状) , 求取六条伸缩臂的空间位置向量的变化值。

4.4 优化模块

实时计算中所有杆的加速度、速度、运动位移, 以及所有的受力情况, 通过了系统优化的计算方法得出所需最佳的杆长配置。

4.5 脉冲分配协调模块

将六条伸缩臂的空间位置向量的变化值, 要按精度要求分配成脉冲量输出给电机, 因为在一次加工过程中, 所有杆的伸缩量有大有小、有正有负, 所以模块还需具有协调所有杆在每步动作中的位移的功能。

5 结语

本文详细阐述了软件工程中关于并联机床控制软件设计, 强调了工程的方法研制以及软件的开发, 采用模块化的方法设计所需的软件, 从而增强了并联机床控制软件的可行性。这与与传统数控机床软件相比较, 具有设计周期短, 维护性能强等特点。

摘要:随着人们日益对生产与生活环境适应性的不断提高, 最近几年, 很多国内外机床制造业企业都在积极研制和探索新型的具有多功能的系统与制造装备, 文章从当前在结构技术上, 具有突破性进展的并联机床入手, 结合并联机构的进给传动机构的实际情况, 进行了大量的分析和研究。

关键词:并联机床,软件工程,软件设计

参考文献

[1]黄真.并联机器人机构学理论与控制[M].北京:机械工业出版社, 1997.

数据分析软件 篇9

自开展测土配方施肥参数试验以来,“3414”试验得到广泛的应用。随着试验的实施,试验结果的数据分析虽然有相关的专用软件支持,但试验中常出现特殊的情况,如缺区、部分重复时常给回归方程的计算带来难度,当2水平设计较偏或产量异常时,甚至会出现最高产量和推荐施肥量均为负值的现象,给数据分析与应用带来一定难度。为解决这一系列问题,应用Visaul Basic6.0研究开发了一个针对“3414”试验数据分析的软件,并在Windows XP下测试通过。为共享对“3414”的分析方法,现将该软件的设计方法介绍如下。

1 软件功能

软件的功能设计主要有2个方面:一是进行数据分析,二是反馈设计。数据分析主要是完成试验数据的回归分析,计算其回归方程,并通过方程求取最高产量和最佳经济效益时的施肥参数。反馈设计是针对本次试验设计初定的2水平与试验结果获得的最高产量或最佳经济效益时的参数水平间的差异,对下一次试验的2水平进行修正设计,以便获得更好的回归模型和肥料效应参数。

2 模块结构

软件模块主要包括数据输入、回归分析和方程应用3个部分。一是数据输入。数据输入主要包括单个试验的设计参数输入和试验结果数据的输入,还包括相同实施处理小区的多点试验数据的输入。二是回归分析。根据设计参数、回归模型和试验结果数据,运用回归运算求取回归方程。三是方程应用。本模块主要是在取得回归方程后,完成方程的试验总体评价、边际产量配方分析、最佳效益配方分析、反馈设计配方分析功能。

3 模块设计

3.1 模型生成

“3414”试验的回归分析模型是以三元二次方程(Y=b0+b1X1+b2X2+b3X3+b4X12+b5X22+b6X32+b7X1X2+b8X1X3+b9X2X3)为基础进行生成。生成方法主要分3种:一是通过内置生成标准模型,二是通过对标准模型修改生成非标模型,三是通过人机输入生成所需要的模型。

3.2 数据输入

在试验实际操作中,试验结果常非常复杂[4,5,6],如可能是完全实施的n次重复,可能是部分重复,也可能是部分实施,还可能会出现缺区现象。因此,就某一试验结果的数据输入通过会出现很多情况,在软件设计时都必须给予充分的考虑。但是,不管“3414”试验实施过程中会出现什么样的情况,其结果仍可归纳出一个共同的规律:每个取得有效试验结果数据的小区都有1组与之对应的设计参数,从而数据的输入就可归纳为2种数据组的输入:一是各小区设计参数的输入,二是各小区试验结果数据的输入。在数据的输入方法上,可以通过文本框以字符串的方式输入,也可通过文本文件或电子表格文件导入。数据输(导)入后,再用Split函数分离给设计矩阵(A)变量和依变量矩阵(Y)变量,从而完成数据的输入。对处理小区均相同的多个试验,则可使用相同的设计矩阵参数,将各试验结果数据一并输(导)入,供一并分析,以方便统计和管理人员快速分析审核多点试验资料。

3.3 回归分析

回归分析分3个部分:一是通过设计矩阵A和回归分析模型计算生成结构矩阵X;二是通过X的转置矩阵X′与X的乘积矩阵的求取逆阵C;三是通过依变量矩阵Y、结构矩阵X和逆阵C求取偏回归系数矩阵B,从而完成回归分析,建立试验的回归方程。

3.4 方程分析

方程分析主要包括3个方面:一是方程显著性检验。首先是通过F测验对回归方程进行总体评价;其次是方程F检验显著再对偏回归系数进行显著性检验。二是方程合理性分析。通过对各试验因子(Xi)求导后,分析各因子的一元二次回归方程,看其一、二次项的系数的正负性及其顶点位置,判断其合理性,从而确定回归方程的可用性。三是最高产量和最佳效益参数分析。通过上述2步检验确认方程合理可用时,首先通过对回归方程求导,获取最高产量时的施肥参数方案;其次是通过对试验肥料数量替换为价值因子后,求取最佳经济效益时的施肥参数方案。

3.5 反馈设计

在获得试验的回归方程后,通常会出现方程的边际产量并不出现在设计的2水平,有的偏差较大,甚至超出了试验设计范围(如大于3或小于0),这常给试验分析和下一步试验设计带来困难。通过运用计算机的高效运算效能,通过对方程各因子进行一定级度(精度可调)试验全域(0~3)扫描,求取方程所反映出的实际边际产量水平时的施肥参数,再将此参数反馈给试验设计者,用于作为下一次试验设计2水平的参考,从而可有效加快试验实施的进程,提高试验精度。

摘要:测土配方施肥“3414”试验数据分析复杂,介绍了“3414”试验数据分析软件的功能、模块结构、模块设计,以期提高数据输入、回归分析、方程分析效率,并将分析结果应用指导生产和新的试验设计。

关键词:“3414”试验,数据分析软件,设计原理

参考文献

[1]莫惠东.农业试验统计[M].上海:上海科学技术出版社,1984:151-174.

[2]张建玲,赵宏儒,马丽萍,等.固阳县旱地马铃薯测土配方施肥田间肥效试验[J].内蒙古农业科技,2011(1):75-77,118.

[3]张明安,马友华,褚进华,等.基于WebGIS的县域测土配方施肥系统的建立[J].农业网络信息,2011(6):20-23.

[4]张国峰贺立源韩松,等.基于移动GIS的施肥推介系统研发[J].华中农业大学学报,2011(4):484-487.

[5]郭小军,王晓燕,白志荣.对测土配方施肥工程的思考[J].内蒙古农业科技,2007(5):9-10.

维修软件策略分析 篇10

关键词:维修软件,策略,分析

一、概述

大多数维修管理人员都熟悉CMMS (计算机维修管理系统) 和EAM (企业资产管理) 软件。维修部门使用这些软件可以管理其职权范围内的各种事务。这些软件的价格从免费到极其昂贵不等, 而功能范围从简单的工作控制到诸如维修规划、资源和库存管理等多种活动的管理。自30多年前从使用纸张和T卡一直发展到现在, 这些软件在总体结构上并没有显著的变化。

通常, 这种结构包括下列内容: (1) 设备台账; (2) 备件/更换零件库存台账; (3) PPM (预防性维修规划) 记录; (4) 工作人员/合同资源记录; (5) 派工单控制或作业卡片记录; (6) 历史记录。

不过, 要维持整个维修部门正常运转的主要信息和流程, 比这六个内容多得多 (表1) 。在一些CMMS/EAM供应商的软件系统里已经包括了上述的某些功能, 这些功能可以完全集成在系统里, 也可以是一个附加的模块, 可以集成进系统, 也可以单独使用。维修部门的一般做法是实施一个基本的CMMS系统, 如果必须添加某些其他功能时, 就要通过专门的供应商, 而这些供应商通常不是原先CMMS系统提供者和实施者。更好的做法是采用一种维修管理软件策略, 首先, 也是最重要的, 就是软件策略要与管理维修的策略相一致。维修部门如何以最低的成本以及在可接受的安全和环境影响级别下, 提供OEE (设备综合效率) 等级的业务以实现长期业务目标。

二、如何从软件中受益

维修设备需要有经验的工作人员。通常付给有经验技术人员的酬金都较高, 雇佣他们来进行诸如预防性维修, 或者修理已损坏了的设备等技术性工作。由于存在有下列因素: (1) 技术信息的搜寻或绘图; (2) 水平一般的技术人员解决不了问题, 需要具有特殊技能的技术人员; (3) 等候备件; (4) 等候上级批准; (5) 工地现场来回费时; (6) 信息管理上的问题 (计算机记录、图纸等的更新) ; (7) 疾病等, 生产率最低可下降50%。

要减少在第一项里耗费时间的关键是把数据组织好, 而且若干天内所获取的数据的多少也要搭配适当。不过, 如果两者都组织得比较好的话, 那么尽管把硬件上存有的记录组织得再好, 软件检索信息的速度仍然还要快一些。

为了使维修技术人员掌握多种维修技术, 越来越多的公司在这方面进行了投资, 从而使得由第二项造成的维修效率低下有所改善。然而, 维修人员要能有效地进行工作, 关键是要对他们的使用有一个很好的规划。这一点对第五项 (工地现场来回费时) 也同样适用。维修规划要定期重新进行修订, 当然, 使用软件进行再修订要比使用计算器快得多。可以编写专门的算法来进行计算, 这样, 修订后的计划在试用时会更加切合实际。

如果库存量保持在预先确定的水平下时, 就不需要用软件来干预, 不过, 对像处理存货需求, 以及打印采购订单那样的重复性的流程, 使用计算机肯定会更快一些的。此外, 如果在已计划好的预防性维修任务里输入的是准确的库存需求数据, 那么计算机就能准确地预测出库存的利用水平, 从而就能更好地使用“准时制生产”方法对库存进行控制, 且能把库存成本维持在一个最低的水平上。

如果使用的是工作许可制, 那么正式授权可以着手开始工作就是该流程中最为重要的元素, 这样耽误在已规划工作上的时间可以减至最低, 而当诸如停机故障或对已批准的工作调度进行修改等不可预见的事件出现时, 要得到正式的批准手续需要花费很长时间。尽管使用电话或传呼机可以迅速地取得联系, 不过, 为了以后能对此进行审查, 正式授权需要以一定的方式记录下来, 因此请求者和批准者必须在一起, 才能获得授权签字, 这样一来, 处理事件的最佳时机就丧失掉了。目前, 一些公司开始接受把电子授权作为书面签字的一种替代方法, 从而就能在不危及安全的情况下保证事件能尽快得到处理。

任何一种维修软件都需要技术人员花费时间去更新数据, 重要的是, 这个时间的长短要考虑各方的利益, 越短越好。一台计算机会在操作人员请病假时照常运行, 而且会在资源几乎要耗尽时能够对资源进行重组。

再重述一下, 在信息快速定位、有效执行日常任务、准确快速进行复杂计算方面, 在计算机软件的帮助下能节省很多时间。

这些优点不仅仅在提高生产率方面, 在其他方面也很有用。比如, 可以定期地提供关键绩效因子数据。文职人员按照手写数据编制统计报表要耗费大量时间, 而这种软件就能按照需要自动地生成和更新这些数据报表。如果要对数据进行一次新的分析, 不需要几个小时只要几分钟就能完成, 因为从现代数据库里检索数据既快速又简便。

那么, 了解软件的优点对制定维修管理软件策略有什么帮助呢?现有的预算不可能一口气买下能满足所有部门需求的维修管理软件, 所以需要考虑一些优先次序问题。在实施前期, 所选定的是那些能满足维修管理战略的、能尽可能节约成本的功能。一般来说, 这样一种价值分析只能是对软件所能提供的诸多降低成本机制里的一种机制的理解和意见。

三、集成

维修管理软件策略要着眼于未来, 必须考虑到现存的软件, 或最初的实施状况如何能与最新的模块交融在一起。如果运用得当, 集成后可以节约数据重复输入的时间, 在制作报表时能提供可靠的参考点把不同系统里有关联的数据联系在一起。除非为了今后的实施而对软件模块有所规划, 以便能与现存的或早期实施的软件进行无缝的集成, 否则集成很可能是一个非常昂贵的过程, 因此, 好处是显而易见的, 要不然就不会把集成作为一种要求来考虑了。

与集成有关的一个重要问题就是针对一组数据来说, 哪一个模块起着控制寄存器的作用。从图1的例子来看, 在CMMS、工作许可和能源隔离里设备寄存器起着中心的作用。

如果集成得不好, 那么这三个设备清单就明显地不一致, 因为对记录的修改只是在一个模块, 而不是在其他模块里进行的。那么, 这些模块应该如何进行集成呢?主要有两种解决方案:

第一个方案 (图2) , 把一个模块 (比如说CMMS) 的设备寄存器设置成主寄存器, 通过定期地、有计划地向其他两个寄存器传输数据来更新其之数据。工作许可和能源隔离模块里的设备寄存器设置成只读模式, 以防止三个模块之间的数据出现错乱。在第二个方案 (图3) 中, 某一模块 (比如CMMS) 里的设备寄存器是唯一的设备寄存器, 其他两个模块必须做出改变, 只使用此寄存器而不使用自己原来默认的寄存器。当所有的模块都由同一个供应商提供时, 一般只选用第二种方案。

通过这些例子可以看出, 集成不是一种简单的事情, 需要有IT人员的介入且用户要有具体的需求。

四、实施

需要较长的时间才能正确地实施一个软件模块, 很多管理人员对此估计不足。实施包括有下列阶段: (1) 制作业务流程图; (2) 收集数据和数据库整体设计; (3) 安装和配置软件; (4) 对业务人员进行培训; (5) 试运行; (6) 进入日常运行并开始进行评审。

由于软件的复杂程度以及在实质上其对业务流程的影响不同, 所以实施可能要几个月、一年或更长一点的时间。数据是一个重要的因素, 其与输入数据库需要并能得到的基本数据的级别与质量有着密切的关系。某个字段是否使用与结构承包者们所提供的数据密切相关, 因为承包者们常常需要努力地对这些数进行检测才能保证其质量良好, 而还可以使用的另一种方法就是费时费力的手工输入。不过, 只要数据的质量好, 那么相比之下对现存系统进行升级相对讲还是比较快的, 因为与字段长短和数据兼容方面的限制问题相比, 数据的提取和输入还是比较简单的。

对员工的培训也应该重视。整个软件实施的成功与否取决于员工的参与, 反过来, 在介绍软件的引导过程中, 需要良好的沟通与培训。即便员工配合得很好, 仍有一段时间在使用上相互不一致, 新的工作方法需要从管理上不断地去灌输, 指导员工们能过自觉地采用为止。

一般来说, 软件的特点和功能要比实施时所意识和体会到的多得多。对某个特定的操作, 某些特点和功能不见得用得上, 一旦系统已经稳定地使用了一段时间之后, 这些特点和功能就可能被另一些操作所引用。

五、制定一个维修管理软件策略

维修管理软件模块可能是一个非常有创意的工具, 也可能是一个昂贵的负担。这两个极端之间的差别就在于策略规划。策略规划不是什么尖端科技:需要尽力地从广义上理解它的主旨, 并努力地从宏观而不是微观细致的方式对其进行思考。在制定维修管理软件策略上的关键概念有: (1) 要与公司的维修策略相一致; (2) 要了解该软件对哪些维修规章制度是有帮助的; (3) 要理解使用该软件后会有什么好处; (4) 要确定集成是否得当, 如果是, 恰当到什么程度; (5) 对每一个模块的实施时间进行评估; (6) 计算出每个模块的成本收益; (7) 制定出所要求的软件实施先后次序表。

软件工程运用数据挖掘技术的分析 篇11

关键词:软件工程 数据挖掘 技术 分析

中图分类号:TP311.13 文献标识码:A 文章编号:1674-098X(2016)06(b)-0080-02

当今时代是信息时代,随着互联网技术的发展,人们步入了大数据时代。毫不夸张地说,在这个大社会环境中,每个人都有自己的数据库,而众多人的数据结合在一起,形成了一个巨大的数据库,应用这些数据可以获取许多信息,而这些信息可以在一定程度上给商家带来所需的信息,因此,大数据在当今时代的地位越来越突出,卖家可以根据这些信息了解买家的偏好以及需求。在这样一种时代背景之下,为了满足人们对信息的需求,数据挖掘技术逐渐发展起来。

1 软件工程运用数据挖掘技术的概况分析

1.1 数据挖掘技术发展现状

所谓的数据挖掘技术指的是在众多繁杂的信息中收集以及提取出自己所需要的、对自己有价值的信息,它作为一门技术是为了软件工程开发而服务的。数据挖掘技术的最终目的是找到并提取对自己有用的信息,而信息提取的过程就是数据挖掘的过程。随着数据挖掘技术的进步,越来越多的行业开始将其应用到自己的领域中,软件工程也不例外。早期中国,信息量不是很大,传统软件工程开发在数据采集方面比较落后,它在验证驱动的过程中需要先假定信息的存在,在此基础上对信息进行采集和挖掘,最后再对假设进行验证,判断是否成立。但是现如今社会已经步入了信息时代,信息数量迅速增多,各种信息交汇在一起,错综复杂,因此信息呈现出又多又乱的特点,如果按照传统软件工程开发的方式对数据进行收集,那么就会使工作量变得很大,很难得以实施。数据挖掘技术基于这样一种现状对验证驱动的方法进行了调整和改进,可以在杂乱的信息中识别有用的信息并提取出来。

1.2 数据挖掘的相关内容

就目前来讲,关联发现技术、人工神经网络、分类树技术、最优集合规约技术以及聚类技术和可视数据挖掘技术等是最常使用的数据挖掘技术。在工程开发过程中,对数据的度量同样具有复杂性和难实施性,因此,在采用数据挖掘技术的同时要配合使用一些特殊的处理技术,例如:分类树处理技术、统计分析处理技术、回归建模处理技术等。不管应用哪种处理技术以及哪种数据挖掘技术,我们应该时刻注意开发商所要达到的目标,以此为指导,我们便能对多种技术进行合理的选择。

2 软件工程运用数据挖掘技术的方法

随着计算机的发展以及网络的普及,人们逐渐步入了信息的时代,在这样一种时代背景之下,人们对数据产生了更多的需求,而数据在很大程度上表现出多而杂乱的特点,这无疑给信息的查找以及提取带来了困难。为了满足人们的需求,数据挖掘技术逐渐发展起来,随着数据挖掘技术的逐渐完善,网络科学技术也得到了长足的发展;另一方面,网络科学技术随着时代的进步也在不断地发展,网络科学技术的发展使得信息数量逐渐增多,这也为数据挖掘技术的产生以及发展提供了基础。

2.1 挖掘执行记录

挖掘执行记录在软件工程中属于数据挖掘的领域,具体指的是根据分析程序的执行路径找到其与程序代码之间的关系,用逆向的方式找到软件程序与各个模块代码之间的关系,以此达到维护整体程序的目的。就目前来看,挖掘执行记录在长久以来虽然取得了一定的成效,但是,对其评价标准却缺少明确的规定,大家对它的评价不够完整并且不成体系。另外,现阶段信息数量多而杂乱,在对信息的表述上也不够统一,软件开发商很难做到对各种表达方法进行对比,因此也难以用定量的方法对数据进行分析。

2.2 检测软件漏洞

软件漏洞的问题一直以来是大家都比较关注的问题。一旦软件出现漏洞,将给企业带来不可估量的损失,数据挖掘技术在软件工程中应用时,要注意对软件漏洞的检测以及及时修补,这也是提高软件工程可靠性以及安全性的重要措施。在进行软件漏洞的检测过程中还要对其安全性能进行相应的评估,对于一些软件威胁病毒要及时地发现,并做好相应的清理工作。同时,还要做好相应的安全防护工作,采用多种模态进行软件运行状态的监控,避免重要信息和参数被侵犯。

2.3 挖掘版本控制信息

挖掘版本控制信息在软件开发中也有不可小觑的作用,就目前来讲,开发商在对软件进行开发时,一般会采用版本控制系统对开发过程进行系统管理以及系统保护。挖掘版本控制信息在软件工程中属于数据挖掘领域。它主要的目的是保证软件的安全性和可靠性,对系统全局性的更新奠定基础。同时,在进行信息的控制过程中需要对其信息进行相应的维护。要采用多种方式保证信息的安全和信息的正确。从而实现版本信息的有效控制。

2.4 挖掘开源软件

挖掘开源软件在软件工程的开发中具有明显的优势,它与前三者不同,具有其自身独特的优势,其特征包括开放性、全局性和动态性。由于其自身所具有的特点,在对该类软件进行开发时要注意同传统的软件区分开来,根据该软件自身的特点对其进行开发,采取适当而又有效的策略和方法。在进行软件的挖掘以及开发的过程中需要结合软件工程的主题进行相应地开发,避免开发出来的软件不具备一定的实用性。与此同时,在进行软件开发的过程中还要挖掘开源软件,其要顺应时代发展的特点,与市场发展趋势相互结合,让开发的软件的应用效率得到完满的提升。

3 软件工程中程序代码的挖掘

3.1 克隆代码的检测

在进行程序代码的挖掘过程中,其原创的可能性较低。通常会采用克隆代码的检测,获取相应的核心数据,然后对代码进行粘贴以及拷贝。之后需要结合企业的实际需要,对数据代码进行小幅度的调动,从而达到相应的检测效果。其检测是为了避免故障的拷贝传播这样的不利情况发生,而且对其检测还能对软件进行演化这个过程里起到不错的维护作用,基本上可以说克隆代码检测这样的存在已经是软件工程这个大领域中最先的数据挖掘需求,目前大概可以整理出四种比较常用的方式,分别为基于文本对比、标识符对比、度量、程序结构的方法。其也可以利用Hash函数这样的一项技术对字符进行相应的变化,从而达到相应的代码检测效果。

3.2 Aspect挖掘

在进行挖掘的过程中,其通常也需要对其Aspect数据进行挖掘。其主要是对程序的一种构造模式。在进行数据的挖掘过程中,其通常需要对各个关注点之间的数据进行相应的分析。同时,对不同的代码进行相应的分类,构造出较为合适的代码数据,让信息节点之间能够得到有效地传递。比如基于度量分析或者是形式概念分析等这类相对而言具有很强针对性的方法。这种方法能够让数据更加具有应用性实质效果。因此,Aspect挖掘在软件工程中的应用十分广泛。

4 结语

软件工程运用数据挖掘技术具有十分深远的意义。在进行挖掘技术的应用过程中,首先需要对挖掘的内容进行有条理的分析。同时还要应用数据挖掘的方法,对其各种执行记录、软件防护、信息控制以及开源软件进行全面的探讨。最后需要对软件的程序代码进行检测和Aspect挖掘,从而实现软件工程中挖掘技术的应用价值。

参考文献

[1]栾家明.数据挖掘技术在网上银行促销活动中的运用[J].电子世界,2016(11):15-23.

[2]李家兵.数据挖掘技术在工业上的应用[J].湖南城市学院学报:自然科学版,2016(3):69-72.

[3]曾倩倩.数据挖掘技术在计算机犯罪取证中的应用[J].通讯世界,2016(12):55-58.

潮汐数据分析工具软件的编写 篇12

1 潮汐分析的最小二乘法

潮汐按照涨落周期和潮差可以分为正规半日潮、不正规半日潮、正规日潮以及不正规日潮[1]等, 常用主要有M2、S2、N2、K2、K1、O1、P1、Q1、M4、M6、MS6等分潮, 各分潮具有不同的周期与振幅 (通常为相对振幅, 取M2=100)。潮汐分析的最小二乘法则是根据不同的潮汐分潮组合来构建潮汐模型,根据验潮站原始观测数据以及潮汐模型的预报值之间的残差,利用残差的最小二乘法来估计潮汐模型的系数。其中, 潮汐模型系数由分潮振幅与各分潮的延迟系数构成, 这样在以保证在满足无偏性、估值方差最小以及一致性的特征下使得潮汐模型系数达到最优。潮汐模型可以用方程式来描述:

式中, a0就是计算期间的平均海面, Ri为潮波的平均振幅, m为分潮的总个数, qi为各分潮的角速率, θi为分潮的各分潮延迟相位, ξ(t)为时刻t的潮高。

在最小二乘准则[2]下, 使得:

式中为计算潮高, ξ(t)为实测潮高。

这样得到了潮汐模型的系数矩阵 (各分潮的振幅Ri与延迟相位θi), 利用这些 参数结合 式 (1) 可以进行 潮汐预报 。

2 潮汐数据分析软件的设计结构

潮汐数据分析软件采用输入数据流-处理-输出数据流的瀑布型设计模式开发, 在进行潮汐数据处理之前, 需事先从分潮集合里选定不同的分潮组合, 其中输入潮汐观测数据流采用文本文件格式给出, 输出潮汐模型系数数据流采用规范格式加以输出, 即潮汐系数 (振幅与延迟相位) 与原分潮相对应, 通过这些数据可以得到分潮的组合模式以及潮汐模型。图1列出了潮汐数据分析软件的设计结构。

3 潮汐数据分析软件的编写

潮汐数据分析软件由潮汐数据文件读写、潮汐数据处理以及潮汐模型系数输出3个模块构成, 不同的模块的软件代码如下:

3.1 潮汐文件读写模块的具体代码

3.2 潮汐数据分析处理模块代码

这里Matrix Mutiply (Matrix *A, Matrix *B) 以及Rotate、Substract、Inverse Matrix均为矩阵 运算函数 , 具体代码 这里省略。

3.3 潮汐模型数据输出模块代码

4 潮汐数据分析软件测试

通过对验潮数据的输入可以得到一段时期内的水位观测数据, 利用分潮模型式 (1) 在满足条件 (2) 下得到各分潮系数, 利用此系数可以预报下期的潮汐水位数据, 得到的分潮模型系数可以经过保存打印输出。图2为具体的潮汐分析软件界面及处理流程图。

摘要:读取原潮汐观测数据文件,选取潮汐分潮生成带参数的潮汐模型,编写潮汐数据分析工具软件来确定潮汐模型各分潮系数,以预报不同时段的潮汐值。

上一篇:课堂企业化实训论文下一篇:炎琥宁注射剂