第章 軟件與軟件工程介紹_第1頁
第章 軟件與軟件工程介紹_第2頁
第章 軟件與軟件工程介紹_第3頁
第章 軟件與軟件工程介紹_第4頁
第章 軟件與軟件工程介紹_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章軟件與軟件工程的概念軟件的概念、特性和分類軟件危機(jī)與軟件工程系統(tǒng)工程的目標(biāo)軟件生存期軟件生存期模型軟件工程知識體系及知識域1.1軟件的概念、特性和分類軟件的作用具有產(chǎn)品和產(chǎn)品生產(chǎn)載體的雙重作用。作為產(chǎn)品,軟件顯示了由計(jì)算機(jī)硬件體現(xiàn)的計(jì)算能力,扮演著信息轉(zhuǎn)換的角色:產(chǎn)生、管理、查詢、修改、顯示或者傳遞各種不同的信息。作為產(chǎn)品生產(chǎn)的載體,軟件提供了計(jì)算機(jī)控制(操作系統(tǒng))、信息通信(網(wǎng)絡(luò)),以及應(yīng)用程序開發(fā)和控制的基礎(chǔ)平臺(軟件工具和環(huán)境)。

1.1軟件的概念、特性和分類軟件的概念

雖然軟件對于現(xiàn)代的人并不陌生,但很多人對于軟件的理解并不準(zhǔn)確,“軟件就是程序,軟件開發(fā)就是編程序”的這種錯誤觀點(diǎn)仍然存在。什么是軟件?1.1軟件的概念、特性和分類軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列。數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)。文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料。1.1軟件的概念、特性和分類軟件的特性(1)

形態(tài)特性:軟件是無形的、不可見的邏輯實(shí)體。度量常規(guī)產(chǎn)品的幾何尺寸、物理性質(zhì)和化學(xué)成分對它卻是毫無意義的。

(2)

智能特性:軟件是復(fù)雜的智力產(chǎn)品,它的開發(fā)凝聚了人們的大量腦力勞動,它本身也體現(xiàn)了知識實(shí)踐經(jīng)驗(yàn)和人類的智慧,具有一定的智能。它可以幫助我們解決復(fù)雜的計(jì)算、分析、判斷和決策問題。(3)

開發(fā)特性:盡管已經(jīng)有了一些工具(也是軟件)來輔助軟件開發(fā)工作,但到目前為止尚未實(shí)現(xiàn)自動化。軟件開發(fā)中仍然包含了相當(dāng)份量的個體勞動,使得這一大規(guī)模知識型工作充滿了個人行為和個人因素。(4)

質(zhì)量特性:目前還無法得到完全沒有缺陷的軟件產(chǎn)品。1.1軟件的概念、特性和分類(5)

生產(chǎn)特性:與硬件或傳統(tǒng)的制造業(yè)產(chǎn)品的生產(chǎn)完全不同,軟件一旦設(shè)計(jì)開發(fā)出來,如果需要提供多個用戶,它的復(fù)制十分簡單,其成本也極為有限。(6)

管理特性:由于上述的幾個特點(diǎn),使得軟件的開發(fā)管理顯得更為重要,也更為獨(dú)特。1.1軟件的概念、特性和分類(7)

環(huán)境特性:軟件的開發(fā)和運(yùn)行都離不開相關(guān)的計(jì)算機(jī)系統(tǒng)環(huán)境,包括支持它的開發(fā)和運(yùn)行的相關(guān)硬件和軟件。軟件對于計(jì)算機(jī)系統(tǒng)的環(huán)境有著不可擺脫的依賴性。(8)

維護(hù)特性:軟件投入使用以后需要進(jìn)行維護(hù),但這種維護(hù)與傳統(tǒng)產(chǎn)業(yè)產(chǎn)品的維護(hù)概念有著很大差別。

1.1軟件的概念、特性和分類(9)

廢棄特性:與硬件不同,軟件并不是由于被“用壞”而被廢棄的

。(10)

應(yīng)用特性:軟件的應(yīng)用極為廣泛,如今它已滲入國民經(jīng)濟(jì)和國防的各個領(lǐng)域,現(xiàn)已成為信息產(chǎn)業(yè)、先進(jìn)制造業(yè)和現(xiàn)代服務(wù)業(yè)的核心,占據(jù)了無可取代的地位。1.1軟件的概念、特性和分類1.1軟件的概念、特性和分類軟件的分類按照軟件的作用,一般可以將軟件做如下分類。

