Web應(yīng)用程序開發(fā)技術(shù)基礎(chǔ)課件_第1頁
Web應(yīng)用程序開發(fā)技術(shù)基礎(chǔ)課件_第2頁
Web應(yīng)用程序開發(fā)技術(shù)基礎(chǔ)課件_第3頁
Web應(yīng)用程序開發(fā)技術(shù)基礎(chǔ)課件_第4頁
Web應(yīng)用程序開發(fā)技術(shù)基礎(chǔ)課件_第5頁
已閱讀5頁,還剩115頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章Web應(yīng)用程序開發(fā)技術(shù)基礎(chǔ)

1.1Web發(fā)展歷史1.2Web應(yīng)用程序的基本概念1.3Web應(yīng)用程序的體系結(jié)構(gòu)1.4Web應(yīng)用程序的工作環(huán)境1.5Web應(yīng)用程序開發(fā)的技術(shù)內(nèi)容1.6Web應(yīng)用程序開發(fā)模型1.7Web應(yīng)用程序開發(fā)的環(huán)境配置第1章Web應(yīng)用程序開發(fā)技術(shù)基礎(chǔ)11.1Web發(fā)展歷史1.1Web發(fā)展歷史21.2Web應(yīng)用程序的基本概念1.2.1Web應(yīng)用程序的含義1.2.2Web應(yīng)用程序的特點(diǎn)1.2Web應(yīng)用程序的基本概念1.2.1Web應(yīng)用程序的31.2.1Web應(yīng)用程序的含義1.2.1Web應(yīng)用程序的含義41.2.2Web應(yīng)用程序的特點(diǎn)(1)基于HTTP(2)簡單、統(tǒng)一的用戶接口(3)非對稱、概率性的訪問模式1.2.2Web應(yīng)用程序的特點(diǎn)(1)基于HTTP51.3Web應(yīng)用程序的體系結(jié)構(gòu)1.3.12層體系結(jié)構(gòu)1.3.23層體系結(jié)構(gòu)1.3.34層體系結(jié)構(gòu)1.3Web應(yīng)用程序的體系結(jié)構(gòu)1.3.12層體系結(jié)構(gòu)61.4Web應(yīng)用程序的工作環(huán)境1.4.1因特網(wǎng)初步分析1.4.2Web原理分析1.4Web應(yīng)用程序的工作環(huán)境1.4.1因特網(wǎng)初步分析71.5Web應(yīng)用程序開發(fā)的技術(shù)內(nèi)容1.5.1Web應(yīng)用程序開發(fā)的需求1.5.2Web應(yīng)用程序的執(zhí)行過程1.5.3Web應(yīng)用程序的開發(fā)步驟1.5.4Web應(yīng)用程序開發(fā)技術(shù)的層次性1.5.5Web應(yīng)用程序開發(fā)與Web工程1.5Web應(yīng)用程序開發(fā)的技術(shù)內(nèi)容1.5.1Web應(yīng)用程81.5.1Web應(yīng)用程序開發(fā)的需求Web應(yīng)用程序開發(fā)的含義一方面,Web需要應(yīng)用程序一方面,應(yīng)用程序需要Web1.5.1Web應(yīng)用程序開發(fā)的需求Web應(yīng)用程序開發(fā)的含義91.5.2Web應(yīng)用程序的執(zhí)行過程與“動(dòng)態(tài)萬維網(wǎng)文檔與CGI技術(shù)”中提到的執(zhí)行過程基本一致。1.5.2Web應(yīng)用程序的執(zhí)行過程與“動(dòng)態(tài)萬維網(wǎng)文檔與C101.5.3Web應(yīng)用程序的開發(fā)步驟開發(fā)Web應(yīng)用程序是一件非常辛苦的事情,你需要花大把大把的時(shí)間來做無數(shù)的事情。假如你不運(yùn)用有條理的方法,尤其是在復(fù)雜的項(xiàng)目中,你會(huì)承受忽視項(xiàng)目,不能按時(shí)完成,浪費(fèi)時(shí)間一無所獲的風(fēng)險(xiǎn)。一般的Web應(yīng)用程序開發(fā)流程分為五個(gè)主要的階段:(1)系統(tǒng)分析;(2)系統(tǒng)設(shè)計(jì);(3)系統(tǒng)實(shí)現(xiàn);(4)系統(tǒng)測試;(5)系統(tǒng)維護(hù)。1.5.3Web應(yīng)用程序的開發(fā)步驟開發(fā)We111.5.4Web應(yīng)用程序開發(fā)技術(shù)的層次性軟件開發(fā)過程軟件開發(fā)方法軟件開發(fā)工具1.5.4Web應(yīng)用程序開發(fā)技術(shù)的層次性軟件開發(fā)過程12一、軟件開發(fā)過程1.

所謂軟件開發(fā)過程是指開發(fā)一個(gè)最終能滿足需求且達(dá)到目標(biāo)的軟件產(chǎn)品所需要的步驟。2.軟件開發(fā)過程主要包括:系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)測試以及系統(tǒng)維護(hù)等活動(dòng)。3.軟件開發(fā)過程是為了獲得軟件產(chǎn)品或是為了完成軟件工程項(xiàng)目需要完成的有關(guān)軟件開發(fā)活動(dòng),每一項(xiàng)活動(dòng)又可分解成一些軟件開發(fā)任務(wù)。

