没有合适的资源?快使用搜索试试~ 我知道了~
软件X 10(2019)100357实用软件可靠性工程与软件故障和可靠性评估工具(SFRAT)Vidhyashree Nagarajua,Venkateswaran Shekara,Joshua Steakeluma,Melanie Luperona,Ying Shib,Lance Fiondellaa,a美国马萨诸塞州达特茅斯市马萨诸塞大学电气与计算机工程系,邮编:02747b美国国家航空航天局戈达德空间飞行中心ar t i cl e i nf o文章历史记录:收到2019年收到修订版2019年11月3日接受2019年11月4日保留字:软件可靠性增长模型软件故障和可靠性评估工具开源R编程语言GitHuba b st ra ct许多大型软件项目都在努力实现其可靠性目标。软件可靠性增长模型从软件测试过程中收集的故障数据中量化可靠性。本文介绍了软件故障和可靠性评估工具(SFRAT),它实现了几个软件可靠性增长模型作为一个免费和开源的应用程序。该工具的开源性质使用户能够将这些方法整合到他们组织的工作流程中该工具是在美国航天局的一个项目的背景©2019作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v1.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2019_210法律代码许可证MIT许可证使用git的代码版本控制系统软件代码语言、工具和服务使用R编译要求、操作环境依赖性https://github.com/LanceFiondella/SFRAT-Automated-Report/blob/master/installscript.R如果可用,链接到开发人员文档/手册https://sasdlc.org/lab/assets/projects/srt.html问题支持电子邮件lfiondella@umassd.edu软件元数据当前软件版本v1.0此版本可执行文件的永久链接https://github.com/LanceFiondella/SFRAT-Automated-Report法律软件许可证MIT许可证计算平台/操作系统Linux、OS X、Microsoft Windows和类Unix安装要求依赖关系请参阅用户如果可用,请链接到用户手册-如果正式出版,请在参考列表中引用该出版物https://sasdlc.org/lab/assets/projects/srt.html问题支持电子邮件lfiondella@umassd.edu*通讯作者。电子邮件地址:vnagaraju@umassd.edu(V. Nagaraju),vshekar@umassd.edu(V.Shekar),jsteakelum@umassd.edu(J.Steakelum),https://doi.org/10.1016/j.softx.2019.100357mluperon@umassd.edu(M.Luperon),ying.shi@ nasa.gov(Y。Shi),lfiondella@umassd.edu(L.Fiondella)。2352-7110/©2019作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx2V. Nagaraju,V. Shekar,J. Steakelum等人/ SoftwareX 10(2019)1003571. 动机和意义许多大型软件项目没有达到其可靠性目标或干脆失败。一些业内专家[1]认为,糟糕的报告导致次优结果,浪费开发人员时间,客户不满意以及诉讼。评估软件可靠性的方法可以补充旨在生产高质量软件的设计和测试工作。软件可靠性增长建模[2]是一种定量的方法来描述测试过程中收集的故障数据。软件可靠性增长模型(SRGM)支持的一些预测包括剩余的独特缺陷数量、故障强度、平均故障时间和软件可靠性,美国国家标准协会(ANSI)[3]将软件可靠性定义为在指定环境中指定时间段内无故障软件操作的概率。然而,软件工程师可能不愿意应用SRGM,因为缺乏认识,缺乏基础数学知识,或者没有时间开发专业知识并在工作时应用模型。为了促进软件可靠性工程方法的应用,已经开发了几种计算机辅助软件可靠性工具,包括Emerald [4]、SRMP(Software ReliabilityModeling Programs ) [5] 、 AT T SRE Toolkit [6] 、 SoRel [7] 、SMERFS ( Statistical Modeling and Estimation of ReliabilityFunctions for Software)[8]、CASRE(Computer Aided SoftwareReliability Estimation)[9]、Robust [10]、SREPT [11]、CARATS[12]、SRATS [13]和M-SRAT [14]。最近,Cinque等人[15]提出了基于工作流感知的SRGM,它利用来自问题跟踪系统的数据来改进分析模型预测以及支持调试过程改进决策,而Carrozza等人[16]描述了用于软件质量评估、决策支持和生产力管理的SVEVIA框架,该框架结合了SRGM,并在与行业合作伙伴合作的大型项目中进行了演示。虽然这些工具使软件可靠性研究更容易获得,但每个工具包含的数量相对较少是封闭源代码的。后一种限制阻止了其他研究人员、研究生和其他感兴趣的各方从实现中学习,并贡献额外的模型来客观地比较它们。此外,这些工具通常依赖于特定的操作系统和编程语言或电子表格工具,这需要支付 在使用前收费。为了克服现有工具的局限性,一个免费的开源软件故障和可靠性评估工具(SFRAT)[17]旨在培养研究人员和用户的社区。该工具的开源性质使用户能够将这些方法融入到他们的软件测试工作流程中,并使研究人员能够贡献相关的统计预测。本文概述了SFRAT和自动化脚本,以加速该工具的应用。该脚本以可移植文档格式(PDF)和其他几种标准格式输出报告,从而无需使用图形用户界面手动准备报告。该脚本节省了时间,并促进了软件可靠性模型的标准化应用和正在进行的项目的报告该脚本包括一个详细选项,以帮助新用户解释报告结果。插图将该工具应用于NASA项目数据。本文的其余部分组织如下:第2节提供了SFRAT的概述,而第3节描述了自动化脚本。第4节说明了该工具第5节总结了未来研究的方向。2. 软件描述软件故障和可靠性评估工具是一个免费的开源工具,旨在促进软件可靠性的定期定量评估,改善此类评估的沟通,并促进研究和实践社区之间的对话。SFRAT实现了早期但流行的软件可靠性增长模型,该模型采用统计学技术来确定与故障数据最佳拟合的曲线,以预测未来趋势。启用的推断包括额外测试将检测到的故障数量、故障强度将降低多少以及平均故障时间和可靠性将增加多少。这种增加由拟合优度措施补充,以客观地确定多个模型中的哪一个可以预测得最好,以指导发布规划。例如,主要国防采购计划将故障强度指定为关键系统属性,这是一个最低可接受值,因此开发人员必须达到一个阈值,以确保系统在全速率生产决策评审中运行有效且合适通过这一阶段授权进入全速生产,并伴随着大量纳税人资金的承诺。SFRAT是用R编程语言和Python实现的,可以在运行Windows、OSX或Linux的计算机上使用。R源代码可以在GitHub上访问,并在RStudio或类似的R环境中运行。Python版本使用Anaconda等接口运行。该工具的开源特性简化了敏感故障数据使用前的信息保证。此外,可以从项目网站获得网络实例以及示例故障数据集。这消除了在评估之前安装软件或将组织的故障数据格式化为所需格式的需要初始SFRAT版本支持三种故障数据格式,包括故障间隔时间、故障时间和故障计数,以及两种可靠性增长趋势测试,以确定模型的应用是否合适。SFRAT目前包括两个危险率模型,包括 拟合优度的两个度量使模型选择成为可能。应用程序架构的设计旨在支持将其他模型和拟合优度测量纳入工具。Okamura和Dohi [24]贡献了11个模型。2.1. 选择和分析数据图1显示了加载NASA1数据集[25]后SFRAT的初始视图,该数据集由在168个测试时间单位内观察到的60个独特故障组成。输入文件格式包括Excel电子表格(.xlsx)或CSV(逗号分隔值)(.csv)。Excel格式允许每个工作表一个数据集,而CSV只能容纳一个数据集。选择工作表组合框允许用户在数据集之间切换,这会更新图形。“故障数据查看模式”组合框可显示累积故障、故障间隔时间和故障强度,后者定义为两次连续故障间隔时间的倒数图2显示了拉普拉斯趋势检验[26],这是可靠性增长的统计检验(增加故障间隔时间)。数据应该表现出可靠性增长,因为软件可靠性增长模型假设故障率V. Nagaraju,V. Shekar,J. Steakelum等人/ SoftwareX 10(2019)1003573图1.一、上 传 后按Tab键显示一个视图。图二. Laplace趋势检验由于发现的唯一故障较少,因此在测试结束时检测到的错误减少。如果不存在可靠性增长,则应用模型可能不合适,因为预测可能不准确。图中所示的值。2表示90%显著性(置信度)水平(红色),由用户指定黑色的其他默认级别包括90、95、99和99.9.这些线以下的值表明数据显示出具有指定统计显著性水平的可靠性增长,因此适合应用软件可靠性模型。图3显示了NASA1数据集的运行算术平均值。如果故障间隔时间增加,则运行算术平均值增加,表明系统可靠性增加。类似地,运行算术平均值的下降指示可靠性劣化。拉普拉斯趋势检验和运行算术平均值都表明,示例NASA1数据在测试结束时开始朝着期望的方向发展,这对应于图3中右侧故障计数的平稳。1.一、选择任何图上方的表格选项卡,以表格格式显示用于生成图形的 原 始 数 值 数 据 。 图 下 方 的 保 存 图 标 支 持 包 含 在 报 告 中的.jpeg、.pdf、.png和.tiff格式,而数值表可以另存为CSV或PDF文件。图三. 计算算术平均值。2.2. 建立和应用模型为了应用模型,用户在图1左侧的列表中选择一个或多个模型的名称。1,然后单击计算。它执行软件中包含的最复杂的算法,即数值方法[27]来计算最大似然估计或最佳拟合数据的曲线图4示出了叠加在数据上的狄龙S形模型的图。黑色垂直虚线表示观察到最后一次失效的时间。因此,这条线右边的点表示预测。图图5、6和7分别显示了故障间隔时间、故障强度和可靠性增长曲线(在指定时间间隔内零故障的概率)以及相应的模型拟合。可靠性增长曲线不包括数据,因为它是基于拟合数据的模型的平均值,而不是可以直接从数据绘制的测量值2.3. 查询模型结果模型使几个实际的推论,如时间,以达到指定的可靠性,预期的失败次数在指定的时间间隔内,以及直到指定数量的未来故障的预期时间。图8显示了三个模型的结果表。4V. Nagaraju,V. Shekar,J. Steakelum等人/ SoftwareX 10(2019)100357图四、 NASA1累积失效和模型拟合。图五、 NASA1故障与模型拟合之间的时间。图六、 NASA1故障强度和模型拟合。2.4. 模型评估一个自然的问题是使用哪种模型进行预测。因此,该工具应用拟合优度度量,包括见图7。 NASA1可靠性增长曲线见图8。 失败预测。表1拟合优度度量模型。模型AICPSSE屈曲S形223.0041.85延迟S形232.59689.91戈埃尔奥本247.46110.96Akaike信息准则(AIC)[28]和预测平方误差和(PSSE)[29],两者都倾向于较低的数值。表1显示了三个模型的拟合优度度量。在AIC和PSSE方面,SesonS形模型获得了最佳分数,这表明基于该模型的预测可能更合适。它还表明,该模型在统计意义上表现良好,而不仅仅是图 1中获得的视觉拟合。 四、3. 自动生成SFRAT报告虽然软件故障和可靠性评估工具提供了一个用户友好的界面,但每个会话都需要时间。在大型软件工程项目中,定期评估将占用个人时间的一小部分。为了减少时间要求,支持标准化,并促进更广泛的采用,在R编程语言中开发了一个脚本,以自动生成PDF和其他常见文档格式的报告。用户通过指定他们将通过用户界面和RMarkdown文件SFRATReport.rmd用于图形报告生成过程。这个脚本可以被合并到组织的测试和报告过程中V. Nagaraju,V. Shekar,J. Steakelum等人/ SoftwareX 10(2019)10035753.1. 脚本参数本节描述脚本中定义的参数,包括否则将通过用户界面指定的变量以下是用于为NASA1数据集生成报告的变量示例,该数据集是NASAX.xlsx的第一个工作表。verbose_report-TRUEsheetNumber<- 1filePath<-颜色<-c(“海军“,“红色“,“绿色“,“firebrick 4“,“洋红色“)confidence_lvl<-0.9num_failures_future_prediction<-1models_to_apply<-c(‘ISS时间<:19.215预测失败数-1
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功