劉志強
(科爾沁藝術職業學院,內蒙古 通遼 028000)
人們總是希望編制清晰、緊湊、高效的程序,但這些特性在編碼時往往互相矛盾,一般應依次考慮下列原則:
(1)程序的正確性與可靠性
程序的價值首先在于能夠運行并正確地解決問題,即在預定的條件下輸入必要的數據后,能得到正確的輸出結果。其次,還要求程序必須穩定可靠,在遇到意外情況時能自動進行適當的處理。例如,程序能識別由于誤操作輸入的不合理數據,并能采取適當的對策,以確保程序的運行不受干擾。可靠性指的是程序正常工作的能力,一般用平均無故障時間來衡量。
(2)程序的可讀性
現代計算機的應用程序往往由若干人分工合作完成。某個人編寫的程序不僅自己能讀懂,還要使其他人也能夠讀懂,這樣才便于整個程序系統的調試、組裝。為此,應盡可能在程序中關鍵的位置上使用注釋語句,說明程序模塊的功能、變量的作用等。
(3)程序的可維護性
程序運行時可能出現故障。出現故障后檢查故障的原因、確定程序中的錯誤位置、修正程序中的錯誤等操作需要一定的時間。程序可維護性的優劣就是以這類操作所需時間的長短來體現的。
(4)程序的重用
程序的重用是降低軟件開發成本、提高軟件質量的有效途徑,盡可能編寫可重用的模塊,減少重復的勞動。
(5)程序的可移植性
程序的可移植性指的是在某一種型號的計算機上編寫的程序,轉到其它型號的計算機上運行的能力。
(6)程序的可擴充性
程序的可擴充性指的是在不改變整體結構的前提下,經過某些處理使程序的功能有所擴充。
(7)程序的效率
程序的效率主要是指程序運行時所占有的系統資源與程序本身處理功能的比率。
程序結構的主要原則:
(1)使用語言中的順序、選擇、重復等有限的基本控制結構表示程序邏輯。
(2)選用的控制結構只準許有一個入口和一個出口。
(3)復雜結構應該用基本控制結構進行組合嵌套來實現。
(4)嚴格控制GOTO語句。
良好的程序設計風格是軟件開發人員應該具備的基本素質。良好的編寫習慣,不但有助于代碼的移植和糾錯,也有助于軟件開發人員之間的協作。
(1)源程序文檔化。正確、適當地使用注釋,恰當地使用標識符,完整地編制文檔。
(2)數據說明的次序應標準化,對于復雜數據結構,應說明實現這個數據結構的方法和特點。
(3)語句結構應該簡單而直接。如不要為了節省空間而把多個語句寫在同一行。
(4)輸入/輸出。對所有輸入輸出數據都進行檢驗,對輸入數據,說明其可用的選擇或邊界值;輸出的內容應保持格式一致。
(5)盡可能提高程序的效率。
采用模塊化程序設計可以使軟件結構清晰,不僅容易設計,也容易閱讀和理解。因為程序錯誤通常局限于有關的模塊以及它們之間的接口之中,所以模塊化程序設計使軟件容易測試和調試,有助于提高軟件的可靠性。
根據人們解決問題的一般規律,將一個復雜的問題分解成若干個較小的問題,能夠減小解題所需要的總工作量。
每個模塊是一個特定子功能,模塊之間僅僅交換那些為完成系統功能必須交換的信息,相對于其它模塊獨立。模塊的獨立程度可以用兩個定性標準來度量,一是內聚,二是耦合。
4.2.1 內聚
(1)偶然性內聚
模塊內各成分在功能上互不相關,即使有關系,也很松散。
(2)邏輯性內聚
模塊完成的各項任務邏輯上相關,通常由若干個邏輯功能相似的成分組成。
(3)時間性內聚
模塊包含的各項任務必須在同一時間段內執行。
(4)過程性內聚
一個模塊內處理的元素是相關的,而且必須按照某一特定次序執行。
(5)通信性內聚
模塊內部的各成分都使用同一種輸入數據,或產生同一個輸出數據,它們靠公用數據聯系在一起。
(6)順序性內聚
模塊內各組成部分必須順序執行,前一部分的輸出就是后一部分的輸入。
(7)功能性內聚
模塊內所有成分結合在一起,用于完成一個單一的功能。
內聚度越高越好,設計程序時,應該能夠識別內聚度的高低,盡可能地提高模塊的內聚度,從而獲得較高的模塊獨立性。
4.2.2 耦合
(1)非直接耦合
兩個模塊之間任何一個都能夠不依賴于其它模塊而獨立工作,相互之間沒有信息傳遞。
(2)數據耦合
如果模塊之間通過參數交換信息,而信息僅限于數據,則構成數據耦合。
(3)特征耦合
模塊之間不僅僅交換數據,而且交換數據結構。
(4)控制耦合
模塊間傳遞的信息中含有控制信息。
(5)外部耦合
若干個模塊與同一個外部環境關聯。
(6)公共耦合
若干個模塊訪問同一個全局性的數據結構。
(7)內容耦合
兩個模塊之間出現一個模塊使用另一個模塊內部的數據或控制信息,或者一個模塊直接轉移到另一個模塊的內部。
在程序設計時應追求盡可能松散耦合。因為耦合松散的程序對模塊的設計、測試和維護相對獨立。模塊間的耦合程度直接影響程序的可理解性、可測試性和可維護性。
質量是軟件需求方最關心的問題。軟件設計成功的標準是用戶使用你所設計的軟件可以很容易完成要完成的任務。軟件的質量因素有很多,主要有以下方面:
正確性與精確性:軟件開發人員要為“正確”、“精確”四個字竭盡全力。
性能與效率:用戶都希望軟件的運行速度高些,并且占用資源少些。
易用性:由于人們的專業領域不同、操作習慣不同等原因,對軟件的感覺與要求差異很大,軟件開發人員要多從用戶的角度來考慮問題。
可理解性與簡潔性:編程時還要注意不可濫用技巧,應該用自然的方式編程,簡潔是一種美。
程序的正確性是保證程序質量的前提。軟件開發人員的工作是創建正確的、完全符合要求的代碼。保證代碼的正確性是軟件開發人員的責任,因此,軟件開發人員在把代碼提交給編譯器之前必須徹底地檢查代碼的正確性。采用一個良好的定義過程是第一道防線,其次是進行檢查。質量與生產率之間有著內在的聯系,高生產率必須以質量合格為前提。
[1]張忠林,王堅生,蘭麗.軟件項目管理思想在“軟件工程”實踐教學中的應用[J].計算機教育,2010,(05):157-160.
[2]王美華,張剛,丁京柱.面向對象的程序設計[J].河北工業科技.1999,(12):26-30.
[3]王華勝,王停.面向對象的軟件工程方法[J].河北省科學院學報.2003,(05):103-106.