軟件工程概要_第1頁
軟件工程概要_第2頁
軟件工程概要_第3頁
軟件工程概要_第4頁
軟件工程概要_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程概要數(shù)據(jù)庫原理課程補(bǔ)充知識1背景軟件危機(jī)軟件開發(fā)周期大大超過規(guī)定日期軟件開發(fā)成本嚴(yán)重超標(biāo)軟件質(zhì)量難于保證軟件的發(fā)展大體上經(jīng)歷了三個階段:程序設(shè)計階段、軟件階段、軟件工程階段。2程序設(shè)計時代名稱程序生產(chǎn)方式個人質(zhì)量取決于個人水平設(shè)計對象以硬件為中心開發(fā)工具無維護(hù)無設(shè)計方法無以技巧為主軟件時代軟件項目組取決于小集團(tuán)水平硬件/軟件為中心無系統(tǒng)工具,工具為個人所有由開發(fā)者進(jìn)行維護(hù),在設(shè)計中不重視維護(hù)設(shè)計問題自頂向下有質(zhì)量保證問題和持續(xù)性問題軟件工程時代軟件產(chǎn)品軟件組織軟件生產(chǎn)管理以軟件為中心軟件生成器設(shè)計與制作過程中均考慮維護(hù)問題,維護(hù)成本占很大比重結(jié)構(gòu)化設(shè)計、原型設(shè)計從程序設(shè)計到軟件工程時代

2、3軟件工程的定義 IEEE【IEE93】定義:“將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運行和維護(hù)的過程,即將工程化應(yīng)用于軟件中?!避浖こ淌菓?yīng)用計算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理開發(fā)軟件的工程。它借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量,降低成本為目的。4兩種軟件工程方法傳統(tǒng)軟件工程軟件分析 總體設(shè)計 詳細(xì)設(shè)計 面向過程的編碼 測試 面向?qū)ο筌浖こ誊浖治雠c對象抽取 對象詳細(xì)設(shè)計 面向?qū)ο蟮木幋a 測試 5結(jié)構(gòu)化分析模型的組成結(jié)構(gòu)數(shù)據(jù)流圖 (DFD)E-R圖狀態(tài)變遷圖(STD圖)加工說明控制說明數(shù)據(jù)對象說 明數(shù)據(jù)字典(DD)6面向?qū)ο蠓治瞿P偷慕M成結(jié)構(gòu)對象-關(guān)系模型類/對象 模型對象-行

3、為模型使用實例(Use Case)操作、屬性、協(xié)作者對象模型動態(tài)模型功能模型7傳統(tǒng)軟件工程中的瀑布模型可行性研究與計劃需求分析總體|詳細(xì)設(shè)計編碼運行維護(hù)測試定義階段開發(fā)階段維護(hù)階段81. 問題定義關(guān)鍵問題:“要解決的問題是什么?”主要結(jié)果:提出關(guān)于問題的性質(zhì)、工程目標(biāo)和規(guī)模的書面報告。內(nèi)容及步驟(一)系統(tǒng)任務(wù)的提出(二)初步調(diào)查(三)系統(tǒng)目標(biāo)的確定92 可行性研究可行性、可行性研究的含義可行性的含義包括可能性、必要性??尚行苑治龅膶ο笫窍到y(tǒng)目標(biāo)。評價總體方案(系統(tǒng)目標(biāo))的可能性、必要性??尚行匝芯磕康模河米钚〉拇鷥r在盡可能短的時間內(nèi)確定問題是否能夠解決,是否有必要去解決。10可行性研究的內(nèi)容1

4、.技術(shù)上的可行性2.經(jīng)濟(jì)上的可行性3.操作可行性4.時間可行性5.組織與管理上可行性6.社會、政策允許的可行性113. 需求分析的任務(wù)準(zhǔn)確地定義未來系統(tǒng)的目標(biāo),確定為了滿足用戶的需求系統(tǒng)必須做什么。用 規(guī)范的形式準(zhǔn)確地表達(dá)用戶的需求?;救蝿?wù):準(zhǔn)確地回答“系統(tǒng)必須做什么?”12需求分析的具體任務(wù)1.確定對系統(tǒng)的綜合需求:(1)系統(tǒng)功能要求(2)系統(tǒng)性能要求(3)運行要求(4)將來可能提出的要求2.分析系統(tǒng)的數(shù)據(jù)要求:采用建立“概念模型”的方法,并輔助圖形工具,如:層次方框圖、Warnier圖等。3.導(dǎo)出系統(tǒng)的邏輯模型:數(shù)據(jù)流程圖、數(shù)據(jù)字典、主要算法4.修正系統(tǒng)開發(fā)計劃5.開發(fā)原型系統(tǒng)134.

