第1章-軟件工程基礎(chǔ)課件_第1頁
第1章-軟件工程基礎(chǔ)課件_第2頁
第1章-軟件工程基礎(chǔ)課件_第3頁
第1章-軟件工程基礎(chǔ)課件_第4頁
第1章-軟件工程基礎(chǔ)課件_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章軟件工程(ruǎnjiànɡōnɡchénɡ)根底第一頁,共六十三頁。主要(zhǔyào)內(nèi)容計(jì)算機(jī)系統(tǒng)工程軟件工程(ruǎnjiànɡōnɡchénɡ)

軟件生存期模型軟件開發(fā)方法軟件工程環(huán)境第二頁,共六十三頁。軟件(ruǎnjiàn)與計(jì)算機(jī)的系統(tǒng)要素之間的關(guān)系大多數(shù)軟件系統(tǒng)都是為了開發(fā)滿足某種需求而建立。這些軟件必須要計(jì)算機(jī)系統(tǒng)的支持。不管系統(tǒng)的自動化程度有多高,都需要人的參與。任何系統(tǒng)都必須配備使用手冊及必要的表格和其他文檔。在網(wǎng)絡(luò)(wǎngluò)時(shí)代的應(yīng)用系統(tǒng)中,絕大多數(shù)應(yīng)用系統(tǒng)都離不開數(shù)據(jù)庫和網(wǎng)絡(luò)(wǎngluò)這樣的根底設(shè)施。如圖1.1所示。第三頁,共六十三頁。過程(guòchéng)輸出(shūchū)輸入(shūrù)文檔硬件軟件人系統(tǒng)數(shù)據(jù)庫、網(wǎng)絡(luò)圖1.1基于計(jì)算機(jī)的系統(tǒng)要素

第四頁,共六十三頁。1.1計(jì)算機(jī)系統(tǒng)工程

計(jì)算機(jī)系統(tǒng)工程:與構(gòu)造基于計(jì)算機(jī)系統(tǒng)有關(guān)的過程、方法和技術(shù)。一種問題求解活動,目的是揭示與分析所期望的功能(gōngnéng),并把這些功能(gōngnéng)分配到系統(tǒng)的各個獨(dú)立系統(tǒng)元素中去。

計(jì)算機(jī)系統(tǒng)工程師與用戶充分合作,以確認(rèn)用戶的目標(biāo)與約束。第五頁,共六十三頁。1.1.1硬件(yìnɡjiàn)與硬件(yìnɡjiàn)工程

計(jì)算機(jī)系統(tǒng)工程師根據(jù)系統(tǒng)需求為硬件系統(tǒng)指派任務(wù),產(chǎn)生硬件需求。硬件工程師根據(jù)硬件需求設(shè)計(jì)、制造或選擇硬部件或設(shè)備。硬件工程過程分為三個階段,即方案和定義階段;設(shè)計(jì)和樣機(jī)實(shí)現(xiàn)(shíxiàn)階段;生產(chǎn)、銷售和售后效勞階段。第六頁,共六十三頁。硬件功能開發(fā)計(jì)劃評審詳細(xì)需求分析評審成本進(jìn)度硬件規(guī)格說明(a)方案(fāngàn)與定義階段該階段的任務(wù)是制訂開發(fā)方案,確定工程本錢預(yù)算和工程進(jìn)度,并進(jìn)行詳細(xì)需求分析(fēnxī),確定硬件規(guī)格說明。第七頁,共六十三頁。設(shè)計(jì)(shèjì)圖紙?jiān)O(shè)計(jì)(shèjì)圖紙樣機(jī)(yànɡjī)設(shè)計(jì)分析評審建立樣機(jī)與測試評審生產(chǎn)分析(b)設(shè)計(jì)與樣機(jī)實(shí)現(xiàn)階段

