LabVIEW 助力優(yōu)化軟件開發(fā)實踐和源代碼控制
作為一款系統(tǒng)設(shè)計軟件(LabVIEW可以提供搭建最先進、最具技術(shù)挑戰(zhàn)性的系統(tǒng)所需的所有工程元素
隨著工程應(yīng)用的挑戰(zhàn)性和復(fù)雜度日益增加(軟件工程的概念也融入了系統(tǒng)開發(fā)之中。所謂軟件工程就是可以保證軟件的可擴展性和可維護性的工程開發(fā)實踐。正確實施的軟件工程可以提高應(yīng)用程序的全局質(zhì)量(提高開發(fā)者的工作效率并且降低維護成本。在這篇文章中(可以學(xué)習(xí)到如何使用LabVIEW內(nèi)建專用的特性和工具來完成最佳的軟件開發(fā)實踐和程序源代碼控制管理。
源代碼控制管理
源代碼控制管理是軟件工程最基本的環(huán)節(jié)之一(因為它決定了如何對一個應(yīng)用程序的依賴關(guān)系進行存儲、組織管理以及在開發(fā)者之間共享,甚至?xí)苯佑绊懗绦虻牟渴?。這樣的過程(source code control-SCC)及相應(yīng)的管理工具會在整個軟件生命周期中完成這些任務(wù),以減少人工完成這些任務(wù)可能帶來的損失和風(fēng)險。但是,如果沒有一個合理的計劃以及應(yīng)用架構(gòu)來保證項目自身的緊湊性和代碼的模塊化特點,只依靠軟件來管理,則效果實在有限,所以需要對相關(guān)的概念進行學(xué)習(xí)并通過NI認(rèn)證的LabVIEW系統(tǒng)架構(gòu)師考試。
對任何一個項目來說,無論項目復(fù)雜程度高低或團隊的人數(shù)多少,源代碼控制都是重要且必要的。目前,很多的供應(yīng)商都提供了各種不同的源代碼控制工具,它們都可以用來追蹤、存儲和管理LabVIEW的文件。
這些工具中可以既有免費且易用的解決方案(例如Subversion),也有商業(yè)級的、具有完整生命周期管理的解決方案(例如Perforce)。
代碼的重復(fù)利用對提高工作效率是非常有效的方法,但是它要求非常嚴(yán)格的源代碼管理措施。一些高級的工具,例如VI程序包管理器,可以幫助用戶有效地管理和創(chuàng)建可重復(fù)使用的庫文件或者VI程序包,還可以智能追蹤庫文件的版本變化、所需依賴關(guān)系變化以及該庫文件在多個LabVIEW版本之間的兼容性變化等。
應(yīng)用結(jié)構(gòu)化的開發(fā)方法
許多LabVIEW的程序員都經(jīng)歷過使用非結(jié)構(gòu)化開發(fā)方法所造成的不良后果,或者,至少受到過影響。一些程序框圖可以往任何一個方向進行滾動,一頁又一頁,沒有可辯識的標(biāo)志和足夠的連線的幫助,甚至可以讓人誤認(rèn)為那是一幅大都市的地圖。不幸的是,這樣的程序框圖往往又包含需要運行的代碼,所以如果有人接下了這樣的應(yīng)用程序,往往會覺得它令人難以添加功能和修正錯誤。除了程序運行風(fēng)險高以及內(nèi)含不可預(yù)知的程序缺陷以外,這種程序的維護成本還很高。所以,當(dāng)你在接受程序任務(wù)的時候,如果對方告訴你“我們需要對代碼進行重整”,那你一定要將它看成一個警告。軟件工程和一個有序的可擴展的應(yīng)用程序架構(gòu),可以有效地幫助你避免這樣的風(fēng)險以及這些風(fēng)險帶來的損失。
典型的軟件工程是指一種人為管理的、有序的軟件開發(fā)方法,在開發(fā)過程之前就已經(jīng)有擬定的審核清單,以及在軟件生命周期的不同階段應(yīng)該完成的任務(wù),而這個開發(fā)實踐需要做到何種程度,以及需要哪些開發(fā)工具,則是由這個工程項目自身的特點來決定的。但是,有些要素卻是任何類型項目的開發(fā)都需要的。通常來說,前期的規(guī)劃、開發(fā)耗時的預(yù)計都是會提前計劃的,當(dāng)然,這些計劃同時也會增加時間和成本的消耗。
雖然軟件工程的模式有很多種,例如瀑布型、螺旋型或者靈活型,但它們都具有共同的開發(fā)階段。圖1中列出了各種LabVIEW的特性和工具,可以在各個開發(fā)階段給予幫助。
圖1 LabVIEW提供的各種特性和相關(guān)工具可以在不同的開發(fā)環(huán)節(jié)給你提供幫助
軟件架構(gòu)
通過設(shè)計應(yīng)用程序的整體架構(gòu),開發(fā)者可以確保程序框架滿足指定的要求,并且確保程序有良好的擴展性,在將來為系統(tǒng)添加新功能。進行架構(gòu)設(shè)計時,需要定義系統(tǒng)的各個功能單元,以及不同單元之間的交互方式(通過交互接口和API),從而可以將相關(guān)性不高的單元進行解耦,以保證它們是緊湊且獨立的。一個好的程序架構(gòu)會綜合考慮代碼的可擴展性、程序模塊性、可重用性和可延展性之間的平衡,同時又能夠保證不會無謂地增加程序的復(fù)雜性。
NI公司提供的LabVIEW高級培訓(xùn)課程涵蓋了所有這些概念,并且將這些概念作為CLA考試的主要部分。用戶可訪問ni.com/training/certification來評估自己的編程水平,以確保自己有足夠的能力編寫出可以經(jīng)受實踐檢驗的LabVIEW程序。
掌握LabVIEW軟件工程
了解數(shù)據(jù)流編程語言的語法結(jié)構(gòu)僅僅是熟練使用LabVIEW的一部分。一個堅實的軟件工程理論基礎(chǔ)和源代碼控制的最佳實踐可以保證你有能力管理一個開發(fā)小組,領(lǐng)導(dǎo)他們設(shè)計并實現(xiàn)高水平的LabVIEW系統(tǒng)。本文中所討論的各種工具和開發(fā)實踐可以幫助你顯著地改進開發(fā)過程,使其更加合理,從而提高工作效率。
這樣你和你的開發(fā)團隊就可以把最主要的精力放在系統(tǒng)的開發(fā)上,而不是浪費在煩瑣的源代碼管理和設(shè)計結(jié)構(gòu)重整上。所有這些概念對任何一種編程環(huán)境來說都是通用的,它們也是參加CLA考試時所必需的。