第二章 嵌入式系统的设计方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统描述
软硬件划分
协同综合
软件综合
接口综合
硬件综合
协同仿真/验证
系统集成与实现
18
设计流程总体上可分为:
系统描述
软硬件划分 协同综合 协同仿真与验证 系统集成
(1)系统描述 采用一种或多种系统级描述语言对所需设计的嵌入式 系统的功能和性能进行全面的描述,是建立系统软硬件模 型的过程。
第二章
本章知识点
嵌入式系统的设计方法
单片机系统
嵌入式处理器系统 传统的嵌入式系统开发方法 嵌入式系统描述与软硬件划分 嵌入式系统协同综合与协同仿真
嵌入式软件的测试方法
嵌入式软件的测试工具 嵌入式系统的测试策略
1 1
本讲导学
嵌入式系统的一般设计流程
传统的嵌入式系统设计方法
嵌入式系统的软硬件协同设计方法
目标机
JTAG仿真器
嵌入式处理器系统的开发方式 JTAG(Joint Test Action Group;联合测试工作组)是一种国际
标准测试协议。标准的JTAG接口是4线:TMS、TCK、TDI、
TDO,分别为模式选择、时钟、数据输入和数据输出线
8
利用宿主机开发目标机软件 通过交叉编译环境生产目标代码和可执行 文件 通过串口/USB/以太网等方式将软件下载到 目标机 利用交叉调试器在监控程序或实时操作系 统支持下进行实时分析和调度 将正确程序下载固化到目标机
2
单片机系统 :
又称单片微控制器,它不是完成某一个逻辑功能的芯片, 而是把一个计算机系统集成到一个芯片上。
由运算器、控制器、存储器、输入输出设备构成,相当 于一台缺少了外围设备微型的计算机(最小系统 一块芯片就成了一台计算机。 体积小、质量轻、价格便宜、为学习、应用和开发提供 了便利条件。 最早被用在工业控制领域。
性,因此系统仿真的有效性是有限的。
23
(1)软硬件协同设计采用统一的工具描述,可合理
划分系统软硬件,分配系统功能,在性能、成本、
功耗等方面进行权衡折衷,获取更优化的设计
(2)软硬件协同设计方法采用并行设计和协同设计
的思想,提高了设计效率,缩短了设计周期
(3)在系统级设计中,对软硬件部分使用统一描述
10
(1)嵌入式处理器的选型
处理器的选型直接影响存储器、外设的选择。一般从以 下几个因素考虑: 够用 适用 成本 功耗 软件开发工具 是否内置调试工具 是否提供评估板
11
(2)操作系统的选择
从八十年代起,国际上就有一些IT组织、公司,开始 致力于嵌入式操作系统的研发,现已涌现了一批优秀的操作 系统。如何从众多的嵌入式操作系统中选取合适的操作系统? 可以考查以下几个方面: 操作系统的移植—硬件平台适应性 操作系统的内存要求—最小内存,最大内存 操作系统的实时性—应用要求硬实时还是软实时(WindowsCE) 支持的开发工具—是否支持第三方开发工具 操作系统的可裁剪性—可减少EOS对存储占用 开发人员是否熟悉此操作系统及其提供的API 操作系统是否提供硬件的驱动程序,如网卡等
(3)协同综合
软硬件协同综合是根据系统描述和软硬件划
分的结果,在已有的设计规则和既定的设计目标
前提下,决定系统中软件和硬件部分以及其接口
的具体实现方法,并将其集成。
明确将采用哪些硬件模块、软件模块、软硬件
模块之间的通信方法及这些模块的具体实现
22
(4)协同仿真与验证
软硬件协同仿真的目的是在硬件生产出来前,通过仿
31
白盒测试的主要方法:
基本路径测试
设计足够多的测试用例,运行所测程序,要覆盖 程序中所有可能的路径。这是最强的覆盖准则
但在路径数目很大时,真正做到完全覆盖是很困 难的,必须把覆盖路径数目压缩到一定限度。
32
(2)黑盒测试
黑盒测试的概念
黑盒测试又称功能测试、数据驱动测试或基于 规格说明书的测试,是一种从用户观点出发的 测试。
25
本讲导学
嵌入式软件的测试方法 嵌入式软件的测试工具 嵌入式系统的测试策略
26
通用系统中的软件测试通常分为:单元/模块
测试,集成测试,外部功能测试,回归测试,系
统测试,验收测试,安装测试。
嵌入式系统测试也叫交叉测试(crosstest),它与PC机的软件测试有相似之处。
目前,在嵌入式系统设计中软件正越来越多
否
测试通过
是
开发结束
14
传统设计方法存在的缺陷 传统的嵌入式系统设计方法虽然简单,但存在一
些不可避免的缺陷:
设计方法缺乏统一的软硬件协同表示方法,软硬件
划分完全由设计者凭经验完成,无法从系统级验证划
分的合理性,且不易发现软硬件之间存在的接口问题
实际的设计过程中,常采用“硬件优先的原则”,
因此软件的测试必须在硬件全部完成之后才能进行,
3
单片机系统 :
单片机系统主要用于实现相对简单的控制,因 此系统核心部件集成在一块芯片——单片机上, 再在单片机的外围加入一些接口电路即可。 单片机系统设计相对比较简单,软件部分不需 要嵌入式操作系统的支持,只需采用汇编语言 编写针对特定应用的程序即可。
4
用户需求
选择处理器 设计硬件平台
测试人员把被测程序当作一个黑盒子
33
黑盒测试
黑盒测试主要测试的错误类型有:
①不正确或遗漏的功能;
②接口、界面错误;
③性能错误;
④数据结构或外部数据访问错误;
⑤初始化或终止条件错误等等。
34
黑盒测试
黑盒测试用于回答以下问题:
如何测试功能的有效性? 何种类型的输入会产生好的测试用例? 系统是否对特定的输入值尤其敏感? 如何分隔数据类的边界? 系统能够承受何种数据率和数据量? 特定类型的数据组合会对系统产生何种影响?
6
用户需求
选择嵌入式处理 器及硬件平台
嵌 入 式 处 理 器 系 统 开 发 流 程
选择合适的 嵌入式操作系统
基于操作系统 开发应用程序
否
应用程序 测试通过 是 整个系统测试 系统开发结束
7
嵌入式处理器系统开发方式
嵌入式处理器系统通常采用“宿主机/目标机”的开发方式。
宿主机
RS232 JTAG
设计需要
16
基本思想:从一个给定的系统任务描述着手,通过 有效地分析系统任务和所需的资源,采用一系列变 换方法并遵循特定的准则自动生成符合系统功能要
求的,符合实现代价约束的硬件和软件架构
上述设计过程中始终将硬件与软件同时考虑,在
硬件和软件中权衡,使系统的整体性能更优。
17
嵌入式系统的软硬件协同设计流程
嵌入式处理器系统的开发过程一般包括以下几个步骤: 源代码编写:编写源C/C++及汇编程序 程序编译:通过专用编译器编译程序 软件仿真调试:在SDK中仿真软件运行情况 程序下载:通过JTAG/USB/UART等方式下载到目标机 软硬件测试、调试:通过JTAG等方式联合调试程序
下载固化:程序无误,下载到目标板
20
(2)软硬件划分 软硬件功能划分就是要确定哪些系统功能由 硬件实现,哪些功能由软件实现。 从理论上讲,每个应用系统都存在一个适合 于该软硬件功能的最佳组合,但如何从系统需求 出发,依据一定的指导原则和分配算法对硬件/软
件功能进行合理划分,从而使系统的整体性能达
到最佳,是软硬件划分的目标所在。
21
地取代硬件,以降低系统成本,获得更大的灵活
性,这就需要使用更好的测试方法和工具进行嵌
入式实时软件的测试。
27
(1)白盒测试
白盒测试也称结构测试或逻辑驱动测试,是一种测试用
例设计方法,它从程序的控制结构导出测试用例
白盒测试使用被测单元内部如何工作的信息,允许测试
人员对程序内部逻辑结构及有关信息来设计和选择测试
29
白盒测试的主要方法: 逻辑驱动测试
语句覆盖:语句覆盖就是设计若干个测试用例,运 行被测试程序,使得每一条可执行语句至少执行一 次; 判定覆盖(也称为分支覆盖):设计若干个测试用 例,运行所测程序,使程序中每个判断的取真分支 和取假分支至少执行一次;
条件覆盖:设计足够多的测试用例,运行所测程序, 使程序中每个判断的每个条件的每个可能取值至少 执行一次;
语言和工具进行集成开发,具有跨越软硬件界限进
行系统优化的能力
24
(4)支持多领域专家的协同开发。它的核心思想
是沟通软件设计和硬件设计,避免系统中关系密
切的两部分设计过早独立
同传统设计方法相比,软硬件协同设计提高了
设计抽象的层次,拓展了设计的覆盖范围,采用
软硬件协同设计技术可以使嵌入式系统设计更好
和更快。
19
(1)系统描述
系统建模可以由设计者用非正式语言,甚至是自 然语言手工完成,但非正式的容易导致系统描述 不准确,而选用合适的建模语言将对设计起到事 半功倍的效果。
UML(Unified Modeling Language)语言是一种 功能强大的可视化建模语言。它将模型中的信息 用标准图形元素直观地显示,使具有不同技术背 景的开发人员和设计师可以较好地交流。
真的手段验证软硬件模块集成方面的问题。 协同仿真验证是检验系统设计正确性的过程。它对设 计结果的正确性进行评估,以避免在系统实现过程中发现 问题再进行反复修改。
由于系统仿真验证的过程中,模拟的工作环境与实际
使用环境相差甚远,软硬件之间的相互作用方式及作用效
果也就不同,这就难以保证系统在真实环境下工作的可靠
单 片 机 系 统 的 开 发 流 程
根据硬件平台 编写软件
存在硬件 问题
否 否
是
修改硬件平台
测试软件 通过
是
整个系统测试
系统开发结束
5
嵌入式处理器系统:
嵌入式处理器系统往往包含CPU、内存和丰富的外 部接口,其开发过程类似在PC机上开发应用程序。 开发流程的第一步是选择嵌入式处理器和硬件平台。 软件部分一般包含操作系统,开发人员基于此编写 相应的应用程序即可,这可大大地简化开发过程, 提高系统的稳定性。
用例,对程序的逻辑路径进行测试。
基于一个应用代码的内部逻辑知识,测试是基于覆盖全 部代码、分支、路径、条件。
28
白盒测试的主要目的:
保证一个模块中的所有独立路径至少被执行一次; 对所有的逻辑值均需要测试真、假两个分支; 在上下边界及可操作范围内运行所有循环; 检查内部数据结构以确保其有效性。
35
黑盒测试
黑盒测试用例设计方法
等价类划分法 边界值分析法 错误推测法 因果图法 判定表驱动法 正交试验设计法 功能图法 场景法
36
(3)目标环境测试和宿主环境测试
在嵌入式软件测试中,常常要在基于目标的测 试和基于宿主的测试之间作出折衷。 基于目标的测试消耗较多的经费和时间,而基 于宿主的测试代价较小,目前的趋势是把更多的测试 转移到宿主环境中进行 在宿主环境中,可以进行逻辑或界面的测试、以 及与硬件无关的测试。 在目标环境中,则进行与定时问题有关的白盒测 试、中断测试、硬件接口测试。
12
(3)编程语言的选取
人们在选择编程语言时往往具有很大的随意性。对价格、
获取方便性等因素考虑较多,而对语言本身的技术因素考虑
较少。 目前应用广泛几种高级语言: Ada C/C++
Modula-2
JAVA Objective C
13
需求分析 总体设计 硬件子系统 设计 系统集成、 测试、验证
否
软件子系统 设计
30
逻辑驱动测试
百度文库
判定/条件覆盖:设计足够多的测试用例,运行所测程
序,使程序中每个判断的每个条件的所有可能取值至
少执行一次,并且每个可能的判断结果也至少执行一
次,换句话说,即是要求各个判断的所有可能的条件 取值组合至少执行一次
条件组合覆盖:设计足够多的测试用例,运行所测程 序,使程序中每个判断的所有可能的条件取值组合至 少执行一次
37
(1)内存分析工具
内存分析工具用来处理在动态内存分配中存在的缺陷
两类内存分析工具——软件和硬件的
基于软件的内存分析工具可能会对代码的性能造成很
大影响,从而严重影响实时操作
基于硬件的内存分析工具价格昂贵,而且只能在工具
所限定的运行环境中使用
38
(2)性能分析工具
性能分析工具会提供有关的数据,说明执行时间 是如何消耗的,是什么时候消耗的,以及每个例 程所用的时间
这样设计周期可能很长。
15
传统设计方法存在的缺陷
由于硬件设计在粗略估计软件任务需求的情况下 进行,缺乏对软件构架和实现机制的清晰了解,硬 件设计工作带有一定的盲目性 整个系统的优化由于受设计空间的限制,只能改 善硬件和软件各自的性能,不可能对系统做出较好
的综合优化,难以适应现代复杂的、大规模的系统
软硬件划分
协同综合
软件综合
接口综合
硬件综合
协同仿真/验证
系统集成与实现
18
设计流程总体上可分为:
系统描述
软硬件划分 协同综合 协同仿真与验证 系统集成
(1)系统描述 采用一种或多种系统级描述语言对所需设计的嵌入式 系统的功能和性能进行全面的描述,是建立系统软硬件模 型的过程。
第二章
本章知识点
嵌入式系统的设计方法
单片机系统
嵌入式处理器系统 传统的嵌入式系统开发方法 嵌入式系统描述与软硬件划分 嵌入式系统协同综合与协同仿真
嵌入式软件的测试方法
嵌入式软件的测试工具 嵌入式系统的测试策略
1 1
本讲导学
嵌入式系统的一般设计流程
传统的嵌入式系统设计方法
嵌入式系统的软硬件协同设计方法
目标机
JTAG仿真器
嵌入式处理器系统的开发方式 JTAG(Joint Test Action Group;联合测试工作组)是一种国际
标准测试协议。标准的JTAG接口是4线:TMS、TCK、TDI、
TDO,分别为模式选择、时钟、数据输入和数据输出线
8
利用宿主机开发目标机软件 通过交叉编译环境生产目标代码和可执行 文件 通过串口/USB/以太网等方式将软件下载到 目标机 利用交叉调试器在监控程序或实时操作系 统支持下进行实时分析和调度 将正确程序下载固化到目标机
2
单片机系统 :
又称单片微控制器,它不是完成某一个逻辑功能的芯片, 而是把一个计算机系统集成到一个芯片上。
由运算器、控制器、存储器、输入输出设备构成,相当 于一台缺少了外围设备微型的计算机(最小系统 一块芯片就成了一台计算机。 体积小、质量轻、价格便宜、为学习、应用和开发提供 了便利条件。 最早被用在工业控制领域。
性,因此系统仿真的有效性是有限的。
23
(1)软硬件协同设计采用统一的工具描述,可合理
划分系统软硬件,分配系统功能,在性能、成本、
功耗等方面进行权衡折衷,获取更优化的设计
(2)软硬件协同设计方法采用并行设计和协同设计
的思想,提高了设计效率,缩短了设计周期
(3)在系统级设计中,对软硬件部分使用统一描述
10
(1)嵌入式处理器的选型
处理器的选型直接影响存储器、外设的选择。一般从以 下几个因素考虑: 够用 适用 成本 功耗 软件开发工具 是否内置调试工具 是否提供评估板
11
(2)操作系统的选择
从八十年代起,国际上就有一些IT组织、公司,开始 致力于嵌入式操作系统的研发,现已涌现了一批优秀的操作 系统。如何从众多的嵌入式操作系统中选取合适的操作系统? 可以考查以下几个方面: 操作系统的移植—硬件平台适应性 操作系统的内存要求—最小内存,最大内存 操作系统的实时性—应用要求硬实时还是软实时(WindowsCE) 支持的开发工具—是否支持第三方开发工具 操作系统的可裁剪性—可减少EOS对存储占用 开发人员是否熟悉此操作系统及其提供的API 操作系统是否提供硬件的驱动程序,如网卡等
(3)协同综合
软硬件协同综合是根据系统描述和软硬件划
分的结果,在已有的设计规则和既定的设计目标
前提下,决定系统中软件和硬件部分以及其接口
的具体实现方法,并将其集成。
明确将采用哪些硬件模块、软件模块、软硬件
模块之间的通信方法及这些模块的具体实现
22
(4)协同仿真与验证
软硬件协同仿真的目的是在硬件生产出来前,通过仿
31
白盒测试的主要方法:
基本路径测试
设计足够多的测试用例,运行所测程序,要覆盖 程序中所有可能的路径。这是最强的覆盖准则
但在路径数目很大时,真正做到完全覆盖是很困 难的,必须把覆盖路径数目压缩到一定限度。
32
(2)黑盒测试
黑盒测试的概念
黑盒测试又称功能测试、数据驱动测试或基于 规格说明书的测试,是一种从用户观点出发的 测试。
25
本讲导学
嵌入式软件的测试方法 嵌入式软件的测试工具 嵌入式系统的测试策略
26
通用系统中的软件测试通常分为:单元/模块
测试,集成测试,外部功能测试,回归测试,系
统测试,验收测试,安装测试。
嵌入式系统测试也叫交叉测试(crosstest),它与PC机的软件测试有相似之处。
目前,在嵌入式系统设计中软件正越来越多
否
测试通过
是
开发结束
14
传统设计方法存在的缺陷 传统的嵌入式系统设计方法虽然简单,但存在一
些不可避免的缺陷:
设计方法缺乏统一的软硬件协同表示方法,软硬件
划分完全由设计者凭经验完成,无法从系统级验证划
分的合理性,且不易发现软硬件之间存在的接口问题
实际的设计过程中,常采用“硬件优先的原则”,
因此软件的测试必须在硬件全部完成之后才能进行,
3
单片机系统 :
单片机系统主要用于实现相对简单的控制,因 此系统核心部件集成在一块芯片——单片机上, 再在单片机的外围加入一些接口电路即可。 单片机系统设计相对比较简单,软件部分不需 要嵌入式操作系统的支持,只需采用汇编语言 编写针对特定应用的程序即可。
4
用户需求
选择处理器 设计硬件平台
测试人员把被测程序当作一个黑盒子
33
黑盒测试
黑盒测试主要测试的错误类型有:
①不正确或遗漏的功能;
②接口、界面错误;
③性能错误;
④数据结构或外部数据访问错误;
⑤初始化或终止条件错误等等。
34
黑盒测试
黑盒测试用于回答以下问题:
如何测试功能的有效性? 何种类型的输入会产生好的测试用例? 系统是否对特定的输入值尤其敏感? 如何分隔数据类的边界? 系统能够承受何种数据率和数据量? 特定类型的数据组合会对系统产生何种影响?
6
用户需求
选择嵌入式处理 器及硬件平台
嵌 入 式 处 理 器 系 统 开 发 流 程
选择合适的 嵌入式操作系统
基于操作系统 开发应用程序
否
应用程序 测试通过 是 整个系统测试 系统开发结束
7
嵌入式处理器系统开发方式
嵌入式处理器系统通常采用“宿主机/目标机”的开发方式。
宿主机
RS232 JTAG
设计需要
16
基本思想:从一个给定的系统任务描述着手,通过 有效地分析系统任务和所需的资源,采用一系列变 换方法并遵循特定的准则自动生成符合系统功能要
求的,符合实现代价约束的硬件和软件架构
上述设计过程中始终将硬件与软件同时考虑,在
硬件和软件中权衡,使系统的整体性能更优。
17
嵌入式系统的软硬件协同设计流程
嵌入式处理器系统的开发过程一般包括以下几个步骤: 源代码编写:编写源C/C++及汇编程序 程序编译:通过专用编译器编译程序 软件仿真调试:在SDK中仿真软件运行情况 程序下载:通过JTAG/USB/UART等方式下载到目标机 软硬件测试、调试:通过JTAG等方式联合调试程序
下载固化:程序无误,下载到目标板
20
(2)软硬件划分 软硬件功能划分就是要确定哪些系统功能由 硬件实现,哪些功能由软件实现。 从理论上讲,每个应用系统都存在一个适合 于该软硬件功能的最佳组合,但如何从系统需求 出发,依据一定的指导原则和分配算法对硬件/软
件功能进行合理划分,从而使系统的整体性能达
到最佳,是软硬件划分的目标所在。
21
地取代硬件,以降低系统成本,获得更大的灵活
性,这就需要使用更好的测试方法和工具进行嵌
入式实时软件的测试。
27
(1)白盒测试
白盒测试也称结构测试或逻辑驱动测试,是一种测试用
例设计方法,它从程序的控制结构导出测试用例
白盒测试使用被测单元内部如何工作的信息,允许测试
人员对程序内部逻辑结构及有关信息来设计和选择测试
29
白盒测试的主要方法: 逻辑驱动测试
语句覆盖:语句覆盖就是设计若干个测试用例,运 行被测试程序,使得每一条可执行语句至少执行一 次; 判定覆盖(也称为分支覆盖):设计若干个测试用 例,运行所测程序,使程序中每个判断的取真分支 和取假分支至少执行一次;
条件覆盖:设计足够多的测试用例,运行所测程序, 使程序中每个判断的每个条件的每个可能取值至少 执行一次;
语言和工具进行集成开发,具有跨越软硬件界限进
行系统优化的能力
24
(4)支持多领域专家的协同开发。它的核心思想
是沟通软件设计和硬件设计,避免系统中关系密
切的两部分设计过早独立
同传统设计方法相比,软硬件协同设计提高了
设计抽象的层次,拓展了设计的覆盖范围,采用
软硬件协同设计技术可以使嵌入式系统设计更好
和更快。
19
(1)系统描述
系统建模可以由设计者用非正式语言,甚至是自 然语言手工完成,但非正式的容易导致系统描述 不准确,而选用合适的建模语言将对设计起到事 半功倍的效果。
UML(Unified Modeling Language)语言是一种 功能强大的可视化建模语言。它将模型中的信息 用标准图形元素直观地显示,使具有不同技术背 景的开发人员和设计师可以较好地交流。
真的手段验证软硬件模块集成方面的问题。 协同仿真验证是检验系统设计正确性的过程。它对设 计结果的正确性进行评估,以避免在系统实现过程中发现 问题再进行反复修改。
由于系统仿真验证的过程中,模拟的工作环境与实际
使用环境相差甚远,软硬件之间的相互作用方式及作用效
果也就不同,这就难以保证系统在真实环境下工作的可靠
单 片 机 系 统 的 开 发 流 程
根据硬件平台 编写软件
存在硬件 问题
否 否
是
修改硬件平台
测试软件 通过
是
整个系统测试
系统开发结束
5
嵌入式处理器系统:
嵌入式处理器系统往往包含CPU、内存和丰富的外 部接口,其开发过程类似在PC机上开发应用程序。 开发流程的第一步是选择嵌入式处理器和硬件平台。 软件部分一般包含操作系统,开发人员基于此编写 相应的应用程序即可,这可大大地简化开发过程, 提高系统的稳定性。
用例,对程序的逻辑路径进行测试。
基于一个应用代码的内部逻辑知识,测试是基于覆盖全 部代码、分支、路径、条件。
28
白盒测试的主要目的:
保证一个模块中的所有独立路径至少被执行一次; 对所有的逻辑值均需要测试真、假两个分支; 在上下边界及可操作范围内运行所有循环; 检查内部数据结构以确保其有效性。
35
黑盒测试
黑盒测试用例设计方法
等价类划分法 边界值分析法 错误推测法 因果图法 判定表驱动法 正交试验设计法 功能图法 场景法
36
(3)目标环境测试和宿主环境测试
在嵌入式软件测试中,常常要在基于目标的测 试和基于宿主的测试之间作出折衷。 基于目标的测试消耗较多的经费和时间,而基 于宿主的测试代价较小,目前的趋势是把更多的测试 转移到宿主环境中进行 在宿主环境中,可以进行逻辑或界面的测试、以 及与硬件无关的测试。 在目标环境中,则进行与定时问题有关的白盒测 试、中断测试、硬件接口测试。
12
(3)编程语言的选取
人们在选择编程语言时往往具有很大的随意性。对价格、
获取方便性等因素考虑较多,而对语言本身的技术因素考虑
较少。 目前应用广泛几种高级语言: Ada C/C++
Modula-2
JAVA Objective C
13
需求分析 总体设计 硬件子系统 设计 系统集成、 测试、验证
否
软件子系统 设计
30
逻辑驱动测试
百度文库
判定/条件覆盖:设计足够多的测试用例,运行所测程
序,使程序中每个判断的每个条件的所有可能取值至
少执行一次,并且每个可能的判断结果也至少执行一
次,换句话说,即是要求各个判断的所有可能的条件 取值组合至少执行一次
条件组合覆盖:设计足够多的测试用例,运行所测程 序,使程序中每个判断的所有可能的条件取值组合至 少执行一次
37
(1)内存分析工具
内存分析工具用来处理在动态内存分配中存在的缺陷
两类内存分析工具——软件和硬件的
基于软件的内存分析工具可能会对代码的性能造成很
大影响,从而严重影响实时操作
基于硬件的内存分析工具价格昂贵,而且只能在工具
所限定的运行环境中使用
38
(2)性能分析工具
性能分析工具会提供有关的数据,说明执行时间 是如何消耗的,是什么时候消耗的,以及每个例 程所用的时间
这样设计周期可能很长。
15
传统设计方法存在的缺陷
由于硬件设计在粗略估计软件任务需求的情况下 进行,缺乏对软件构架和实现机制的清晰了解,硬 件设计工作带有一定的盲目性 整个系统的优化由于受设计空间的限制,只能改 善硬件和软件各自的性能,不可能对系统做出较好
的综合优化,难以适应现代复杂的、大规模的系统