智能仪器软件设计
电子科学与工程学院
2004年 6月
主要内容
? 软件设计方法概述
? 基于裸机的软件设计
? 基于操作系统的软件设计
? 软件测试
智能仪器仪表已不再是简单
的硬件实体,而是硬件、软
件相结合,软件决定仪器智
能高低的新型仪器。
智能仪器中软件的主要功能
? 采集信息
? 与外界对话
? 记忆信息
? 处理信息
? 控制功能
? 自我测试
? 自补偿自适应 /自校正自学习
第一节 软件设计方法概述
? 软件危机与软件工程
? 软件工程开发模式
? 软件开发的三个阶段
? 模块化与结构化程序设计
? 面向对象程序设计
软件危机与软件工程
? 软件危机的出现
? 软件工程的定义
运用系统的、规范的和可定量的方法来
开发、运行和维护软件。,
软件工程开发模式
?瀑布式模型
系统需求分析
软件需求分析
设 计
编 码
调 试
维 护
软件工程开发模式
?瀑布式模型
系统需求分析
软件需求分析
设 计
编 码
调 试
维 护
软件工程开发模式
?瀑布式模型
系统需求分析
软件需求分析
设 计
编 码
调 试
维 护
? 四代技术 (4GT)
? 面向对象生存期模型
? 过程开发模型 (混合模型 )
软件工程开发模式
?其他开发模型
软件开发三阶段
?定义阶段
?系统分析
?软件项目计划
?需求分析
软件开发三阶段
?开发阶段
?软件设计
?编码
?测试
软件开发三阶段
?维护阶段
?改正
?适应
?提高
模块化与结构化程序设计
?模块化程序设计
?自底向上模块化程序设计
?自顶向下模块化程序设计
模块化与结构化程序设计
?结构化程序设计
三种基本的控制结构
?顺序结构
?选择结构
?循环结构
面向对象的程序设计
?基本概念
?对象
?消息
?类
?继承性
面向对象的程序设计
?面向对象程序设计准则
?模块化
?抽象
?信息隐藏
?弱耦合
?可重用
?强内聚
第二节 基于裸机的软件设计
? 设计步骤
? 程序流程图与子程序设计
? 系统监控程序设计
? 常用功能模块的设计
基于裸机的软件设计 是指以空白
的微处理器 /控制器为基础,完成
全部的软件设计,没有将系统软
件和应用软件分开处理,其实时
性和可靠性与设计人员的水平密
切相关,适用于功能较为简单的
中小型应用系统。
设计步骤
? 编写设计任务书
? 设计硬件
? 任务分析
? 数据类型和数据结构规划
? 资源分配
? 编程调试
程序流程图与子程序设计
? 程序流程图的画法
先粗后细,逐步细化
程序流程图与子程序设计
? 子程序设计
应采用模块化,结构化的
程序设计方法
系统监控程序设计
? 监控程序的任务
系统监控程序是控制系统按预定操作方
式运转的程序。它完成人机对活和远程
控制等功能,使系统按操作者的意图或
遥控命令来完成指定的作业。它是系统
程序的框架。
系统监控程序设计
? 监控程序的结构
? 作业顺序调度型
? 作业优先调度型
? 键码分析作业调度型
常用功能模块的设计
自检模块
初始化模块
时钟模块
通信模块
信息采集模块
数据处理模块
控制决策模块
显示模块
第三节 基于操作系统的软件设计
? 嵌入式操作系统
? 嵌入式软件开发方法
? 常用开发工具及开发环境
嵌入式操作系统
? 许多简单的嵌入式系统并不需要嵌入式
操作系统 (如单片机控制 )。但是,随着
嵌入式系统复杂性的增加,操作系统显
得越来越重要。因此,必须对复杂的嵌
入式软件系统进行合理的控制。
嵌入式操作系统
? 嵌入式操作系统的分类
? 商用系统
? 专用系统
? 开放系统
嵌入式操作系统
? 嵌入式操作系统的体系结构
嵌入式软件开发
? 增量式迭代开发模型
嵌
入
式
应
用
程
序
开
发
过程
嵌入式应用程序的调试
嵌入式程序开发工具及开发环境
交叉开发系统
开发方法
? 崩溃与烧制
? ROM监控程序
? ROM仿真器
? 在线仿真器 [ICE]
? 片上调试 [OCD] 包括 BDM和 JTAG
? 模拟器
第四节 软件测试
? 通用软件测试方法
? 嵌入式软件测试
? CodeTEST嵌入式软件测试系统简介
? 软件测试就是在软件投入运行前,
对软件需求分析,设计规格说明和
编码的最终复查,是软件质量保证
的关键步骤。
? 定义 1:软件测试是为了发现错误而执行
程序的过程。
? 定义 2:软件测试是根据软件开发各阶段
的规格说明和程序的内部结构而精心设
计一批测试用例 (即输入数据及其预期的
输出结果 ),并利用这些测试用例去运行
程序,以发现程序错误的过程。
通用软件测试方法
测 试 结果分析 改正错误
可靠性分析
软件配置
测试
配置
测试工具
测试结果
回归测试
错误 改正的软件
预测的
可靠性
预期结果
电子科学与工程学院
2004年 6月
主要内容
? 软件设计方法概述
? 基于裸机的软件设计
? 基于操作系统的软件设计
? 软件测试
智能仪器仪表已不再是简单
的硬件实体,而是硬件、软
件相结合,软件决定仪器智
能高低的新型仪器。
智能仪器中软件的主要功能
? 采集信息
? 与外界对话
? 记忆信息
? 处理信息
? 控制功能
? 自我测试
? 自补偿自适应 /自校正自学习
第一节 软件设计方法概述
? 软件危机与软件工程
? 软件工程开发模式
? 软件开发的三个阶段
? 模块化与结构化程序设计
? 面向对象程序设计
软件危机与软件工程
? 软件危机的出现
? 软件工程的定义
运用系统的、规范的和可定量的方法来
开发、运行和维护软件。,
软件工程开发模式
?瀑布式模型
系统需求分析
软件需求分析
设 计
编 码
调 试
维 护
软件工程开发模式
?瀑布式模型
系统需求分析
软件需求分析
设 计
编 码
调 试
维 护
软件工程开发模式
?瀑布式模型
系统需求分析
软件需求分析
设 计
编 码
调 试
维 护
? 四代技术 (4GT)
? 面向对象生存期模型
? 过程开发模型 (混合模型 )
软件工程开发模式
?其他开发模型
软件开发三阶段
?定义阶段
?系统分析
?软件项目计划
?需求分析
软件开发三阶段
?开发阶段
?软件设计
?编码
?测试
软件开发三阶段
?维护阶段
?改正
?适应
?提高
模块化与结构化程序设计
?模块化程序设计
?自底向上模块化程序设计
?自顶向下模块化程序设计
模块化与结构化程序设计
?结构化程序设计
三种基本的控制结构
?顺序结构
?选择结构
?循环结构
面向对象的程序设计
?基本概念
?对象
?消息
?类
?继承性
面向对象的程序设计
?面向对象程序设计准则
?模块化
?抽象
?信息隐藏
?弱耦合
?可重用
?强内聚
第二节 基于裸机的软件设计
? 设计步骤
? 程序流程图与子程序设计
? 系统监控程序设计
? 常用功能模块的设计
基于裸机的软件设计 是指以空白
的微处理器 /控制器为基础,完成
全部的软件设计,没有将系统软
件和应用软件分开处理,其实时
性和可靠性与设计人员的水平密
切相关,适用于功能较为简单的
中小型应用系统。
设计步骤
? 编写设计任务书
? 设计硬件
? 任务分析
? 数据类型和数据结构规划
? 资源分配
? 编程调试
程序流程图与子程序设计
? 程序流程图的画法
先粗后细,逐步细化
程序流程图与子程序设计
? 子程序设计
应采用模块化,结构化的
程序设计方法
系统监控程序设计
? 监控程序的任务
系统监控程序是控制系统按预定操作方
式运转的程序。它完成人机对活和远程
控制等功能,使系统按操作者的意图或
遥控命令来完成指定的作业。它是系统
程序的框架。
系统监控程序设计
? 监控程序的结构
? 作业顺序调度型
? 作业优先调度型
? 键码分析作业调度型
常用功能模块的设计
自检模块
初始化模块
时钟模块
通信模块
信息采集模块
数据处理模块
控制决策模块
显示模块
第三节 基于操作系统的软件设计
? 嵌入式操作系统
? 嵌入式软件开发方法
? 常用开发工具及开发环境
嵌入式操作系统
? 许多简单的嵌入式系统并不需要嵌入式
操作系统 (如单片机控制 )。但是,随着
嵌入式系统复杂性的增加,操作系统显
得越来越重要。因此,必须对复杂的嵌
入式软件系统进行合理的控制。
嵌入式操作系统
? 嵌入式操作系统的分类
? 商用系统
? 专用系统
? 开放系统
嵌入式操作系统
? 嵌入式操作系统的体系结构
嵌入式软件开发
? 增量式迭代开发模型
嵌
入
式
应
用
程
序
开
发
过程
嵌入式应用程序的调试
嵌入式程序开发工具及开发环境
交叉开发系统
开发方法
? 崩溃与烧制
? ROM监控程序
? ROM仿真器
? 在线仿真器 [ICE]
? 片上调试 [OCD] 包括 BDM和 JTAG
? 模拟器
第四节 软件测试
? 通用软件测试方法
? 嵌入式软件测试
? CodeTEST嵌入式软件测试系统简介
? 软件测试就是在软件投入运行前,
对软件需求分析,设计规格说明和
编码的最终复查,是软件质量保证
的关键步骤。
? 定义 1:软件测试是为了发现错误而执行
程序的过程。
? 定义 2:软件测试是根据软件开发各阶段
的规格说明和程序的内部结构而精心设
计一批测试用例 (即输入数据及其预期的
输出结果 ),并利用这些测试用例去运行
程序,以发现程序错误的过程。
通用软件测试方法
测 试 结果分析 改正错误
可靠性分析
软件配置
测试
配置
测试工具
测试结果
回归测试
错误 改正的软件
预测的
可靠性
预期结果