軟件工程思想概述_第1頁
軟件工程思想概述_第2頁
軟件工程思想概述_第3頁
軟件工程思想概述_第4頁
軟件工程思想概述_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件工程思想概述HE系統(tǒng)二處一部2011.3.261Contents概述可行性研究需求分析總體設(shè)計實(shí)現(xiàn)維護(hù)面向?qū)ο蠓椒▽W(xué)2概 述軟件危機(jī)軟件危機(jī)是指在計算機(jī)軟件的開發(fā)和維護(hù)過程 中所遇到的一系列嚴(yán)重問題。圖1 引入同一變動付出的代價隨時間變化的趨勢3概 述軟件工程軟件工程方法學(xué)傳統(tǒng)方法學(xué)面向?qū)ο蠓椒▽W(xué)軟件生命周期問題定義 問題是什么?可行性研究問題有解嗎?需求分析必須做什么?總體設(shè)計怎樣實(shí)現(xiàn)?詳細(xì)設(shè)計具體實(shí)現(xiàn)方案?編碼和單元測試真正實(shí)現(xiàn)綜合測試驗(yàn)收軟件維護(hù)可持續(xù)發(fā)展4概 述基本軟件過程瀑布模型特點(diǎn)階段間具有順序性和依賴性推遲實(shí)現(xiàn)的觀點(diǎn)質(zhì)量保證的觀點(diǎn)優(yōu)點(diǎn)可強(qiáng)迫開發(fā)人員采用規(guī)范化方法質(zhì)量保證小組對

2、文檔的審核保證了軟件的質(zhì)量缺點(diǎn)由文檔驅(qū)動,不直觀圖2 傳統(tǒng)瀑布模型5圖3 實(shí)際瀑布模型概 述6快速原型模型圖4 快速原型模型概 述7增量模型圖5 增量模型概 述8圖6 風(fēng)險更大的增量模型概 述9螺旋模型圖7 螺旋模型概 述10噴泉模型圖8 噴泉模型概 述11Rational統(tǒng)一過程Rational統(tǒng)一過程(Rational Unified Process, RUP)是由Rational軟件公司推出的一種完整而且完美的軟件過程。最佳實(shí)踐迭代式開發(fā)管理需求使用基于構(gòu)件的體系結(jié)構(gòu)可視化建模驗(yàn)證軟件質(zhì)量控制軟件變更概 述12概 述RUP軟件開發(fā)生命周期圖9 RUP軟件開發(fā)生命周期13敏捷過程與極限編程

3、敏捷過程敏捷過程開發(fā)宣言:個體和交互勝過過程和工具可以工作的軟件勝過面面俱到的文檔客戶合作勝過合同談判響應(yīng)變化勝過遵循計劃根據(jù)上述價值觀提出的軟件過程統(tǒng)稱為敏捷過程,其中最重要的是極限編程極限編程(eXtrem Programing, XP)“極限”二字的含義是指把好的開發(fā)實(shí)踐運(yùn)用到極致。概 述14圖10 XP項(xiàng)目的整體開發(fā)過程圖11 XP項(xiàng)目的迭代開發(fā)過程概 述15微軟過程圖12 微軟軟件生命周期階段劃分和主要里程碑圖13 微軟過程的生命周期模型概 述16可行性研究可行性研究的任務(wù)可行性研究目的是確定問題是否有解,并對以后的行動方針提出建議??尚行匝芯康倪^程復(fù)查系統(tǒng)規(guī)模和目標(biāo)研究目前正在使用

4、的系統(tǒng)導(dǎo)出新系統(tǒng)的高層邏輯模型進(jìn)一步定義問題導(dǎo)出和評價供選擇的解法推薦行動方針草擬開發(fā)計劃書寫文檔提交審查17可行性研究系統(tǒng)流程圖系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動的情況,而不是對數(shù)據(jù)進(jìn)行加工控制的過程圖14 基本符號18可行性研究數(shù)據(jù)流圖(DFD)描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換,其中沒有任何具體的物理部件,只是描繪數(shù)據(jù)在軟件中流動和被處理的邏輯過程數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,其作用不言而喻,主要是供人查閱對不了解條目的解釋。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,同時構(gòu)成系統(tǒng)的規(guī)格說明19可行性研究圖15 數(shù)據(jù)流圖的符號20需求分析需求分析的任務(wù)需

