IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 物联网终端设备软件可靠性分析 -> 正文阅读

[开发测试]物联网终端设备软件可靠性分析

????????物联网终端设备很多应用在无人值守环境,要求设备能够全自动化运行,如果在使用过程中发生失效,将会导致该设备的失联,对软件的稳定性必须高要求。 在软件设计过程中,对可能发生的失效进行分析,采取必要的措施避免将引起失效的缺陷引入软件,为失效纠正措施的制定提供依据。 不能完全依靠软件测试手段来发现错误,应该是以软件稳定性设计为第一原则考虑,测试当做一种次要的辅助手段。 能够软硬件解决的问题,永远以硬件为先,软件手段其次。

1. 影响软件可靠性的技术因素

  • 运行环境: 软件故障是软件设计(固有的)缺陷,在一定输入情况下被激活的结果。如果在运行环境中不包含激活软件缺陷的输入条件,其可靠性将无法得到有效验证。
  • 软件规模: 随着软件规模的增加,软件可靠性问题越加突出。软件工程实践一般单元测试由开发人员进行,综合测试一般由独立测试人员完成,软件可靠性增长模型也可应用于综合测试阶段。
  • 软件结构: 软件功能约复杂,软件内部结构越复杂,内含缺陷数就越大,因而软件可靠度也就越低。

2. 软件可靠性设计方法

2.1 软件避错设计

????????避错设计体现了以预防为主的设计思想,设计原则是控制和减少程序的复杂性。

  • 明确设计需求,准确理解设计要求;
  • 采用结构化软件设计方法,以各功能模块划分程序结构;
  • 使用规范的编码准则。

2.2 软件容错设计

????????软件容错设计一般是指在设计中增加冗余,增加多余资源获得高可靠性,使程序能在错误被触发的情况下系统仍然能正常运行的一种设计方法。

  • 时间容错: 以时间为代价换取软件可靠性的一种手段,包括指令的重复执行和程序的重复执行;
  • 结构容错: 来源于硬件可靠性中的冗余设计,可以是在一个较复杂系统上设计一个单独的极简控程序,只负责监控各个软件的运行状态,当监测到异常时做出相应的处理。也可以是单独的嵌入式监测模块来实现;
  • 信息容错: 要求所有的对外信息交互通信都需要检验码或纠错码,对于容易收到干扰的信息应能错误隔绝,不因错误信息而导致程序异常。同时本设备的重要信息放在多个内存单元进行备份存储等实现冗余。

2.3 软件查错设计

????????软件差错设计是指在设计中赋予程序某些特殊的功能,使程序在运行中自动查找存在错误的一种设计方法。

1)被动式错误检测

  • 看门狗定时器:看门狗是一种监控系统的运行状况的手段,通过软硬件结合的方式实现对系统运行状况的监控。若在一定周期内看门狗没有收到来自软件的喂狗信号,则认为系统故障,会进入中断处理程序或强制系统复位。工作环境恶劣的设备需要配备专门的硬件看门狗;
  • 超时等待:在等待外部信号的程序段中,不允许无限制的等待,必须使用定时器或者计数器,控制循环的执行,避免出现死循环,保证能够退出该程序段。

2)主动式错误检测

  • 设备开机自检必须具备对各模块完善的检测能力。
  • 周期性的对系统状态进行检测,检测到异常状态做出相应处理。
  • 将错误发生时的状态记录在设备运行日志中,供设计人员深入分析研究。

2.4 软件改错设计

????????软件改错设计一般要求软件可具备多种升级固件手段,方便维护人员更新程序。

1)软件烧写手段:

  • 仿真器烧写(用作调试)
  • 串口烧写(一般需要boot键)

2)软件升级手段:

  • USB升级(需要烧写软件)
  • SD卡升级(一般用在带系统的软件升级)
  • 蓝牙升级(对蓝牙模块有要求)
  • 网络(4G)升级(远程使用较多)

