Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /www/wwwroot/qikantianxia.com/e/action/CCYip.php on line 71
嵌入式应用软件(精选12篇)

嵌入式应用软件

2024-09-28

嵌入式应用软件(精选12篇)

嵌入式应用软件 篇1

摘要:目前我国的嵌入式技术正在飞速发展,因此嵌入式的构建技术也就成为了现今研究的热点话题.在嵌入式技术中,嵌入式的实时软件具备着很高的专用性,其能够对实时应用进行有效的处理,同时其还能够改善软件的复杂性.所以将其与计算机软件进行有机结合能够有效的提高软件的质量.从而为我国的计算机的发展做出有力的支撑。

关键词:计算机软件,嵌入式,实时软件

在现今的计算机软件设计中往往都会运用着嵌入式的实时软件.在计算机系统中,软件和硬件的正常运行都对嵌入式实时软件有着较强的依赖性,而且嵌入是软件还同时具备着实时控制的特点.这也就使得嵌入式实时软件在计算机飞速发展的今天有着很好的发展前景。

1计算机软件设计中嵌入式实时软件的特点

在对计算机软件进行设计时,设计者可以将嵌入式实施软件与计算机软件进行有机结合,将其应用到需要进行预测指令的设计中,例如:软件的缓存处理、动态分配等。这样就能有效的对计算机软件进行实时处理,从而有效的提高软件设计的可靠程度。在计算机软件设计实际应用部分,嵌入式的设计就分为了两部分,分别是软件和硬件,其主要的工作方式就是利用应用程序来实现对计算机软件工作状态的运营,在通过计算机操作系统的控制程序编程来使其跟硬件进行交互。在嵌入式实时软件中,其主要的核心控件就是嵌入式微处理器,其主要的特点就是能够对多个任务进行实时的支持能力,同时还能在较短的时间对多个任务实施中断响应。而且其还有着强大的存储功能,可以有效的对软件进行保护。嵌入式的实时软件结构通常都是模块化的,这就能够很好的对软件检测和修复上带来极大便利。并且设计者在对嵌入式实时软件进行设计时还可以让其具备可拓展的处理器结构,这就能够有效的降低嵌入式微处理器的功耗,如此才能将嵌入式实时软件的优势发挥出来,从而让其成为计算机软件设计中不可或缺的一部分,为计算机技术的不断发展做出贡献。

2计算机软件设计中嵌入式实时软件应用

嵌入式实时软件能够从很多方面和领域融入进计算机软件设计中,其能够对计算机软件的工作效率有效的进行提高。下面我们就从原理、开发等方面能对计算机软件设计中嵌入式实时软件的应用进行分析。

2.1应用原理

通常我们说的嵌入式实时软件的应用都是针对需要处理的软件对象时,从而通过实时处理技术建立更完善的实时对象请求代理体系结构(CORBA)。另外,在计算机软件设计中融入嵌入式实施软件的话,还能够促进计算机软件的远程调控能力,这样就能为软件的设计提供更多的资源。比如,在实时CORBA拓展计算机软件的设计过程中,嵌入式实施软件不仅能够对计算机软件的设计时间上给予支持,还能对其设计的模式进行有效的革新。这样就能够对计算机软件设计的独立性和安全性进行保障。从而使得计算机软件发展得到有效的提升。

2.2开发流程

在计算机软件设计,嵌入式实时应用其中能够将其变得简易。在开发过程中,设计人员首先需要做到就是软件的需求进行合理的分析,然后通过研究将嵌入式合理的融入到计算机软件设计中,以上述为基础环节进行最后的设计阶段和代码谱写生成阶段。在上述阶段都完成后就需要设计人员对计算机软件进行测试,从而完成计算机软件的设计工作。这种简洁的开发流程能够有效的对计算机软件的设计效率进行提高,同时还能保障其稳定性。只有这样才能促进嵌入式实施软件在计算机软件设计中应用水平不断提高,进而提升计算机软件的质量。

2.3设计要点

在软件的设置过程中,设计人员首先需要做到的就是注重要点的设计。只有遵循相应的设计要点,才能有效的减小设计误差。比如在计算机软件结构设计中,设计者就需要有效的对程序编程进行合理的测试和分析,这样才能避免软件和硬件出现脱离状态,进而改善传统计算机设计中常出现的“硬件是软件的根本”这一说法。这样就能有效的对计算机软件系统对实时性和可靠性进行保障。除此之外,嵌入式实时软件应用还可以对计算机软件的数据初始化和格式化带来帮助,这就会使得在设计过程中,设计者不需要对硬件设备进行直接的操作。这就能够有效的对计算机软件设计功能进行提高。

3嵌入式实时软件开发的应用前景

在计算机软件设计过程中,嵌入式实施软件有着极高的使用价值和开发前景。首先,嵌入式实时软件应用到计算机软件设计中,能够很好的提高计算机软件的便利性和高效性。同时由于嵌入式实施软件的领域广泛性,就使其在使用中“无处不在”。其次,嵌入式实施软件还具有较强的灵活性,将其应用到计算机软件设计中就能很好的提升软件和环境之间的交互能力,同时其实具备良好的实际操作能力和多任务操作的能力,这也使得其未来开发的前景一片光明。最后,嵌入式实时软件还有着良好的实时性和可操作性等特点,在软件开发过程中最主要的一点就是保证其是可控的,而嵌入式实时软件就能很好的解决这个问题。这也就使其具备了很高的开发前景和应用前景。但是在将嵌入式实时软件应用到计算机软件设计时也需要注意一个问题,那就是嵌入式实时软件虽然有着上述优点,但是其也有不足,那就是实时软件的应用对硬件平台有着较强的依赖性,这就需要设计者在设计时一定要合理规划软件和硬件之间的有效联系,并及时的对软件做好测试和维护工作,只有这样才能更好的保障嵌入式实施软件的质量。综上所述,嵌入式软件的开发不仅可以促进软件开发设计的效率,还能对产品的质量进行有效的保障。因此嵌入式实时应用在计算机软件开发领域具有极高的开发前景和应用前景。

4结束语

计算机技术的不断发展,软件开发的不断提升,这也就为计算机软件设计和嵌入式实时软件的结合打下了坚实基础。因此,计算机软件开发人员应注重嵌入式实时软件的应用,并且在此基础上不断对其进行改善,然后将其应用到计算机软件开发上。只有这样才能促进我国计算机软件开发的稳定发展,进而摆脱“一切靠进口”的问题。

参考文献

[1]张岚.嵌入式实时软件在计算机软件设计中的应用[J].计算机光盘软件与应用,2015(01):71.

[2]李禹松.嵌入式实时软件在计算机软件设计中的应用[J].硅谷,2013,6(18):52-55

[3]宫婷.计算机软件设计中嵌入式实时软件的应用探究[J].中国外资(上半月),2013(12):280.

嵌入式应用软件 篇2

2.1开发流程

出于保证嵌入式实时软件在计算机软件中充分发挥作用的考虑,在具体设置嵌入式实时软件应用的开发流程时应当基于简易性和优越性出发,科学、合理的规划设计。具体的嵌入式实时软件应用开发流程为:首先是基于计算机软件系统应用要求,分析计算机软件需要具备的功能,进而进一步解析嵌入式实时软件。其次,基于嵌入式实时软件应用需要,科学合理地进行嵌入式软件设计和代码生成。再次,在嵌入式实时软件设计方案完成之后对其应用测试,确定依据此设计方案所设置的嵌入式实时软件的应用效果能否满足计算机软件系统应用需要。最后,在确定嵌入式实时软件设计方案符合应用要求的情况下将嵌入式实时软件有效地应用到计算机软件系统当中。按照以上开发流程来进行计算机软件系统开发,的确能够使嵌入式实时软件有效地应用到计算机软件系统中,并且在系统中充分发挥作用,提高计算机软件系统的应用有效性、可靠性、稳定性[4]。

2.2设计要点

嵌入式应用软件 篇3

关键词:Testbed/Tbrun;软件单元测试;嵌入式软件

中图分类号:TP311 文献标识码:A 文章编号:1009-2374(2013)18-0027-02

嵌入式软件作为嵌入式系统的重要组成部分,嵌入式软件质量问题可能会带来设备的损坏和人员的伤亡,因而用户对其质量有较高的要求。软件测试是对软件质量检验的一个非常重要的手段。而软件测试中动态测试最基础的测试就是单元测试。如何开展单元测试以及如何提高单元测试的效率是一个值得研究的问题。

1 软件单元测试的要求及重点

软件单元测试是对软件基本组成单元进行测试,测试软件单元是否正确地实现规定的功能,是否满足软件性能和接口要求。并验证程序与详细设计说明的一致性。因此在单元测试时,需要模拟被测单元与其他模块之间的交互,开发驱动模块和桩模块两种辅助模块,构建一个可执行的环境,驱动模块用于模拟被测单元的上层模块,测试执行时由驱动模块调用被测单元使其运行;桩模块用于模拟被测单元在执行过程中所调用的模块。

单元测试重点考虑的测试类型有:(1) 接口测试。接口测试主要检查实参与形参的数目是否相等、实参与形参的属性是否匹配、实参与形参的单位是否一致、传到被调用模块的实参的属性是否与形参的属性匹配、是否把常量当作变量传递等内容。(2)功能测试。功能测试主要是对照软件单元的设计说明,验证软件是否完成了所需的功能。(3)重要执行路径测试。应设计测试用例以发现错误的计算、不正确的比较和不正常的控制流向等错误。在计算中比较常见的错误是:误解或错误处理算术运算的优先次序、混用不同类的操作、计算精度不够等。另外在控制软件执行流程的比较操作中比较常见的错误有:不同数据类型的比较、不正确的逻辑操作符或不正确的优先次序、因精度不够使本应相等的数不相等(如浮点数)等。(4)软件单元的局部数据结构测试。软件单元的局部数据结构是一个主要的错误来源,应设计测试用例来发现不正确的或不一致的数据说明、初始化有错或没有赋初值、不正确的变量名、不一致的数据类型、上溢/下溢或引用错误等类型的错误。(5)错误处理路径测试。一般软件错误处理路径测试应考虑下面几种可能的错误:对错误的描述不易理解、指出的错误并不是所遇到的错误、出错时还没有进行出错处理就先进行系统干预、错误边界条件的处理不正确、描述错误的信息不正确从而不足以确定出错的原因等。(6)边界测试。边界测试是检测软件在其输入/输出域、过程参数、状态转换、功能界限等具有一定范围的边界或端点条件下的运行情况,考核软件的功能或性能在其边界条件下或边界的邻近区域内是否依然满足设计要求。按照上去要求进行单元测试时,为达到要求的覆盖条件,还需采取一定的技术手段对测试覆盖率进行记录和分析,确保达到相应的覆盖率指标。采用TBrun单元级测试工具,能自动产生软件测试驱动、桩模块,提供友好的输入输出人机交互和覆盖率统计功能,能有效提高单元测试的测试效率。

2 Testbed在单元测试中的应用

使用 Testbed/TBrun的基本方法是:设计测试用例;在Testbed/TBrun中加载被测单元文件,通过Testbed/TBrun对被测软件进行源程序自动插装;根据测试用例设定输入和预期的输出,执行插装好的源程序单元;分析输入数据、预期输出和实际输出;得到被测软件在当前的测试用例执行过程中代码的覆盖率。需要注意的是,每执行一个测试用例就需要重新编译并执行。Testbed/TBrun的覆盖率统计只具有累加的功能,因此不能查询每一测试用例执行后的覆盖率信息。在执行完所有的测试用例后会生成一个总的覆盖率文件,Testbed/TBrun通过对覆盖率文件的分析得出软件单元相应语句的覆盖情况,根据这些覆盖情况可以较快确定冗余的测试数据并增补遗漏的测试数据,从而指导新的测试用例设计。在实际应用Testbed单元测试时,需注意以下三个方面:(1)数组和指针类型的变量的输入。数组可以通过在Testbed/TBrun插装后的源代码中插入数组的初始化语句对数组赋值或者在 Testbed/TBrun 环境中对数

组的一部分赋值。因指针不能被直接赋一个地址,所以输入指針可采用映射的方式来赋值,将指针变量映射成相应的自定义变量,然后对自定义变量赋值。在测试执行的过程中,这个自定义变量的值就是指针的输入值。(2)被测单元代码的必要修改。在实际的测试过程中,有的代码单元不能直接使用Testbed/TBrun直接执行测试。须在分析之前对代码单元做少量修改。如Testbed/TBrun 插装源代码时会生成 main()函数,因此被测单元中的 main()函数要改为其他的名称以避免造成名字冲突;Testbed/TBrun 执行分析时会执行被测单元,因此被测单元中的 while(1)之类的死循环结构要去掉,否则分析将无法结束。(3)模块测试后显示最终整体覆盖率,不能查询每一测试用例执行后的覆盖率信息。

3 结语

Testbed有效地支持了测试人员的测试工作,相对于完全人工测试提高了测试效率。该工具仍存在不足,还需在实践中不断完善使用方法。

参考文献

[1] TBrun Manual.pdf -Testbed7.2 help document.

嵌入式系统软件设计方法应用分析 篇4

1 嵌入式系统的发展历程

自从在上世纪七十年代最早的嵌入式系统的前身单片机问世之后, 经过无数科学研究人员的不屑努力, 各种各样的嵌入式微处理器和嵌入式微控制器相继出现, 正式标志着嵌入式系统进入了发展阶段, 也成为了时代发展的一部分。到现在, 嵌入式系统的发展已经有了将近四十年的历程, 在这四十年当中, 嵌入式系统已经陆陆续续的渗透到工程设计、科学研究、军事技术以及网络技术中, 成为人们生活所必不可少的一部分。而且, 随着科学技术以及计算机网络技术的不断发展, 对嵌入式系统的功能和运行的可靠性要求也变得越来越高, 使得嵌入式系统的设计和开发也变得越来越困难。

2 嵌入式系统软件设计流程

虽然嵌入式系统软件的整体设计流程跟通用软件的设计没有太大的区别, 但是在具体的性能要求上, 嵌入式系统软件的设计却有着更为严格的要求, 比如, 嵌入式系统软件对系统所具有的实时性能和可控性能就有着十分严格的要求, 设计精度要求也更高。总的来说, 嵌入式系统软件的设计共可以分为五个阶段。

2.1 确定驱动接口

嵌入式系统软件的设计主要都是在硬件驱动层的基础上进行设计的, 也就是说, 在嵌入式系统软件的设计过程中, 当在系统硬件上确定了驱动软件的接口之后, 软件的设计就已经开始了。在嵌入式系统软件的设计过程中, 首要任务就是确定软件驱动接口的有效性, 要能够满足硬件通过驱动接口对软件进行有效操作。

2.2 按照实时性划分软件功能模块

嵌入式系统的软件设计对实时性有着很高的要求, 因此, 在对软件进行设计的过程中, 一定要对软件设计的实时性引起足够重视。软件设计的实时性主要可以分为实时和分时两个部分, 由于这两个部分拥有不同的系统功能, 所以它们对设计也有着不同要求。因此, 针对这种特性, 在软件设计过程中, 可以根据实时性的不同将软件设计分成实时和分时两个部分, 然后分别对两个阶段进行设计。

2.3 生成软件代码

软件代码生成是嵌入式系统软件设计的重要阶段之一, 是根据各个模块的不同功能要求编写具体的代码, 然后通过对功能分析和总结, 确定所编写代码, 最终生成软件代码。

2.4 软件功能集成测试

在根据软件不同功能模块的不同要求编写并生成软件代码实现模块功能之后, 还要对软件中所有的功能模块进行集成测试, 在测试过程中, 仔细观察软件功能集成运行中单个功能模块所存在的问题以及各个模块之间的衔接运行问题, 如果发现问题, 第一时间对有问题的模块进行更改, 更改之后继续运行, 再次检查问题。如此反复, 直到确定整个软件的运行不存在任何问题为止。

2.5 代码固化

在完成以上所有阶段的设计之后, 就要进行最后的代码固化处理。在确定代码和功能集成运行都没有什么问题之后, 将所有的代码移植到目标机上进行固化处理和运行调试。在代码固化和调试之后, 还要让软件脱离调试环境进行试运行。

3 嵌入式系统软件设计方法应用

3.1 对软件的实时性进行设计

