程序?qū)嶋H上也是一種供人閱讀的文章,有一個文章的風(fēng)格問題。程序良好的風(fēng)格表現(xiàn)在源程序文檔化、數(shù)據(jù)說明的方法、語句結(jié)構(gòu)和輸入/輸出這四個方面,軟件編碼規(guī)范評測也是圍繞這四個方面展開。下面分別對該四項評測內(nèi)容進(jìn)行說明。


(1)源程序文檔化

①符號名的命名。符號名即標(biāo)識符,包括模塊名、變量名、常量名、標(biāo)號名、子程序名、數(shù)據(jù)區(qū)名以及緩沖區(qū)名等。這些名字應(yīng)能反映它所代表的實際東西,應(yīng)有一定實際意義。例如,表示次數(shù)的量用Times,表示總量的用Total,表示平均值的用Average,表示和的量用Sum等。名字不是越長越好,應(yīng)當(dāng)選擇精煉的、意義明確的名字。必要時可使用縮寫名字,但這時要注意縮寫規(guī)則要一致,并且要給每一個名字加注釋。同時,在一個程序中,一個變量只應(yīng)用于一種用途。

②程序的注釋。夾在程序中的注釋是程序員日后與程序讀者之間通信的重要手段。注釋絕不是可有可無的。一些正規(guī)的程序文本中,注釋行的數(shù)量占到整個源程序的1/3~1/2,甚至更多。注釋分為序言性注釋和功能性注釋。序言性注釋通常置于每個程序模塊的開頭部分,它應(yīng)當(dāng)給出程序的整體說明,對于理解程序本身具有引導(dǎo)作用。功能性注釋嵌在源程序體中,用以描述其后的語句或程序段是在做什么工作,或是執(zhí)行了下面的語句會怎么樣,而不要解釋下面怎么做。

③標(biāo)準(zhǔn)的書寫格式。視覺組織用空格、空行和移行來實現(xiàn)。恰當(dāng)?shù)乩每崭?,可以突出運(yùn)算的優(yōu)先性,減少編碼的錯誤,自然的程序段之間可用空行隔開。移行也叫做向右縮格。它是指程序中的各行不必都在左端對齊,都從第一格起排列,這樣做使程序完全分不清層次關(guān)系。對于選擇語句和循環(huán)語句,把其中的程序段語句向右作階梯式移行,使程序的邏輯結(jié)構(gòu)更加清晰。


(2)數(shù)據(jù)說明方法:在設(shè)計階段已經(jīng)確定了數(shù)據(jù)結(jié)構(gòu)的組織及其復(fù)雜性。在編寫程序時,則需要注意數(shù)據(jù)說明的風(fēng)格。為了使程序中數(shù)據(jù)說明更易于理解和維護(hù),必須注意以下幾點:

①數(shù)據(jù)說明的次序應(yīng)當(dāng)規(guī)范化。數(shù)據(jù)說明次序規(guī)范化,使數(shù)據(jù)屬性容易查找,也有利于測試,排錯和維護(hù)。原則上,數(shù)據(jù)說明的次序與語法無關(guān),其次序是任意的。但出于閱讀、理解和維護(hù)的需要,最好使其規(guī)范化,使說明的先后次序固定。

②說明語句中變量安排有序化。當(dāng)多個變量名在一個說明語句中說明時,應(yīng)當(dāng)對這些變量按字母的順序排列。帶標(biāo)號的全程數(shù)據(jù)也應(yīng)當(dāng)按字母的順序排列。

③使用注釋說明復(fù)雜數(shù)據(jù)結(jié)構(gòu)。如果設(shè)計了一個復(fù)雜的數(shù)據(jù)結(jié)構(gòu),應(yīng)當(dāng)使用注釋來說明在程序?qū)崿F(xiàn)時這個數(shù)據(jù)結(jié)構(gòu)的固有特點。


(3)語句結(jié)構(gòu):在設(shè)計階段確定了軟件的邏輯流結(jié)構(gòu),但構(gòu)造單個語句則是編碼階段的任務(wù)。語句構(gòu)造力求簡單、直接,不能為了片面追求效率而使語句復(fù)雜化。



(4)輸入/輸出:輸入和輸出信息是與用戶的使用直接相關(guān)的。輸入和輸出的方式和格式應(yīng)當(dāng)盡可能方便用戶的使用。一定要避免因設(shè)計不當(dāng)給用戶帶來的麻煩。因此,在軟件需求分析階段和設(shè)計階段,就應(yīng)基本確定輸入和輸出的風(fēng)格。系統(tǒng)能否被用戶接受,有時就取決于輸入和輸出的風(fēng)格。輸入/輸出風(fēng)格還受到許多其他因素的影響。如輸入/輸出設(shè)備(終端的類型,圖形設(shè)備,數(shù)字化轉(zhuǎn)換設(shè)備等)、用戶的熟練程度以及通信環(huán)境等。不論是批處理的輸入/輸出方式,還是交互式的輸入/輸出方式,在設(shè)計和程序編碼時都應(yīng)考慮下列原則。

①對所有的輸入數(shù)據(jù)都要進(jìn)行檢驗,識別錯誤的輸入,以保證每個數(shù)據(jù)的有效性;

②檢查輸入項的各種重要組合的合理性,必要時報告輸入狀態(tài)信息;

③使輸入的步驟和操作盡可能簡單,并保持簡單的輸入格式;

④輸入數(shù)據(jù)時,應(yīng)允許使用自由格式輸入;

⑤應(yīng)允許缺省值(默認(rèn)值);

⑥輸入一批數(shù)據(jù)時,最好使用輸入結(jié)束標(biāo)志,而不要由用戶指定輸入數(shù)據(jù)數(shù)目;

⑦在交互式輸入時,要在屏幕上使用提示符,明確提示交互輸入的請求,指明可使用選擇項的種類和取值范圍。同時,在數(shù)據(jù)輸入的過程中和輸入結(jié)束時,也要在屏幕上給出狀態(tài)信息;

⑧當(dāng)程序設(shè)計語言對輸入/輸出格式有嚴(yán)格要求時,應(yīng)保持輸入格式與輸入語句要求的一致性;

⑨給所有的輸出加注解,并設(shè)計輸出報表格式。