軟件工程導論編碼_第1頁
軟件工程導論編碼_第2頁
軟件工程導論編碼_第3頁
軟件工程導論編碼_第4頁
軟件工程導論編碼_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

軟件工程導論課件編碼第一頁,共二十四頁,編輯于2023年,星期三2編碼編碼就是把軟件設(shè)計結(jié)果翻譯成用某種程序設(shè)計語言書寫的程序。1、選擇程序設(shè)計語言程序設(shè)計語言是人和計算機通信的最基本的工具,它的特點必然會影響人的思維和解題方式,會影響人和計算機通信的方式和質(zhì)量,也會影響其他人閱讀和理解程序的難易程度。因此,編碼之前的一項重要工作就是選擇一種適當?shù)某绦蛟O(shè)計語言。第二頁,共二十四頁,編輯于2023年,星期三3選擇程序設(shè)計語言的主要實用標準:

(1)系統(tǒng)用戶的要求。

(2)可以使用的編譯程序。

(3)可以得到的軟件工具。

(4)工程規(guī)模。

(5)程序員的知識。

(6)軟件可移植性要求。

(7)軟件的應(yīng)用領(lǐng)域。第三頁,共二十四頁,編輯于2023年,星期三42程序設(shè)計風格程序?qū)嶋H上也是一種供人閱讀的文章,有一個文章的風格問題。應(yīng)該使程序具有良好的風格。

源程序文檔化

數(shù)據(jù)說明

語句結(jié)構(gòu)

輸入/輸出方法第四頁,共二十四頁,編輯于2023年,星期三5(1)源程序文檔化

標識符的命名

安排注釋

程序的視覺組織第五頁,共二十四頁,編輯于2023年,星期三6★

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

夾在程序中的注釋是程序員與日后的程序讀者之間通信的重要手段。注釋決不是可有可無的。一些正規(guī)的程序文本中,注釋行的數(shù)量占到整個源程序的1/3到1/2,甚至更多。注釋分為序言性注釋和功能性注釋。第七頁,共二十四頁,編輯于2023年,星期三8序言性注釋通常置于每個程序模塊的開頭部分,它應(yīng)當給出程序的整體說明,對于理解程序本身具有引導作用。序言性注釋包括:

程序標題;有關(guān)本模塊功能和目的的說明;

主要算法;

接口說明:包括調(diào)用形式,參數(shù)描述,子程序清單;

有關(guān)數(shù)據(jù)描述:重要的變量及其用途,約束或限制條件,以及其它有關(guān)信息;

模塊位置:在哪一個源文件中,或隸屬于哪一個軟件包;

開發(fā)簡歷:模塊設(shè)計者,復(fù)審者,復(fù)審日期,修改日期及有關(guān)說明等。第八頁,共二十四頁,編輯于2023年,星期三9功能性注釋功能性注釋嵌在源程序體中,用以描述其后的語句或程序段是在做什么工作,或是執(zhí)行了下面的語句會怎么樣,而不要解釋下面怎么做。例如,/*ADDAMOUNTTOTOTAL*/

TOTAL=AMOUNT+TOTAL

上面注視不清楚,如果注明把月銷售額計入年度總額,便使讀者理解了下面語句的意圖:

/*ADDMONTHLY-SALESTOANNUAL-TOTAL*/

TOTAL=AMOUNT+TOTAL要點描述一段程序,而不是每一個語句;用縮進和空行,使程序與注釋容易區(qū)別;注釋要正確。第九頁,共二十四頁,編輯于2023年,星期三10★視覺組織空格、空行和移行恰當?shù)乩每崭?,可以突出運算的優(yōu)先性,避免發(fā)生運算的錯誤。例如,將表達式

(A<-17)ANDNOT(B<=49)ORC