該階段的任務(wù)是分析設(shè)計(jì),畫出設(shè)計(jì)圖,必要時(shí)建造原型對樣機(jī)進(jìn)行測試,最后進(jìn)行制造分析,畫出生產(chǎn)圖。第八頁,共六十三頁。產(chǎn)品(chǎnpǐn)備件(bèijiàn)制造質(zhì)量保證銷售評審返工維護(hù)機(jī)構(gòu)(c)制造、銷售與售后效勞(xiàoláo)階段該階段的任務(wù)是按照質(zhì)量保證方案和要求生產(chǎn)硬件產(chǎn)品。第九頁,共六十三頁。1.1.2軟件(ruǎnjiàn)與軟件(ruǎnjiàn)工程

計(jì)算機(jī)軟件(ruǎnjiàn):軟件(ruǎnjiàn)工程師設(shè)計(jì)和建造的產(chǎn)品。包括:可執(zhí)行的程序+開發(fā)各階段文檔+各種數(shù)據(jù)。軟件工程是研究軟件生產(chǎn)和軟件管理的工程科學(xué)。內(nèi)容包括:市場調(diào)研、正式立項(xiàng)、需求分析、工程籌劃、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、測試、試運(yùn)行、產(chǎn)品發(fā)布、用戶培訓(xùn)、產(chǎn)品復(fù)制、銷售、實(shí)施、系統(tǒng)維護(hù)和版本升級等。軟件工程模型一般包括:軟件工程的定義階段、軟件開發(fā)階段、軟件的檢驗(yàn)、交付與維護(hù)階段。第十頁,共六十三頁。原型(yuánxíng)(a)定義(dìngyì)階段軟件項(xiàng)目計(jì)劃評審需求分析或原型評審項(xiàng)目計(jì)劃需求規(guī)格說明軟件功能第十一頁,共六十三頁。原型(yuánxíng)數(shù)據(jù)與結(jié)構(gòu)設(shè)計(jì)評審過程設(shè)計(jì)評審程序編碼評審詳細(xì)設(shè)計(jì)規(guī)格說明概要設(shè)計(jì)規(guī)格說明源程序代碼(b)開發(fā)階段第十二頁,共六十三頁。操作(cāozuò)過程(c)檢驗(yàn)(jiǎnyàn)、交付與維護(hù)階段〔運(yùn)行維護(hù)階段〕單元測試組裝測試確認(rèn)測試調(diào)試交付與銷售評審維護(hù)評審用戶文檔測試計(jì)劃測試過程測試結(jié)果修改的源程序代碼因缺陷可能導(dǎo)致返回到前面步驟修改的文檔代碼第十三頁,共六十三頁。1.1.3人機(jī)工程

關(guān)鍵是處理軟件與人的交互問題?,F(xiàn)在“人機(jī)界面友好〞的要求,已成為基于計(jì)算機(jī)系統(tǒng)的一項(xiàng)重要技術(shù)指標(biāo)。人機(jī)工程包括以下步驟:1.創(chuàng)立系統(tǒng)功能的外部模型2.確定為完成此系統(tǒng)功能人和計(jì)算機(jī)應(yīng)分別完成的任務(wù)3.考慮界面設(shè)計(jì)中的典型問題4.借助CASE工具構(gòu)造界面原型和最終(zuìzhōnɡ)實(shí)現(xiàn)設(shè)計(jì)模型5.從質(zhì)量的角度對界面進(jìn)行評估第十四頁,共六十三頁。1.1.4數(shù)據(jù)庫工程(gōngchéng)

數(shù)據(jù)庫系統(tǒng)是基于計(jì)算機(jī)系統(tǒng)的重要組成局部(júbù),它將有關(guān)的硬件、軟件、數(shù)據(jù)和數(shù)據(jù)庫管理人員結(jié)合起來,為用戶提供信息效勞。數(shù)據(jù)庫系統(tǒng)的開發(fā)方法主要有:結(jié)構(gòu)化生命周期開發(fā)方法、原型法、面向?qū)ο蟮拈_發(fā)方法等。第十五頁,共六十三頁。數(shù)據(jù)庫工程(gōngchéng)的任務(wù)數(shù)據(jù)庫工程應(yīng)完成以下任務(wù):1.確定系統(tǒng)的各項(xiàng)指標(biāo)并進(jìn)行(jìnxíng)評估和方案制定2.論證、選擇和配置數(shù)據(jù)庫系統(tǒng)3.數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)概念設(shè)計(jì)〔E-R圖〕、邏輯設(shè)計(jì)、物理設(shè)計(jì)4.數(shù)據(jù)庫的管理與維護(hù)第十六頁,共六十三頁。1.1.5網(wǎng)絡(luò)工程