3. 软件可靠性设计案例

案例1:Ariane 5火箭

1996年6月4日,Ariane 5火箭在法属圭亚那库鲁航天中心首次发射。火箭在发射37秒之后偏离其飞行路径并突然发生爆炸,与Ariane5火箭一同化为灰烬的还有4颗太阳风观察卫星。这是世界航天史上的一大悲剧,也是历史上损失最惨重的软件故障事件。

事后的调查显示,控制惯性导航系统的计算机向控制引擎喷嘴的计算机发送了一个无效数据,其原因在于将一个64位浮点数转换成16位有符号整数时产生了溢出。这个溢出值测量的是火箭的水平速率,开发人员在设计Ariane 4火箭的软件时,认真分析了火箭的水平速率,确定其值绝不会超出一个16位的数。而Ariane 5火箭比Ariane 4的速度高出近5倍,显然会超出一个16位数的范围。不幸的是,开发人员在设计Ariane 5火箭时只是简单地重用了这部分程序,并没有检查它所基于的假设。

案例2:Therac 25 放射治疗仪

Therac 系列仪器是由加拿大原子能有限公司(AECL)和法国CGL公司联合制造的一种医用高能电子线性加速器,用来杀死病变组织癌细胞,同时使其对周围健康组织影响尽可能降低,Therac 25属于第三代医用高能电子线性加速器。20世纪80年代中期,Therac 25放射治疗仪在美国和加拿大发生了多次医疗事故,5名患者治疗后死亡,其余患者则受到了超剂量辐射而严重灼伤。

Therac 25放射治疗仪的事故是由操作员失误和软件缺陷共同造成的。当操作员输入错误而马上纠正时,系统显示错误信息,操作员不得不重新启动机器。在启动机器时,计算机软件并没有切断X光束,病人一直在治疗台上接受着过量的X光照射,最终使辐射剂量达到饱和的25000拉德,而对人体而言,辐射剂量达到1000拉德就已经是致命的了。

案例3:爱国者导弹

1991年2月25日第一次海湾战争期间,在沙特阿拉伯的美国爱国者导弹系统没能成功拦截飞入伊拉克境内的飞毛腿导弹,该飞毛腿导弹击中了该地的一个美军军营并导致28个士兵阵亡。

事后政府调查发现这次拦截失败的原因在于导弹系统时钟内的一个软件错误。该系统预测一个飞毛腿导弹下一次将会在哪里出现是通过一个函数来实现的,该函数接受两个参数,即飞毛腿导弹的速度和雷达在上一次侦测到该导弹的时间,其中时间是基于系统时钟时间乘以1/10所得到的秒数进行表示。十进制的1/10用二进制来表示就会产生一个微小的精度误差。当时该爱国者导弹系统的电池已经启动了100个小时,系统最终导致的时间偏差达到了0.34秒之多。一个飞毛腿导弹飞行的速度大概是1,676米/秒,因此在0.34秒的误差时间内针对飞毛腿导弹就会产生超过半公里的误差,这个距离显然无法准确地拦截正在飞来的飞毛腿导弹。

具有讽刺意味的是,这个时间误差导致的问题在代码的某些部分是有进行修复的,也就是说有人已经意识到这个错误,但问题在于当时并没有把相关的所有问题代码进行修复,这个时间精度的问题依然存在该系统之中。

4. 软件可靠性设计总结

??????加强软件的质量和可靠性管理,软件可靠性管理旨在系统管理软件生存各阶段的可靠性活动,使之系统化、规范化、一体化,这样就可以避免很多认为错误,从而提高软件可靠性。

??????按照软件工程进行软件开发,从项目开发计划做起,依次进行项目开发可行性论证报告、软件需求分析、软件概要设计、详细设计直到软件实现,从单元测试、集成测试和交付验收,严把每一阶段,使研制过程有章可循。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 16:02:03  更:2022-05-01 16:02:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 12:20:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码