一、軟件開發(fā)過程13二、軟件開發(fā)方法對軟件開發(fā)方法的研究是軟件工程的重要內(nèi)容,軟件開發(fā)方法的發(fā)展主要有以下三個(gè)階段:第一階段(早期階段):該階段的特點(diǎn):程序設(shè)計(jì)基本上屬于個(gè)人活動(dòng)性質(zhì),程序員各行其是,并無統(tǒng)一的方法可循;這時(shí)的軟件開發(fā)方法稱為個(gè)性化軟件開發(fā)。二、軟件開發(fā)方法14第二階段(20世紀(jì)60年代后期興起的結(jié)構(gòu)化開發(fā)方法):該階段的特點(diǎn):采用結(jié)構(gòu)化的方法來編寫程序,不僅可以改善程序的清晰度,而且也能提高軟件的可靠性與生產(chǎn)率。有效的開發(fā)應(yīng)該包括“需求分析”、“軟件設(shè)計(jì)”、“編碼”等多個(gè)階段。結(jié)構(gòu)化的思想擴(kuò)展到分析階段和設(shè)計(jì)階段,于是形成了“結(jié)構(gòu)化分析”與“結(jié)構(gòu)化設(shè)計(jì)”等結(jié)構(gòu)化軟件開發(fā)。第二階段(20世紀(jì)60年代后期興起的結(jié)構(gòu)化開發(fā)方法):15第三階段(80年代以后出現(xiàn)的面向?qū)ο蟪绦蛟O(shè)計(jì)方法):該階段的特點(diǎn):該階段出現(xiàn)的C++、Java等語言,促進(jìn)了面向?qū)ο蟪绦蛟O(shè)計(jì)的廣泛流行。僅僅使用面向?qū)ο蟪绦蛟O(shè)計(jì)不會(huì)產(chǎn)生最好的效果。只有在軟件開發(fā)的早期乃至全過程都采用面向?qū)ο蠹夹g(shù),才能更好地發(fā)揮該技術(shù)的固有優(yōu)勢。形成了包括“面向?qū)ο笮枨蠓治觥嫦驅(qū)ο笤O(shè)計(jì)—面向?qū)ο缶幋a”在內(nèi)的面向?qū)ο筌浖_發(fā)方法。第三階段(80年代以后出現(xiàn)的面向?qū)ο蟪绦蛟O(shè)計(jì)方法):16三、軟件開發(fā)工具1.軟件工具軟件工具是幫助開發(fā)軟件的軟件,它們對提高軟件生產(chǎn)率,促進(jìn)軟件生產(chǎn)的自動(dòng)化都有重要的作用。編譯程序、編輯程序、連接程序以及支持它們的計(jì)算機(jī)操作系統(tǒng),都屬于軟件工具。三、軟件開發(fā)工具172.軟件開發(fā)工具的分類分類方法按應(yīng)用階段劃分

按功能劃分設(shè)計(jì)工具分析工具項(xiàng)目管理軟件配置質(zhì)量保證分析設(shè)計(jì)計(jì)劃工具界面開發(fā)客戶服務(wù)器Web開發(fā)2.軟件開發(fā)工具的分類分類按應(yīng)用階段劃分按功能劃分設(shè)計(jì)181.5.5Web應(yīng)用程序開發(fā)與

Web工程類似于軟件與軟件工程1.5.5Web應(yīng)用程序開發(fā)與

Web工程類似于軟件與軟件19軟件與軟件工程一、軟件和計(jì)算機(jī)硬件一樣,從20世紀(jì)60年代以來,軟件也從規(guī)模、功能等方面得到了很大的發(fā)展,人們對軟件質(zhì)量的要求也越來越高。什么是軟件,軟件有哪些特征呢?軟件與軟件工程201.軟件的定義有些初學(xué)者認(rèn)為軟件就是程序,這個(gè)理解是不完全的。美國著名的軟件工程專家R.S.Pressman的定義:軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序和使程序正常執(zhí)行所需要的數(shù)據(jù),加上描述程序的操作和使用的文檔。可以簡明地表述,“軟件=程序+數(shù)據(jù)+文檔”。軟件被劃分為系統(tǒng)軟件、應(yīng)用軟件和介于這兩者之間的中間件。1.軟件的定義212.軟件的特征①軟件開發(fā)不同于硬件設(shè)計(jì)軟件設(shè)計(jì)更依賴于開發(fā)人員的業(yè)務(wù)素質(zhì)、智力,以及人員的組織、合作和管理,而硬件設(shè)計(jì)與人的關(guān)系相對要小一些。硬件設(shè)計(jì)的成本一般只占整個(gè)產(chǎn)品成本的一小部分,而軟件開發(fā)的成本很難估算,通常占整個(gè)產(chǎn)品成本的大部分。2.軟件的特征22②軟件生產(chǎn)不同于硬件制造

硬件設(shè)計(jì)完成后就投入批量制造,制造也是一個(gè)復(fù)雜的過程;而軟件成為產(chǎn)品之后,其制造則是簡單的拷貝。③軟件維護(hù)不同于硬件維修

硬件是物理的,軟件是邏輯的,雖然軟件不會(huì)磨損和老化,但在使用過程中的維護(hù)比硬件復(fù)雜的多。如果軟件內(nèi)部的邏輯關(guān)系比較復(fù)雜,在維護(hù)過程中還可能產(chǎn)生新的錯(cuò)誤。②軟件生產(chǎn)不同于硬件制造233.軟件危機(jī)①出現(xiàn)軟件危機(jī)的原因軟件成本不斷提高(包括開發(fā)成本和維護(hù)成本);軟件質(zhì)量難以保障;軟件生產(chǎn)技術(shù)進(jìn)步緩慢;②軟件危機(jī),使許多產(chǎn)業(yè)界人士認(rèn)識(shí)到必須把軟件生產(chǎn)從個(gè)人化方式改變?yōu)楣こ袒绞?,從而?dǎo)致了軟件工程的誕生。3.軟件危機(jī)24二、軟件工程1.軟件工程的概念軟件工程的基本理念是“按工程的概念、原理、技術(shù)和方法開發(fā)與維護(hù)計(jì)算機(jī)軟件”?!败浖こ獭币辉~,首先是1968年北大西洋公約組織(NATO)在聯(lián)邦德國召開的一次會(huì)議上提出的。人們從不同的角度,給軟件工程下過各種定義。但是不論有多少種說法,它的中心思想,是把軟件當(dāng)作一種工業(yè)產(chǎn)品,要求“采用工程化的原理與方法對軟件進(jìn)行計(jì)劃、開發(fā)和維護(hù)”。軟件工程的三個(gè)要素:方法、工具、過程

二、軟件工程252.軟件工程的基本原則軟件工程圍繞工程設(shè)計(jì)、工程支持以及工程管理,提出了以下四條基本原則:第一,選取適宜開發(fā)范型。第二,采用合適的設(shè)計(jì)方法。第三,提供高質(zhì)量的工程支持。第四,重視開發(fā)過程的管理。