(1)系統(tǒng)軟件(2)應(yīng)用軟件(3)支撐軟件(4)可復(fù)用軟件軟件危機(jī)暴暴發(fā)于上個個世紀(jì)六十十年代末。。主要表現(xiàn)為為:軟件的的發(fā)展速度度遠(yuǎn)遠(yuǎn)滯后后于硬件的的發(fā)展速度度,不能滿滿足社會日日益增長的的軟件需求求。軟件開開發(fā)周期長長、成本高高、質(zhì)量差差、維護(hù)困困難。1.2軟軟件危機(jī)機(jī)與軟件工工程軟件危機(jī)典型例子::美國IBM公司在在1963年至1966年開開發(fā)的IBM360機(jī)的操操作系統(tǒng)。。這個項(xiàng)目的的負(fù)責(zé)人F.D.Brooks事后總總結(jié)了他在在組織開發(fā)發(fā)過程中的的沉痛教訓(xùn)訓(xùn)時說:……正像一一只逃亡的的野獸落到到泥潭中做做垂死的掙掙扎,越是是掙扎,陷陷得越深。。最后無法法逃脫滅頂頂?shù)臑?zāi)難,,……程序序設(shè)計(jì)工作作正像這樣樣一個泥潭潭,……一一批批程序序員被迫在在泥潭中拼拼命掙扎,,……誰也也沒有料到到竟會陷入入這樣的困困境……1.2軟軟件危機(jī)機(jī)與軟件工工程具體來說,,軟件危機(jī)機(jī)主要有以以下一些典典型表現(xiàn):對軟件開發(fā)發(fā)成本和進(jìn)進(jìn)度的估計(jì)計(jì)常常很不不準(zhǔn)確。用戶對“已已完成的””軟件系統(tǒng)統(tǒng)不滿意的的現(xiàn)象經(jīng)常常發(fā)生。軟件產(chǎn)品的的質(zhì)量往往往靠不住。。軟件常常是是不可維護(hù)護(hù)的。軟件通常沒沒有適當(dāng)?shù)牡奈臋n資料料。軟件成本在在計(jì)算機(jī)系系統(tǒng)總成本本中所占的的比例逐年年上升。軟件開發(fā)生生產(chǎn)率提高高的速度,,既跟不上上硬件的發(fā)發(fā)展速度,,也遠(yuǎn)遠(yuǎn)跟跟不上計(jì)算算機(jī)應(yīng)用迅迅速普及深深入的趨勢勢。1.2軟軟件危機(jī)機(jī)與軟件工工程除了軟件本本身的特點(diǎn)點(diǎn),軟件危危機(jī)發(fā)生的的主要原因因有:缺乏軟件開開發(fā)的經(jīng)驗(yàn)驗(yàn)和有關(guān)軟軟件開發(fā)數(shù)數(shù)據(jù)的積累累,使得開開發(fā)工作的的計(jì)劃很難難制定。軟件人員與與用戶的交交流存在障障礙,使得得獲取的需需求不充分分或存在錯錯誤。軟件開發(fā)過過程不規(guī)范范。如,沒沒有真正了了解用戶的的需求就開開始編程序序。隨著軟件規(guī)規(guī)模的增大大,其復(fù)雜雜性往往會會呈指數(shù)級級升高。需需要很多人人分工協(xié)作作,不僅涉涉及技術(shù)問問題,更重重要的是必必須有科學(xué)學(xué)嚴(yán)格的管管理。缺少有效的的軟件評測測手段,提提交用戶的的軟件質(zhì)量量不能完全全保證。1.2軟軟件危機(jī)機(jī)與軟件工工程徹底消除““軟件就是是程序”的的錯誤觀念念。充分認(rèn)識到到軟件開發(fā)發(fā)應(yīng)該是一一種組織良良好、管理理嚴(yán)密、各各類人員協(xié)協(xié)同配合、、共同完成成的工程項(xiàng)項(xiàng)目。推廣和使用用在實(shí)踐中中總結(jié)出來來的開發(fā)軟軟件的成功功技術(shù)、方方法和工具具。按工程化的的原則和方方法組織軟軟件開發(fā)工工作。如何擺脫軟軟件危機(jī)?1.2軟軟件危機(jī)機(jī)與軟件工工程1.2軟軟件危機(jī)機(jī)與軟件工工程軟件工程的的概念為了克服軟軟件危機(jī),,1968年10月月在北大西西洋公約組組織(NATO)召召開的計(jì)算算機(jī)科學(xué)會會議上,F(xiàn)ritzBauer首次次提出“軟軟件工程””的概念,,試圖將工工程化方法法應(yīng)用于軟軟件開發(fā)。。在NATO會議議上,F(xiàn)ritzBauer對軟軟件工程程的定義義是:““軟件工工程就是是為了經(jīng)經(jīng)濟(jì)地獲獲得可靠靠的且能能在實(shí)際際機(jī)器上上有效地地運(yùn)行的的軟件,,而建立立和使用用完善的的工程原原理?!薄?993年IEEE給給出的定定義:“軟件工工程是::①把把系統(tǒng)的的、規(guī)范范的、可可度量的的途徑應(yīng)應(yīng)用于軟軟件開發(fā)發(fā)、運(yùn)行行和維護(hù)護(hù)過程,,也就是是把工程程應(yīng)用于于軟件;;②研研究①中中提到的的途徑。?!?。1.2軟軟件件危機(jī)與與軟件工工程軟件工程程是指導(dǎo)計(jì)計(jì)算機(jī)軟軟件開發(fā)發(fā)和維護(hù)護(hù)的一門門工程學(xué)學(xué)科。采采用工程程的概念念、原理理、技術(shù)術(shù)和方法法來開發(fā)發(fā)和維護(hù)護(hù)軟件,,把經(jīng)過過時間考考驗(yàn)而證證明正確確的管理理技術(shù)和和當(dāng)前能能夠得到到的最好好技術(shù)結(jié)結(jié)合起來來,以經(jīng)經(jīng)濟(jì)地開開發(fā)出高高質(zhì)量的的軟件并并有效地地維護(hù)它它,這就就是軟件件工程。。1.2軟軟件件危機(jī)與與軟件工工程1.3軟軟件工工程的目目標(biāo)軟件工程程的目標(biāo)標(biāo)是運(yùn)用用先進(jìn)的的軟件開開發(fā)技術(shù)術(shù)和管理理方法來來提高軟軟件的質(zhì)質(zhì)量和生生產(chǎn)率,,也就是是要以較較短的周周期、較較低的成成本生產(chǎn)產(chǎn)出高質(zhì)質(zhì)量的軟軟件產(chǎn)品品,并最最終實(shí)現(xiàn)現(xiàn)軟件的的工業(yè)化化生產(chǎn)。。1.3軟軟件工工程的目目標(biāo)軟件的質(zhì)質(zhì)量特性性:功能性、可靠性、可使用性性、效率、可維護(hù)性性和可移植性性。功能性是指軟件件所實(shí)現(xiàn)現(xiàn)的功能能達(dá)到它它的設(shè)計(jì)計(jì)規(guī)范和和滿足用用戶需求求的程度度;可靠性是指在規(guī)規(guī)定的時時間和條條件下,,軟件能能夠正常常維持其其工作的的能力;;可使用性性是指為了了使用該該軟件所所需要的的能力;;效率是指在規(guī)規(guī)定的條條件下用用軟件實(shí)實(shí)現(xiàn)某種種功能所所需要的的計(jì)算機(jī)機(jī)資源的的有效性性;可維護(hù)性性是指當(dāng)環(huán)環(huán)境改變變或軟件件運(yùn)行發(fā)發(fā)生故障障時,為為了使其其恢復(fù)正正常運(yùn)行行所做努努力的程程度;可可移植性性是指軟軟件從某某一環(huán)境境轉(zhuǎn)移到到另一環(huán)環(huán)境時所所做努力力的程度度。1.3軟軟件工工程的目目標(biāo)質(zhì)量目標(biāo)標(biāo)之間的的關(guān)系(1)關(guān)關(guān)注大型型軟件的的構(gòu)造(2)中中心課題題是控制制復(fù)雜性性(3)軟軟件經(jīng)常常變化(4)開開發(fā)軟件件的效率率非常重重要(5)和和諧地合合作是開開發(fā)軟件件的關(guān)鍵鍵(6)軟軟件必須須有效地地支持它它的用戶戶(7)在在軟件工工程領(lǐng)域域中是由由一種文文化背景景的人替替具有另另一種文文化背景景的人創(chuàng)創(chuàng)造產(chǎn)品品軟件工程程的本質(zhì)質(zhì)特性(1)按按軟件生生存周期期分階段段制訂計(jì)計(jì)劃并認(rèn)認(rèn)真實(shí)施施(2)堅(jiān)堅(jiān)持進(jìn)行行階段評評審(3)堅(jiān)堅(jiān)持嚴(yán)格格的產(chǎn)品品控制(4)使使用現(xiàn)代代軟件開開發(fā)技術(shù)術(shù)(5)明明確責(zé)任任(6)用用人少而而精(7)不不斷改進(jìn)進(jìn)開發(fā)過過程軟件工程程的基本本原理1.4軟件件生存期概念軟件也有一個個孕育、誕生生、成長、成成熟和衰亡的的生存過程,,我們稱這個個過程為軟件生命周期期或軟件生存期。軟件生存期由由軟件定義、、軟件開發(fā)和和運(yùn)行維護(hù)3個時期組成成,每個時期期又可劃分為為若干個階段段。1.4軟件件生存期軟件定義時期期主要任務(wù)是解解決“做什么么”的問題,,即確定工程程的總目標(biāo)和和可行性;導(dǎo)導(dǎo)出實(shí)現(xiàn)工程程目標(biāo)應(yīng)使用用的策略及系系統(tǒng)必須完成成的功能;估估計(jì)完成工程程需要的資源源和成本;制制訂工程進(jìn)度度表。通常又分為3個階段:問題定義、可行性研究和需求分析。1.4軟件件生存期軟件開發(fā)時期期主要任務(wù)是解解決“如何做做”的問題,,即具體設(shè)計(jì)計(jì)和實(shí)現(xiàn)在前前一個時期定定義的軟件。。由概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測試4個階段組成成。1.4軟件件生存期軟件運(yùn)行維護(hù)護(hù)時期主要任務(wù)是使使軟件持久地地滿足用戶的的需要,通常常有4類維護(hù)護(hù)活動:改正性維護(hù),也就是診斷斷和改正在使使用過程中發(fā)發(fā)現(xiàn)的軟件錯錯誤;適應(yīng)性維護(hù),即修改軟件件以適應(yīng)環(huán)境境的變化;完善性維護(hù),即根據(jù)用戶戶的要求改進(jìn)進(jìn)或擴(kuò)充軟件件,使它更完完善;預(yù)防性維護(hù),即修改軟件件為將來的維維護(hù)活動預(yù)先先做準(zhǔn)備。1.4軟件件生存期開發(fā)過程中的的典型文檔①軟件需求規(guī)格格說明書:描述將要開開發(fā)的軟件做做什么。②項(xiàng)目計(jì)劃:描述將要完完成的任務(wù)及及其順序,并并估計(jì)所需要要的時間及工工作量。③軟件測試計(jì)劃劃:描述如何測測試軟件,使使之確保軟件件應(yīng)實(shí)現(xiàn)規(guī)定定的功能,并并達(dá)到預(yù)期的的性能。④軟件設(shè)計(jì)說明明書:描述軟件的的結(jié)構(gòu),包括括概要設(shè)計(jì)及及詳細(xì)設(shè)計(jì)。。⑤用戶手冊:描述如何使使用軟件。1.4軟件件生存期各個階段所要要完成的基本本任務(wù)問題定義與可可行性研究本階段要回答答的關(guān)鍵問題題是“到底要要解決什么問問題?在成本本和時間的限限制條件下能能否解決問題題?是否值得得做?”(2)需求求分析本階段要回答答的關(guān)鍵問題題是“目標(biāo)系系統(tǒng)應(yīng)當(dāng)做什什么?”(3)軟件件設(shè)計(jì)設(shè)計(jì)是軟件工工程的技術(shù)核核心。本階段段要回答的關(guān)關(guān)鍵問題是““如何實(shí)現(xiàn)目目標(biāo)系統(tǒng)?””1.4軟件件生存期各個階段所要要完成的基本本任務(wù)(4)程序序編碼和單元元測試本階段要解決決的問題是““正確地實(shí)現(xiàn)現(xiàn)已做的設(shè)計(jì)計(jì)”,即“如如何編寫正確確的、可維護(hù)護(hù)的程序代碼碼?”(5)集成成和系統(tǒng)測試試測試是控制軟軟件質(zhì)量的重重要手段,本本階段的主要要任務(wù)是做集集成測試和系系統(tǒng)測試。(6)軟件件運(yùn)行和維護(hù)護(hù)已交付的軟件件投入正式使使用,便進(jìn)入入運(yùn)行階段。。這一階段可可能持續(xù)若干干年。軟件在在運(yùn)行中可能能由于多方面面的原因,需需要對它進(jìn)行行修改。1.5軟件件生存期模型型瀑布模型快速原型模型型增量模型螺旋模型噴泉模型統(tǒng)一過程瀑布模型在20世紀(jì)80年代之前前,瀑布模型型一直是唯一一被廣泛采用用的生命周期期模型。傳統(tǒng)的瀑布模模型如圖所示示。瀑布模型瀑布模型的特特點(diǎn)階段間具有順順序性和依賴賴性。其中包包含兩重含義義:①必須等前前一階段的工工作完成之后后,才能開始始后一階段的的工作;②前一階段段的輸出文檔檔就是后一階階段的輸入文文檔。瀑布模型瀑布模型的特特點(diǎn)推遲實(shí)現(xiàn)的觀觀點(diǎn)①瀑布模型型在編碼之前前設(shè)置了系統(tǒng)統(tǒng)分析和系統(tǒng)統(tǒng)設(shè)計(jì)的各個個階段,分析析與設(shè)計(jì)階段段的基本任務(wù)務(wù)規(guī)定,在這這兩個階段主主要考慮目標(biāo)標(biāo)系統(tǒng)的邏輯輯模型,不涉涉及軟件的物物理實(shí)現(xiàn)。②清楚地區(qū)區(qū)分邏輯設(shè)計(jì)計(jì)與物理設(shè)計(jì)計(jì),盡可能推推遲程序的物物理實(shí)現(xiàn),是是按照瀑布模模型開發(fā)軟件件的一條重要要的指導(dǎo)思想想。瀑布模型瀑布模型的特特點(diǎn)質(zhì)量保證的觀觀點(diǎn)①每個階段段都必須完成成規(guī)定的文檔檔,沒有交出出合格的文檔檔就是沒有完完成該階段的的任務(wù)。②每個階段段結(jié)束前都要要對所完成的的文檔進(jìn)行評評審,以便盡盡早發(fā)現(xiàn)問題題,改正錯誤誤。瀑布模型實(shí)際的瀑布模模型實(shí)際的瀑布模模型是帶“反反饋環(huán)”的,,如圖所示。。圖中實(shí)線箭頭表示示開發(fā)過程,虛線箭頭表示示維護(hù)過程。瀑布模型瀑布模型的優(yōu)優(yōu)點(diǎn)可強(qiáng)迫開發(fā)人人員采用規(guī)范范化的方法。。嚴(yán)格地規(guī)定了了每個階段必必須提交的文文檔。要求每個階段段交出的所有有產(chǎn)品都必須須是經(jīng)過驗(yàn)證證的。瀑布模型瀑布模型的缺缺點(diǎn)由于瀑布模型型幾乎完全依依賴于書面的的規(guī)格說明,,很可能導(dǎo)致致最終開發(fā)出出的軟件產(chǎn)品品不能真正滿滿足用戶的需需要。如果需需求規(guī)格說明明與用戶需求求之間有差異異,就會發(fā)生生這種情況。。瀑布模型只適適用于項(xiàng)目開開始時需求已已確定的情況況??焖僭湍P托涂焖僭褪强炜焖俳⑵饋韥淼目梢栽谟?jì)計(jì)算機(jī)上運(yùn)行行的程序,它它所能完成的的功能往往是是最終產(chǎn)品能能完成的功能能的一個子集集。快速原型模型型如圖所示。??焖僭湍P托涂焖僭湍P托偷膬?yōu)點(diǎn)(1)有助于于滿足用戶的的真實(shí)需求。。(2)原型系系統(tǒng)已經(jīng)通過過與用戶的交交互而得到驗(yàn)驗(yàn)證,據(jù)此產(chǎn)產(chǎn)生的規(guī)格說說明文檔能夠夠正確地描述述用戶需求。。(3)軟件產(chǎn)產(chǎn)品的開發(fā)基基本上是按線線性順序進(jìn)行行。(4)因?yàn)橐?guī)規(guī)格說明文檔檔正確地描述述了用戶需求求,因此,在在開發(fā)過程的的后續(xù)階段不不會因?yàn)榘l(fā)現(xiàn)現(xiàn)規(guī)格說明文文檔的錯誤而而進(jìn)行較大的的返工??焖僭湍P托涂焖僭湍P托偷膬?yōu)點(diǎn)(5)開發(fā)人人員通過建立立原型系統(tǒng)已已經(jīng)學(xué)到了許許多東西,因因此,在設(shè)計(jì)計(jì)和編碼階段段發(fā)生錯誤的的可能性也比比較小,這自自然減少了在在后續(xù)階段需需要改正前面面階段所犯錯錯誤的可能性性。(6)快速速原型的突出出特點(diǎn)是“快快速”。開發(fā)發(fā)人員應(yīng)該盡盡可能快地建建造出原型系系統(tǒng),以加速速軟件開發(fā)過過程,節(jié)約軟軟件開發(fā)成本本。原型的用途是是獲知用戶的的真正需求,,一旦需求確確定了,原型型可以拋棄,,當(dāng)然也可以以在原型的基基礎(chǔ)上進(jìn)行開開發(fā)。增量模型增量模型也也稱為漸增增模型,是是Mills等于1980年年提出來的的。使用增量模模型開發(fā)軟軟件時,把把軟件產(chǎn)品品作為一系系列的增量量構(gòu)件來設(shè)設(shè)計(jì)、編碼碼、集成和和測試。每個構(gòu)件由由多個相互互作用的模模塊構(gòu)成,,并且能夠夠完成特定定的功能。。增量模型增量模型如如圖所示。。增量模型增量模型的的優(yōu)點(diǎn)(1)能在在較短時間間內(nèi)向用戶戶提交可完完成一些有有用的工作作產(chǎn)品,即即從第1個個構(gòu)件交付付之日起,,用戶就能能做一些有有用的工作作。(2)逐步步增加產(chǎn)品品的功能可可以使用戶戶有較充裕裕的時間學(xué)學(xué)習(xí)和適應(yīng)應(yīng)新產(chǎn)品,,從而減少少一個全新新的軟件可可能給用戶戶組織帶來來的沖擊。。(3)項(xiàng)目目失敗的風(fēng)風(fēng)險(xiǎn)較低,,雖然在某某些增量構(gòu)構(gòu)件中可能能遇到一些些問題,但但其他增量量構(gòu)件將能能夠成功地地交付給客客戶。(4)優(yōu)先先級最高的的服務(wù)首先先交付,然然后再將其其他增量構(gòu)構(gòu)件逐次集集成進(jìn)來。。因此,最最重要的系系統(tǒng)服務(wù)將將接受最多多的測試。。增量模型增量構(gòu)件開開發(fā)每個增量構(gòu)構(gòu)件應(yīng)當(dāng)實(shí)實(shí)現(xiàn)某種系系統(tǒng)功能,,因此增量量構(gòu)件的開開發(fā)可以采采用瀑布模模型的方式式,如圖所所示。增量模型采用增量模模型需注意意的問題(1)在把把每個新的的增量構(gòu)件件集成到現(xiàn)現(xiàn)有軟件體體系結(jié)構(gòu)中中時,必須須不破壞原原來已經(jīng)開開發(fā)出的產(chǎn)產(chǎn)品。(2)軟件件體系結(jié)構(gòu)構(gòu)必須是開開放的,即即向現(xiàn)有產(chǎn)產(chǎn)品中加入入新構(gòu)件的的過程必須須簡單、方方便。因此,采用用增量模型型比采用瀑瀑布模型和和快速原型型模型更需需要精心的的設(shè)計(jì)。螺旋模型螺旋模型最最初是Boehm于于1988年提出來來的。該模型將瀑瀑布模型與與快速原型型模型結(jié)合合起來,并并且加入兩兩種模型均均忽略了的的風(fēng)險(xiǎn)分析析。螺旋模型的的基本思想想是,使用用原型及其其他方法來來盡量降低低風(fēng)險(xiǎn)。螺旋模型理解這種模模型的一個個簡便方法法,是把它它看做在每每個階段之之前都增加加了風(fēng)險(xiǎn)分分析過程的的快速原型型模型。螺旋模型完整的螺旋旋模型螺旋模型完整的螺旋旋模型在螺旋模型型中,軟件件過程表示示成一個螺螺線,而不不是像以往往的模型那那樣表示為為一個具有有回溯的活活動序列。。在螺線上的的每一個循循環(huán)表示過過程的一個個階段。每個階段開開始時的任任務(wù)是確定定該階段的的目標(biāo)、為為完成這些些目標(biāo)選擇擇方案及設(shè)設(shè)定這些方方案的約束束條件。接接下來的任任務(wù)是,從從風(fēng)險(xiǎn)角度度分析上一一步的工作作結(jié)果,努努力排除各各種潛在的的風(fēng)險(xiǎn),通通常用建造造原型的方方法來排除除風(fēng)險(xiǎn)。如如果成功地地排除了所所有風(fēng)險(xiǎn),,則啟動下下一步開發(fā)發(fā)步驟,在在這個步驟驟的工作過過程相當(dāng)于于純粹的瀑瀑布模型。。最后是評評價該階段段的工作成成果并計(jì)劃劃下一個階階段的工作作。螺旋模型螺旋模型的的4項(xiàng)活動動螺線上的每每一個循環(huán)環(huán)可劃分為為4個象限限,分別表表達(dá)了4個個方面的活活動。(1)目目標(biāo)標(biāo)設(shè)設(shè)定定————定定義義在在該該階階段段的的目目標(biāo)標(biāo),,弄弄清清對對過過程程和和產(chǎn)產(chǎn)品品的的限限制制條條件件,,制制訂訂詳詳細(xì)細(xì)的的管管理理計(jì)計(jì)劃劃,,識識別別項(xiàng)項(xiàng)目目風(fēng)風(fēng)險(xiǎn)險(xiǎn),,可可能能還還要要計(jì)計(jì)劃劃與與這這些些風(fēng)風(fēng)險(xiǎn)險(xiǎn)有有關(guān)關(guān)的的對對策策。。(2)風(fēng)風(fēng)險(xiǎn)險(xiǎn)估估計(jì)計(jì)與與弱弱化化————針針對對每每一一個個風(fēng)風(fēng)險(xiǎn)險(xiǎn)進(jìn)進(jìn)行行詳詳細(xì)細(xì)分分析析,,設(shè)設(shè)想想弱弱化化風(fēng)風(fēng)險(xiǎn)險(xiǎn)的的步步驟驟。。(3)開開發(fā)發(fā)與與驗(yàn)驗(yàn)證證————評評價價風(fēng)風(fēng)險(xiǎn)險(xiǎn)之之后后選選擇擇系系統(tǒng)統(tǒng)開開發(fā)發(fā)模模型型。。(4)計(jì)計(jì)劃劃————評評價價開開發(fā)發(fā)工工作作,,確確定定是是否否繼繼續(xù)續(xù)進(jìn)進(jìn)行行螺螺線線的的下下一一個個循循環(huán)環(huán)。。如如果果確確定定要要繼繼續(xù)續(xù),,則則計(jì)計(jì)劃劃項(xiàng)項(xiàng)目目的的下下一一個個階階段段的的工工作作。。螺旋旋模模型型螺旋旋模模型型的的優(yōu)優(yōu)點(diǎn)點(diǎn)對可可選選方方案案和和約約束束條條件件的的強(qiáng)強(qiáng)調(diào)調(diào)有有利利于于已已有有軟軟件件的的重重用用,,也也有有助助于于把把軟軟件件質(zhì)質(zhì)量量作作為為軟軟件件開開發(fā)發(fā)的的一一個個重重要要目目標(biāo)標(biāo)。。減少少了了過過多多測測試試或或測測試試不不足足所所帶帶來來的的風(fēng)風(fēng)險(xiǎn)險(xiǎn)。。在螺螺旋旋模模型型中中維維護(hù)護(hù)只只是是模模型型的的另另一一個個周周期期,,因因而而在在維維護(hù)護(hù)和和開開發(fā)發(fā)之之間間并并沒沒有有本本質(zhì)質(zhì)區(qū)區(qū)別別。。螺旋旋模模型型的的缺缺點(diǎn)點(diǎn)螺旋旋模模型型是是風(fēng)風(fēng)險(xiǎn)險(xiǎn)驅(qū)驅(qū)動動的的,,因因此此要要求求軟軟件件開開發(fā)發(fā)人人員員必必須須具具有有豐豐富富的的風(fēng)風(fēng)險(xiǎn)險(xiǎn)評評估估經(jīng)經(jīng)驗(yàn)驗(yàn)和和這這方方面面的的專專門門知知識識,,否否則則將將出出現(xiàn)現(xiàn)真真正正的的風(fēng)風(fēng)險(xiǎn)險(xiǎn)::當(dāng)當(dāng)項(xiàng)項(xiàng)目目實(shí)實(shí)際際上上正正在在走走向向?yàn)?zāi)災(zāi)難難時時,,開開發(fā)發(fā)人人員員可可能能還還以以為為一一切切正正常常。。噴泉模型型噴泉模型型是典型型的面向向?qū)ο笊芷谄谀P汀?。“噴泉””一詞體體現(xiàn)了迭迭代和無無間隙特特性。圖圖中代表表不同階階段的圓圓圈相互互重疊,,這明確確表示兩兩個活動動之間存存在重疊疊?;跇?gòu)件件的開發(fā)發(fā)模型基于構(gòu)件件的軟件件工程((component-basedsoftwareengineering,CBSE))是強(qiáng)調(diào)調(diào)使用可可復(fù)用的的軟件““構(gòu)件””來設(shè)計(jì)計(jì)和構(gòu)造造基于計(jì)計(jì)算機(jī)的的系統(tǒng)的的過程。?;跇?gòu)件件的開發(fā)發(fā)模型Clements對CBSE給出了了如下描描述。CBSE正在改改變大型型軟件系系統(tǒng)的開開發(fā)方式式。CBSE體體現(xiàn)了FrodBrooks和其其他人支支持的““購買,,而非構(gòu)構(gòu)造”的的思想。。就如同同早期的的子程序序?qū)⒊绦蛐騿T從考考慮編程程細(xì)節(jié)中中解脫出出來一樣樣,CBSE將將考慮的的重點(diǎn)從從編碼轉(zhuǎn)轉(zhuǎn)移到組組裝軟件件系統(tǒng)。??紤]的焦焦點(diǎn)是““集成””,而不不再是““實(shí)現(xiàn)””。這樣做的的基礎(chǔ)是是假定在在很多大大型軟件件系統(tǒng)中中存在足足夠多的的共性,,使得開開發(fā)可復(fù)復(fù)用的構(gòu)構(gòu)件來滿滿足這些些共性是是可行的的?;跇?gòu)件件的開發(fā)發(fā)模型當(dāng)軟件團(tuán)團(tuán)隊(duì)使用用傳統(tǒng)的的需求獲獲取技術(shù)術(shù)確定了了待開發(fā)發(fā)軟件的的系統(tǒng)需需求時,,該過程程開始。。體系結(jié)構(gòu)構(gòu)設(shè)計(jì)完完成后,,并不立立即進(jìn)行行詳細(xì)設(shè)設(shè)計(jì)任務(wù)務(wù),而是是針對每每一系統(tǒng)統(tǒng)需求考考慮以下下問題:(1)現(xiàn)現(xiàn)有的商商品化構(gòu)構(gòu)件(commercialoff-the-shelf,,COTS)是是否能夠夠?qū)崿F(xiàn)該該需求??(2)內(nèi)內(nèi)部開發(fā)發(fā)的可復(fù)復(fù)用構(gòu)件件是否能能夠?qū)崿F(xiàn)現(xiàn)該需求求?(3)可可用構(gòu)件件的接口口與待構(gòu)構(gòu)造系統(tǒng)統(tǒng)的體系系結(jié)構(gòu)是是否相容容?基于構(gòu)件件的開發(fā)發(fā)模型基于構(gòu)件件的開發(fā)發(fā)模型如如下圖。?;跇?gòu)件件的開發(fā)發(fā)模型開發(fā)步驟驟不考慮構(gòu)構(gòu)件的開開發(fā)技術(shù)術(shù),基于于構(gòu)件的的開發(fā)模模型由以以下步驟驟組成::(1)對對于該問問題領(lǐng)域域的基于于構(gòu)件的的可用產(chǎn)產(chǎn)品進(jìn)行行研究和和評估。。(2)考考慮構(gòu)件件集成的的問題。。(3)設(shè)設(shè)計(jì)軟件件架構(gòu)以以容納這這些構(gòu)件件。(4)將將構(gòu)件集集成到架架構(gòu)中。。(5)進(jìn)進(jìn)行充分分的測試試以保證證功能正正常?;跇?gòu)件件的開發(fā)發(fā)模型典型的構(gòu)構(gòu)件模型型(1)OMG/CORBA。對象管管理組織織發(fā)布了了公共對對象請求求代理體體系結(jié)構(gòu)構(gòu)(OMG/CORBA),,一個對對象請求求代理提提供了多多種服務(wù)務(wù),使得得可復(fù)用用構(gòu)件((對象))可以與與其他構(gòu)構(gòu)件通信信。(2)MicrosoftCOM/DCOM/.NET。微軟公公司開發(fā)發(fā)了構(gòu)件件對象模模型(COM)),此模模型提供供了構(gòu)件件的規(guī)格格說明,在Windows操操作系統(tǒng)統(tǒng),一個個應(yīng)用系系統(tǒng)中可可以使用用不同廠廠商生產(chǎn)產(chǎn)的構(gòu)件件。(3)SunJavaBean構(gòu)構(gòu)件。JavaBean構(gòu)構(gòu)件系統(tǒng)統(tǒng)是一個個可移植植的、平平臺獨(dú)立立的、使使用Java程程序設(shè)計(jì)計(jì)語言開開發(fā)的CBSE基礎(chǔ)設(shè)設(shè)施。統(tǒng)一過程程由Booch、、Jacobson及及Rumbaugh提提出,統(tǒng)統(tǒng)一過程程模型如如圖所示示。統(tǒng)一過程程統(tǒng)一過程程的工作作流在統(tǒng)一過過程中,,有6個個核心工工作流。。①業(yè)務(wù)建模模工作流流。用商業(yè)業(yè)用例為為商業(yè)過過程建立立文檔。。②需求工作作流。目標(biāo)是是描述系系統(tǒng)應(yīng)該該做什么么,確保保開發(fā)人人員構(gòu)建建正確的的系統(tǒng)。。為此,,需明確確系統(tǒng)的的功能需需求和非非功能需需求(約約束)。。③分析和設(shè)設(shè)計(jì)工作作流。其目標(biāo)標(biāo)是說明明如何做做。結(jié)果果是分析析模型和和設(shè)計(jì)模模型。統(tǒng)一過程程④實(shí)現(xiàn)工作作流。用分層層的方式式組織代代碼的結(jié)結(jié)構(gòu),用用構(gòu)件的的形式來來實(shí)現(xiàn)類類,對構(gòu)構(gòu)件進(jìn)行行單元測測試,將將構(gòu)件集集成到可可執(zhí)行的的系統(tǒng)中中。⑤測試工作作流。驗(yàn)證對對象之間間的交互互、是否否所有的的構(gòu)件都都集成了了、是否否正確實(shí)實(shí)現(xiàn)了所所有需求求、查錯錯并改正正。⑥部署工工作流流。制作作軟件件的外外部版版本、、軟件件打包包、分分發(fā)、、為用用戶提提供幫幫助和和支持持。統(tǒng)一過過程統(tǒng)一過過程的的階段段統(tǒng)一過過程有有4個個階段段,分分別是是初始始階段段、細(xì)細(xì)化階階段、、構(gòu)造造階段段和移移交階階段。。①初始階階段。初始始階段段主要要關(guān)注注項(xiàng)目目計(jì)劃劃和風(fēng)風(fēng)險(xiǎn)評評估,,其目目的是是確定定是否否值得得開發(fā)發(fā)目標(biāo)標(biāo)信息息系統(tǒng)統(tǒng)。②細(xì)化階階段。細(xì)化化階段段關(guān)心心定義義系統(tǒng)統(tǒng)的總總體框框架,,其目目標(biāo)是是:細(xì)細(xì)化初初始需需求((用況況)、、細(xì)化化體系系結(jié)構(gòu)構(gòu)、監(jiān)監(jiān)控風(fēng)風(fēng)險(xiǎn)并并細(xì)化化它們們的優(yōu)優(yōu)先級級、細(xì)細(xì)化業(yè)業(yè)務(wù)案案例以以及制制訂項(xiàng)項(xiàng)目管管理計(jì)計(jì)劃。。統(tǒng)一過過程統(tǒng)一過過程的的階段段③構(gòu)造階階段。構(gòu)造造階段段是建建立系

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論