軟件開發(fā)生命周期ppt課件_第1頁
軟件開發(fā)生命周期ppt課件_第2頁
軟件開發(fā)生命周期ppt課件_第3頁
軟件開發(fā)生命周期ppt課件_第4頁
軟件開發(fā)生命周期ppt課件_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.,1,軟件開發(fā)生命周期,.,2,第一章軟件工程概述,章節(jié)目標了解什么是軟件了解什么是軟件工程理解軟件工程為什么很重要學習軟件工程的意義,Unit標題,.,3,什么是軟件?,軟件是程序和所有使程序正確運行所需要的相關(guān)文檔和配置信息。軟件產(chǎn)品有以下兩類:通用軟件產(chǎn)品如:操作系統(tǒng)、多媒體、word、PowerPoint等。定制軟件產(chǎn)品如:模擬訓(xùn)練、數(shù)據(jù)管理、輔助決策、人工智能等各個領(lǐng)域。,第一章軟件工程概述,.,4,什么是軟件工程?,軟件工程是將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運行和維護的過程,即將工程化應(yīng)用于軟件中。軟件工程還包括上述方法的研究。1962年,第一個金星探測器水手1號偏離航線失敗。原因:導(dǎo)航程序一個語句語義錯誤Apollo8存儲器信息丟失;11號運行10天18個軟件錯誤。規(guī)模相對較??;崇尚個人技巧技藝缺乏有效方法與軟件工具支持不重視開發(fā)過程的管理維護困難(編寫1條匯編語句=研制2個硬件邏輯門;維護1匯編語句條=修理4個硬件邏輯門)1968年NATO(北大西洋公約組織)會議:softwarecrisis,softwareengineering.,第一章軟件工程概述,.,5,第一章軟件工程概述,二、什么是軟件工程?,軟件工程中的分層,.,6,第一章軟件工程概述,二、什么是軟件工程?,如果不考慮應(yīng)用領(lǐng)域、項目規(guī)模和復(fù)雜性,與軟件工程相關(guān)的工作可分為三個一般的階段:.定義階段集中于“做什么”.開發(fā)階段集中于“如何做”.維護階段集中于“改變”,軟件工程的一般視圖,.,7,第一章軟件工程概述,二、什么是軟件工程?,.軟件項目追蹤和控制.正式的技術(shù)評審.軟件質(zhì)量保證.軟件配置管理.文檔的準備和產(chǎn)生.可復(fù)用管理.度量.風險管理,典型的保護性活動,.,8,第一章軟件工程概述,為什么需要那么長時間才能結(jié)束開發(fā)?為什么成本如此之高?為什么我們不能在把軟件交給客戶之前就發(fā)現(xiàn)所有的錯誤?為什么在軟件開發(fā)過程中我們難以度量其進展?,理解軟件工程為什么很重要,.,9,第一章軟件工程概述,二、什么是軟件工程?,邏輯產(chǎn)品而不是實物其功能依賴于人的操作和相關(guān)硬件而體現(xiàn)對軟件產(chǎn)品的要求比一般有形產(chǎn)品來的復(fù)雜100萬匯編語句,1萬子功能,每功能2個實現(xiàn),則210000=103000組合!Hetgel負責軟件研制工程時候:幾個人)時候,認為關(guān)鍵是方法學問題:50人時候,文檔越來越重要200人:關(guān)鍵是管理問題。復(fù)雜性:功能多樣性,實現(xiàn)多樣性,能見度低,結(jié)構(gòu)合理性差其“資金密集程度”中包含更多的人的成分(即“智力密集”),軟件工程與一般工程的差異,.,10,第一章軟件工程概述,軟件銷售收入比較圖,三、理解軟件工程為什么很重要,.,11,學習軟件工程是大勢所趨,第一章軟件工程概述,世界上唯一不變的東西就是變化。拒絕改變的人將永遠也找不回他的奶酪!人對不了解的東西會產(chǎn)生抵觸。他因為害怕而拒絕改變!誰動了我的奶酪?,.,12,習題和答案,1什么是軟件危機?為什么會產(chǎn)生軟件危機?怎樣克服軟件危機?解:研制軟件系統(tǒng)需要投入大量的人力和物力,但系統(tǒng)的質(zhì)量卻難以保證,也就是說,開發(fā)軟件所需的高成本同產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象就是所謂的“軟件危機”。產(chǎn)生軟件危機的原因:用戶對軟件需求的描述不精確,可能有遺漏、有二義性、有錯誤,甚至在軟件開發(fā)過程中,用戶還提出修改軟件功能、界面、支撐環(huán)境等方面的要求。軟件開發(fā)人員對用戶需求的理解與用戶的本來愿望有差異,導(dǎo)致開發(fā)出來的軟件產(chǎn)品與用戶要求不一致。大型軟件項目需要組織一定的人力共同完成,多數(shù)管理人員缺乏開發(fā)大型軟件系統(tǒng)的經(jīng)驗。各類人員的信息交流不及時、不準確、有時還會產(chǎn)生誤解。軟件項目開發(fā)人員不能有效地、獨立自主地處理大型軟件的全部關(guān)系和各個分支,因此容易產(chǎn)生疏漏和錯誤。缺乏有利的方法學和工具方面的支持,過分的依靠程序設(shè)計人員在軟件開發(fā)過程中的技巧和創(chuàng)造性,加劇軟件產(chǎn)品的個性化。軟件產(chǎn)品的特殊性和人類智力的局限性,導(dǎo)致人們無力處理“復(fù)雜問題”。要克服軟件危機,就要認真分析軟件危機的原因,探索用工程的方法進行軟件生產(chǎn)的可能性,即用現(xiàn)代工程的概念、原理、技術(shù)和方法進行計算機軟件的開發(fā)、管理、維護和更新。2.什么叫軟件工程?軟件工程的誕生是否從根本上消除了軟件危機?為什么?解:軟件工程是用工程、科學和數(shù)學的原則與方法研制、維護計算機軟件的有關(guān)技術(shù)及管理方法。軟件工程的誕生只能大大減少軟件開發(fā)成本并提高軟件質(zhì)量,不能從根本上消除軟件危機。3軟件生存周期為什么要劃分階段?各個階段的任務(wù)是什么?解:軟件也是一種產(chǎn)品,同樣存在生存周期。把軟件生存周期劃分為幾個階段后,軟件開發(fā)按照每個階段的基本任務(wù)進行并產(chǎn)生相應(yīng)的工作結(jié)果,這樣有利于對軟件開發(fā)過程進行管理,有利于提高軟件產(chǎn)品質(zhì)量??尚行匝芯颗c計劃階段的基本任務(wù):研究開發(fā)該項目的可行性。需求分析階段的基本任務(wù):理解和表達用戶的要求。設(shè)計階段的基本任務(wù):建立系統(tǒng)的結(jié)構(gòu)。編程階段的基本任務(wù):編寫程序。測試階段的基本任務(wù):發(fā)現(xiàn)錯誤和排除錯誤。4什么是軟件?如何評價軟件的質(zhì)量?解:軟件是程序以及開發(fā)、使用和維護程序所需的所有文檔。軟件質(zhì)量從可維護性、可靠性、可理解性和效率等方面對軟件作較全面的評價。,.,13,傳統(tǒng)軟件工程概論,一般問題的工程設(shè)計過程問題闡述問題分析(設(shè)計細節(jié))尋找解法判定最佳解法設(shè)計規(guī)約(規(guī)格說明、報告)實現(xiàn),.,14,程序設(shè)計方法回顧,結(jié)構(gòu)化程序設(shè)計(SP)三種基本結(jié)構(gòu):順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)(迭代)原則:只有上面三種結(jié)構(gòu)自底向上,逐步抽象,最終形成一個函數(shù)型節(jié)點每個節(jié)點只有一個出口和一個入口其他:注意風格:注視和縮進等,.,15,程序設(shè)計方法回顧,程序正確性證明?調(diào)試能證明嗎?調(diào)試(debugging)的三個概念:測試testingUnittesting,integrationtesting,acceptancetesting確認validation(開發(fā)結(jié)束時進行的評價)驗證verification(開發(fā)過程中某階段是否到達前一階段確定要求的活動),.,16,程序設(shè)計方法回顧,模塊化與信息隱蔽模塊化:自頂向下,逐步細化模塊直接的接口應(yīng)盡可能簡明模塊之間盡可能彼此隔離要求:可修改性易讀性以驗證性,.,17,程序設(shè)計方法回顧,內(nèi)聚度cohesion:模塊所執(zhí)行的任務(wù)在功能上互相關(guān)聯(lián)的程度巧合內(nèi)聚coincidentcohesionLogicalcohesionTemporalcohesionProcedurecohesionCommunicationalcohesionSequentialcohesionFunctionalcohesion,.,18,程序設(shè)計方法回顧,耦合度coupling:模塊之間相互依賴的程度非直接nondirect耦合數(shù)據(jù)data耦合(參數(shù))標記stamp耦合控制control耦合(控制語句)外部external耦合公用common耦合內(nèi)容content耦合,.,19,程序設(shè)計方法回顧,扇入fanin模塊直接隸屬的模塊個數(shù):一個模塊被其他模塊調(diào)用的個數(shù),稱為該模塊的扇入。扇入大些,一般不會影響問題的復(fù)雜性,而且扇入越大,說明該模塊的復(fù)用性越好扇出fanout:直接下屬的模塊個數(shù)一個模塊調(diào)用其他模塊的個數(shù),稱為該模塊的扇出。扇出越大,設(shè)計該模塊時需要考慮的問題就越多,因而復(fù)雜性越高。,.,20,程序設(shè)計方法回顧,原則:高內(nèi)聚度、低耦合度一般中等內(nèi)聚即可(功能性最理想)盡量不采用控制耦合(不使用goto語句),限制使用外部、公共、內(nèi)容耦合扇出越多,模塊間邏輯關(guān)系越復(fù)雜。應(yīng)控制在7+-2扇入越多,模塊可復(fù)用性越強(但可能產(chǎn)生低內(nèi)聚)模塊大?。?0句以上,程序員對其的理解力迅速下降;50-100句,開發(fā)成本迅速上升。,.,21,軟件工程的成本,開發(fā)成本分布,描述設(shè)計開發(fā)集成和測試,0255075100,其中集成和測試最高,40%50%另外,軟件投入使用后,其變更和更新也需要成本。對許多使用期限長的軟件而言,該成本往往高達開發(fā)成本的34倍!,.,22,什么是CASE,計算機輔助軟件工程ComputerAidedSoftwareEngineering分類:高端CASE:支持軟件過程的早期階段,如分析和設(shè)計低端CASE:支持實現(xiàn)和測試,如調(diào)試器,程序分析系統(tǒng),測試用例生成器和程序編輯器等。,.,23,優(yōu)良軟件屬性,可維護性:不斷進化,滿足用戶需求變化;可依賴型:可靠性、安全性、保密性等,以及失敗時不造成傷亡和損失。有效性:不浪費內(nèi)存和系統(tǒng)資源等可用性:用戶不需特殊努力即可操作。,.,24,軟件工程面臨的問題,遺留系統(tǒng)的挑戰(zhàn)多樣性的挑戰(zhàn)交付上的挑戰(zhàn)(在不損及質(zhì)量的情況下,縮短移交時間),.,25

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論