LabVIEW軟件編程規(guī)范標準_第1頁
LabVIEW軟件編程規(guī)范標準_第2頁
LabVIEW軟件編程規(guī)范標準_第3頁
LabVIEW軟件編程規(guī)范標準_第4頁
LabVIEW軟件編程規(guī)范標準_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、. .PAGE10 / NUMPAGES10LabVIEW軟件編程規(guī)一、制定編程規(guī)的意義項目開發(fā)中,經(jīng)常存在多人共同開發(fā)同一程序的情況。風(fēng)格不一致,導(dǎo)致的結(jié)果是程序可讀性差,難于維護。為了避免這些問題,做為一個系統(tǒng)軟件工程工作者,需要在工程項目開始之前有一套團隊成員彼此遵守的開發(fā)規(guī)。制定本編程規(guī)的目的是為了提高軟件開發(fā)效率與所開發(fā)的軟件的可維護性,提高軟件的質(zhì)量。本規(guī)由程序組織結(jié)構(gòu)、命名規(guī)則、注釋規(guī)、程序健壯性、可移植性、錯誤處理以與軟件的模塊化規(guī)等部分組成。二、編程規(guī)(1)程序組織結(jié)構(gòu)對于大型程序來說,如果規(guī)劃不得當,會導(dǎo)致開發(fā)期間移動和重命名文件操作占用額外的時間。所以一般采用目錄結(jié)構(gòu)(管

2、理磁盤文件)-摘自 CRIO開發(fā)者指南 LabVIEW VI是根據(jù)其名稱和路徑進行關(guān)聯(lián),因此如果你移動或重命名子VI,關(guān)聯(lián)就會遭到破壞,需要手動重新建立關(guān)聯(lián),適當管理磁盤上的文件會降低日后移動大量文件的風(fēng)險,幫助開發(fā)人員很容易的找到文件,并決定在哪里保存新文件。 許多軟件開發(fā)者已經(jīng)規(guī)定好文件存儲的位置,但是除經(jīng)典的方法和結(jié)構(gòu)外,以下方法更適合大型程序的開發(fā)工作。 將所有項目文件存儲到一個單一目錄;在其目錄下創(chuàng)建包含文件邏輯群體的文件夾 ;根據(jù)預(yù)定的標準對文件進行分組 ;將程序劃分為易處理的邏輯單元 ;使用具有邏輯性和描述性的命名規(guī)則命名 VI;命名VI,VI庫以與目錄的時候,盡量避免使用不被所

3、有文件系統(tǒng)所接受的字符,比如“/”,“”,“:” “”。 文件名的命名要求表達出文件的容,要求文件名的長度不得少于5個字母。將頂層VI與其他源代碼區(qū)分開來;文件夾通常用來對文件進行分組、分類,因此可以針對不同的調(diào)用對子VI進行分組、分類。文件分組的原則是根據(jù)程序中文件的功能、類型以與分級層次來進行的。實際上,磁盤管理真正體現(xiàn)了程序中文件和代碼之間的關(guān)系。避免在整個程序結(jié)構(gòu)中使用一樣的文件名。因為在存中一次只能有一個給定的名字。如果存中存在某個文件名的VI,而又試圖去載入另外一個具有一樣文件的VI,VI會提示你是否替換已存在的VI。這樣會導(dǎo)致整個程序出現(xiàn)難以預(yù)料的問題。如果打算備份VI文件的話,

