来自第三方的LabVIEW设计模式——面向组件的设计.docVIP

  • 2
  • 0
  • 约1.13万字
  • 约 20页
  • 2017-10-10 发布于江苏
  • 举报

来自第三方的LabVIEW设计模式——面向组件的设计.doc

来自第三方的LabVIEW设计模式——面向组件的设计

5.5 来自第三方的LabVIEW设计模式——面向组件的设计(LCOD)[上](LabVIEW design patterns from a third party - a component oriented design (LCOD)) 版本 5? 创建于: 2011-2-8 下午8:34 作者 jwdz - 最后修改:? 2011-2-18 上午7:01 作者 jwdz ?????? 面向组件的设计模式——LCOD(LabVIEW Component Oriented Design)来自于Jon Conway,Steve Watts所著的《A Software Engineering Approach to LabVIEW》一书(原版2003)。该书的译者:罗宵、周毅等,中文版书名为:《软件工程方法在LabVIEW中的应用》(中译本2006年) 。 ? ?????? 笔者相信许多LabVIEW开好者和开发者都不止一次的、认真的读过此书。但是,从直接的信息反馈来看(主要来自网评),大家对此书的内容褒贬不一。甚至有读者认为此书 苦涩难懂、不易理解。 ? ?????? 这本书的确不易读懂,笔者也曾不止一次的读过此书,尽管某些地方到现在还无法认识和真正的理解,但是每次认真读后都会有些体会。 ?????? 笔者认为:本书从软件工程的角度,提出了LabVIEW面向组件的设计模式。尽管面向组件的设计模式在LabVIEW的设计中尚未成为主流(或者根本就不会成为主流的设 计方法),但是它的设计思想和原则会给我们提供很好的设计借鉴。 ? ? 5.5.1 软件工程中好的软件——松耦合、强内聚、信息隐藏和封装 ? ?????? 与基于文本的编程语言相比LabVIEW图形化语言似乎天生就具备了好软件的要求,因为图形化代码本身就具备——松耦合、强内聚、信息隐藏、抽象的特点,应该讲这些特点 绝对是毋庸置疑的。 ? ?????? 尽管如此,在图形化设计中,我们还是会遇到这样或那样的问题。比如:程序代码的重用问题;代码维护的问题、程序运行是否安全可靠等等问题。这些问题不是图形化语言特有的 ,而是所有语言都面临的问题,也就是软件工程所要求的。如果在设计之初我们就按照软件工程的要求安排和思考设计方案,我们就会将问题降到最少、将问题的影响降到最低。 ? 图形化代码的松耦合、强内聚 ? 松耦合 ? ?????? 软件设计中的耦合指——程序模块间无关程度的度量。如果两个模块间很少交互,那么我们称之为松散耦合。如果两个模块间交互程度很高,则称之为紧密耦合。 ? ?????? 众所周知,图形化代码是基于数据流运行机制的,所以VI间的耦合(数据流动)是不可可少、必然存在的。 ?????? 但是,从耦合的角度来看,人们自然非常希望每个VI的输入、输出连线应最少,并且应该将数据处理过程尽可能的包含在VI中,输出仅仅包含最终的有效数据。 ?????? 书中提供了一个松耦合测量系统的示例。参见下图。 ? ?????????????? 图 -1 松耦合示例(中译本-图 3.7) ? ?????? 上图所示的测量系统可以完成某测试系统中的所有测量功能。你所要做的就是告诉它要测量什么,在输出端就会得到相应的数据结果(这是一个组件)。 ? ?????? 在LabVIEW中,最能体现松耦合的实例就是多功能信号发生器。如果已经确定其它参数不会发生改变,通过枚举常量就可以任意选择输出信号类型:Sine Wave、Triangle Wave、Square Wave、Sawtooth Wave。参见下图。 ? ?????????? 图 -2 松耦合的多功能信号发生器 ? ?????? 松耦合能够确保整个图形化程序清晰、可读,并且易于理解设计者的目的和用途。应该是每个图形化程序设计者所追求的终极目标。 ? ?????? 但是,在实际应用开发中我们仍然会遇到这样或那样的问题。比如:虚拟仪器本身要求有良好的、交互式的人机对话用户界面。这样就不可避免的使得数据在人机对话界面和程序框 图中传递,从而导致了VI间复杂的数据耦合关系存在。 ? ?????? 如何减少VI间复杂的数据耦合关系,簇应该是一个很好的选择。因为簇中可以包含众多的同指向的、不同数据类型的控件。 ? ?????? 面向组件的设计可以满足上面的一些要求,也是作者所一再强调采用面向组件设计的原因之一。 ? ?????? 下面我们在来看看软件中的内聚。 ? 强内聚 ? ?????? 软件设计中的内聚指——软件模块中各组成部分的相关程度强弱的度量。相关程度越强越好。 ? ?????? 对于强内聚的理解,作者给出了一个针对内聚而言比较有说服力的测试系统示例。 ? ?????? 整个测试系统是由一台示波器和一台信号发生组成,并通过GPIB控制

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档