軟體工程---程式編碼
目錄
一、程式設計語言
分類:組合語言、高階語言
機器語言 、組合語言第一第二代計算機用
高階語言:同一個問題,高階語言編碼可鄙彙編少3——7倍
按照軟體工程的分類,語言的發展分為:
三個階段---面向機器的語言、高階語言、甚高階語言
四代---機器語言(1)、組合語言(2)、高階語言(3)、甚高階語言(4)
高階語言分為:系統實現語言、靜態高階語言、塊結構高階語言、動態高階語言
語言的選擇
1、不同的應用領域選擇不同的語言
2、系統使用者的要求覺決定:使用者使用它們熟悉的語言或操作
3、可以使用的編譯程式:執行目標系統的環境中可以提供的編譯程式限制了對語言的選擇
4、程式設計師的經驗和知識
5、軟體可移植性要求
6、當工程規模很大時,而有沒有完全合適的語言,可編一個專用的語言
7、演算法與計算複雜性,軟體的可靠性
8、資料結構的複雜性,付按揭的可維護性
9、小路的考慮
10、瞭解語言的發招前景
選擇語言的原則:最少工作量原則、最少技巧性原則、最少錯誤原則、最少維護原則、最少記憶原則
總原則:1-先求正確後求快 2-先求清晰後求快 3-求快不忘保持程式正確 4-保持程式整潔以求快 5-不要因效率而犧牲清晰
好程式的標準:1-易於測試和除錯 2-易於維護 3-易於修改 4-設計簡單 5-高效率
二、結構化程式設計
1-在編寫程式時,強調使用集中基本控制結構
2-在程式設計過程中儘量採用自頂向下和逐步細化的原則,又粗到細,一步步展開
主要原則
使用語言中的順序、選擇、迴圈等有限的基本控制結構表示程式邏輯
選用的控制結構只准許單入口、單出口
複雜結構應該用基本結構控制結構進行組合巢狀來實現
三、程式設計風格
源程式文件化
識別符號的命名
安排註釋
程式的視覺組織
資料說明
資料說明的次序應當規範化
說明語句中變數安排有序化
使用註釋說明覆雜資料結構
語句結構
語句構造-力求簡單、直接,不能為了片面準求效率而使語句複雜化
一行內只寫一條語句
程式編寫首先應當考慮清晰性
程式要能直接了當地說明程式設計師的用意
除非對效率有特殊的要求,程式編寫要做到清晰第一,效率第二
首先保證程式正確然後才要求提高速度
避免使用臨時變數而使可讀性下降
讓編譯程式做簡單的優化
儘可能使用庫函式
避免不必要的轉移,同時如果能保持程式可讀性,則不必用GO TO 語句
儘量只採用三種基本的控制結構來編寫程式
避免使用空的ELSE語句和IF…THEN IF…語句,這種結構容易使讀者產生誤解
避免採用過過於複雜的條件測試
儘量減少使用“否定”條件的條件語句
儘可能用通俗易懂的偽碼來描述程式的流程,然後再翻譯成必須使用的語言
資料結構要有利於程式的簡化
要模組化
利用資訊隱蔽,確保每一個模組的獨立性
從資料出發去構造程式
不要修補不好的程式要重新編寫
對太大的程式,要分塊編寫、測試,然後再整合
輸入/輸出方法
輸入和輸出資訊是與使用者的使用直接相關的,輸入和輸出的方式和格式應當儘可能方便使用者的使用
滿足 執行工程學的輸入輸出風格
輸入:輸入格式力求簡單、一直,並儘可能採用自由格式輸入;使用資料結束或檔案結束標準來終止輸入,不要讓使用者來計算輸入的項數或記錄數
輸出:標誌左右的輸出資料,加必要的說明 -當用戶使用程式時,可對使用者做到”線上“幫助 -對可能產生重大後果的請求,先給出提示 -對所有輸出的資料加標註 -發生錯誤時,能迅速恢復正常
程式設計質量評價
(一)正確性
程式中沒有語法錯誤
程式執行時沒有發現明確的執行錯誤
程式中沒有不適當的語句
用有效的測試資料,得到程式的正確結果
用無效的測試資料, 得到程式的正確結果
用任何可能的資料使程式在執行時得到正確的結果
(二)結構清晰性
1、是否使用三種結構化格式表示程式的控制邏輯
2、是否有一個入口,一個出口
3、是否嚴格控制GOTO語句
(三)易修改性
(四)易讀性
(五)簡單性
四、程式的複雜性度量:
程式複雜性主要是指模組內程式的複雜性
程式碼行度量方法:方法的基本考慮時統計一個程式模組的原始碼行數目,並以原始碼行數座位程式複雜性的度量
McCabe度量法:又稱環路複雜性度量,是一種計語程式控制流的複雜性度量方法