LabVIEW的软件工程方法.doc

LabVIEW的软件工程方法.doc

ID:60719337

大小:519.50 KB

页数:24页

时间:2020-12-10

LabVIEW的软件工程方法.doc_第1页
LabVIEW的软件工程方法.doc_第2页
LabVIEW的软件工程方法.doc_第3页
LabVIEW的软件工程方法.doc_第4页
LabVIEW的软件工程方法.doc_第5页
资源描述:

《LabVIEW的软件工程方法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、LabVIEW的软件工程方法1.序言本文将会介绍一些关于LabVIEW的系统设计、实现的方法。我希望读者朋友们通过阅读本文,在仔细思考、比较后能得出自己的结论,形成自己独有的设计和实现方法。2.软件设计的原则在讨论更进一步的细节之前,我们先思考一个问题:什么是好的软件?我个人认为,好的软件必须:(1)对于小的需求变动,程序需要改动的地方少;(2)在(财政)预算范围内,程序能按时完成;(3)能实现(几乎)所有的预期功能;(4)使用简单;(5)方便维护;(6)运行良好;(7)错误处理得当;(8)安全;(9)可靠

2、性好。你有过接手别人项目的经历吗?如果有的话,那么你肯定不会对以下情况陌生:(1)别人的程序总是显得结构复杂、编写的方式很奇怪;(2)几乎没测试过、没有文档说明、算法看不懂;(3)改动别人的程序总是比预期花费的时间长,甚至一个小小的改动就能导致整个程序的崩溃。我有过以上痛苦的经历,所以对我来说:简单的程序好,复杂的不好;能把复杂问题简单化的设计就是好设计。3.改进设计的要点怎样尽量把复杂问题处理得简单呢?虽然LabVIEW不是面向对象编程语言,但是我们可以借鉴面向对象的思维方法。例如耦合(Coupling)

3、、黏合(Cohesion)、信息隐藏(Informationhiding)和抽象(Abstraction)就是不错的思维方法。关于耦合、黏合、信息隐藏和抽象的概念可以去查看面向对象方面的资料,我这里就不赘述了。3.1耦合图3-1紧耦合(Bad)如图3-1中所示的VI有相当多的输入、输出参数,看起很复杂。请大家仔细的观察,然后思考这个问题:是否所有的参数对我们要解决的问题来说都是必不可少的?不一定,也许作者只是想把它当“连接器”使用,通过它把其它的VI连起来而已。图3-2松耦合(Good)如图3-2中所示,这

4、个命名为“MeasSystem”的VI是一个松耦合的典型,它的设计思想是:让系统中所有的测试功能都包含在MeasSystem.vi中。其中“Command”输入参数是一个类似下拉菜单的枚举型控件(自定义的枚举型控件更佳),通过它你可以选择你想要完成的测量任务;“Measurement”和“errorout”两个输出参数则分别输出测量的结果和状态。这样做的好处将在下面“黏合方式的对比”介绍。3.2黏合想象一下:如果一个程序中像图3-1中那样的VI有5、6个左右,并且它们从左到右像糖葫芦那样串起来连成一行,会是

5、一个什么样情况?这些VI之间的连线很难做到没有交叉,多半会彼此搅成一团。如果隔个一年半载后,让你对系统进行维护,而且这个系统中有n个像这样搅成一团的程序……这将是一个噩梦。所以,站在系统维护性的角度来看,这样的系统它的黏合性是差的。图3-3WordControl.vi如图3-3所示,“WordControl.vi”是一个利用ActiveX控制Word的程序,它把系统必须用到的Word功能封装在了里面。同图3-2所示的程序类似:“Command”选择Word的功能;“errorout”输出执行状态;因为Wor

6、d的特殊性(与仪器相比),它多了一个输入参数“StringIn”(用来输入Word路径等),少了一个“Measurement”的输出参数。很显然,“WordControl.vi”也是典型的松耦合方式。图3-4WordControl的前面板图3-4所示的是WordControl的前面板,它分成3块:Input、Local和Output。这三块分别对应输入、中间(局部)和输出变量。图3-5WordControl的应用图3-5所示的是WordControl的一个应用程序,它依次实现的功能是:打开Word文件、跳转

7、到书签、插入文字、保存文档、关闭Word文件。可以看到:每调用一次“WordControl.vi”,它就“专心”的完成一项功能。这样做的好处有3个:(1)如果在调试时出了问题,可以很方便的查出哪部分出了问题;(2)因为控制Word的功能都集成在一个VI中,所以如果要对这个VI进行测试,可以对每个Word的控制功能逐一测试,这样测试就条理清楚;(3)如果需要添加控制Word的功能,只需要在“Command”枚举变量里添加功能的名称,再添加一个新case分支就行了,其它地方不需要更改。3.3信息隐藏请先看一个常

8、见的案例:某个系统需要用到DIO卡来控制LED灯的亮灭和继电器的通断。在测试时,当继电器闭合后,系统的某个相应单元会连接到电源;继电器断开,这个单元就会与电源断开。此外,LED起指示灯的作用,它用来告诉用户某个单元是否通电。一般情况下,可以通过设置DIO卡端口(port)和通道(channelorbyte)的值,来控制DIO的输出。为了更方便的说明问题,我们假设DIO卡对LED灯的控制是负逻辑(ture=灭,fa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。