版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程導(dǎo)論課件編碼第一頁(yè),共二十四頁(yè),編輯于2023年,星期三2編碼編碼就是把軟件設(shè)計(jì)結(jié)果翻譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。1、選擇程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言是人和計(jì)算機(jī)通信的最基本的工具,它的特點(diǎn)必然會(huì)影響人的思維和解題方式,會(huì)影響人和計(jì)算機(jī)通信的方式和質(zhì)量,也會(huì)影響其他人閱讀和理解程序的難易程度。因此,編碼之前的一項(xiàng)重要工作就是選擇一種適當(dāng)?shù)某绦蛟O(shè)計(jì)語(yǔ)言。第二頁(yè),共二十四頁(yè),編輯于2023年,星期三3選擇程序設(shè)計(jì)語(yǔ)言的主要實(shí)用標(biāo)準(zhǔn):
(1)系統(tǒng)用戶的要求。
(2)可以使用的編譯程序。
(3)可以得到的軟件工具。
(4)工程規(guī)模。
(5)程序員的知識(shí)。
(6)軟件可移植性要求。
(7)軟件的應(yīng)用領(lǐng)域。第三頁(yè),共二十四頁(yè),編輯于2023年,星期三42程序設(shè)計(jì)風(fēng)格程序?qū)嶋H上也是一種供人閱讀的文章,有一個(gè)文章的風(fēng)格問(wèn)題。應(yīng)該使程序具有良好的風(fēng)格。
源程序文檔化
數(shù)據(jù)說(shuō)明
語(yǔ)句結(jié)構(gòu)
輸入/輸出方法第四頁(yè),共二十四頁(yè),編輯于2023年,星期三5(1)源程序文檔化
標(biāo)識(shí)符的命名
安排注釋
程序的視覺(jué)組織第五頁(yè),共二十四頁(yè),編輯于2023年,星期三6★
符號(hào)名的命名符號(hào)名即標(biāo)識(shí)符,包括模塊名、變量名、常量名、標(biāo)號(hào)名、子程序名、、數(shù)據(jù)區(qū)名以及緩沖區(qū)名等。這些名字應(yīng)能反映它所代表的實(shí)際東西,應(yīng)有一定實(shí)際意義。例如,表示次數(shù)的量用Times,表示總量的用Total,表示平均值的用Average,表示和的量用Sum等。名字不是越長(zhǎng)越好,應(yīng)當(dāng)選擇精煉的意義明確的名字。必要時(shí)可使用縮寫名字,但這時(shí)要注意縮寫規(guī)則要一致,并且要給每一個(gè)名字加注釋。同時(shí),在一個(gè)程序中,一個(gè)變量只應(yīng)用于一種用途。第六頁(yè),共二十四頁(yè),編輯于2023年,星期三7★程序的注釋
夾在程序中的注釋是程序員與日后的程序讀者之間通信的重要手段。注釋決不是可有可無(wú)的。一些正規(guī)的程序文本中,注釋行的數(shù)量占到整個(gè)源程序的1/3到1/2,甚至更多。注釋分為序言性注釋和功能性注釋。第七頁(yè),共二十四頁(yè),編輯于2023年,星期三8序言性注釋通常置于每個(gè)程序模塊的開頭部分,它應(yīng)當(dāng)給出程序的整體說(shuō)明,對(duì)于理解程序本身具有引導(dǎo)作用。序言性注釋包括:
程序標(biāo)題;有關(guān)本模塊功能和目的的說(shuō)明;
主要算法;
接口說(shuō)明:包括調(diào)用形式,參數(shù)描述,子程序清單;
有關(guān)數(shù)據(jù)描述:重要的變量及其用途,約束或限制條件,以及其它有關(guān)信息;
模塊位置:在哪一個(gè)源文件中,或隸屬于哪一個(gè)軟件包;
開發(fā)簡(jiǎn)歷:模塊設(shè)計(jì)者,復(fù)審者,復(fù)審日期,修改日期及有關(guān)說(shuō)明等。第八頁(yè),共二十四頁(yè),編輯于2023年,星期三9功能性注釋功能性注釋嵌在源程序體中,用以描述其后的語(yǔ)句或程序段是在做什么工作,或是執(zhí)行了下面的語(yǔ)句會(huì)怎么樣,而不要解釋下面怎么做。例如,/*ADDAMOUNTTOTOTAL*/
TOTAL=AMOUNT+TOTAL
上面注視不清楚,如果注明把月銷售額計(jì)入年度總額,便使讀者理解了下面語(yǔ)句的意圖:
/*ADDMONTHLY-SALESTOANNUAL-TOTAL*/
TOTAL=AMOUNT+TOTAL要點(diǎn)描述一段程序,而不是每一個(gè)語(yǔ)句;用縮進(jìn)和空行,使程序與注釋容易區(qū)別;注釋要正確。第九頁(yè),共二十四頁(yè),編輯于2023年,星期三10★視覺(jué)組織空格、空行和移行恰當(dāng)?shù)乩每崭?,可以突出運(yùn)算的優(yōu)先性,避免發(fā)生運(yùn)算的錯(cuò)誤。例如,將表達(dá)式
(A<-17)ANDNOT(B<=49)ORC
寫成(A<-17)ANDNOT(B<=49)ORC自然的程序段之間可用空行隔開;移行也叫做向右縮格。它是指程序中的各行不必都在左端對(duì)齊,都從第一格起排列。這樣做使程序完全分不清層次關(guān)系。對(duì)于選擇語(yǔ)句和循環(huán)語(yǔ)句,把其中的程序段語(yǔ)句向右做階梯式移行。使程序的邏輯結(jié)構(gòu)更加清晰。例如,兩重選擇結(jié)構(gòu)嵌套,寫成下面的移行形式,層次就清楚得多。
IF(…)
THEN
IF(…)
THEN
……
ELSE
……
ENDIF
……
ELSE
……
ENDIF第十頁(yè),共二十四頁(yè),編輯于2023年,星期三11(2)數(shù)據(jù)說(shuō)明在設(shè)計(jì)階段已經(jīng)確定了數(shù)據(jù)結(jié)構(gòu)的組織及其復(fù)雜性。在編寫程序時(shí),則需要注意數(shù)據(jù)說(shuō)明的風(fēng)格。為了使程序中數(shù)據(jù)說(shuō)明更易于理解和維護(hù),必須注意以下幾點(diǎn):
數(shù)據(jù)說(shuō)明的次序應(yīng)該標(biāo)準(zhǔn)化。有次序易查閱,能加速測(cè)試、調(diào)試和維護(hù)的過(guò)程。例如:數(shù)據(jù)說(shuō)明數(shù)據(jù)類型說(shuō)明
①常量說(shuō)明 ②簡(jiǎn)單變量類型說(shuō)明 ③數(shù)組說(shuō)明 ④公用數(shù)據(jù)塊說(shuō)明 ⑤所有的文件說(shuō)明①整型量說(shuō)明②實(shí)型量說(shuō)明③字符量說(shuō)明④邏輯量說(shuō)明第十一頁(yè),共二十四頁(yè),編輯于2023年,星期三12
b.
當(dāng)多個(gè)變量名在一個(gè)語(yǔ)句中說(shuō)明時(shí),應(yīng)該按字母順序排列這些變量。
例如,把
integersize,length,width,cost,price
寫成
integer
cost,length,price,size,widthc.如果設(shè)計(jì)時(shí)使用了一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),則應(yīng)該用注解說(shuō)明用程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)這個(gè)數(shù)據(jù)結(jié)構(gòu)的方法和特點(diǎn)。第十二頁(yè),共二十四頁(yè),編輯于2023年,星期三13(3)語(yǔ)句構(gòu)造
構(gòu)造語(yǔ)句時(shí)應(yīng)該遵循的原則是,每個(gè)語(yǔ)句都應(yīng)該簡(jiǎn)單而直接,不能為了提高效率而使程序變得過(guò)分復(fù)雜;也不要刻意追求技巧性,使程序編寫得過(guò)于緊湊。例如: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;第十三頁(yè),共二十四頁(yè),編輯于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;第十四頁(yè),共二十四頁(yè),編輯于2023年,星期三下述規(guī)則有助于使語(yǔ)句簡(jiǎn)單明了:
不要為了節(jié)省空間而把多個(gè)語(yǔ)句寫在同一行;盡量避免復(fù)雜的條件測(cè)試;盡量減少對(duì)“非”條件的測(cè)試;
if(!(char<0||char>9))
改成
if(char>=0&&char<=9)
不要讓讀者繞彎子想。
避免大量使用循環(huán)嵌套和條件嵌套;利用括號(hào)使邏輯表達(dá)式或算術(shù)表達(dá)式的運(yùn)算次序清晰直觀。第十五頁(yè),共二十四頁(yè),編輯于2023年,星期三16(4)輸入輸出
在設(shè)計(jì)和編寫程序時(shí)應(yīng)該考慮下述有關(guān)輸入輸出風(fēng)格的規(guī)則:
對(duì)所有的輸入數(shù)據(jù)都要進(jìn)行檢驗(yàn),識(shí)別錯(cuò)誤的輸入,以保證每個(gè)數(shù)據(jù)的有效性;檢查輸入項(xiàng)的各種重要組合的合法性,必要時(shí)報(bào)告輸入狀態(tài)信息;使得輸入的步驟和操作盡可能簡(jiǎn)單,并保持簡(jiǎn)單的輸入格式;輸入數(shù)據(jù)時(shí),應(yīng)允許使用自由格式輸入;應(yīng)允許缺省值;第十六頁(yè),共二十四頁(yè),編輯于2023年,星期三17輸入一批數(shù)據(jù)時(shí),最好使用輸入結(jié)束標(biāo)志,而不要由用戶指定輸入數(shù)據(jù)數(shù)目;在交互式輸入輸入時(shí),要在屏幕上使用提示符明確提示交互輸入的請(qǐng)求,指明可使用選擇項(xiàng)的種類和取值范圍。同時(shí),在數(shù)據(jù)輸入的過(guò)程中和輸入結(jié)束時(shí),也要在屏幕上給出狀態(tài)信息;當(dāng)程序設(shè)計(jì)語(yǔ)言對(duì)輸入/輸出格式有嚴(yán)格要求時(shí),應(yīng)保持輸入格式與輸入語(yǔ)句的要求的一致性;給所有的輸出加注解,并設(shè)計(jì)輸出報(bào)表格式。
輸入/輸出風(fēng)格還受到許多其它因素的影響。如輸入/輸出設(shè)備(例如終端的類型,圖形設(shè)備,數(shù)字化轉(zhuǎn)換設(shè)備等)、用戶的熟練程度、以及通信環(huán)境等。第十七頁(yè),共二十四頁(yè),編輯于2023年,星期三18(5)程序效率
程序的效率是指程序的執(zhí)行速度及程序所需占用的內(nèi)存的存儲(chǔ)空間。程序編碼是最后提高運(yùn)行速度和節(jié)省存儲(chǔ)的機(jī)會(huì),因此在此階段不能不考慮程序的效率。第十八頁(yè),共二十四頁(yè),編輯于2023年,星期三19讓我們首先明確討論程序效率的幾條準(zhǔn)則效率是一個(gè)性能要求,應(yīng)當(dāng)在需求分析階段給出。軟件效率以需求為準(zhǔn),不應(yīng)以人力所及為準(zhǔn)。好的設(shè)計(jì)可以提高效率。程序的效率與程序的簡(jiǎn)單性相關(guān),不要犧牲程序的清晰性和可讀性來(lái)不必要地提高效率。第十九頁(yè),共二十四頁(yè),編輯于2023年,星期三20效率問(wèn)題
(1)程序運(yùn)行時(shí)間
(2)存儲(chǔ)器效率
(3)輸入輸出的效率第二十頁(yè),共二十四頁(yè),編輯于2023年,星期三21(1)
程序運(yùn)行時(shí)間源程序的效率直接由詳細(xì)設(shè)計(jì)階段確定的算法的效率決定,但是,寫程序的風(fēng)格也能對(duì)程序的執(zhí)行速度和存儲(chǔ)器要求產(chǎn)生影響。在把詳細(xì)設(shè)計(jì)結(jié)果翻譯成程序時(shí),總可以應(yīng)用下述規(guī)則:
√寫程序之前先簡(jiǎn)化算術(shù)的和邏輯的表達(dá)式;
√仔細(xì)研究嵌套的循環(huán),以確定是否有語(yǔ)句可以從內(nèi)層往外移;
√盡量避免使用多維數(shù)組;
√盡量避免使用指針和復(fù)雜的表;
√使用執(zhí)行時(shí)間短的算術(shù)運(yùn)算;
√不要混合使用不同的數(shù)據(jù)類型;
√盡量使用整數(shù)運(yùn)算和布爾表達(dá)式。
在效率是決定性因素的應(yīng)用領(lǐng)域,盡量使用有良好優(yōu)化特性的編譯程序,以自動(dòng)生成高效目標(biāo)代碼。第二十一頁(yè),共二十四頁(yè),編輯于2023年,星期三22(2)
存儲(chǔ)器效率在大中型計(jì)算機(jī)系統(tǒng)中,存儲(chǔ)限制不再是主要問(wèn)題。在這種環(huán)境下,對(duì)內(nèi)存采取基于操作系統(tǒng)的分頁(yè)功能的虛擬存儲(chǔ)管理。存儲(chǔ)效率與操作系統(tǒng)的分頁(yè)功能直接有關(guān)。采用結(jié)構(gòu)化程序設(shè)計(jì),將程序功能合理分塊,使每個(gè)模塊或一組密切相關(guān)模塊的程序體積大小與每頁(yè)的容量相匹配,可減少頁(yè)面調(diào)度,減少內(nèi)外存交換,提高存儲(chǔ)效率。在微型計(jì)算機(jī)系統(tǒng)中,存儲(chǔ)器的容量對(duì)軟件設(shè)計(jì)和編碼的制約很大。因此要選擇可生成較短目標(biāo)代碼且存儲(chǔ)壓縮性能優(yōu)良的編譯程序,有時(shí)需采用匯編程序。提高存儲(chǔ)器效率的關(guān)鍵是程序的簡(jiǎn)單性。第二十二頁(yè),共二十四頁(yè),編輯于2023年,星期三23(3)
輸入輸出的效率輸入/輸出可分為兩種類型:面向人(操作員)的輸入/輸出面向設(shè)備的輸入/輸出如果操作員能夠十分方便、簡(jiǎn)單地錄入輸入數(shù)據(jù),或者能夠十分直觀、一目了然地了解輸出信息,則可以說(shuō)面向人的輸入/輸出是高效的。第二十三頁(yè),共二十四頁(yè),編輯于2023年,星期三24關(guān)于提
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 肝靶向納米遞藥:慢性肝病治療新突破
- 衛(wèi)生月通報(bào)獎(jiǎng)勵(lì)制度
- 體檢中心護(hù)理信息化建設(shè)
- 肝硬化HRS醫(yī)療資源分配與分級(jí)診療方案
- 肌營(yíng)養(yǎng)不良癥干細(xì)胞治療的個(gè)體化方案設(shè)計(jì)
- 聯(lián)合免疫治療納米載體在胃癌中的遞送策略
- 2026年人工智能技術(shù)與應(yīng)用考試題庫(kù)及答案詳解
- 運(yùn)城2025年山西運(yùn)城農(nóng)業(yè)職業(yè)技術(shù)學(xué)院招聘15人筆試歷年參考題庫(kù)附帶答案詳解
- 舟山2025年浙江舟山岱山醫(yī)療健康集團(tuán)緊缺專業(yè)人才招聘22人(一)筆試歷年參考題庫(kù)附帶答案詳解
- 滁州2025年安徽滁州全椒縣經(jīng)濟(jì)開發(fā)區(qū)綜合服務(wù)中心招聘工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 2025北京西城區(qū)初一(下)期末英語(yǔ)試題及答案
- 2026.01.01施行的《招標(biāo)人主體責(zé)任履行指引》
- DB11∕T 689-2025 既有建筑抗震加固技術(shù)規(guī)程
- 2025年湖南公務(wù)員《行政職業(yè)能力測(cè)驗(yàn)》試題及答案
- 提前招生面試制勝技巧
- 2024中國(guó)類風(fēng)濕關(guān)節(jié)炎診療指南課件
- 2026年中國(guó)家居行業(yè)發(fā)展展望及投資策略報(bào)告
- 陜西省西安鐵一中2026屆高一物理第一學(xué)期期末教學(xué)質(zhì)量檢測(cè)試題含解析
- DB3207∕T 1046-2023 香菇菌棒生產(chǎn)技術(shù)規(guī)程
- 2025-2030腦機(jī)接口神經(jīng)信號(hào)解碼芯片功耗降低技術(shù)路線圖報(bào)告
- 空調(diào)安裝應(yīng)急預(yù)案
評(píng)論
0/150
提交評(píng)論