带你读《SAS数据分析开发之道 软件质量的维度》第一章概览1.1引言(六)-阿里云开发者社区

开发者社区> 人民邮电出版社> 正文

带你读《SAS数据分析开发之道 软件质量的维度》第一章概览1.1引言(六)

简介: 带你读《SAS数据分析开发之道 软件质量的维度》第一章概览1.1引言
+关注继续查看

风险


从软件开发角度来讲,基本的风险包括软件功能性故障和性能故障。例如,一个   无恶意的“威胁”(如大数据)会利用软件的“漏洞”(如一个潜在的错误,当遇到大数据时,该错误能限制有效范围),给商业价值带来“风险”(无效性能或功能性故障),这些术语的定义在下面的“威胁、漏洞及风险”文本框中。尽管“项目管理知识体系”(PMBOK)及其他资料将“正面的风险”看作机会,但本书只讨论负面的风险。

威胁、漏洞及风险

威胁 “可能会为一个或多个项目目标带来负面影响的风险。”“系统或系统环境的一种状态,该状态会从一个或多个已知的风险维度造成不利影响。”漏洞“信息系统、密码系统或部件(如系统安全程序、硬件设计、内部控制)存在的缺点,这些缺点可能会被其他程序利用。”风险 “一种未知的事件或情况,一旦发生,就会对一个或多个项目目标造成正面或负面的影响。”“系统组件、运算符、用户及环境中,非常态事件或故障发生的可能性与该事件或故障产生后果的组合。”故障

故障

软件故障通常是由利用漏洞的威胁引起的,但并不是所有的威胁和漏洞都会导致软件故障。错误(人为错误)可能会隐藏在代码中,开发人员可能会也可能不会发现这些漏洞。隐含的漏洞包括编码错误(缺陷,这些错误还不会导致故障,而已知的漏洞所包含的编码错误(潜在缺陷)则已经被识别,但尚待解决。第 4章将深入探究并区分这些术语。

例如,下面的 SAS代码在文献中通常看作是一种决定数据集中观测数据量的方法 :

procsqlnoprint;selectcount(*)into:obstotfromtemp;

quit;

 

该代码对观测数据少于 1亿的数据集有效,但由于这个阈值是交叉的,所以&OBSTOT会在数字记数法和科学记数法之间变化。例如,含有 1000万个观测数据的数据集会被表示为10000000,而含有 1亿个观测数据的数据集则被表示为 1E8

(1×108。对于运行此代码的SAS从业人员来讲,若要查看日志中观测数据的数量,这一差异不会有什么问题。然而,若后续的程序试图评价或比较    &OBSTOT,且被评价的数据是在科学记数法模式下,则会出现运行错误,错误代码如下 :

%letobstot=1E8;

%if&obstot<5000000%then%putLESSTHAN5MILLION;

%else%putGREATERTHAN5MILLION;

 

LESSTHAN5MILLION

 

很显然,1亿并不小于 500万,但由于有两个潜在的错误,所以代码会存在漏洞,而改正其中一个错误就可消除漏洞,改变 &OBSTOT的赋值,添加一个能容纳更大数据的格式就可消除第一个错误,如使用 FORMAT指令进行演示。通过在

%SYSEVALF宏函数中添加数值比较就可消除第二个错误,这样会将 1E8解释为数字,而不是文本。我们对两种解决方案都进行了演示,而且改正任何一处错误都会消除漏    洞,防止故障的发生。

procsqlnoprint;

selectcount(*)format=15.0into:obstot

fromtemp;


quit;

 

%if%sysevalf(&obstot<5000000)%then%putLESSTHAN5MILLION;

%else%putGREATERTHAN5MILLION;

 

GREATERTHAN5MILLION

 

因为故障只发生在观测数据增加时,所以可以称作可扩展性错误。SAS从业人员没有预料到(并测试)遇到大型数据集时会出现什么状况。但如果 1 亿个观测数据阈

值不交叉,即便存在错误,代码也会继续运行,而不会出现故障。我们将在第 9章“可扩展性”的“SAS 应用阈值”部分深入讨论这种错误类型。

开发人员经常会有意地在软件中添加漏洞,例如,一个熟悉前述软件漏洞(被大    数据漏动利用)的开发人员在设计能够处理含有小于1 万个观测数据的数据集软件时,可能会选择忽略软件中的这一错误。因为风险可忽略不计,因此,可以接受并如期发    布含有漏洞的软件。在其他情况下,威胁可能会带来较大的风险,但这些风险也会被    接受,因为消除或降低风险所花费的成本要远高于从中获得的好处。

未被利用的漏洞不会降低软件的可靠性,因为不会发生任何故障。例如,上述的潜在漏洞永远不会被利用,因为不会遇到大数据。然而,漏洞确实会增加软件发生故障的风险,因此,开发人员应知道软件的具体风险是什么。在这个例子中,风险是由SQL   程序内大数据的意外处理引起的,如果漏洞被利用,造成了“运行时错误”或其他故障,那么软件的可靠性就会降低。我们在下一部分要讲到的风险登记表能帮助SAS   从业人员记录已知漏洞、预期风险及初步解决方案,以更好地评估和管理软件产品的风险级别。






版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础
SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础 1. SAS系统简介 1.1 SAS是先编译后执行的语言,data步标志着编译的开始。 数据指针:当前内存缓存区,输入数据所在位置。 PDV:Program Data Vector,在DATA步中所有涉及的变量被编程当前向量的一部分。 2. SAS编程基础 2.1 SAS逻
1488 0
SAS进阶《深入分析SAS》之数据汇总和展现
SAS进阶《深入分析SAS》之数据汇总和展现 1. 通过Print过程制作报表 proc print &lt;data=数据集&gt;; run; 选项: obs=修改观测序号列标签 noobs不显示观测序列号 id语句在输出中取代观测序列 var选择输出的变量 where语句选择输出的观测 总结如下: proc print data=数据集&lt;选项&g
1165 0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理
SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 KEEP 规定在数据集中保留的变量 DROP 规定在数据集中删除的变量 ARRAY 定义一个数组 RENAME
1387 0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制
SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和END之间的语句 DO WHILE 重复执行直到条件为假则退出循环 DO UNTIL 重复执行直到条件为真则退出循环 DO OVER 对隐含下标
1240 0
SAS进阶《深入解析SAS》之Base SAS基础、读取外部数据到SAS数据集
SAS进阶《深入解析SAS》之Base SAS基础、读取外部数据到SAS数据集 前言:在学习完《SAS编程与商业案例》后,虽然能够接手公司的基本工作,但是为了更深入的SAS学习,也为了站在更高的一个层次上去掌握和优化公司工作,故而又咬紧牙关加紧学习《深入解析SAS》.就目前的两本书的对比,显而易见的是本书比《SAS编程…》要厚的多,再者内容更新是2015年著,最后是内容详实
1746 0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程
SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) 结构化查询语言(SQL) SAS宏语言 2. 宏触发:% 是一个宏语句或宏函数;&amp;是一个宏变量引用 3. 局部宏变量:一般程序定义的为宏变量。 全局
1666 0
SAS进阶《深入解析SAS》之SAS数据挖掘的一般流程
SAS进阶《深入解析SAS》之SAS数据挖掘的一般流程 1. 所谓数据挖掘,是指通过对大量的数据进行选择、探索与建模,来揭示包含在数据中以前不为人所知的模式或规律,从而为商业活动或科学研究提供帮助和服务。 2. 数据挖掘重要的两个类别:有监督分析(SupervisedAnalysis),无监督分析(UnsupervisedAnalysis)。 有监督分析属于目标
1072 0
472
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载