網(wǎng)絡(luò)工程是研究網(wǎng)絡(luò)系統(tǒng)的規(guī)劃、設(shè)計(jì)與管理的工程科學(xué),要求工程技術(shù)人員根據(jù)既定的目標(biāo),嚴(yán)格依照行業(yè)標(biāo)準(zhǔn),制定(zhìdìng)網(wǎng)絡(luò)建設(shè)的方案,協(xié)助工程招投標(biāo)、設(shè)計(jì)、實(shí)施、管理與維護(hù)等活動。第十七頁,共六十三頁。網(wǎng)絡(luò)工程的任務(wù)(rènwu)網(wǎng)絡(luò)工程應(yīng)該完成以下任務(wù):1.需求分析。2.總體設(shè)計(jì)分析,確定該網(wǎng)絡(luò)的效勞(xiàoláo)類型,進(jìn)而確定系統(tǒng)建設(shè)的具體目標(biāo)以及系統(tǒng)構(gòu)件拓?fù)浣Y(jié)構(gòu)等。3.實(shí)施,即選擇適宜的設(shè)備,按設(shè)計(jì)方案實(shí)現(xiàn)網(wǎng)絡(luò)建設(shè)。4.驗(yàn)收與維護(hù)。第十八頁,共六十三頁。1.2軟件工程(ruǎnjiànɡōnɡchénɡ)

1.2.1軟件1.軟件定義(1)在運(yùn)行中能提供所希望的功能和性能的指令集〔即程序〕;(2)

使程序能夠正確運(yùn)行的數(shù)據(jù)結(jié)構(gòu);(3)描述(miáoshù)程序研制過程、方法所用的文檔。第十九頁,共六十三頁。2.軟件(ruǎnjiàn)的特點(diǎn)

軟件是一種邏輯實(shí)體,不是具體的物理實(shí)體,具有抽象性。

軟件是通過人們的智力活動,把知識與技術(shù)轉(zhuǎn)化成信息的一種產(chǎn)品,是在研制、開發(fā)中被創(chuàng)造出來的。

在軟件的運(yùn)行和使用期間,沒有硬件那樣的機(jī)械磨損(mósǔn)、老化問題。

第二十頁,共六十三頁。軟件存在故障(gùzhàng)〔錯誤〕的原因軟件(ruǎnjiàn)的開發(fā)和運(yùn)行經(jīng)常受到計(jì)算機(jī)硬件系統(tǒng)的限制,軟件(ruǎnjiàn)對計(jì)算機(jī)硬件系統(tǒng)有著不同程度的依賴關(guān)系。軟件的開發(fā)尚未完全擺脫手工的開發(fā)方式。軟件的開發(fā)費(fèi)用越來越高,本錢相當(dāng)昂貴。軟件的開發(fā)是一個復(fù)雜的過程,管理是軟件開發(fā)過程中必不可少內(nèi)容。第二十一頁,共六十三頁。1.2.2軟件工程(ruǎnjiànɡōnɡchénɡ)的概念

軟件開展的四個階段1950’s~1960’s中:規(guī)模較小的程序,個體化的軟件開發(fā),只有程序清單?!绦蛟O(shè)計(jì)階段1960’s中~1970’中:“軟件作坊〞,廣泛使用產(chǎn)品軟件?!绦蛳到y(tǒng)階段1970’中~1980’s:微處理器的出現(xiàn)并廣泛應(yīng)用。分布式系統(tǒng)、嵌入智能?!M(jìn)入軟件工程階段1980’s~:網(wǎng)絡(luò)迅速普及,強(qiáng)大的桌面系統(tǒng)、面向?qū)ο蠹夹g(shù)、專家系統(tǒng)、人工智能、神經(jīng)網(wǎng)絡(luò)、并行計(jì)算、網(wǎng)格計(jì)算、虛擬(xūnǐ)組織。第二十二頁,共六十三頁。軟件開展(kāizhǎn)過程中存在的問題軟件開發(fā)能力不能滿足人們的需要;社會對軟件的依賴程度加大,人們普遍關(guān)注軟件的平安和可靠性;假設(shè)干年前開發(fā)的應(yīng)用軟件經(jīng)過(jīngguò)幾十次修改已無人認(rèn)識它的內(nèi)部結(jié)構(gòu),己經(jīng)不可維護(hù);由于經(jīng)濟(jì)原因,嵌入式系統(tǒng)存在許多怪現(xiàn)象,企業(yè)不愿意投入資源再生產(chǎn),而采取打補(bǔ)丁+時(shí)髦界面的方法。第二十三頁,共六十三頁。1.軟件(ruǎnjiàn)危機(jī)

軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。典型表現(xiàn):開發(fā)本錢和進(jìn)度(jìndù)的估計(jì)常常很不準(zhǔn)確;用戶對“已完成的〞軟件系統(tǒng)不滿意;“閉門造車〞;軟件質(zhì)量不可靠;軟件常常是不可維護(hù)的;軟件本錢的比例逐年上升;軟件產(chǎn)品“供不應(yīng)求〞;第二十四頁,共六十三頁。第二十五頁,共六十三頁。2.消除(xiāochú)軟件危機(jī)的途徑消除“軟件就是程序〞的錯誤觀念。一個軟件必須由一個完整的配置組成,事實(shí)上,軟件是程序、數(shù)據(jù)及相關(guān)文檔的完整集合。軟件開發(fā)不是某種個體勞動的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合(pèihé)、共同完成的工程工程。成功的軟件開發(fā)技術(shù)和方法。軟件工具和軟件工程支撐環(huán)境。第二十六頁,共六十三頁。3.軟件工程(ruǎnjiànɡōnɡchénɡ)的定義

1968年在聯(lián)邦德國召開的計(jì)算機(jī)國際會議NATO軟件危機(jī)根源解決途徑軟件工程“概括地說,軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科。采用工程的概念、原理、技術(shù)和方法(fāngfǎ)來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法(fāngfǎ)結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。〞第二十七頁,共六十三頁。4.軟件工程(ruǎnjiànɡōnɡchénɡ)的目標(biāo)

軟件工程的目標(biāo)是明確的,就是研制、開發(fā)與生產(chǎn)出具有良好軟件質(zhì)量和費(fèi)用合算的產(chǎn)品。采用工程化方法和途徑(tújìng)來開發(fā)與維護(hù)軟件。

應(yīng)該開發(fā)和使用更好的軟件工具。

采取必要的管理措施。

第二十八頁,共六十三頁。5.軟件工程的根本(gēnběn)原那么用分階段的生命周期方案嚴(yán)格管理堅(jiān)持進(jìn)行階段評審錯誤出現(xiàn)的時(shí)間:在編代碼之前〔設(shè)計(jì)錯誤占63%:編碼占37%〕改正錯誤的代價(jià):發(fā)現(xiàn)得越晚,開發(fā)(kāifā)代價(jià)越高實(shí)行嚴(yán)格的產(chǎn)品控制基線配置〔經(jīng)階段評審后的軟件配置〕、變動控制〔要嚴(yán)格評審才能修改〕采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開發(fā)小組的人員應(yīng)該少而精成認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性第二十九頁,共六十三頁。6.軟件工程研究的根本(gēnběn)內(nèi)容軟件工程學(xué)分為:理論與結(jié)構(gòu)、方法、工具與環(huán)境、管理和標(biāo)準(zhǔn)(biāozhǔn)等。理論與結(jié)構(gòu)包括:程序正確性證明理論、軟件可靠性理論、軟件本錢估算模型、軟件開發(fā)模型、模塊劃分原理等。軟件開發(fā)技術(shù)包括:軟件開發(fā)方法學(xué)、軟件工具和軟件開發(fā)環(huán)境。軟件工程管理包括:軟件開發(fā)管理和軟件經(jīng)濟(jì)管理。第三十頁,共六十三頁。1.2.3軟件(ruǎnjiàn)生命周期

軟件生存周期就是從提出軟件產(chǎn)品開始,直到該軟件產(chǎn)品被淘汰的全過程。我國軟件工程(ruǎnjiànɡōnɡchénɡ)標(biāo)準(zhǔn)將軟件生命周期分成以下幾個階段:軟件定義:確定軟件開發(fā)總目標(biāo);確定工程的可行性;導(dǎo)出實(shí)現(xiàn)策略及系統(tǒng)功能;估計(jì)資源和本錢,并且制定工程進(jìn)度表。問題定義、可行性研究、需求分析軟件開發(fā):具體設(shè)計(jì)和實(shí)現(xiàn)在前一個時(shí)期定義的軟件總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測試、綜合測試軟件維護(hù):使軟件持久地滿足用戶的需要。第三十一頁,共六十三頁。軟件(ruǎnjiàn)生命周期(續(xù)1)1.問題定義“要解決的問題是什么?〞確定用戶要求解決的性質(zhì)、工程的目標(biāo)和規(guī)模。2.可行性研究“對于上一個階段所確定的問題有行得通的解決方法嗎?〞經(jīng)濟(jì)可行性、技術(shù)可行性、法律可行性、不同的方案3.需求分析“為了解決這個問題,目標(biāo)系統(tǒng)必須做什么〞確定系統(tǒng)必須具有的功能和性能,系統(tǒng)要求的運(yùn)行(yùnxíng)環(huán)境,并且預(yù)測系統(tǒng)開展的前景。規(guī)格說明書(specification)第三十二頁,共六十三頁。軟件(ruǎnjiàn)生命周期(續(xù)2)4.總體設(shè)計(jì)〔概要設(shè)計(jì)〕“概括地說,應(yīng)該怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?〞設(shè)計(jì)出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案。推薦一個最正確方案。5.詳細(xì)設(shè)計(jì)“應(yīng)該怎樣具體地實(shí)現(xiàn)這個系統(tǒng)呢?〞設(shè)計(jì)出程序的詳細(xì)規(guī)格說明。6.編碼和單元測試寫出正確的容易理解、容易維護(hù)的程序模塊仔細(xì)測試編寫出的每一個模塊(mókuài)。7.綜合測試集成測試和驗(yàn)收測試,現(xiàn)場測試或平行運(yùn)行8.軟件維護(hù)使系統(tǒng)持久地滿足用戶的需要。改正性維護(hù),適應(yīng)性維護(hù),完善性維護(hù),預(yù)防性維護(hù)。第三十三頁,共六十三頁。1.3軟件(ruǎnjiàn)生存期模型

軟件生存期模型反映軟件生存周期內(nèi)各種工作應(yīng)如何組織及,以及各個階段應(yīng)如何銜接。軟件生存期模型是跨越整個軟件生存周期的系統(tǒng)開發(fā)、運(yùn)作、維護(hù)所實(shí)施的全部工作和任務(wù)(rènwu)的結(jié)構(gòu)框架。

常用的軟件生存期模型有:瀑布模型、原型模型、螺旋模型、基于四代技術(shù)模型、噴泉模型和增量模型。第三十四頁,共六十三頁。1.3.2瀑布(pùbù)模型

(Waterfallmodel)瀑布模型(móxíng)又稱生存周期模型(móxíng),由B.M.Boehm提出,是軟件工程的根底模型(móxíng)。理想的瀑布(pùbù)模型實(shí)際的瀑布模型第三十五頁,共六十三頁。瀑布模型(móxíng)的特點(diǎn)階段間具有順序性和依賴性各個階段如同瀑布流水,逐級下落,自上而下、相互銜接的固定次序。

