




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、天津市大學軟件學院天津市大學軟件學院 本章學習目標:本章學習目標: 了解軟件危機的發(fā)生原因和典型表現 識記軟件工程的概念和基本原理 識記軟件生命周期和軟件過程的概念 識記常用的生命周期模型第1章 軟件工程學概述第1章 軟件工程學概述 1.1 軟件危機 1.2 軟件工程 1.3 軟件生命周期第1章 軟件工程學概述 1.1 軟件危機 1.2 軟件工程 1.3 軟件生命周期1.1.1 軟件的定義 17世紀60年代,Augusta Ada Lovelace為分析機編寫程序,包括計算三角函數、級數相乘、伯努利函數等的程序 軟件伴隨著ENIAC的問世而誕生 20世紀60年代,美國出現專門教授編寫軟件的專業(yè)
2、1.1.1 軟件的定義 軟件(Software)的經典定義:軟件軟件=“完成特定功能的程序完成特定功能的程序+數據結構數據結構+文檔文檔” 程序:按照事先設計的功能性能要求執(zhí)行的指令序列; 文檔:與程序開發(fā)維護和使用有關的各種圖文數據1.1.1 軟件的定義 軟件的特征:1、軟件是抽象的邏輯實體2、軟件是開發(fā)的,而不是制造的; 軟件的質量取決于開發(fā)過程,而不是制造過程3、軟件不磨損,但退化,不適應新的軟硬件環(huán)境;4、自定義,定制,需要復用及管理。1.1.1 軟件的定義 軟件規(guī)模的分類:類型類型參加人數參加人數研制日期研制日期產品規(guī)模產品規(guī)模/代碼行數代碼行數微型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ā)展中的相關問題: 硬件的發(fā)展超過軟件; 現有軟件與用戶的要求矛盾; 軟件失敗導致“災難性后果”; 需要高質量、高可靠性的軟件; 設計的問題使升級和維護十分困難。1.1.2 軟件危機的定義 定義定義 “在計算機軟件的開發(fā)和維護過程在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重的問題。中所遇到的一系列嚴重的問題?!盨oftware Crisis1.1.2 軟件危機的表現(1)對軟件開發(fā)成本和進度的估計常常很不準
4、確。)對軟件開發(fā)成本和進度的估計常常很不準確。 實際成本往往大大超過估計成本,或開發(fā)進度比計劃推遲幾個月或一年以上。這種現象極大地影響了軟件開發(fā)組織的信譽,也會引起用戶的強烈不滿。(2)軟件產品質量較差,可靠性低。)軟件產品質量較差,可靠性低。 軟件開發(fā)過程中不能堅持嚴格的審查、復審和測試,使得軟件可靠性差、質量問題多。 1.1.2 軟件危機的表現(3)用戶對開發(fā)出來的軟件產品不滿意。)用戶對開發(fā)出來的軟件產品不滿意。 開發(fā)人員與用戶之間的交流不充分,僅對用戶需求有了一個模糊的認識就匆忙開始寫程序。這樣的結果就是用戶對于所謂已經完成的軟件很不滿意。(4)軟件常常是不可維護的。)軟件常常是不可維
5、護的。 在實際項目中,很多程序的錯誤往往難以修改,而且不能適應軟硬件環(huán)境的變化,也無法添加用戶需要的一些新功能。 1.1.2 軟件危機的表現(5)軟件產品缺少應有的文檔資料。)軟件產品缺少應有的文檔資料。 軟件=程序+數據+文檔。開發(fā)人員對文檔認識不足,不能保證在開發(fā)過程中文檔的完整性和準確性。缺少文檔資料會造成軟件開發(fā)、管理、審查、用戶交流、軟件維護等方面的諸多問題。 (6)軟件產品的供不應求。軟件產品的供不應求。 軟件開發(fā)的生產率遠遠低于計算機硬件發(fā)展速度和用戶的需求,造成了軟件產品的供不應求。1.1.3 產生軟件危機的原因客觀原因:客觀原因:軟件與硬件產品不同,軟件是“開發(fā)的”而非“制造
6、的”。其開發(fā)過程難以管理和控制,產品質量也不好把握。軟件沒有“磨損”,但是它會不斷“退化”。軟件系統無法適應不斷變化的環(huán)境和功能需求。軟件都規(guī)模龐大,而程序的復雜性是隨其規(guī)模的擴大呈指數增加。 主觀原因:主觀原因:對用戶要求沒有完整和準確的認識就匆忙編寫程序。 對軟件的開發(fā)過程的認識不準確。生命周期的每個階段都有特定的工作和特點,都是不可逾越的。只有上一階段工作完成,才能開始下一階段的工作。 對軟件質量的重視不夠是造成軟件開發(fā)成本激增的主要原因。注意軟件開發(fā)過程中錯誤的“放大效應”。輕視軟件維護將是一個重大的錯誤。軟件開發(fā)時期各階段的關鍵目標都是提高軟件的可維護性。 1.1.3 產生軟件危機的
7、原因第1章 軟件工程學概述 1.1 軟件危機軟件危機 1.2 軟件工程軟件工程 1.3 軟件生命周期1.2 軟件工程 為了更有效地開發(fā)與維護軟件,軟件工作者在20世紀60年代后期開始認真研究消除軟件危機的途徑,從而逐漸形成了一門新興的工程學科計算機軟件工程學計算機軟件工程學(簡稱為軟件工程軟件工程)。 1.2.1 軟件工程的概念 定義指導軟件開發(fā)與維護的工程科學指導軟件開發(fā)與維護的工程科學 采用工程的概念、原理、技術和方法來開發(fā)和維護軟件,綜合運用正確的管理技術和最好的技術方法,以經濟地開發(fā)出高質量的軟件并有效維護它。 1.2.1 軟件工程的概念 IEEE的定義 軟件工程是把系統的、規(guī)范的、可
8、度量的途徑應用于軟件開發(fā)、運行和維護過程,也就是把工程應用于軟件;對這些途徑加以研究。 1.2.1 軟件工程的概念 諸多軟件工程的定義所揭示的軟件工程軟件工程的本質的本質認識是一致的: 軟件工程一般更關注于大型軟件系統的開發(fā);其中核心任務是控制整個軟件系統的復雜性,提高軟件開發(fā)的效率,加強人員和技術的管理,更好地滿足用戶的需要。1.2.2 軟件工程的基本原理(1)用分階段的生命周期計劃嚴格管理)用分階段的生命周期計劃嚴格管理 應該將軟件開發(fā)和維護的漫長生命周期劃分成若干個階段,并針對每個階段制定切實可行的計劃,然后嚴 格按照計劃對軟件的開發(fā)和維護工作進行管理。 (2)堅持進行階段評審)堅持進行
9、階段評審 錯誤發(fā)現的越早,改正錯誤所付出的代價就越小。因此,開發(fā)人員應該堅持在每個階段都進行嚴格的評 審,以便更早地發(fā)現和改正錯誤。 1.2.2 軟件工程的基本原理(3)實行嚴格的產品控制)實行嚴格的產品控制 在軟件開發(fā)的過程中不應隨意修改需求,當改變需 求時,必須實行嚴格的產品控制以保持軟件各個配置成 分的一致性。 (4)采用現代程序設計技術)采用現代程序設計技術 采用先進的技術不僅可以提高軟件開發(fā)和維護的效率,而且還能有效地提高軟件產品的質量。 1.2.2 軟件工程的基本原理(5) 結果可以清楚地審查結果可以清楚地審查 應規(guī)定每個開發(fā)階段的產品標準和文檔要求,使得到的結果可以清楚地審查。
10、(6)開發(fā)小組成員少而精)開發(fā)小組成員少而精 軟件開發(fā)小組人員要求素質高,而人數不宜過多。隨著人數n的增加,通信路徑也急劇增加。1.2.2 軟件工程的基本原理(7)承認不斷改進軟件工程實踐的必要性)承認不斷改進軟件工程實踐的必要性 軟件開發(fā)和維護的過程也需要隨之改進。要主動采用最新的軟件技術,而且還要不斷總結經驗和教訓、收集歷史數據幫助開發(fā)人員改進軟件工程實踐。1.2.3 軟件工程方法學 軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學。 軟件工程方法學主要包含3個要素:方法、工具方法、工具和過程和過程。 目前使用最為廣泛的軟件工程方法學是傳統方法傳統方法學學和面向對象方法學面向對象方
11、法學。1.2.3 軟件工程方法學1. 傳統方法學傳統方法學也稱為生命周期方法學或結構化范型。它采用結構化技術(包括結構化分析、結構化設計和結構化實現)來完成軟件開發(fā)的各項任務。這種方法學將軟件生命周期劃分為若干個階段,然后順序完成各個階段的任務。 每個階段依賴上一個階段產生的結果,并將上一階段工作進一步具體化。1.2.3 軟件工程方法學2. 面向對象方法學面向對象方法學以數據為主線,將數據和其上的操作緊密結合起來。面向對象方法學的四要素:類+對象+繼承+消息傳遞。面向對象的方法學是盡量模擬人類習慣的思維方式,使軟件開發(fā)過程更接近人類認知模式,做到問題空間與解空間在結構上一致。運用面向對象方法學
12、開發(fā)出來的軟件產品一般是由很多較小的獨立對象組成,從而降低了軟件產品的復雜性,增強了可理解性,使得開發(fā)和維護更為簡單有效。第1章 軟件工程學概述 1.1 軟件危機軟件危機 1.2 軟件工程軟件工程 1.3 軟件生命周期軟件生命周期1.3.1 軟件生命周期的概念 定義 一個軟件從定義、開發(fā)、使用和維護,直至最終被廢棄,要經歷的漫長的時期稱為軟件生命周期。1.3.1 軟件生命周期的概念 構成3個時期:軟件定義、軟件開發(fā)和運行維護 各時期任務: 軟件定義時期:確定軟件開發(fā)的總目標和工程的可行性;導出實現策略和系統必須完成的功能;進行成本效益的估算;制定開發(fā)計劃等 。 軟件開發(fā)時期:具體設計和實現前一
13、個時期定義的軟件。 維護時期:使軟件持久地滿足用戶的需要。1.3.1 軟件生命周期的概念 構成3個時期:軟件定義軟件定義、軟件開發(fā)軟件開發(fā)和和運行維護運行維護8個階段: 問題定義問題定義 可行性研究可行性研究 需求分析需求分析 總體設計總體設計 詳細設計詳細設計 編碼和單元編碼和單元 測試測試 綜合測試綜合測試 軟件維護軟件維護階段1: 問題定義 1.3.2 各階段的基本任務階段2: 可行性研究 1.3.2 各階段的基本任務階段3: 需求分析 1.3.2 各階段的基本任務階段4: 總體設計(概要設計) 1.3.2 各階段的基本任務階段5: 詳細設計(模塊設計) 1.3.2 各階段的基本任務階段
14、6: 編碼和單元測試 1.3.2 各階段的基本任務階段7: 綜合測試 1.3.2 各階段的基本任務階段8: 軟件維護 1.3.2 各階段的基本任務1.3.3軟件生命周期的模型 定義 在軟件開發(fā)過程中,人們通常使用生命周期模型來簡要地描述軟件過程。生命周期模型規(guī)定了生命周期各個階段和它們執(zhí)行的順序,因此也被稱為過程模型。1. 瀑布模型線性模型之一 在20世紀80年代之前,瀑布模型一直是惟一被廣泛采用的生命周期模型。傳統軟件工程方法 學的軟件過程,基本上可以用瀑布模型來描述。 瀑布模型 1. 瀑布模型線性模型之一瀑布模型的特點: 瀑布模型的問題:1. 瀑布模型線性模型之一 2. 原型模型 原型模型
15、是一個快速開發(fā)的過程,首先和用戶溝通進行主要功能的需求分析和快速設計,然后建立一個原型,再請用戶進行評價和反饋。開發(fā)人員根據用戶的反饋進一步細化需求,改進原型系統的設計,如此反復直至用戶滿意??焖傩枨蠓治觯ㄓ脩魷贤ǎ嫿?修改模型(快速設計)用戶使用評價(運行測試)原型模型 2. 原型模型 2. 原型模型 增量模型也稱為漸增模型。使用增量模型開發(fā)軟件時,把軟件產品作為一系列的增量構件來設計、編碼、集成和測試。分析設計編碼測試交付增量交付增量1分析設計編碼測試交付增量交付增量2 項目時間分析設計編碼測試交付增量交付增量n增量模型 3. 增量模型軟件系統3. 增量模型增量模型 增量模型的特點:增量
16、模型的問題:3. 增量模型 - 使用增量模型開發(fā)時,第一個增量往往是系統中的核心構件,同時,要求產品分解成增量構件的規(guī)模應當適中。 - 如何不破壞已經開發(fā)的構件將新的構件集成到一個產品中是增量模型的一個難點。 - 增量模型的提出很好地解決了線性模型中的人員阻塞問題,尤其是在項目開始初期開發(fā)人員不足的時候,能有效地規(guī)避技術風險。 3. 增量模型 噴泉模型是噴泉模型是典型的面向對象的軟件過典型的面向對象的軟件過程模型之一程模型之一,“噴泉噴泉”較好地體現了面向較好地體現了面向對象軟件開發(fā)過程對象軟件開發(fā)過程迭代迭代和和無縫無縫的特性。的特性。4. 噴泉模型4. 噴泉模型問題討論問題討論情景分析情景分析解:解: 對這個軟件的需求很明確,實現開平方功能的算法也很成熟,因此,既無須通過原型來分析需求也無須用原型來驗證設計方案。此外,一旦實現并測試完之后,該產品將被拋棄,因此也無須使用有助于提高軟件可維護性的增量模型或螺旋模型來開發(fā)該軟件。問題討論問題討論情景分析情景分析問題討論問題討論情景分析情景分析解:解:對這個項目的一個重要要求是,嚴格按照已對外公布了的日期完成產品開發(fā)工作,因此,選擇生命周期模型時、應該著重考慮哪種模型有助于加快產品開發(fā)的進度。使用增量模型開發(fā)軟件時可以并行完成開發(fā)工作,因此能夠
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南省信陽市九師聯盟2024-2025學年高一下學期6月月考語文試題(含答案)
- 2025年春江蘇開放大學生活中的經濟學060057綜合作業(yè)1、2答案
- 2025機械設備購銷合同
- 2025企業(yè)合同化管理規(guī)定
- 2025電競、餐飲、零售行業(yè)勞動合同
- 2025企業(yè)石油買賣合同(月度、年度)
- 廣東省佛山市禪城區(qū)2025屆高三統一調研測試(二)數學試卷
- 福建省三明市2023?2024學年高一下冊期末質量檢測數學試卷附解析
- 2025年中考語文(長沙用)課件:復習任務群9 詩歌(詩、詞、曲)鑒賞
- 2024年翠屏公安招聘警務輔助人員真題
- 《復合巖棉板外墻外保溫應用技術規(guī)程》
- 重組人胰島素
- 讀后續(xù)寫+原諒之花綻放在童真的田野上+講義 高一下學期7月期末英語試題
- 護理信息安全管理制度
- 退役軍人服務站工作匯報
- 醫(yī)療器械維修質量控制制度
- 肝膽外科常見病種
- 第三章 基因工程(預測題)
- GB/T 14536.12-2024電自動控制器第12部分:能量調節(jié)器的特殊要求
- 銀行運營新員工入職培訓
- 一個人與公司合伙協議書范文
評論
0/150
提交評論