8.虚拟仪器系统集成.txt
来自「虚拟仪器软件的介绍」· 文本 代码 · 共 485 行 · 第 1/3 页
TXT
485 行
,可以将测试子系统模块封装在平台的模块元件中,在整个系统中与其它元件一起
使用,从而建构出大规模的测试系统应用程序。
为了提高系统应用程序的设计与开发效率,软件工程学中提出了不少分析与开发模
型方法,如框图结构法、E-R法(实体关系法)、状态迁移图法、时序图法、
Petri网法、结构语言描述法等,在分析比较多种方法的优缺点的基础上,考虑虚
拟仪器系统软件结构特性,本文提出了一种虚拟仪器系统软件结构描述语言VSDL(
Virtual instrument system Software architecture Description Language),
用于虚拟系统应用程序的设计与开发。
4、 虚拟仪器系统集成测试:虚拟仪器系统集成过程中,必须进行系统集成测试,
包括硬件结构测试与软件结构测试,本文重点讨论的是软件结构的测试。软件结构
集成测试的主要目的是检查软件单位之间的接口是否正确,它根据集成测试计划,
一边将模块或其它软件单位组合成越来越大的系统,一边运行该系统,以分析所组
成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底
向上两种。在整个系统集成之后,还必须进行系统测试,以验证软件系统的正确性
和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确,被称为测试
的“先知者问题”。因此,系统测试应该按照测试计划进行,其输入、输出和其它
动态运行行为应该与软件规约进行对比。功能测试是软件系统测试的主要方法之一
。其基本思想是根据软件的功能需求,选择适当的测试数据,以检查软件是否完成
了其功能需求中所提出的所有功能要求,功能测试往往不仅要求对功能规约中列出
的功能进行测试,还要求对设计和实现中引进的功能进行测试。随机测试是另一种
软件系统测试的重要方法,其基本思想是对软件的输入空间进行随机取样,以此作
为软件系统测试数据。随机取样可按照软件实际使用时的概率分布进行,也可按照
其它概率分布进行,前者称为代表性随机测试,后者称为非代表性随机测试。在虚
拟仪器系统提交给最终用户后,还必须进行验收测试,在软件维护阶段还需要进行
回归测试。
8.3 虚拟仪器系统软件结构描述语言
为了正确地描述系统软件结构,提高系统软件设计与开发的效率,软件工程师提出
了多种软件结构分析与设计模型,最直观的一类即是采用箱-线(boxes-lines)框
图法进行抽象的描述,其中箱代表的是系统软件元件,线代表的是元件之间的连接
。这种模型方法可用表达式8.1描述。
这种方法比较直观,但对于元件与连接均描述过于简单含糊。对于元件来说,这种
方法只给出了抽象概念表示,并没有给出实现方式;对于连接来说,这种方法也没
有给出明确定义,连接究竟是代表数据流、功能流、属性继承、属性包含还是属于
过程调用,没有清楚定义,往往在一个系统中,包含了多种连接方式,使系统软件
结构十分模糊。因此,采用箱-线框图法只适用于初步的软件分析工作。
随着面向对象技术的发展,面向对象技术成为了软件设计与开发的流行方法,软件
元件以封装的类与对象的概念出现,整个软件系统由多个类与对象的集合构成,对
象与对象之间通过定义在类中的成员函数进行数据交互,可用表达式8.2表示。
这种方法在软件分析阶段通过对象的认定,确定问题空间中应当存在的类和类层次
结构,在设计阶段通过类的认定和类层次结构的组织,确定了解空间中应当存在的
类和类层次结构,并确定外部接口和主要的数据结构。与抽象的框图定义相比,它
实用性强,所有类定义的数据结构与操作均可在具体的编程语言中实现。然而,对
于具体的虚拟仪器系统而言,对于具体类的认定和类层次结构的组织并不容易,特
别是要求仪器工程师将问题空间抽象为可实现的类,工作量是相当大,而且由于数
据接口封装在类中,数据交互并不直接,给设计与编程均带来了一定难度。在以前
参与过的透平压缩机组状态监测的项目中采用了面向对象软件分析与设计方法,实
际开发工作量比预期的大得多。
为了更好地描述软件结构模型,软件工程师提出了软件结构描述语言的概念,将软
件结构中的模块与连接以结构化文本的形式进行描述,其中如基于事件模型的
Rapide、基于结构设计的ArTek等,均在一定的系统中得以实用。本文在综合分析
虚拟仪器系统软件结构特点的基础上,提出了一种虚拟仪器系统软件结构描述语言
,简称VSDL。
同样,VSDL由两部分描述组成,即软件结构元件集(Component)及元件之间的接
口模块(Interface-Module),如表达式8.3所示。
VSDL的提出,有以下几个理论基础:
1. 要进行软件结构描述,系统软件结构本身必须具有几个特点:软件结构必须是
可分离结构,软件结构组成元件之间必须独立,各元件的操作是独立的过程。对于
虚拟仪器系统软件结构而言,上下层采用了函数化的层次化结构,左右层采用了模
块化方案,因此系统是完全可分离的。各软件元件之间通过统一形式的接口进行独
立的数据运算,接口模块上以数据流形式传递数据。
2. 虚拟仪器系统的任务明确,结构清晰,系统集成人员可以方便地进行任务与功
能分解,分解结果可以直接以描述语言的形式存在,而不必再进行类封装,因此设
计过程比较简单。
3. 对于虚拟仪器设计人员来说,在硬件模块的设计过程中,往往采用VHDL等硬件
描述语言方式进行硬件模块设计,而VSDL与VHDL在结构上有一定的相似处,容易被
仪器设计人员掌握。
4. 用于系统应用程序开发的图形化平台程序的内部描述方式也往往采用了文本文
件形式的结构化描述,采用VSDL描述的结果文本,在结构上与图形化平台的描述文
本十分类似,VSDL的描述结果文本经解析可以直接被图形化平台作为源代码进行调
用。
5. VSDL本身不是一种可编译的语言,它的描述方式比图形化平台的描述文本要抽
象。VSDL本身不包含可执行代码,元件也没有包含执行部件,它的解析执行是通过
定义元件类型来进行的。因此,VSDL提供了虚拟仪器软件结构与图形化软件平台的
接口,最终实现依赖于具体的图形化平台。
VSDL由三大部分构成,一是模块描述,二是元件描述,三是连线描述,其中元件描
述是核心部分,而模块描述是扩展部分,是系统可选的。整个语言结构采用了结构
化的文本。程序文本由多个段落组成,每个段落由段落起始符开始,以段落终止符
结束,中间包含多个属性项,段落类型包括模块段落、元件段落与连线段落两大类
。在模块段落中,定义了模块基本属性段落、输入端口段落、输出端口段落、包含
元件集属性段落。在元件段落中,定义了元件的通用属性段落、输入端口段落、输
出端口段落和自定义属性段落。在连线段落中,定义了元件之间的连接关系。属性
项由左项与右项组成,中间以等号“=”分隔,左项为属性名,右项为属性值。整
个描述语言结构如图8.2所示。
图8.2 VSDL描述语言结构图
模块段落以字符串“MODULE{”为段落起始符,以“MOUDLE}”为段落终止符,其间
定义了一系列属性段落:
1、 基本属性段落:段落以“BASEATTR{” 为段落起始符,以“BASEATTR}”为段
落终止符,其间定义了模块标识符,这个标识符是唯一的,以标识不同的模块;模
块显示名,用于流程图显示。
2、 输入端口段落:段落以“INPORT{” 为段落起始符,以“INPORT}”为段落终
止符,其间定义了输入端口名称、数据类型、连接状态与连线名称。
3、 输出端口段落:段落以“OUTPORT{” 为段落起始符,以“OUTPORT}”为段落
终止符,其间定义了输出端口名称、数据类型、连接状态与连线名称。
4、 包含元件集段落:段落以 “INCOMSET{” 为段落起始符,以“INCOMSET}”为
段落终止符,其间定义了模块所包含的元件标识符。
元件段落以字符串“COMPONENT{”为段落起始符,以“COMPONENT}”为段落终止符
,其间定义了一系列属性段落:
1、 基本属性段落:段落以“BASEATTR{” 为段落起始符,以“BASEATTR}”为段
落终止符,其间定义了元件标识符,这个标识符是唯一的,以标识不同的元件;元
件显示名,用于流程图显示;元件类型标识,用于标识系统元件类型。在VSDL中,
共定义了基本显示元件、数据定义元件、数据分析处理元件、基本设备元件及仪器
接口元件五类40多种类型,是基于不同的图形化平台所包含的元件类型公约集而提
出的,即VSDL中定义的元件类型在不同的图形化平台中必定有对应的元件类型,如
VSDL定义的文本显示元件V_TEXT对应于HP VEE的TEXTDISPLAY和VPP的VI_TEXT类型
。在图形化实际运行中,通过对VSDL元件类型的解析,在图形化平台运行模式下执
行各自的元件执行代码;其它还有元件显示大小、元件显示位置等属性。
2、 输入端口段落:段落以“INPORT{” 为段落起始符,以“INPORT}”为段落终
止符,其间定义了输入端口名称、数据类型、连接状态与连线名称。
3、 输出端口段落:段落以“OUTPORT{” 为段落起始符,以“OUTPORT}”为段落
终止符,其间定义了输出端口名称、数据类型、连接状态与连线名称。
4、 自定义属性段落:段落以 “SELFATTR{” 为段落起始符,以“SELFATTR}”为
段落终止符,其间定义了与元件相关的特定属性,如温度计元件的上下限值等。
连线段落以字符串“LINE{”为段落起始符,以“LINE}”为段落终止符,其间定义
了一系列属性段落:
1、 连线名称LINENAME。
2、 连线起始模块或元件LINEFROMUNIT。
3、 连线终止模块或元件LINETOUNIT。
4、 连线起始端口LINEFROMPORT。
5、 连线终止端口LINETOPORT。
利用VSDL进行应用程序描述时,采用了自顶向下层层细化的方式,首先定义的是模
块段落,进一步进行模块单元的分解,进行详细的元件段落,模块段落定义是可以
嵌套的,连线段落的定义既可以针对模块,又可以针对元件。程序最终的实现是通
过定义在元件段落中的元件类型标识执行的。整个程序结构如下:
MODULE{
BASEATTR{
NAME=MODULE1
DISPLAYNAME=
BASEATTR}
INPORT{
PORTNAME=
PORTTYPE=
PORTSTAT=
LINENAME=
INPORT}
OUTPORT{
PORTNAME=
PORTTYPE=
PORTSTAT=
LINENAME=
OUTPORT}
INCOMSET{
NAME1=COMNAME1
NAME2=COMNAME2
.
.
.
INCOMSET}
MODULE}
.
.
.
COMPONENT{
BASEATTR{
NAME=COMNAME1
DISPLAYNAME=
TYPE=VI_TEXT
LEFT=
TOP=
WIDTH=
HEIGHT= BASEATTR}
INPORT{
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?