4、請務(wù)必確定把他們備份到正常搜索結(jié)構(gòu)之外,以便LabVIEW不會錯誤的在存中調(diào)用這些VI。 LabVIEW Project為開發(fā)人員提供了用于管理文件的工具。隨著程序不斷壯大,開發(fā)人員需要對程序關(guān)聯(lián)文件進行管理,如VI、控件資源、第三方函數(shù)庫、數(shù)據(jù)文件以與硬件配置文件。工程師可以利用LabVIEW Project Explorer管理這些文件。圖LabVIEW項目上的源代碼選項開發(fā)者可以利用LabVIEW Project管理所有程序關(guān)聯(lián)文件。默認的項目文件夾為虛擬文件夾,但是開發(fā)者可以將其與系統(tǒng)物理目錄進行同步。一旦開發(fā)者在LabVIEW Project中添加了一個目錄,可以將其轉(zhuǎn)變?yōu)椤白詣痈?/p>

5、”,以最大限度地提高文件管理和組織靈活性。自動填加文件夾會將磁盤文件管理與Project中的邏輯分組進行關(guān)聯(lián)。如果可能,最好使用自動更新文件夾來保護LabVIEW項目瀏覽器中的磁盤框架。 (2)命名規(guī)則1)變量的命名規(guī)則變量的命名規(guī)則要求采用“匈牙利法則”。即開頭字母用變量的類型,其余部分用變量的英文意思或其英文意思的縮寫,盡量避免用中文的拼音,要求單詞的第一個字母應(yīng)大寫。. 1 7 W 0 R bR即: 變量名=變量類型+變量的英文意思(或縮寫): Q3 A1 c3 n& t+ x; E/ M5 z對非通用的變量,在定義時加入注釋說明。變量類型見下表:bool(BOOL) 用b開頭 bIsP

6、arentI8、I16、I32、I64 用n開頭 nStepCountU8、U16、U32、U64 用un開頭 unSumfloat(FLOAT) 用f開頭 fAvgdouble(DOUBLE) 用d開頭 dDetaNHANDLE 用h開頭 hHandlepath 用p開頭 pDDiskenum 用e開頭 eMenuwavedata 用w開頭 wAnalogDatacluster 用clu開頭 cluInformationstring 用str開頭 strNameArray 用A開頭 AName全局變量用g_開頭,如一個全局的長型變量定義為g_lFailCount,即:變量名=g_+變量類型+

7、變量的英文意思(或縮寫);對常量命名,要求常量名用大寫,常量名用英文表達其意思。2 P) J$ |8 f, a, n6 ; Y7 c+ D! e0 C后綴定義:1D 一維數(shù)組2D 二維數(shù)組iD i維數(shù)組對未提與的變量類型的定義需在日后協(xié)商。2)子VI的命名規(guī)則1) 子VI參數(shù)規(guī)、 參數(shù)名稱的命名參照變量命名規(guī)。+ Y; u% Z, a, 、 為了提高程序的運行效率,減少參數(shù)占用的堆棧,傳遞大結(jié)構(gòu)的參數(shù),一律采用指針或引用方式傳遞。3)另外,用正確的反義詞組命名具有互斥意義的變量或相反動作的函數(shù)等。說明:下面是一些在軟件中常用的反義詞組。add / remove begin / end crea

8、te / destroy insert / delete first / last get / releaseincrement / decrement put / getadd / delete lock / unlock open / closemin / max old / new start / stopnext / previous source / target show / hidesend / receive source / destinationcut / paste up / down(3)注釋規(guī)1)子VI的注釋對于子VI,應(yīng)該從“功能”,“參數(shù)”,“主要思路”、“調(diào)用方

9、法”、“日期”六個方面用如下格式注釋: t0 q2 j9 ?, y) 5 i、 對于某些函數(shù),其部分參數(shù)為傳入值,而部分參數(shù)為傳出值,所以對參數(shù)要詳細說明該參數(shù)是入口參數(shù),還是出口參數(shù),對于某些意義不明確的參數(shù)還要做詳細說明(例如:以角度作為參數(shù)時,要說明該角度參數(shù)是以弧度(PI),還是以度為單位),對既是入口又是出口的變量應(yīng)該在入口和出口處同時標明。、 在注釋中應(yīng)該詳細說明函數(shù)的主要實現(xiàn)思路、特別要注明自己的一些想法,如果有必要則應(yīng)該寫明對想法產(chǎn)生的來由。對一些模仿的函數(shù)應(yīng)該注釋上函數(shù)的出處。、 在注釋中詳細注明函數(shù)的適當調(diào)用方法。在注釋中要強調(diào)調(diào)用時的危險方面,可能出錯的地方。# j% P

