行业资讯

帮助中心 >  产品文档 >  开发 >  何时该采用LVOOP技术开发应用程序

LabVIEW 支持多编程范式的开发,作为一名LabVIEW的开发者一定要合理应用开发范式,避免不必要的滥用LVOOP编程技术,适宜采用LVOOP技术来开发的程序类型的主要有:

 

  1. 需要长期维护的VIs

  2. 大型复杂的应用程序

  3. 需要团队多人合作的程序

 

(1)需要长期维护的程序

LabVIEW在很多电信、汽车、仪表、电力和轨道交通等传统行业中都有着广泛应用,其中很多工程实用程序都需要长期的使用与维护,其周期往往长达几年乃至十几年,在如此长的软件生命周期中,必然会受到外界各种因素的变化影响,例如:使用的测试硬件设备故障需要更换新的替代型号、测量结果数据报告格式更新换版要求、测试依据的方法变化或新增等等,通过面向对象编程技术中的合理抽象,并针对稳定抽象的接口编程,应用继承和动态分配技术可以很好的应对相关扩展变化带来的影响,从而能够更好的继续发挥程序功能作用,并能显著降低维护成本;此外,封装成立类的模块,相比于函数模块封装形式,封装层级更高,更加鼓励和强调关注点分离,可以有效的降低维护人员的认知成本,从而使得代码更加容易阅读和扩展维护。

 

(2)大型复杂应用程序

大型复杂应用程序可以从复杂性、灵活性和复用性三个方面来分析为什么面向对象技术相比面向过程更具有优势。

  • 复杂性

应对程序的复杂性,宜采用分而治之的设计思路,对程序整体逻辑功能进行分层分块处理,以测控程序为例,一般从上到下分为四个层级:用户界面层、测试序列调用层、测试功能层、硬件驱动层,层与层通过稳定的抽象接口进行服务调用;在每个层级中又可以进一步细分为不同的功能模块,功能模块之间也是通过抽象封装来分解不同的功能。面向对象编程的技术能够提供更好的层级抽象接口和模块接口实现,便于复杂程序的逻辑功能分层分块分解处理。

  • 灵活性

大型程序往往需要考虑多种可互换的选项,并且可以灵活组合相关逻辑功能,例如测量过程中数据采集可能要求需要提供快速测量,也可能要求批量测量,或者特殊时序采样测量,灵活多样性带来了程序开发编写的复杂性。面向对象编程更强调对算法策略的本质抽象与封装,形成相关继承关系的层级类族,并使用同一的抽象接口来支持多样可选性。

  • 复用性

大型复杂应用程序不光希望程序底层的功能模块被复用,由于大型复杂程序开发周期长,设计与验证重构工作量大,更希望达到上层程序框架被复用;面向对象编程技术中的依赖反转原则和多态手段将依赖关系进行控制,提供了整体插件式的程序架构,并让高层策略组件与底层具体实现组件相分离,提供更好的程序架构的复用性。

 

(3)需要团队多人合作开发的程序

开发软件最少需要三种不同立场的角色来共同协作完成:客户、开发人员和测试人员。一般来说,通常是由客户方(产品负责人或者是需求分析师)来决定需求,制定需求分析报告、开发验收测试和设定将要开发功能的优先级。软件开发人员专注于实现客户的需要并确保实现的代码能够满足验收测试的要求。测试人员关注于帮助客户创建验收测试并帮助开发人员通过哪些测试,这些角色和职责本身就体现了关注点分离的特点。


而一般使用LabVIEW作为开发工具的工程师们则都是个人独狼式的开发方式居多,该方式无需与他人进行沟通和协作来共同开发软件产品,往往是一人身兼数职:自己开发程序代码(开发人员角色),满足自己使用需求(客户角色),开发文档和需求文书则基本上没有,依仗着脑子好—全都记在心中,日常实际工程使用代替了测试,这样的程序往往受限于开发人员个体的精力和时间较难形成大型程序。


面向对象技术对程序进行分层分解、继承多态实现的依赖反转,鼓励形成插件框架,结合PPL物理封包形式,进而变成各个功能模块可以相互更新以及独立部署,非常便于不同的团队并行开发,从而具备了相互独立的开发能力。

 


另外,不建议使用LVOOP技术的程序类型主要有:

  1. 为了快速开发的简单VI的测量程序,

  2. 某种试验验证性质的功能程序


LabVIEW 非常适宜开发快速原型程序,因此如果程序是为了一次功能验证的程序,或者是简易的工具类应用小程序,则不适合采用LVOOP技术来开发,这是因为与过程编程相比,使用面向对象技术开发程序时,其设计需要更多的面向对象分析与开发迭代验证时间,导致面向对象开发过程繁琐,开发成本高昂。

 

最后,除了依据程序类型来判断如何选择编程开发范式外,另外的重要考虑因素就是开发人员的LVOOP的技能水平问题,学习LVOOP需要经历较为漫长平台效应,即很长时间都很难使用面向对象编程思想去解决实际工程问题,当然,也就无法理解面向对象编程范式的优势与价值所在,再加上面向对象程序的本身设计开发的高昂成本,很多开发人员都对LVOOP有较强的抵触心理。


另外,还有的开发者错误地认为用了LVOOP编程语言元素的程序就一定能获得面向对象的强大好处,缺乏对面向对象编程设计原则、模式和框架的理解与掌握,致使程序项目陷入开发泥潭;而在团队协作开发中,往往要求团队成员要具备初级的LVOOP的编程技能;以上这些因素都是开发者在采用何种编程范式需要进行综合考量的!


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: