




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程導論 - 信計13-1 韓慧珊第一章 軟件工程學概述1、軟件危機軟件危機:是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。軟件危機包含下述兩個方面的問題:1.如何開發(fā)軟件,以滿足對軟件日益增長的需求。 2.如何維護數量不斷膨脹的已有軟件。2、軟件工程及軟件工程的特性1.軟件工程關注于大型程序的構造。2.軟件工程的中心課題是控制復雜性。3.軟件經常變化。4.開發(fā)軟件的效率非常重要。5.和諧地合作是開發(fā)軟件的關鍵。6.軟件必須有效地支持它的用戶。7.在軟件工程領域中通常由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產品。 3、軟件工程的基本原理1.用分階段的生命周期計劃嚴格管
2、理。2.堅持進行階段評審。3.實行嚴格的產品控制4.采用現代程序設計技術。5.結構應能清楚的審查。6.開發(fā)小組的人員應該少而精。7.承認不斷改進軟件工程實踐的必要性。 4、軟件工程方法學 包含3個要素:方法、工具和過程。使用最廣泛的分別是傳統方法學和面向對象方法學。5、軟件生存周期3個時期:軟件定義、軟件開發(fā)和運行維護。軟件定義:問題定義、可行性研究和需求分析。開發(fā)時期:總體設計,詳細設計,編碼和單元測試,綜合測試。前兩個階段稱為系統設計,后 兩個稱為系統實現。維護時期的主要任務是使軟件持久的滿足用戶的需求。6、瀑布模型模型嚴格按照軟件生存周期各個階段來進行開發(fā),上一階段的輸出即是下一階段的輸
3、入,并強調每一階段的嚴格性。它規(guī)定了各階段的任務和應提交的成果及文檔,每一階段的任務完成后,都必須對其階段性產品(主要是文檔)進行評審,通過后才能開始下一階段的工作。因此,它是一種以文檔作為驅動的模型。 瀑布模型特點:1.階段間具有順序性和依賴性。 2.推遲實現的觀點。3.質量保證的觀點。(以下看一下) 快速原型:是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產品能完成功能的一個子集。 增量模型:它分批地逐步向用戶提交產品,整個軟件產品被分解成許多個增量構件,開發(fā)人員一個構件一個構件地向用戶提交產品。 螺旋模型:基本思想是使用原型及其他方法來盡量降低風險。理解這種模型的一
4、個簡單方法,是把它看作在每個階段之前都增加了風險分析過程的快速原型模型。(使用于內部開發(fā)的大規(guī)模軟件項目) 噴泉模型:是典型的面向對象的軟件過程模型之一。第二章 可行性研究1、可行性研究的任務 主要任務; 可行性研究的3個方面; 1:首先需要進一步分析和澄清問題定義。 2:在澄清了問題之后分析員應該導出系統的邏輯模型,然后從系統邏輯模型出發(fā),探索若干種可選擇的主要解法即系統實現方案。 一般說來,至少應該從下述3個方面研究每種解法的可行性:1)技術可行性 2)經濟可行性 3)操作可行性 3:分析員應該為每個可行的解法制定一個粗略的實現進度。2、 可行性研究的步驟1. 復查系統規(guī)模和目標。2.研究
5、目前正在使用的系統3.導出新系統的高層邏輯模型4.進一步定義問題 5.導出和評價供選擇的解法 6.推薦行動方針 7.草擬開發(fā)計劃 8.書寫文檔提交審查3、系統流程圖系統流程圖是概括地描繪物理系統的傳統工具。4、數據流圖是一種圖形化技術,它描繪信息流和數據從輸入移動到輸出的過程中所經受的變換。在數據流圖中沒有任何具體的物理部件,它只是描繪數據在軟件中流動和被處理的邏輯過程。數據流圖是系統邏輯功能的圖形表示,容易理解。5、數據字典數據字典:是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。 數據字典的作用:在軟件分析和設計的過程中給人提供關于數據的描述信息。6、成本效益分析 1
6、 .貨幣的時間價值設年利率i,現存p元,n年后得到的錢:N年后收入F元,這些錢現在價值:2 投資回收期:就是累積的經濟效益等于最初投資所需要的時間。3 純收入:就是在整個生命周期之內系統的累積經濟效益(折合成現在值)與投資之差。4 投資回收率: 第三章 需求分析1、需求分析的任務1 確定對系統的綜合要求 ,2 分析系統的數據要求,3 導出系統的邏輯模型,4 修正系統開發(fā)計劃2、與用戶溝通獲取需求的方法1 訪談,2 面向數據流自頂向下求精,3 簡易的應用規(guī)格說明技術,4 快速建立軟件原型3、實體-了解圖P 64 圖3,。24、狀態(tài)轉換圖定義:狀態(tài)轉換圖通過描繪系統的狀態(tài)及引起系統狀態(tài)轉換的事件,
7、來表示系統的行為。此外,狀態(tài)圖還指明了作為特定事件的結果系統將做哪些動作(例如處理數據)。4、層次方框圖(在需求分析階段使用)定義:層次方框圖用樹形結構的一系列多層次的矩形框秒回數據的層次結構5、Warnier圖(在需求分析階段使用)Warnier圖用樹形結構描繪信息,但是這種圖形工具比層次方框圖提供了更豐富的描繪手段,并且可以表明信息的邏輯組織。6、IPO圖(在需求分析階段使用)IPO圖是輸入,處理,輸出圖的簡稱,能夠方便的描繪輸入數據,對數據的處理和暑促數據之間的關系。7、驗證軟件需求從以下四個方面驗證:1,一致性 2,完整性 3,現實性 4,有效性第五章 總體設計(概要設計)1、總體設計
8、過程總體設計過程通常由兩個主要階段組成:系統設計階段,確定系統的具體實現方案;結構設計階段,確定軟件結構。 典型的總體設計過程包括下述9個步驟:1.設想供選擇的方案 2.選取合理的方案 3.推薦最佳方案 4.功能分解 5.設計軟件結構 6.設計數據庫 7.制定測試計劃 8.書寫文檔 9.審查和復審2、設計原理(模塊化、抽象、逐步求精、信息隱藏與局部化)1,模塊化:就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來夠成一個整體,可以完成指定的功能滿足用戶的需求。2,抽象 3,逐步求精 4,信息隱藏和局部化3、模塊獨立原理模塊獨立:模塊獨立的概念是模塊化,抽象,
9、信息隱藏和局部化概念的直接結果。每個模塊完成一個相對獨立的特定子功能,并且和其他模塊之間的關系很簡單。模塊的獨立程度可以由兩個定性標準度量,這兩個標準分別稱為內聚和耦合。耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度;內聚衡量一個模塊內部各個元素彼此結合的緊密程度。4、耦合和內聚耦合:在軟件設計過程中應該追求盡可能松散耦合的系統。 內聚:設計好的軟件標準:盡可能做到高內聚。5、啟發(fā)規(guī)則1)改進軟件結構提高模塊獨立性 ;2)模塊規(guī)劃應該適中;3)深度、寬度、扇出和扇入都應適當。一個設計的好的典型性系統的平均扇出通常是3或4,扇出的上限通常是59;4)模塊的作用域應該在控制域之內;5)力爭降低模
10、塊接口的復雜程度;6)設計單入口單出口的模塊;7)模塊功能應該可以預測 6、描繪軟件結構的圖形工具(層次圖、HIPO圖、結構圖)看例子7、面向數據流的設計方法 變換流: 定義:信息沿輸入通路進入系統同時由外部形式變換成內部形式,進入系統的信息通過變換中心,經加工處理以后再沿輸出通路變換成外部形式離開軟件系統。當數據流圖具有這些特征時,這種信息流就叫做變換流。 設計步驟 1)復查基本系統模型;2)復查并精化數據流圖;3)確定數據流圖具有變換特性還是事物特性;4)確定輸入流和輸出流的邊界,從此孤立出變換中心;5)完成“第一級分解”;6)完成“第二級分解”;7)使用設計度量和啟發(fā)式規(guī)則對第一次分割得
11、到的軟件結構進一步精化。 事務流:定義:數據沿輸入通路到達一個處理T,這個處理根據輸入數據的類型在若干個動作序列中選出一個來執(zhí)行,這類數據流稱為事務流,這種數據流是“以事務為中心的” 。圖5.9 P105 中的處理T稱為事務中心,它完成一下任務:1)接收輸入數據(輸入數據又稱為事務) 2)分析每個事務以確定它的類型 3)根據事務類型選取一條活動通路。第六章 詳細設計1、結構程序設計結構化程序設計是一種設計程序的技術,它采用自頂向下逐步求精的設計方法和單入口單出口的控制結構。結構化程序設計的特點:1) 整個程序模塊化。2) 每個模塊只有一個入口和一個出口。3) 每個模塊都應能單獨執(zhí)行,且無死循環(huán)
12、。4) 采用自頂向下。逐步求精的方法。2、人機界面設計(設計問題、設計過程、人機界面設計指南)設計問題:1)系統響應時間; 2)用戶幫助設施;3)出錯信息處理; 4)命令交互。 設計過程用戶界面設計是一個迭代過程,直至與用戶模型和系統假想一致為止。人機界面指南1)一般交互指南:2)信息顯示指南;3)數據輸入指南3、詳細設計工具(過程設計工具)(繪圖要求)Ø 程序流程圖Ø 盒圖(N-S圖)Ø PAD圖Ø 判定表一張判定表通常由四部分組成,左上部列出所有的條件,左下部為所有可能做的動作,右上部分表示各種條件組合的一個矩陣,右下部分是和每種條件組合相對應的動作
13、,判定表的右半部的每一列實質上是一條規(guī)則,規(guī)定了與特定的條件組合相對應的動作。Ø 判定樹Ø PDL定義:PDL是一種偽碼,它是用正文形式表示數據和處理過程的設計工具。4、面向數據結構的設計方法Jackson圖1)順序結構 ;2)選擇結構;3)重復結構Jackson方法5、程序復雜度的度量Ø McCabe方法1) 流圖;2)計算環(huán)形復雜度的方法:1、控制流圖中區(qū)域的數量對應于環(huán)形復雜度。2、給定控制流圖G的環(huán)形復雜度V(G),定義為 V(G) = E-N+2 其中,E是控制流圖中邊的數量,N是控制流圖中的節(jié)點數量。3、給定控制流圖G的環(huán)形復雜度V(G),也可定義為V
14、(G) = P+1 其中,P是控制流圖G中判定節(jié)點的數量。Ø Halstead方法第七章 實現1、編碼中需要注意的地方A.選擇程序設計語言B.編碼風格2、軟件測試基本知識軟件測試目標1)系統測試軟件測試是為了發(fā)現程序中的錯誤而執(zhí)行程序的過程2)好的測試方案是極可能發(fā)現迄今為止尚未發(fā)現的錯誤的測試方案3)成功的測試時發(fā)現了至今為止尚未發(fā)現的錯誤的測試。軟件測試準則P150了解就行軟件測試方法測試任何產品都有兩種方法: (1) 黑盒測試(又稱為功能測試)如果已經知道了產品應該具有的功能,可以通過測試來檢驗是否每個功能都能正常使用;(2) 白盒測試(又稱為結構測試)如果知道產品的內部工作過
15、程,可以通過測試來檢驗產品內部動作是否按照規(guī)格說明書的規(guī)定正常進行。軟件測試步驟.1模塊測試 2.子系統測試 3.系統測試 4.驗收測試 5.平行運行:。3、測試階段的信息流(1)軟件配置:包括需求說明書、設計說明書和源程序清單等;(2)測試配置:包括測試計劃和測試方案。4、單元測試單元測試集中檢測軟件設計的最小單元模塊。通常,單元測試和編碼屬于軟件過程的同一個階段。在編寫出源程序代碼并通過了編譯程序的語法檢查之后,就可以用詳細設計描述作指南,對重要的執(zhí)行通路進行測試,以便發(fā)現模塊內部的錯誤測試重點(1)模塊接口:對通過模塊接口的數據流進行測試(2)局部數據結構:局部數據結構是常見的錯誤來源。
16、 (3)重要的執(zhí)行通路:由于通常不可能進行窮盡測試,因此,在單元測試期間選擇最有代表性、最可能發(fā)現錯誤的執(zhí)行通路進行測試就是十分關鍵的。(4)出錯處理通路(5)邊界條件:單元測試中最后的也可能是最重要的任務。5、 計算機測試模塊并不是一個獨立的程序,因此必須為每個單元測試開發(fā)驅動軟件和(或)存根軟件。通常驅動軟件也就是一個“主程序”,它接收測試數據,把這些數據傳送給被測試的模塊,并且印出有關的結果。存根程序代替被測試的模塊所調用的模塊,因此存根程序也可以稱作“虛擬子程序”。它使用被它代替的模塊的接口,可能做最少量的數據操作,印出對入口的檢驗或操作結果,并且把控制歸還給調用它的模塊。6、集成測試
17、: 1)自頂向下集成;2)自底向上集成混合策略:1)改進的自頂向下集成;2)混合法7、 確認測試: 8、白盒測試邏輯覆蓋(8種邏輯覆蓋)1)語句覆蓋;2)判定覆蓋;3)條件覆蓋;4)判定/條件覆蓋;5)條件組合覆蓋;6)點覆蓋;7)邊覆蓋;8)路徑覆蓋控制結構測試(基本路徑測試)1) 根據過程設計結果畫出相應的流圖2) 計算流圖的環(huán)形復雜度3) 確定線性獨立路徑的基本集合4) 設計可強制執(zhí)行基本集合中每條路徑的測試用例9、黑盒測試等價劃分 邊界值分析 錯誤推測 組合數據10、調試 調試也稱作糾錯,作為作為成功測試的后果出現,也就是說調試時在測試發(fā)現錯誤之后排除錯誤的過程。第八章 維護1、軟件維
18、護的定義軟件維護就是在軟件已經交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程。2、軟件維護分類改正性維護為改正軟件系統中潛藏的錯誤而進行的活動。適應性維護為適應軟件運行環(huán)境的變化而修改軟件的活動完善性維護根據用戶在軟件使用過程中提出的建設性意見而進行的維護活動。預防性維護為了進一步改善軟件系統的可維護性和可靠性,并為以后的改進奠定基礎。第九章 面向對象1、面向對象的幾個概念A.對象 對象是現實世界中個體或事物的抽象表示,是其屬性和相關操作的封裝。屬性表示對象的性質,屬性值規(guī)定了對象所有可能的狀態(tài)。對象的操作是指該對象可以展現的外部服務。對象的特點(1) 以數據為中心。(2) 對象是主動的。(3) 實現了數據封裝。(4) 本質上具有并行性。(5) 模塊獨立性好。B.類。類表示某些對象
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身私教課程合同及退款協議
- Unit 1 My classroom (教學設計)-2024-2025學年人教PEP版英語四年級上冊
- 10《傳統美德 源遠流長》 教學設計-2024-2025學年道德與法治五年級上冊統編版
- 2025屆高考生物備考教學設計:第六章 遺傳的分子基礎 課時2 DNA分子的結構、復制及基因的本質
- Module 2 Unit 2 There are lots of beautiful lakes in China(教學設計)-2024-2025學年外研版(三起)英語六年級上冊
- Module 10 Unit 2 教學設計 2024-2025學年外研版九年級英語上冊
- 白坪鄉(xiāng)農貿市場施工合同
- 框架建筑合同范本
- 11 白樺 第一課時 教學設計 -2023-2024學年語文四年級下冊統編版
- 土地承包合同范本個人
- 研發(fā)費用管理制度內容
- 壓力容器設計委托書
- 《眉毛的基本技法》課件
- 人教版PEP小學五年級英語下冊全冊教案(含計劃)
- 2025年幼兒園膳食工作計劃
- 藥劑學第9版課件:第一章-緒論
- 2023年中考英語話題復習課件 健康與飲食
- 2023年機動車檢測站質量手冊和程序文件(根據補充要求編制)
- 電化學儲能系統測試操作方法
- 人教版英語八年級上冊《Unit 8 How do you make a banana milk shake》大單元整體教學設計2022課標
- 路遙介紹課件
評論
0/150
提交評論