10、$ G3 s: w6 q、 對日期的注釋要求記錄從開始寫函數(shù)到結(jié)束函數(shù)的測試之間的日期。、 h- E# d5 f. Z2 q) y對函數(shù)注釋開始到函數(shù)命名之間應(yīng)該有一組用來標識的特殊字符串。如果算法比較復(fù)雜,或算法中的變量定義與位置有關(guān),則要求對變量的定義進行圖解。對難以理解的算法能圖解盡量圖解。2)變量的注釋對于變量的注釋緊跟在變量的后面說明變量的作用。原則上對于每個變量應(yīng)該注釋,但對于意義非常明顯的變量,如:i,j等循環(huán)變量可以不注釋。3)其他注釋在函數(shù)我們不需要注釋每一部分代碼。但必須在各功能模塊的每一主要部分之前添加塊注釋,注釋每一組代碼,在循環(huán)、流程的各分支等,盡可能多加以注釋。其中

11、的循環(huán)、條件、選擇等位置必須注釋。對于前后順序不能顛倒的情況,建議在注釋中增加序號。在其他順序執(zhí)行的程序中,必須加一個注釋,注明這一段語句所組成的小模塊的作用。對于自己的一些比較獨特的思想要求在注釋中標明。(4) 程序健壯性錯誤處理是發(fā)現(xiàn)解決程序中出現(xiàn)的問題、戰(zhàn)勝無法預(yù)料的事情和實現(xiàn)良好編程風(fēng)格的根本。 錯誤處理基礎(chǔ)所有 VI 必須捕獲并報告從錯誤端反饋回來的錯誤通過錯誤端間錯誤簇的傳遞來捕獲錯誤捕獲循環(huán)中每個迭代的錯誤在循環(huán)中禁用錯誤的索引在應(yīng)用程序使用過程中,使用錯誤日志文件存儲錯誤信息在無人值守或遠程控制的程序,禁用對話框報告錯誤。避免使用置錯誤報告的子對設(shè)備錯誤使用消極代碼,對警告使用

