第二章 虚拟仪器系统软件结构与模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章虚拟仪器系统软件结构与模型
VXI即插即用规范的提出,为虚拟仪器系统的建立提出了原则性的理论依据,而为
了进行高效、简捷的虚拟仪器系统集成,剖析系统软件结构是首要步骤。本章从软
件结构学出发,讨论了多种软件结构范式,并根据虚拟仪器系统框架定义,提出了
虚拟仪器系统软件结构与三种结构模型,为虚拟仪器模块设计与虚拟仪器系统集成
提供理论基础。
2.1 软件结构
随着计算机系统规模与复杂度的不断扩大,设计与规划整个软件系统结构变得比选
择组成模块数据结构或算法更为关键,软件结构学作为程序工程学的一个重要分支
学科,也越来越受到软件工程师的关注,对于各类计算机系统的软件结构的研究方
兴未艾。
关于系统的软件结构,Roger S.Pressman作了一个较经典的定义:
Software architecture alludes to the overall structure of the software and the ways in which that structure provides conceptual integrity for a
system.
软件结构是指软件的总体组成结构及系统结构化的集成方法。
从抽象意义上说,软件结构包括系统中所含元件描述、元件间的相互关系以及系统
元件的组织范式三部分,设计一个系统的软件结构,往往先选择好符合系统需求的
系统元件的组织范式,再自上而下地细化设计各个元件及其相互间的关系,在软件
设计中关系即为软件接口。一个合理的组织范式的选定,为系统有效的集成提供了
基础,也为系统级的软件重用(Software Reusability)提供了可能,也是进行软
件系统设计的首要步骤。Mary Shaw和David Garlan解析了多种系统软件结构
范式
,现简要分析如下:
1、分层式系统(Layered Systems)范式:在这种范式中,系统是层次性结构组
成的,结构中的每一层作为系统组成元件既为上一层提供服务,同时又向下一层提
出服务请求。分层式系统范式结构紧凑明确,可重用性强,适用于易进行系统层次
化分解的软件设计中。操作系统软件的基本范式即为分层式结构。分层式系统范式
基本框图如图2.1所示。
图2.1 分层式系统范式基本框图
2、数据抽象和面向对象组织(Data Abstraction and Object-Oriented Organization)范式:在这种范式中,所有的系统元件均是对象,对象间的数据交
互通过调用封装了的对象操作进行。面向对象组织范式充分表现了元件模块化的特
点,软件重用性强,但要求被交互的对象之间有明确的操作函数或过程接口,相对
系统分析与设计工作量较大。面向对象的程序设计方法往往采用面向对象的组织范
式,首先定义对象类与对象,再针对具体对象进行分解操作。面向对象组织范式基
本框图如图2.2所示。
图2.2 面向对象组织范式基本框图
3、管道和过滤器 (Pipes and Filters) 范式:在这种范式中,各个输入、输出
及处理元件表现为过滤器,而元件间的接口表现为管道,管道承担了过滤器之间的
连接。管道和过滤器范式采用的是线性拓朴结构,要求经管道互连的过滤器的数据
格式与类型相一致,因此适用于结构比较简单的软件系统,最典型的例子即是批处
理系统、UNIX系统的管道技术。管道和过滤器范式基本框图如图2.3所示。
图2.3 管道和过滤器范式基本框图
4、知识库范式(Repositories):在这种范式中,系统元件由两部分组成,一部
分是表示当前数据状态的中央数据结构,另一部分则是对中央数据结构进行存取的
操作元件集。当在系统中以操作元件集作为数据触发时,中央数据结构即表现为数
据库,知识库范式即为数据库系统范式;当中央数据结构在系统中操作触发时,它
表现为黑板形式,操作元件表现为知识源,这样系统即是由知识驱动的知识库专家
系统。具体专家系统软件的设计一般采用知识库范式。知识库范式基本框图如图2.4所示。
图2.4 知识库范式基本框图
5、过程控制范式(Process Control):这种范式基于过程控制循环,主要表现
为开环控制范式与闭环控制范式两类,主要用于工业自动化系统中。闭环控制范式
基本框图如图2.5所示。
另外,还有一些软件结构范式也是比较常用的,如基于事件(Event-Based)范式
、解释机(Interpreters)范式、分布式处理系统(Distributed process system)范式、主程序/子程序组织(Main program/subroutine organizations)范式、状态迁移系统(State transition systems)范式及特定领域软件结构(Domain-specific software architecture)范式等。
图2.5 闭环控制范式基本框图
软件结构范式概念的提出与模型的确立,为系统软件的设计确定了基本框架。系统
软件设计工作是从首先确定结构范式开始,进而细化范式中每一元件的设计工作,
并着重关注元件之间的接口交互,使系统软件设计生成一个可操作、可管理、可维
护、可重用的过程。应当看到,一个系统软件的实现并不一定只有一种范式可循,在许多情况下,多种范式是可以异殊同归的。此外,一个系统软件模型往往也不是
一种范式的简单复本,而是多个范式的混合体,称为混合型结构(Heterogeneous Architecture)。
2.2 虚拟仪器系统软件结构
从第一章描述可知,虚拟仪器系统是集计算机系统与仪器系统为一体,而将研究重
点关注到虚拟仪器系统的软件系统部分,它是一个典型的计算机软件系统,因此,它的分析与设计也应该符合软件结构学的要求。为了有效地实现虚拟仪器系统软件
设计,先必须分析系统中所包含的元件形式与接口形式,进而提出符合一般虚拟仪
器系统软件设计的基本范式,再将范式中的各个元件进行具体细化分析,为虚拟仪
器系统软件设计奠定理论基础。
在第一章中,已经简单讨论了虚拟仪器系统组成(见图1.2),为了确保组成虚拟
仪器系统的各硬件模块与软件模块的互操作性,VPP规范提出了系统框架的概念。
系统框架并非是真正的物理实体,实质是虚拟仪器系统集成的综合方法与要求。系
统框架内部定义与描述的系统元件,则是组成一个完整的虚拟仪器系统的必要部件