收藏 分销(赏)

基于构件的软件复用技术研究与应用实践doc.doc

上传人:二*** 文档编号:4515856 上传时间:2024-09-26 格式:DOC 页数:42 大小:818.04KB 下载积分:5 金币
下载 相关 举报
基于构件的软件复用技术研究与应用实践doc.doc_第1页
第1页 / 共42页
本文档共42页,全文阅读请下载到手机保存,查看更方便
资源描述
基于构件的软件复用技术研究与应用实践【实用文档】doc 文档可直接使用可编辑,欢迎下载 基于构件的软件复用技术研究与应用实践 基于构件的软件复用技术研究 谷今杰  莫继红 ((湖南大学软件学院,长沙410082) 通常情况下。应用软件系统的开发过程包含以下几个阶段:需求分析、设计、编码、测试、维护等.当每个应用系统的开发都是从头开始时,在系统开发过程中就必然存在大量的重复劳动,如:用户需求获取的重复、需求分析、编码、测试的重复和文档等。探讨应用系统的本质,发现其中通常包含:①通用基本构件:是特定于计算机系统的构成成分,如基本的数据结构、用户界面元素等,它们可以存在于各种应用系统中;②领域共性构件:是应用系统所属领域的共性构成成分,它们存在于该领域的各个应用系统中;③应用专用构件:是每个应用系统的特有构成成分.应用系统开发中重复劳动主要在于前两类构成成分的重复开发. 软件复用是在软件开发中避免重复劳动的解决方案。其出发点是应用系统的开发不再采用一切“从零开始”的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需求分析结果、设计方案、源代码、测试计划及测试案例等.从而将开发的重点集中于应用的特有构成成分。 通过软件复用,在应用系统开发中可以充分利用已有的开发成果.消除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率:同时,通过复用高质量的已有开发成果时,避免了重新开发可能引入的错误,从而提高软件的质量。 软件复用指重复使用“为了复用目的而设计的软件”的过程.相应地,可复用软件是指为了复用目的而设计的软件。与软件复用的概念相关,重复使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件”的过程,或在一个应用系统中的不同版本间重复使用代码的过程,这两类行为都不属于严格意义上的软件复用。真正的复用是为了支持软件,使用“为复用而开发的软件(构件)”来更快、更好地开发新的应用系统。 复用技术在整体上对软件产业的影响却并不尽如意.这是由于技术方面和非技术方面的种种因素造成的,其中技术上的不成熟是一个主要原因。近十几年来,面向对象技术出现并逐步成为主流技术,为软件复用提供了基本的技术支持。软件复用研究重新成为热点。被视为解决软件危机.提高软件生产效率和质量的 现实可行途径。 (复用分类)软件复用可以从多个角度进行考察。依据复用的对象,可以将软件复用分为产品复用和过程复用。产品复用指复用已有的软件构件.通过构件集成(组装)得到新系统。过程复用指复用已有的软件开发过程。使用可复用的应用生成器来自动或半自动地生成所需系统。过程复用依赖于软件自动化技术的发展,目前只适应于一些特殊的应用领域。产品复用是目前现实的、主流的途径. 依据对可复用信息进行复用的方式.可以将软件复用区分为黑盒(Black—box)复用和白盒(White—box)复用。黑盒复用指对已有构件不需作任何修改,直接进行复用。这是理想的复用方式。白盒复用指已有构件并不能完全符合用户的需求.需要根据用户需求进行适应性修改后才使用。而在大多数应用的组装过程中,构件适应性修改是必需的. 软件复用按抽象程度的高低, 可以划分为如下的复用级别: (1) 代码的复用, 包括目标代码和源代码的复用.当前大部分编程语言的运行支持系统都提供了连接(L ink) 、绑定(Binding) 等功能来支持这种复用; ( 2) 设计的复用, 设计结果比源程序的抽象级别更高, 因此它的复用受到实现环境的影响较少, 从而使可复用构件被复用的机会更多, 并且所需的修改更少; (3) 分析的复用, 可复用的分析成分是针对问题域的某些事物(问题) 的抽象程度更高的解法。 软件复用有三个基本问题.一是必须有可一是必须有可以复用的对象。二是所复用的对象必须是有用的。三是复用者需要知道如何去使用被复用的对象。软件复用包括两个相关的过程:可复用软件(构件)的开发 (Development, for Reuse)和基本可复用软件(构件)的应用系统构造(集成和组装)(Development withReuse)。解决好这几个方面的问题才能实现真正成功的软件复用。 2构件技术 2.1构件技术模型 构件复用是软件复用的核心问题,因此有关构件的研究得到日益重视并且形成了软件工程学科的一个分支。在产业界正在逐渐形成一种产业模式,即构件生产商负责生产构件,构件销售商负责构件的销售,构件集成商负责构件集成.目前已经商品化的构件有微软的COM/DCOM、Sun公司的Java Bean和对象管理组织(OMG)的CORBA。 构件是一种不透明的功能实现.要通过构件模型进行构造,要能够与第三方进行合成,这样就存在构件模型标准化的问题。构件模型的标准化要能同时满足构件生产者和构件消费者需求,学术界普遍接受的是“3C"(Concept,Content,Context)模型[2],即component=(Concept,Content,Context),在这个模型中: Concept:概念.描述软件完成什么功能。描述构件的接口和语义,概念和内容(Content)能够进行通信; Content:内容,描述如何实现这个构件,一般情况下,构件的内容信息对临时用户是隐藏的.只有需要对构件作修改的用户才是可知的; Context:上下文、组件在其适用领域内的配置,通过对概念、操作和实现特征的详细说明。上下文能够使软件寻找到满足应用需求的组件。 2。2构件的开发 构件的开发技术有多种.其中比较有代表性的是CBSD技术。CBSD是CMU/SEI提出的构件设计参考模式,这种设计模式的原则是:组件具的扩充独立性:组件模型必须给出一些标准以保证独立开发的组件能够配置到公共的环境中,而不会出现不可预知的问题;开发时间短,这样会减少整个开发和维护费用;提高可预知性。 基于构件的系统来源于基于构件的设计策略,构件技术包括支持这种设计策略的产品的概念,这种设计策略与组件描述的设计模式和交互模式的构造类型非常相近,组件(即构件)反映的设计模式如图1。 图1中,①构件实现是能够在物理或者逻辑设备中执行的软件实现。一个构件可以有一个或者多个接口②.构件满足一定的规范,这里称为契约,这些契约的作用是保证独立开发的构件符合给定的规则,以便以可预知的方式进行交互并配置到标准的建造环境和运行环境④中。基于构件的系统是建立在少数不同的构件类型上.每一个构件的类型在⑤中扮演的一个特定的角色,由接口②对其进行描述。构件模型⑥是组件类型、接口和组件间相互作用的模式说明书集合.构件构架⑦提供多种服务⑧来支持和加强构件模型. 3 COTS构件 当前的软件已不再是一个简单的系统.规模越来越大,通常是一复杂的“系统中的系统"。大型软件尤其如此,从头开始做每一件事情来建造系统几乎是不可能的。于是出现了COTS(Commercial OffThe Shelf)技术.COTS构件是从市场上采购得到的软件组件,它由第三方开发。系统开发者不能访问源代码,相同的COTS构件可能有很多用户最后才能得到健壮的系统. C0码构件有以下的特征:COTS软件不能被修改,这是COTS软件的固有特性.系统集成者购买组件后,不需要对构件作修改:有时为了把所有的构件进行了太多的修改就不再被认为是COTS组件了;系统集成者对COTS构件没有升级和维护控制权,软件升级和维护是COTS组件开发者的职责。依据 COTS组件在系统中所起的作用不同。COTS分为两类:一类是一个COTS系统中,不是单一的COTS构件支配整个系统,而是由一组绑定在一起构成的;另一类是在COTS解决方案中.使用一个主COTS构件作为主解决方案。其他的传统的构件作为辅助的软件或者插件加入到系统中。 使用COTS构件突出的优点是能降低软件开发的成本.购买现有的软件比自己开发所需的成本低,软件的健壮性要高,因为市场上提供的COTS软件使用的是成熟的技术,使用这样的构件往往比自己开发的构件的可靠性要高.但是COTS构件的缺点是以“黑盒"提供给用户,没有源代码,维护困难。版本易于变化。不同COTS之间存在潜在的冲突。软件构件提供的功能过少或者过多. 4 基于Agent的软件复用技术 Agent也被称为软件Agent或智能Agent.许多研究人员依据不同的研究内容和目标对术语“Agent”赋予了不同含义.Woodridge和Jennings对“Agent”的不同定义进行了总结,认为“Agent"按其用法可分为两种.也就是Agent的两种定义[3]:弱定义和强定义.Agent的弱定义是指Agent具有的自主性、社会性、反应性、能动性、时间连续性以及面向目标的特性。Agent强定义指Agent除了具有弱定义中的特性以外,通常还具有:可移动性、理性、适应性、协作性。 面向对象技术用于对被动实体的抽象较好.但是,它无法实现对活动实体的抽象;而Agent技术能够较好地实现对活动实体的抽象.基于Agent的软件复用是软件工程的一个新的研究领域,面向Agent编程AOP(Agent-Oriented Programming)的概念是Shoham在1993年提出的。因此,软件技术的发展经历00(Object Oriented)技术后。并正在Agent技术方向发展。人工智能专家Guilfoyle在1995年就断言:10年后大多数新兴信息技术的发展将接受:Agent理论与技术手段是解决2l世纪系统建模和网络化协同的重要手段【4】。 基于构件的复用必须解决的需求有:用户能对所需要的构件进行搜索;需要有对已有复用该构件的用户版本进行升级机制;对应用该组构件生产商和用户提供一种能够用相同的技术语言交流的工具;构件生产者和构件复用者可以灵活地加入系统和从系统中撤销;Internet上基于构件复用的工具一定是复用者和生产者的环境的集成的部分。 要满足以上需求。基于组件复用的软件开发过程实际上成为被多Agent系统理解和操作的过程,这里称为“面向Agent的软件复用”。其基本思想是:在可复用的通用多Agent机构中,对Agent结构中的每一个元素都进行定义,这些元素包括Agent需要的知识、计划、行为和Agent之间的交互等,每一个具体Agent都是在基本Agent结构的基础上进行创建。 Internet环境下基于Agent的软件复用的一般结构如图2所示。 依据上述结构,构建基于构件的软件复用的多Agent系统结构时,必须要考虑的因素有:选用哪几种类型的Agent,多Agent人分工与协作,Agent知识库的建立等。构建的方法和步聚包括:识别Agent。对任务进行提炼,定义本体(Ontology),定义行为计划,表示行为和定义交互作用,构造原型。使用Java的RIM能够很好地实现通讯模块的功能,这种结构中需要对每一个实例化的Agent定义必需的知识。这些知识概括为:计划、行为、与其他Agent的交互等. 5结论 不同的复用技术,得到复用构件或软件的粒度大小不一样,其设计方法和模式也不一样。比较常用和成熟的是构件复用。对于大型系统需要更大粒度的软件复用一COTS,但其缺点是不能访问源代码,在Internet环境下,本人提出了基于Agent的软件复用和方法由Agent在网络环境下自主地进行构件的寻找和匹配,实现软件的复用.软件复用是解决软件危机的有效途径,促进了软件向产业化和健康化的方向发展. 参考文献 1杨美清.软件复用及其相关技术。计算机世界.1990—03—15:(5) 2 Tveit A。A survery of agent-oriented software engineering.http://www.eleomag.corn/around/2003.5 3齐艳平.面Agent与面向对象.计算机科学 4 Syeara K Desker K,Pannu A。et a1.Distributed intelligent agents。http://www.cs。eemu.Edu/softanents/。1996 5 Sommervile L Software engineering(4th ed).Mass:Addison-Wesley, Reading,1992 6 Giorgini P,Kolp M,Mylopoulos J.Multi-agent and software agent and software architecture:a comparative case study.http://www。cs. Toronto.end,2003;4 7 Nwosu I C. Workshop on componet based software engineering processes.http://www.11WOU.net/papem,2002.5 8 Jennings N R.A roadmap of agent a researsh and development. http://citeseer.ni。nec。eom/Jennings98 roamp.htral,2003;10 基于构件的软件复用技术应用研究 武伟,张明新 (1.西北师范大学数学与信息科学学院,甘肃兰州730070; 2。山西大同大学数学与计算机科学学院,山西大同037009) 2软件复用的核心技术 构件(Component)是指应用系统中可以明确辨识的构成成分.而可复用构件(Reusable Component)是指具有相对独立的功能和可复用价值的构件.软件构件技术(Software Component Technology)是支持软件复用的核心技术,是近几年来迅速发展并受到高度重视的一个学科分支.其主要研究内容 如下: 2.1建立构件库 简单来说,构件库是一个对软件构件统一进行形式化包装、分类描述、存储管理、检索浏览的场所.软件构件库是大范围内、系统化实施软件复用的必备基础设施.要复用软件构件有两个前提条件,一是所需的构件已经存在,二是复用者能方便地找到所需的构件.由于软件构件蕴涵了大量的信息,对其准确、简洁地描述极其困难,如果没有一个统一的场所对其进行统一的描述包装,大规模的软件复用是不可能实现的,所以建立大规模的公共构件库是必须的.建立自己的构件库是实现复用的基础,可获取的构件有公共构件和商业构件,前者质量无法保障,必须对构件进行测试;后者不能修改源码,只能是黑盒使用.此外,可以自己开发一些简单的构件.这样通过不同途径不断的积累自己的软构件库,开发的复用率会逐渐提高。 2.2构件分类 对于一个应用系统通常包插i类成分: 1)通用基本构件:是特定于计算机系统的构成 成分,如基本数据结构、用户界面元素等,它们可以 存在于各种应用系中; 2)领域共性构件:是应用系统所属领域的共性 构成成分,它们存在于该领域的各个应用系统中; 3)应用专用构件:是应用系统的特有构成成分。 应用系统开发中的重复劳动主要在于前两类构成 成分重复开发。其中通用基本构件层为底层,整个 集成环境和运行环境都使用的构件,通用性好,粒 度最小,可广泛复用,属于黑盒复用;领域共性构件 完成系统主要功能,但通用性不如前者,大部分使 用前须进行修改和测试,复用方式属于白盒复用。 2.3构件管理 构件库随着规模的扩大和应用时间的增长,构件的管理难度也越来越大,作者设计一管理工具,在此管理工具中对入库构件需登记以下信息:构件名称、构件序号、制作日期、修改日期、功能分类、功能描述、使用环境、构件名称、版本、保存位置和复用次数.管理工具提供了添加、删除、修改、检索、统计等功能,实现了构件的系统管理,通过该工具对构件进行管理基本解决了构件保存、版本和筛选的问题,提高了软件复用的效率. 2。4构件组装 构件的组装指将构件库中或能直接使用的构件,或经过适应性修改后的构件以及为当前项目新开发的构件进行整合,最终构成新的目标软件的过程.基于构件的开发通过构件组装得到最终应用系统,构件组装必须以某个框架或架构为蓝图,实际可以看作是用构件实例将软件构架具体化的过程.构件组装技术以构件模型、构件一构架描述盒开放系统技术为基础,成功的组装必须以开放构件模型和规范的构件描述(包括对构件连接和交互协议的严格定义)为基础,构件实例必须符合系统中其他部分的要求.分布式软件总线、事件登记和回调、构架描述语言、脚本语言和代码生成技术都为架构组装指出了希望之路;DCO,JavaBean等运行级的分布式构件模型的出现和ORB与Internet的引入,是构件之问的独立性和互操作性变得更强,这些技术为构件组装,尤其是运行级的构件组装提供了有力的支持。 2.5构件标准化 构件模型的标准化和构件库系统的标准化. 3基于构件的软件开发基本思想 基于构件软件开发方法的思路是借鉴传统工业生产模式,首先是分析消费者需求,设计整体结构框架,根据需要到构件库中选择能完成相应功能的构件,之后组装应用系统.如果所需构件不存在,就去购买、定制或自行开发新构件. 构件生产组和系统开发组问严格按照生产者一消费者关系进行任务分工:经验工厂负责生产、提供构件,项目组不再编程,而是通过从经验工厂中请求所需的构件集成组装而得到最终所需的系统.经验工厂的活动分为同步活动和异步活动.同步活动指配合项目组的活动,接收构件查找请求或定制请求,为项目组服务。异步活动指有目的的构件生产或对同步活动中的构件进行再工程以提高构件的可复用性. 4软件复用技术的应用 作者【本文】把软件复用技术应用在管理信息系统中,简介如下: 4.1系统分析 管理信息系统(MIS)包括以下模块: 1)信息管理模块.实现各类信息的添加、删除、修改、审核等功能; 2)信息查询模块.实现对各类数据信息的查询功能; 3)信息输出模块.实现数据的显示,报表生成和打印功能; 4)用户管理模块。实现对各类用户信息的输入、修改、删除和用户权限分配功能以及用户相关信息统计功能; 5)部门管理模块。实现各个部门管理的分配、修改,新部门的添加以及老部门的更新功能; 6)访问统计模块.实现系统访问次数的统计,包括日访问量、周访问量、月访问量和年访问量。对来访的IP地址进行统计,并提供查询功能; 7)异常处理模块.异常处理模块继承了Java自身的异常处理类实现了对自定义异常的处理。 4。2 软件复用技术在系统中的应用 MIS主要是利用已有构件组合集成生成软件产品。它的开发过程与传统方法不同,大体分为以下几个阶段: 1)需求分析和构件的查找。首先要对业务需求进行分析,然后提炼出需要的构件,最后对构件进行检索; 2)构件的裁剪。有些构件不能直接使用,须对其进行扩张或者修改; 3)构件的生成.裁剪后得到的构件和新开发的构件,都必须在构造应用工具上进行测试,保证构件功能及接口规范的实现,称之为构件的生成; 4)构件的组装.构件的组装是把构件装配成一个整体.我们需要用开发工具制作一个应用框架,这个框架是整个应用系统的一个骨架,这个骨架在设计时可以通过领域分析方法设计成在某一领域可复用的构架. 在MIS中底层的通用基本构件包括基本界面以及常用菜单,这些构件不需要修改直接就可以应用到系统中;报表生成、打印、数据库连接池、异常处理和访问统计这些领域共性构件无需修改,几乎每个系统都能用到;信息、部门和用户的添加构件、删除构件、修改构件以及查询构件等领域共性构件实现系统的主要功能,根据应用的不同,需进行修改和调试才能复用。用户权限分配对不同的应用系统差别较大,是应用系统的特有构成成分,是应用专用构件,需结合应用重新开发。可见随着构件层次的升高,构件的功能越来越强,通用性也越来越差。由于应用系统的多样性,有些功能无法用构件实现,可将其制成专用构件,与复用构件一起集成到应用框架。 参考文献 『1】杨芙清,梅宏,李克勤.软件复用与软件构件技术【J】.电子学报,1999,27(2):68—75. [2】李海东,杨社堂.C/S模式应用开发中软件复用的研究【J].太原理工大学学报,2006,37(S1):117—118. 【3】张春枝,王弘.基于C/S与B/W/S混合模式的MIS系统设计[J】.计算机应用研究,2001(10):123-125. 【4]黎娅.基于构件的软件复用技术应用研究[D】.重庆:重庆大学计算机科学与技术学院,2008. 【5]Pead Brereton,David Budgen.Component—Based Systems.A Classification of Issues[J1。IEEE Computer,2000,33(11):54—62 5构件的选取 构件的选取主要包括获取和评选两项工作。 构件获取是指有目的构件生产和从已有系统中挖掘提取构件.在获取阶段,确定构件的性质,包括构件功能和构件接口,以及构件的可靠性、可用性等质量方面的因素,在某些情况下一些非技术因素也需要考虑,如构件生产厂商的市场份额、过去的商业表现和过程成熟度等。构件提取的主要途径有:1、从现有的构件中获得符合要求的构件,直接使用或作适应性修改,得到可复用的构件;2、”通过遗传工程,将具有潜在复用价值的构件提取出来得到可复用的构件;3、从市场上购买的商用构件;4、开发新的符合要求的构件。 构件的评选是对构件的可靠性、正确性进行验证,从而从候选构件中选择最合适的构件. 基于可复用构件的软件开发过程 曹春萍,龚崇栋)上海水产大学学报 2005年9月 第14卷第3期 (1上海理工大学计算机工程学院,上海200093;)2 上海理工大学现代化教学中心,上海 200093) 软件复用技术的优点可总结如下: ( 1) 提高软件生产率, 减少开发时间和费用。生产率的提高不仅体现在代码开发阶段, 在分析、设计及测试阶段同样可以利用复用来节省开销。用可复用的构件构造系统还可以提高系统的性能和可靠性, 因为可复用构件经过了高度优化, 并且在实践中经受过检验; ( 2 ) 提高软件质量, 开发出来的软件可靠性高;(3) 降低开发风险; (4) 简化软件开发流程, 使得软件开发易于管理; (5) 降低维护的难度、工作量和费用, 且有可能延长运行期以提高软件系统的效益。由于使用经过检验的构件, 减少了可能的错误, 同时软件中需要维护的部分也减少;(6) 共享有关关键系统的知识, 便于学习系统结构和建立好的系统, 促进软件开发过程的标准化, 易于提供文档资料等。【本文】 基于软件复用的CRM系统的柔性化设计应用发展研究 袁 琦, 施一明(11浙江旅游职业学院, 浙江杭州 311231; 21浙江大学智能系统与控制研究所, 浙江杭州 310027) 科技管理研究  2010年第5期 摘 要:LabVIEW被认为是虚拟仪器技术最有影响力和发展前景的软件平台。本文阐述了LabVIEW 虚拟仪器的设计原理,详细介绍了LabVIEW的发展历程和研究进展,并举例介绍其应用现状。最后对基于LabVIEW虚拟仪器技术的前景做出展望。 关键词:LabVIEW 虚拟仪器 发展历程 研究进展 应用现状  1 引言  在这个信息技术日新月异的时代,利用计算机和网络等技术对传统产业进行改造已是大势所趋.虚拟仪器技术正是计算机技术及网络通信技术与传统仪器技术融合的产物。美国国家仪器公司(National Instruments,简称NI)于20世纪80年代中期,首先提出了“软件就是仪器(The Software is the Instrument)”这一虚拟仪器新概念。所谓的虚拟仪器(Virtual Instrument,简称VI),就是在以计算机为核心所组成的硬件平台上,利用其显示功能虚拟仪器控制面板,测试分析功能由软件实现的一种计算机仪器系统。虚拟仪器技术充分利用了最新的计算机技术来实现和扩展传统仪器的功能,一直成为发达国家自动测控领域的研究热点。虚拟仪器的核心是仪器软件化设计理念.近年来,世界各国的许多大型自动测控和仪器公司均相继研制了为数不少的虚拟仪器开发软件平台,如美国HP公司的HP—VEE与HP—TIG,Tektronix公司的Ez-Test和Tek—TNS,以及HEM Data公司的Snap—Master平台等,但最早和最具影响力的要数NI公司的LabVIEW开发环境。  LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器集成环境)是NI公司推出的具有革命性的图形化虚拟仪器设计平台,它内置信号采集、测量分析与数据显示功能,摒弃了传统开发工具的复杂性,在提供强大测控功能的同时,还保持系统的灵活性,让您可以无缝地集成一套完整的应用方案[1]。虽然只有近二十年的发展史,可它已经渗透到各行各业,成为科学家和工程师们进行自动测控与仪器应用开发的首选工具.本文就LabVIEW虚拟仪器技术的研究、现状及发展前景作一个概述。 2 LabVIEW虚拟仪器设计原理 虚拟仪器系统一般由硬件和软件组成,硬件是虚拟仪器的基础,而软件是实现虚拟仪器的关键,任何用户都可以通过修改软件的方法很方便地改变、增减仪器系统的功能和规模。虚拟仪器技术的出现,开辟了用户自主设计仪器的新时代,为各层次设计者提供了广阔的思维空间.可以说,计算机是虚拟仪器的心脏,软件是虚拟仪器的灵魂.所以,计算机硬件技术和软件技术的发展都是推动虚拟仪器技术发展的决定性因素。构造一个虚拟仪器系统,基本硬件确定以后,就可通过不同的软件实现不同的功能。所以,提高计算机软件编程效率就成了一个非常现实的问题. 2。1 虚拟仪器系统的硬件构成   虚拟仪器系统的硬件主要是由个人计算机或者工作站和硬件接口模块组成。其中计算机是主体,主要用来提供实时高效的数据处理性能。硬件接口模块包括仪器硬件和各种通用接口总线,主要用来采集、传输信号.仪器硬件如各种传感器、插入式数据采集卡(DAQ)、信号调理器等。通用接口总线用来把独立的仪器连接到计算机上,如RS232串行总线、GPIB通用接口总线、USB通用串行总线、VXI总线和PXI总线等,可以借不同接口总线的沟通,将虚拟仪器、带接口总线的各种电子仪器或各种插件单元调配并组建成为中小型甚至大型的虚拟仪器自动测试系统。因此计算机和硬件接口模块组成了虚拟仪器测试硬件平台的基础。目前较为常用的虚拟仪器系统是数据采集卡系统、GPIB仪器控制系统、VXI仪器系统以及这三者之间的任意组合。 2。2 LabVIEW虚拟仪器应用程序的构成   LabVIEW是NI公司推出的一种基于图形的开发、调试和运行程序的集成化环境,是目前国际上唯一的编译型图形化编程语言。它把复杂、烦锁、费时的语言编程简化成用菜单或图标提示的方法选择功能(图形),再用线条把各种功能(图形)连接起来。LabVIEW中编写的源程序,很接近程序流程图。所以,只要把程序流程框图画好了,程序也就差不多编好了。 LabVIEW图形编程语言中的基本编程单元是VI(Virtual Instrument,虚拟仪器),VI包括三个部分:前面板(Front Panel)、框图程序(Block Diagram)和图标(Icon)/连接器(Connector)。前面板既接受来自框图程序的指令,又是用户与程序代码发生联系的窗口.这个窗口模拟真实仪表的前面板,用于设置输入和观察输出,输入量称为控件(Controls),输出量称为指示器(Indicators)。当把一个控件或指示器放到前面板上时,框图中相应地放置一个端子(Terminals),这个端子不能随意被删除,只有删除它对应的控件或指示器时它才随之一起被删除.用户可以使用多种图标,如旋钮、开关、按钮、图表、文本框、图形等,使前面板易看易懂。 2。3 LabVIEW虚拟仪器的特点 LabVIEW给用户提供了一个理想的程序设计环境和虚拟仪器开发平台,面向的是没有编程经验的用户(尤其是不熟悉C语言或Basic语言的用户),而不是编程专家,它使得科研和工程人员可以摆脱对专业编程人员的依赖。因此LabVIEW适合于从事科研、开发的科学家和工程技术人员,被誉为工程师和科学家的语言。作为一种高水平的程序设计语言,同传统的编程语言相比,可以节省大约80% 的程序开发时间,而其运行速度却几乎不受影响,体现了极高的效率。 LabVIEW以其直观简便的编程方式、众多源码级的设备驱动程序、多种多样的分析与表达功能支持,满足用户的不同需求。 其特点主要体现在以下几个方面: ①LabVIEW不同于基于文本的编程语言(如VB和VC),它是一种完全图形化编程语言——通常称为G编程语言(Graphical Programming Language),用图标代替文本代码创建应用程序,简明直观、易学易用. ②LabVIEW的前面板是模拟真实仪表的前面板,但是它的功能却是真实的,能够代替实际的仪器发挥作用。 ③LabVIEW使用数据流程序模式,可同时执行多个LabVIEW子程序. ④LabVIEW中的VI具有模块化结构和层次化结构,每一个VI可以单独执行,或者被其他程序当作子VI来调用。 ⑤LabVIEW 提供了各种各样的、功能强大的虚拟仪器集成函数库和专用程序,以便用户能够快速组建自己的应用系统。 ⑥LabVIEW提供DLL接口、CIN(C Interface Node)节点,使得其成为一个开放的开发平台;还直接支持动态数据交换(DDE)、结构化查询语言(SQL)、TCP和UDP网络协议等。 ⑦LabVIEW采用编译方式运行32位应用程序,解决了用解释方式运行程序的其它图形化编程平台运行速度慢的缺陷。 ⑧支持多种操作系统平台,如Macintosh、Power Macintosh、HP-UX、Sun SPARC、Windows 3.X/98/2000/NT等.在以上任何一个平台开发的LabVIEW应用程序都可以直接移植到其它平台上。 3 基于LabVIEW的虚拟仪器技术发展历程与研究进展 进入80年代,计算机在测试与控制领域应用越来越多,NI的工程师们意识到:需要一种强大的软件平台,让用户通过他们的计算机获得更简单有效的测试与控制。苹果公司的Macintosh为这种即将诞生的图形化软件语言提供了一个最好的环境:G语言。不久后,也就是1983年6月,NI为基于计算机的测量和自动化开发出的一个软件包——LabVIEW问世。它的目标是简化程序的开发工作,让工程师和科学家能充分利用PC机的功能,快速简便地完成自己的工作[2]。1986年10月推出的LabVIEW 1.0 For Macintosh引发了仪器工业的革命。1990年1月,Macintosh机的第二版推出,它提供了图形编译功能,使得LabVIEW中的VI可以与编译C语言一样的速度运行。1992年,LabVIEW的多平台版本问世,使其可以在Macintosh、Microsoft Windows环境以及Sun Solaries等平台上运行。1993年10月,LabVIEW 3.0版本开发完成,同时提供给用户的是一个应用系统生成器(Application Builder),它使得LabVIEW的VI变成一个可以独立运行的程序[3]。为了支持更多的操作系统平台,1994年4月,LabVIEW for Windows 32推出,紧接着在同年10月又推出了LabVIEW for power Macintosh。1995年10月,LabVIEW for Windows 95开发成功.1997年5月,LabVIEW 4.0版本问世 。1998年2月,版本升级到LabVIEW 5。0 。1999年2月,LabVIEW for Linux问世,同年NI公司推出了基于Windows 95/Windows NT4.0的LabVIEW 5.1,它特别增加了网络功能,借着它的新NI DataSocket技术,用户可与其Internet启动应用程序共用数据,不用担心网络协议或数据格式,从而提高了开发网络应用程序的能力。2000年8月LabVIEW 6i 问世,不仅适用于更多的操作系统平台,而且将智能化测量与控制技术进一步扩展到了Internet网。2001年12月,版本升级到LabVIEW 6。1.2003年5月,NI公司推出了LabVIEW 7 Express版本,这是该公司LabVIEW图形化编程语言全系列产品的一次重要升级。它极大地简化了测量和自动化应用任务的开发,同时还将LabVIEW使用范围进行了扩充。其新特性包括Express VI(虚拟仪器程序)和交互式仪器控制与数据采集,并新增RT(实时)、FPGA和PDA模块。一年后,LabVIEW 7。1迅速推出,它将Express技术扩展到自动化测量技术和RT应用系统中. 经过二十多年的发展,现在的LabVIEW已经成为一个功能强大而又灵活的虚拟仪器和分析软件应用开发工具。基于LabVIEW的虚拟仪器技术的研究是虚拟仪器适应形势发展的必然要求。随着近年来互联网技术的发展,虚拟仪器网络化已经成为研究的热点之一。虚拟仪器不再局限于一台独立的PC机,仪器使用联接功能来分配工作任务变得越来越普遍,最典型的例子就是超级计算机、分布式监控设备及数据/结果远程可视化。另外,商业计算机(PC机)技术开始逐渐与嵌入式系统融合,虚拟仪器的功能也在进一步扩展,包括了更多嵌入式和实时功能.随着消费者对智能型汽车、电器和住宅等消费品需求的增加,嵌入式系统仍然会保持迅猛的发展势头。它的发展促进虚拟仪器实用性的开发,使其能应用到更多不同的领域中。下一代虚拟仪器将能够快速方便地与蓝牙(Bluetooth)、无线以太网和其他标准的网络技术融合.此外,虚拟仪器软件还要能更好的描述与设计分布式系统之间的定时和同步关系,以便帮助用户更快速地开发和控制这些常见的嵌入式系统[4].  4 基于LabVIEW的虚拟仪器技术应用现状  LabVIEW自诞生以来,在研发设计、实验测试验证、生产测控等方面取得了广泛的应用,遍布电子、机械、通信、汽车制造、生物、医药、化工、科研、教育、军事等诸多行业领域.从交通监控系统到大学实验室,从部件自动测试到工业过程控制都有LabVIEW的存在,尤其在测试与测量领域,LabVIEW更是成为工业标准,其国际市场的占有率高达65%,远远超过了其竞争对手[5]。这些都充分表明LabVIEW应用的广泛性和实用性。  目前,虚拟仪器在发达国家中的设计、生产、使用已经十分普及。在美国,虚拟仪器系统及其图形编程语言已作为各大学理工科学生的一门必修课程。美国斯坦福大学的机械工程系要求三、四年级的学生在实验时应用虚拟仪器进行数据采集和实验控制.美国Geomatica公司利用基于LabVIEW的虚拟仪器技术开发的一套AgriMate自动灌溉系统,已成为当地农民监控用水、降低费用的有效工具[6].阿尔卡特公司采用LabVIEW在很短的时间里开发了一套自动测试平台,用于测量Litespan系统中ISDN电话设备的比特误码率(BER)。挪威CARDIAC公司开发的基于LabVIEW 平台的测试海洋石油、大气、水流的MPFM系统[7]已经成功应用。在欧洲外壳石油钻探平台,LabVIEW实时软件运行在紧凑型FieldPoint I/O模块上,测量石油和天然气的压力和液位[8]。 我国虚拟仪器的设计、生产、使用起步不久。从90年代开始,国内的一些大学相继开展了虚拟仪器系统的研究与开发工作,如:清华大学、哈尔滨工业大学、重庆大学、国防科技大学、成都电子科技大学、中国科技大学等[9]。现在,国内已经有不少公司、科研院所进行虚拟仪器技术的研究。清华大学用G语言和虚拟仪器提升电工实验教学水平,改善了实验条件;该校机电系以LabVIEW 6i软件为平台,采用NI公司的多功能数据采集卡,并结合自行研发的采集装置,开发了一套具有采集分析和特征提取功能的先
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服