欢迎来到天天文库
浏览记录
ID:20081428
大小:91.00 KB
页数:10页
时间:2018-10-09
《嵌入式系统软件可靠性分析(谢雷)new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、对开发嵌入式系统软件的可靠性设计及分析谢雷中南大学交通运输工程学院学号114217042摘要:我设计参与了湖南江麓特种电气有限公司的塔机智能化监控系统、升降机超载控制系统等项目。它们的软件开发都使用了嵌入式系统,由于产品是用在工程机械上,对产品的嵌入式软件开发的可靠性设计就显得由为重要。本文旨在对嵌入式系统的软件可靠性进行更深入全面的了解,首先简要介绍嵌入式系统软件可靠性的定义及特点,然后介绍嵌入式系统软件测试的发展现状,接着对如何提高嵌入式软件可靠性进行一定程度的探讨,并详细地介绍了嵌入式软件测试关
2、键技术和测试结构,最后对嵌入式软件可靠性分析的研究情况进行总结。关键词:嵌入式、软件可靠性、软件测试、测试策略、插桩技术1.嵌入式系统可靠性概述根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。硬件系统是软件运行的基础,其质量差别比较直观,通过外观观测和仪器测试,对其质量和性能可以做出较为客观的评估。而软件系统包含研发人员对系统需求的理解、对硬件系统掌握程度、实践经验及编程能力等
3、多方面影响因素,因此难以对软件可靠性进行评估。嵌入式系统安全性的失效可能会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致企业严重的经济损失。这就要求对嵌入式系统,包括嵌入式软件进行严格的测试、确认和验证。随着越来越多的领域使用软件和微处理器控制各种嵌入式设备,对日益复杂的嵌入式软件进行快速有效的测试愈加显得重要。1.嵌入式可靠性技术国内外研究动态随着电子技术的飞速发展,嵌入式计算机得到越来越广泛的应用。嵌入式计算机系统由于其应用环境的特殊性,对系统的机械结构、工艺及可靠性设计指标都有严格
4、的要求。除此之外,嵌入式系统对体积,重量及功耗方面也有限制。不同的嵌入式系统由于其应用任务不同,对处理能力和外设要求上有较大差异,为嵌入式计算机通用化设计带来很大的困难。因此早期的嵌入式计算机大都是针对具体任务而设计的专用计算机。但是这种专机专用的设计方法在应用中逐渐暴露出许多问题。首先由于这种专用计算机数量一般不多,设计成本很高;其次,在不同专用计算机设计中有很多低水平重复性劳动;第三,要为每种计算机配备专用的维护人员,增加了维修维护费用等。而嵌入式系统的通用化设计可以弥补这些不足。国内的嵌入式计算
5、机通用化发展时间较短,和国外相比有较大差距。在国外很多计算机公司预见到嵌入式计算机的巨大市场,把嵌入式计算机设计成商用货架产品,不少厂家因此取得相当的成功。国内也有很多企业设计生产嵌入式计算机,但由于设计水平不高,多数产品只应用在某一领域,通用化程度有待进一步提高。由于嵌入式软件的实时性、嵌入性和反应性等特点极大的增加了嵌入式软件测试的复杂性和困难程度,这也使得嵌入式软件的测试研究一直不能令人满意。国外对嵌入式软件测试的研究开始于70年代,更早期的软件测试方法主要针对单个系统的。1980年,Rober
6、tL.Glass发表了条的著名文章——“实时软件:调试和测试的失落世界”。该文章总结了嵌入式软件测试落后于通用软件测试的现状,并提出了一些解决方案。在此后的20年,国外许多研究机构针对嵌入式软件的实时性、嵌入性和反应性等问题进行了大量的研究,并取得了一定的成果,许多支持嵌入式软件测试的工具也应运而生。国内对嵌入式软件测试技术和测试工具的研究开始于90年代中后期,目前大型的软件工程都使用国外的软件测试平台,例如Logiscope平台。国内尚无商业化的嵌入式系统测试平台,但有部分基于研究目的开发的测试系统
7、,较有代表性的是南京大学开发的EASTT。与Logiscope类似,它主要用于代码评审和动态覆盖层而是、动态调用关系分析等。还有北航软件所的SafePro/C,其主要用于对C语言程序软件进行测试,提供语句覆盖、分支覆盖、插桩策略和轨迹文件界面。1.嵌入式软件可靠性特点1.1实时性对嵌入式软件可靠性的影响实时软件与其他软件不同,它的正确性不仅由功能和行为决定,还依赖于其时间特性。如何对软件的时间特性进行验证成为嵌入式软件可靠性的核心问题之一。对软件的时间测试可分为两种方法:即静态时间分析和动态实时检测。
8、静态时间分析就是不执行被测程序,而通过分析程序结构来预估程序、子程序执行时间的方法。静态时间分析不执行被测程序,也就不知道程序子实际运行时的分支走向和循环次数等不确定性因素,因此它不能得到程序的实际执行时间。但静态分析可以完成另外一个很重要的功能:确定程序在最坏情况下的执行时间,即程序最大执行时间是否满足时间约束。由于实时系统需要在任何情况下都在指定期限前完成任务,计算程序的最大执行时间具有非常重要的意义。动态实时检测就是通过执行程序来测试程序的时间特性
此文档下载收益归作者所有