推遲實(shí)現(xiàn)的觀點(diǎn)(guāndiǎn)清楚地區(qū)分邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn)。質(zhì)量保證的觀點(diǎn)(文檔驅(qū)動)每個階段都必須完成規(guī)定的文檔每個階段結(jié)束前都要對所完成的文檔進(jìn)行評審第三十六頁,共六十三頁。瀑布模型(móxíng)的缺點(diǎn)模型(móxíng)缺乏靈活性。開發(fā)過程一般不能逆轉(zhuǎn),否那么代價(jià)太大規(guī)格說明很難理解:“我知道這是按我的要求做的,但不是我想要的樣子。〞軟件的實(shí)際情況必須到工程開發(fā)的后期客戶才能看到。〔文檔驅(qū)動的兩面性〕第三十七頁,共六十三頁。1.3.3快速(kuàisù)原型模型快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序(chéngxù),它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個子集。用戶測試運(yùn)行原型建造/修改原型聽取用戶意見第三十八頁,共六十三頁。1.快速原型模型(móxíng)的優(yōu)點(diǎn)快速原型的本質(zhì)是“快速〞,主要幫助建立正確的規(guī)格說明(shuōmíng)。原型模型給用戶以時(shí)機(jī),更改心中原先設(shè)想的、不盡合理的最終系統(tǒng)。原型模型可以低風(fēng)險(xiǎn)開發(fā)柔性較大的計(jì)算機(jī)系統(tǒng)。原型模型使系統(tǒng)更易維護(hù),生成對用戶更友好的最終系統(tǒng)。原型模型使總的開發(fā)費(fèi)用降低,開發(fā)時(shí)間縮短。有利于開發(fā)與培訓(xùn)的同步第三十九頁,共六十三頁。2.缺點(diǎn)(quēdiǎn)

對于開發(fā)者不熟悉的領(lǐng)域,可能會把次要局部當(dāng)作主要(zhǔyào)框架,從而做出不切題的原型。原型迭代不收斂于開發(fā)者預(yù)先定義的目標(biāo)。原型過快收斂于需求集合,而忽略了一些根本點(diǎn)。資源規(guī)劃和管理較為困難,隨時(shí)更新文檔也帶來麻煩。長期在原型環(huán)境上開發(fā),只注意得到滿意的原型,容易“遺忘〞用戶環(huán)境和原型環(huán)境的差異。第四十頁,共六十三頁。3.原型模型的應(yīng)用(yìngyòng)范圍對所開發(fā)的領(lǐng)域比較熟悉而且有快速的原型開發(fā)工具工程招投標(biāo)時(shí),可以以原型模型作為軟件的開發(fā)模型進(jìn)行(jìnxíng)產(chǎn)品移植或升級時(shí),或?qū)σ延挟a(chǎn)品原型進(jìn)行(jìnxíng)客戶化工作時(shí),原型模型是非常適合的原型模型不適用嵌入式軟件、實(shí)時(shí)控制軟件、數(shù)值計(jì)算軟件比較瀑布模型—試圖一次就獲得正確的產(chǎn)品快速原型—頻繁變化,然后廢棄第四十一頁,共六十三頁。1.3.4螺旋(luóxuán)模型

1988年,BarryBoehm正式發(fā)表了軟件系統(tǒng)開發(fā)的“螺旋模型〞,它將瀑布模型和快速原型模型結(jié)合起來,強(qiáng)調(diào)了其他模型所無視的風(fēng)險(xiǎn)分析。該模型通常用來指導(dǎo)大型軟件工程的開發(fā),它將開發(fā)劃分為制訂方案、風(fēng)險(xiǎn)分析、實(shí)施開發(fā)和客戶評估四類活動。簡化版本:瀑布模型+風(fēng)險(xiǎn)分析每個階段之前確定目標(biāo),可供選擇的方法(fāngfǎ)及其限制條件風(fēng)險(xiǎn)分析每個階段之后評估方案下一階段第四十二頁,共六十三頁。簡化(jiǎnhuà)的螺旋模型完整的螺旋(luóxuán)模型第四十三頁,共六十三頁。螺旋模型的優(yōu)點(diǎn)容易確定什么時(shí)候已經(jīng)對某一階段的產(chǎn)品充分測試完畢維護(hù)(wéihù)和開發(fā)之間沒有什么本質(zhì)上的差異螺旋模型的缺點(diǎn)僅適合于大型軟件風(fēng)險(xiǎn)驅(qū)動既是優(yōu)點(diǎn)也是缺點(diǎn)第四十四頁,共六十三頁。1.3.5基于(jīyú)四代技術(shù)模型軟件工程的第四代技術(shù)〔4GT〕包含一系列的軟件工具。共同點(diǎn):使軟件設(shè)計(jì)者在較高級別上說明軟件的某些特征;軟件工具根據(jù)說明,自動生成源代碼。支持第四代技術(shù)模型的軟件開發(fā)環(huán)境和工具要求較高,例如數(shù)據(jù)庫查詢的非過程語言(yǔyán)、報(bào)告生成器、數(shù)據(jù)操縱、屏幕交互及定義、以及代碼生成;高級圖形功能;電子表格功能。第四十五頁,共六十三頁。優(yōu)點(diǎn):極大地降低了軟件的開發(fā)時(shí)間,并顯著提高了構(gòu)造軟件的生產(chǎn)率。缺點(diǎn):目前4GT并不比程序設(shè)計(jì)語言更容易使用,而且這類工具生成(shēnɡchénɡ)的結(jié)果源代碼是“低效的〞,使用4GT開發(fā)的大型軟件系統(tǒng)的可維護(hù)性令人疑心的。第四十六頁,共六十三頁。1.3.6噴泉(pēnquán)模型

在面向?qū)ο蠓椒ㄖ?,提出了與瀑布模型相對應(yīng)的噴泉模型,該模型的主要特點(diǎn)是認(rèn)為軟件生命周期的各個階段(jiēduàn)是相互重疊和屢次反復(fù)的。噴泉模型主要支持面向?qū)ο蟮拈_發(fā)方法。系統(tǒng)某個局部常常重復(fù)工作屢次,相關(guān)功能在每次迭代中隨之參加演進(jìn)的系統(tǒng)。在開發(fā)活動,即分析、設(shè)計(jì)和編碼之間不存在明顯的邊界。第四十七頁,共六十三頁。圖1.9噴泉(pēnquán)模型

第四十八頁,共六十三頁。1.3.7增量(zēnɡliànɡ)模型

也稱:漸增模型把軟件產(chǎn)品作為一系列增量(zēnɡliànɡ)構(gòu)件來設(shè)計(jì)、編碼、集成和測試。第四十九頁,共六十三頁。瀑布模型和快速原型模型的目標(biāo)交付給客戶一個完整的、可用的產(chǎn)品增量模型的優(yōu)點(diǎn)每個階段交付一個可用的產(chǎn)品減少一個全新產(chǎn)品給客戶帶來的心理上的影響分階段地交付產(chǎn)品不需要大的資金支出需求經(jīng)常變化,增量模型的靈活性使其具有更加優(yōu)越的適用性增量模型的困難需要一個開放的結(jié)構(gòu),方便構(gòu)件的參加增量模型本身就是一個矛盾(máodùn)的名詞第五十頁,共六十三頁。1.4軟件開發(fā)方法(fāngfǎ)

結(jié)構(gòu)化方法(fāngfǎ)面向數(shù)據(jù)結(jié)構(gòu)方法面向?qū)ο蠓椒ㄔ头ǖ谖迨豁摚擦摗?.4.1結(jié)構(gòu)化方法(fāngfǎ)結(jié)構(gòu)是指系統(tǒng)內(nèi)各組成要素之間的相互聯(lián)系、相互作用的框架(kuànɡjià)。結(jié)構(gòu)化方法:強(qiáng)調(diào)結(jié)構(gòu)的合理性,以及所開發(fā)軟件的結(jié)構(gòu)合理性,由此提出了一組提高軟件結(jié)構(gòu)合理性的準(zhǔn)那么,如分解和抽象、模塊的獨(dú)立性、信息隱蔽等。針對不同的開發(fā)活動,有結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)、結(jié)構(gòu)化編程和結(jié)構(gòu)化測試等。第五十二頁,共六十三頁。結(jié)構(gòu)化分析方法(fāngfǎ)結(jié)構(gòu)化分析方法給出一組幫助系統(tǒng)分析人員產(chǎn)生功能規(guī)約的原理和技術(shù)。利用圖形表示用戶需求,以數(shù)據(jù)流圖和控制流圖為根底,伴以數(shù)據(jù)詞典(cídiǎn),并配上結(jié)構(gòu)化語言、判定表和判定樹等等描述手段,從而到達(dá)為解決問題而建立模型。第五十三頁,共六十三頁。結(jié)構(gòu)化分析的步驟(bùzhòu)結(jié)構(gòu)化分析的步驟如下:〔1〕進(jìn)行系統(tǒng)分析,做出反映當(dāng)前物理模型的數(shù)據(jù)流圖;〔2〕推導(dǎo)出等價(jià)的邏輯模型的數(shù)據(jù)流圖;〔3〕設(shè)計(jì)新的邏輯系統(tǒng),生成數(shù)據(jù)詞典描述;〔4〕建立(jiànlì)人機(jī)接口界面,提出可供選擇的目標(biāo)系統(tǒng)的物理模型數(shù)據(jù)流圖;〔5〕確定各種方案的本錢和風(fēng)險(xiǎn)等級,據(jù)此對各種方案進(jìn)行分析;〔6〕選擇一種方案;〔7〕建立完整的需求規(guī)約。第五十四頁,共六十三頁。結(jié)構(gòu)化設(shè)計(jì)(shèjì)結(jié)構(gòu)化設(shè)計(jì)通常與結(jié)構(gòu)化分析銜接起來使用,以數(shù)據(jù)流圖為根底,得到(dédào)軟件模塊結(jié)構(gòu)。結(jié)構(gòu)化設(shè)計(jì)的步驟如下:〔1〕評審和細(xì)化數(shù)據(jù)流圖;〔2〕確定數(shù)據(jù)流圖的類型;〔3〕把數(shù)據(jù)流圖映射到軟件模塊結(jié)構(gòu),設(shè)計(jì)出模塊結(jié)構(gòu)的上層;〔4〕基于數(shù)據(jù)流圖逐步分解高層模塊,設(shè)計(jì)中下層模塊;〔5〕對軟件模塊結(jié)構(gòu)進(jìn)行優(yōu)化,得到更為合理的軟件結(jié)構(gòu);〔6〕描述模塊接口。第五十五頁,共六十三頁。1.4.2面向數(shù)據(jù)結(jié)構(gòu)(shùjùjiéɡòu)方法面向數(shù)據(jù)結(jié)構(gòu)方法是結(jié)構(gòu)化方法的變形,它著重?cái)?shù)據(jù)結(jié)構(gòu)而不是數(shù)據(jù)流。結(jié)構(gòu)化方法:以分析信息流為主,用數(shù)據(jù)流圖來表示(biǎoshì)信息流;面向數(shù)據(jù)結(jié)構(gòu)方法:從分析數(shù)據(jù)結(jié)構(gòu)入手,即分析信息結(jié)構(gòu),并用數(shù)據(jù)結(jié)構(gòu)圖來表示,再在此根底上進(jìn)行需求分析,導(dǎo)出軟件的結(jié)構(gòu)。第五十六頁,共六十三頁。面向數(shù)據(jù)結(jié)構(gòu)方法:Warmer法、Jackson法以及DSSD〔數(shù)據(jù)結(jié)構(gòu)系統(tǒng)開發(fā)〕方法等。面向數(shù)據(jù)結(jié)構(gòu)的開發(fā)方法包括:分析和設(shè)計(jì)活動。Jackson方法實(shí)例:把系統(tǒng)開發(fā)分為(fēnwéi)描述和實(shí)現(xiàn)兩個階段。描述階段建立一個與系統(tǒng)相關(guān)的客觀世界的模型,并在此根底上確定系統(tǒng)功能。實(shí)現(xiàn)階段在具體的計(jì)算機(jī)軟硬件環(huán)境下,實(shí)現(xiàn)系統(tǒng)功能。第五十七頁,共六十三頁。1.4.3面向?qū)ο蠓椒?fāngfǎ)起源:面向?qū)ο缶幊陶Z言O(shè)OP〔面向?qū)ο缶幊獭?--〉OOD〔面向?qū)ο笤O(shè)計(jì)〕+OOA〔面向?qū)ο蠓治觥?---〉OMT(對象建模技術(shù)〕和UML〔統(tǒng)一建模語言:面向?qū)ο蟮能浖_發(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論