公司新聞
[點(diǎn)擊量:5175][來源:立新]
2013-08-13
永磁同步電機(jī)之程序的易讀性和可維護(hù)性
計(jì)算機(jī)源程序的正確比(通過計(jì)算結(jié)果與手算結(jié)果的比較來驗(yàn)證)是考核源程序編制好壞的重要指標(biāo),但它僅是一個(gè)方面;另一方面就是程序易讀性和可維護(hù)性考核。因?yàn)橐粋€(gè)設(shè)計(jì)程序通常不是實(shí)現(xiàn)某預(yù)定功能的最佳和最終程序,它受當(dāng)前的理論研究水平、設(shè)計(jì)開發(fā)手段、應(yīng)用場(chǎng)合等的限制,隨著這些方面的不斷發(fā)展和程序的不斷應(yīng)用于工程實(shí)際,設(shè)計(jì)程序也必定要不斷地被修正、改進(jìn)和完善,這就是程序的維護(hù)。對(duì)計(jì)算機(jī)源程序的維護(hù)是建立在首先讀懂程序的基礎(chǔ)上.因此提高程序的易讀性和可維護(hù)性將使對(duì)程序的維護(hù)得到事半功倍的效果之31提高程序易讀性的方法程序的易讀性既便于程序的維護(hù),也便于程序的編后調(diào)試在計(jì)算機(jī)源程序的編制中,可從以下幾個(gè)方面注意提高程序的易讀性:
l)盡量使用易于識(shí)別的標(biāo)識(shí)符手算程序中的變量符號(hào)基本都是符合有關(guān)標(biāo)準(zhǔn)的規(guī)范化的符號(hào),它們對(duì)應(yīng)的物理意義都是專業(yè)人員所熟知的.因此,計(jì)算機(jī)源程序中的標(biāo)識(shí)符應(yīng)盡量與手算程序中的對(duì)應(yīng)符號(hào)一致;對(duì)于在2 . 21節(jié)中提及的需要替換的符號(hào),最好選用在讀音、字形或含義上與原符號(hào)相近的為計(jì)算機(jī)語言所識(shí)別的標(biāo)識(shí)符,如.可用FI(讀音相似)、占可用g(英文gap的第一個(gè)字母)等。
2)盡可能按照手算程序的計(jì)算步驟編制源程序手算程序的設(shè)計(jì)思路和結(jié)構(gòu)一般也為專業(yè)設(shè)計(jì)人員所熟悉,按照手算程序的計(jì)算步驟編制源程序不但使源程序的編制不易出現(xiàn)錯(cuò)、漏現(xiàn)象,而且也方便讀程序時(shí)的對(duì)照。
當(dāng)然,計(jì)算機(jī)源程序常常在一些計(jì)算項(xiàng)的計(jì)算次序上作調(diào)整而與手算程序的計(jì)算步驟不完全相同,這主要由于模塊劃分的需要,以及考慮將計(jì)算結(jié)果固定不變的計(jì)算項(xiàng)置于循環(huán)迭代計(jì)算過程外以節(jié)省計(jì)算時(shí)間。這也說明了程序的易讀性、易維護(hù)性和運(yùn)行速度有時(shí)候并不是統(tǒng)一的,特別是前兩者與第三者的矛盾更為突出,這就要根據(jù)具體情況,視主次矛盾而定了。
3)充分利用程序的注釋功能適當(dāng)?shù)卦谠闯绦蛑屑尤胱⑨屨Z句對(duì)程序進(jìn)行注釋、說明,如在程序的每個(gè)功能段、模塊和子程序的開頭加以注釋,說明該部分程序的功能,或主要內(nèi)容或?qū)€(gè)別比較特殊、不好識(shí)別和記憶的標(biāo)識(shí)符進(jìn)行說明等。這對(duì)編者和讀者對(duì)程序的備忘和理解都大有益處。
4)利用空行和縮格提高程序結(jié)構(gòu)清晰性程序的自然段可用空行隔開,表示嵌套關(guān)系的不同程序小塊最好采用縮格,這樣整個(gè)程序顯得結(jié)構(gòu)清晰、易讀
2結(jié)構(gòu)化的程序設(shè)計(jì)
結(jié)構(gòu)化程序設(shè)汁是根據(jù)使程序易于維護(hù)的要求,從分析語言的邏輯結(jié)構(gòu)出發(fā)而提出的一種程序設(shè)計(jì)方法。它改變了只注重編程技巧和編程方便而忽視程序維護(hù)的傳統(tǒng)程序設(shè)計(jì)風(fēng)格,提出了以“自頂向下、逐步求精”為設(shè)計(jì)思路,以分層結(jié)構(gòu)和模塊結(jié)構(gòu)為程序結(jié)構(gòu),以盡量減少GOTO語句為控制結(jié)構(gòu)要求的程序設(shè)計(jì)風(fēng)格,從而提高了程序設(shè)計(jì)和維護(hù)的效率結(jié)構(gòu)化程序設(shè)計(jì)規(guī)定了程序的三種基本結(jié)構(gòu),即順序結(jié)構(gòu)、分支選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)(分為“當(dāng)型”循環(huán)結(jié)構(gòu)和“直到型”循環(huán)結(jié)構(gòu)兩種),它們的結(jié)構(gòu)流程如圖101所示三種結(jié)構(gòu)中的每一種都具有這祥的特點(diǎn):
2)沒有水遠(yuǎn)執(zhí)行不到的語句;
3)沒有死循環(huán)。已經(jīng)證明,任何滿足上述三個(gè)條件的程序都可以表示為三種基本結(jié)構(gòu)的結(jié)構(gòu)化程序,任何一個(gè)結(jié)構(gòu)化程序都可以分解為三種基本結(jié)構(gòu)。因此,源程序的編制應(yīng)符合結(jié)構(gòu)化程序的要求,而GOTO語句最易破壞程序的結(jié)構(gòu)化,濫用GOTO語句將使程序流程上下跳躍,來回轉(zhuǎn)向,使程序看起來如同一團(tuán)亂麻,很難讀魔,因而應(yīng)盡量少用GOTO語句。當(dāng)然,適當(dāng)?shù)厥褂肎OTO語句并不影響程序的結(jié)構(gòu)化,特別是在電機(jī)電磁計(jì)算程序中,總有幾個(gè)參量需要迭代計(jì)算,G ( ) TO語句就不可避免,而這對(duì)于專業(yè)技術(shù)人員來說,并不影響程序的可讀性
2.1程序的模塊劃分
程序的模塊劃分不僅使程序結(jié)構(gòu)緊湊、層次分明,更主要的是有利于程序的維護(hù)。因?yàn)閷?duì)程序的維護(hù)往往不是對(duì)整個(gè)程序“動(dòng)大手術(shù)”.而一般是針對(duì)程序的某一功能、對(duì)局部的程序段進(jìn)行修改或擴(kuò)充,因此,有針對(duì)性地將程序模塊化,使對(duì)程序的維護(hù)轉(zhuǎn)化為對(duì)功能相對(duì)獨(dú)立的子塊的維護(hù),既提高了效率又不致牽一處而動(dòng)全局。從劃分模塊以利程序維護(hù)的角度出發(fā),計(jì)算機(jī)源程序的編制應(yīng)注意以下幾個(gè)方面: