![軟件系統(tǒng)開發(fā)與軟件工程方法_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/16/02927b94-742f-4672-86e7-e2e12dfb8dc4/02927b94-742f-4672-86e7-e2e12dfb8dc41.gif)
![軟件系統(tǒng)開發(fā)與軟件工程方法_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/16/02927b94-742f-4672-86e7-e2e12dfb8dc4/02927b94-742f-4672-86e7-e2e12dfb8dc42.gif)
![軟件系統(tǒng)開發(fā)與軟件工程方法_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/16/02927b94-742f-4672-86e7-e2e12dfb8dc4/02927b94-742f-4672-86e7-e2e12dfb8dc43.gif)
![軟件系統(tǒng)開發(fā)與軟件工程方法_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/16/02927b94-742f-4672-86e7-e2e12dfb8dc4/02927b94-742f-4672-86e7-e2e12dfb8dc44.gif)
![軟件系統(tǒng)開發(fā)與軟件工程方法_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/16/02927b94-742f-4672-86e7-e2e12dfb8dc4/02927b94-742f-4672-86e7-e2e12dfb8dc45.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第七章 軟件系統(tǒng)開發(fā)與軟件工程方法,一、軟件危機 二、軟件工程,一、軟件危機 1、軟件開發(fā)的發(fā)展歷程,早期 第二階段 第三階段 第四階段 面向批處理 多用戶 分布式系統(tǒng) 強大的桌面系統(tǒng) 有限的分布 實時 嵌入“智能” 面向?qū)ο蠹夹g 自定義軟件 數(shù)據(jù)庫 低成本硬件 專家系統(tǒng) 開發(fā)者=使用者 軟件產(chǎn)品 人工神經(jīng)網(wǎng)絡 并行計算 網(wǎng)絡計算機,一、軟件危機 2、軟件危機,1)案例思考1FAA的失敗項目 20世紀80年代中期,更換空中交通控制系統(tǒng)已成為美國聯(lián)邦航空管理局(FAA)非常優(yōu)先的任務。1989年IBM公司獲得更換該系統(tǒng)的合同,截止期為2001年,預計投入25億美元。由于面臨著極苛刻的需求,該軟件
2、項目是已進行的最復雜的項目之一。例如,交通控制系統(tǒng)必須具備全局完整性并且每周7天,每天24小時不能停止工作,甚至在升級時或正常維護時,也不允許有停頓時間。任何錯誤的數(shù)據(jù)都會引起重大傷亡,任何停機均會導致世界范圍的出行延誤或潛在的危險。該系統(tǒng)的反應時間不能超過2-3秒。此外,該系統(tǒng)設計時必須考慮到允許私人飛機駕駛員繼續(xù)使用舊設備,并要求軟件能在未來移植到更新的硬件設備上。當IBM獲得該合同后,該系統(tǒng)的主要花費為軟件開發(fā),用于硬件的投入僅為8萬美元。1993年,負責該項目的IBM子公司IBM聯(lián)邦系統(tǒng)公司被IBM賣給了Loral公司。到1994年,該系統(tǒng)已花費了23億美元,但尚未提交系統(tǒng)的任何程序段
3、,而此時估算整個系統(tǒng)的花費將增至50億美元。1994年底,F(xiàn)AA不得不承認該項目失敗并進行調(diào)查。作為調(diào)查的結果,F(xiàn)AA取消或修改了系統(tǒng)的四個主要部分。面臨當前空中控制系統(tǒng)存在的隱患,F(xiàn)AA不得不訂購了一套作為權宜之計的系統(tǒng),由另一家公司開發(fā)。 你認為該項目的失敗反映了什么問題?失敗的主要原因可能是什么?FAA為什么選擇取消和修改的方式而不是增加資源和生產(chǎn)力的方式,FAA對此項目調(diào)查總結出的原因為以下幾條: FAA并沒有明確掌握某些系統(tǒng)功能的需求。 制定了過于急躁的開發(fā)和實現(xiàn)計劃(包括費用與進度的估計) 在給定的軟件復雜度下,沒有考慮到開發(fā)商的生產(chǎn)力,尤其是早期階段需要投入的資源,在人月神話一書
4、中,Brooks將過去30年大型軟件項目的開發(fā)比喻為史前陷入瀝青坑的巨獸。恐龍、猛犸、劍齒虎等動物在焦油中掙扎,然而掙扎得越激烈,就陷得越快,最終都沉到了坑底。過去的大型軟件項目中,大多數(shù)開發(fā)出了可運行的系統(tǒng)不過只有極少數(shù)滿足了目標、進度和預算的要求。表面上看起來沒有任何一個單獨的問題會導致困難,每個問題都能獲得解決,但這些問題糾纏和積累在一起時,團隊的行動就越來越慢,并且很難再看清問題的本質(zhì),1995年美國的商業(yè)軟件失敗統(tǒng)計,一、軟件危機 2、軟件危機,案例思考2遺傳信息庫建設 在正在建設的遺傳信息庫如,假設你要開發(fā)一個管理軟件。你并不是一個生物遺傳方面的專家,甚至對此方面的知識一竅不通,你
5、該如何入手?要使該項目成功,你認為應該有哪些保障條件,你的問題是什么:對遺傳信息的管理,需要什么條件:了解遺傳信息的表示和管理流程,如何實現(xiàn):與遺傳領域的專家交流,障礙是什么:難以溝通與交流。可能因誤解產(chǎn)生錯誤的需求描述,一、軟件危機 2、軟件危機,軟件項目為什么會失敗,軟件項目失敗的核心問題在哪里,答案只有一個:復雜性,軟件要解決的問題本身是復雜的,開發(fā)人員一般不是該問題領域的專家,軟件規(guī)模要求多人參與,而不同專業(yè)領域的人的交流是困難的,軟件規(guī)模使得既要理解系統(tǒng)整體結構又要把握細節(jié)比較困難,例:Windows95有1000萬行代碼 Windows2000有5000萬行代碼 Exchange2
6、000和 Windows2000開發(fā)人員結構,一、軟件危機 2、軟件危機,2)軟件神話,1管理神話 神話:有關軟件開發(fā)的理論和方法已經(jīng)很豐富,有很多可用的標準與規(guī)范,因而可以保證軟件開發(fā)的順利進行。 現(xiàn)實:理論與方法在大多數(shù)實踐中并沒有得到真正的應用。使用者并沒有對這些理論與方法建立正確的認識。 神話:已經(jīng)有很多強大的開發(fā)工具和先進的計算機硬件,這些可以保證軟件開發(fā)的質(zhì)量與效率。 現(xiàn)實:這些工具并沒有得到合理的應用。 神話:如果我們落后于進度,可以通過增加人手來趕上。 現(xiàn)實:向一個已經(jīng)延遲的項目增加人手,只會使延遲的項目更加落后除非項目中不需要交流。生一個孩子10個月,無論有多少人,一、軟件危
7、機 2、軟件危機,2)軟件神話,1管理神話 神話:通過把軟件項目外包給實現(xiàn)強大的軟件開發(fā)公司可以保證軟件的成功。 現(xiàn)實:再專業(yè)的軟件公司,不了解客戶的需求和業(yè)務流程,也不可能順利完成軟件開發(fā)項目,改正一個問題需付出的代價,需 求 分 析,結構設計,詳細設計,編碼,集成測試,系統(tǒng)測試,現(xiàn)場,改正一個問題的估計費用,改正一個問題估計的工作量,20,200,2000,1000,5.0,2.5,0.05,0.5,美元,人天,一、軟件危機 2、軟件危機,2)軟件神話,2客戶神話 神話:有了目標系統(tǒng)的一般性描述就可以寫程序了,細節(jié)可以逐步完善。 現(xiàn)實:糟糕的系統(tǒng)定義是項目失敗的主要原因。關于問題域、功能、
8、行為、性能、接口、設計約束以及確認標準的形式化的、詳細的描述是必要的,這些內(nèi)容只能通過客戶與開發(fā)者之間的交流才能確定。 神話:軟件需求是經(jīng)常變更的,而這些變更可以容易的被滿足,因為軟件是靈活的。 現(xiàn)實:軟件需求確實是容易變更的,但變更的代價將隨軟件開發(fā)的進度不同而有很大的差異。如果重新項目早期的問題定義,需求變化則很容易被調(diào)節(jié),而項目后期需求變更的代價可能是致命的,一、軟件危機 2、軟件危機,2)軟件神話,3實踐者的神話 神話:軟件是藝術,軟件開發(fā)是個人的舞臺。 現(xiàn)實:50年代可能是,現(xiàn)在不是。 神話:一旦寫完了程序并能正常運行,我們的工作就結束了。 現(xiàn)實:越早開始寫代碼,軟件開發(fā)花費的時間就
9、越長。統(tǒng)計表明60%到80%的工作量是花在將軟件第一次交付給客戶以后發(fā)生的。 神話:程序真正運行以前,沒有辦法評估其質(zhì)量。 現(xiàn)實:高質(zhì)量的實現(xiàn)來自高質(zhì)量的設計。從項目一開始就必須進行技術評審。 神話:項目的成功來自于可運行程序的提交。軟件開發(fā)過程中的文檔是不必要的,延緩項目進度的東西。 現(xiàn)實:軟件項目的成果包含很多內(nèi)容,文檔是成功開發(fā)的基礎,也是軟件質(zhì)量的保證。好的開發(fā)質(zhì)量降低了重復勞動,從而提高了效率,導致更短的交付時間,一、軟件危機 2、軟件危機,3)軟件危機及主要表現(xiàn),軟件危機指在計算機軟件開發(fā)和維護過程中所遇到的一系列嚴重問題軟件開發(fā)不能滿足日益增長的需求;難以維護不斷增長的已有軟件,
10、1成本與進度的估計 2用戶需求與產(chǎn)品不一致 3軟件可靠性差 4可維護性差 5文檔資料不完整 6軟件成本比例不斷上升 7開發(fā)生產(chǎn)率相對停滯,一、軟件危機 2、軟件危機,3)軟件項目成敗的因素分析,1)失敗項目的主要原因 1用戶需求不完整、被誤解或經(jīng)常變化 2有限的用戶參與 3缺少行政支持 4缺少技術支持 5項目計劃不充分 6目標不明確 7沒有足夠的資源(客戶沒有提供/開發(fā)者不具備相應生產(chǎn)力,2)成功項目的主要原因 1大量的用戶參與 2上層管理人員的支持 3完整、詳細的項目計劃 4符合實際的工作進度與里程碑 5開發(fā)人員的培訓、交流 6良好的工作環(huán)境、團隊協(xié)作機制,一、軟件危機 2、軟件危機,3)消
11、除軟件危機的思路1正確的觀念,a)軟件不是程序 軟件是邏輯產(chǎn)品而不是實物產(chǎn)品 軟件的功能依賴于硬件和軟件的運行環(huán)境以及人們對它的操作 軟件特征: 功能的多樣性 實現(xiàn)的多樣性 能見度低 軟件結構合理性差 智力密集及知識產(chǎn)權保護 b)軟件開發(fā)不是個體勞動 軟件設計的復雜性,一、軟件危機 2、軟件危機,3)消除軟件危機的思路2正確的過程管理與控制,軟件開發(fā)技術:軟件開發(fā)方法 軟件開發(fā)過程 軟件工具和軟件工程環(huán)境 軟件工程管理:軟件管理 軟件經(jīng)濟 軟件心理,二、軟件工程 1、軟件工程 將工程管理思想引入軟件開發(fā)過程,轉變對軟件的認識: 上升 程序 系統(tǒng) 轉變思維定式: 上升 程序員 系統(tǒng)工程師 (系統(tǒng)
12、分析員) 工程化訓練,二、軟件工程 1、軟件工程 將工程管理思想引入軟件開發(fā)過程,用戶,分析員,程序員,一個好的工業(yè),應有一套良好的標準來配套,軟件的工業(yè)化生產(chǎn)過程應具備的特點: 明確的工作步驟 詳細具體的規(guī)范化文檔 明確的質(zhì)量評價標準,軟件產(chǎn)品的標準化,軟件開發(fā)過程的標準化,強調(diào)規(guī)范化 強調(diào)文檔化,軟件工程技術的兩個明顯特點,二、軟件工程 1、軟件工程 Fritz Bauer在NATO會議上給出的定義: “軟件工程是為了經(jīng)濟地獲得可靠的和能在實際機器上高效運行的軟件而確立和使用的健全的工程原理(方法)。,二、軟件工程 1、軟件工程 IEEE【IEE83】給出的軟件工程定義: “軟件工程是開發(fā)
13、、運行、維護和修復軟件的系統(tǒng)方法。,二、軟件工程 1、軟件工程 IEEE【IEE93】給出了一個更加綜合的定義: “將系統(tǒng)化的、規(guī)范的、可度量的方法應用于軟件的開發(fā)、運行和維護的過程,即將工程化應用于軟件中。,二、軟件工程 1、軟件工程 軟件工程是應用計算機科學、數(shù)學及管理科學等原理開發(fā)軟件的工程。它借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量,降低成本為目的,軟件工程所包含的內(nèi)容不是一成不變的,而是隨著人們對軟件系統(tǒng)的研制開發(fā)和生產(chǎn)的理解不斷發(fā)展變化,應該用發(fā)展的眼光看待,二、軟件工程 1、軟件工程,軟件工程是一種層次化的活動,a)質(zhì)量軟件工程的根基與目標 b)過程建造一個高質(zhì)量軟件所需完成任務的框
14、架 c)方法提供了如何建造軟件的技術手段 d)工具為過程和方法提供自動或半自動化的支持(CASE,工具,方法,過程,質(zhì)量焦點,二、軟件工程 2、軟件工程一般視圖,工程:對技術(或社會)實體的分析、設計、構造、驗證和管理。首先要問題的問題: 要解決什么問題? 實體的什么特征能解決這個問題? 如何設計該實體? 如何構建該實體? 如何控制和避免構建過程中的錯誤? 如何在用戶要求修改、適應和增強時長期地支持這些實體? 定義階段:做什么 開發(fā)階段:如何做 支持階段:應對變化,項目跟蹤與控制 技術評審 質(zhì)量保證 軟件配置管理,文檔管理 復用管理 測試管理 風險管理,支持活動,軟件工程框架,可,用,性,性,
15、性,確,正,合,算,選取適宜的開發(fā)模型,采用合適的設計方法,提供高質(zhì)量的工程支持,重視軟件工程的管理,基本過程,原則,目標,過,程,支 持 過 程,組 織 過 程,軟件過程評估,軟件能力成熟度CMM 1-初始級:沒有過程定義,個人能力。 2-可重復級:基本項目管理過程,跟蹤費用與進度,有必要的規(guī)范以重復類似項目的成功。 3-定義級:過程管理文檔化、標準化、集成化。使用統(tǒng)一的文檔化的組織過程認可的方法開發(fā)和維護軟件。 4-管理級:對軟件過程與產(chǎn)品質(zhì)量進行詳細地定量地收集與評估 5-優(yōu)化級:通過定量反饋不斷進行過程優(yōu)化與改進,二、軟件工程 3、軟件開發(fā)過程軟件生命周期 軟件產(chǎn)品或軟件系統(tǒng)從設計、投
16、入使用到被淘汰的全過程,軟件生存期的階段劃分,1)可行性研究與計劃 (2)需求分析 (3)總體設計 (4)詳細設計 (5)實現(xiàn) (6)集成測試 (7)確認測試 (8)使用和維護,二、軟件工程 3、軟件開發(fā)過程軟件開發(fā)模型 軟件開發(fā)模型是軟件開發(fā)全部過程、活動和任務的結構框架。它能直觀表達軟件開發(fā)全過程,明確規(guī)定要完成的主要活動、任務和開發(fā)策略。 軟件開發(fā)模型也常稱為: 軟件過程模型 軟件生存期模型 軟件工程范型,二、軟件工程 2、軟件開發(fā)過程瀑布模型,可行性研究與計劃,需求分析,設計,編碼,運行維護,測試,定義 階段,開 發(fā) 階 段,維護階段,按照傳統(tǒng)瀑布模型開發(fā)軟件的特點,1.階段間具有順序
17、性和依賴性。 2.推遲實現(xiàn)的觀點。 3.每個階段必須完成規(guī)定的文檔; 每個階段結束前完成文檔審查, 及早改正錯誤,二、軟件工程 2、軟件開發(fā)過程原型模型,建造/修改 原型,用戶測試 運行原型,聽取用 戶意見,采用原型模型的軟件生存周期,分析定義 系統(tǒng)需求,生成 原型,系統(tǒng) 設計,程序 設計,編碼,測試,運 行 和維護,原型化,含原型化的 軟件生存期,二、軟件工程 2、軟件開發(fā)過程增量模型 先完成一個系統(tǒng)子集的開發(fā),再按同樣的開發(fā)步驟增加功能 (系統(tǒng)子集),如此遞增下去直至滿足全部系統(tǒng)需求。 系統(tǒng)的總體設計在初始子集設計階段就應作出設想,分析,增量模型,設計,編碼,測試,分析,設計,編碼,測試,分析,設計,編碼,測試,分析,設計,編碼,測試,增量1,增量2,增量3,增量n,增量1 交付客戶,增量2 交付客戶,增量3 交付客戶,增量n 交付客戶
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年糧食加工設備合作協(xié)議書
- 2025年防殺病毒軟件合作協(xié)議書
- 外研版新教材七年級上冊英語重點單詞短語默寫紙
- 2025年胃腸解痙藥合作協(xié)議書
- 2025年事業(yè)單位臨時工勞動合同樣本(三篇)
- 2025年中國房屋租賃合同(2篇)
- 2025年產(chǎn)品外協(xié)加工合同范文(2篇)
- 2025年互聯(lián)網(wǎng)辦稅軟件服務協(xié)議范文(2篇)
- 2025年交通事故死亡賠償協(xié)議范文(2篇)
- 山西省2024七年級道德與法治上冊第四單元追求美好人生第十三課實現(xiàn)人生價值情境基礎小練新人教版
- 2025年上半年山東氣象局應屆高校畢業(yè)生招考易考易錯模擬試題(共500題)試卷后附參考答案
- 第二單元 主題活動三《世界那么大我想去看看》(說課稿)-2023-2024學年六年級下冊綜合實踐活動內(nèi)蒙古版
- 人教版2024-2025學年八年級上學期數(shù)學期末壓軸題練習
- 【人教版化學】必修1 知識點默寫小紙條(答案背誦版)
- 江蘇省無錫市2023-2024學年八年級上學期期末數(shù)學試題(原卷版)
- 幼兒園防四害安全教育
- 全國第三屆職業(yè)技能大賽(無人機駕駛(植保)項目)選拔賽理論考試題庫(含答案)
- 《奧特萊斯業(yè)態(tài)淺析》課件
- 2022年湖南省公務員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 國家安全教育課程教學大綱分享
評論
0/150
提交評論