5、總體設(shè)計的過程設(shè)想供選擇的方案 選取合理的方案 推薦最佳方案 功能分解 設(shè)計軟件結(jié)構(gòu) 數(shù)據(jù)庫設(shè)計 制定測試計劃 書寫文檔 審查和復(fù)審145. 詳細(xì)設(shè)計的基本任務(wù)回答的關(guān)鍵問題:“怎樣具體地實現(xiàn)這個系統(tǒng)”主要任務(wù)是設(shè)計出程序的“藍(lán)圖”,供程序員日后根據(jù)這個藍(lán)圖編寫出實際的程序代碼。注意:設(shè)計程序的藍(lán)圖,不是具體地編寫程序。設(shè)計程序主要采用結(jié)構(gòu)化的程序設(shè)計方法。15詳細(xì)設(shè)計主要任務(wù):編寫詳細(xì)設(shè)計說明書為此,設(shè)計人員應(yīng):(1)確定每個模塊的算法,用工具表達(dá)算法的過程,寫出模塊的詳細(xì)過程性描述。(2)確定每一模塊的數(shù)據(jù)結(jié)構(gòu)。(3)確定模塊接口細(xì)節(jié)。詳細(xì)設(shè)計是編碼的先導(dǎo)。16詳細(xì)設(shè)計具體任務(wù)確定模塊如何

6、實現(xiàn)編寫詳細(xì)設(shè)計說明書制定單元測試計劃詳細(xì)設(shè)計評審176. 編碼程序?qū)懽黠L(fēng)格程序設(shè)計方法論自頂向下的程序設(shè)計方法自底向上的程序設(shè)計方法程序設(shè)計自動化程序設(shè)計工具187. 測試軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件測試是根據(jù)軟件開發(fā)階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例(即輸入的數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些用例去運行程序,以發(fā)現(xiàn)程序錯誤的過程。19軟件測試的目的測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。20測試設(shè)計中需要考慮的22種測試類型黑盒測試白盒測試單元測試?yán)塾嬀C合測試集成測

7、試功能測試系統(tǒng)測試端到端測試健全測試衰竭測試接受測試負(fù)載測試強(qiáng)迫測試性能測試可用性測試安裝/卸載測試恢復(fù)測試兼容測試安全測試比較測試Alpha測試Beta測試218. 運行維護(hù)本質(zhì)上是修改和壓縮了的軟件定義和開發(fā)過程分析設(shè)計編碼測試驗收配置復(fù)審可靠性可移植性可用性可理解性可修改性可測試性可理解性可修改性可移植性效率可靠性效率完整性一致性可理解性22 幾種典型的開發(fā)方法:模塊化方法(modular method)結(jié)構(gòu)化方法面向數(shù)據(jù)結(jié)構(gòu)方法面向?qū)ο蠓椒ㄜ浖_發(fā)方法23結(jié)構(gòu)程序設(shè)計結(jié)構(gòu)程序設(shè)計是一種設(shè)計程序的技術(shù),它采用自頂向下逐步求精的設(shè)計方法和單入口單出口的控制結(jié)構(gòu)。24逐步求精的含義總體設(shè)計階

8、段逐步求精的含義把一個復(fù)雜問題的解法分解和細(xì)化成一個由許多模塊組成的層次結(jié)構(gòu)的軟件系統(tǒng)。詳細(xì)設(shè)計階段逐步求精的含義把一個模塊的功能逐步分解細(xì)化為一系列具體的處理步驟或某種高級語言的語句。25結(jié)構(gòu)程序設(shè)計優(yōu)越性自頂向下逐步求精的方法符合人類解決復(fù)雜問題的普遍規(guī)律,因此可以顯著提高軟件開發(fā)工程的成功率和生產(chǎn)率。用先全局后局部、先整體后細(xì)節(jié)、先抽象后具體的逐步求精過程開發(fā)出的程序有清晰的層次結(jié)構(gòu),因此容易閱讀和理解。不使用GO TO語句,僅使用單入口單出口的控制結(jié)構(gòu),使得程序的靜態(tài)結(jié)構(gòu)和它的動態(tài)執(zhí)行情況比較一致,易于閱讀和理解。26傳統(tǒng)方法學(xué)的缺點瀑布模型的缺點:僵化瀑布模型要求:生命周期各階段間遵

9、守嚴(yán)格的順序。實際情況是:軟件開發(fā)往往在反復(fù)實踐中完成。瀑布模型要求:預(yù)先定義并“凍結(jié)”軟件需求。實際情況是:某些系統(tǒng)的需求的一個逐漸明確的過程,且預(yù)先定義的需求到軟件完成時可能已經(jīng)過時。27結(jié)構(gòu)化技術(shù)的缺點(SA-SD-SP)本質(zhì)上是功能分解,以實現(xiàn)功能的過程為中心。而用戶的需求變化主要是針對功能的。這就使基于過程的設(shè)計不易被理解;且功能變化往往引起結(jié)構(gòu)變化較大,穩(wěn)定性不好。系統(tǒng)有明確的邊界定義,且系統(tǒng)結(jié)構(gòu)依賴于系統(tǒng)邊界的定義,這樣的系統(tǒng)不易擴(kuò)充和修改。數(shù)據(jù)與操作分開處理,可能造成軟構(gòu)件對具體應(yīng)用環(huán)境的依賴,可重用性(reusability)較差.28軟件工程的新途徑之一:快速原型法適用于用

10、戶驅(qū)動的系統(tǒng)(即需求模糊或隨時間變化的系統(tǒng))建造/修改 原型用戶測試運行原型 聽取用 戶意見29傳統(tǒng)方法和面向?qū)ο蠓椒ǖ谋容^傳統(tǒng)方法系統(tǒng)是過程的集合過程與數(shù)據(jù)實體交互過程接受輸入并產(chǎn)生輸出面向?qū)ο蠓椒ㄏ到y(tǒng)是交互對象的集合對象與人或其它對象交互對象發(fā)送與響應(yīng)消息30傳統(tǒng)方法數(shù)據(jù)與過程是分離的過程1輸入輸出過程2過程3數(shù)據(jù)實體屬于該對象的數(shù)據(jù)對象處理數(shù)據(jù)的方法消息消息對象把數(shù)據(jù)和處理數(shù)據(jù)的方法封狀成一個單元31為什么對面向?qū)ο蠓椒ǜ信d趣? 面向?qū)ο蠓椒ǖ闹饕獌?yōu)點:自然性:追求軟件系統(tǒng)對現(xiàn)實系統(tǒng)的直接模擬,盡量實現(xiàn)將現(xiàn)實世界中的事物直接映射到軟件系統(tǒng)的解空間中。軟件復(fù)用 :可復(fù)用性(可重用性) 可擴(kuò)

11、展性可管理性32面向?qū)ο蠓治雒嫦驅(qū)ο蠓治龅年P(guān)鍵:識別出問題域內(nèi)的對象,并分析它們相互間的關(guān)系,最終建立起問題域的簡潔、精確、可理解的正確模型。面向?qū)ο蠓椒ㄗ罨镜脑瓌t:按照人們習(xí)慣的思維方式,用面向?qū)ο笥^點建立問題域的模型,開發(fā)出盡可能自然地表現(xiàn)求解方法的軟件。33面向?qū)ο蠼S妹嫦驅(qū)ο蠓椒ㄩ_發(fā)軟件,通常需要建立三種形式的模型:對象模型:描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)動態(tài)模型:描述系統(tǒng)控制結(jié)構(gòu)功能模型:描述系統(tǒng)功能34一些具體工具介紹35A Room hierarchy based on an interior designers perspectiveRoomRoom with lightsRoom wi

12、th windowsGarageBasementKitchenBathroomRoom withFurnitureLivingRoomFamilyRoomBedRoomDiningRoom層次方框圖36數(shù)據(jù)流程圖DFD是結(jié)構(gòu)化系統(tǒng)分析的主要工具,它表示了系統(tǒng)內(nèi)部信息的流向,并表示了系統(tǒng)的邏輯處理的功能數(shù)據(jù)流程圖的特性(1)抽象性:具體的組織機(jī)構(gòu)、工作場所、物質(zhì)流等等都去掉,僅剩下信息和數(shù)據(jù)存儲、流動、使用以及加工的情況。(2)概括性:它把系統(tǒng)對各種業(yè)務(wù)的處理過程聯(lián)系起來考慮,形成一個總體,具有概括性。(3)數(shù)據(jù)流程圖描述的主體是抽象出來的數(shù)據(jù)。(4)數(shù)據(jù)流程圖具有層次性,一個系統(tǒng)將有許多層次的

13、流程圖。37數(shù)據(jù)流程圖的用途系統(tǒng)分析員用這種工具可以自頂向下分析系統(tǒng)信息流程可在圖上畫出需要計算機(jī)處理的部分根據(jù)數(shù)據(jù)存貯,進(jìn)一步作數(shù)據(jù)分析,向數(shù)據(jù)庫設(shè)計過渡根據(jù)數(shù)據(jù)流向,定出存取方式對應(yīng)一個處理過程,用相應(yīng)的語言、判定表等工具表達(dá)處理方法38程序流程圖、偽碼、盒圖、問題分析圖開始PGQ and P停止FFdefkx2de123 While x3cx21cDo-While x323dek :PROCEDURE spell_check IS BEGIN Split document into single words Look up words in dictionary Display word

14、s which are not in dictionary Create a new dictionary END spell_check39幾種表示工具比較40判定表判定表能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系,而其它的工具不易表示。一張判定表由四部分組成,左上部列出所有條件,左下部是所有可能做的動作,右上部是表示各種條件組合的一個矩陣,右下部是和每種條件組合相對應(yīng)的動作。判定表的每一列實質(zhì)上是一條規(guī)則,規(guī)定了與特定的條件組合相對應(yīng)的動作。41例子:航空行李托運費的算法按規(guī)定:重量不超過30公斤的行李可免費托運。重量超過30公斤時,對超運部分,頭等艙國內(nèi)乘客收4元/公斤;其它艙位國內(nèi)乘客收6元/公斤;外國乘客收費為國內(nèi)乘客的2倍;殘疾乘客的收費為正常乘客的1/2。 42RulesRule numbers Condition rowsAction rows43行李費算法

溫馨提示

  • 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

提交評論