寫成(A<-17)ANDNOT(B<=49)ORC自然的程序段之間可用空行隔開;移行也叫做向右縮格。它是指程序中的各行不必都在左端對齊,都從第一格起排列。這樣做使程序完全分不清層次關(guān)系。對于選擇語句和循環(huán)語句,把其中的程序段語句向右做階梯式移行。使程序的邏輯結(jié)構(gòu)更加清晰。例如,兩重選擇結(jié)構(gòu)嵌套,寫成下面的移行形式,層次就清楚得多。

IF(…)

THEN

IF(…)

THEN

……

ELSE

……

ENDIF

……

ELSE

……

ENDIF第十頁,共二十四頁,編輯于2023年,星期三11(2)數(shù)據(jù)說明在設(shè)計階段已經(jīng)確定了數(shù)據(jù)結(jié)構(gòu)的組織及其復(fù)雜性。在編寫程序時,則需要注意數(shù)據(jù)說明的風格。為了使程序中數(shù)據(jù)說明更易于理解和維護,必須注意以下幾點:

數(shù)據(jù)說明的次序應(yīng)該標準化。有次序易查閱,能加速測試、調(diào)試和維護的過程。例如:數(shù)據(jù)說明數(shù)據(jù)類型說明

①常量說明 ②簡單變量類型說明 ③數(shù)組說明 ④公用數(shù)據(jù)塊說明 ⑤所有的文件說明①整型量說明②實型量說明③字符量說明④邏輯量說明第十一頁,共二十四頁,編輯于2023年,星期三12

b.

當多個變量名在一個語句中說明時,應(yīng)該按字母順序排列這些變量。

例如,把

integersize,length,width,cost,price

寫成

integer

cost,length,price,size,widthc.如果設(shè)計時使用了一個復(fù)雜的數(shù)據(jù)結(jié)構(gòu),則應(yīng)該用注解說明用程序設(shè)計語言實現(xiàn)這個數(shù)據(jù)結(jié)構(gòu)的方法和特點。第十二頁,共二十四頁,編輯于2023年,星期三13(3)語句構(gòu)造

構(gòu)造語句時應(yīng)該遵循的原則是,每個語句都應(yīng)該簡單而直接,不能為了提高效率而使程序變得過分復(fù)雜;也不要刻意追求技巧性,使程序編寫得過于緊湊。例如:A[I]=A[I]+A[T];

A[T]=A[I]-A[T];

A[I]=A[I]-A[T];WORK=A[T];

A[T]=A[I];

A[I]=WORK;第十三頁,共二十四頁,編輯于2023年,星期三例如:

inti,j;for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

V[i][j]=(i/j)*(j/i)

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

if(i==j)

V[i][j]=1;

else

V[i][j]=0;第十四頁,共二十四頁,編輯于2023年,星期三下述規(guī)則有助于使語句簡單明了:

不要為了節(jié)省空間而把多個語句寫在同一行;盡量避免復(fù)雜的條件測試;盡量減少對“非”條件的測試;

if(!(char<0||char>9))

改成

if(char>=0&&char<=9)

不要讓讀者繞彎子想。

避免大量使用循環(huán)嵌套和條件嵌套;利用括號使邏輯表達式或算術(shù)表達式的運算次序清晰直觀。第十五頁,共二十四頁,編輯于2023年,星期三16(4)輸入輸出

在設(shè)計和編寫程序時應(yīng)該考慮下述有關(guān)輸入輸出風格的規(guī)則:

對所有的輸入數(shù)據(jù)都要進行檢驗,識別錯誤的輸入,以保證每個數(shù)據(jù)的有效性;檢查輸入項的各種重要組合的合法性,必要時報告輸入狀態(tài)信息;使得輸入的步驟和操作盡可能簡單,并保持簡單的輸入格式;輸入數(shù)據(jù)時,應(yīng)允許使用自由格式輸入;應(yīng)允許缺省值;第十六頁,共二十四頁,編輯于2023年,星期三17輸入一批數(shù)據(jù)時,最好使用輸入結(jié)束標志,而不要由用戶指定輸入數(shù)據(jù)數(shù)目;在交互式輸入輸入時,要在屏幕上使用提示符明確提示交互輸入的請求,指明可使用選擇項的種類和取值范圍。同時,在數(shù)據(jù)輸入的過程中和輸入結(jié)束時,也要在屏幕上給出狀態(tài)信息;當程序設(shè)計語言對輸入/輸出格式有嚴格要求時,應(yīng)保持輸入格式與輸入語句的要求的一致性;給所有的輸出加注解,并設(shè)計輸出報表格式。

