- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
LabVIEW 支持多編程范式的開發,作為一名LabVIEW的開發者一定要合理應用開發范式,避免不必要的濫用LVOOP編程技術,適宜采用LVOOP技術來開發的程序類型的主要有:
需要長期維護的VIs
大型復雜的應用程序
需要團隊多人合作的程序
(1)需要長期維護的程序
LabVIEW在很多電信、汽車、儀表、電力和軌道交通等傳統行業中都有著廣泛應用,其中很多工程實用程序都需要長期的使用與維護,其周期往往長達幾年乃至十幾年,在如此長的軟件生命周期中,必然會受到外界各種因素的變化影響,例如:使用的測試硬件設備故障需要更換新的替代型號、測量結果數據報告格式更新換版要求、測試依據的方法變化或新增等等,通過面向對象編程技術中的合理抽象,并針對穩定抽象的接口編程,應用繼承和動態分配技術可以很好的應對相關擴展變化帶來的影響,從而能夠更好的繼續發揮程序功能作用,并能顯著降低維護成本;此外,封裝成立類的模塊,相比于函數模塊封裝形式,封裝層級更高,更加鼓勵和強調關注點分離,可以有效的降低維護人員的認知成本,從而使得代碼更加容易閱讀和擴展維護。
(2)大型復雜應用程序
大型復雜應用程序可以從復雜性、靈活性和復用性三個方面來分析為什么面向對象技術相比面向過程更具有優勢。
復雜性
應對程序的復雜性,宜采用分而治之的設計思路,對程序整體邏輯功能進行分層分塊處理,以測控程序為例,一般從上到下分為四個層級:用戶界面層、測試序列調用層、測試功能層、硬件驅動層,層與層通過穩定的抽象接口進行服務調用;在每個層級中又可以進一步細分為不同的功能模塊,功能模塊之間也是通過抽象封裝來分解不同的功能。面向對象編程的技術能夠提供更好的層級抽象接口和模塊接口實現,便于復雜程序的邏輯功能分層分塊分解處理。
靈活性
大型程序往往需要考慮多種可互換的選項,并且可以靈活組合相關邏輯功能,例如測量過程中數據采集可能要求需要提供快速測量,也可能要求批量測量,或者特殊時序采樣測量,靈活多樣性帶來了程序開發編寫的復雜性。面向對象編程更強調對算法策略的本質抽象與封裝,形成相關繼承關系的層級類族,并使用同一的抽象接口來支持多樣可選性。
復用性
大型復雜應用程序不光希望程序底層的功能模塊被復用,由于大型復雜程序開發周期長,設計與驗證重構工作量大,更希望達到上層程序框架被復用;面向對象編程技術中的依賴反轉原則和多態手段將依賴關系進行控制,提供了整體插件式的程序架構,并讓高層策略組件與底層具體實現組件相分離,提供更好的程序架構的復用性。
(3)需要團隊多人合作開發的程序
開發軟件最少需要三種不同立場的角色來共同協作完成:客戶、開發人員和測試人員。一般來說,通常是由客戶方(產品負責人或者是需求分析師)來決定需求,制定需求分析報告、開發驗收測試和設定將要開發功能的優先級。軟件開發人員專注于實現客戶的需要并確保實現的代碼能夠滿足驗收測試的要求。測試人員關注于幫助客戶創建驗收測試并幫助開發人員通過哪些測試,這些角色和職責本身就體現了關注點分離的特點。
而一般使用LabVIEW作為開發工具的工程師們則都是個人獨狼式的開發方式居多,該方式無需與他人進行溝通和協作來共同開發軟件產品,往往是一人身兼數職:自己開發程序代碼(開發人員角色),滿足自己使用需求(客戶角色),開發文檔和需求文書則基本上沒有,依仗著腦子好—全都記在心中,日常實際工程使用代替了測試,這樣的程序往往受限于開發人員個體的精力和時間較難形成大型程序。
面向對象技術對程序進行分層分解、繼承多態實現的依賴反轉,鼓勵形成插件框架,結合PPL物理封包形式,進而變成各個功能模塊可以相互更新以及獨立部署,非常便于不同的團隊并行開發,從而具備了相互獨立的開發能力。
另外,不建議使用LVOOP技術的程序類型主要有:
為了快速開發的簡單VI的測量程序,
某種試驗驗證性質的功能程序
LabVIEW 非常適宜開發快速原型程序,因此如果程序是為了一次功能驗證的程序,或者是簡易的工具類應用小程序,則不適合采用LVOOP技術來開發,這是因為與過程編程相比,使用面向對象技術開發程序時,其設計需要更多的面向對象分析與開發迭代驗證時間,導致面向對象開發過程繁瑣,開發成本高昂。
最后,除了依據程序類型來判斷如何選擇編程開發范式外,另外的重要考慮因素就是開發人員的LVOOP的技能水平問題,學習LVOOP需要經歷較為漫長平臺效應,即很長時間都很難使用面向對象編程思想去解決實際工程問題,當然,也就無法理解面向對象編程范式的優勢與價值所在,再加上面向對象程序的本身設計開發的高昂成本,很多開發人員都對LVOOP有較強的抵觸心理。
另外,還有的開發者錯誤地認為用了LVOOP編程語言元素的程序就一定能獲得面向對象的強大好處,缺乏對面向對象編程設計原則、模式和框架的理解與掌握,致使程序項目陷入開發泥潭;而在團隊協作開發中,往往要求團隊成員要具備初級的LVOOP的編程技能;以上這些因素都是開發者在采用何種編程范式需要進行綜合考量的!
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP