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