輸入/輸出風格還受到許多其它因素的影響。如輸入/輸出設(shè)備(例如終端的類型,圖形設(shè)備,數(shù)字化轉(zhuǎn)換設(shè)備等)、用戶的熟練程度、以及通信環(huán)境等。第十七頁,共二十四頁,編輯于2023年,星期三18(5)程序效率

程序的效率是指程序的執(zhí)行速度及程序所需占用的內(nèi)存的存儲空間。程序編碼是最后提高運行速度和節(jié)省存儲的機會,因此在此階段不能不考慮程序的效率。第十八頁,共二十四頁,編輯于2023年,星期三19讓我們首先明確討論程序效率的幾條準則效率是一個性能要求,應(yīng)當在需求分析階段給出。軟件效率以需求為準,不應(yīng)以人力所及為準。好的設(shè)計可以提高效率。程序的效率與程序的簡單性相關(guān),不要犧牲程序的清晰性和可讀性來不必要地提高效率。第十九頁,共二十四頁,編輯于2023年,星期三20效率問題

(1)程序運行時間

(2)存儲器效率

(3)輸入輸出的效率第二十頁,共二十四頁,編輯于2023年,星期三21(1)

程序運行時間源程序的效率直接由詳細設(shè)計階段確定的算法的效率決定,但是,寫程序的風格也能對程序的執(zhí)行速度和存儲器要求產(chǎn)生影響。在把詳細設(shè)計結(jié)果翻譯成程序時,總可以應(yīng)用下述規(guī)則:

√寫程序之前先簡化算術(shù)的和邏輯的表達式;

√仔細研究嵌套的循環(huán),以確定是否有語句可以從內(nèi)層往外移;

√盡量避免使用多維數(shù)組;

√盡量避免使用指針和復(fù)雜的表;

√使用執(zhí)行時間短的算術(shù)運算;

√不要混合使用不同的數(shù)據(jù)類型;

√盡量使用整數(shù)運算和布爾表達式。

在效率是決定性因素的應(yīng)用領(lǐng)域,盡量使用有良好優(yōu)化特性的編譯程序,以自動生成高效目標代碼。第二十一頁,共二十四頁,編輯于2023年,星期三22(2)

存儲器效率在大中型計算機系統(tǒng)中,存儲限制不再是主要問題。在這種環(huán)境下,對內(nèi)存采取基于操作系統(tǒng)的分頁功能的虛擬存儲管理。存儲效率與操作系統(tǒng)的分頁功能直接有關(guān)。采用結(jié)構(gòu)化程序設(shè)計,將程序功能合理分塊,使每個模塊或一組密切相關(guān)模塊的程序體積大小與每頁的容量相匹配,可減少頁面調(diào)度,減少內(nèi)外存交換,提高存儲效率。在微型計算機系統(tǒng)中,存儲器的容量對軟件設(shè)計和編碼的制約很大。因此要選擇可生成較短目標代碼且存儲壓縮性能優(yōu)良的編譯程序,有時需采用匯編程序。提高存儲器效率的關(guān)鍵是程序的簡單性。第二十二頁,共二十四頁,編輯于2023年,星期三23(3)

輸入輸出的效率輸入/輸出可分為兩種類型:面向人(操作員)的輸入/輸出面向設(shè)備的輸入/輸出如果操作員能夠十分方便、簡單地錄入輸入數(shù)據(jù),或者能夠十分直觀、一目了然地了解輸出信息,則可以說面向人的輸入/輸出是高效的。第二十三頁,共二十四頁,編輯于2023年,星期三24關(guān)于提

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論