12、積極代碼編程中要求考慮函數(shù)的各種執(zhí)行情況,盡可能處理所有的流程情況。將函數(shù)分為兩類:一類為與屏幕的顯示無關(guān),(不與用戶交換信息的函數(shù))一類為與屏幕的顯示相關(guān)。(與用戶交換信息的函數(shù))對于與屏幕顯示無關(guān)的函數(shù),函數(shù)通過返回值來報告錯誤。對于與屏幕顯示有關(guān)的函數(shù),函數(shù)要負責(zé)向用戶發(fā)出警告,并進行錯誤處理。嚴格的測試:對每一段代碼都要求進行嚴格的測試,特別對一些功能函數(shù)要對其各種臨界點(比如零值、無窮大的值等)進行測試。盡量做到每一段代碼零錯誤。(5) 可移植性- L. V9 q( Q! o4 j. x0 j: v1、高質(zhì)量的代碼要求能夠跨平臺,所以我們的代碼應(yīng)該考慮到對不同的平臺的支持,特別是對w

13、indows98和windowsnt的支持。2# ?# e# R5 ?9 Iz3 U! 22 、對不同的硬件與軟件的函數(shù)要做不同的處理。(6)模塊化為了提高軟件的重用性,減少重復(fù)開發(fā)的工作量。同時也為了提高程序的可讀性,方便程序的維護,必須加強軟件的模塊化工作。模塊化應(yīng)該遵循以下幾個基本規(guī): 1、函數(shù)應(yīng)該作到精而小,函數(shù)的代碼應(yīng)該控制在一個適度的規(guī)模。要求編寫者更加詳細的對函數(shù)注釋,以與設(shè)計思想等。2、 某一功能,如果重復(fù)實現(xiàn)三遍以上,既應(yīng)該考慮模塊化,將其寫成通用函數(shù)。并向開發(fā)人員發(fā)布。并要求將接口文檔和實現(xiàn)的功能備案。3、 每一個開發(fā)人員要盡可能的利用其他人的現(xiàn)成的模塊,減少重復(fù)開發(fā)。4、

14、 對函數(shù)進行模塊化時,要考慮函數(shù)的層次關(guān)系,特別是在增加新的功能模塊時,對原來的函數(shù)代碼要進行認真的調(diào)整,做到一樣功能的不同函數(shù)沒有重復(fù)代碼,此要求的目的在于便于代碼維護。模塊化的一些注意事項: 、設(shè)計好模塊接口,包括:函數(shù)接口和變量接口。 (7) 程序備份1.要有備份記錄備份時注明備份日期和主要增加的功能2.定時備份根據(jù)程序量的多少,可以每天備份一次,也可以半天備份。3.多種介質(zhì)備份 至少在硬盤上做2個備份,在軟盤上做一個備份;在使用他人主機進行備份時,不可放于沒有密碼保護的ftp服務(wù)器上,可以發(fā)送到自己的email信箱中進行備份。(8)代碼測試、維護單元測試要求至少達到大代碼覆蓋。單元測試

15、開始要跟蹤每一條代碼,并觀察數(shù)據(jù)流與變量的變化。清理、整理或優(yōu)化后的代碼要經(jīng)過審查與測試。代碼版本升級要經(jīng)過嚴格測試。使用工具軟件對代碼版本進行維護。正式版本上軟件的任何修改都應(yīng)有詳細的文檔記錄。發(fā)現(xiàn)錯誤立即修改,并且要記錄下來。關(guān)鍵的代碼在匯編級跟蹤。仔細設(shè)計并分析測試用例,使測試用例覆蓋盡可能多的情況,以提高測試用例的效率。盡可能模擬出程序的各種出錯情況,對出錯處理代碼進行充分的測試。仔細測試代碼處理數(shù)據(jù)、變量的邊界情況。保留測試信息,以便分析、總結(jié)經(jīng)驗與進行更充分的測試。不應(yīng)通過“試”來解決問題,應(yīng)尋找問題的根本原因。對自動消失的錯誤進行分析,搞清楚錯誤是如何消失的。修改錯誤不僅要治表,

16、更要治本。測試時應(yīng)設(shè)法使很少發(fā)生的事件經(jīng)常發(fā)生。明確模塊或函數(shù)處理哪些事件,并使它們經(jīng)常發(fā)生。堅持在編碼階段就對代碼進行徹底的單元測試,不要等以后的測試工作來發(fā)現(xiàn)問題。去除代碼運行的隨機性(如去掉無用的數(shù)據(jù)、代碼與盡可能防止并注意函數(shù)中的“部寄存器”等),讓函數(shù)運行的結(jié)果可預(yù)測,并使出現(xiàn)的錯誤可再現(xiàn)。附錄A部分編程常用單詞縮寫規(guī)則:較短的單詞可通過去掉“元音”形成縮寫;較長的單詞可取單詞的頭幾個字母形成縮寫;一些單詞有大家公認的縮寫.完整單詞可縮寫為縮寫Aaverage-avg;Bback-bk;background-bg;break-brk;buffer-buf;Ccolor-cr; (clr)control-ctrl ;Ddata-dat;delete-del;document-doc;Eedit-edt;error-err;escape-esc;Fflag-flg;form-frm;Ggrid-grd;Iincrement-inc;information-info ;initial-init ;insert-ins;image-img;Llabel-lab;length-l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論