跟通用软件设计相比, 嵌入式系统软件设计对系统的实时性具有很高的要求, 只有保证嵌入式系统的实时性, 让系统能够在规定时间内对激励做出反应, 才能够保证嵌入式系统的正常运行。因此, 在软件设计过程中, 一定要按照实时性的不同, 将软件功能分为实时和分时两个部分对软件的实时性能进行严格、合理设计, 保证嵌入式系统软件的实时性能。

3.2 对软件的可靠性进行设计

为了能够有效保证嵌入式系统运行的可靠性, 在对软件进行设计过程中, 还需要对软件的可靠性进行合理设计。在对软件进行设计的过程中, 一定要在充分考虑嵌入式系统运行特点的基础上, 仔细编写功能模块的代码, 尽可能避免错误的出现。同时, 在编写完功能模块的执行代码之后, 一定要立即对其进行试运行, 如果发现问题, 及时进行解决, 以避免集成功能后对系统的运行的可靠性造成影响。

3.3 对软件的可拓展性进行设计

当前, 网络技术和移动网络技术更新换代的极为快速, 对嵌入式系统先进性的要求也比较高, 否则, 如果嵌入式系统跟不上网络技术的发展脚步, 最终就会被淘汰。因此, 在对嵌入式系统软件进行设计的过程中, 一定要对软件的可拓展性进行设计, 最起码, 软件的可拓展性要满足三年到五年之内的发展需求。一旦嵌入式系统软件需要进行升级和更新, 只需要插入新的功能模块或者是简单的对代码进行更改就可以完成, 不必要对原有的软件造成损坏。

3.4 混合编程, 提高软件的执行力

混合编程指的是在软件编程过程中, 同时利用汇编语言和高级语言进行编程, 这也是当前编程发展的一种主要趋势。在编程过程中, 针对不同的编程要求选择不同的编程语言, 比如, 对一些执行能力要求比较高或者是实时性要求比较高的程序的编程, 应该选择严谨性比较好的汇编语言进行编写, 而对于一些对逻辑性要求比较强的程序的编程, 可以选择利用具有一定智能性的高级语言进行编写。如此以来, 就可以同时提高软件的执行力和分析能力, 提高嵌入式系统的智能型。

4 结束语

嵌入式系统已经成为人们生活的重要组成部分之一, 因此, 在日常工作当中, 一定要对嵌入式系统的设计和开发引起足够重视。而在嵌入式系统中, 软件占据着极为重要的组成部分, 也是系统设计、开发的重点、难点, 所以, 在软件设计过程中, 一定要从软件的实时性、可靠性以及可拓展性等方面进行综合考虑, 对软件进行合理设计。

参考文献

[1]吕骏.嵌入式系统设计[M].北京:电子工业出版社, 2012.

[2]郑泽胜.嵌入式系统以及实时软件开发[J].电子科技, 2010 (01) .

嵌入式软件的覆盖测试 篇5

支持嵌入式软件覆盖测试的工具应解决如下2方面的关键问题:

*与嵌入式操作系统的结合

覆盖测试工具与嵌入式操作系统的结合体现在3方面。首先,在目标机方,应用任务与专门负责收集/上传覆盖信息的任务是通过消息队列来传递数据的,该消息队列可使用嵌入式操作系统的相应机制实现。其次,这个专门任务也可以被看作一个特殊的应用任务,也必须有嵌入式操作系统的支持,因为任务管理是后者的基本功能之一。最后,目标机与宿主机之间的通信可以采用串口或以太网方式,对串口的驱动或网络协议均可使用嵌入式操作系统的相应程序组件。

*与其它嵌入式交叉开发工具的关系

嵌入式应用程序的开发通常采用交叉开发方式,几乎所有的开发工具均要解决3部分的问题:宿主机部分的功能、目标机部分的功能、宿主机与目标机的连接问题。其中,宿主机与目标机的连接是个瓶颈,如果不同的工具要使用同一物理线路实现数据传输,则要解决对该物理线路(或者说硬件端口)的正确共享。比如在图3所示的环境中,宿主机方的各种工具通过统一的接口――目标服务器(targetserver)实现对通信线路的访问,目标机方的调试代理(debugagent)则是各种信息(调试信息、覆盖信息、时间信息、对象信息等)的收集与传递的核心。

5Logiscope在嵌入式操作系统DeltaCORE测试中的应用

Logiscope是Verilog公司的CASE产品,对软件的编码、测试、维护提供多方面的服务,并且支持嵌入式软件的覆盖测试。

5.1测试前的准备

测试前的准备即为支持对DeltaCORE的测试所做的移植工作。

目前,Logiscope已经为一些成熟的商用嵌入式操作系统提供了支持,比如pSOS。DeltaCORE是我国自主开发的嵌入式强实时操作系统内核,为了利用Logiscope实现对DeltaCORE的应用程序乃至DeltaCORE本身的测试,我们主要解决了第4节中描述的第1个关键问题。

为了支持嵌入式程序的测试,Logiscope提供了运行在目标机方的程序代码(或称为目标机端的支持库),里面包含了:

*1个用来收集和发送覆盖信息的主循环线程,该线程即是嵌入式应用中的特殊任务;

*实现具体数据传输的函数,包括对串口或网络的驱动,它们将被上述线程调用;

*插装函数的实现,这些函数被被测代码调用,向缓冲中放入覆盖消息块;

*对缓冲信息队列的管理;

*初始化代码。

例如,当被测程序运行进入到一条if(……)语句时,整个过程如图4所示。

为了支持对DeltaCORE的测试,将与这些机制相关的代码进行移植,包括以下几方面:

*将收集和发送覆盖信息的主循环线程作为在目标机端运行的应用程序中的特殊任务;

*对串口的驱动采用LambdaTOOLBSP(板级支持包)中的串口驱动代替,对网络的驱动,用DeltaCORE的配套组件DeltaNET中的驱动程序实现;

*利用DeltaCORE的信箱机制实现消息队列的创建和管理,插装代码向这些信箱发送覆盖消息块;

*在DetaCORE应用程序的根任务中调用Logiscope的初始化函数,达到创建特殊任务信箱的目的。

开发DeltaCORE应用程序时,我们使用了其配套开发工具LambdaTOOL。由于所使用的工具版本没有实现目标服务器(targetserver)的调试方式,因此对物理端口的使用采用的独占方式,即调试工具不能与其它工具共享同一端口。我们可以用网络试上载并启动目标应用程序,而通过串口传送覆盖信息。

5.2对DeltaCORE的覆盖测试过程及结果

对于函数内部,Logiscope支持的覆盖策略有:

*指令块IBs(InstructionBlocks)

*判断到判断的路径DDPs(Decision-to-DecisionPaths)

*MCDC(ModifiedCondition/Decision)

在项目层次上支持的覆盖策略是:

*过程到过程路径PPP(Procedure-to-ProcedurePath)

在DeltaCORE的测试中,我们采用了较为常用的覆盖策略――判断到判断的路径,其含义是:DDP是一个指令序列,它的起点是函数或判断(if,while,……)的入口点,它的出口是下一个函数或判断的退出点,之间不能再有判断,比如在图5中包含了5个DDPs:

测试的具体过程是:

①利用插装分析器对DeltaCORE的源代码进行插装,并生成插装信息文件。

②将移植后的Logiscope目标机端程序与插装后的内核源代码一同编译链接成库,以替代原来的内核库,供应用程序使用。

③编写测试案例,从实现应用的角度使用DeltaCORE的各种系统功能调用,力求遍历内核函数所有的判定分支,并将这些案例编译成可执行程序。

④在宿主机端启动覆盖信息收集和分析程序,用LambdaTOOL的调试器下载并启动应用程序。DeltaCORE的覆盖信息被传递到宿主机上,分析程序动态显示覆盖率的增长情况,并将这些信息记录在一个文件中。

⑤应用程序执行完毕后,启动Logiscope的事后分析工具,将覆盖信息记录文件与插装信息文件(在源代码插装在生成的附属文件)进行比较,帮助测试人员清晰地了解每个被测函数内部的路径覆盖情况,借此可为测试案例的改进提供帮助。

⑥测试人员修改测试案例,并重新进行整个测试过程;各项测试的结果可以叠加,覆盖率将得到增长。

经过2个多月的时间,我们对DeltaCORE1.1版本79个文件共计115个函数进行了覆盖测试,覆盖率已经达到了70.55%。编写测试用例89个,主要的60个API函数均已获得较高的覆盖,覆盖率达100%的约占51.3%。

