- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
来自第三方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)