手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

幫助中心 >  行業(yè)資訊 >  開(kāi)發(fā) >  何時(shí)該采用LVOOP技術(shù)開(kāi)發(fā)應(yīng)用程序

何時(shí)該采用LVOOP技術(shù)開(kāi)發(fā)應(yīng)用程序

2019-08-26 16:43:35 1325

LabVIEW 支持多編程范式的開(kāi)發(fā),作為一名LabVIEW的開(kāi)發(fā)者一定要合理應(yīng)用開(kāi)發(fā)范式,避免不必要的濫用LVOOP編程技術(shù),適宜采用LVOOP技術(shù)來(lái)開(kāi)發(fā)的程序類型的主要有:

 

  1. 需要長(zhǎng)期維護(hù)的VIs

  2. 大型復(fù)雜的應(yīng)用程序

  3. 需要團(tuán)隊(duì)多人合作的程序

 

(1)需要長(zhǎng)期維護(hù)的程序

LabVIEW在很多電信、汽車、儀表、電力和軌道交通等傳統(tǒng)行業(yè)中都有著廣泛應(yīng)用,其中很多工程實(shí)用程序都需要長(zhǎng)期的使用與維護(hù),其周期往往長(zhǎng)達(dá)幾年乃至十幾年,在如此長(zhǎng)的軟件生命周期中,必然會(huì)受到外界各種因素的變化影響,例如:使用的測(cè)試硬件設(shè)備故障需要更換新的替代型號(hào)、測(cè)量結(jié)果數(shù)據(jù)報(bào)告格式更新?lián)Q版要求、測(cè)試依據(jù)的方法變化或新增等等,通過(guò)面向?qū)ο缶幊碳夹g(shù)中的合理抽象,并針對(duì)穩(wěn)定抽象的接口編程,應(yīng)用繼承和動(dòng)態(tài)分配技術(shù)可以很好的應(yīng)對(duì)相關(guān)擴(kuò)展變化帶來(lái)的影響,從而能夠更好的繼續(xù)發(fā)揮程序功能作用,并能顯著降低維護(hù)成本;此外,封裝成立類的模塊,相比于函數(shù)模塊封裝形式,封裝層級(jí)更高,更加鼓勵(lì)和強(qiáng)調(diào)關(guān)注點(diǎn)分離,可以有效的降低維護(hù)人員的認(rèn)知成本,從而使得代碼更加容易閱讀和擴(kuò)展維護(hù)。

 

(2)大型復(fù)雜應(yīng)用程序

大型復(fù)雜應(yīng)用程序可以從復(fù)雜性、靈活性和復(fù)用性三個(gè)方面來(lái)分析為什么面向?qū)ο蠹夹g(shù)相比面向過(guò)程更具有優(yōu)勢(shì)。

  • 復(fù)雜性

應(yīng)對(duì)程序的復(fù)雜性,宜采用分而治之的設(shè)計(jì)思路,對(duì)程序整體邏輯功能進(jìn)行分層分塊處理,以測(cè)控程序?yàn)槔话銖纳系较路譃樗膫€(gè)層級(jí):用戶界面層、測(cè)試序列調(diào)用層、測(cè)試功能層、硬件驅(qū)動(dòng)層,層與層通過(guò)穩(wěn)定的抽象接口進(jìn)行服務(wù)調(diào)用;在每個(gè)層級(jí)中又可以進(jìn)一步細(xì)分為不同的功能模塊,功能模塊之間也是通過(guò)抽象封裝來(lái)分解不同的功能。面向?qū)ο缶幊痰募夹g(shù)能夠提供更好的層級(jí)抽象接口和模塊接口實(shí)現(xiàn),便于復(fù)雜程序的邏輯功能分層分塊分解處理。

  • 靈活性

大型程序往往需要考慮多種可互換的選項(xiàng),并且可以靈活組合相關(guān)邏輯功能,例如測(cè)量過(guò)程中數(shù)據(jù)采集可能要求需要提供快速測(cè)量,也可能要求批量測(cè)量,或者特殊時(shí)序采樣測(cè)量,靈活多樣性帶來(lái)了程序開(kāi)發(fā)編寫的復(fù)雜性。面向?qū)ο缶幊谈鼜?qiáng)調(diào)對(duì)算法策略的本質(zhì)抽象與封裝,形成相關(guān)繼承關(guān)系的層級(jí)類族,并使用同一的抽象接口來(lái)支持多樣可選性。

  • 復(fù)用性

大型復(fù)雜應(yīng)用程序不光希望程序底層的功能模塊被復(fù)用,由于大型復(fù)雜程序開(kāi)發(fā)周期長(zhǎng),設(shè)計(jì)與驗(yàn)證重構(gòu)工作量大,更希望達(dá)到上層程序框架被復(fù)用;面向?qū)ο缶幊碳夹g(shù)中的依賴反轉(zhuǎn)原則和多態(tài)手段將依賴關(guān)系進(jìn)行控制,提供了整體插件式的程序架構(gòu),并讓高層策略組件與底層具體實(shí)現(xiàn)組件相分離,提供更好的程序架構(gòu)的復(fù)用性。

 