6小结

我们借助Logiscope工具对嵌入式实时操作系统DeltaCORE进行了覆盖测试,达到了较好的覆盖率;发现并处理了一些缺陷,提高了软件的质量和可靠性,但同时也存在不足之处:

①测试应好好规划,包括测试顺序的选择、测试案例的设计、测试文档的管理等等。

②由于该测试手段依赖于操作系统的有关机制,而被测对象又是操作系统本身,因此与这些机制有关的部分代码未被插装和测试,否则就会出错。比如,操作系统的初始化函数os_init,在这个函数运行完毕之前,操作系统的相应机制尚未建立起来,因此对它进行插装就会造成问题,不能正确地得到覆盖信息。又比如,出于效率方面的考虑,与系统时钟相关的部分函数未被插装,因为在程序运行过程中,时钟是最频繁产生的一种外部事件,如果插装,就会产生大量的覆盖信息,会对信息缓存、传递、收集和处理造成压力。另外,所用的工具不支持对汇编函数的插装和测试。综合上述各种原因,DeltaCORE1.1的总体覆盖率还显得比较低,需要采用其它的方法来提高它。对于非操作系统组件及应用的测试,由于不存在操作系统本身的问题,因此可望达到较高的覆盖率。

③该方法不能用于时间性能测试。因此它属于纯软件的测试方式,大量数据信息的产生、传递与收集对被测程序的干扰大,只能做白盒性的功能结构验证。如果做性能测试,应采用某些软硬结合方式的工具,比如CodeTEST。

微软嵌入式也要“软件+服务”化 篇6

“嵌入式产品正在由过去孤立的设备朝着一个连接性、服务导向的设备转变,微软的平台也从过去单纯的软件平台向‘软件+服务’的平台转变。”不久前来到中国的微软嵌入式事业部总经理Kevin Dallas表示。

智能、连接性和服务导向,这是Kevin Dallas反复提到的未来嵌入式终端产品的三大特点。而在构建智能、连接性和服务导向设备的过程中,服务尤其关键,这包括平台与工具服务、设备服务和终端用户服务三大类。

一个OEM厂商向市场投放一个嵌入式设备后,可以对这个产品进行远程技术支持,设备自身可以提供智能化的信息,便于厂商更加有效地管理和监控;一个终端用户可以通过嵌入式终端设备享受到包括位置服务、搜索服务和媒体服务等在内的实时服务,这些就是微软嵌入式系统“服务”的重要内容。

微软的嵌入式产品家族包括三大类: 为手持设备、瘦客户机、逻辑控制器和消费电子产品等小型实时设备定制的Windows Embeded CE、应用于非个人计算机设备的Windows XP Embeded,以及为零售设备外设提供即插即用功能的Windows Embedded for Point of Service(WEPOS)。

目前,微软Windows Embedded已经构造了一个由全球数千家设备制造商和分销商组成的生态系统,全球已有超过450所大学将Windows Embedded应用于课程教学和研究中,使用Windows Embedded集成开发环境工具的开发者也超过了600多家。

今天, 微软嵌入式系统在个人导航设备领域占有35%的市场份额,在瘦客户机、POS机市场分别占有52%和50%的市场份额,在ATM、瘦客户机方面也都占有最大的市场份额,“这个市场地位的取得也是我们要继续向‘软件+服务’平台转型的原因。”Kevin Dallas表示。

始之系统应用,终之嵌入式软件 篇7

大家知道苹果公司没有芯片技术, 但是iPhone手机无疑是优秀的创意和设计, 除了ID/MD (界面设计/机械设计) 的创意外, 更重要的来自于其嵌入式软件设计。国内历来重硬轻软, 芯片产业的投资模式和商业价值已经形成, 但是嵌入式软件企业还在狭缝中生存, 高成本的软件劳动的价值很难附加在芯片或系统上。同时, 因为没有成熟的系统规划和软件支撑, 不以应用为导向以嵌入式软件为支撑的系统芯片厂商, 正在遭遇投资流失和企业倒闭的风险。

以深圳爱国者移动数字电视和移动数字多媒体终端开发过程为例, 这是一个典型的嵌入式软件为核心的产品。产品是ARM11和ARM+DSP的多媒体应用处理器和嵌入式Linux OS兼容的多媒体平台, 配合多媒体IP、CMMB移动数字电视、GPS、Wi-Fi等模块和各种应用软件, 以实现多种移动多媒体应用业务。嵌入式操作系统在移动数字电视终端这样的嵌入式系统地位和作用就像开发商建筑楼房一样, 标准化建筑设计和施工已经非常完善, 多数开发商是在这些组件基础上再创新和发挥, 在嵌入式操作系统基础上开发应用软件和嵌入式系统是目前和未来嵌入式系统开发的必由之路。

以移动数字电视和多媒体终端为代表的数码产品的组成是硬件+软件+外观, 价值是功能+性能+外观, 数码产品的核心价值是芯片+嵌入式软件+应用和外观创意。但是今天的问题是芯片有价、硬件有价, 但是软件无价!国内的山寨机就是没有计入嵌入式软件技术成本的典型, 最终, 也必然受到没有考虑技术成本的惩罚, 造成了今天大家看到的iPhone等为代表的高端品牌机和山寨机这样冰火两重天的现象。

针对移动数字电视和多媒体终端的嵌入式软件核心技术主要体现在下面三个方面:第一, 嵌入式多媒体操作系统移植、构建和优化;第二, 支持多种协议和标准的多媒体IP技术的实现和优化;第三, 多媒体应用软件的开发和集成, 包括人机界面 (UI) 、整个系统软件和应用软件的容错、可靠性和稳定性的实现。

国内手机产业的现状再次验证了我们忽视了嵌入式软件的后果。世界六大手机制造商占领了世界70%的市场份额, 中国虽然是世界手机的主要生产和加工地, 我们虽然拥有价格和制造的优势, 但是我们无法成为中国和世界手机的主流, 原因就是因为我们没有在手机芯片和手机嵌入式软件这两大核心技术上长期积累和建设。山寨机以功能和低价取胜的一时优势很难造就中国手机行业长久和真正的辉煌。

嵌入式软件测试技术研究与应用 篇8

软件开发商和软件用户两个群体对软件测试目的的理解有所不同。软件开发商进行软件测试的根本目的在于通过测试使自身所设计的软件产品可以符合用户的需求,确保软件产品的质量。软件用户则是希望通过软件的测试来暴露出软件开发商所设计的软件中所存在的问题与缺陷,检验软件所设计的功能是否满足自身需求。软件测试的目的主要被归纳为以下几点内容 :(1)检验软件的性能、功能是否符合规定的需求;(2)软件的测试分析为软件的可靠性分析提供了有利条件 ;(3)将软件所得实际结果与预期结果之间的差异分析所需的时间、人力降至到最低。通过软件测试将系统中存在的缺陷、错误进行修正处理,以此来提高软件的质量、性能,软件中存在的缺陷错误会为日后的工作带来难以预估的风险,软件的测试很大程度上降低了这些风险的发生。

2 软件的测试技术概述

软件测试技术主要包括静态测试和动态测试。静态测试又包括审查、走查、评审,而动态测试主要由白盒测试和黑盒测试构成。

2.1静态测试

静态测试的主要测试对象是源代码,通过源代码的分析发现其中潜在的缺陷错误,在程序不执行的情况下查找程序中的错误,静态测试主要包括审查、走查、评审三种类型,对其进行了如下分析:(1)走查。走查的评审过程不是非常正式,走查是由部分小组成员通读编码和设计,剩余小组成员对可能出现错误、发生矛盾、信息遗漏的地方进行系统的讨论,对走查过程中发现的问题做出适当的记录,以便于之后修改工作的实施。(2)审查。审查会对程序源代码进行较为正式的评估和检查。首先由软件设计开发人员对源代码中潜在的风险错误进行自我审查,之后由检查组进行代码审查。通过召开正式会议的方式来确保开发人员、软件用户、测试人员都参与到程序的审查工作中来,会议中还应该将需求描述文档、程序源代码清单、程序设计文档、代码缺陷检查表、代码编码标准等相关文件准备完善,在此基础上进行软件的静态分析,通过审查检测软件中是否存在错误。如果在审查中发现了错误,一定要在会议现场就将错误修正过来,还应该生成一份与静态错误分析相关的报告。(3)评审。

评审小组成员主要包括开发人员、测试人员、项目经理、与软件测试领域相关的专家、软件用户,他们根据审查结构和审查的讨论结果来判定所设计的程序是否可以通过静态测试。

2.2动态测试

动态测试是在程序执行过程中发现错误的测试,动态测试主要由白盒测试和黑盒测试构成,对其进行了如下分析:(1)白盒测试。白盒测试又被称为结构测试,白盒测试的测试用例是针对被测程序的相关信息和内部结构而设计的,白盒测试还要测试被测程序的逻辑路径。

白盒测试的主要测试内容包括以下几部分内容:1测试程序中所有的内部成分、路径是否按照要求、规定进行工作;2测试程序内部的变量的状态、运行的路径以及逻辑关系等;3最后要测试的是程序的运行是否符合设计需求。(2)黑盒测试。黑盒测试又被称为功能测试,黑盒测试的测试用例是针对被测程序的功能来设计的。将被测程序看成一个黑盒子,无法看到程序的内部结构,在测试过程中不将程序的内部逻辑结构和特性问题考虑在内,将测试的重点放在程序的外部结构上,测试内容主要包括软件功能和软件界面。黑盒测试的主要测试内容包括以下几部分内容:1测试程序中的功能是否完善齐全,并且要检测程序的性能和功能是否能够满足用户的需求。2测试在人机交互过程中、外部数据库访问过程中、数据结构上是否存在错误,并且要检测数据的输入和信息的输出是否正确。3检测程序的初始化、终止过程是否存在错误。一般较为常用的黑盒测试法主要包括以下几种类型:等价类划分法、边界值分析法、因果图、错误推测法等。

3 嵌入式软件系统的自身特点对软件测试的影响

嵌入式软件测试与一般软件的测试相比有所差异,嵌入式系统具有实时性、通道少、内存小、开发工具昂贵、与硬件联系紧密、种类繁多等显著特点,这些特性极大地增加了软件测试的难度。

3.1嵌入式软件系统的嵌入性影响

嵌入式软件系统的运行环境一般是由嵌入式系统提供的,嵌入式系统只提供了运行环境却无法提供开发环境,这两者无法达成统一就会增加嵌入式软件测试的难度。在系统测试过程中,测试工具和测试信息分别位于宿主机和目标机上,宿主机与目标机之间的信息传输问题非常关键。在测试过程中,不仅要对宿主机进行运行测试,还要确保嵌入式软件在目标机上可以正常运行。

3.2嵌入式软件系统的实时性影响

嵌入式软件具有实时性,它需要在规定的时间范围内完成有待处理的任务,它的运行具有实时性。嵌入式软件的实时性影响了嵌入式软件系统的测试,例如当有电话打入需要在规定的时间范围内接听,在这种情况下相应的操作系统却没有做出任何回应,超出这一时间范围对方只能挂掉电话。为了解决这一问题,嵌入式软件测试系统一般会采用静态时间分析和动态实时检测的方法对软件进行时间测试。动态实时检测指的是在程序执行过程中测试嵌入式软件的时间特性。静态时间分析则是指在不执行被测程序的情况下对程序结构进行深入分析,以此来预测程序的执行时间。

3.3嵌入式软件系统的反应性影响

在反应式系统运行进程中要对可能发生的事件做出相应的反应。反应式软件的描述工作是通过一对输入、输出序列的二元组负责完成的。输入事件的序列的不同组合极大地增加了程序的输入数据空间。输入数据输入反应式软件的时间不同会产生不同的结果,如何选取测试用例成了解决反应式软件的关键所在。

4 嵌入式软件测试的方法分析

4.1结构化测试法(Temd)

Temd结构化测试法具有以下基本特征:不同的人对于同样的问题所采用的测试方法有所不同,为了达成统一,在测试初期,团队总负责人就应该指出各部分测试工作的负责人员,并且要针对于各部分测试间的关系问题制定一个主计划,将通用元素很好的融入到各测试部分当中。通用元素是Temb法的基础,主要包括以下几种通用元素 :(1)技术。技术主要描述的是在测试阶段选用何种方法、如何执行各测试阶段的活动,为测试提供通用有效的方法。(2)生命周期。生命周期指的是软件开始计划到软件废弃这一时间周期,这段时间周期内需要执行的顺序和各进行阶段。(3) 基础设施。基础设施主要是指测试工具、测试环境、办公环境、测试人员等在测试环境中所涉及到的基础测试设施,以此来确保测试的执行可以按计划顺利的进行下去。(4)组织。组织主要指的是确定测试的人员安排、测试结构、所需的专业技能,此外还包括测试过程中的控制、管理问题等,通过有效的组织形式来加强团队之间、人员之间的交流合作。

4.2模块化测试法

在满足软件用户需求的前提条件下,将较大规模、结构复杂的嵌入式软件划分成一个个小的功能模块组合,进行小功能模块的设计开发,将嵌入式软件的开发进行分工合作。嵌入式软件系统模块化设计的主要设计思想如下所示:通过采用全局变量的形式实现功能模块之间的数据传递,软件系统各功能模块之间的逻辑结构是相互独立的。嵌入式软件的模块化设计极大的方便了嵌入式软件测试的纠错处理工作。嵌入式软件系统的模块化测试主要包括以下几部分内容:(1)系统平台测试。系统平台测试主要包括硬件电路、操作系统、底层驱动程序等部分的测试。(2)模块测试。系统在进行模块测试时,将较大规模、结构复杂的嵌入式软件划分成一个个小的功能模块,采用模块嵌套的结构形式进行软件测试,简化了模块间的数据链路,使模块内部的结构更为清晰明了。(3)集成测试。通过集成测试的特殊处理将复杂的链路数据传递方式转化成较为简单的单链路数据传递形式,在软件模块中采用较为简单的单链路数据传递形式使错误的定位更为简单,有助于检测各功能模块间数据传递和系统逻辑结构中存在的错误。(4)系统测试。嵌入式软件系统投入使用后,采用黑盒测试对嵌入式软件系统进行动态测试,以此来满足用户的功能需求。

5 嵌入式软件测试技术的应用

嵌入式应用软件 篇9

1 嵌入式实时软件的特征

在对计算机软件进行设计的时候, 可以将执行预测指令、动态分配等为主要依据, 对软件的实时处理能力进行优化, 将嵌入式软件应用于计算机软件中, 主要可以从软件处理与硬件处理两个方面进行分析, 首先, 计算机软件系统的运行需要相应程序的支持, 其次, 软件设计人员可以利用计算机操作系统对程序进行编制。可以同时进行处理能力的处理器就属于嵌入式处理器, 这种处理器可以在较短时间内对多个任务进行中断或者相应, 同时还能对大量信息资源进行实时存储。嵌入式软件的特点可以从两方面进行分析, 首先, 嵌入式软件具有模板化的实时结构, 这样的设计对于软件检测与修复来说非常有利。其次, 在嵌入式实时软件中可扩展的软件处理器机构是非常关键的, 可以用低功耗对软件设计与执行等操作流程进行设计, 使嵌入式实时软件的优势得以充分的发挥, 并在计算机软件设计中起到主导性的作用。

2 嵌入式实时软件应用于计算机软件设计中的意义

嵌入式实时软件主要包括硬件与软件两方面, 其中不仅涵盖了机械方面的知识, 同时也融合了软件设计方面的知识, 这样一来计算机软件系统就变得更加强大, 计算机软件系统的控制能力得到了明显的提高。在计算机软件设计过程中, 开发嵌入式实时软件存在更加广阔的应用领域, 在嵌入式软件设计过程中, 主要涉及到硬件与软件两部分的设计内容, 嵌入式实时软件并非一般的PC系统, 在软件设计中应包括I/O端口、处理器、编程等多个组成部分。一般来说, 嵌入式实时软件都具有对多任务进行操作的功能, 并在嵌入式软件中对计算机软件进行设计, 还可以应用层次化的模块结构, 保证嵌入式实时操作系统能够与计算机底层的硬件结合在一起, 完成硬件系统任务, 促进计算机软质量的提高。此外, 在设计计算机软件过程中对嵌入式软件进行使用, 还能对上下文切换、资源分配等优势充分发挥出来, 进一步保证软件产品的质量。

3 嵌入式实时软件在计算机软件的应用设计

嵌入式实时软件在软件设计中的应用可以体现在多个方面, 涉及的领域也比较广, 这种软件在计算机软件中的实时应用使软件设计效率得到了极大的提升, 同时还有效缩减了工作量。下面就从不同角度对计算机软件设计中嵌入式软件的应用展开进一步分析。 (1) 应用依据。软件设计中嵌入式设计软件的应用原理在于:嵌入式实时软件面对需要处理的软件时会将实时处理技术融入其中, 用这种方式对实时CORBA模型进行建立。同时, 嵌入式实时软件的应用还能利用远程调控提供多样化的设计任务, 促进计算机软件设计步伐的加快。以CORBA模型作为例子, 嵌入式实时软件的应用不仅可以为其在设计实践上提供有效的支持, 同时还能对设计模式进行革新, 在此基础上进一步提升计算机软件的可靠性与突出性。 (2) 开发步骤。嵌入式软件在计算机软件设计中得到应用以后, 其优越性与简易性会充分显示出来, 在计算机软件应用中, 嵌入式软件的一般流程为:软件程序员结合实际需求对软件设计需要进行确定与分析, 然后进入到软件设计阶段以及代码生成阶段, 软件测试是最后的一个阶段, 成为设计的精华所在, 顺利通过这三个阶段以后, 计算机设计才算完成。这种开发流程非常简单、方便, 不仅可以使计算机软件的设计效率得到提高, 同时还能使嵌入式软件在计算机设计中的应用得到进一步扩大。 (3) 设计中的注意事项。在计算机软件设计过程中应用嵌入式实时软件, 一定要严格遵循每个设计要点, 否则很有可能会在软件设计过程中出现失误。例如在对计算机软件结构进行设计的过程中, 计算机软件设计员一定要注意尽量避免出现软件与硬件想脱离的情况, 这样才能有效防止在传统计算机结构设计中出现过于依赖硬件的错误, 在此基础上有效增强计算机软件系统工作的平稳性与及时性。除此之外, 将嵌入式实时软件投入应用以后, 可以将软件数据初始化, 并对数据结构进行格式化, 使计算机系统性能得到优化。由此来看, 软件设计员可以从间接的角度对信息资源以及硬件设施进行操纵, 利用嵌入式实时软件促进计算机软件设计效用的实现。

4 结语

综上所述, 人们的生活因为科技的进步而发生了巨大的变化, 尤其是计算机软件设计中应用嵌入式软件以后, 更是获得了良好的实验效果。通过本文的分析, 在计算机软件设计过程中对嵌入式软件进行使用, 不仅可以将资源分配与任务同步的优势充分体现出来, 同时还能使软件产品的质量得到进一步提升。所以, 软件开发员应该不断加深对嵌入式软件的认识与了解, 这样才能设计出更好效能的软件产品, 促进计算机软件开发整体水平的进一步提升。

摘要:嵌入式计算机软件系统的设计, 不仅可以使计算机软件的实时性得到提高, 同时还能有效提升计算机软件的设计质量与效率。随着科技水平的不断提升, 嵌入式实时软件的应用前景更加广阔, 实践效果非常好。文章从几个不同的方面针对计算机软件设计中嵌入式实时软件的应用设计展开了一系列的分析, 希望本文的分析与探讨可以为相关研究带来一些借鉴与参考。

关键词:计算机软件,嵌入式实时软件,设计

参考文献

[1]李俊.嵌入式软件层次模型的研究与FSM数学模型[J].中国高新技术企业, 2009, (19) :16-18.

[2]胡军, 于笑丰, 张岩, 李宣东, 郑国梁.基于场景构件式实时软件设计的一致性检验[J].软件学报, 2006, (1) :48-58.

[3]魏宁, 刘乔佳.计算机软件开发过程及嵌入式软件的应用[J].电子技术与软件工程, 2015, (6) :57.

[4]张寅生, 庄丽葵, 王彪, 曹云峰.Rhapsody实时软件框架适配器设计和实现[J].计算机技术与发展, 2011, (4) :33-36.

嵌入式应用软件 篇10

1 嵌入式实时软件技术及其在计算机软件设计中的应用价值

1.1 嵌入式实时软件技术的概念

在软件开发设计过程中, 将嵌入式实时软件应用到程序设计中, 把面向需要处理的软件对象, 通过实时处理技术融入其中, 使计算机软件在远过程调用中, 更加具备独立性、安全性与实用性

嵌入式系统可以划分为4个层面, 包含硬件层、软件层、驱动层和操作系统层。它是一种功能强大, 结构复杂的计算机系统, 可以实现对具有复杂功能的软、硬件的设计与开发, 并使之实现紧密耦合, 以发挥出强大的功能。

它是以计算机技术为基础, 目的在于更加广泛的应用到实际中去。在实际开发过程中不单要控制成本, 还有平衡功耗、性能和体积之间的关系。

1.2 计算机软件设计中的应用价值

(1) 良好的存储区保护功能是嵌入式实时软件具有的一个重要特性, 不但可以进行软件检测和修复, 还可以很好的降低软件设计缺陷, 在很大程度上符合软件开发和使用者对产品质量的要求。

(2) 作为软硬件高度融合的设计, 嵌入式实时软件在集成了硬件设施相关技术的同时, 还大大提高了软件系统对硬件设施的适用性, 在发挥软件系统的功能方面优势显著。具体变现在:集成硬件设施方面, 嵌入式实时软件的设计兼顾了计算机处理器、I/O端口、微处理器等硬件设施的技术参数。软件设计方面, 需要采取层次化设计方式, 来保证嵌入式实时操作可以和硬件设计完美结合, 这样可以做到兼顾多任务处理和实时操作的要求。通过操作嵌入式实时软件对硬件系统下达指令, 同步完成各项任务

(3) 计算机嵌入式实时软件具有处理中断、切换上下文、分配资源的优势。不仅可以大大提高计算机软件的智能化与实时性, 同时也可以有效提升计算机软件设计效率与设计质量。

2 嵌入式实时软件技术在计算机软件设计中的应用案例分析应用

2.1 案例介绍

嵌入式实时软件设计在微机继电保护器设计中已经开展了较为广泛的应用, 并很大程度上提高了计算机软件产品的质量。本文中, 嵌入式实时计算机软件开发是基于软硬件嵌入式实时系统开发而来的。具体包含对数字信号处理器、IO设备、C++语言以及ARM进行应用, 旨在为进一步开发计算机嵌入式实时软件做铺垫。

2.2 设计流程

计算机嵌入式实时软件设计流程中应注意以下几点:第一, 明确软件使用方需求, 做好沟通和记录, 便于开发过程中使用。第二, 明确嵌入式实时设计理念在整个设计过程中的中心作用, 如需求设计阶段、代码编写生成阶段、后期测试修改阶段等。第三, 在进行计算机嵌入式实时软件设计时, 应对各个功能进行模块化处理, 针对每一模块再进行细分, 这样不但可以借助模块对其他程序进行开发, 还可以更好的完成软件使用者的设计要求。第四, 在进行计算机嵌入式实时软件设计过程中需要针对任务划分职责和权限, 做到每一个任务的地址都是唯一的, 同时采用优先级调度模式来提供嵌入式软件实时性功能。

2.3 硬件设计

在嵌入式实时软件开发过程中, 技术人员通常会选用AT91RM9200微处理器, 这一微处理器具有外置接口丰富的特征, 软件开发人员可以借助这一特征实现同步控制。这也解决了系统中事件突发访问功能的问题, 同时大大缩短了嵌入式实时软件的响应时间。

2.4 软件设计

嵌入式实时软件软件设计需要按模块化进行处理, 既可以保持软件在执行任务时的速度又可以提高灵活性。由于各个模块都保持相对的独立性和重复性, 因此, 面向模块中组件开发过程中, 可以尽可能做到简化。单一组件可以通过接口实现对外提供服务或请求服务的功能, 而多个组件结合可以实现更高级别的提供、请求服务功能。

2.5 程序实现

C++语言是计算机软件开发过程中重要方式之一, 嵌入式实时软件的开发也可以运用C++语言来编写相应程序。微机继电保护器设计过程中应用的嵌入式实施软件代码如下:

3 结语

从上文论述, 我们不难发现嵌入式实施软件技术较传统的软件开发技术有很明显优势, 如提高软件开发质量、提供软件系统的实时性、模块化设计提供开发组件利用率, 提升计算机软件系统的整体运行效率。

参考文献

[1]罗浩, 张广泉, 陈冬火.嵌入式实时软件建模方法研究[J].苏州大学学报 (自然科学版) , 2007 (04) .

嵌入式软件测试方法的初探 篇11

摘要:嵌入式计算机技术的飞速发展加速了电器行业嵌入式系统的应用,嵌入式系统中软件系统的比重越来越大,软件架构也越发复杂,软件运行的可靠性逐渐成为业界关注的焦点问题。本文由嵌入式软件测试的基本概念入手,基于嵌入式软件测试特点,综合分析嵌入式软件的关键技术和测试方法,旨在改善嵌入式软件的质量,提高其应用性能。

关键词:嵌入式软件 软件测试 测试方法

0 引言

当前,嵌入式软件已广泛运用于工业控制系统、信息家电、通讯设备、医疗仪器、智能仪器仪表等众多领域,软件的质量和应用性能备受业界关注。以往业界仅仅将功能的软件开发-测试模式作为重点研究课题,但当前所取得研究成果已无法满足日益增长的软件测试需求,其对软件行业的发展也产生了一些负面影响。嵌入式软件测试的工作内容主要是软件质量的监测,这对于嵌入式软件的开发及应用十分关键。

本文在软件测试基本技术的基础上,进一步探究嵌入式软件测试技术与监测方法,试图形成一种较为规范化的嵌入式软件测试解决方法。

1 软件测试基础

1.1 软件测试概念 软件是可以用来设计、制造、运行并且能有效维护的高质量、高可靠性的技术解决方案的一系列计算机程序和相关的组件。对软件进行测试是软件能否正常运行的重要保证,软件测试是以发现错误和缺陷为目的的一系列处理分析的程序或过程。

根据IEEE(1983)对测试定义是选择合适的测试用例,执行被测试程序的过程,其目的在于发现程序错误。在IEEEStd829-1998对IEEE(1983)修订版中,将测试定义为:测试(A)一个或多个的测试用例集,或(B)一个或多个的测试过程集,或(C)一个或多个的测试用例和测试过程集,是软件的分析过程,其目的在于发现软件功能特性等实现和要求不一致的地方(也即软件错误)及对软件的评估[1]。

从以上对软件测试的定义我们可以了解到,软件测试是以发现软件缺陷为目的,进而测试软件功能,最终评估软件质量为目的的试验过程。另外,为了确保测试结果客观、准确,必须按照设计要求选用合理的施测软件。

1.2 软件测试步骤 软件测试工作分五步完成,即单元测试、集成测试、确认测试、系统测试和验收测试(详见图1-1)。

单元测试完成对最小的软件设计单元的检验工作,筛查程序最小单位(模块)中的缺陷,编码后也需要作进一步验证。单元测试主要包括模块接口、局部数据结构、边界条件、独立路径及错误处理五项内容。

集成测试是将经过单元测试的模块按照软件结构组合在一起作为系统或子系统来进行的测试,验证模块间接口的正确性和各部分工作是否达到或实现相应技术指标及要求。集成测试一般在宿主机环境中进行。

确认测试是把软件系统作为单一的执行实体而进行的需求有效性测试。其目的是验证软件是否满足所有功能、性能、行为和执行要求。主要验证两个方面:一是确认软件正确实现了需求中所要求的功能,二是确认软件实现的功能是需求中所需要的。

系统测试实际是通过比较系统的需求定义,筛查软件中与需求定义不相符或相互矛盾的功能架构。系统测试须综合验证软件及其所含的信息、硬件程序是否与需求定义相一致,并检验程序的运行状态能否达到应用要求。

确认测试主要通过用户的参与,检验软件的性能、功能能否满足用户的使用需求,即验证软件的有效性,因此确认测试亦可称作有效性测试。

2 嵌入式软件测试的特点

性能和功能的测试是嵌入式软件测试的主要内容,但相对于一般性的软件测试而言,嵌入式软件测试仍有其特殊性。

①嵌入式软件运行时对硬件环境有一定的要求,嵌入式软件测试的重要目的是测试软件在特定的硬件环境下能否可靠运行,故对嵌入式软件的测试就需要在相应的硬件环境下进行。

②嵌入式软件测试还要保证嵌入式软件的实时性。测试还需在特定的外部环境下对嵌入式软件进行测试,例如强磁场、高温等环境中保证软件运行的可靠性。

③嵌入式软件产品除了满足设计的外部性能要求,还需要在特定的平台上运用相应的测试工具对软件进行内存测试、GUI测试、覆盖率分析。

嵌入式软件的质量以及程序的稳定性须通过软件测试来维护,这也是软件从开发阶段到应用阶段所必经的环节。图2-1即为嵌入式软件测试模型。

测试用例是详细描述测试如何执行的正式文档。选用相应的测试用例,配以测试平台的操作系统以及驱动程序,使得被测软件在正确的环境中运行。根据测试用例的执行结果与预期的测试结果相比较,找出被测程序的缺陷,并加以改进。

3 嵌入式软件测试技术

科学合理的软件测试技术是嵌入式软件测试项目顺利实施的基本前提。根据软件测试程序的应用情况我们可以对软件测试技术进行分类探讨。从测试对象在施测阶段是否被执行角度来看,软件测试涵盖了动态测试与静态测试两部分内容。

静态测试即静态分析,是对被测软件进行特性分析的一些方法的总称。静态测试无需执行程序代码,即可通过其他途径筛查程序内部的缺陷或对程序代码目的进行综合评估。静态测试的测试主要包括代码审查、代码走查、桌面检查、技术评查,这些内容全部须手动完成,另外还包括软件自动完成的静态分析[3]。

和静态测试相对应,动态测试是使被测代码在真实环境或仿真环境下有控制地运行,通过输入测试用例,对代码在运行时体现出的功能、逻辑、行为、结构等多角度观察,检查运行结果与预期结果的差异以发现其中的缺陷,并分析运行效率和健壮性等性能。动态测试的关键在于如何选择测试用例。

按软件测试技术分类有两种,即白盒测试与黑盒测试。

白盒测试主要涉及程序的内部设计和结构的测试。它将施测对象视为一可视化软件,施测人员须全面掌握程序的内部逻辑构造和功能特性,然后选择及设计测试用例,根据程序的逻辑路径施测。在各施测点对程序运行状态进行监测,确定实际的状态是否与预期的状态一致。

黑盒测试在某些情况下也称功能测试。这类测试方法根据软件的用途和外部特征查找软件缺陷,无须了解程序内部的结构,黑盒测试的最大优势在于不依赖代码,只需根据需求,设计相应的测试用例,根据输出结果判断程序功能以及性能正确性。

4 嵌入式软件系统测试方法

理论上讲,将所有可能的输入均作为测试情况考虑,软件测试只有采用穷举输入测试,才能将程序内所有的错误检测出来。而现实中测试情况可有无穷多个,所有可能的输入包含着合法输入和非法输入,要将所有的可能性输入一一检测仍有一定难度,因而须针对测试对象采取适当的测试手段,并参考测试对象的基本条件制定科学的测试用例,为测试工作提供参考依据,以确保有序地落实软件测试各个步骤。笔者结合实践经验,对当前常用的等价分类、边界值分析、McCabe循环复杂度度量和因果图法进行了具体分析。

4.1 等价分类 等价类划分就是把输入划分为若干部分,从每个部分中选取少量代表性数据,来对被测应用进行测试的方法。等价类应为互不相交的一组子集,而子集的并应该是整个集合[4]。

因为软件不仅要接收合理的数据信息,同时须经受意外的考验,因此等价类可细分为有效和无效两种情况。有效等价类,即对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。通过有效等价类,可对程序所达到的性能和功能是否符合规格说明进行验证。而无效等价类与有效等价类恰好是两个相反的概念。另外,对等价类进行划分后须根据设计要求全面测试用例的有效性。

4.2 边界值分析 边界值分析是一种黑盒测试方法,它是对等价类划分方法的补充,通过选择等价类边界的测试用例。通过这种测试方法设计测试用例,须对边界情况有大致的了解。一般来讲,输入与输出等价类的边界即应着重测试的边界情况[5]。

