1.什麼是結構化程式設計?
2.什麼是結構化程式設計的原則?
3.了解程式設計風格的要求?
4.了解程式語言的分類和特點/?
5.掌握度量程式複雜性的方法。
一、程式語言的分類
1.可分為組合語言和高階語言二大類
(1)機器語言、彙編
第一、第二代計算機用
(2)高階語言
同乙個問題,高階語言編碼可比彙編少3~7倍
按軟體工程的分類,語言的發展大致分4代、3階段
2.從語言的內在特徵看,高階語言可分為系統實現語言、靜態高階語言、塊結構高階語言和動態高階語言四大類:
(1)系統實現語言
(2)靜態高階語言
(3)塊結構高階語言
(4)動態高階語言
二、語言的選擇
1.應用領域的不同決定選擇的語言
2.系統使用者的要求決定
使用者使用他們熟悉的語言
3.可以使用的編譯程式
執行目標系統的環境中可以提供的編譯程式往往限制了對語言的選擇。
4.程式設計師的經驗和知識(程式設計者對語言的熟悉程度)
5、軟體可移植性要求
6.當工程規模很大時,而又沒有完全合適的語言,可編乙個專用的語言
7、演算法與計算複雜性、軟體的可靠性
8、資料結構的複雜性,軟體的可維護性
9.效率的考慮
10.了解語言的發展前景
總之,選擇語言的原則為:
(1)最少的工作量原則
(2)最少技巧性原則
(3)最少錯誤原則
(4)最少維護原則
(5)減少記憶原則
1.什麼是結構化程式設計?
結構化程式設計是進行以模組功能和處理過程設計為主的詳細設計的基本原則。結構化程式設計是過程式程式設計的乙個子集,它對寫入的程式使用邏輯結構,使得理解和修改更有效更容易。
2.結構化程式設計主要包括兩方面:
(1)在編寫程式時,強調使用集中基本控制結構。
(2)在程式設計過程中,盡量採用自頂向下和逐步細化的原則,由粗到細,一步步展開。
3.結構化程式設計的主要原則:
(1)使用語言中的順序、選擇、重複等有限的基本控制結構表示程式邏輯。
(2)選用的控制結構只准許由乙個入口和乙個出口。
(3)複雜結構應該用基本控制結構進行組合巢狀來實現。
一、什麼是程式設計風格
程式設計風格指乙個人編制程式時所表現出來的特點,習慣邏輯思路等。在程式設計中要使程式結構合理、清晰,形成良好的程式設計習慣,對程式的要求不僅是可以在機器上執行,給出正確的結果,而且要便於程式的除錯和維護,這就要求編寫的程式不僅自己看得懂,而且也要讓別人能看懂。
二、指導原則
1.源程式文件化
(1)識別符號應按意取名。
(2)程式應加注釋。
2.資料說明原則
(1).資料說明順序應規範,使資料的屬性更易於查詢,從而有利於測試、糾錯與維護。例如按以下順序:常量壽命、型別說明、全程量說明、區域性量說明。
(2).乙個語句說明多個變數時,各變數名按字典序排列。
(3).對於複雜的資料結構,要加注釋,說明在程式實現時的特點。
3.語句構造原則
語句構造的原則是:簡單直接,不能為了追求效率而使**複雜化。
4.輸入輸出原則
輸入和輸出在編寫輸入和輸出程式時考慮以下原則:
(1).輸入操作步驟和輸入格式盡量簡單。
(2).應檢查輸入資料的合法性、有效性,報告必要的輸入狀態資訊及錯誤資訊。
(3).輸入一批資料時,使用資料或檔案結束標誌,而不要用計數來控制。
(4).互動式輸入時,提供可用的選擇和邊界值。
(5).當程式語言有嚴格的格式要求時,應保持輸入格式的一致性。
(6).輸出資料**化、圖形化。
5.追求效率原則
指處理機時間和儲存空間的使用,對效率的追求明確以下幾點:
(1)效率是乙個效能要求,目標在需求分析給出。
(2)追求效率建立在不損害程式可讀性或可靠性基礎上,要先使程式正確,再提高程式效率,先使程式清晰,再提高程式效率。
(3)提高程式效率的根本途徑在於選擇良好的設計方法、良好的資料結構演算法,而不是靠程式設計時對程式語句做調整。
一、正確性
1、程式中沒有語法錯誤『
2、程式執行時沒有發現明確的執行錯誤;
3、程式中沒有不適當的語句;
4.用有效的測試資料,得到程式的正確結果;
5.用無效的測試資料,得到程式的正確結果;
6.用任何可能的資料,使程式在執行時得到正確的結果。
二、結構清晰性
1.是否用三種結構化格式表示程式邏輯
2.是否有乙個入口,乙個出口
3.是否嚴格控制goto語句
三、易修改行
四、易讀性
五、簡單性
程式複雜性主要指模組內程式的複雜性。
一、方法
1.**行度量法:
方法的基本考慮是統計乙個程式模組的源**行數目,並以源**行數為程式複雜性的度量。
2.mccabe度量法
又稱環路複雜性度量,是一種基於程式控制流的複雜性度量方法。
二、計算方法
1.計算環路複雜性的方法:
根據圖論,在乙個強連通的有向圖g中,環的個數有以下公式給出
v(g)= m - n + p
其中,v(g)是有向圖g中環路個數,m是圖g弧數,n是圖g中結點數,p是圖g中強連通分量個數。
2.halstead的軟體科學:
halstead軟體科學研究確定計算機軟體開發中的一些定量規律,它採用以下一組基本的度量值。
程式長令n1表示程式中不同運算子的個數,令n2表示程式中不同運算物件的個數,令h表示「程式長度」,則有
h = n1*log2n1+n2*log2n2
這裡,h是程式長度的**值,它不等於程式中語句個數。
三、計算
1.程式量v
可用下式得到:v = n 1* log2n
2.程式量比率l
l = v* /v
3.程式設計師工作量e
e = v / l
4.程式的潛在錯誤
halstead度量可以用來**程式中的錯誤。**公式為
b= (n1 + n2) * log2(n1 + n2) /3000
b 為該程式的錯誤數
例如,乙個程式對75個資料庫項共訪問1300次,對150個運算子共使用了1200次,那麼**該程式的錯誤數:
b = (1200+1300) * log2(75+150)/300 約等於6.5
即**該程式中可能包含6~7個錯誤。
軟體工程 程式編碼
軟體工程的編碼階段主要是由工作在一線的軟體開發人員程式設計師和程式經理來完成的,這個階段的主角決定著軟體的質量的好壞。下面我分為兩個部分來總結一下程式編碼和編碼後的質量評價。1.語言的分類導圖裡面已經很清晰了,但是高階語言還包括四個型別 系統實現語言 靜態高階語言 快結構語言 動態高階語言 2.語言...
軟體工程 程式編碼
程式編碼是將 詳細設計 結果轉換為某一種程式語言編寫的程式的過程。有許多因素制約和影響著軟體的質量和可維護性。1 應用領域的不同決定選擇的語言 2 系統使用者的要求決定,使用者使用他們熟悉的語言 3 可以使用的編譯程式 4 程式設計師的經驗和知識 5 軟體可移植性要求 6 當工程規模很大時,二又沒有...
軟體工程6 軟體編碼
1960年底dijkstra提倡的 a 是一種有效的提高程式設計效率的方法。dijkstra為了使程式結構易於理解,把基本控制結構限於順序 b c 避免使用 d a 不僅提高程式設計的生產率,同時也容易進行程式的 e 供選擇的答案 a 1.標準化程式設計 2.組合語言 3.多道程式設計 4.巨集語言...