




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 第1章 大型程序的開發(fā)方法 主要內(nèi)容軟件工程開發(fā)方法的介紹“掃雷”案例的講解開發(fā)方法的實(shí)踐要求 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹生命周期方法學(xué):從時(shí)間角度對軟件開發(fā)和維護(hù)的復(fù)雜問題進(jìn)行分解,把軟件生命的漫長周期依次劃分為若干個(gè)階段,每個(gè)階段有相對獨(dú)立的任務(wù),然后逐步完成每個(gè)階段的任務(wù)。前一個(gè)階段任務(wù)的完成是開始進(jìn)行后一個(gè)階段工作的前提和基礎(chǔ),而后一階段任務(wù)的完成通常是使前一階段提出的解法更進(jìn)一步具體化,加進(jìn)了更多的實(shí)現(xiàn)細(xì)節(jié)。 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹:生命周期方法學(xué)軟件生命周期每個(gè)階段及其解決的關(guān)鍵問題 第1章 大型程序的開發(fā)方法 瀑布模型 軟件工
2、程開發(fā)方法的介紹:生命周期方法學(xué) 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹結(jié)構(gòu)化程序設(shè)計(jì)方法:是一種設(shè)計(jì)程序的技術(shù),采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的順序、選擇和循環(huán)三種基本控制結(jié)構(gòu)。它提出的原則可歸納為32字:“自頂向下,逐步細(xì)化;清晰第一,效率第二;書寫規(guī)范,縮進(jìn)格式;基本結(jié)構(gòu),組合而成?!?第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹:結(jié)構(gòu)化程序設(shè)計(jì)方法某學(xué)院為準(zhǔn)備參加網(wǎng)絡(luò)工程師認(rèn)證的人員開辦了相應(yīng)的培訓(xùn)課程。當(dāng)首批培訓(xùn)人員參加了認(rèn)證考試后,該學(xué)院自然想知道這些學(xué)生考得如何,以便調(diào)整教學(xué)方案和收費(fèi)標(biāo)準(zhǔn)?,F(xiàn)在需要編寫一個(gè)統(tǒng)計(jì)考試結(jié)果的程序,能夠顯示出通過和沒有通
3、過的人數(shù),并且如果通過人數(shù)不低于總?cè)藬?shù)的70%,顯示提高學(xué)費(fèi)的建議。已知參加考試的人員有500名,并且已經(jīng)在通過者的名字旁邊標(biāo)注了1,在未通過者的名字旁標(biāo)注了2。 應(yīng)用實(shí)例 問題描述 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹:結(jié)構(gòu)化程序設(shè)計(jì)方法程序必須要處理500個(gè)應(yīng)試者的考試結(jié)果,所以要使用循環(huán);每個(gè)考試結(jié)果都是一個(gè)數(shù),即1或2。程序每次讀取一個(gè)結(jié)果后,必須確定該數(shù)是1還是2;使用兩個(gè)計(jì)數(shù)器。一個(gè)用于計(jì)算通過考試的人數(shù),另一個(gè)用于計(jì)算沒有通過的人數(shù);程序處理完所有結(jié)果后,必須判斷是否有70%以上的人員通過了認(rèn)證考試。 應(yīng)用實(shí)例 問題分析 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法
4、的介紹:結(jié)構(gòu)化程序設(shè)計(jì)方法分析認(rèn)證考試的結(jié)果并決定培訓(xùn)費(fèi)是否提高 應(yīng)用實(shí)例問題的頂層表示 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹:結(jié)構(gòu)化程序設(shè)計(jì)方法初始化變量;輸入500個(gè)考試結(jié)果,統(tǒng)計(jì)通過和未通過 的人數(shù);打印統(tǒng)計(jì)結(jié)果,并決定培訓(xùn)費(fèi)是否提高。 應(yīng)用實(shí)例 第一次求精結(jié)果 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹:結(jié)構(gòu)化程序設(shè)計(jì)方法 “初始化變量”將變量passes初始化為0將變量failures初始化為0將變量counter初始化為1 應(yīng)用實(shí)例第二次求精的結(jié)果 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹:結(jié)構(gòu)化程序設(shè)計(jì)方法 “輸入500個(gè)考試結(jié)果,統(tǒng)計(jì)通過和未通過
5、的人數(shù) ” While人員計(jì)數(shù)器counter小于等于500 輸入下一個(gè)考試結(jié)果至變量result If此結(jié)果是通過 變量passes加1 Else 變量failures加1 人員計(jì)數(shù)器counter加1 應(yīng)用實(shí)例第二次求精的結(jié)果 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹:結(jié)構(gòu)化程序設(shè)計(jì)方法 “打印統(tǒng)計(jì)結(jié)果,并決定培訓(xùn)費(fèi)是否提高” 打印通過認(rèn)證的人數(shù) 打印未通過認(rèn)證的人數(shù) IF變量 passes的值除500大于等于0.7 打印“提高培訓(xùn)費(fèi)” 應(yīng)用實(shí)例第二次求精的結(jié)果 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹:結(jié)構(gòu)化程序設(shè)計(jì)方法應(yīng)用實(shí)例 求精結(jié)果 源程序 第1章 大型程序的開
6、發(fā)方法 軟件工程開發(fā)方法的介紹三種描述設(shè)計(jì)的圖形工具: 層 次 圖用來描述軟件層次結(jié)構(gòu) 程序流程圖是歷史最悠久、使用最廣泛 的描述軟件設(shè)計(jì)的方法 盒 圖是一種很好的支持結(jié)構(gòu)化程序 設(shè)計(jì)思想的圖形工具 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹:描述設(shè)計(jì)的圖形工具應(yīng)用實(shí)例正文加工系統(tǒng)的層次圖 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹:描述設(shè)計(jì)的圖形工具應(yīng)用實(shí)例 程序流程圖 相應(yīng)的盒圖 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹編碼時(shí)注意的問題: 全局變量應(yīng)該“有限制地使用全局變量”。使用全局變量過多,會降低程序的清晰性;降低函數(shù)的通用性;濫用全局變量會造成程序的混亂函
7、數(shù)“工欲善其事,必先利其器”。我們在編寫大型程序時(shí),要善于利用已有的函數(shù),以減少重復(fù)編寫程序段的工作量 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹編碼時(shí)注意的問題:風(fēng)格全局變量使用具有說明性的名字,局部變量用短名字 表達(dá)式和語句采用一致的縮進(jìn)風(fēng)格、使用表達(dá)式的自然形式、分解復(fù)雜的表達(dá)式、當(dāng)心具有副作用的運(yùn)算符 神秘的數(shù)最好要命名,利用語言去計(jì)算對象的大小 除了定義符號常量外,最好避免使用宏 注釋時(shí)要注意不要大談明顯的東西,要給函數(shù)和全局?jǐn)?shù)據(jù)加注釋 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹測試和調(diào)試方法:測試是在認(rèn)為程序能工作的情況下,為發(fā)現(xiàn)其問題而進(jìn)行的一整套確定的系統(tǒng)化的實(shí)
8、驗(yàn) 白盒測試相當(dāng)于把程序看成裝在一個(gè)透明的白盒子里,也就是完全了解程序的結(jié)構(gòu)和處理方法。它根據(jù)程序內(nèi)部的邏輯來設(shè)計(jì)測試用例,檢查程序中的邏輯路徑是否都按預(yù)定的要求正確地工作。常用的技術(shù)包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋等。 第1章 大型程序的開發(fā)方法 軟件工程開發(fā)方法的介紹測試和調(diào)試方法:測試是在認(rèn)為程序能工作的情況下,為發(fā)現(xiàn)其問題而進(jìn)行的一整套確定的系統(tǒng)化的實(shí)驗(yàn) 黑盒測試相當(dāng)于把程序看成一個(gè)黑盒子,不考慮內(nèi)部結(jié)構(gòu)和處理過程。它根據(jù)規(guī)定的功能來設(shè)計(jì)測試用例,檢查程序的功能是否符合要求。常用的技術(shù)包括等價(jià)類劃分和邊界值分析等。 第1章 大型程序的開發(fā)方法 軟
9、件工程開發(fā)方法的介紹測試和調(diào)試方法:調(diào)試(即排錯(cuò))是在已知程序有問題時(shí)要做的事情 尋找熟悉的模式 檢查最近的改動(dòng) 不要兩次犯同樣的錯(cuò)誤 現(xiàn)在排除,而不是以后 把你的代碼解釋給別人 分而治之,搜索局部化 第1章 大型程序的開發(fā)方法 主要內(nèi)容軟件工程開發(fā)方法的介紹“掃雷”案例的講解開發(fā)方法的實(shí)踐要求 第1章 大型程序的開發(fā)方法 “掃雷”案例:選題實(shí)現(xiàn)一個(gè)具有Windows系統(tǒng)掃雷游戲主要功能的掃雷程序。 Windows掃雷游戲 (a)開局 (b)勝利 (c)失敗 第1章 大型程序的開發(fā)方法 “掃雷”案例:分析Windows掃雷游戲的游戲規(guī)則 :在“游戲”菜單上,單擊“開局”,出現(xiàn)的游戲界面中包括地
10、雷計(jì)數(shù)器窗口、計(jì)時(shí)器窗口和雷區(qū)。開局后,單擊雷區(qū)中的任何一個(gè)方塊,便啟動(dòng)計(jì)時(shí)器。每標(biāo)記一個(gè)地雷,地雷計(jì)數(shù)器減1;用鼠標(biāo)左鍵單擊某個(gè)方塊,可挖開它。若所揭方塊下有雷,則踩雷,此時(shí)所有含地雷的塊都標(biāo)記,這局游戲失??;如果方塊上出現(xiàn)數(shù)字,它代表在它周圍的八個(gè)方塊中共有多少顆地雷;用鼠標(biāo)右鍵單擊某個(gè)方塊,則標(biāo)記此塊下埋著地雷(實(shí)際上可能是誤標(biāo)),顯示為。每標(biāo)記一個(gè)地雷,地雷計(jì)數(shù)器減1;用鼠標(biāo)右鍵擊打某個(gè)方塊兩次,則在某塊上面標(biāo)一個(gè)問號(?),意味著沒有把握判定它是否有雷。標(biāo)記為?的塊可在恰當(dāng)?shù)臅r(shí)候再擊打鼠標(biāo)右鍵兩次或單擊左鍵,將其標(biāo)記為地雷或挖開; 如果某個(gè)數(shù)字方塊周圍的地雷全都標(biāo)記完,可以同時(shí)單擊鼠
11、標(biāo)左右鍵,將其剩下的方塊挖開。如果挨著這個(gè)方塊的地雷沒有全部標(biāo)記完,則未挖開的方塊將閃爍。 第1章 大型程序的開發(fā)方法 “掃雷”案例:分析主要功能:規(guī)則1)隱含初始化新游戲的開局功能;規(guī)則2)隱含的挖雷功能;規(guī)則3)對應(yīng)的標(biāo)記地雷功能;規(guī)則4)對應(yīng)的標(biāo)記疑問功能;規(guī)則5)的自動(dòng)挖開功能。操作手段:鼠標(biāo) 第1章 大型程序的開發(fā)方法 “掃雷”案例:設(shè)計(jì)開局掃雷程序系統(tǒng)輸入挖雷標(biāo)記雷題標(biāo)記疑問自動(dòng)挖開輸出掃雷系統(tǒng)的頂層層次圖 第1章 大型程序的開發(fā)方法 “掃雷”案例:設(shè)計(jì)自頂向下逐步求精:繼續(xù)分析已有功能,精化出所有子功能,確定 模塊間接口;描述精化后每個(gè)模塊的處理過程;確定主要的數(shù)據(jù)及其數(shù)據(jù)結(jié)構(gòu);
12、確定輸入輸出數(shù)據(jù)的內(nèi)外部形式;界面的設(shè)計(jì) 第1章 大型程序的開發(fā)方法 “掃雷”案例:設(shè)計(jì)界面 第1章 大型程序的開發(fā)方法 “掃雷”案例:設(shè)計(jì)操作方式采用鍵盤:上,下,左,右鍵用來移動(dòng)光標(biāo)的位置;回車或者空格鍵用來挖開光標(biāo)當(dāng)前指向的一個(gè)方塊;F, f 標(biāo)記當(dāng)前光標(biāo)指向的方塊有地雷;Q, q 在光標(biāo)指向方塊打一個(gè)問號,表示可能有地雷;A , a 自動(dòng)挖開光標(biāo)周圍的方塊;ESC 退出游戲 第1章 大型程序的開發(fā)方法 “掃雷”案例:設(shè)計(jì)主要數(shù)據(jù)雷區(qū)界面數(shù)據(jù)# define ROW 16 /* 表示整個(gè)雷區(qū)的行數(shù)*/# define COL 16 /* 表示整個(gè)雷區(qū)的列數(shù)*/# define START
13、X 50 /* 表示雷區(qū)在屏幕上的起始x坐標(biāo)*/# define STARTY 50 /* 表示雷區(qū)在屏幕上的起始y坐標(biāo)*/# define SIZEX 20 /* 表示一個(gè)方塊的長度*/# define SIZEY 20 /* 表示一個(gè)方塊的寬度*/ 第1章 大型程序的開發(fā)方法 “掃雷”案例:設(shè)計(jì)主要數(shù)據(jù)雷區(qū)內(nèi)部數(shù)據(jù) int totalMine; /* 整個(gè)雷區(qū)所含的地雷總數(shù)*/int tableROWCOL; /* 數(shù)組table的每個(gè)元素值記錄了雷區(qū) 對應(yīng)方塊是否有雷:1有雷,0無雷*/int numROWCOL; /* 數(shù)組num的每個(gè)元素值記錄了雷區(qū) 對應(yīng)方塊周圍有多少個(gè)地雷*/in
14、t flagROWCOL; /* 數(shù)組flag的每個(gè)元素值記錄了雷區(qū) 對應(yīng)方塊當(dāng)前的狀態(tài)*/ 第1章 大型程序的開發(fā)方法 “掃雷”案例:設(shè)計(jì)主要數(shù)據(jù)方塊(i,j)的狀態(tài)取值 #define UNFLAG 0 /* 表示該方塊還沒有被打開或者標(biāo)記*/#define FLAGED 1 /* 標(biāo)記該方塊有地雷*/#define QUESTION 20 /* 表示該方塊可能有地雷*/#define EXPLOD 30 /* 踩到地雷爆炸了*/#define OPEN 40 /* 一個(gè)沒有地雷的方塊被打開*/ 第1章 大型程序的開發(fā)方法 “掃雷”案例:設(shè)計(jì)主要數(shù)據(jù)光標(biāo)當(dāng)前位置數(shù)據(jù) int pi,pj;
15、/* 記錄光標(biāo)的當(dāng)前位置,初始時(shí)光標(biāo)在(0,0)*/int di8=-1,-1,0,1,1,1,0,-1;int dj8=0,1,1,1,0,-1,-1,-1;/*相對于當(dāng)前方塊而言,di8和dj8分別表示了它周圍八個(gè) 方塊的行和列坐標(biāo)偏移量。它們與當(dāng)前光標(biāo)坐標(biāo)配合使用, 可表示周圍的方塊,如(-1+pi,0+pj)表示當(dāng)前方塊的 正上方方塊的坐標(biāo)。*/ 第1章 大型程序的開發(fā)方法 “掃雷”案例:設(shè)計(jì)主要數(shù)據(jù)游戲狀態(tài)數(shù)據(jù) int gameRes; /*記錄游戲結(jié)束的結(jié)果狀態(tài),是輸出數(shù)據(jù)的內(nèi)部形式。 值為0表示按esc鍵退出游戲;-1 表示游戲失??; 1表示游戲勝利。*/ 第1章 大型程序的開發(fā)
16、方法 “掃雷”案例:設(shè)計(jì)主要數(shù)據(jù)功能鍵的鍵值 /*上,下,左,右鍵*/#define UP 0 x4800#define DOWN 0 x5000#define LEFT 0 x4b00#define RIGHT 0 x4d00/*回車、空格鍵*/#define ENTER 0 x1c0d#define SPACE 0 x3920/*F, f */#define UPPERF 0 x2146#define LOWERF 0 x2166/*Q, q*/#define UPPERQ 0 x1051#define LOWERQ 0 x1071/*A , a*/#define UPPERA 0 x1e
17、41#define LOWERA 0 x1e61/*ESC*/#define ESC 0 x011b 第1章 大型程序的開發(fā)方法 “掃雷”案例:設(shè)計(jì)功能求精第1步:寫出主程序的基本框架,確定各 個(gè)內(nèi)部模塊的函數(shù)名和參數(shù);主控模塊流程圖形初始化初始化新游戲讀入操作信息開始重新游戲?關(guān)閉游戲,結(jié)束是ESC?對其他鍵值進(jìn)行判斷處理本次游戲結(jié)束束?FTTTFF第2步:對“圖形初始化”進(jìn)一步求精;第3步:對“初始化新游戲”進(jìn)一步求精;第4步:對“讀入操作信息”進(jìn)一步求精;第5步:對“對其他key值進(jìn)行判斷處理” 進(jìn)一步求精;第6步:對判斷游戲是否勝利進(jìn)一步求精。 第1章 大型程序的開發(fā)方法 主要內(nèi)容軟件工程開發(fā)方法的介紹“掃雷”案例的講解開發(fā)方法的實(shí)踐要求 第1章 大型程序的開發(fā)方法 實(shí)踐要求大型程序設(shè)計(jì)綜合實(shí)驗(yàn)不僅是對程序設(shè)計(jì)能力的綜合鍛煉,更是對團(tuán)隊(duì)合作、軟件開發(fā)與項(xiàng)目管理過程的訓(xùn)練。要求綜合實(shí)驗(yàn)以團(tuán)隊(duì)合作形式,根據(jù)選題的難度,每組2-3人。在確定題目后,確定小組長及每個(gè)人的分工,并制定項(xiàng)目開發(fā)進(jìn)度表;大型程序設(shè)計(jì)綜合實(shí)驗(yàn)按照軟件項(xiàng)目的開發(fā)過程進(jìn)行。分以下幾個(gè)階段進(jìn)行:開題、系統(tǒng)設(shè)計(jì)、系統(tǒng)編碼實(shí)現(xiàn)、系統(tǒng)測試、系統(tǒng)評價(jià)與驗(yàn)收。 第1
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 道路修建合同范本
- 員工家屬安全合同范本
- 浙江國企招聘2024衢州龍游經(jīng)濟(jì)開發(fā)區(qū)下屬國資公司招聘8人筆試參考題庫附帶答案詳解
- 重癥疾病護(hù)理常規(guī)
- 培訓(xùn)新護(hù)士課件
- 2025至2030年中國口杯原紙數(shù)據(jù)監(jiān)測研究報(bào)告
- 生產(chǎn)流程項(xiàng)目改善
- 幼兒感知集合的發(fā)展及教育CHAPTER566課件
- 2025至2030年中國冷藏冷凍冰箱數(shù)據(jù)監(jiān)測研究報(bào)告
- 浙江2025年02月杭州市拱墅區(qū)發(fā)展改革和經(jīng)濟(jì)化局招考1名編外聘用人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 部編版小學(xué)(2024版)小學(xué)道德與法治一年級下冊《有個(gè)新目標(biāo)》-第一課時(shí)教學(xué)課件
- 2024年湖南汽車工程職業(yè)學(xué)院單招職業(yè)技能測試題庫標(biāo)準(zhǔn)卷
- (正式版)HGT 6313-2024 化工園區(qū)智慧化評價(jià)導(dǎo)則
- (高職)國際金融(第四版)電子課件(全套)
- 《飲料工藝學(xué)》課件第一章-緒論
- 中外合作辦學(xué)的可行性報(bào)告
- 母嬰保健課程標(biāo)準(zhǔn)
- 《農(nóng)民專業(yè)合作社登記管理?xiàng)l例》條文解讀(一
- 一年級的小豌豆我喜歡的一本書(課堂PPT)
- 電廠機(jī)組深度調(diào)峰摸底試驗(yàn)方案
- 地球上的大氣知識結(jié)構(gòu)圖
評論
0/150
提交評論