成信工智能仪器设计课件第6章 智能仪器软件设计_第1页
成信工智能仪器设计课件第6章 智能仪器软件设计_第2页
成信工智能仪器设计课件第6章 智能仪器软件设计_第3页
成信工智能仪器设计课件第6章 智能仪器软件设计_第4页
成信工智能仪器设计课件第6章 智能仪器软件设计_第5页
已阅读5页,还剩100页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章智能仪器软件设计主要内容5.1软件概述5.2软件设计方法概述5.3基于裸机的软件设计5.4基于操作系统的软件设计5.5软件测试智能仪器仪表已不再是简单的硬件实体,而是硬件、软件相结合,软件决定仪器智能高低的新型仪器。5.1软件概述一、软件的含义、特点、种类计算机技术的发展;智能仪器的软件从软件生产的个体手工方式,到互助合作的手工方式,到把工程学的基本原理和方法引入到软件设计和生产中的软件工程方法。(1)软件的含义软件的含义:(1)当运行时,能够提供要求功能和性能的指令或计算机程序的集合(2)该程序能够满意地处理信息的数据结构(3)描述程序功能需求以及程序如何操作和使用的文档(2)软件的特点表现方式不同生产方式不同要求不同维护不同(3)软件的种类系统软件应用软件事务处理、实时软件、工程与科学软件、嵌入式软件、个人计算机软件、人工智能软件工具软件可重用软件二、智能仪器中软件的主要功能采集信息与外界对话记忆信息处理信息控制功能自我测试自补偿自适应/自校正自学习5.2软件设计方法概述(一)软件工程开发模式(二)软件开发的三个阶段(三)模块化与结构化程序设计(四)面向对象程序设计(一)软件工程开发模式软件工程包含四个要素

方法、语言、工具、过程。方法是提供如何构造软件的技术;语言用以支持软件的分析、设计与实现;工具为方法与语言提供自动化或半自动化的支持;过程把方法、语言、工具粘接在一起,使软件开发理性化、适时化。生存期模型是系统开发项目总貌的一种描述,生存期模型实现对项目管理的控制和逐步逼近的策略软件工程开发模式(1)瀑布式模型系统需求分析软件需求分析设计编码测试维护软件工程开发模式(2)原型开发模型需求分析快速设计建立原型用户评价原型修改原型生产产品原型模型(快速原型模型)原型范型用户测试运行原型建造/修改原型