大量事實(shí)說明,只有堅(jiān)持軟件工程的四條基本原則,既重視軟件技術(shù)的應(yīng)用,又重視軟件工程的支持和管理,并在實(shí)踐中貫徹實(shí)施,才能高效地開發(fā)出高質(zhì)量的軟件。2.軟件工程的基本原則26軟件工程的研究內(nèi)容基本問題1.軟件工程現(xiàn)在已成為一門新型的計(jì)算機(jī)學(xué)科,稱為“軟件工程學(xué)”。2.軟件工程學(xué)所包含的主要內(nèi)容:軟件工程的研究內(nèi)容27YogeshDeshpande和SteveHansen在1998年就提出了Web工程的概念。Web工程作為一門新興的學(xué)科,提倡使用一個(gè)過程和系統(tǒng)的方法來開發(fā)高質(zhì)量的基于Web的系統(tǒng)。它"使用合理的、科學(xué)的工程和管理原則,用嚴(yán)密的和系統(tǒng)的方法來開發(fā)、發(fā)布和維護(hù)基于Web的系統(tǒng)"。YogeshDeshpande和SteveHansen在28Web工程不是軟件工程的完全克隆,但是它借用了軟件工程的許多基本概念和原理,強(qiáng)調(diào)了相同的技術(shù)和管理活動(dòng)Web工程不是軟件工程的完全克隆,但是它借用了軟件工程的許多291.6Web應(yīng)用程序開發(fā)模型1.6Web應(yīng)用程序開發(fā)模型30軟件開發(fā)模型基本問題1.軟件開發(fā)模型提出的原因軟件有生存周期,一個(gè)軟件從開始計(jì)劃起,到廢棄不用止,稱為軟件的生存周期。軟件生存周期包括計(jì)劃、開發(fā)與運(yùn)行三個(gè)時(shí)期,每一時(shí)期又可細(xì)分為若干個(gè)更小的階段。給每個(gè)階段賦予確定然而有限的任務(wù),就能簡化每一步的工作內(nèi)容。要開發(fā)一個(gè)高質(zhì)量的軟件產(chǎn)品,首先要根據(jù)軟件生存期為各項(xiàng)開發(fā)活動(dòng)的流程確定一個(gè)合理的框架,稱為軟件生存期模型或軟件開發(fā)模型。軟件開發(fā)模型31軟件計(jì)劃軟件開發(fā)軟件運(yùn)行問題定義可行性研究需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測試維護(hù)或退役軟件計(jì)劃軟件開發(fā)軟件運(yùn)行問題定義可行性研究需求分析概要設(shè)計(jì)詳322.軟件開發(fā)模型的分類線性模型原型模型演化模型基于構(gòu)件的模型形式化模型2.軟件開發(fā)模型的分類33一、線性模型(瀑布模型)1.什么是線性模型

線性模型也稱為瀑布模型或生存周期模型,在這種模型中,各個(gè)階段的工作順序展開,恰如奔流不息拾級(jí)而下的瀑布,總是從上面的臺(tái)階依次流向下面的臺(tái)階。2.線性模型將軟件生存期劃分為哪三個(gè)時(shí)期(1)計(jì)劃時(shí)期(包括問題定義和可行性研究兩個(gè)階段)(2)開發(fā)時(shí)期(包括需求分析、系統(tǒng)設(shè)計(jì)、編碼和測試四個(gè)階段)(3)運(yùn)行時(shí)期(主要包括系統(tǒng)維護(hù)階段)一、線性模型(瀑布模型)343.軟件生成周期各階段的主要任務(wù)(1)計(jì)劃時(shí)期計(jì)劃時(shí)期的主要任務(wù)是調(diào)查和分析:調(diào)查用戶需求,分析新系統(tǒng)的主要目標(biāo),分析開發(fā)該系統(tǒng)的可行性。問題定義:主要弄清“用戶需要計(jì)算機(jī)解決什么問題”??尚行匝芯浚耗康氖菫樯弦徊教岢龅膯栴}尋求一種至數(shù)種在技術(shù)上可行、且在經(jīng)濟(jì)上有較高效益的可操作解決方案。3.軟件生成周期各階段的主要任務(wù)35(2)開發(fā)時(shí)期開發(fā)時(shí)期要完成設(shè)計(jì)和實(shí)現(xiàn)兩大任務(wù)。設(shè)計(jì)任務(wù)用需求分析、軟件設(shè)計(jì)兩個(gè)階段完成。實(shí)現(xiàn)任務(wù)用編碼和測試兩階段完成。需求分析:其任務(wù)在于弄清用戶對軟件系統(tǒng)的全部需求,并用“需求規(guī)格說明書”的形式準(zhǔn)確地表達(dá)出來。軟件設(shè)計(jì):主要任務(wù)是將需求轉(zhuǎn)變?yōu)檐浖谋硎拘问?,可?xì)分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)方面。編碼:即按照選定的語言,把設(shè)計(jì)的過程性描述翻譯為源程序。測試:是對編碼階段所完成的源程序進(jìn)行測試,可細(xì)分為單元測試、綜合測試、確認(rèn)測試和系統(tǒng)測試等步驟。(2)開發(fā)時(shí)期36(3)運(yùn)行時(shí)期運(yùn)行時(shí)期是軟件生存周期的最后一個(gè)時(shí)期,主要是做好軟件維護(hù)。維護(hù)目的是使軟件在整個(gè)生存周期內(nèi)保證滿足用戶的需求和延長使用壽命。(3)運(yùn)行時(shí)期374.線性模型的特點(diǎn)階段間具有順序性和依賴性:上一階段的變換結(jié)果是下一階段變換的輸入,相鄰兩個(gè)階段具有因果關(guān)系,每個(gè)階段完成任務(wù)后,都必須進(jìn)行階段性評審,確認(rèn)之后再轉(zhuǎn)入下一個(gè)階段。文檔驅(qū)動(dòng)性:要求每個(gè)階段必須完成規(guī)定的文檔;每個(gè)階段結(jié)束前完成文檔審查,以便盡早發(fā)現(xiàn)問題并改正錯(cuò)誤。4.線性模型的特點(diǎn)385.線性模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn):可強(qiáng)迫開發(fā)人員采用規(guī)范的方法,嚴(yán)格提交文檔,做好階段評審,從而使軟件過程易于管理和控制,有利于軟件的質(zhì)量保障。缺點(diǎn):要求軟件開發(fā)初期就要給出軟件系統(tǒng)的全部需求,開發(fā)周期比較長,承擔(dān)的風(fēng)險(xiǎn)也比較大。5.線性模型的優(yōu)缺點(diǎn)39二、原型模型1.什么是原型模型

首先建立一個(gè)能夠反映用戶主要需求的原型,讓用戶實(shí)際看一看未來系統(tǒng)的概貌,以便判斷哪些功能是符合需要的,哪些方面還需要改進(jìn)。然后將原型反復(fù)改進(jìn),最終建立完全符合用戶要求的新系統(tǒng)。2.原型模型開發(fā)軟件的過程如下圖所示:二、原型模型40

需求分析原型開發(fā)最終系統(tǒng)設(shè)計(jì)原型評價(jià)最終系統(tǒng)實(shí)現(xiàn)用戶反饋原型模型的過程示意圖需求分析原型開發(fā)最終系統(tǒng)設(shè)計(jì)原型評價(jià)最終系統(tǒng)實(shí)現(xiàn)用戶原型模413.原型模型的特點(diǎn)原型驅(qū)動(dòng)性:整個(gè)軟件過程圍繞著原型的快速開發(fā)和對原型的評價(jià),通過原型確認(rèn)用戶需求,以及通過原型的反復(fù)修改最終得到用戶確認(rèn)的軟件定義。過程的交互性和迭代性:軟件開發(fā)過程是由開發(fā)人員與用戶之間通過原型的評價(jià)和確認(rèn)而進(jìn)行的一個(gè)交互過程。而且這個(gè)過程不是簡單的重復(fù),而是不斷改進(jìn)和迭代過程。3.原型模型的特點(diǎn)424.原型模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn):允許用戶在軟件開發(fā)過程中完善對軟件系統(tǒng)的需求,開發(fā)周期相對有所縮短,成本比較低,有效地發(fā)揮用戶和開發(fā)人員之間的密切配合作用,使軟件過程更能體現(xiàn)逐步發(fā)展、逐步完善的原則。缺點(diǎn):頻繁的需求變化會(huì)使開發(fā)進(jìn)程難于管理和控制,原型的快速開發(fā)和修改對技術(shù)要求比較高,需要有較好的工作基礎(chǔ)。

4.原型模型的優(yōu)缺點(diǎn)43三、演化模型1.什么是演化模型

它遵迭代的思想方法,使開發(fā)的軟件在迭代過程中逐步得到完善,一般適用于大型軟件的開發(fā)。常見的演化模型又有增量模型和螺旋模型兩種。2.增量模型(1)基本思想:增量模型是瀑布模型的順序特征與快速原型法的迭代特征相結(jié)合的產(chǎn)物,該模型把軟件看作一系列相互聯(lián)系的增量,每個(gè)增量是小而可運(yùn)行的程序,在開發(fā)過程的各次迭代中,每次完成一個(gè)增量。三、演化模型44(2)結(jié)構(gòu)示意圖

規(guī)格說明設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶規(guī)格說明設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶增量2規(guī)格說明設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶增量n增量1增量模型示意圖(2)結(jié)構(gòu)示意圖規(guī)格說明設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶規(guī)格說明設(shè)45(3)增量模型的特點(diǎn)過程漸進(jìn)性:軟件過程分批次完成,每次提交一個(gè)滿足用戶需求子集的增量構(gòu)件,產(chǎn)品規(guī)模逐漸增大,直至得到滿足用戶全部需求的完整產(chǎn)品為止。(4)增量模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn):能在較短的時(shí)間內(nèi)向用戶提交部分功能的構(gòu)件,并且在逐步增加產(chǎn)品功能的過程中有充裕的時(shí)間學(xué)習(xí)和適應(yīng)新的功能,減少一個(gè)全新軟件可能給用戶帶來的沖擊。缺點(diǎn):增量構(gòu)件的劃分依賴于系統(tǒng)功能的構(gòu)成和軟件開發(fā)人員的經(jīng)驗(yàn),每次集成新的增量構(gòu)件必須不破壞原有軟件系統(tǒng)的結(jié)構(gòu),因此要求軟件系統(tǒng)的體系結(jié)構(gòu)必須具有高度的開放性和可擴(kuò)充性(3)增量模型的特點(diǎn)463.螺旋模型(1)基本思想①螺旋模型將瀑布模型與原型模型結(jié)合起來,并且加入兩種模型均忽略了的風(fēng)險(xiǎn)分析。②螺旋模型沿著螺線順時(shí)針旋轉(zhuǎn),自內(nèi)向外每旋轉(zhuǎn)一圈便開發(fā)出更完善的一個(gè)新版本。③每一個(gè)螺旋周期均包含四個(gè)步驟:制定計(jì)劃確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開發(fā)的限制條件;風(fēng)險(xiǎn)分析分析所選方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn);實(shí)施工程實(shí)施軟件開發(fā);客戶評估評價(jià)開發(fā),提出修正建議。3.螺旋模型47(2)結(jié)構(gòu)示意圖

(2)結(jié)構(gòu)示意圖48(3)特點(diǎn)模型結(jié)合型:螺旋模型的每一個(gè)周期都應(yīng)用了原型模型排除風(fēng)險(xiǎn),在確認(rèn)了原型之后,則又啟動(dòng)瀑布模型繼續(xù)過程的演化。因此螺旋模型是瀑布模型和原型模型的結(jié)合,體現(xiàn)了兩個(gè)模型的優(yōu)點(diǎn)。過程迭代性:軟件開發(fā)過程的每個(gè)階段都是一次迭代,這種迭代不是過程的簡單重復(fù),而是每旋轉(zhuǎn)一個(gè)圈就前進(jìn)一個(gè)層次,得到一個(gè)新的版本。(3)特點(diǎn)49(4)優(yōu)缺點(diǎn)優(yōu)點(diǎn):強(qiáng)調(diào)可選方案和約束條件有利于已有軟件的重用,有助于把軟件質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo),減少過多或測試不足帶來的風(fēng)險(xiǎn)。缺點(diǎn):要求軟件開發(fā)人員具有豐富的風(fēng)險(xiǎn)評估經(jīng)驗(yàn)和有關(guān)的專門知識(shí),開發(fā)過程比較復(fù)雜,給過程管理和控制帶來一定的難度。(4)優(yōu)缺點(diǎn)50四、基于構(gòu)件的模型1.什么是基于構(gòu)件的模型

就是利用預(yù)先封裝好的軟件構(gòu)件來構(gòu)造應(yīng)用軟件系統(tǒng),它融合了螺旋模型的特征,支持軟件開發(fā)的迭代方法。2.用構(gòu)件來構(gòu)造軟件系統(tǒng)的過程如下圖所示四、基于構(gòu)件的模型51

確定候選構(gòu)件查找構(gòu)件庫復(fù)用所查到構(gòu)件開發(fā)候選構(gòu)件開始下一輪迭代集成構(gòu)件確定候選構(gòu)件查找構(gòu)件庫復(fù)用所查到構(gòu)件開發(fā)候選構(gòu)件開始下一輪523.基于構(gòu)件的開發(fā)模型的特點(diǎn)采用了先進(jìn)的面向?qū)ο蠹夹g(shù)。

基于構(gòu)件庫的開發(fā),這是軟件復(fù)用的基礎(chǔ),開發(fā)速度快。

融合了螺旋模型特征支持軟件開發(fā)的迭代方法。3.基于構(gòu)件的開發(fā)模型的特點(diǎn)53五、形式化模型1.轉(zhuǎn)換模型(1)轉(zhuǎn)換模型是結(jié)合形式化軟件開發(fā)方法和程序自動(dòng)生成技術(shù)的一種軟件開發(fā)模型。它采用嚴(yán)格的、數(shù)學(xué)的表示體系來表示軟件規(guī)格說明,然后進(jìn)行一系列自動(dòng)或半自動(dòng)的程序變換,最后轉(zhuǎn)換為計(jì)算機(jī)系統(tǒng)能夠接受的目標(biāo)程序系統(tǒng)。(2)轉(zhuǎn)換模型的軟件開發(fā)過程如下圖所示五、形式化模型54

形式化規(guī)格說明與需求比較后修正變換2變換1變換n測試形式化開發(fā)記錄系統(tǒng)需求目標(biāo)系統(tǒng)形式化與需求比較后修正變換2變換1變換n形式化開發(fā)記錄系統(tǒng)552.凈室模型(1)凈室模型是一種形式化的增量開發(fā)模型。其基本思想是力求在分析和設(shè)計(jì)階段就消除錯(cuò)誤,確保正確,然后在無缺陷或“潔凈”的狀態(tài)下實(shí)現(xiàn)軟件的制作。(2)和增量模型一樣,凈室開發(fā)把軟件看成一系列的增量,每個(gè)增量是一個(gè)形式化方式表示的“盒”。(3)凈室模型的軟件開發(fā)流程如下圖所示2.凈室模型56

需求收集盒結(jié)構(gòu)規(guī)約形式化設(shè)計(jì)統(tǒng)計(jì)性使用測試正確性證明代碼生成與檢查測試計(jì)劃認(rèn)證增量1增量2增量n需求收集盒結(jié)構(gòu)規(guī)約形式化設(shè)計(jì)統(tǒng)計(jì)性使用測試正確性證明代碼生成與檢查測試計(jì)劃認(rèn)證需求收集盒結(jié)構(gòu)規(guī)約形式化設(shè)計(jì)統(tǒng)計(jì)性使用測試正確性證明代碼生成與檢查測試計(jì)劃認(rèn)證需求盒結(jié)構(gòu)形式化統(tǒng)計(jì)性使正確性代碼生成測試計(jì)劃增量1增量257軟件開發(fā)模型小結(jié):每一種模型都適用于軟件開發(fā)的某類問題,它們各有優(yōu)缺點(diǎn)。軟件開發(fā)組織應(yīng)該選擇適合于本組織及其管理、人員的軟件開發(fā)模型,而且隨著當(dāng)前正在開發(fā)的特定產(chǎn)品的特性而變化。在實(shí)際開發(fā)中,有時(shí)也可以把幾種模型組合在一起使用,以便取長補(bǔ)短。軟件開發(fā)模型小結(jié):581.7Web應(yīng)用程序開發(fā)的

環(huán)境配置1.7Web應(yīng)用程序開發(fā)的

環(huán)境配置59祝學(xué)習(xí)愉快!謝謝同學(xué)們!祝學(xué)習(xí)愉快!謝謝同學(xué)們!60第1章Web應(yīng)用程序開發(fā)技術(shù)基礎(chǔ)

1.1Web發(fā)展歷史1.2Web應(yīng)用程序的基本概念1.3Web應(yīng)用程序的體系結(jié)構(gòu)1.4Web應(yīng)用程序的工作環(huán)境1.5Web應(yīng)用程序開發(fā)的技術(shù)內(nèi)容1.6Web應(yīng)用程序開發(fā)模型1.7Web應(yīng)用程序開發(fā)的環(huán)境配置第1章Web應(yīng)用程序開發(fā)技術(shù)基礎(chǔ)611.1Web發(fā)展歷史1.1Web發(fā)展歷史621.2Web應(yīng)用程序的基本概念1.2.1Web應(yīng)用程序的含義1.2.2Web應(yīng)用程序的特點(diǎn)1.2Web應(yīng)用程序的基本概念1.2.1Web應(yīng)用程序的631.2.1Web應(yīng)用程序的含義1.2.1Web應(yīng)用程序的含義641.2.2Web應(yīng)用程序的特點(diǎn)(1)基于HTTP(2)簡單、統(tǒng)一的用戶接口(3)非對稱、概率性的訪問模式1.2.2Web應(yīng)用程序的特點(diǎn)(1)基于HTTP651.3Web應(yīng)用程序的體系結(jié)構(gòu)1.3.12層體系結(jié)構(gòu)1.3.23層體系結(jié)構(gòu)1.3.34層體系結(jié)構(gòu)1.3Web應(yīng)用程序的體系結(jié)構(gòu)1.3.12層體系結(jié)構(gòu)661.4Web應(yīng)用程序的工作環(huán)境1.4.1因特網(wǎng)初步分析1.4.2Web原理分析1.4Web應(yīng)用程序的工作環(huán)境1.4.1因特網(wǎng)初步分析671.5Web應(yīng)用程序開發(fā)的技術(shù)內(nèi)容1.5.1Web應(yīng)用程序開發(fā)的需求1.5.2Web應(yīng)用程序的執(zhí)行過程1.5.3Web應(yīng)用程序的開發(fā)步驟1.5.4Web應(yīng)用程序開發(fā)技術(shù)的層次性1.5.5Web應(yīng)用程序開發(fā)與Web工程1.5Web應(yīng)用程序開發(fā)的技術(shù)內(nèi)容1.5.1Web應(yīng)用程681.5.1Web應(yīng)用程序開發(fā)的需求Web應(yīng)用程序開發(fā)的含義一方面,Web需要應(yīng)用程序一方面,應(yīng)用程序需要Web1.5.1Web應(yīng)用程序開發(fā)的需求Web應(yīng)用程序開發(fā)的含義691.5.2Web應(yīng)用程序的執(zhí)行過程與“動(dòng)態(tài)萬維網(wǎng)文檔與CGI技術(shù)”中提到的執(zhí)行過程基本一致。1.5.2Web應(yīng)用程序的執(zhí)行過程與“動(dòng)態(tài)萬維網(wǎng)文檔與C701.5.3Web應(yīng)用程序的開發(fā)步驟開發(fā)Web應(yīng)用程序是一件非常辛苦的事情,你需要花大把大把的時(shí)間來做無數(shù)的事情。假如你不運(yùn)用有條理的方法,尤其是在復(fù)雜的項(xiàng)目中,你會(huì)承受忽視項(xiàng)目,不能按時(shí)完成,浪費(fèi)時(shí)間一無所獲的風(fēng)險(xiǎn)。一般的Web應(yīng)用程序開發(fā)流程分為五個(gè)主要的階段:(1)系統(tǒng)分析;(2)系統(tǒng)設(shè)計(jì);(3)系統(tǒng)實(shí)現(xiàn);(4)系統(tǒng)測試;(5)系統(tǒng)維護(hù)。1.5.3Web應(yīng)用程序的開發(fā)步驟開發(fā)We711.5.4Web應(yīng)用程序開發(fā)技術(shù)的層次性軟件開發(fā)過程軟件開發(fā)方法軟件開發(fā)工具1.5.4Web應(yīng)用程序開發(fā)技術(shù)的層次性軟件開發(fā)過程72一、軟件開發(fā)過程1.

所謂軟件開發(fā)過程是指開發(fā)一個(gè)最終能滿足需求且達(dá)到目標(biāo)的軟件產(chǎn)品所需要的步驟。2.軟件開發(fā)過程主要包括:系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)測試以及系統(tǒng)維護(hù)等活動(dòng)。3.軟件開發(fā)過程是為了獲得軟件產(chǎn)品或是為了完成軟件工程項(xiàng)目需要完成的有關(guān)軟件開發(fā)活動(dòng),每一項(xiàng)活動(dòng)又可分解成一些軟件開發(fā)任務(wù)。

一、軟件開發(fā)過程73二、軟件開發(fā)方法對軟件開發(fā)方法的研究是軟件工程的重要內(nèi)容,軟件開發(fā)方法的發(fā)展主要有以下三個(gè)階段:第一階段(早期階段):該階段的特點(diǎn):程序設(shè)計(jì)基本上屬于個(gè)人活動(dòng)性質(zhì),程序員各行其是,并無統(tǒng)一的方法可循;這時(shí)的軟件開發(fā)方法稱為個(gè)性化軟件開發(fā)。二、軟件開發(fā)方法74第二階段(20世紀(jì)60年代后期興起的結(jié)構(gòu)化開發(fā)方法):該階段的特點(diǎn):采用結(jié)構(gòu)化的方法來編寫程序,不僅可以改善程序的清晰度,而且也能提高軟件的可靠性與生產(chǎn)率。有效的開發(fā)應(yīng)該包括“需求分析”、“軟件設(shè)計(jì)”、“編碼”等多個(gè)階段。結(jié)構(gòu)化的思想擴(kuò)展到分析階段和設(shè)計(jì)階段,于是形成了“結(jié)構(gòu)化分析”與“結(jié)構(gòu)化設(shè)計(jì)”等結(jié)構(gòu)化軟件開發(fā)。第二階段(20世紀(jì)60年代后期興起的結(jié)構(gòu)化開發(fā)方法):75第三階段(80年代以后出現(xiàn)的面向?qū)ο蟪绦蛟O(shè)計(jì)方法):該階段的特點(diǎn):該階段出現(xiàn)的C++、Java等語言,促進(jìn)了面向?qū)ο蟪绦蛟O(shè)計(jì)的廣泛流行。僅僅使用面向?qū)ο蟪绦蛟O(shè)計(jì)不會(huì)產(chǎn)生最好的效果。只有在軟件開發(fā)的早期乃至全過程都采用面向?qū)ο蠹夹g(shù),才能更好地發(fā)揮該技術(shù)的固有優(yōu)勢。形成了包括“面向?qū)ο笮枨蠓治觥嫦驅(qū)ο笤O(shè)計(jì)—面向?qū)ο缶幋a”在內(nèi)的面向?qū)ο筌浖_發(fā)方法。第三階段(80年代以后出現(xiàn)的面向?qū)ο蟪绦蛟O(shè)計(jì)方法):76三、軟件開發(fā)工具1.軟件工具軟件工具是幫助開發(fā)軟件的軟件,它們對提高軟件生產(chǎn)率,促進(jìn)軟件生產(chǎn)的自動(dòng)化都有重要的作用。編譯程序、編輯程序、連接程序以及支持它們的計(jì)算機(jī)操作系統(tǒng),都屬于軟件工具。三、軟件開發(fā)工具772.軟件開發(fā)工具的分類分類方法按應(yīng)用階段劃分

按功能劃分設(shè)計(jì)工具分析工具項(xiàng)目管理軟件配置質(zhì)量保證分析設(shè)計(jì)計(jì)劃工具界面開發(fā)客戶服務(wù)器Web開發(fā)2.軟件開發(fā)工具的分類分類按應(yīng)用階段劃分按功能劃分設(shè)計(jì)781.5.5Web應(yīng)用程序開發(fā)與

Web工程類似于軟件與軟件工程1.5.5Web應(yīng)用程序開發(fā)與

Web工程類似于軟件與軟件79軟件與軟件工程一、軟件和計(jì)算機(jī)硬件一樣,從20世紀(jì)60年代以來,軟件也從規(guī)模、功能等方面得到了很大的發(fā)展,人們對軟件質(zhì)量的要求也越來越高。什么是軟件,軟件有哪些特征呢?軟件與軟件工程801.軟件的定義有些初學(xué)者認(rèn)為軟件就是程序,這個(gè)理解是不完全的。美國著名的軟件工程專家R.S.Pressman的定義:軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序和使程序正常執(zhí)行所需要的數(shù)據(jù),加上描述程序的操作和使用的文檔??梢院喢鞯乇硎?,“軟件=程序+數(shù)據(jù)+文檔”。軟件被劃分為系統(tǒng)軟件、應(yīng)用軟件和介于這兩者之間的中間件。1.軟件的定義812.軟件的特征①軟件開發(fā)不同于硬件設(shè)計(jì)軟件設(shè)計(jì)更依賴于開發(fā)人員的業(yè)務(wù)素質(zhì)、智力,以及人員的組織、合作和管理,而硬件設(shè)計(jì)與人的關(guān)系相對要小一些。硬件設(shè)計(jì)的成本一般只占整個(gè)產(chǎn)品成本的一小部分,而軟件開發(fā)的成本很難估算,通常占整個(gè)產(chǎn)品成本的大部分。2.軟件的特征82②軟件生產(chǎn)不同于硬件制造

硬件設(shè)計(jì)完成后就投入批量制造,制造也是一個(gè)復(fù)雜的過程;而軟件成為產(chǎn)品之后,其制造則是簡單的拷貝。③軟件維護(hù)不同于硬件維修

硬件是物理的,軟件是邏輯的,雖然軟件不會(huì)磨損和老化,但在使用過程中的維護(hù)比硬件復(fù)雜的多。如果軟件內(nèi)部的邏輯關(guān)系比較復(fù)雜,在維護(hù)過程中還可能產(chǎn)生新的錯(cuò)誤。②軟件生產(chǎn)不同于硬件制造833.軟件危機(jī)①出現(xiàn)軟件危機(jī)的原因軟件成本不斷提高(包括開發(fā)成本和維護(hù)成本);軟件質(zhì)量難以保障;軟件生產(chǎn)技術(shù)進(jìn)步緩慢;②軟件危機(jī),使許多產(chǎn)業(yè)界人士認(rèn)識(shí)到必須把軟件生產(chǎn)從個(gè)人化方式改變?yōu)楣こ袒绞?,從而?dǎo)致了軟件工程的誕生。3.軟件危機(jī)84二、軟件工程1.軟件工程的概念軟件工程的基本理念是“按工程的概念、原理、技術(shù)和方法開發(fā)與維護(hù)計(jì)算機(jī)軟件”?!败浖こ獭币辉~,首先是1968年北大西洋公約組織(NATO)在聯(lián)邦德國召開的一次會(huì)議上提出的。人們從不同的角度,給軟件工程下過各種定義。但是不論有多少種說法,它的中心思想,是把軟件當(dāng)作一種工業(yè)產(chǎn)品,要求“采用工程化的原理與方法對軟件進(jìn)行計(jì)劃、開發(fā)和維護(hù)”。軟件工程的三個(gè)要素:方法、工具、過程

二、軟件工程852.軟件工程的基本原則軟件工程圍繞工程設(shè)計(jì)、工程支持以及工程管理,提出了以下四條基本原則:第一,選取適宜開發(fā)范型。第二,采用合適的設(shè)計(jì)方法。第三,提供高質(zhì)量的工程支持。第四,重視開發(fā)過程的管理。

大量事實(shí)說明,只有堅(jiān)持軟件工程的四條基本原則,既重視軟件技術(shù)的應(yīng)用,又重視軟件工程的支持和管理,并在實(shí)踐中貫徹實(shí)施,才能高效地開發(fā)出高質(zhì)量的軟件。2.軟件工程的基本原則86軟件工程的研究內(nèi)容基本問題1.軟件工程現(xiàn)在已成為一門新型的計(jì)算機(jī)學(xué)科,稱為“軟件工程學(xué)”。2.軟件工程學(xué)所包含的主要內(nèi)容:軟件工程的研究內(nèi)容87YogeshDeshpande和SteveHansen在1998年就提出了Web工程的概念。Web工程作為一門新興的學(xué)科,提倡使用一個(gè)過程和系統(tǒng)的方法來開發(fā)高質(zhì)量的基于Web的系統(tǒng)。它"使用合理的、科學(xué)的工程和管理原則,用嚴(yán)密的和系統(tǒng)的方法來開發(fā)、發(fā)布和維護(hù)基于Web的系統(tǒng)"。YogeshDeshpande和SteveHansen在88Web工程不是軟件工程的完全克隆,但是它借用了軟件工程的許多基本概念和原理,強(qiáng)調(diào)了相同的技術(shù)和管理活動(dòng)Web工程不是軟件工程的完全克隆,但是它借用了軟件工程的許多891.6Web應(yīng)用程序開發(fā)模型1.6Web應(yīng)用程序開發(fā)模型90軟件開發(fā)模型基本問題1.軟件開發(fā)模型提出的原因軟件有生存周期,一個(gè)軟件從開始計(jì)劃起,到廢棄不用止,稱為軟件的生存周期。軟件生存周期包括計(jì)劃、開發(fā)與運(yùn)行三個(gè)時(shí)期,每一時(shí)期又可細(xì)分為若干個(gè)更小的階段。給每個(gè)階段賦予確定然而有限的任務(wù),就能簡化每一步的工作內(nèi)容。要開發(fā)一個(gè)高質(zhì)量的軟件產(chǎn)品,首先要根據(jù)軟件生存期為各項(xiàng)開發(fā)活動(dòng)的流程確定一個(gè)合理的框架,稱為軟件生存期模型或軟件開發(fā)模型。軟件開發(fā)模型91軟件計(jì)劃軟件開發(fā)軟件運(yùn)行問題定義可行性研究需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測試維護(hù)或退役軟件計(jì)劃軟件開發(fā)軟件運(yùn)行問題定義可行性研究需求分析概要設(shè)計(jì)詳922.軟件開發(fā)模型的分類線性模型原型模型演化模型基于構(gòu)件的模型形式化模型2.軟件開發(fā)模型的分類93一、線性模型(瀑布模型)1.什么是線性模型

