Web工程過(guò)程及其中MVC模式的應(yīng)用
作者:orangelizq 2007-05
摘 要
近年來(lái),基于Web的應(yīng)用系統(tǒng)的開(kāi)發(fā)備受關(guān)注。Web應(yīng)用系統(tǒng)有著自己獨(dú)特的屬性,Web系統(tǒng)的開(kāi)發(fā)也不同于傳統(tǒng)的軟件開(kāi)發(fā)。根據(jù)這些屬性和特征討論了結(jié)構(gòu)化的分析和設(shè)計(jì)方法以及螺旋模型在Web開(kāi)發(fā)過(guò)程中的應(yīng)用,并且具體分析了目前廣泛流行的MVC設(shè)計(jì)模式在Web工程中應(yīng)用的優(yōu)點(diǎn)。
關(guān)鍵詞:Web工程;軟件工程;MVC模式;結(jié)構(gòu)化方法;螺旋模型
Web Engineering Process And The Application of MVC Model
Abstract
In recent years, the development of Web-based application system has attracted much attention. Web application system has its own unique attributes and it is different from the traditional software system. Based on these attributes and characteristics, this paper discussed the application of structural analysis and design methods and spiral model in WebApp, then specific analysis the advantages of MVC model in WebApp.
Keywords:web Engineering;software Engineering;MVC model;structured methods;
spiral model
一、引言
隨著Internet和Intranet/Extranet的快速增長(zhǎng),web已經(jīng)對(duì)商業(yè)、工業(yè)、銀行、財(cái)政、教育、政府和娛樂(lè)及我們的工作和生活產(chǎn)生了深遠(yuǎn)的影響。許多傳統(tǒng)的信息和數(shù)據(jù)庫(kù)系統(tǒng)正在被移植到互聯(lián)網(wǎng)上,以電子商務(wù)為典型代表的應(yīng)用系統(tǒng)越來(lái)越普及。尤其在現(xiàn)代企業(yè)應(yīng)用中,各種信息系統(tǒng)在原來(lái)的基礎(chǔ)上,由基于C/S方式向基于B/S方式轉(zhuǎn)換,逐漸過(guò)渡為基于Web的MIS、ERP、EIP乃至CIM 的企業(yè)業(yè)務(wù)IT系統(tǒng),從而使企業(yè)管理不再局限于企業(yè)內(nèi)部,而是通過(guò)Internet擴(kuò)展到遍布全球的客戶(hù)、供應(yīng)商、合作伙伴等各個(gè)環(huán)節(jié)[1]。
澳大利亞的Yogesh Deshpande和Steve Hansen在1998年就提出了Web工程的概念,他們認(rèn)為Web工程是用系統(tǒng)的、嚴(yán)密的、可以測(cè)量的方法來(lái)開(kāi)發(fā)、實(shí)施和維護(hù)基于Web的應(yīng)用或基于Web的軟件的工程應(yīng)用[2]。
然而傳統(tǒng)軟件工程方法和技術(shù)應(yīng)用到基于Web的系統(tǒng)開(kāi)發(fā)中,顯得力不從心。目前,Web系統(tǒng)開(kāi)發(fā)缺乏嚴(yán)格和系統(tǒng)的方法,很少有人注意開(kāi)發(fā)方法、度量和評(píng)估技術(shù)、系統(tǒng)質(zhì)量和項(xiàng)目管理。隨著Web應(yīng)用系統(tǒng)的規(guī)模和復(fù)雜程度的不斷提高,使得基于Web的應(yīng)用越來(lái)越顯得以開(kāi)發(fā)、管理和維護(hù)。一個(gè)Web項(xiàng)目的失敗將可能導(dǎo)致很多問(wèn)題。當(dāng)這種情況發(fā)生時(shí),人們對(duì)Web和Internet的信心可能會(huì)無(wú)法挽救地動(dòng)搖,從而引起Web危機(jī)[3]。并且,Web危機(jī)可能會(huì)比軟件開(kāi)發(fā)人員所面對(duì)的軟件危機(jī)更加嚴(yán)重、更加廣泛。因此軟件開(kāi)發(fā)人員迫切需要工程化的Web工程方法和新的對(duì)基于Web的系統(tǒng)和應(yīng)用的開(kāi)發(fā)、部署及評(píng)估的方法和工具。
二、Web工程的特征
基于Web的系統(tǒng)和應(yīng)用(簡(jiǎn)稱(chēng)為WebApp)不同于其他的軟件類(lèi)別,它們具有自身獨(dú)特的一些屬性,因此基于WebApp的開(kāi)發(fā)過(guò)程和方法也必將不同于傳統(tǒng)軟件工程的過(guò)程和方法。一個(gè)典型的WebApp應(yīng)該具有以下屬性[4]:
l 網(wǎng)絡(luò)集約性:一個(gè)典型的WebApp是網(wǎng)絡(luò)集約的。它駐留于網(wǎng)絡(luò)上,并且必須服務(wù)于變化多樣的客戶(hù)群落的需要。
l 內(nèi)容驅(qū)動(dòng)性:在多數(shù)情況下,一個(gè)WebApp的主要功能是使用超媒體來(lái)表示文本、圖形、音頻和視頻內(nèi)容給終端用戶(hù)。
l 持續(xù)演化性:不同于傳統(tǒng)的按一系列規(guī)劃的時(shí)間間隔的發(fā)布進(jìn)行演化的應(yīng)用軟件,Web應(yīng)用持續(xù)地演化。對(duì)于某些WebApp而言,甚至是以小時(shí)為單位進(jìn)行更新。
而基于WebApp的開(kāi)發(fā)又應(yīng)該具有以下特性[4]:
l 即時(shí)性:基于Web的應(yīng)用具有其他任何軟件類(lèi)型中都沒(méi)有的即時(shí)性。一個(gè)完整的Web站點(diǎn)的應(yīng)市時(shí)間可能是幾天或幾周。
l 安全性:由于WebApp是通過(guò)網(wǎng)絡(luò)訪問(wèn)可達(dá)的,為了保護(hù)敏感的內(nèi)容和提供安全的數(shù)據(jù)傳輸模式,在整個(gè)支持WebApp的基礎(chǔ)設(shè)施和應(yīng)用本身內(nèi)部必須實(shí)現(xiàn)強(qiáng)的安全措施。
l 美學(xué):Web比通常意義上的軟件開(kāi)發(fā)使藝術(shù)和技術(shù)在更大范圍內(nèi)得到結(jié)合。美學(xué)可能和技術(shù)設(shè)計(jì)在同樣的程度上決定應(yīng)用的成功。
三、Web工程的實(shí)施方法
在了解了Web工程特有的屬性和特征后,便需要一個(gè)能夠滿(mǎn)足這些的特征的工程化的Web工程方法和新的對(duì)基于Web的系統(tǒng)和應(yīng)用的開(kāi)發(fā)、部署及評(píng)估的方法和工具。
3.1 Web開(kāi)發(fā)團(tuán)隊(duì)
開(kāi)發(fā)大型的基于Web的系統(tǒng)需要有一個(gè)具有不同技能、知識(shí)和能力的人組成的團(tuán)隊(duì),這些開(kāi)發(fā)人員所具有的技能和知識(shí)層次結(jié)構(gòu)可組成一個(gè)三維技能空間,這三維分別是管理、技術(shù)和人員交流[5]。管理技能包括調(diào)整、規(guī)劃和把Web系統(tǒng)與已經(jīng)存在的信息系統(tǒng)集成;技術(shù)技能包括計(jì)算、網(wǎng)絡(luò)和Internet通訊;人員交流技能包括圖形設(shè)計(jì)、布局、人員通訊、表達(dá)技能等。
根據(jù)實(shí)踐,可以把參加開(kāi)發(fā)Web項(xiàng)目的人員分為七類(lèi),分別是:Web決策人員、內(nèi)容提供人員、Web開(kāi)發(fā)人員、Web發(fā)布人員、Web支持人員、Web管理人員、最終用戶(hù)。其結(jié)構(gòu)如圖3.1所示[2]。

圖3.1 Web開(kāi)發(fā)團(tuán)隊(duì)結(jié)構(gòu)示意圖[2]
這種分類(lèi)是分等級(jí)的但又有重疊的地方。在每一個(gè)類(lèi)別中根據(jù)技能或行為標(biāo)準(zhǔn)不同,又定義了不同的級(jí)別。一個(gè)人可以屬于不止一個(gè)類(lèi)別,起不同的作用。
3.2 Web開(kāi)發(fā)過(guò)程
Web系統(tǒng)的即時(shí)性和持續(xù)演化性要求一個(gè)迭代的、增量的過(guò)程模型,以速射的序列生產(chǎn)WebApp發(fā)布。
3.2.1 使用結(jié)構(gòu)化的分析和設(shè)計(jì)方法[6]
Web工程的實(shí)施不適合使用面向?qū)ο蟮能浖_(kāi)發(fā)方法進(jìn)行系統(tǒng)分析和設(shè)計(jì)。因?yàn)橐粋€(gè)Web應(yīng)用系統(tǒng)的開(kāi)發(fā)會(huì)遇到許多不可避免的不確定因素,這就很難從客戶(hù)真實(shí)系統(tǒng)中導(dǎo)出對(duì)象體系。如果強(qiáng)行按照面向?qū)ο蟮姆椒▽?duì)系統(tǒng)進(jìn)行分析設(shè)計(jì),勢(shì)必要考慮更多內(nèi)容,而與實(shí)際需求不一致時(shí)便會(huì)導(dǎo)致過(guò)度設(shè)計(jì)甚至重新設(shè)計(jì)[9],并且,一旦在實(shí)施中發(fā)現(xiàn)不合理設(shè)計(jì),修正的代價(jià)就可能極大。同時(shí),由于占有相當(dāng)比重Web頁(yè)面開(kāi)發(fā)的Web應(yīng)用包含大量基于文件的Web資源,缺乏抽象概念,缺乏繼承和組裝這樣的重用機(jī)制,這使得面向?qū)ο蟮拈_(kāi)發(fā)方法顯得力不從心。
另一方面,Web應(yīng)用強(qiáng)調(diào)結(jié)構(gòu)清晰簡(jiǎn)潔、符合用戶(hù)思維的功能導(dǎo)航,這與具有“自頂向下、逐步求精”分解方法的結(jié)構(gòu)化分析設(shè)計(jì)思想相吻合。作為軟件工程中技術(shù)最為成熟、應(yīng)用最廣且非常有效的一種軟件開(kāi)發(fā)方法,結(jié)構(gòu)化方法的理論概念和實(shí)踐方法已廣為人知,并取得廣泛的成功。因而使用結(jié)構(gòu)化的方法分析和設(shè)計(jì)Web應(yīng)用系統(tǒng),可以更多地借鑒傳統(tǒng)軟件系統(tǒng)的成功開(kāi)發(fā)經(jīng)驗(yàn),這更利于構(gòu)成復(fù)雜的開(kāi)發(fā)團(tuán)隊(duì)中成員之間的溝通,可以更方便地實(shí)現(xiàn)下文中將要提到的螺旋模型,從而成功實(shí)施Web工程。
結(jié)構(gòu)化方法是將一個(gè)復(fù)雜的大型系統(tǒng)自頂向下地分解成一個(gè)個(gè)簡(jiǎn)單的系統(tǒng),用系統(tǒng)工程的思想和工程化的模式對(duì)系統(tǒng)進(jìn)行功能分解和結(jié)構(gòu)設(shè)計(jì),從內(nèi)部功能上模擬客觀世界。結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析(SA)方法、結(jié)構(gòu)化設(shè)計(jì)(SD)方法、結(jié)構(gòu)化編程(SP)方法。根據(jù)分析方法的不同,又可分為面向數(shù)據(jù)流的和面向數(shù)據(jù)結(jié)構(gòu)的兩大類(lèi)。本文所討論的是開(kāi)發(fā)步驟明確、適用范圍更廣的面向數(shù)據(jù)流的結(jié)構(gòu)化軟件開(kāi)發(fā)方法。
面向數(shù)據(jù)流的結(jié)構(gòu)化軟件開(kāi)發(fā)方法使用由簡(jiǎn)單易讀的圖形符號(hào)構(gòu)成的數(shù)據(jù)流圖表達(dá),根據(jù)系統(tǒng)內(nèi)部的數(shù)據(jù)傳遞和變換關(guān)系,自頂向下逐層分解,描繪出滿(mǎn)足功能要求的系統(tǒng)邏輯模型。設(shè)計(jì)階段依據(jù)模塊獨(dú)立性準(zhǔn)則、軟件結(jié)構(gòu)準(zhǔn)則(軟件結(jié)構(gòu)包括變換型和事務(wù)型兩種典型類(lèi)型),將數(shù)據(jù)流圖轉(zhuǎn)換為應(yīng)用系統(tǒng)的體系結(jié)構(gòu),進(jìn)而建立系統(tǒng)的物理模型,實(shí)現(xiàn)系統(tǒng)的概要設(shè)計(jì)[4]。
當(dāng)然,這里所強(qiáng)調(diào)的結(jié)構(gòu)化方法是指使用結(jié)構(gòu)化方法中的結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)計(jì),而在編碼實(shí)現(xiàn)階段,完全可以借助面向?qū)ο蟮目梢暬幊坦ぞ撸鶕?jù)實(shí)際需要準(zhǔn)確地抽取底層級(jí)別的對(duì)象并設(shè)計(jì)基類(lèi),從而利用繼承、重載等機(jī)制高質(zhì)量地重用代碼,簡(jiǎn)化結(jié)構(gòu),降低維護(hù)難度。這一點(diǎn)在應(yīng)用螺旋模型的系統(tǒng)開(kāi)發(fā)過(guò)程中,不斷循環(huán)調(diào)整結(jié)構(gòu)、優(yōu)化代碼以實(shí)現(xiàn)收斂逼近最優(yōu)結(jié)果時(shí)顯得尤為重要。
3.2.2 應(yīng)用螺旋模型
隨著大量傳統(tǒng)軟件系統(tǒng)的開(kāi)發(fā)實(shí)踐和經(jīng)驗(yàn)積累,多種軟件工程方法被總結(jié)出來(lái),而且對(duì)它們進(jìn)行了模型化,從而將相關(guān)方法從實(shí)踐上升到理論。而基于Web的應(yīng)用系統(tǒng),同樣作為一種軟件系統(tǒng),也可以借鑒應(yīng)用這些模型,從中吸取有益的經(jīng)驗(yàn),以便更有效、更便捷地實(shí)施Web工程。螺旋模型正是這樣一種同時(shí)適用于Web工程的軟件開(kāi)發(fā)模式[6]。
由于Web系統(tǒng)的即時(shí)性和持續(xù)演化性,使得需要一個(gè)迭代的、增量的過(guò)程模型。因?yàn)?/span>Web系統(tǒng)作為一個(gè)開(kāi)放的系統(tǒng),其用戶(hù)的形式具有多樣性,需要迎合具有不同技術(shù)和能力的用戶(hù),復(fù)雜化人機(jī)接口,用戶(hù)界面和信息提交。而且基于Web的系統(tǒng)將連續(xù)關(guān)注視覺(jué)和感覺(jué),強(qiáng)調(diào)感官舒服,在多種程度上與多媒體結(jié)合。因此用戶(hù)在開(kāi)發(fā)早期很難清楚地提供系統(tǒng)的完整需求,開(kāi)發(fā)人員也很難在系統(tǒng)開(kāi)發(fā)的需求分析階段完全正確地領(lǐng)會(huì)和定義用戶(hù)所提出的各項(xiàng)需求。而只有當(dāng)軟件成品擺放在用戶(hù)面前時(shí),用戶(hù)才能更加確認(rèn)需求,進(jìn)而激發(fā)新的需求甚至更改需求。這就很容易造成開(kāi)發(fā)出的Web系統(tǒng)需要付出高昂代價(jià)的后期需求變動(dòng),甚至導(dǎo)致項(xiàng)目失敗。
應(yīng)用螺旋模型[4]這一基于原型化開(kāi)發(fā)的進(jìn)化模型則可以很有效地解決這種問(wèn)題。這種開(kāi)發(fā)模型是自?xún)?nèi)向外以螺旋狀的形式進(jìn)化發(fā)展,每一個(gè)周期都要經(jīng)過(guò)計(jì)劃、分析、設(shè)計(jì)實(shí)現(xiàn)、用戶(hù)反饋等環(huán)節(jié),每一次循環(huán)的結(jié)果都生成一個(gè)增強(qiáng)的軟件版本,如圖3.2所示。

圖3.2 螺旋模型示意圖[6]
由圖中看出螺旋模型不是等一個(gè)開(kāi)發(fā)階段的工作完成以后才開(kāi)始下一個(gè)階段的工作,而是把傳統(tǒng)的分階段的軟件開(kāi)發(fā)方法融入到每一次螺旋循環(huán)當(dāng)中,生成用于驗(yàn)證預(yù)定用戶(hù)需求和可能的設(shè)計(jì)方案的中間系統(tǒng)原型,并通過(guò)用戶(hù)對(duì)原型的意見(jiàn)反饋探索和揭示新的需求。一旦獲得新的信息,就對(duì)原型進(jìn)行調(diào)整,除了進(jìn)一步求精外,還追加實(shí)現(xiàn)某些新的、已明確的用戶(hù)需求,從而進(jìn)入新一輪的螺旋循環(huán),逐步逼近最優(yōu)結(jié)果。需要注意的是,這種循環(huán)分析設(shè)計(jì)活動(dòng)不僅針對(duì)整個(gè)應(yīng)用系統(tǒng)的開(kāi)發(fā),而且可以同時(shí)在不同的模塊開(kāi)發(fā)中并行進(jìn)行。
應(yīng)用螺旋模型這種用戶(hù)驅(qū)動(dòng)的開(kāi)發(fā)模式,滿(mǎn)足了Web工程以用戶(hù)為中心的開(kāi)發(fā)要求,使用戶(hù)最大程度地參與到軟件的開(kāi)發(fā)過(guò)程中并起主導(dǎo)作用,可以在中間系統(tǒng)原形的基礎(chǔ)上進(jìn)一步清楚的闡述自己的微觀需求,這樣也使開(kāi)發(fā)者可以真正了解用戶(hù)的需求,并能對(duì)用戶(hù)的動(dòng)態(tài)需求作出及時(shí)的有效的處理,使開(kāi)發(fā)出來(lái)的系統(tǒng)更易于被用戶(hù)接受,有利于縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)風(fēng)險(xiǎn)。
四、MVC模式在Web開(kāi)發(fā)過(guò)程中的應(yīng)用
4.1 MVC設(shè)計(jì)模式簡(jiǎn)介
MVC模式就是一種目前廣泛流行的設(shè)計(jì)模式.它是Xerox PARC在20世紀(jì)80年代為編程語(yǔ)言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式舊。MVC是Model-View-Controller的簡(jiǎn)稱(chēng)。即模型-視圖-控制器[8]。MVC包括三類(lèi)對(duì)象.模型Model是應(yīng)用對(duì)象.視圖View是它在屏幕上的表示,控制器Controller定義用戶(hù)界面對(duì)用戶(hù)輸入的響應(yīng)方式。如圖4.1所示.
視圖(View)代表用戶(hù)交互界面,對(duì)于Web層來(lái)說(shuō),可以概括為HTML界面,也有可能為XHTML、XML和Applet。模型(Mode1)是業(yè)務(wù)流程,狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過(guò)程對(duì)其它層來(lái)說(shuō)是黑箱操作,模型接受視圖請(qǐng)求的數(shù)據(jù).并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計(jì)是MVC最主要的核心。業(yè)務(wù)模型還有一個(gè)很重要的模型就是數(shù)據(jù)模型。數(shù)據(jù)模型主要指實(shí)體對(duì)象的數(shù)據(jù)保存(持久化)。控制器(Controller)可以理解為從用戶(hù)接收請(qǐng)求.將模型與視圖匹配在一起。共同完成用戶(hù)的請(qǐng)求。

圖4.1 MVC模式示意圖
4.2 MVC設(shè)計(jì)模式在J2EE中的實(shí)現(xiàn)
為了更清楚地說(shuō)明問(wèn)題,下面介紹MVC設(shè)計(jì)模式在J2EE架構(gòu)中的實(shí)現(xiàn)。盡管MVC設(shè)計(jì)模式很早就出現(xiàn)了,但在WebApp中引入MVC確實(shí)非常困難的。主要原因是在早期的Web應(yīng)用的開(kāi)發(fā)中,程序設(shè)計(jì)語(yǔ)言和HTML的分離一直難以實(shí)現(xiàn),從而執(zhí)行業(yè)務(wù)邏輯的程序代碼和執(zhí)行表示的程序代碼混雜在一起,因而很難分離出單獨(dú)的業(yè)務(wù)模型。
為了解決以上問(wèn)題,Sun公司先后制定了兩種規(guī)范,稱(chēng)為JSP Model1和JSP Model2。雖然Model1在一定程度上實(shí)現(xiàn)了MVC,但是它的運(yùn)用并不理想,直到基于J2EE的JSP Model2出現(xiàn)才得以改觀。JSP Model2技術(shù)用JSP技術(shù)實(shí)現(xiàn)視圖的功能,用Servlet技術(shù)實(shí)現(xiàn)控制器的功能,用JavaBean技術(shù)實(shí)現(xiàn)模型的功能[8]。

圖4.2 JSP Model2示意圖
如圖4.2所示,JSP Model2體系結(jié)構(gòu)是一種聯(lián)合使用JSP和Servlet來(lái)提供動(dòng)態(tài)內(nèi)容服務(wù)的方法。它吸取了JSP和Servlet兩種技術(shù)各自的突出優(yōu)點(diǎn),用JSP生成表示層的內(nèi)容,讓Servlet來(lái)完成深層次的處理任務(wù)。它清晰地分離表達(dá)和內(nèi)容,明確了角色定義以及開(kāi)發(fā)者與網(wǎng)頁(yè)設(shè)計(jì)者的分工。
4.1 MVC模式應(yīng)用于Web工程過(guò)程中的優(yōu)勢(shì)
在詳細(xì)的MVC設(shè)計(jì)模式后,可以看出MVC模式可以滿(mǎn)足Web工程的網(wǎng)絡(luò)集約性,內(nèi)容驅(qū)動(dòng)性和持續(xù)演化性的要求。首先,多個(gè)視圖共享一個(gè)模型,從而使得同一個(gè)Web應(yīng)用程序可以提供多種用戶(hù)界面。例如用戶(hù)希望既能通過(guò)瀏覽器來(lái)收發(fā)電子郵件,又能通過(guò)手機(jī)來(lái)訪問(wèn)電子郵箱,這就要求Web網(wǎng)站同時(shí)提供Internet界面和WAP界面[8]。在MVC設(shè)計(jì)模式中,模型返回用戶(hù)請(qǐng)求并返回響應(yīng)數(shù)據(jù),視圖負(fù)責(zé)格式化數(shù)據(jù)并把它們呈現(xiàn)給用戶(hù),業(yè)務(wù)邏輯和表示層分離,同一個(gè)模型可以被不同的視圖重用,這樣就能夠滿(mǎn)足Web工程的網(wǎng)絡(luò)集約性要求,即同時(shí)服務(wù)于變化多樣的客戶(hù)群落。
其次,模型是自包含的,與控制器和視圖保持相對(duì)獨(dú)立,所以可以方便的改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。如將數(shù)據(jù)庫(kù)從MySQL移植到Oracle,或者把RDBMS數(shù)據(jù)源改變成LDAP數(shù)據(jù)源,只需要改變模型即可,一旦正確的實(shí)現(xiàn)了模型,視圖都會(huì)正確的顯示它們。由于MVC的三個(gè)模塊相互獨(dú)立,所以能夠構(gòu)造良好的松耦合的構(gòu)件。從而滿(mǎn)足Web工程的內(nèi)容驅(qū)動(dòng)性要求,可以方便的對(duì)數(shù)據(jù)進(jìn)行管理。
此外,控制器提高了應(yīng)用程序的靈活性和可配置性。控制器可以用來(lái)連接不同的模型和視圖去完成用戶(hù)的需求,也可以為構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段。給定一些可重用的模型和視圖,控制器可以根據(jù)用戶(hù)的需求去選擇適當(dāng)?shù)哪P瓦M(jìn)行處理,然后選擇適當(dāng)?shù)囊晥D將結(jié)果顯示給用戶(hù)。因而滿(mǎn)足Web工程的持續(xù)演化性需求,當(dāng)用戶(hù)的需求發(fā)生改變時(shí),只需要對(duì)其中的具體模型或視圖進(jìn)行修改即可,而整個(gè)系統(tǒng)的結(jié)構(gòu)不需要變化。
五、總結(jié)
文章首先討論了Web工程的各種屬性以及開(kāi)發(fā)Web工程的各種特性,然后討論了運(yùn)用結(jié)構(gòu)化的分析和設(shè)計(jì)方法來(lái)開(kāi)發(fā)Web工程,并將螺旋模型,這一迭代的、增量的過(guò)程模型應(yīng)用到Web工程開(kāi)發(fā)中,從而使得開(kāi)發(fā)者可以真正了解用戶(hù)的需求,并能對(duì)用戶(hù)的動(dòng)態(tài)需求做出及時(shí)的有效的處理,使開(kāi)發(fā)出來(lái)的系統(tǒng)更易于被用戶(hù)接受,有利于縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)風(fēng)險(xiǎn)。最后討論了目前廣泛流行的MVC設(shè)計(jì)模式在Web工程中的應(yīng)用,可以看出MVC模式的應(yīng)用使得螺旋模型得到更好的實(shí)施,能夠讓軟件在健壯性、代碼重用和結(jié)構(gòu)方面上一個(gè)新的臺(tái)階,大大提高軟件開(kāi)發(fā)的效率。
參考文獻(xiàn)
[1] 張友生. Web工程實(shí)踐研究[J]. 小型微型計(jì)算機(jī)系統(tǒng),2004,7
[2] 張友生. Web工程過(guò)程研究[J]. 計(jì)算機(jī)工程與應(yīng)用,2003,2
[3] Zelnick N.Nifty technology and nonconformance:The Web in crisis[J] .Computer,1998(10):115—119.
[4] (美)Roger S. Pressman 著,梅宏 譯,軟件工程--實(shí)踐者的研究方法[M],北京:機(jī)械工業(yè)出版社·2002,9
[5] Hansen S,Deshapande Y and M urugesan S. A classification based on skill hierarch for Web information system players [c].Proc ICSE Workshop on W eb Engineering.1999.
[6] 董寒松、李錚、尤楓、趙恒永. 基于結(jié)構(gòu)化方法和螺旋模型實(shí)施Web工程的探究[J]. 微型機(jī)與應(yīng)用,2005,11
[7] 張瓊聲、龐緒峰. Web工程及其應(yīng)用[J]. 油氣田地面工程,2003,10
[8] 孫衛(wèi)琴 著,精通Struts:基于MVC的Java Web設(shè)計(jì)與開(kāi)發(fā)[M],北京:電子工業(yè)出版社·2004,8
[9] Gamma E著,李英軍,馬曉星,蔡敏等譯.設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ).北京:機(jī)械工業(yè)出版社,2000
Author: orangelizq
email: orangelizq@163.com

歡迎大家訪問(wèn)我的個(gè)人網(wǎng)站
萌萌的IT人
posted on 2007-09-30 10:23
桔子汁 閱讀(1838)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
WebService 技術(shù)