听取用户意见采用原型模型的软件生存周期分析定义系统需求生成原型系统设计程序设计编码测试运行和维护原型化含原型化的软件生存期(3)螺旋模型(SpiralModel)采用一种周期性的方法来进行系统开发。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;(3)实施工程:实施软件开发和验证;(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。

螺旋模型完整的螺旋模型图制定计划风险分析客户评估工程实施(4)四代技术(4GT)一系列的软件工具的使用,是第四代技术的特点。这些工具有一个共同的特点:能够使软件工程师们在较高级别上规约软件的某些特征,然后根据开发者的规约自动生成源代码。(一)软件工程开发模式需求分析设计策略用4GT实现测试(5)面向对象生存期模型(6)过程开发模型(混合模型)(二)软件开发三阶段定义阶段系统分析软件项目计划需求分析(二)软件开发三阶段开发阶段软件设计编码测试(二)软件开发三阶段维护阶段改正适应提高(三)模块化与结构化程序设计模块化程序设计

模块化程序设计的出发点是把一个复杂的系统软件,分解成若干个功能模块,每个模块执行单一的功能,并且有单入口单出口结构。自底向上模块化程序设计自顶向下模块化程序设计(三)模块化与结构化程序设计结构化程序设计用三种基本的控制结构就能实现任何单入口、单出口的程序顺序结构选择结构循环结构结构化程序设计是一种程序设计技术,采用自顶向下逐步求精的设计方法和单入口单出口的控制结构(四)面向对象的程序设计方法基本概念对象:一个封装了数据和操作的实体消息:请求对象执行某一操作或回答某些信息的要求成为消息类:具有共同的属性、共同的操作的对象的集合。单个对象是对应类的一个成员,或称实例继承性:软件的可重用性通过继承类中的属性和操作实现。

继承和封装是面向对象的两个特征。面向对象的程序设计面向对象程序设计准则模块化:对象就是模块抽象:过程和数据抽象信息隐藏:类结构分离了接口与实现弱耦合:一个软件结构内不同模块之间互连的紧密程度(交互耦合:消息连接;减少消息连接的消息数。继承耦合:继承是一般类与特殊化类之间耦合的一种形式)可重用强内聚:(服务内聚;类内聚;一般-特殊内聚)面向对象的方法学面向对象的技术的基本观点客观世界是由对象组成的。具有相同的数据和相同的操作的对象可以归并为一类,对象是类的一个实例。类可以产生对象。类可以派生子类,子类继承父类的特性。对象之间通过消息传递相互联系。面向对象的方法学面向对象的软件工程方法面向对象的分析(OOA)面向对象的设计(OOD)面向对象的编程(OOP)面向对象的测试(OOT)面向对象的维护(OOSM)面向对象的方法学面向对象的方法学面向对象技术的应用面向对象的方法学用稳定把不稳定包装起来五、软件文档开发文档功能要求、需求分析、技术分析、系统分析、数据库、功能函数、界面文档、编译手册、QA、项目总结技术文档()第三节基于裸机的软件设计一、设计步骤二、程序流程图与子程序设计三、系统监控程序设计四、常用功能模块的设计基于裸机的软件设计是指以空白的微处理器/控制器为基础,完成全部的软件设计,没有将系统软件和应用软件分开处理,其实时性和可靠性与设计人员的水平密切相关,适用于功能较为简单的中小型应用系统。一、设计步骤编写设计任务书设计硬件任务分析数据类型和数据结构规划资源分配编程调试二、程序流程图与子程序设计程序流程图的画法

先粗后细,逐步细化

只考虑逻辑结构和算法,不必或少考虑具体的指令程序流程图编写的实例有一数据采集系统,将采集到的一批数据存,放在片外RAM中,数据类型为双字节十六进制正整数,存放格式为顺序存放,高字节在前,低字节在后。数据块的首址已知,数据总个数也已知。计算:其中n为数据总个数,Xi为某个数据值,最后结果用BCD码表示

(1)进行最原始的规划,画第1张程序流程图(2)将第1张流程图的各个子任务进行细化(3)画资源分配流程图(二)子程序设计子程序设计应采用模块化,结构化的程序设计方法三、系统监控程序设计(1)监控程序的任务

系统监控程序是控制系统按预定操作方式运转的程序。它完成人机对活和远程控制等功能,使系统按操作者的意图或遥控命令来完成指定的作业。它是系统程序的框架。(1)监控程序的任务监控程序完成解释键盘、调度执行(显示)模块的任务完成系统自校、初始化、处理键盘、处理接口命令、处理条件触发并完成显示(2)监控程序的结构作业顺序调度型:系统运行后按一个预定顺序依次执行一系列的作业,循环(包括接力、定时、外部信息触发方式)作业优先调度型键码分析作业调度型实例:接地电阻测试仪器(键码分析作业)voidmain(){//定义变量保存用户按键值unsignedcharmyselect;//板级初始化,初始化CPU各端口及外设board_init();//初始化LCDlcd_init();lcd_clear_screen();//初始化AD7705Ad7705_hwinit();//报警指示灯闪两下,蜂呤器响闪两下LED_WARN_ON();Delay_ms(200);LED_WARN_OFF();Delay_ms(10);LED_WARN_ON();Delay_ms(200);LED_WARN_OFF();//按键调度循环while(1){//LCD显示logo信息lcd_display(2,8,diwang,16,32);lcd_display(2,40,dao,16,16);lcd_display(2,56,tong,16,16);lcd_display(2,72,ce,16,16);lcd_display(2,88,shi,16,16);lcd_display(2,104,yi,16,16);lcd_display(5,32,logo,16,64);//等待获取用户按键输入myselect=get_key();//按照用户按键类型进行相应操作switch(myselect){caseKEY_MEASURE:measure();lcd_clear_screen();break;caseKEY_SETUP:setup();lcd_clear_screen();break;caseKEY_CALIB:

calib_system();lcd_clear_screen();break;}四、常用功能模块的设计自检模块初始化模块时钟模块通信模块信息采集模块数据处理模块控制决策模块显示模块第五章智能仪器软件设计第四节基于操作系统的软件设计嵌入式操作系统嵌入式软件开发方法常用开发工具及开发环境嵌入式操作系统许多简单的嵌入式系统并不需要嵌入式操作系统(如单片机控制)。但是,随着嵌入式系统复杂性的增加,操作系统显得越来越重要。因此,必须对复杂的嵌入式软件系统进行合理的控制。嵌入式操作系统嵌入式操作系统的分类商用系统专用系统开放系统嵌入式操作系统嵌入式操作系统的体系结构二、嵌入式软件开发增量式迭代开发模型

嵌入式应用程序开发过程嵌入式应用程序的调试嵌入式程序开发工具及开发环境交叉开发系统开发方法崩溃与烧制ROM监控程序ROM仿真器在线仿真器[ICE]片上调试[OCD]包括BDM和JTAG模拟器第四节软件测试通用软件测试方法嵌入式软件测试CodeTEST嵌入式软件测试系统简介软件测试就是在软件投入运行前,对软件需求分析,设计规格说明和编码的最终复查,是软件质量保证的关键步骤。定义1:软件测试是为了发现错误而执行程序的过程。定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。通用软件测试方法测试结果分析改正错误可靠性分析软件配置测试配置测试工具测试结果回归测试错误改正的软件预测的可靠性预期结果第五节软件测试概述内容6.5.1软件测试基本概念6.5.2软件测试方法与步骤6.5.3嵌入式软件测试6.5.1软件测试基本知识(1)什么是软件测试(2)软件测试的对象(3)软件测试的分类(4)软件测试的目的与原则(5)软件测试的信息流程(6)软件测试与软件开发(1)什么是软件测试什么是软件测试软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复查。它是软件质量保证的关键步骤。

定义1:软件测试是为了发现错误而执行程序的过程。定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程(2)软件测试的对象软件测试贯穿软件定义和开发的整个期间74(3)软件测试的分类按方法分按技术分按级别分按类型分按技术分白盒黑盒功能结构按层次分按类型分需求设计单元集成系统系统集成验收静态动态按方法分(4)软件测试的目的测试的目的就是发现软件中的各种缺陷测试只能证明软件存在缺陷,不能证明软件不存在缺陷测试可以使软件中缺陷降低到一定程度,而不是彻底消灭以较少的用例、时间和人力找出软件中的各种错误和缺陷,以确保软件的质量软件测试原则尽早和不断测试,测试过程与开发过程应是相结合的保证测试的覆盖程度,但穷举测试是不可能的所有的测试都应追溯到用户需求Good-enough:一种权衡投入/产出比的原则测试的规模由小而大,从单元测试到系统测试为了尽可能地发现错误,应该由独立的第三方来测试不能为了便于测试擅自修改程序既应该测试软件该做什么也应该测试软件不该做什么等等(5)软件测试流程测试结果分析改正错误可靠性分析软件配置测试配置测试工具测试结果回归测试错误改正的软件预测的可靠性预期结果(6)软件测试与软件开发A测试与开发的并行性B包含测试过程的完整开发过程V模型示意图软件测试度量测试覆盖率有多少需求、代码已经被测试了缺陷发现率缺陷是何时被发现,并且有多少缺陷已经被发现。缺陷可以根据严重性来分类。需记录以下值:缺陷数目缺陷的严重性软件测试度量测试成功率:有多少测试已经通过了,并且有多少是运行正常的?需记录以下值:已通过的测试用例的数目可利用的测试用例的数目6.5.2软件测试方法与步骤(1)白盒测试的实施方案(2)黑盒测试的实施方案(3)软件测试的步骤(1)白盒测试的实施方案什么是白盒测试白盒测试也称结构测试或逻辑驱动测试必须知道软件内部工作过程,通过测试来检测软件内部是否按照需求、设计正常运行通过逻辑覆盖、路径覆盖等方式选择测试用例,可以用测试覆盖率评价测试用例白盒测试的主要方法对应于程序的一些主要结构:语句、分支、逻辑路径、变量;白盒测试的主要方法是:语句覆盖方法分支覆盖方法逻辑覆盖方法软件测试人员可以访问程序员的代码,并通过检查代码来测试,可以看到盒子里面。覆盖率概念

如:一个程序总代码为100行,使用测试用例运行一次,执行了75行代码,则代码覆盖率=75%逻辑覆盖:常见的六种覆盖方法

语句覆盖

判定覆盖(也称分支覆盖) 条件覆盖(也称谓词覆盖) 判定/条件覆盖 条件组合覆盖 路径覆盖举例测试用例设计:Scanf(“%d”,&x)X!=0Y=1Y=2YN(O)(A)(B)(D)红色字母代表程序执行路径

OBD02OAD51

路径

X

开始结束X>=80andY>=801->TYESX+Y>=140and(x>=90ory>=90)2->T3->TYESNONOOEABCD

OBDE

50

502

OBCE

70

903OAE90901

路径

Y

X

测试用例设计:(2)黑盒测试方案什么是黑盒测试又称功能测试或数据驱动测试,是针对软件的功能需求/实现进行测试通过测试来检测每个功能是否符合需求,不考虑程序内部的逻辑结构穷举输入测试黑盒测试黑盒测试方法功能划分等价类划分边界值分析因果图错误推测等客户端测试业务逻辑用户界面功能测试服务器端测试服务器性能、响应时间、事务处理速度等测试流程

单元测试集成测试系统测试用户验收测试回归测试V模型示意图单元测试完成对最小的软件设计单元—模块的验证工作目标是确保模块被正确地编码使用过程设计描述作为指南,对重要的控制路径进行测试以发现模块内的错误通常情况下是面向白盒的对代码风格和规则、程序设计和结构、业务逻辑等进行静态测试,及早地发现和解决不易显现的错误单元测试单元测试的内容接口测试内部数据结构全局数据结构边界语句覆盖错误路径单元测试单元测试的工具OpenSource:xUnitJun

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论