




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、天津市大學(xué)軟件學(xué)院天津市大學(xué)軟件學(xué)院 本章學(xué)習(xí)目標(biāo):本章學(xué)習(xí)目標(biāo): 了解軟件危機(jī)的發(fā)生原因和典型表現(xiàn) 識記軟件工程的概念和基本原理 識記軟件生命周期和軟件過程的概念 識記常用的生命周期模型第1章 軟件工程學(xué)概述第1章 軟件工程學(xué)概述 1.1 軟件危機(jī) 1.2 軟件工程 1.3 軟件生命周期第1章 軟件工程學(xué)概述 1.1 軟件危機(jī) 1.2 軟件工程 1.3 軟件生命周期1.1.1 軟件的定義 17世紀(jì)60年代,Augusta Ada Lovelace為分析機(jī)編寫程序,包括計算三角函數(shù)、級數(shù)相乘、伯努利函數(shù)等的程序 軟件伴隨著ENIAC的問世而誕生 20世紀(jì)60年代,美國出現(xiàn)專門教授編寫軟件的專業(yè)
2、1.1.1 軟件的定義 軟件(Software)的經(jīng)典定義:軟件軟件=“完成特定功能的程序完成特定功能的程序+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)+文檔文檔” 程序:按照事先設(shè)計的功能性能要求執(zhí)行的指令序列; 文檔:與程序開發(fā)維護(hù)和使用有關(guān)的各種圖文數(shù)據(jù)1.1.1 軟件的定義 軟件的特征:1、軟件是抽象的邏輯實體2、軟件是開發(fā)的,而不是制造的; 軟件的質(zhì)量取決于開發(fā)過程,而不是制造過程3、軟件不磨損,但退化,不適應(yīng)新的軟硬件環(huán)境;4、自定義,定制,需要復(fù)用及管理。1.1.1 軟件的定義 軟件規(guī)模的分類:類型類型參加人數(shù)參加人數(shù)研制日期研制日期產(chǎn)品規(guī)模產(chǎn)品規(guī)模/代碼行數(shù)代碼行數(shù)微型11-4周0.5K行小型11-6周
3、1-2K行中型2-51-2年5K-50K行大型5-202-3年50K-100K行甚大型100-10004-5年1M行極大型1000以上5-10年1M-10M行1.1.1 軟件的定義 軟件發(fā)展中的相關(guān)問題: 硬件的發(fā)展超過軟件; 現(xiàn)有軟件與用戶的要求矛盾; 軟件失敗導(dǎo)致“災(zāi)難性后果”; 需要高質(zhì)量、高可靠性的軟件; 設(shè)計的問題使升級和維護(hù)十分困難。1.1.2 軟件危機(jī)的定義 定義定義 “在計算機(jī)軟件的開發(fā)和維護(hù)過程在計算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重的問題。中所遇到的一系列嚴(yán)重的問題?!盨oftware Crisis1.1.2 軟件危機(jī)的表現(xiàn)(1)對軟件開發(fā)成本和進(jìn)度的估計常常很不準(zhǔn)
4、確。)對軟件開發(fā)成本和進(jìn)度的估計常常很不準(zhǔn)確。 實際成本往往大大超過估計成本,或開發(fā)進(jìn)度比計劃推遲幾個月或一年以上。這種現(xiàn)象極大地影響了軟件開發(fā)組織的信譽(yù),也會引起用戶的強(qiáng)烈不滿。(2)軟件產(chǎn)品質(zhì)量較差,可靠性低。)軟件產(chǎn)品質(zhì)量較差,可靠性低。 軟件開發(fā)過程中不能堅持嚴(yán)格的審查、復(fù)審和測試,使得軟件可靠性差、質(zhì)量問題多。 1.1.2 軟件危機(jī)的表現(xiàn)(3)用戶對開發(fā)出來的軟件產(chǎn)品不滿意。)用戶對開發(fā)出來的軟件產(chǎn)品不滿意。 開發(fā)人員與用戶之間的交流不充分,僅對用戶需求有了一個模糊的認(rèn)識就匆忙開始寫程序。這樣的結(jié)果就是用戶對于所謂已經(jīng)完成的軟件很不滿意。(4)軟件常常是不可維護(hù)的。)軟件常常是不可維
5、護(hù)的。 在實際項目中,很多程序的錯誤往往難以修改,而且不能適應(yīng)軟硬件環(huán)境的變化,也無法添加用戶需要的一些新功能。 1.1.2 軟件危機(jī)的表現(xiàn)(5)軟件產(chǎn)品缺少應(yīng)有的文檔資料。)軟件產(chǎn)品缺少應(yīng)有的文檔資料。 軟件=程序+數(shù)據(jù)+文檔。開發(fā)人員對文檔認(rèn)識不足,不能保證在開發(fā)過程中文檔的完整性和準(zhǔn)確性。缺少文檔資料會造成軟件開發(fā)、管理、審查、用戶交流、軟件維護(hù)等方面的諸多問題。 (6)軟件產(chǎn)品的供不應(yīng)求。軟件產(chǎn)品的供不應(yīng)求。 軟件開發(fā)的生產(chǎn)率遠(yuǎn)遠(yuǎn)低于計算機(jī)硬件發(fā)展速度和用戶的需求,造成了軟件產(chǎn)品的供不應(yīng)求。1.1.3 產(chǎn)生軟件危機(jī)的原因客觀原因:客觀原因:軟件與硬件產(chǎn)品不同,軟件是“開發(fā)的”而非“制造
6、的”。其開發(fā)過程難以管理和控制,產(chǎn)品質(zhì)量也不好把握。軟件沒有“磨損”,但是它會不斷“退化”。軟件系統(tǒng)無法適應(yīng)不斷變化的環(huán)境和功能需求。軟件都規(guī)模龐大,而程序的復(fù)雜性是隨其規(guī)模的擴(kuò)大呈指數(shù)增加。 主觀原因:主觀原因:對用戶要求沒有完整和準(zhǔn)確的認(rèn)識就匆忙編寫程序。 對軟件的開發(fā)過程的認(rèn)識不準(zhǔn)確。生命周期的每個階段都有特定的工作和特點,都是不可逾越的。只有上一階段工作完成,才能開始下一階段的工作。 對軟件質(zhì)量的重視不夠是造成軟件開發(fā)成本激增的主要原因。注意軟件開發(fā)過程中錯誤的“放大效應(yīng)”。輕視軟件維護(hù)將是一個重大的錯誤。軟件開發(fā)時期各階段的關(guān)鍵目標(biāo)都是提高軟件的可維護(hù)性。 1.1.3 產(chǎn)生軟件危機(jī)的
7、原因第1章 軟件工程學(xué)概述 1.1 軟件危機(jī)軟件危機(jī) 1.2 軟件工程軟件工程 1.3 軟件生命周期1.2 軟件工程 為了更有效地開發(fā)與維護(hù)軟件,軟件工作者在20世紀(jì)60年代后期開始認(rèn)真研究消除軟件危機(jī)的途徑,從而逐漸形成了一門新興的工程學(xué)科計算機(jī)軟件工程學(xué)計算機(jī)軟件工程學(xué)(簡稱為軟件工程軟件工程)。 1.2.1 軟件工程的概念 定義指導(dǎo)軟件開發(fā)與維護(hù)的工程科學(xué)指導(dǎo)軟件開發(fā)與維護(hù)的工程科學(xué) 采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件,綜合運用正確的管理技術(shù)和最好的技術(shù)方法,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效維護(hù)它。 1.2.1 軟件工程的概念 IEEE的定義 軟件工程是把系統(tǒng)的、規(guī)范的、可
8、度量的途徑應(yīng)用于軟件開發(fā)、運行和維護(hù)過程,也就是把工程應(yīng)用于軟件;對這些途徑加以研究。 1.2.1 軟件工程的概念 諸多軟件工程的定義所揭示的軟件工程軟件工程的本質(zhì)的本質(zhì)認(rèn)識是一致的: 軟件工程一般更關(guān)注于大型軟件系統(tǒng)的開發(fā);其中核心任務(wù)是控制整個軟件系統(tǒng)的復(fù)雜性,提高軟件開發(fā)的效率,加強(qiáng)人員和技術(shù)的管理,更好地滿足用戶的需要。1.2.2 軟件工程的基本原理(1)用分階段的生命周期計劃嚴(yán)格管理)用分階段的生命周期計劃嚴(yán)格管理 應(yīng)該將軟件開發(fā)和維護(hù)的漫長生命周期劃分成若干個階段,并針對每個階段制定切實可行的計劃,然后嚴(yán) 格按照計劃對軟件的開發(fā)和維護(hù)工作進(jìn)行管理。 (2)堅持進(jìn)行階段評審)堅持進(jìn)行
9、階段評審 錯誤發(fā)現(xiàn)的越早,改正錯誤所付出的代價就越小。因此,開發(fā)人員應(yīng)該堅持在每個階段都進(jìn)行嚴(yán)格的評 審,以便更早地發(fā)現(xiàn)和改正錯誤。 1.2.2 軟件工程的基本原理(3)實行嚴(yán)格的產(chǎn)品控制)實行嚴(yán)格的產(chǎn)品控制 在軟件開發(fā)的過程中不應(yīng)隨意修改需求,當(dāng)改變需 求時,必須實行嚴(yán)格的產(chǎn)品控制以保持軟件各個配置成 分的一致性。 (4)采用現(xiàn)代程序設(shè)計技術(shù))采用現(xiàn)代程序設(shè)計技術(shù) 采用先進(jìn)的技術(shù)不僅可以提高軟件開發(fā)和維護(hù)的效率,而且還能有效地提高軟件產(chǎn)品的質(zhì)量。 1.2.2 軟件工程的基本原理(5) 結(jié)果可以清楚地審查結(jié)果可以清楚地審查 應(yīng)規(guī)定每個開發(fā)階段的產(chǎn)品標(biāo)準(zhǔn)和文檔要求,使得到的結(jié)果可以清楚地審查。
10、(6)開發(fā)小組成員少而精)開發(fā)小組成員少而精 軟件開發(fā)小組人員要求素質(zhì)高,而人數(shù)不宜過多。隨著人數(shù)n的增加,通信路徑也急劇增加。1.2.2 軟件工程的基本原理(7)承認(rèn)不斷改進(jìn)軟件工程實踐的必要性)承認(rèn)不斷改進(jìn)軟件工程實踐的必要性 軟件開發(fā)和維護(hù)的過程也需要隨之改進(jìn)。要主動采用最新的軟件技術(shù),而且還要不斷總結(jié)經(jīng)驗和教訓(xùn)、收集歷史數(shù)據(jù)幫助開發(fā)人員改進(jìn)軟件工程實踐。1.2.3 軟件工程方法學(xué) 軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為方法學(xué)。 軟件工程方法學(xué)主要包含3個要素:方法、工具方法、工具和過程和過程。 目前使用最為廣泛的軟件工程方法學(xué)是傳統(tǒng)方法傳統(tǒng)方法學(xué)學(xué)和面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓?/p>
11、法學(xué)。1.2.3 軟件工程方法學(xué)1. 傳統(tǒng)方法學(xué)傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。它采用結(jié)構(gòu)化技術(shù)(包括結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化實現(xiàn))來完成軟件開發(fā)的各項任務(wù)。這種方法學(xué)將軟件生命周期劃分為若干個階段,然后順序完成各個階段的任務(wù)。 每個階段依賴上一個階段產(chǎn)生的結(jié)果,并將上一階段工作進(jìn)一步具體化。1.2.3 軟件工程方法學(xué)2. 面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒▽W(xué)以數(shù)據(jù)為主線,將數(shù)據(jù)和其上的操作緊密結(jié)合起來。面向?qū)ο蠓椒▽W(xué)的四要素:類+對象+繼承+消息傳遞。面向?qū)ο蟮姆椒▽W(xué)是盡量模擬人類習(xí)慣的思維方式,使軟件開發(fā)過程更接近人類認(rèn)知模式,做到問題空間與解空間在結(jié)構(gòu)上一致。運用面向?qū)ο蠓椒▽W(xué)
12、開發(fā)出來的軟件產(chǎn)品一般是由很多較小的獨立對象組成,從而降低了軟件產(chǎn)品的復(fù)雜性,增強(qiáng)了可理解性,使得開發(fā)和維護(hù)更為簡單有效。第1章 軟件工程學(xué)概述 1.1 軟件危機(jī)軟件危機(jī) 1.2 軟件工程軟件工程 1.3 軟件生命周期軟件生命周期1.3.1 軟件生命周期的概念 定義 一個軟件從定義、開發(fā)、使用和維護(hù),直至最終被廢棄,要經(jīng)歷的漫長的時期稱為軟件生命周期。1.3.1 軟件生命周期的概念 構(gòu)成3個時期:軟件定義、軟件開發(fā)和運行維護(hù) 各時期任務(wù): 軟件定義時期:確定軟件開發(fā)的總目標(biāo)和工程的可行性;導(dǎo)出實現(xiàn)策略和系統(tǒng)必須完成的功能;進(jìn)行成本效益的估算;制定開發(fā)計劃等 。 軟件開發(fā)時期:具體設(shè)計和實現(xiàn)前一
13、個時期定義的軟件。 維護(hù)時期:使軟件持久地滿足用戶的需要。1.3.1 軟件生命周期的概念 構(gòu)成3個時期:軟件定義軟件定義、軟件開發(fā)軟件開發(fā)和和運行維護(hù)運行維護(hù)8個階段: 問題定義問題定義 可行性研究可行性研究 需求分析需求分析 總體設(shè)計總體設(shè)計 詳細(xì)設(shè)計詳細(xì)設(shè)計 編碼和單元編碼和單元 測試測試 綜合測試綜合測試 軟件維護(hù)軟件維護(hù)階段1: 問題定義 1.3.2 各階段的基本任務(wù)階段2: 可行性研究 1.3.2 各階段的基本任務(wù)階段3: 需求分析 1.3.2 各階段的基本任務(wù)階段4: 總體設(shè)計(概要設(shè)計) 1.3.2 各階段的基本任務(wù)階段5: 詳細(xì)設(shè)計(模塊設(shè)計) 1.3.2 各階段的基本任務(wù)階段
14、6: 編碼和單元測試 1.3.2 各階段的基本任務(wù)階段7: 綜合測試 1.3.2 各階段的基本任務(wù)階段8: 軟件維護(hù) 1.3.2 各階段的基本任務(wù)1.3.3軟件生命周期的模型 定義 在軟件開發(fā)過程中,人們通常使用生命周期模型來簡要地描述軟件過程。生命周期模型規(guī)定了生命周期各個階段和它們執(zhí)行的順序,因此也被稱為過程模型。1. 瀑布模型線性模型之一 在20世紀(jì)80年代之前,瀑布模型一直是惟一被廣泛采用的生命周期模型。傳統(tǒng)軟件工程方法 學(xué)的軟件過程,基本上可以用瀑布模型來描述。 瀑布模型 1. 瀑布模型線性模型之一瀑布模型的特點: 瀑布模型的問題:1. 瀑布模型線性模型之一 2. 原型模型 原型模型
15、是一個快速開發(fā)的過程,首先和用戶溝通進(jìn)行主要功能的需求分析和快速設(shè)計,然后建立一個原型,再請用戶進(jìn)行評價和反饋。開發(fā)人員根據(jù)用戶的反饋進(jìn)一步細(xì)化需求,改進(jìn)原型系統(tǒng)的設(shè)計,如此反復(fù)直至用戶滿意??焖傩枨蠓治觯ㄓ脩魷贤ǎ?gòu)建/修改模型(快速設(shè)計)用戶使用評價(運行測試)原型模型 2. 原型模型 2. 原型模型 增量模型也稱為漸增模型。使用增量模型開發(fā)軟件時,把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計、編碼、集成和測試。分析設(shè)計編碼測試交付增量交付增量1分析設(shè)計編碼測試交付增量交付增量2 項目時間分析設(shè)計編碼測試交付增量交付增量n增量模型 3. 增量模型軟件系統(tǒng)3. 增量模型增量模型 增量模型的特點:增量
16、模型的問題:3. 增量模型 - 使用增量模型開發(fā)時,第一個增量往往是系統(tǒng)中的核心構(gòu)件,同時,要求產(chǎn)品分解成增量構(gòu)件的規(guī)模應(yīng)當(dāng)適中。 - 如何不破壞已經(jīng)開發(fā)的構(gòu)件將新的構(gòu)件集成到一個產(chǎn)品中是增量模型的一個難點。 - 增量模型的提出很好地解決了線性模型中的人員阻塞問題,尤其是在項目開始初期開發(fā)人員不足的時候,能有效地規(guī)避技術(shù)風(fēng)險。 3. 增量模型 噴泉模型是噴泉模型是典型的面向?qū)ο蟮能浖^典型的面向?qū)ο蟮能浖^程模型之一程模型之一,“噴泉噴泉”較好地體現(xiàn)了面向較好地體現(xiàn)了面向?qū)ο筌浖_發(fā)過程對象軟件開發(fā)過程迭代迭代和和無縫無縫的特性。的特性。4. 噴泉模型4. 噴泉模型問題討論問題討論情景分析情景分析解:解: 對這個軟件的需求很明確,實現(xiàn)開平方功能的算法也很成熟,因此,既無須通過原型來分析需求也無須用原型來驗證設(shè)計方案。此外,一旦實現(xiàn)并測試完之后,該產(chǎn)品將被拋棄,因此也無須使用有助于提高軟件可維護(hù)性的增量模型或螺旋模型來開發(fā)該軟件。問題討論問題討論情景分析情景分析問題討論問題討論情景分析情景分析解:解:對這個項目的一個重要要求是,嚴(yán)格按照已對外公布了的日期完成產(chǎn)品開發(fā)工作,因此,選擇生命周期模型時、應(yīng)該著重考慮哪種模型有助于加快產(chǎn)品開發(fā)的進(jìn)度。使用增量模型開發(fā)軟件時可以并行完成開發(fā)工作,因此能夠
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧省2024年高考語文模擬試卷及答案2
- 2025年運城市稅務(wù)系統(tǒng)遴選面試真題附詳細(xì)解析含答案
- 泌尿系結(jié)石的中醫(yī)診療方案(診療標(biāo)準(zhǔn))
- 某醫(yī)院醫(yī)療物資采購及設(shè)備管理制度 (一)
- 六年級心理健康教案課件
- 老年護(hù)理培訓(xùn)課件大全
- 老年康復(fù)護(hù)理風(fēng)險課件
- 老師用的課件app
- 2025年安全產(chǎn)品行業(yè)分析報告及未來五至十年行業(yè)發(fā)展報告
- 財務(wù)會計崗位勞動合同書(含合規(guī)風(fēng)險管理)
- 鎖骨下動脈竊血綜合征 (2)PPT
- 2022年人教八級下英語單詞英譯漢
- 大班社會《愛發(fā)脾氣的菲菲》課件
- 公路工程項目代建制管理辦法(218頁編制詳細(xì))
- NX空間系統(tǒng)熱簡介復(fù)習(xí)課程
- 納米氧化鋅實驗報告(共9頁)
- 自粘聚合物改性瀝青防水卷材施工
- 青少年科技創(chuàng)新PPT
- 美麗鄉(xiāng)村片區(qū)內(nèi)監(jiān)理規(guī)劃范本
- 曉明煤礦副井過卷緩沖裝置安裝措施
- 燃料油 MSDS(化學(xué)品安全技術(shù)說明書)
評論
0/150
提交評論