(3)需要團(tuán)隊(duì)多人合作開(kāi)發(fā)的程序

開(kāi)發(fā)軟件最少需要三種不同立場(chǎng)的角色來(lái)共同協(xié)作完成:客戶、開(kāi)發(fā)人員和測(cè)試人員。一般來(lái)說(shuō),通常是由客戶方(產(chǎn)品負(fù)責(zé)人或者是需求分析師)來(lái)決定需求,制定需求分析報(bào)告、開(kāi)發(fā)驗(yàn)收測(cè)試和設(shè)定將要開(kāi)發(fā)功能的優(yōu)先級(jí)。軟件開(kāi)發(fā)人員專注于實(shí)現(xiàn)客戶的需要并確保實(shí)現(xiàn)的代碼能夠滿足驗(yàn)收測(cè)試的要求。測(cè)試人員關(guān)注于幫助客戶創(chuàng)建驗(yàn)收測(cè)試并幫助開(kāi)發(fā)人員通過(guò)哪些測(cè)試,這些角色和職責(zé)本身就體現(xiàn)了關(guān)注點(diǎn)分離的特點(diǎn)。


而一般使用LabVIEW作為開(kāi)發(fā)工具的工程師們則都是個(gè)人獨(dú)狼式的開(kāi)發(fā)方式居多,該方式無(wú)需與他人進(jìn)行溝通和協(xié)作來(lái)共同開(kāi)發(fā)軟件產(chǎn)品,往往是一人身兼數(shù)職:自己開(kāi)發(fā)程序代碼(開(kāi)發(fā)人員角色),滿足自己使用需求(客戶角色),開(kāi)發(fā)文檔和需求文書(shū)則基本上沒(méi)有,依仗著腦子好—全都記在心中,日常實(shí)際工程使用代替了測(cè)試,這樣的程序往往受限于開(kāi)發(fā)人員個(gè)體的精力和時(shí)間較難形成大型程序。


面向?qū)ο蠹夹g(shù)對(duì)程序進(jìn)行分層分解、繼承多態(tài)實(shí)現(xiàn)的依賴反轉(zhuǎn),鼓勵(lì)形成插件框架,結(jié)合PPL物理封包形式,進(jìn)而變成各個(gè)功能模塊可以相互更新以及獨(dú)立部署,非常便于不同的團(tuán)隊(duì)并行開(kāi)發(fā),從而具備了相互獨(dú)立的開(kāi)發(fā)能力。

 


另外,不建議使用LVOOP技術(shù)的程序類型主要有:

  1. 為了快速開(kāi)發(fā)的簡(jiǎn)單VI的測(cè)量程序,

  2. 某種試驗(yàn)驗(yàn)證性質(zhì)的功能程序


LabVIEW 非常適宜開(kāi)發(fā)快速原型程序,因此如果程序是為了一次功能驗(yàn)證的程序,或者是簡(jiǎn)易的工具類應(yīng)用小程序,則不適合采用LVOOP技術(shù)來(lái)開(kāi)發(fā),這是因?yàn)榕c過(guò)程編程相比,使用面向?qū)ο蠹夹g(shù)開(kāi)發(fā)程序時(shí),其設(shè)計(jì)需要更多的面向?qū)ο蠓治雠c開(kāi)發(fā)迭代驗(yàn)證時(shí)間,導(dǎo)致面向?qū)ο箝_(kāi)發(fā)過(guò)程繁瑣,開(kāi)發(fā)成本高昂。

 

最后,除了依據(jù)程序類型來(lái)判斷如何選擇編程開(kāi)發(fā)范式外,另外的重要考慮因素就是開(kāi)發(fā)人員的LVOOP的技能水平問(wèn)題,學(xué)習(xí)LVOOP需要經(jīng)歷較為漫長(zhǎng)平臺(tái)效應(yīng),即很長(zhǎng)時(shí)間都很難使用面向?qū)ο缶幊趟枷肴ソ鉀Q實(shí)際工程問(wèn)題,當(dāng)然,也就無(wú)法理解面向?qū)ο缶幊谭妒降膬?yōu)勢(shì)與價(jià)值所在,再加上面向?qū)ο蟪绦虻谋旧碓O(shè)計(jì)開(kāi)發(fā)的高昂成本,很多開(kāi)發(fā)人員都對(duì)LVOOP有較強(qiáng)的抵觸心理。


另外,還有的開(kāi)發(fā)者錯(cuò)誤地認(rèn)為用了LVOOP編程語(yǔ)言元素的程序就一定能獲得面向?qū)ο蟮膹?qiáng)大好處,缺乏對(duì)面向?qū)ο缶幊淘O(shè)計(jì)原則、模式和框架的理解與掌握,致使程序項(xiàng)目陷入開(kāi)發(fā)泥潭;而在團(tuán)隊(duì)協(xié)作開(kāi)發(fā)中,往往要求團(tuán)隊(duì)成員要具備初級(jí)的LVOOP的編程技能;以上這些因素都是開(kāi)發(fā)者在采用何種編程范式需要進(jìn)行綜合考量的!


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: