程序實際上也是一種供人閱讀的文章,有一個文章的風格問題。程序良好的風格表現在源程序文檔化、數據說明的方法、語句結構和輸入/輸出這四個方面,軟件編碼規范評測也是圍繞這四個方面展開。下面分別對該四項評測內容進行說明。
(1)源程序文檔化
①符號名的命名。符號名即標識符,包括模塊名、變量名、常量名、標號名、子程序名、數據區名以及緩沖區名等。這些名字應能反映它所代表的實際東西,應有一定實際意義。例如,表示次數的量用Times,表示總量的用Total,表示平均值的用Average,表示和的量用Sum等。名字不是越長越好,應當選擇精煉的、意義明確的名字。必要時可使用縮寫名字,但這時要注意縮寫規則要一致,并且要給每一個名字加注釋。同時,在一個程序中,一個變量只應用于一種用途。
②程序的注釋。夾在程序中的注釋是程序員日后與程序讀者之間通信的重要手段。注釋絕不是可有可無的。一些正規的程序文本中,注釋行的數量占到整個源程序的1/3~1/2,甚至更多。注釋分為序言性注釋和功能性注釋。序言性注釋通常置于每個程序模塊的開頭部分,它應當給出程序的整體說明,對于理解程序本身具有引導作用。功能性注釋嵌在源程序體中,用以描述其后的語句或程序段是在做什么工作,或是執行了下面的語句會怎么樣,而不要解釋下面怎么做。
③標準的書寫格式。視覺組織用空格、空行和移行來實現。恰當地利用空格,可以突出運算的優先性,減少編碼的錯誤,自然的程序段之間可用空行隔開。移行也叫做向右縮格。它是指程序中的各行不必都在左端對齊,都從第一格起排列,這樣做使程序完全分不清層次關系。對于選擇語句和循環語句,把其中的程序段語句向右作階梯式移行,使程序的邏輯結構更加清晰。
(2)數據說明方法:在設計階段已經確定了數據結構的組織及其復雜性。在編寫程序時,則需要注意數據說明的風格。為了使程序中數據說明更易于理解和維護,必須注意以下幾點:
①數據說明的次序應當規范化。數據說明次序規范化,使數據屬性容易查找,也有利于測試,排錯和維護。原則上,數據說明的次序與語法無關,其次序是任意的。但出于閱讀、理解和維護的需要,最好使其規范化,使說明的先后次序固定。
②說明語句中變量安排有序化。當多個變量名在一個說明語句中說明時,應當對這些變量按字母的順序排列。帶標號的全程數據也應當按字母的順序排列。
③使用注釋說明復雜數據結構。如果設計了一個復雜的數據結構,應當使用注釋來說明在程序實現時這個數據結構的固有特點。
(3)語句結構:在設計階段確定了軟件的邏輯流結構,但構造單個語句則是編碼階段的任務。語句構造力求簡單、直接,不能為了片面追求效率而使語句復雜化。
(4)輸入/輸出:輸入和輸出信息是與用戶的使用直接相關的。輸入和輸出的方式和格式應當盡可能方便用戶的使用。一定要避免因設計不當給用戶帶來的麻煩。因此,在軟件需求分析階段和設計階段,就應基本確定輸入和輸出的風格。系統能否被用戶接受,有時就取決于輸入和輸出的風格。輸入/輸出風格還受到許多其他因素的影響。如輸入/輸出設備(終端的類型,圖形設備,數字化轉換設備等)、用戶的熟練程度以及通信環境等。不論是批處理的輸入/輸出方式,還是交互式的輸入/輸出方式,在設計和程序編碼時都應考慮下列原則。
①對所有的輸入數據都要進行檢驗,識別錯誤的輸入,以保證每個數據的有效性;
②檢查輸入項的各種重要組合的合理性,必要時報告輸入狀態信息;
③使輸入的步驟和操作盡可能簡單,并保持簡單的輸入格式;
④輸入數據時,應允許使用自由格式輸入;
⑤應允許缺省值(默認值);
⑥輸入一批數據時,最好使用輸入結束標志,而不要由用戶指定輸入數據數目;
⑦在交互式輸入時,要在屏幕上使用提示符,明確提示交互輸入的請求,指明可使用選擇項的種類和取值范圍。同時,在數據輸入的過程中和輸入結束時,也要在屏幕上給出狀態信息;
⑧當程序設計語言對輸入/輸出格式有嚴格要求時,應保持輸入格式與輸入語句要求的一致性;
⑨給所有的輸出加注解,并設計輸出報表格式。