1、第五章 智能仪器软件设计软件设计方法概述基于裸机的软件设计基于操作系统的软件设计软件测试智能仪器仪表已不再是简单的硬件实体,而是硬件、软件相结合,软件决定仪器智能高低的新型仪器。(选择性学习)智能仪器中软件的主要功能u采集信息u与外界对话u记忆信息u处理信息u控制功能自测试自补偿自适应自校正自学习第一节 软件设计方法概述软件危机与软件工程软件工程开发模式软件开发的三个阶段模块化与结构化程序设计面向对象程序设计组件式设计1.软件危机与软件工程u 软件危机的出现u 软件工程的定义运用系统的、规范的和可定量的方法,来开发、运行和维护软件。2.软件工程开发模式n 瀑布式模型系统需求分析系统需求分析软件
2、需求分析软件需求分析设设 计计编编 码码调调 试试维维 护护3.软件开发三阶段u定义阶段 系统分析 软件项目计划 需求分析l 开发阶段 软件设计 编码 测试u维护阶段改正适应提高4.结构化与模块化程序设计u结构化程序设计三种基本的程序结构顺序结构选择结构循环结构5.面向对象的程序设计u基本概念对象消息类继承性u程序设计准则模块化抽象信息隐藏弱耦合可重用强内聚第二节 基于裸机的软件设计1.设计步骤2.程序流程图与子程序设计3.系统监控程序设计4.常用功能模块的设计u 没有操作系统u 实时性和可靠性与设计人员的水平密切相关u 适用于功能较为简单的中小型应用系统。1.设计步骤编写设计任务书设计硬件任
3、务分析数据类型和数据结构规划资源分配编程调试2.程序流程图与子程序设计u程序流程图,分级设计 先整体,后局部 先粗后细,逐步细化u子程序设计 应采用模块化结构化的程序设计方法程序流程图与子程序设计实例 有一数据采集系统,将采集到的批数据存放在片外RAM中,数据类型为双字节十六进制正整数,存放格式为顺序存放,高字节在前(低地址),低字节在后(高地址)。数据块的首址已知,数据总个数(不超过256个)也已知。现在需要设计个程序,计算下列公式的值:%100)(11112niiXXnXV%程序流程图与子程序设计实例%第一张程序流程图第一张程序流程图开开 始始求求X求求21()niiXX求求11n 开开
4、平平 方方求求 V V结结 束束初始化,初始化,累加和累加和SUM=0SUM=0,数据指针数据指针 i=1i=1,计数器计数器 m=nm=nSUM=SUM+XSUM=SUM+Xi ii=i+1i=i+1,m=m-1m=m-1m=0?m=0?nSUMX A AA A初始化初始化,SUM=0SUM=0,1122mmiiSUMSUMXXiiiiiiY YN Nm=0?m=0?U=SUM/n-1U=SUM/n-1N NY YB BB B调开平方子程序调开平方子程序US XSP V=100PV=100P调用调用HBCDHBCD子程序子程序转换转换BCDBCD码码结束结束开开 始始3.系统监控程序设计u监
5、控程序的任务控制系统按预定操作方式运转的程序。它完成人机对话和远程控制等功能,使系统按操作者的意图或遥控命令来完成指定的作业。它是系统程序的框架。u监控程序的结构 作业顺序调度型 作业优先调度型 键码分析作业调度型 监控程序常用功能模块的设计自检模块初始化模块时钟模块通信模块信息采集模块数据处理模块控制决策模块显示模块第三节 基于操作系统的软件设计1.嵌入式操作系统2.嵌入式软件开发方法3.常用开发工具及开发环境1.嵌入式操作系统l 随着嵌入式系统复杂性的增加,操作系统显得越来越重要。因此,必须对复杂的嵌入式软件系统进行合理的利用。l 嵌入式操作系统的分类 商用系统 专用系统 开放系统嵌入式操
6、作系统-体系结构2.嵌入式软件开发方法l 增量式迭代开发模型 2.嵌入式软件开发方法u崩溃与烧制uROM监控程序uROM仿真器u在线仿真器ICEu片上调试OCD 包括BDM和JTAGu模拟器 嵌 入 式 应 用 程 序 开 发 过 程嵌入式应用程序的调试3.嵌入式程序开发工具及开发环境交叉开发系统交叉开发系统第四节 软件测试u软件测试就是在软件投入运行前,对软件需求分析,设计规格说明和编码的最终复查,是软件质量保证的关键步骤。u定义1:软件测试是为了发现错误而执行程序的过程。u定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。通用软件测试方法通用软件测试方法