線性模型也稱為瀑布模型或生存周期模型,在這種模型中,各個(gè)階段的工作順序展開,恰如奔流不息拾級(jí)而下的瀑布,總是從上面的臺(tái)階依次流向下面的臺(tái)階。2.線性模型將軟件生存期劃分為哪三個(gè)時(shí)期(1)計(jì)劃時(shí)期(包括問題定義和可行性研究兩個(gè)階段)(2)開發(fā)時(shí)期(包括需求分析、系統(tǒng)設(shè)計(jì)、編碼和測試四個(gè)階段)(3)運(yùn)行時(shí)期(主要包括系統(tǒng)維護(hù)階段)一、線性模型(瀑布模型)943.軟件生成周期各階段的主要任務(wù)(1)計(jì)劃時(shí)期計(jì)劃時(shí)期的主要任務(wù)是調(diào)查和分析:調(diào)查用戶需求,分析新系統(tǒng)的主要目標(biāo),分析開發(fā)該系統(tǒng)的可行性。問題定義:主要弄清“用戶需要計(jì)算機(jī)解決什么問題”??尚行匝芯浚耗康氖菫樯弦徊教岢龅膯栴}尋求一種至數(shù)種在技術(shù)上可行、且在經(jīng)濟(jì)上有較高效益的可操作解決方案。3.軟件生成周期各階段的主要任務(wù)95(2)開發(fā)時(shí)期開發(fā)時(shí)期要完成設(shè)計(jì)和實(shí)現(xiàn)兩大任務(wù)。設(shè)計(jì)任務(wù)用需求分析、軟件設(shè)計(jì)兩個(gè)階段完成。實(shí)現(xiàn)任務(wù)用編碼和測試兩階段完成。需求分析:其任務(wù)在于弄清用戶對軟件系統(tǒng)的全部需求,并用“需求規(guī)格說明書”的形式準(zhǔn)確地表達(dá)出來。軟件設(shè)計(jì):主要任務(wù)是將需求轉(zhuǎn)變?yōu)檐浖谋硎拘问剑杉?xì)分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)方面。編碼:即按照選定的語言,把設(shè)計(jì)的過程性描述翻譯為源程序。測試:是對編碼階段所完成的源程序進(jìn)行測試,可細(xì)分為單元測試、綜合測試、確認(rèn)測試和系統(tǒng)測試等步驟。(2)開發(fā)時(shí)期96(3)運(yùn)行時(shí)期運(yùn)行時(shí)期是軟件生存周期的最后一個(gè)時(shí)期,主要是做好軟件維護(hù)。維護(hù)目的是使軟件在整個(gè)生存周期內(nèi)保證滿足用戶的需求和延長使用壽命。(3)運(yùn)行時(shí)期974.線性模型的特點(diǎn)階段間具有順序性和依賴性:上一階段的變換結(jié)果是下一階段變換的輸入,相鄰兩個(gè)階段具有因果關(guān)系,每個(gè)階段完成任務(wù)后,都必須進(jìn)行階段性評審,確認(rèn)之后再轉(zhuǎn)入下一個(gè)階段。文檔驅(qū)動(dòng)性:要求每個(gè)階段必須完成規(guī)定的文檔;每個(gè)階段結(jié)束前完成文檔審查,以便盡早發(fā)現(xiàn)問題并改正錯(cuò)誤。4.線性模型的特點(diǎn)985.線性模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn):可強(qiáng)迫開發(fā)人員采用規(guī)范的方法,嚴(yán)格提交文檔,做好階段評審,從而使軟件過程易于管理和控制,有利于軟件的質(zhì)量保障。缺點(diǎn):要求軟件開發(fā)初期就要給出軟件系統(tǒng)的全部需求,開發(fā)周期比較長,承擔(dān)的風(fēng)險(xiǎn)也比較大。5.線性模型的優(yōu)缺點(diǎn)99二、原型模型1.什么是原型模型

首先建立一個(gè)能夠反映用戶主要需求的原型,讓用戶實(shí)際看一看未來系統(tǒng)的概貌,以便判斷哪些功能是符合需要的,哪些方面還需要改進(jìn)。然后將原型反復(fù)改進(jìn),最終建立完全符合用戶要求的新系統(tǒng)。2.原型模型開發(fā)軟件的過程如下圖所示:二、原型模型100

需求分析原型開發(fā)最終系統(tǒng)設(shè)計(jì)原型評價(jià)最終系統(tǒng)實(shí)現(xiàn)用戶反饋原型模型的過程示意圖需求分析原型開發(fā)最終系統(tǒng)設(shè)計(jì)原型評價(jià)最終系統(tǒng)實(shí)現(xiàn)用戶原型模1013.原型模型的特點(diǎn)原型驅(qū)動(dòng)性:整個(gè)軟件過程圍繞著原型的快速開發(fā)和對原型的評價(jià),通過原型確認(rèn)用戶需求,以及通過原型的反復(fù)修改最終得到用戶確認(rèn)的軟件定義。過程的交互性和迭代性:軟件開發(fā)過程是由開發(fā)人員與用戶之間通過原型的評價(jià)和確認(rèn)而進(jìn)行的一個(gè)交互過程。而且這個(gè)過程不是簡單的重復(fù),而是不斷改進(jìn)和迭代過程。3.原型模型的特點(diǎn)1024.原型模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn):允許用戶在軟件開發(fā)過程中完善對軟件系統(tǒng)的需求,開發(fā)周期相對有所縮短,成本比較低,有效地發(fā)揮用戶和開發(fā)人員之間的密切配合作用,使軟件過程更能體現(xiàn)逐步發(fā)展、逐步完善的原則。缺點(diǎn):頻繁的需求變化會(huì)使開發(fā)進(jìn)程難于管理和控制,原型的快速開發(fā)和修改對技術(shù)要求比較高,需要有較好的工作基礎(chǔ)。

4.原型模型的優(yōu)缺點(diǎn)103三、演化模型1.什么是演化模型

它遵迭代的思想方法,使開發(fā)的軟件在迭代過程中逐步得到完善,一般適用于大型軟件的開發(fā)。常見的演化模型又有增量模型和螺旋模型兩種。2.增量模型(1)基本思想:增量模型是瀑布模型的順序特征與快速原型法的迭代特征相結(jié)合的產(chǎn)物,該模型把軟件看作一系列相互聯(lián)系的增量,每個(gè)增量是小而可運(yùn)行的程序,在開發(fā)過程的各次迭代中,每次完成一個(gè)增量。三、演化模型104(2)結(jié)構(gòu)示意圖

規(guī)格說明設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶規(guī)格說明設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶增量2規(guī)格說明設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶增量n增量1增量模型示意圖(2)結(jié)構(gòu)示意圖規(guī)格說明設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶規(guī)格說明設(shè)105(3)增量模型的特點(diǎn)過程漸進(jìn)性:軟件過程分批次完成,每次提交一個(gè)滿足用戶需求子集的增量構(gòu)件,產(chǎn)品規(guī)模逐漸增大,直至得到滿足用戶全部需求的完整產(chǎn)品為止。(4)增量模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn):能在較短的時(shí)間內(nèi)向用戶提交部分功能的構(gòu)件,并且在逐步增加產(chǎn)品功能的過程中有充裕的時(shí)間學(xué)習(xí)和適應(yīng)新的功能,減少一個(gè)全新軟件可能給用戶帶來的沖擊。缺點(diǎn):增量構(gòu)件的劃分依賴于系統(tǒng)功能的構(gòu)成和軟件開發(fā)人員的經(jīng)驗(yàn),每次集成新的增量構(gòu)件必須不破壞原有軟件系統(tǒng)的結(jié)構(gòu),因此要求軟件系統(tǒng)的體系結(jié)構(gòu)必須具有高度的開放性和可擴(kuò)充性(3)增量模型的特點(diǎn)1063.螺旋模型(1)基本思想①螺旋模型將瀑布模型與原型模型結(jié)合起來,并且加入兩種模型均忽略了的風(fēng)險(xiǎn)分析。②螺旋模型沿著螺線順時(shí)針旋轉(zhuǎn),自

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論