电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

嵌入式系统软件可靠性分析

11页
  • 卖家[上传人]:汽***
  • 文档编号:432894073
  • 上传时间:2022-11-23
  • 文档格式:DOCX
  • 文档大小:76.94KB
  • / 11 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、对开发嵌入式系统软件的可靠性设计及分析谢雷 中南大学交通运输工程学院 学号 114217042摘要:我设计参与了湖南江麓特种电气有限公司的塔机智能化监控系统、升 降机超载控制系统等项目。它们的软件开发都使用了嵌入式系统,由 于产品是用在工程机械上,对产品的嵌入式软件开发的可靠性设计就 显得由为重要。本文旨在对嵌入式系统的软件可靠性进行更深入全面 的了解,首先简要介绍嵌入式系统软件可靠性的定义及特点,然后介 绍嵌入式系统软件测试的发展现状,接着对如何提高嵌入式软件可靠 性进行一定程度的探讨,并详细地介绍了嵌入式软件测试关键技术和 测试结构,最后对嵌入式软件可靠性分析的研究情况进行总结。嵌入式、软件可靠性、软件测试、测试策略、插桩技术1. 嵌入式系统可靠性概述根据IEEE (国际电机工程师协会)的定义,嵌入式系统是“控 制、监视或者辅助装置、机器和设备运行的装置”。从中可以看出嵌 入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。硬件 系统是软件运行的基础,其质量差别比较直观,通过外观观测和仪器 测试,对其质量和性能可以做出较为客观的评估。而软件系统包含研 发人员对系统需求的理解、对

      2、硬件系统掌握程度、实践经验及编程能 力等多方面影响因素,因此难以对软件可靠性进行评估。嵌入式系统安全性的失效可能会导致灾难性的后果,即使是非安 全性系统,由于大批量生产也会导致企业严重的经济损失。这就要求 对嵌入式系统,包括嵌入式软件进行严格的测试、确认和验证。随着 越来越多的领域使用软件和微处理器控制各种嵌入式设备,对日益复 杂的嵌入式软件进行快速有效的测试愈加显得重要。2. 嵌入式可靠性技术国内外研究动态随着电子技术的飞速发展,嵌入式计算机得到越来越广泛的应 用。嵌入式计算机系统由于其应用环境的特殊性,对系统的机械结构、 工艺及可靠性设计指标都有严格的要求。除此之外,嵌入式系统对体 积,重量及功耗方面也有限制。不同的嵌入式系统由于其应用任务不 同,对处理能力和外设要求上有较大差异,为嵌入式计算机通用化设 计带来很大的困难。因此早期的嵌入式计算机大都是针对具体任务而 设计的专用计算机。但是这种专机专用的设计方法在应用中逐渐暴露 出许多问题。首先由于这种专用计算机数量一般不多,设计成本很高; 其次,在不同专用计算机设计中有很多低水平重复性劳动;第三,要 为每种计算机配备专用的维护人员,

      3、增加了维修维护费用等。而嵌入 式系统的通用化设计可以弥补这些不足。国内的嵌入式计算机通用化发展时间较短,和国外相比有较大差 距。在国外很多计算机公司预见到嵌入式计算机的巨大市场,把嵌入 式计算机设计成商用货架产品,不少厂家因此取得相当的成功。国内 也有很多企业设计生产嵌入式计算机,但由于设计水平不高,多数产 品只应用在某一领域,通用化程度有待进一步提高。由于嵌入式软件的实时性、嵌入性和反应性等特点极大的增加了嵌入式软件测试的复杂性和困难程度,这也使得嵌入式软件的测试研究一直不能令人满 /包、o国外对嵌入式软件测试的研究开始于 70 年代,更早期的软件测 试方法主要针对单个系统的。1980年,Robert L. Glass发表了条的 著名文章“实时软件:调试和测试的失落世界”。该文章总结了 嵌入式软件测试落后于通用软件测试的现状,并提出了一些解决方 案。在此后的 20 年,国外许多研究机构针对嵌入式软件的实时性、 嵌入性和反应性等问题进行了大量的研究,并取得了一定的成果,许 多支持嵌入式软件测试的工具也应运而生。国内对嵌入式软件测试技术和测试工具的研究开始于90 年代中 后期,目前大型的

      4、软件工程都使用国外的软件测试平台,例如 Logiscope 平台。国内尚无商业化的嵌入式系统测试平台,但有部分 基于研究目的开发的测试系统,较有代表性的是南京大学开发的 EASTT。与Logiscope类似,它主要用于代码评审和动态覆盖层而是、 动态调用关系分析等。还有北航软件所的SafePro/C,其主要用于对 C 语言程序软件进行测试,提供语句覆盖、分支覆盖、插桩策略和轨 迹文件界面。3. 嵌入式软件可靠性特点3.1 实时性对嵌入式软件可靠性的影响实时软件与其他软件不同,它的正确性不仅由功能和行为决定, 还依赖于其时间特性。如何对软件的时间特性进行验证成为嵌入式软 件可靠性的核心问题之一。对软件的时间测试可分为两种方法:即静 态时间分析和动态实时检测。静态时间分析就是不执行被测程序,而通过分析程序结构来预估 程序、子程序执行时间的方法。静态时间分析不执行被测程序,也就 不知道程序子实际运行时的分支走向和循环次数等不确定性因素,因 此它不能得到程序的实际执行时间。但静态分析可以完成另外一个很 重要的功能:确定程序在最坏情况下的执行时间,即程序最大执行时 间是否满足时间约束。由于实时系

      5、统需要在任何情况下都在指定期限 前完成任务,计算程序的最大执行时间具有非常重要的意义。动态实时检测就是通过执行程序来测试程序的时间特性。在线仿真器ICE、指令仿真器和插桩工具是三种最常用的方法。实时性使得嵌入式软件的测试用例编写更为困难测试用例不仅 要测试软件的功能和行为特性,还要测试其时间特性,因为同样的输 入在不同时可能有不同的输出,这给传统的测试用例生成方法带来了 新问题。3.2 嵌入性对嵌入式软件可靠性的影响 嵌入式软件的开发环境和运行环境的不一致性同样给嵌入式软 件可靠性的测试带来了不少麻烦。(1)测试工具运行在宿主机上,测试所需要的信息在目标机上产生, 并通过一定的物理/逻辑连接传输到宿主机上,由测试工具接受。因 此,嵌入式软件测试的一个重要问题是建立宿主机与目标机之间的物 理/逻辑连接,解决数据信息的传输问题。(2) 即使在宿主机环境下测试再充分,也不能说明在目标机环境下 该软件运行不出问题。因而,嵌入式软件还面临着目标环境的测试。 这不仅增加了测试的代价,而且还带来了嵌入式软件测试策略问题, 即哪些测试分配在宿主环境进行,哪些测试分配到目标环境下运行。3.3 反应性对嵌

      6、入式软件可靠性的影响反应性系统(Reactive System)在任何时刻都要对可能出现的 时间作出适当反应。由于“激励-响应”在反应式系统中占主要地位 因此这类系统常常包含大量复杂的控制行为。并发性(Concurrency)是反应式系统最重要也是最基本的特征, 任何反应式程序中均包含若干并发进程,即这些进程并发执行。所以, 反应式不能简单的将它定义为输入数据和输出数据的函数,而需要表 示为一个输入序列和输出序列的二元组。输入时间的各种序列组合使 程序的输入数据空间急剧膨胀。经常可以看到,同样的输入数据在不 同时刻会产生不同的结果,这给测试工作带来了特殊的困难。由于反 应式软件的输入数据空间很大,如何选取测试用例成为反应式软件的 关键问题之一。4. 提高嵌入式系统软件可靠性方法4.1 优化系统设计方案嵌入式系统最大的特点是以控制为主,软硬件结合较多,功能性 操作较多,模块互相调用较多,外部工作环境复杂容易受到干扰或干 扰别的设备,且执行错误的后果不仅仅是数据错误而且有可能导致系 统崩溃等不可估量的灾难。所以在嵌入式软件设计过程中需注意软硬 件接口之间的冗余和预防性设计。另外,在设计过程

      7、中,可采用看门狗电路、状态保存等恢复技术; 软件锁设计、程序陷阱设计等抗干扰技术以及备份技术有效的进行系 统容错设计。4.2 严格的软件测试软件可靠性测试是在软件生存周期的系统测试阶段提高软件可 靠性水平的有效途径。各种测试方法、测试技术都能发现导致软件失 效的软件中残存的缺陷,排除这些缺陷后,一般来讲一定会实现软件 可靠性的增长,但是排除这些缺陷对可靠性的提高的作用却是不一样 的。其中,软件可靠性测试能最有效地发现对可靠性影响大的缺陷, 因此可以有效地提高软件的可靠性水平。总之,全面提高嵌入式软件的质量提高嵌入式软件的可靠性、安 全性,需要提高嵌入式软件开发人员的素质。开发策略、程序设计、 测试手段、安全分析、代码审核都要规范,避免开发工作的随意性、 盲目性。选用经过安全认证的可靠的实时操作系统开发嵌入式产品, 可部分化解系统安全性方面的风险,因为已经被证明是安全可靠的操 作系统会承担部分风险。5. 嵌入式软件测试的关键技术1)预处理完成宏替换,如果测试的源代码是汇编的,要将短跳转改成长跳 转。2)词法语法分析词法语法分析通常跟程序设计语言有关。词法分析负责将源程 序中的若干字符划分

      8、为若干记号,语法分析负责从若干记号中完成程 序结构分析,识别出函数体、语句、表达式、关键字、程序分支等。(3)插桩技术一般对程序进行动态测试时,要使用程序插桩来进行覆盖测试。 程序插桩使被测试程序在保持原有逻辑完整性基础上在程序中插入 一些探针函数即插桩语句,它是一个子过程调用,调用的子过程能在 运行到插桩点时记录下有关的运行情况。基于这些运行情况的分析, 可以获得程序执行过程中变量值的变化情况,页可以用来检测程序的 分支覆盖和语句覆盖等覆盖信息。程序插桩的关键技术包括要探测哪些信息、在程序中什么部位 设置探针、如何设计探针以及探针函数捕获数据的编码和解码。6. 嵌入式软件测试系统的结构框图一般的嵌入式测试系统主要由四部分组成:程序的插桩过程(包 括预处理和词法语法分析)、测试用例的生成和加入、动态测试信息 的分析和动态测试信息的集成环境。被测试程序首先经过预处理,主要是进行宏替换和将短跳转改为 远跳转。然后进行语法词法分析,对整个程序进行扫描后,生成一些 相互之间有关联的链表,主要是用来确定插桩函数的位置,在一些关 键的字段和函数出插入插桩的桩,然后编译生成含有插桩函数的目标 文件。

      9、在动态测试的集成环境中,用户选择需要测试类型(分支覆盖还是语句覆盖),相应的生成一个插桩记录文件,里面记录了该测试 类型中的所有函数的位置或者 ID 号,并且自动生成相应的测试用例。 根据插桩选择记录文件激活相应的插桩函数。系统运行后,将得到的 信息返回给测试机,就能将测试结果记录到事先确定的缓冲区或文件 中。测试人员就能根据测试结果与期望值相比较来判定覆盖情况是否 满足要求了。若不能满足要求,就利用工具进行覆盖情况分析,找出 未覆盖目标,根据控制流图,找出到达此目标的路径,依据此路径上 各分支节点要到达此目标应满足的条件,设计新的测试用例(当然, 有些目标很难覆盖或根本不可能覆盖),以增加覆盖率,最后将结果 以 GUI 的形式显示。般嵌入式软件测试系统的基本结构框图如图 1 所示:播桩过程图 1 一般嵌入式软件测试系统的结构框架图比较岀涪曲果I I| waffle动恚碍试值息於弓撞桩库制作过程7. 小结随着嵌入式系统技术的不断进步,在嵌入式系统中占重要地位 的嵌入式软件的质量保证问题也越来越引起人们的关注。软件测试是 软件可靠性的保证,它在整个软件开发过程中占据了将近一半的时间 和资源。通过在测试过程中合理地引入软件测试工具、选择适当的测 试用例,能够缩短软件开发的时间,提高测试质量,从而更快、更好 地为用户提供他们需要的软件产品。参考文献1 Paul Rook.软件可靠性手册M.关锡锷,等译.北京:航空工业出版社,1996.2 徐忠兵.嵌入式软件可靠性测试用例自动生成技术的研究与实现D.国防科学技术 大学 , 20093 张媛媛.若干无线嵌入式系统的安全技术研究D.上海交通大学,20094 孙辉.嵌入式软件质量体系和软件质量自动评价系统的研究D.东华大学,2010肖丹.基于模型驱动的嵌入式软件自动化测试平台实现D.西南交通大学,2009

      《嵌入式系统软件可靠性分析》由会员汽***分享,可在线阅读,更多相关《嵌入式系统软件可靠性分析》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.