5、求分析一般遵守下述準(zhǔn)則:建立數(shù)據(jù)模型建立功能模型建立行為模型用層次的方式展示細(xì)節(jié)確定對系統(tǒng)的綜合要求功能需求性能需求可靠性和可用性需求出錯處理需求接口需求21需求分析約束逆向需求將來可能提出的要求分析系統(tǒng)的數(shù)據(jù)要求導(dǎo)出系統(tǒng)的邏輯模型通常用數(shù)據(jù)流圖、實(shí)體-聯(lián)系圖(ER圖)、狀態(tài)轉(zhuǎn)換圖、數(shù)據(jù)字典和主要的處理算法描述這個邏輯模型。修正系統(tǒng)開發(fā)計劃22實(shí)體-聯(lián)系圖(entity-relationship)數(shù)據(jù)對象數(shù)據(jù)對象是對軟件必須理解的復(fù)合信息的抽象屬性屬性定義了數(shù)據(jù)對象 的性質(zhì)聯(lián)系數(shù)據(jù)對象彼此之間的相互連接的方式需求分析圖16 某校教學(xué)管理ER圖23狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖 = 狀態(tài) + 事件 + 符

6、號需求分析圖17 電話系統(tǒng)狀態(tài)圖24層次方框圖需求分析圖18 層次方框圖的一個例子25Warnier圖Warnier圖可以表示信息的邏輯組織,括號中的數(shù)字代表該信息的重復(fù)次數(shù)。需求分析圖19 Warnier圖的一個例子26IPO圖需求分析圖20 IPO圖的一個例子27總體設(shè)計設(shè)計過程設(shè)想供選擇的方案選取合理的方案推薦最佳方案功能分解設(shè)計軟件結(jié)構(gòu)設(shè)計數(shù)據(jù)庫制定測試計劃書寫文檔審查和復(fù)審28設(shè)計原理模塊化模塊是由邊界元素限定的相鄰程序元素的序列。過程、函數(shù)和宏等都可稱為模塊。面向?qū)ο笾械膶ο蠹皩ο髢?nèi)的方法也是模塊。模塊化就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問的模塊,每個模塊完成一個子功能,集成起來即

7、可構(gòu)成一個整體。總體設(shè)計圖21 模塊化和軟件成本29抽象抽象就是抽出事務(wù)的本質(zhì)特性逐步求精為了能集中精力解決主要問題而盡量推遲對問題細(xì)節(jié)的考慮Miller法則:一個人在任何時候都只能把注意力集中在(72)個知識塊上信息隱藏和局部化應(yīng)該這樣設(shè)計和確定模塊,使得一個模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的局部化是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近總體設(shè)計30模塊獨(dú)立內(nèi)聚與耦合內(nèi)聚(Cohesion)是一個模塊內(nèi)部各成分之間相關(guān)聯(lián)程度的度量。耦合(Coupling)是模塊之間依賴程度的度量。內(nèi)聚和耦合是密切相關(guān)的,與其它模塊存在強(qiáng)耦合的模塊通常意味著弱內(nèi)聚,

8、而強(qiáng)內(nèi)聚的模塊通常意味著與其它模塊之間存在弱耦合。模塊設(shè)計追求強(qiáng)內(nèi)聚,弱耦合。內(nèi)聚強(qiáng)度內(nèi)聚按強(qiáng)度從低到高有以下幾種類型:1)偶然內(nèi)聚如果一個模塊的各成分之間毫無關(guān)系,則稱為偶然內(nèi)聚。2)邏輯內(nèi)聚幾個邏輯上相關(guān)的功能被放在同一模塊中,則稱為邏輯內(nèi)聚。3)時間內(nèi)聚如果一個模塊完成的功能必須在同一時間內(nèi)執(zhí)行(如系統(tǒng)初始化),但這些功能只是因?yàn)闀r間因素關(guān)聯(lián)在一起,則稱為時間內(nèi)聚??傮w設(shè)計314)過程內(nèi)聚如果一個模塊內(nèi)部的處理成分是相關(guān)的,而且這些處理必須以特定的次序執(zhí)行,則稱為過程內(nèi)聚。5)通信內(nèi)聚如果一個模塊的所有成分都操作同一數(shù)據(jù)集或生成同一數(shù)據(jù)集,則稱為通信內(nèi)聚。6)順序內(nèi)聚如果一個模塊的各個成

9、分和同一個功能密切相關(guān),而且一個成分的輸出作為另一個成分的輸入,則稱為順序內(nèi)聚。7)功能內(nèi)聚。模塊的所有成分對于完成單一的功能都是必須的,則稱為功能內(nèi)聚。耦合強(qiáng)度耦合的強(qiáng)度依賴于以下幾個因素:(1)一個模塊對另一個模塊的調(diào)用;(2)一個模塊向另一個模塊傳遞的數(shù)據(jù)量;(3)一個模塊施加到另一個模塊的控制的多少;(4)模塊之間接口的復(fù)雜程度??傮w設(shè)計32耦合按從強(qiáng)到弱的順序可分為以下幾種類型:1)內(nèi)容耦合當(dāng)一個模塊直接修改或操作另一個模塊的數(shù)據(jù),或者直接轉(zhuǎn)入另一個模塊時,就發(fā)生了內(nèi)容耦合。此時,被修改的模塊完全依賴于修改它的模塊。2)公共耦合兩個以上的模塊共同引用一個全局?jǐn)?shù)據(jù)項(xiàng)就稱為公共耦合。3)

10、控制耦合一個模塊在界面上傳遞一個信號(如開關(guān)值、標(biāo)志量等)控制另一個模塊,接收信號的模塊的動作根據(jù)信號值進(jìn)行調(diào)整,稱為控制耦合。4)標(biāo)記耦合。模塊間通過參數(shù)傳遞復(fù)雜的內(nèi)部數(shù)據(jù)結(jié)構(gòu),稱為標(biāo)記耦合。此數(shù)據(jù)結(jié)構(gòu)的變化將使相關(guān)的模塊發(fā)生變化。5)數(shù)據(jù)耦合模塊間通過參數(shù)傳遞基本類型的數(shù)據(jù),稱為數(shù)據(jù)耦合。6)非直接耦合模塊間沒有信息傳遞時,屬于非直接耦合。如果模塊間必須存在耦合,就盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,堅(jiān)決避免使用內(nèi)容耦合??傮w設(shè)計33啟發(fā)規(guī)則改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性模塊規(guī)模應(yīng)該適中深度、寬度、扇出和扇入都應(yīng)適當(dāng)模塊的作用域應(yīng)該在控制域之內(nèi)力爭降低模塊接口的復(fù)雜程度設(shè)計單入

11、口單出口的模塊模塊功能應(yīng)該可以預(yù)測總體設(shè)計34面向數(shù)據(jù)流的設(shè)計方法通俗地講,任何軟件都是對輸入數(shù)據(jù)進(jìn)行處理,所以面向數(shù)據(jù)流的設(shè)計方法理論上可以設(shè)計任何軟件的結(jié)構(gòu)。通常所說的結(jié)構(gòu)化設(shè)計方法(SD方法),就是基于數(shù)據(jù)流的設(shè)計方法。變換流信息通常以“外部世界”的形式進(jìn)入軟件系統(tǒng),經(jīng)過處理以后再以“外部世界”的形式離開系統(tǒng)總體設(shè)計35事務(wù)流這種數(shù)據(jù)流是以“事務(wù)”為中心的??傮w設(shè)計圖22 變換流圖23 事務(wù)流36編碼選擇編程語言選擇良好的編程規(guī)范編寫高效代碼測試測試類型集成測試自頂向下集成自底向上集成Alpha和Beta測試白盒測試邏輯覆蓋控制結(jié)構(gòu)測試黑盒測試等價劃分邊界值分析錯誤推測單元測試重點(diǎn)模塊接口局部數(shù)據(jù)結(jié)構(gòu)重要的執(zhí)行通路出錯處理通路邊界條件實(shí) 現(xiàn)37維 護(hù)決定軟件可維護(hù)性的因素可理解性 可測試性可修改性 可移植性可重用性軟件再工程圖24 軟件再工程過程

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論