从某种意义上讲,边界值分析法也是一种测试输入或输出的边界值的有效途径。这里所有的边界值涵盖了边界值两边的值。边界值测试的基本原理:输入变量的极值附近极有可能是缺陷点;基本思想:在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量的值。

4.3 McCabe循环复杂度度量 要全面测试某一软件或某一功能模块的有效性,先确保被测对象具有可测试性。顾名思义,可测试性即被测对象所具有的内在属性,它与测试工具或测试方法无关。可测试性能够反映出软件质量优劣,只有高内聚、低耦合、接口明确、意图清晰的软件才具有可测试性。相反,高耦合、内部逻辑混乱的软件即为不可测试性软件。

4.4 因果图法 等价划分和边界值分析没有对输入条件进行分析。组合分析有时是一件困难的事情,因为组合的数量可能达到天文数字。因果图有助于找出高效的测试用例,甚至可以找到规格说明欠缺的地方。

因果图法的步骤如下:①分析规格说明中的原因、结果,并赋予标示符。②找出因果之间的对应关系,画出因果图。③在因果图上标明约束条件。④把因果图转化为判定表。⑤根据判定表每一列表示的情况生成测试用例。

5 结束语

伴随着嵌入式软件事业的持续拓展,软件测试作为保证软件质量的一项关键性的工作,已越来越受到重视。正确的嵌入式测试方法是软件测试工作的工作重点。本文除了对有关软件测试的基本概念作了简要阐述,还对它们之间的内在架构进行了重点分析,并介绍了几种常用的嵌入式软件测试技术及嵌入式软件测试方法。这些技术与方法的运用对软件测质量和稳定性起到非常关键的作用。

参考文献:

[1]IEEE,IEEE Standard for Software Test Documentation.IEEEStd829-1998.

[2]梁合庆.当今嵌入式系统综述与新的投资机遇[J].测控技术,2000(4).

[3]康一梅,张永革.嵌入式软件测试[M].北京:机械工业出版社,2007.

[4]古乐,史九林.软件测试技术概论[M].北京:清华大学出版社,2004.

[5]蔡建平.嵌入式软件测试实用技术[M].北京:清华大学出版社,2010.

基金项目:

浙江省大学生科研创新团队资助项目(编号:2012R409046);

嵌入式应用软件 篇12

1嵌入式实时软件的特点与应用原理

1.1软件特点

计算机软件的运用已经在各个领域普及开来,而嵌入式实时软件可以充分满足软件使用者的多种需求,因此得到了广泛认可。嵌入式实时软件能使用在计算机软件的各种操作流程内,比如灵活分配、机制缓存、判断指令、执行命令等。这一新型软件在计算机软件当中的运用可以分为两大部分,即硬件部分与软件部分。通常情况下,计算机软件的运作需要由程序操控,而该软件则能够利用计算机系统编写软件程序,实现硬件与软件之间的相互交流。嵌入式实时软件的设计关键点就是经由微处理器实现软件系统的多任务运行,同时还能支持软件系统进行自我检测与修复,从而有效保护好计算机的储存区域。

1.2应用原理

一般来讲,嵌入式实时软件的运用主要是针对亟待处置的目标软件,利用实时处理技术与计算机先进技术,准确树立起CORBA应用模型。嵌入式实时软件运用在计算机软件设计过程中,能够给远程调控系统提供更为多元化的设计服务,并以此改良计算机软件的设计方式,提升各个软件系统的可靠性、统一性与实用性。比如,在开展CORBA拓展软件设计时,合理运用这种实时软件,能够优化设计方式与运算方式,为软件设计提供大力支撑,进而确保整个软件系统能顺利投入使用。

2嵌入式实时软件的设计要点与研发过程

2.1设计要点

在软件设计时融入嵌入式实时软件的运用,必须遵守相关设计要点,尽量规避操作过程中容易产生的失误。比如,在进行计算机软件构造设计时,工作人员要确保软件部分及硬件部分能够妥善结合,不能使二者分开。这样一来可以弥补传统软件在设计过程中中经常出现的漏洞,例如对硬件过于依附等,同时还能提升相关软件系统的稳定性与实用性。此外,该软件的科学运用,还能够更好地完成软件参数的初始化以及数值构造的格式化,从而节省下更多人力资源,使电脑中相应的软件功能得以更全面地发挥。

2.2研发过程

计算机软件运用这类实时软件进行研发,其流程必然具有一定简便性和优越性。一般说来,使用这种实时软件辅助设计电脑软件,主要是由设计工作人员根据实际需求展开分析,并以此为基础生成软件代码,然后步入精确设计环节。当上述步骤完成之后,再实施对应的软件检测,最后结束设计流程。这种研发过程较为简洁方便,可以提高软件的整体设计质量与效率,使计算机软件具有更好的稳定性。

3计算机软件设计中嵌入式实时软件的应用方法

3.1任务分配

嵌入式实时软件拥有多种功效,可以通过RTOS微内核完成任务管理、任务调控、间接通讯、任务同步更新、资源管理和共享等多项工作。所以,计算机软件运用程序的工具就是嵌入式RTOS微内核。将该软件作为基本运用设备,能够科学分配各项电脑软件系统任务,使之变成数个相互独立的任务体,从而全面协调好软件运作系统,并对RTOS模型实施深入优化,让软件设计过程变得更为简单、便利。在分配任务的过程中,要针对数据转换实施全面解析和探索,确定好数据转换与行使的次序,再实现任务分配。在开展这一步工作时,必须充分考虑如下两个层面:第一,结合系统内置功能。即把电脑软件的平行任务分成周期性任务、异步与同步任务、运用调控任务、用户端口连接任务等,并保证在同一时间内整合好全部系统功能和正在运行的任务,实现计算机资源共享。第二,要合理运用程序咨询及截断的方法,有效启动软件系统中包含的I/O事件,以便充分满足新型电脑软件系统的各种需求。

3.2组织任务,储存映像布局

在分配好计算机软件系统的独立性任务以后,数据转换格式与各项任务之间的联系会在一定程度上影响到任务组织的形式。换句话说,就是计算机操作系统可以决定任务的组织形式与管理效果。 在软件设计中加入嵌入式实时软件的运用,能够把相关程序储存在ROM或是FLASH当中,以便进一步优化计算机软件的系统分布和构造,进而确保整个系统可以顺利运行。储存映像布局与储存器的合理运用,属于计算机软件系统分布的关键性因素。如果要实现这一任务,就要把程序命令从计算机物理地址内提取出来,然后把执行命令的代码放到物理地址中。

3.3运用实时性进行任务调度

嵌入式实时软件具有一定实时性,而这种性质又可分成硬实时性与软实时性这两类。在此之中,软实时性能够包容一定程度的时间推延。因此,可以根据调度模式的优先级数,尽量挑选更为适当的方式,实现计算机软件系统中的任务调度。假设软件系统的优先级数拥有相对更多的任务内核,则需要针对任务的紧急性质,适度提升程序的优先级数,以便更科学地分配系统任务,缩减回应时长,提升任务设计的操作效率。

4结语

在设计计算机软件时妥善运用好嵌入式实时软件,可以提升计算机和使用环境之间的交流度,因而具有较好的可控性、灵活性与可操作性,在提高计算机运作速度的同时还能提高软件质量,在实际测试中也收获了理想的实践成果。所以,工作人员在开发计算机软件时,必须掌握嵌入式实时软件的应用方法,全面提升设计软件的总体水平。

摘要:当前国内计算机行业逐渐发展并完善,各种先进的计算机软件也随之涌现出来。在众多软件设计过程中,嵌入式实时软件获得了较为广泛的运用。本文首先介绍了嵌入式实时软件的特点与应用原理,然后分析了这类软件的设计要点与研发过程,最后提出了计算机软件设计过程中加入嵌入式实时软件的运用方法,以期能够促进计算机行业的进一步发展。

关键词:计算机软件,设计,嵌入式,实时软件,应用

参考文献

[1]马宇驰.计算机软件设计中嵌入式实时软件的应用探析[J].信息通信,2014,No.13604:104.

[2]郝颖.嵌入式实时软件在计算机软件设计中的探究试论[J].信息与电脑(理论版),2015,No.33208:23+26.

上一篇:起泡剂性能论文下一篇:煤矿企业的安全文化