




已阅读5页,还剩65页未读, 继续免费阅读
(计算机应用技术专业论文)基于构件的虚拟仪器开发方法的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于构件的虚拟仪器开发方法的研究中文摘要 中文摘要 虚拟仪器m a li n s t r u m e n t s v i 充分利用现有计算机资源 配以独特设计的软硬 件 实现普通仪器的全部功能以及一些在普通仪器上无法实现的功能 软件即仪器 的思想实现了对传统的仪器概念的重大突破 在测试 测量和自动化等领域得到广泛 的应用 然而虚拟仪器软件 v i r t u a li n s t r u m e n t ss o f t w a r e v i s 的设计对硬件构造和测 试对象有着很大的依赖性 后者微小的差异都会影响软件的结构和流程 使软件复用 困难 为了解决v i s 软件复用问题 本文提出了采用构件的虚拟仪器开发方法 基本实 现了v i s 的设计复用和过程复用 本文首先介绍了 的发展过程和研究现状 提出了v i s 的软件体系结构 构件 模型和组装方法 将v i s 在逻辑上划分为相对独立的四层软件体系结构 分别为用户 界面层 测试层 输入输出层 和硬件层 每层之间在逻辑上是独立的 它们之间通 过接口进行上下层交互 每层内部是功能上相关的软件构件的组合 v i 的构件模型 定义了构件的接口规约 内部结构等 初步实现了v i s 的设计复用和过程复用 本文还对v i s 的构件制作方法进行了探讨 给出了采用c 语言符合v i 构件模 型的构件制作方法 并对构件异构问题提出了解决方法 接口异构采用包装的方法解 决 数据异构采用数据字典的方法 对数据格式进行统一 最后 通过两个应用实例 说明了本文所提出方法的可行性和有效性 关键字 虚拟仪器 软件复用 构件 软件体系结构 构件模型 构件组装 作者 陈亮亮 指导教n 李云飞 r e s e a r c ho nac o m p o n e n tb a s e da p p r o a c ht ov i r t u a l i n s t r u m e n ts o f t w a r ed e v e l o p m e n t a b s t r a c t w i t hs p e c i a ld e s i g no fh a r d w a r ea n ds o f t w a r e v i r t u a li n s t r u m e n t v dc o u l dm a k e f u l lu s eo fe x i s t i n gc o m p u t e rr e s o u r c ea n dr e a l i z ea l lt h ef u n c t i o no fo r d i n a r yi n s t r u m e n t a sw e l la ss o m eo ff u n c t i o nt h a to r d i n a r yi n s t r u m e n tc a nn o tr e a l i z e t h et h i n k i n go f t h e s o f t w a r ei st h ei n s t r u m e n t a c h i e v e sag r e a tb r e a k t h r o u g hf o r t h ec o n c e p to ft h et r a d i t i o n a l i n s t r u m e n t t h ev ih a sb e e n 诮d e l ya p p l i e di nt e s t m e a s u r e m e n t a u t o m a t i o na n do t h e r f i e l d s b u tv i r t u a li n s t r u m e n ts o f t w a r e i s d e s i g ng r e a t e rd e p e n d e n c eo nh a r d w a r e s t r u c t u r ea n dt e s t e dt a r g e t t h em i n o rd i f f e r e n c e so fl a t t e rw i l la f f e c ts o f t w a r es t r u c t u r ea n d p r o c e s s a n dm a k e i td i f f i c u l tt os o f t w a r er e u s e i no r d e rt os o l v et h ep r o b l e mo fs o f t w a r er e u s e t h i sp a p e rp r e s e n t sac o m p o n e n t b a s e da p p r o a c ho fv i sd e v e l o p m e n t a n db a s i c a l l yr e a l i z e dt h ep r o c e s sr e u s ea n dd e s i g n r e l l s e t h i sp a p e rf i r s ti n t r o d u c e st h ed e v d o p m e n tp r o c e s sa n dr e s e a r c hs t a t u s v i s s s o f t w a r ea r c h i t e c t u r e c o m p o n e n tm o d e la n da s s e m b l ym e t h o d so fv i v i si sd i v i d e di n t o f o u rr e l a t i v e l yi n d e p e n d e n ts o f t w a r ea r c h i t e c t u r e w h i c ha r eu il e v e l t e s t i n gl e v e l i o l e v e la n dh a r d w a r el e v e l e v e r yl e v e li si n d e p e n d e n ti nl o g i ca n di n t e r a c te a c ho t h e rb y i n t e r f a c ea n de a c hl e v e li n t e r i o ri sa s s e m b l yo fs o f t w a r ec o m p o n e n t sw h i c hi sr e l a t e d v i c o m p o n e n t m o d e ld e f i n e si n t e r f a c es t i p u l a t i o no ft h ec o m p o n e n t sa n di n t e r n a ls t r u c t u r ee t e p r i m a r i l yr e a l i z e sd e s i g nr e u s ea n dp r o c e s sr e u s eo fv i r t u a li n s t r u m e n t s t h i s p a p e ra l s o d i s c u s s e st h ev i sc o m p o n e n tb u i l d i n gm e t h o d o l o g y p r e s e n t s c o m p o n e n tb u i l d i n ga p p r o a c hi nc l a n g u a g ea n da c c o r d i n gw i t hc o m p o n e n tm o d e l a n d p r o p o s e dt h es o l u t i o nm e t h o do ft h ep r o b l e mo fc o m p o n e n th e t e r o g e n e i t y p a r k i n gi su s e d t os o l v et h ei n t e r f a c eh e t e r o g e n e i t y a n dd a t ad i c t i o n a r yu s e db yd a t ah e t e r o g e n e i t yi st o a b s t r a c t r e s e a r c ho f fac o m p o n e n tb a s e da p p r o a c ht ov i r t u a li n s t r u m e n ts o f t w a r ed e v e l o p m e n t u n i f yt h ed a t af o r m a t f i n a l l y t w oe x a m p l e sa r eg i v e n w h i c hp r o v et h a tt h em e t h o d p r e s e n t e di sf e a s i b l ea n de f f e c t i v e k e y w o r d s v i r t u a li n s t r u m e n t s o f t w a r er e u s e c o m p o n e n t s o f t w a r ea r c h i t e c t u r e c o m p o n e n tm o d e l c o m p o n e n ta s s e m b l y w r i t t e nb y c h e nl i a n g l i a n g s u p e r v i s e db y l iy u n f e i 苏州大学学位论文独创性声明及使用授权的声明 学位论文独创性声明 本人郑重声明 所提交的学位论文是本人在导师的指导下 独立进 行研究工作所取得的成果 除文中已经注明引用的内容外 本论文不含 其他个人或集体已经发表或撰写过的研究成果 也不含为获得苏州大学 或其它教育机构的学位证书而使用过的材料 对本文的研究作出重要贡 献的个人和集体 均已在文中以明确方式标明 本人承担本声明的法律 责任 研究生签名 j 邋日 研究生签名 盥亟 廷穴 日 学位论文使用授权声明 期 矽孑 7 苏州大学 中国科学技术信息研究所 国家图书馆 清华大学论文 合作部 中国社科院文献信息情报中心有权保留本人所送交学位论文的 复印件和电子文档 可以采用影印 缩印或其他复制手段保存论文 本 人电子文档的内容和纸质论文的内容相一致 除在保密期内的保密论文 外 允许论文被查阅和借阅 可以公布 包括刊登 论文的全部或部分 内容 论文的公布 包括刊登 授权苏州大学学位办办理 研究生签名 弋等强日 期 少们g 1 研究生签名 惜氐旋彘 日期 少1 闪 f 导师签名 毒殂 趔号 基于构件的虚拟仪器开发方法的研究 第一章绪论 1 1 虚拟仪器概述 第一章绪论 电子测量与测试仪器的发展 大致经历了模拟仪器 分立元件式仪器 数字化仪 器和智能仪器等几个过程 目前 随着微电子技术和计算机技术的飞速发展 测试技 术与计算机深层次的结合 使得测试仪器领域出现了一场翻天覆地的变革 一方面 计算机技术的进步为新型测控仪器的产生提供了现实基础 主要表现在 1 2 3 1 1 微处理器和d s p 技术等大规模集成芯片的快速进步以及其性能价格比不断 上升大大改变了传统电子行业的设计思想和观念 原来许多由硬件完成的功 能今天能够依靠软件实现 2 面向对象技术 可视化程序开发语言在软件领域为更多易于使用 功能更强 大的软件开发提供了可能性 另一方面 传统的测控仪器越来越满足不了科技进步的要求 主要表现在 1 现代测控技术要求仪器不仅仅能单独测量到某个量 而更希望它们之间能够 互相通信 实现信息共享 从而完成对被测各系统的综合分析 评估 得出 准确判断 传统仪器在这方面显然存在严重不足 甚至根本不可能实现 2 对于复杂的被测系统 为了正确使用各个厂家的不同测试设备 用户需要的 知识很多 需求与现实差距很大 仪器使用频率和利用率低 而且硬件存在 冗余 鉴于上述原因 基于计算机的测试仪器 虚拟仪器逐渐变为现实 其出现和广 泛使用对测控仪器产生极为深刻的影响 作为传统仪器的革新产品 虚拟仪器的作用 在今天已日益彰显 虚拟仪器 v i r t u a li n s t r u m e n t v i 是指将通用计算机与功能化硬件结合起来 用户 可通过友好的图形界面 通常叫做虚拟前面板 来操作这台计算机 就像在操作自己定 义 自己设计的一台仪器一样 从而完成对被测试量的采集 分析 显示 数据存储 等 与传统仪器相比 虚拟仪器主要有以下一些特点 1 用户自定义功能 不使用厂商定义的 预封装好的软件和硬件 设计者和工 第一章绪论 基于构件的虚拟仪器开发方法的研究 程师们获得了最大的用户定义的灵活性 传统仪器把所有软件和测量电路封 装在一起 只能为用户提供预先设计的固定功能 2 一组有限的功能 虚拟仪器系统提供的则是完成测量或控制任务所需的所有 软件和硬件设备 功能完全由用户自定义 利用虚拟仪器软件 设计者和工 程师们还可以使用高效且功能强大的软件来自定义采集 分析 存储 共享 和显示功能 3 软件是核心 v i 的硬件确定后 它的功能主要是通过软件来实现的 软件在 v i 中具有关键的地位 是v i 的灵魂 美国国家仪器 n i 针对虚拟仪器提出 一个著名的1 3 号 软件即仪器 t h es o f t w a r ei st h ei n s t r u m e n t t 4 良好的人机界面 在v i 中 测量结果是通过由软件在计算机屏幕上生成的 与传统仪器面板相似的图形界面软面板来实现的 因此 用户可以根据自己 的爱好 利用p c 的强大图形环境和在线帮助功能 通过v i 软件来定制用户 所喜爱的面板形式 5 性价比高 虚拟仪器是在p c 技术的基础上发展起来的 所以完全 继承 了以现成即用的p c 技术为主导的最新科技的优点 包括功能超卓的处理器 和文件i o 在数据导入磁盘的同时就能实时地进行复杂的分析 随着数据 传输到硬驱功能的不断加强 以及与p c 总线的结合 高速数据记录已经具 有更合理的可行性 6 扩展性强 虚拟仪器的另一大特点就是扩展性强 因为虚拟仪器是基于用户 自定义的 因此可以在以下几个方面进行扩展 1 软件扩展 软件的不断升级 在兼容以往成果的基础上 不断扩展功能 如使用替换不同的v i 使用一样的接口 可扩展更强的实现 2 硬件扩展 由于软硬件设计接口的灵活性 只需更新计算机或测量硬件 就能以最少的硬件投资和极少的 甚至无需软件上的升级即可改进整个 系统 将最新的科技成果集成到现有的测量设备上 最终以较少的成本 加速产品上市的时间 3 网络扩展 虚拟仪器技术的另一突出优势就是不断提高的网络带宽 因 特网和越来越快的互联速度使得数据分享进入了一个全新的阶段 将因 特网和软硬件产品相结合 能够轻松地与地球另一端的同事共享测量结 2 基于构件的虚拟仪器开发方法的研究第一章绪论 果 分享 天涯若比邻 的便捷 不断提高系统的扩展能力 7 集成与组合性能 虚拟仪器技术从本质上说是一个集成的软硬件概念 随着 产品在功能上不断地趋于复杂 工程师们通常需要集成多个测量设备来满足 完整的测试需求 但是这些不同设备间的连接和集成总是耗费大量时间 不 是轻易可以完成的 虚拟仪器软件平台为所有的i o 设备提供了标准的接口 例如 数据采集 视觉 运动和分布式i o 等 帮助用户轻松地将多个测量 设备集成到单个系统 减少了任务的复杂性 为了获得最高的性能 简单的 开发过程和系统层面上的协调 这些不同的设备既保持其独立性 又紧密地 集成在一起 虚拟仪器的各个功能实现都是清晰的模块化组合方式 选择不 同的硬件 不同的软件模块 组合即可达到不同的目的 由上述可以看出 虚拟仪器与传统仪器主要区别如表1 1 所示 表1 1 虚拟仪器与传统仪器的比较 1 2 国内外研究现状 1 2 1 国外发展现状 虚拟仪器技术目前在国外发展很快 从二十世纪7 0 年代开始的g p i b 到8 0 年 代出现v x i 9 0 年代出现的p c i 总线成为主流产品 直到1 9 9 7 年n i 推出了p x i 测 平台 目前是多种平台共存的状态 以n i 公司为代表的一批厂商已经在市场上推出了基于虚拟仪器技术而设计的商 3 第一章绪论 基于构件的虚拟仪器开发方法的研究 品化仪器产品 在美国虚拟仪器系统及图形编程语言 已作为理工科学生的 1 7 必修 课程 斯坦福大学等许多工科类大学的机械工程系及子类专业都要求三 四年级的学 生在实验时应用虚拟仪器进行数据采集和实验控制 近年来 世界各国的虚拟仪器公司开发了不少虚拟仪器开发平台软件 以便使用 者用这些公司提供的开发平台软件组建自己的虚拟仪器测试系统 并编制测试软件 最早和最具影响力的开发软件 是n i 公司的l a b v i e w e lj 软件和l a b w i n d o w s c v i 开 发软件 l a b v i e w 采用图形化编程方案 是非常实用的开发软件 l a b w i n d o w s c v i 是为熟悉c 语言的开发人员准备的 在w i n d o w s 环境下的标准c 开发环境 除n i 之外 h p 公司的肿 v e e 和h p t i g 平台软件1 4 6 t e k t r o n i x 公司的e z t e s t 和 t e k t n s t 6 1 软件 以及h e md a t a 公司的s n a p m a s t e r 平台软件t t l 也是被认为是优秀 的虚拟仪器开发平台软件 当今虚拟仪器的系统开发采用的总线包括传统的r s 2 3 2 串行总线 g p i b 通用接 口总线 v x i 总线 以及已经被p c 机广泛采用的u s b 通用串行总线和i e e e l 3 9 4 总 线 a pf i r ew i r e 也叫做火线 各大公司 特别是美国n i 公司 为使虚拟仪器能够 适应上述各种总线的配置 已开发了大量的软件以及适应要求的硬件 插件 可以灵 活地组建不同复杂程度的虚拟仪器自动测试 测控系统 n i 是世界上最大的虚拟仪器产品制造商 从n i 的发展规模可以看出虚拟仪器的 发展状况 世界5 0 0 强的企业中有8 5 的制造控制性企业在使用n i 的产品 全世界 超过5 0 0 0 个实验室在利用l a b v i e w 和虚拟仪器技术进行教学和实验 使学生们掌 握最新的测量和设计方法 1 2 2 国内发展情况 在国内已有很多院校的实验室引入了虚拟仪器系统 如清华大学 上海交通大学 华中科技大学 四川大学等 其中清华大学汽车系利用虚拟仪器技术构建的汽车发动 机检测系统 8 用于汽车发动机的出厂检验 上海交通大学电气系的基于虚拟仪器的 变频器测试系统 9 华中科技大学机械学院工程测试实验室将其开发成果在网上公开 展示 四川大学的周群等研制了 航空电台二线综合测试仪 将8 台仪器集成于一体 组成虚拟仪器系统 使用方便 灵活 l 叫 此外 国内已有几家企业正在研制p c 虚拟 4 基于构件的虚拟仪器开发方法的研究第一章绪论 仪器 哈尔滨工业大学仪器王电子有限责任公司就是其中之一 它的产品已达到一定 的批量 其主要产品有数字存储示波器系列 任意波形发生器及频率计系列 多通道 大容量波形记录仪系列 目前 凌华 研华 研祥等诸多工控公司也纷纷加入到虚拟 仪器硬件的行业中来 开发以虚拟仪器为平台的测控系统 因此有专家预测 未来的几年内我国将有超过5 0 的仪器为虚拟仪器 1 1 1 国内 将有大批企业使用虚拟仪器系统对生产设备的运行状况进行实时监测和监控 虚拟仪 器技术的提出与迅猛发展 标志着本世纪自动测试 测控与电子测量仪器领域技术发 展的一个重要方向 随着微型计算机的发展 虚拟仪器系统将会逐步取代传统的测试 测控仪器系统而成为测试 测控仪器系统的主流 1 3 研究目的 目前虚拟仪器技术发展十分迅速 介绍虚拟仪器的文章很多 但大多数介绍的是 使用虚拟仪器技术开发一个实际的应用实例 而对设计方法的研究较少 虚拟仪器软 件 v i m l a li n s t r u m e n t ss o i t w a r e v i s 设计涉及到应用对象的工艺和设备 测试方案 机械装置 仪器仪表 计算机软硬件等 v i s 的设计过程往往围绕着具体应用的对象 实现的功能 硬件组成进行 这一设计过程造成了v i s 与硬件构造和测试对象有着很 大的依赖性 后者微小的差异都会影响软件的结构和流程 使软件复用困难 容易造 成开发周期长 代价高 软件的稳定性 互操作性 可扩展性 可维护性不够的问题 虽然在一些v 1 s 的设计中也采用了代码复用技术 如将一些通用的代码抽象提取出 来 定义为函数 子程序或面向对象中的类 但由于复用的粒度较小 效率不高 l 引 针对上述问题 已有不少学者提出了一些解决办法 如重庆大学提出的 秦氏模 型 1 3 1 4 1 5 1 吉林大学的基于需求驱动的虚拟仪器软件自动生成系统 1 6 1 但以软件的 过程复用和设计复用为目标 基于构件的虚拟仪器开发方法的研究还很少 本文的主 要工作和成果可以分为以下几个方面 1 跟踪软件体系结构和构件技术的理论研究和实践成果 对软件体系结构和构 件技术的基本性质进行了详细的讨论 并以此指导虚拟仪器软件系统体系结 构和构件模型的研究和运用 2 研究分析了虚拟仪器领域应用特点 结合了当前研究热点 软件体系结 第一章绪论基于构件的虚拟仪器开发方法的研究 构 提出了满足该领域应用需求的虚拟仪器系统的体系结构 3 研究了构件模型理论 并以此设计出了虚拟仪器构件模型 为虚拟仪器构件 的开发提供了理论基础 并以此理论给出了虚拟仪器构件开发方法 还给出 了虚拟仪器构件异构问题的解决方法 4 依托苏州工业园区瑞新自动化设备有限公司 开发了变频器测试系统和柔性 线路板测试系统 目前这两个系统已投入使用 1 4 论文结构安排 本文由六章组成 各章的内容安排如下 第一章绪论 介绍了本文的技术背景 主要工作成果 全文的组织结构 第二章理论基础和相关研究 本章讨论了软件体系结构 构件 构件模型的几个 基本性质 详细介绍当前流行的m i c r o s o t t 的c o m 构件对象模型 技术 并就目前流 行的三种技术进行了简单比较 第三章虚拟仪器应用框架和构件模型 本章详细分析了虚拟仪器系统的应用特 点 并根据虚拟仪器的特点提出了虚拟仪器体系结构以及虚拟仪器构件模型并对此进 行较为详细的介绍 第四章基于构件的软件开发 一个构件模型的提出 必定有一套与之相适应的构 件分析设计方法和步骤 以及由此带来的应用系统开发模式的转变 本章就虚拟仪器 构件和虚拟仪器系统的开发进行介绍 第五章实例系统简介 将前两章中的技术和思想运用到生产实践中去 讨论了变 频器测试系统和柔性线路测试系统的开发及开发中所涉及一些典型问题 第六章结束语总结了本文的工作 并展望了下一步的工作 基于构件的虚拟仪器开发方法的研究第二章理论基础及相关研究 第二章理论基础及相关研究 本章介绍了软件体系结构 软件构件和构件组装的基础概念 主要内容包括 软 件体系结构定义 风格 构件定义 模型 构件组装等 这些内容为本课题的研究提 供了理论基础 2 1 软件体系结构 软件体系结构 s o f t w a r ea r c h i t e c t u r e 是根植于软件工程发展起来的 f j 新兴学 科 目前已经成为软件工程研究和实践的主要领域 2 1 1 定义 在对软件体系结构的研究热潮里 众多的研究者和组织给出了有关软件体系结构 很多的定义 到目前为止 还没有一个统一的 公认的定义 使用最多的是b a s s c l e m e n t s k a z m a n 在1 9 9 7 年给出的定义 一个程序或计算系统的软件体系结构就 是 这个系统的一个或多个结构 包含软件构件 这些构件的外部可视属性 以及构 件之间的关系 1 7 可从四个方面理解该定义 首先 软件体系结构定义了构件以及 构件之间如何交互的信息 其次 系统可由多个结构组成 未规定构件和关系的具体 含义 所以构件可以是一个过程 数据库 一个商用产品等 第三 每个软件系统都 有一个体系结构 第四 每个构件的行为都是体系结构的一部分 是构件之间交互的 基础 软件体系结构研究的主要目的 提高相关产品族中不同产品之间的潜在的共性 降低应用系统开发成本 主要研究内容和方法 软件体系结构风格 体系结构描述语 言 特定领域软件体系结构 设计模式 框架 标准体系结构等 软件体系结构是软件 和软件密集 系统质量的主要决定因素 l 引 对质量属性的需 求直接驱动系统的软件体系结构的设计和开发 体系结构直接影响和决定系统的以下 质量属性 可修改性 实时性能 可重用性 可移植性和互操作性等 例如 构件之 问以及构件内部的通讯将影响系统的实时性能 构件的封装特性将影响系统的可修改 7 第二章理论基础及相关研究基于构件的虚拟仪器开发方法的研究 性 提供冗余的构件会提高系统的可靠性等等 这些保证系统质量的方法本质上都是 体系结构方法 因为这些方法主要考虑的就是如何进行系统的分解和系统各部分如何 通讯以及协作 虽然一个 好的 体系结构并不能保证一个成功的系统实现 满足系 统质量目标的实现 但在一个 坏的 体系结构上确实不可能得到一个 好的 实 现 目前软件体系结构的研究目前主要的有两类 一类是由基础研究团体引导的偏重 于理论性的尝试如体系结构风格 a r c h i t e c t u r es t y l e 和体系结构描述语言一一 a d l a r c h i t e c t u r ed e s c r i p t i o nl a n g u a g e 另一类是在软件开发实践中提出的如设计模 式 d e s i g np a t t e r n 框架 f r a m e w o r k 特定领域软件体系结构咖s s a d o m f i n s p e c i f i cs o f t w a r ea r c h i t e c t u r e 和标准体系结构等 2 1 2 软件体系结构风格 软件体系结构风格 1 9 2 0 2 1 1 是描述某一特定应用领域中系统组织方式的惯用模式 它反映了领域中众多系统所共有的结构和语义特性 并指导如何将各个模块和子系 统有效地组织成一个完整的系统 按这种方式理解 软件体系结构风格定义了用于描 述系统的术语表和一组指导构件系统的规则 一个优秀的软件 首先要选择合适的软 件体系结构风格 可以更好地促进对设计的复用 软件体系结构风格的不变部分使不 同的系统可以大粒度地共享同一个实现代码 只要系统是使用常用的 规范的方法来 组织 就可使别的设计者很容易地理解系统的体系结构 以下是经典的软件体系结构 风格 1 管道 过滤器风格 在管道 过滤器风格中 每一个构件都有一组输入和输出 构件从输入中读取数 据 经过处理产生输出流 通常来说 完成这些操作需要在输入流上应用一个逻辑的 转换过程和递进的计算过程 因此这里的构件被称为 过滤器 连接件是输入流和 输出流的通道 称作管道 图2 1 是一个典型的管道 过滤器的示意图 其中方框表示 过滤器 带箭头的空心线代表管道 传统的编译器和用u n i xs h e l l 编写的程序都是管 道 过滤器风格的典型例子 8 基于构件的虚拟仪器开发方法的研究第二章理论基础及相关研究 图2 1 管道和过滤器 管道和过滤器风格的主要优点 易理解 支持重用 易于维护和扩展 允许特定 的分析 支持并发执行 主要缺点有 不适合交互式应用 很难在两个分离但有关联 的流之间维护对应关系 每个过滤器都要对数据进行解析和合成 导致系统效率降低 和复杂度增大 2 数据抽象和面向对象组织 d a t aa b s t r a c t i o na n do b j e c t o r i e n t e do r g a n i z a t i o n 数据抽象和面向对象组织风格是以抽象数据类型和面向对象技术为基础的 它 的基本构件是对象 对象通过函数和过程调用进行交互 其有两个重要特征 1 对象 负责维护其表示的完整性 通常通过维护对象中的一些常量来实现 2 对象的表示对 其它对象而言是隐藏的 图2 2 是 个典型的面向对象和组织风格的结构 方框表示 对象 对象之间的带箭头的线段表示对象之间传递消息 图2 2 数据抽象和面向对象组织 面向对象系统的优点是对象间具有良好的独立性 设计人员可以将复杂的问题分 解为交互对象的集合 其主要缺点是一个对象必须知道另外对象的标识才能与之进行 交互 导致对面向对象系统的动态行为支持不足 比较管道和过滤器系统而言 过滤 器并不需要知道系统中与之交互的过滤器 3 事件 隐式调用 9 第二章理论基础及相关研究 基于构件的虚拟仪器开发方法的研究 在隐式调用的思想中 构件不再直接调用一个过程 而是声明 或广播 一个或多 个事件 系统中其它的构件可以通过一个与这个或这些事件相联系的过程 在这个或 这些事件中进行登记 当事件被声明时 系统会自动调用所有在这个或这些事件中登 记过的过程 因此 一个事件的隐式调用会触发其它模块中的过程 这种风格的主要 特征是发布事件的构件并不知道哪些构件将受到该事件的影响 无法预测哪些过程将 被调用和被调用的顺序 目前主要高级语言开发环境的调试器和开发环境的其它相关 工具常采用这种风格的体系结构设计 事件 隐式调用的主要优点是为重用提供了强大的支持 任何构件都可以通过注 册事件的方式集成到系统中 使系统的维护和进化更容易 构件的替换不会影响其它 构件的接口 其主要缺点是构件无法控制系统所执行的计算 当一个构件声明一个事 件时 它并不知道哪些构件会响应它 更糟的是 即使它知道那些构件对它所声明的 事件感兴趣 它也不能控制它们被调用的次序 也无法知道它们什么时间结束 另一 个问题是关于数据交换 有时数据通过事件传送 但在有些情况下 整体性能和资源 管理会成为一个严重的问题 最后 正确性推理也可能出问题 因为声明事件的过程 的意义会依赖于它被调用的绑定的上下文 而过程调用的传统推理只需要考虑一个过 程的前后环境 4 分层系统 l a y e r e ds y s t e m s 分层系统将整个软件系统组成一个层次结构 系统的每个中间层既要为上层提 供服务 又要调用下层的功能 典型的结构如图2 3 所示 在这种系统中 构件在整个 层次的某些层上实现了一个虚拟机 在其它分层系统中各层可能仅是部分透明的 协 议定义了连接器 也决定了各层之间如何进行交互 拓扑约束包括对相邻之间交互的 限制 图2 3 说明这种风格 i s o o s i 参考模型就是层次风格的一个典型例子 数据库 系统和操作系统也是这种风格的主要应用领域 分层系统的优点为 1 支持基于渐进式抽象层次的设计 这允许实施者将一个 复杂问题分解成一个渐进步骤的序列 2 支持扩充 因为每层至多和与之相邻的上 层和下层交互 所以改变某层的功能最多只影响其它两层 3 支持重用 只要多相 邻层提供同样的接口 每层可以有许多不同的相互替代的实现方法 其缺点为 1 并不是所有系统都容易用分层的方式加以构造 即使一个系统可 在逻辑上进行分层 但出于性能的考虑可能需要在逻辑上处于高层的函数和处于底层 1 0 基于构件的虚拟仪器开发方法的研究 第二章理论基础及相关研究 的实现之间建立紧密的联系 2 找出抽象的正确层次并非易事 图2 3 分层系统结构风格 5 仓储 黑板 在这种风格中有两种不同的构件 表达系统当前状态的中心数据存储构件和处理 数据中心数据的构件 数据存储构件提供共享数据 一般称为黑板 b l a c k b o a r d 在这 种风格中 控制策略的不同导致不同的两大类 若系统由输入的事务信息驱动 则 系统是传统的仓储风格 若系统由黑板上的信息驱动 则是知识系统常用的黑板结构 传统的语音和模式识别等信号处理系统是典型的黑板结构 其典型的结构如图2 4 所 示 而现代的 编译器多采用仓储风格 图2 4 黑板结构 第二章理论基础及相关研究 基于构件的虚拟仪器开发方法的研究 2 1 3 基于软件体系结构的开发过程 一直以来设计和维护软件体系结构的过程仍然是模糊不清的 例如面向对象研究 者曾提出一个基于用例集合分析的体系结构开发过程模型 它主要用来确定系统中的 对象及其交互关系 并没有提供一个清晰的方法来定义体系结构 s e i 的s h a w 也曾 提出一个基于体系结构风格的过程模型 但并没有讨论如何面对这些风格信息进行抽 象和利用1 2 2 一般认为软件体系结构设计包含以下步骤 1 功能分解 2 将功能分配给各结构元素 3 选择合适的体系结构风格 4 设计结果的评估 基于体系结构的开发 a r c h i t e c t u r e b a s e dd e v e l o p m e n t 就是 将以软件体系结构为 核心的方法应用于软件的开发中 研究领域包括 如何定义和表达体系结构 需求的 收集 建模和其与体系结构的联系 构件的开发和其与体系结构的联系 体系结构与 传统系统的联系 体系结构和产品规划的联系 所有以上相关的工具和技术 2 3 1 基于体系结构的开发包含以下步骤 1 体系结构的需求得出 2 体系结构设计 3 体系结构文档化 4 体系结构分析 5 体系结构实现 6 体系结构维护 其中 体系结构的设计 文档化和分析需要反复迭代才能完成 2 2 构件技术概述 在1 9 6 8 年n a t o 软件工程会议上 m c l l r o y 的论文 大量生产的软件构件 2 4 1 中 第一次引入软件复用的概念 在此以前 子程序的概念己经体现了复用的思想 1 2 基于构件的虚拟仪器开发方法的研究 第二章理论基础及相关研究 但其目的是为了节省当时昂贵的机器内存资源 并不是为了节省开发软件所需的人力 资源 然而子程序的概念的确可以用于节省人力资源的目的 从而出现了通用子程序 库 供程序员在编程时使用 在其后的发展过程中 有许多复用技术的研究成果和成功的复用实践活动 但是 复用技术在整体上对软件产业的影响却并不尽如人意 这是由于技术方面和非技术方 面的种种因素造成的 其中技术上的不成熟是一个主要原因 近十几年来 面向对象 技术的出现并逐步成为主流技术 为软件复用提供了基本的技术支持 软件复用研究 重新成为热点 被视为解决软件危机 提高软件生产效率和质量的现实可行的途径 构件技术以面向对象技术为基础 并很好地发展了面向对象技术 它的目的是将 对象 包括其用户界面 对外接口等属性以及对象的功能实现封装成一个规范的 标 准的 可以方便地被构件容器所操纵和使用的整体 使其成为一个通用 高效的软件 部件 使设计人员可以通过对各种各样的软件构件的使用 来方便 快捷地生成应用 系统 从而进一步提高了软件的可复用性 缩短软件开发周期 提高开发效率 增加 软件开发的规范性 它涉及构件的获取 管理以及组装等环节 2 2 1 定义 著名的b r o w n 和w a l l n a u t 2 5 1 将构件定义为一个非平凡的 几乎独立的 可替换的 系统组成部分 它在定义完善的体系结构环境中实现某一清晰的功能 o m g o b j e c t m a n a g e m e n tg r o u p 2 6 的定义更通俗 详细一些 构件是一个物理的 可替换的系统 组成部分 它封装了实现体并且提供了对一组接口的实现方法构件表示了系统实现体 的一个物理片段 包括软件代码 源代码 一进制代码或可执行代码 或者一等同体 如脚本或命令文件 文献 2 7 认为构件是指应用系统中可以明确辨识的构成成分 而可复用构件 r e u s a b l ec o m p o n e m 是指具有相对独立的功能和可复用价值的构件 一般认为构件应具备以下属性 1 有用性 u s e f u l n e s s 构件必须提供有用的功能 2 可用性 u s a b i l i t y 构件必须易于理解和使用 3 质量 q u a l i t y 构件及其变形必须能正确工作 第二章理论基础及相关研究 基于构件的虚拟仪器开发方法的研究 4 适应性 a d a p t a b i l i t y 构件应该易于通过参数化等方式在不同语境中进行配 置 5 可移植性 p o r t a b i l i t y 构件应能在不同的硬件运行平台和软件环境中工作 2 2 2 构件研究的内容 软件构件技术是支持软件复用的核心技术 是近几年来迅速发展并受到高度重视 的一个学科分支 其主要研究内容包括 1 构件获取 有目的的构件生产和从己有系统中挖掘提取构件 2 构件模型 研究构件的本质特征及构件问的关系 3 构件描述语言 以构件模型为基础 解决构件的精确描述 理解及组装问 题 4 构件分类与检索 研究构件分类策略 组织模式及检索策略 建立构件库系 统 支持构件的有效管理 5 构件复合组装 在构件模型的基础上研究构件组装机制 包括源代码级的组 装和基于构件对象互操作性的运行级组装 6 标准化 构件模型的标准化和构件库系统的标准化 2 2 3 构件技术与面向对象技术的区别 面向对象技术是计算机软件的主流技术 在将实际问题转化为计算机所需要的模 型时 它能充分的表达和描述现实世界 而它具有的一些特性能够使它很好的支持并 实现软件复用 例如抽象性具有用户定义的复杂的功能 能很好的表示复杂领域的问 题 而继承性提供了一种共享行为的方法 既避免了重复代码的设计 又可以增加新 的功能 面向对象技术中 对象是开发模式的基本成分 它是对实体的数据和功能的统一 抽象 是独立的活性单元 它具有可复用构件所应具有的特征 因此是构件的雏形 对象是数据和功能的统一体 集内部状态属性和外部行为属性于一身 具有极高的独 立性 对象之间是一种松耦合关系 通过接口发送或接受信息来建立对象之间的请求 与被请求关系 对象之间的联系简单 明了 便于应用和组装 对象 解空间 是实体 1 4 基于构件的虚拟仪器开发方法的研究第二章理论基础及相关研究 问题空间 的模拟 缩短了问题空间中的问题与解空间中的软件实体之间的距离 也 就是尽量使问题空间中具有共性的实体 其共性能够在与之对应的软件模块之间反映 出来 从而得到共享 复用 由于这种关系 使得无论是在问题空间中还是在解空间 中寻找具有共性的东西就变得自然和容易了脚j 虽然构件和面向对象联系紧密 但是对象描述的是客观实体 构件提供的是服务 构件和对象之间的区别主要在于 1 复用粒度 构件的复用粒度往往大于对象 构件能够完成一组相对完整的任 务或业务流程 对象仅能完成一些简单的系统功能 2 封装 构件的信息屏蔽能力和封装完整性高于对象 构件独立于实现语言 不仅封装系统功能 而且封装连接机制 能完全屏蔽设计信息和实现细节 对象往往依赖于特定的编程语言 仅封装系统功能 组装需要胶合代码 并 不可避免地暴露部分设计信息和实现细节 3 组装 胶合 构件的组装复杂度低于对象 构件间的组装仅需要一些易于掌 握和便于使用的组装工具 甚至构件能自行完成组装任务 对象间的胶合需 要程序开发人员使用特定的编程语言和工具编写胶合代码 4 交付 构件是可独立交付的系统构造单位 而对象不具有独立交付的能力 构件能独立交付给第三方 用于构造更大的构件或应用系统 对象只能以类 库或某种源代码文档的形式随特定的编程环境提供给编程人员 由于研究对象的不同 构件技术和对象技术不仅在底层实现细节问题上存在着差 异 而且在高层抽象设计上所关注的问题域也不尽相同 构件技术偏重于复用的规模 和易复用性 而对象技术偏重于复用的广度和实现技巧 但是两者并不是相互排斥的 而是可以在实际系统的开发过程中相互配合使用的技术 2 2 4 构件模型 构件模型 是面向构件的软件开发方法的核心 是构件的本质特征及构件间关系 的抽象描述 它将构件组装所关心的构件类型 构件形态和表示方法加以标准化 使关 心和使用构件的外部环境 如使用构件构造出的应用系统 构件组装辅助工具和构件 复用者等 能够在一致的概念模型下观察和使用构件 针对不同的需求 不同的方法采 第二章理论基础及相关研究 基于构件的虚拟仪器开发方法的研究 用的构件模型也是不同的 文献 2 9 根据用途将现有的构件模型分为描述 分类模型 规约 组装模型和实现 模型 1 构件描述 分类的模型 此类模型试图以一种综合的方式来描述构件 使得构件易于为用户所理解 易于 在库中被有效 高效地分类 存储和检索 代表性的工作有r e b o o t l 3 0 j b c l l 3 a l o a f l 3 2 此类模型需要描述所有关于构件的必要信息 包括 所有对用户查找 理解 选 择 适应性修改及使用构件有帮助的信息 所有对构件库管理者分类和管理构件及构 件间关系有帮助的信息 构件的其它属性 包括 生产者 版本 使用情况 反馈意 见 知识产权控制等 2 构件规约 组装的模型 此类模型试图描述构件的功能规约 构件对外提供什么功能 构件需要外界为它 提供什么功能 构件被用于什么语境等等 此类模型描述构件的功能和行为规约 并 通过配置这些规约来刻化系统 在用法上 使用此类模型来规约构件 并在设计级上组装构件 这正是当前i d l c d l 和a d l 研究的目的 代表性的工作有指导性模型3 c 为此类模型提供了框架 3 构件实现的模型 此类模型试图帮助人们决定如何用某种程序设计语言或以某种可执行单元的形 式来实现构建 也称基础设施模型 无论如何 构件必须被实现为某种直接可用的形 式 因此 此类模型具有非常重要的地位 主要的代表工作有 微软的c o m d c o m 3 3 1 o m g 的c o r b a 3 4 1 s u n 公司的j a v a b e a n s 和e n t e r p r i s ej a v a b e a n s l 3 5 1 2 2 5c o m 技术 c o m c o m p o n e n to b j e c tm o d e l 构件对象模型 是一种基于二进制标准与编程语 言无关的软件规范 该规范定义了怎样以一种独立于语言和位置的方式调用对象 怎 么定义和标识构件 以及怎样创建对象 基于c o m 构架的中间业务逻辑层能够很好 地采用这些特性来构建一个稳定的 易于维护和升级 能支持扩展的应用系统 c o m 基于构件的虚拟仪器开发方法的研究 第二章理论基础及相关研究 不是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实施预防医学的重要性及其疑难试题及答案
- 护理管理学基础知识试题及答案
- 护理工作中的人际关系与2025年试题及答案
- 执业护士考试模拟试卷试题及答案
- 大学语文考试的试题与答案新视角
- 行政管理多方协作试题及答案2025年
- 2025年执业医师考试睡眠医学知识试题及答案
- 护理团队合作技能考核试题及答案
- 统编教材一年级上册语文全册课时练习含答案
- 新人教版二年级上册数学1-8单元测试题(含答案)
- 职工食堂外包项目服务方案
- 医院死亡证明培训课件
- 2024山东能源集团中级人才库选拔高频考题难、易错点模拟试题(共500题)附带答案详解
- 旅游服务行业的自我品牌推广与营销
- 面部抗衰培训课件
- 医院输血反应应急预案演练脚本
- 基于PLC的网球自动发射机课程设计说明书
- 介绍哈萨克族的课件
- 高速公路事故应急处理
- 家庭分家协议书15篇
- 固体废物的可持续发展和循环经济
评论
0/150
提交评论