原帖地址:http://www.eefocus.com/csxcs366/blog/08-09/155516_8d2de.html

LABVIEW特别适合于模块化编程,模块式编程方法并非Lv的独创,在C语言中,模块化设计也是必须强调的,是非常有效的设计方法,当然C++后又出现了面向对象的设计方法,但是,随着嵌入式操作系统的兴起,对面向对象的设计方法又有了很大的争议。

labview的核心要素是数据流,但是过分滥用数据流也会有很大的问题,经常能看到一些初学者的设计,一个WHILE循环,一个屏幕都容纳不下,里面到处充斥这连线,连线端子、属性节点等,从框图上看,的确是数据流了,但是这种数据流是杂乱章的,有个形象的名字形容它,“意大利面条”,估计和中国的炒面也差不多少,总而言之,是无头绪的。出现这个问题的根本原因是没有真正理解数据流。

我们可以用水流动来生动地说明这个问题。

小溪汇聚成河流,河流汇聚成湖泊,湖泊通过出口汇聚成长江的支流,个个支流汇聚成长江。
这个过程中,水流是不断地流动的,但是针对其中每一个部分,又是一个完整的系统,他的外部接口不过是水的流入和流出,对于长江,它是不和最基本的小溪直接由关系的。从计算机编程的角度来看,这是典型的模块式结构。

模块式编程,LV中一般说的是基于组件的,这也是个概念理解的问题。组件可以理解成完成多个功能模块组成的大的模块,这个组件可以完成一复杂的功能,但是输入输出接口却很简单。从数据流的角度来说,一个组件内部,数据按照自己的规则在流动,可能是非常复杂的。但是对外却只有几个简单的数据流动通道。
这种思维方式,在实际生活中随处可见,比如汽车是由发动机、变速箱、底盘等几个系统组成,虽然每个系统内部非常复杂,但是对外接口却是非常简单的。

从LV的角度来看,就是组件的数据封装问题。

概念比较好理解,但是如何衡量我们做的程序是否模块化了?

LV 编程风格的作者提出了一个量化的方法,“模块化系数”。

他是这样定义模块化系数的:程序中VI的数量除以总的节点的数量乘以100。
这个系数越大,表明平均一个VI中所含节点数相对越少,则模块化越强。

他提出的原则是:模块化系数应该大于3.0

我们在做程序设计时,可以参考这个原则.

3、检验程序模块化指标---模块化系数-----labview宝典相关推荐

  1. JavaScript:模块化及模块化规范

    什么是JavaScript的模块化?模块化模块化,那就是先有模块,模块是什么?模块就是将一个复杂的程序按照一定的规则拆分并单独封装成一个块或者文件,每一个块内都有自己的内部数据和方法,并且会向外暴露一 ...

  2. 编程思想-模块化-产品模块化设计:产品模块化设计

    ylbtech-编程思想-模块化-产品模块化设计:产品模块化设计 产品模块化设计就是将产品分成几个部分,也就是几个模块,每一部分都是具有独立功能,具有一致的几何连接接口和一致的输入.输出接口的单元,相 ...

  3. 什么是模块化?模块化的好处?

    什么是模块化? 模块化就是将js文件按照功能分离,根据需求引入不同的文件中,源于服务器端. 模块化好处? 1.解耦 对业务进行模块化拆分后,为了使各业务模块间解耦,因此各个都是独立的模块,它们之间是没 ...

  4. 什么是模块化,模块化开发如何实现?

    相信广大前端朋友们都遇到过这么一个问题?  什么是模块化,模块化开发如何实现? 那么什么是模块化呢,时下流行的库与框架又有哪些在利用模块化进行开发呢? 今天我从以下两个方向来进行描述,如果描述不够准确 ...

  5. 什么是模块化?模块化怎么实现?

    什么是模块化?模块化怎么实现? 前言 : 增加印象,留下脚印 ,忘记还可以翻一翻 奥利给. 1,什么是模块化 公司里一个项目是有很多程序员一起开发的,例如 "多人运动" 这个项目 ...

  6. 模块化:模块化的基本概念

    什么是模块化 模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程.对于整个系统来说,模块是可组合.分解和更换的单元. 1. 现实生活中的模块化 2. 编程领域中的模块化 编程领域中的 ...

  7. osgi 模块化_OSGI –模块化您的应用程序

    osgi 模块化 由于我是模块化,低耦合,高凝聚力等的大力拥护者,所以-- 我相信这项技术是我们使用Java平台创建应用程序的突破. 使用OSGi,创建高度可扩展的应用程序非常简单,例如参见Eclip ...

  8. [Vue.js] 模块化 -- 前端模块化

    模块化相关规范 模块化概述 传统开发模式的主要问题 命名冲突 文件依赖 通过模块化解决传统开发模式的问题 模块化就是把单独的一个功能封装到一个模块(文件)中,模块之间相互隔离,但是可以通过特定的接口公 ...

  9. Modularity(模块化-无模块化)

    第一阶段:无模块化 简单的将所有的js文件统统放在一起.但是这些文件的顺序还不能出错,比如jquery需要先引入,才能引入jquery插件,才能在其他的文件中使用jquery. 优点: 相比于使用一个 ...

  10. 【机器学习】图像语义分割常用指标Dice系数 敏感性 特异性 IOU及python代码实现

    文章目录 知识铺垫 1. Dice系数和IOU 2.敏感性(=Recall).特异性和精确度(=precision=PPV) 2.1 敏感性(召回率)和特异性 2.2 敏感性和特异性之间的关系 2.3 ...

最新文章

  1. 【c语言】蓝桥杯基础练习 数列特征
  2. 内核在哪个文件夹_Apache Kafka内核深度剖析
  3. 19-spring学习-springMVC环境配置
  4. C标准库和glibc(C运行库)的关系
  5. 数组内容转qstring_用Qstring给char[]数组赋值(转)
  6. php音频添加语音,PHP生成语音
  7. 外地买房,提取公积金
  8. 【JS 逆向百例】网洛者反爬练习平台第五题:控制台反调试
  9. linux环境下内存溢出分析MAT
  10. jquery 利用CSS 控制打印样式
  11. 运维转python开发_Python运维开发基础10-函数基础【转】
  12. gitlab+jenkins+maven+docker持续集成(二)——maven安装配置
  13. 互联网共享图书馆+自习室商业计划书
  14. 计算机语言论文标准范文,计算机语言论文大纲范文模板 计算机语言论文提纲怎么写...
  15. 值得注意的两个friendster新服务:校友和web共享搜索
  16. Python库-pandas详解
  17. leapFTP 使用笔记
  18. ul li文字不对齐
  19. linux下动态库的符号冲突、隐藏和强制优先使用库内符号
  20. [计算机网络笔记14] IPv4地址—定长子网掩码和变长子网掩码

热门文章

  1. J2SE、J2EE与J2ME
  2. GRE 一个月突击攻略
  3. JAVA网络编程-TCP客户端与服务器端连接
  4. 图解CSS3----盒子模型
  5. 联想无线键盘使用方法
  6. 博弈论开发工具Gambit的Python包安装
  7. cpu性能测试那个软件准,cpu对比测试软件 CPU性能测试软件推荐
  8. 【刷题第七天】leetcode611.有效三角形的个数
  9. 更改计算机睡眠时间注册表,如何通过修改注册表开启/关闭系统休眠?
  10. 数据挖掘导论课后习题答案-第二章