原文地址:http://www.etc.edu.cn/articledigest38/web.htm
Web應(yīng)用開發(fā)方法研究
鹿旭東 萬建成
山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 濟(jì)南 250061
【摘要】目前,Web系統(tǒng)開發(fā)缺乏嚴(yán)格和系統(tǒng)的方法,大多數(shù)應(yīng)用開發(fā)和管理實(shí)踐在很大程度上依賴于開發(fā)人員個(gè)人的知識(shí)和經(jīng)驗(yàn),造成的后果是所開發(fā)的Web系統(tǒng)大多是低質(zhì)量的產(chǎn)品。而傳統(tǒng)的軟件工程方法不能適應(yīng)Web設(shè)計(jì)的要求,為此人們研究提出了眾多的Web開發(fā)方法。這些研究旨在提供全面支持Web應(yīng)用開發(fā)生命周期的模型和方法,但由于這些方法本身存在的局限性及其它方面的原因,還沒有得到廣泛的應(yīng)用。論文首先討論了成熟的Web開發(fā)方法應(yīng)該具有什么樣的特性和功能,然后分析了現(xiàn)有Web開發(fā)方法各自的特點(diǎn),最后總結(jié)了這些方法所存在的問題和今后的研究重點(diǎn)。
【關(guān)鍵詞】Web開發(fā)方法;Web工程;Web應(yīng)用
1 引言
隨著Intemet和Intranet、Extranet的快速增長(zhǎng),Web已經(jīng)對(duì)商業(yè)、工業(yè)、銀行、財(cái)政、教育、政府、娛樂及我們的工作和生活產(chǎn)生了深遠(yuǎn)的影響,許多傳統(tǒng)的信息和數(shù)據(jù)庫系統(tǒng)正在被移植到互聯(lián)網(wǎng)上。
但Web系統(tǒng)開發(fā)缺乏嚴(yán)格和系統(tǒng)的方法,很少有人注意開發(fā)方法、度量和評(píng)估技術(shù)、系統(tǒng)質(zhì)量和項(xiàng)目管理,當(dāng)前的大多數(shù)Web應(yīng)用開發(fā)和管理實(shí)踐在很大程度上依賴于開發(fā)人員個(gè)人的知識(shí)和經(jīng)驗(yàn),造成的后果是所開發(fā)的Web系統(tǒng)大多是低質(zhì)量的產(chǎn)品。而隨著基于Web的系統(tǒng)變得越來越復(fù)雜和重要,一個(gè)項(xiàng)目的失敗將可能導(dǎo)致很多問題,當(dāng)這種情況發(fā)生時(shí),人們對(duì)Web和Internet的信心可能會(huì)無法挽救地產(chǎn)生動(dòng)搖,從而引起Web危機(jī)。
澳大利亞的YogeshDeshpande和SteveHansen最早(1998年)提出了Web工程的概念,他們認(rèn)為Web工程是用系統(tǒng)的、嚴(yán)密的、可以測(cè)量的方法來開發(fā)、實(shí)施和維護(hù)基于Web的應(yīng)用或基于Web的軟件的工程應(yīng)用。
基于Web的應(yīng)用系統(tǒng)開發(fā)方法倍受關(guān)注,主要體現(xiàn)在Web應(yīng)用系統(tǒng)的開發(fā)和傳統(tǒng)軟件開發(fā)的顯著區(qū)別上,傳統(tǒng)軟件工程方法和技術(shù)應(yīng)用到基于Web的系統(tǒng)開發(fā)中,顯得力不從心問。在開發(fā)復(fù)雜的基于Web的系統(tǒng)中,為了避免Web危機(jī)的發(fā)生,達(dá)到更大的成功,迫切需要一個(gè)嚴(yán)格的步驟和新方法、新工具來開發(fā)、發(fā)布和評(píng)估基于Web的系統(tǒng)。
由于在Web應(yīng)用的開始階段,只是將Web作為信息中介和信息發(fā)布的平臺(tái)(簡(jiǎn)單的網(wǎng)站),因此,所提供的工具只是集中于網(wǎng)頁的創(chuàng)建和編輯,如微軟的FrontPage等。它們都限于被動(dòng)的超文本表示、網(wǎng)頁布局和部分的導(dǎo)航模型,缺乏系統(tǒng)的、結(jié)構(gòu)化的方法以及抽象、重用的支持。隨著Web應(yīng)用的規(guī)模和復(fù)雜度日益增加,Web已經(jīng)成為各種應(yīng)用的主要平臺(tái)。和傳統(tǒng)的Web站點(diǎn)相比,Web應(yīng)用程序不但支持導(dǎo)航和瀏覽,而且操作還會(huì)影響內(nèi)容和導(dǎo)航狀態(tài)。這使得Web應(yīng)用的開發(fā)變得更加復(fù)雜。目前Web應(yīng)用的工程化方法已經(jīng)成為Web應(yīng)用開發(fā)研究的熱點(diǎn),這些研究旨在提供能全面支持Web應(yīng)用開發(fā)生命周期的模型和方法。
成熟的Web開發(fā)方法應(yīng)該具有什么樣的特性和功能?現(xiàn)有的方法是否已經(jīng)具備這些特性?還有哪些差距?本文將對(duì)這些問題展開討論。
2 開發(fā)方法應(yīng)具備的特性
Web開發(fā)方法的目標(biāo)是系統(tǒng)化Web應(yīng)用的開發(fā)全過程,提高開發(fā)效率和開發(fā)質(zhì)量。為達(dá)到此目標(biāo),我們認(rèn)為,一個(gè)成熟的Web開發(fā)方法應(yīng)該具備以下的主要特征或功能:
易于掌握:開發(fā)方法的一個(gè)目的是為了減輕開發(fā)人員的工作量,所以應(yīng)該具有易于掌握的特點(diǎn),但這不應(yīng)以犧牲表達(dá)能力為代價(jià),即Web開發(fā)方法應(yīng)該能對(duì)Web程序的各個(gè)方面進(jìn)行全面詳細(xì)的描述。為平衡表達(dá)能力和掌握難度,可采用的方法是封裝細(xì)節(jié),對(duì)那些具有共性的細(xì)節(jié)進(jìn)行抽象,以模式的方式提供選擇,這樣開發(fā)方法為開發(fā)者提供的是高層次的設(shè)計(jì)概念和方法,掩藏了細(xì)節(jié),在不犧牲表達(dá)能力的基礎(chǔ)上降低了掌握難度,但必要時(shí)設(shè)計(jì)者仍然可以對(duì)細(xì)節(jié)進(jìn)行設(shè)計(jì)以滿足特殊的情況。另外,設(shè)計(jì)方法應(yīng)充分考慮用戶已有的設(shè)計(jì)經(jīng)驗(yàn)和技術(shù)。
對(duì)復(fù)雜系統(tǒng)建模的能力:Web應(yīng)用的范圍涵蓋從簡(jiǎn)單的靜態(tài)站點(diǎn)到動(dòng)態(tài)交互的Web應(yīng)用。近年來,Web應(yīng)用發(fā)展迅速,特別地,當(dāng)大量傳統(tǒng)信息和數(shù)據(jù)庫系統(tǒng)被移植到Web環(huán)境下,一種新型的Web應(yīng)用程序出現(xiàn)了,這些程序利用Web平臺(tái)支持和執(zhí)行商業(yè)過程以及工作流,例如出租和預(yù)訂服務(wù),虛擬拍賣、在線保險(xiǎn)等闖。成熟的Web開發(fā)方法應(yīng)該能適用這種需求,這就需要有對(duì)商業(yè)過程、工作流進(jìn)行建模的能力,并和Web系統(tǒng)設(shè)計(jì)的其他部分有機(jī)結(jié)合。
表現(xiàn)層建模的能力:傳統(tǒng)的設(shè)計(jì)方法一般不很重視界面設(shè)計(jì),而和傳統(tǒng)的軟件系統(tǒng)相比,Web系統(tǒng)表現(xiàn)設(shè)計(jì)有自己的特點(diǎn):(1)系統(tǒng)的很多高級(jí)功能體現(xiàn)在表現(xiàn)層,這需要提高界面的設(shè)計(jì)質(zhì)量;(2)界面中包含著大量的多媒體信息;(3)Web設(shè)計(jì)方法一般不僅給設(shè)計(jì)人員使用,而且需要給美工、編輯等使用,他們更關(guān)心系統(tǒng)的表現(xiàn)設(shè)計(jì)。所以Web開發(fā)方法需要能針對(duì)這些特點(diǎn)對(duì)表現(xiàn)層建模。
系統(tǒng)定制的支持:Web系統(tǒng)成功與否主要依賴于用戶的滿意程度。成功的Web系統(tǒng)應(yīng)該具有豐富的功能,易于使用的界面和定義良好的導(dǎo)航結(jié)構(gòu)。而為了達(dá)到更高的用戶滿意度,一個(gè)主要的技術(shù)是通過個(gè)性化定制把合適的內(nèi)容在合適的時(shí)間分發(fā)給合適的人。開發(fā)方法需要提供系統(tǒng)定制能力,這主要通過對(duì)用戶的定義和描述來完成,其中包括對(duì)用戶分組以及用戶之間聯(lián)系的處理。
模型集成和連通的能力:能夠在較高的抽象層次上表達(dá)系統(tǒng)和資源是怎樣集成的。一方面,在很多組織中,新開發(fā)的Web系統(tǒng)需要和以前存在的業(yè)務(wù)系統(tǒng)密切關(guān)聯(lián)。這些業(yè)務(wù)系統(tǒng)可能在不同的平臺(tái)和實(shí)現(xiàn)語言下開發(fā)。開發(fā)方法應(yīng)該能支持和這些遺產(chǎn)系統(tǒng)無縫連接。另一方面,組件的集成大部分依賴于接口描述,開發(fā)方法應(yīng)提供精確的和無二義的對(duì)組件接口建模和文檔化的能力;最后,Web系統(tǒng)需要和大量的資源和信息服務(wù)等相聯(lián)接,這些可能不局限于組織內(nèi)部,開發(fā)方法應(yīng)提供表達(dá)和存取機(jī)制。
自動(dòng)生成能力:能否提供自動(dòng)生成能力以及能力的大小是Web開發(fā)方法成熟度的一個(gè)重要衡量標(biāo)準(zhǔn),理想的開發(fā)方法應(yīng)能提供從模型描述到運(yùn)行、配置代碼的自動(dòng)生成。
工具和文檔支持:理想的工具應(yīng)能支持在用戶參與下,完成從需求確定到實(shí)現(xiàn)維護(hù)的整個(gè)開發(fā)過程。豐富的文檔支持是設(shè)計(jì)者能否掌握開發(fā)方法的重要方面。可以說,工具和文檔的支持能力是開發(fā)方法能否得到廣泛應(yīng)用的關(guān)鍵。
3 Web開發(fā)方法研究現(xiàn)狀
認(rèn)識(shí)到Web開發(fā)的重要性,近年來,一些系統(tǒng)化開發(fā)Web應(yīng)用的方法應(yīng)運(yùn)而生,這些方法來源于不同領(lǐng)域的研究,來源于數(shù)據(jù)庫研究領(lǐng)域的有RMM、Araneus等,來源于多媒體研究領(lǐng)域的有HDM、WebML等,來源于面向?qū)ο笱芯款I(lǐng)域的有OOHDM、UWE、00-H等,圖1表示的是幾種典型Web應(yīng)用開發(fā)方法的演變過程。
Web應(yīng)用開發(fā)方法的共同點(diǎn)在于一般將Web系統(tǒng)模型分為領(lǐng)域模型、導(dǎo)航模型和展示模型,經(jīng)過概念建模、邏輯建模、物理建模和實(shí)現(xiàn)四個(gè)過程完成Web系統(tǒng)開發(fā)p)。其中領(lǐng)域、導(dǎo)航、展示模型分別描述系統(tǒng)的一個(gè)不同側(cè)面,可以看成是Web模型的不同視圖。
領(lǐng)域模型描述Web應(yīng)用中領(lǐng)域?qū)ο蠹捌潢P(guān)系,是導(dǎo)航模型的基礎(chǔ);展示模型描述Web頁面展示形式,是導(dǎo)航對(duì)象和導(dǎo)航行為的最終體現(xiàn);而導(dǎo)航模型是Web模型區(qū)別于傳統(tǒng)系統(tǒng)模型的重要部分,描述了Web應(yīng)用的導(dǎo)航特性,并起著銜接領(lǐng)域模型和展示模型的作用。
本文第二部分列出了Web開發(fā)方法應(yīng)該具備的主要特征和功能,下面我們將從這幾個(gè)方面考察幾個(gè)典型的Web開發(fā)方法已經(jīng)具備了哪些特性以及還存在哪些差距。
(1)HDM1ite
HDM(Hypermedia Design Method)是眾多Web設(shè)計(jì)方法的先驅(qū)者,HDM lite是HDM的進(jìn)一步發(fā)展。特別應(yīng)用于Web信息系統(tǒng)。主要是定義結(jié)構(gòu)、導(dǎo)航和表現(xiàn)。分別用HyperBase、Access、表現(xiàn)方案形式化。
HyperBase方案是一個(gè)擴(kuò)展的E-R實(shí)體關(guān)系圖。由實(shí)體、部件(實(shí)體子結(jié)構(gòu))、有類型的屬性、實(shí)體和部件間的語義鏈接、數(shù)級(jí)約束等構(gòu)成。Access方案描述HyperBase方案的進(jìn)入方式。包括traversals(描述從源到目標(biāo)的直接導(dǎo)航)、Collections(描述集合,可以嵌套定義,共分為8種子類型),另外還定義了導(dǎo)航模式(1ndex,GuidedTour,IndexedGuidedTour,ShowAll)。
HDMlite的表現(xiàn)模型是一系列樣式單的集合,使用類SGML的語法來表示。多個(gè)表現(xiàn)方案可以被映射到一個(gè)結(jié)構(gòu)導(dǎo)航方案但沒有提供設(shè)計(jì)結(jié)構(gòu)。表現(xiàn)方案的基本單元是PaSe。一個(gè)樣式單表針對(duì)一種特殊類型的頁面,從邏輯上看可分為兩層:布局層,每個(gè)頁面建模為一個(gè)Grid,Grid中的每個(gè)單元包含表示元素;元素層:有兩種類型的元素,內(nèi)置的和用戶定義的,所謂內(nèi)置元素是前面所涉及概念的表示抽象,用戶定義的則為圖形設(shè)計(jì)者設(shè)計(jì)的banners,applets等。
HDMlite的主要特點(diǎn)是為了自動(dòng)生成的目的對(duì)HDM做了適當(dāng)擴(kuò)充,完成從概念方案到邏輯表示乃至到物理表示的模型轉(zhuǎn)換。這些轉(zhuǎn)換被Autoweb系統(tǒng)工具支持,自動(dòng)產(chǎn)生程序數(shù)據(jù)方案、導(dǎo)航方案和表現(xiàn)方案。這些邏輯方案進(jìn)一步被用來自動(dòng)產(chǎn)生頁面。但此自動(dòng)生成主要是針對(duì)靜態(tài)只讀信息頁面。
(2)WebML
WebML(WebModelingLanguage)是W313(Web-basedIntelligentlnformationlnfrastructure)項(xiàng)目所定義的Web模型描述語言,是HDMlite的進(jìn)一步演化,是在概念層次上描述復(fù)雜Web應(yīng)用的符號(hào)體系,也被稱為“針對(duì)Web的UML"。它提供了圖形化高度抽象的Web應(yīng)用描述方法,并包括完整的設(shè)計(jì)過程和支撐工具。另外,WebML還支持XML語法,以便于利用代碼生成工具來自動(dòng)產(chǎn)生代碼。
在WebML開發(fā)設(shè)計(jì)過程中,對(duì)Web應(yīng)用的描述分為以下模型:結(jié)構(gòu)模型,通過實(shí)體和實(shí)體之間的關(guān)系來描述內(nèi)容層,為描述導(dǎo)出和計(jì)算信息,結(jié)構(gòu)模型還定義了一個(gè)簡(jiǎn)單的查詢語言侈媒體模型,描述Web應(yīng)用的多媒體特性,又分為組成模型和導(dǎo)航模型兩個(gè)子模型,組成模型描述頁面是由哪些數(shù)據(jù)單元組成的,導(dǎo)航模型描述頁面和組織單元是怎樣導(dǎo)航的;展示模型,使用抽象的XML語言來定義頁面的布局和圖形表現(xiàn);定制模型,主要是對(duì)用戶和用戶組進(jìn)行建模,對(duì)應(yīng)Web應(yīng)用的定制化需求。
WebML的導(dǎo)航模型是在組成模型的基礎(chǔ)上定義鏈接,體現(xiàn)導(dǎo)航的鏈接有上下文無關(guān)和上下文相關(guān)兩種類型。所謂上下文相關(guān)指的是鏈接的單元存在語義上的關(guān)系。在實(shí)際的應(yīng)用中,導(dǎo)航鏈接經(jīng)常以導(dǎo)航鏈的形式出現(xiàn),WebML還分析總結(jié)了多步索引、篩選索引、索引向?qū)Аh(huán)等Web導(dǎo)航模式來體現(xiàn)這些特征。
此外,后期的WebML版本可以采用擴(kuò)展數(shù)據(jù)和多媒體模型的方式來定義輕型的Web工作流。
(3)RMM
RMM(RelationshipManagementMethodology)是一種用于設(shè)計(jì)、構(gòu)建和維護(hù)Intranet及IntemetWeb系統(tǒng)的方法。它的根本目標(biāo)是降低動(dòng)態(tài)數(shù)據(jù)庫驅(qū)動(dòng)的Web站點(diǎn)的維護(hù)成本。它提倡系統(tǒng)進(jìn)行形象化表示,以便展開設(shè)計(jì)上的討論。它是一個(gè)迭代式過程,包括Web頁可視元素的分解,及這些元素與數(shù)據(jù)庫實(shí)體的關(guān)聯(lián)關(guān)系。RMM是一種用于動(dòng)態(tài)Web站點(diǎn)創(chuàng)建和維護(hù)的方案。
RMM受ER模型和HDM的影響。模型分為三層:內(nèi)容層、多媒體層和表示層。在RMM中內(nèi)容層是單獨(dú)建模的,而表示層是結(jié)合多媒體層定義的。提出了RMDM(RelationshipMan—agementDataModel)模型進(jìn)行形式定義。
在RMM中,領(lǐng)域模型由實(shí)體構(gòu)成,每個(gè)實(shí)體有多個(gè)屬性,而m—slice設(shè)計(jì)元素是對(duì)實(shí)體屬性的分組。在RMDM中,導(dǎo)航是通過6種進(jìn)入結(jié)構(gòu)支持的,分為實(shí)體內(nèi)和實(shí)體向?qū)Ш絻煞N。
RMM方法設(shè)計(jì)過程主要分為E-R設(shè)計(jì):領(lǐng)域模型設(shè)計(jì),采用E-R圖;Slice設(shè)計(jì):Web應(yīng)用設(shè)計(jì)中特有的一步,決定信息怎樣呈現(xiàn)給用戶,以及怎樣進(jìn)入,主要是對(duì)實(shí)體屬性進(jìn)行分組;導(dǎo)航設(shè)計(jì):設(shè)計(jì)導(dǎo)航路徑。利用進(jìn)入結(jié)構(gòu)和結(jié)構(gòu)組來組織。一般導(dǎo)航到實(shí)體的主要"Slice”,但也可以由設(shè)計(jì)者指定;轉(zhuǎn)換規(guī)則設(shè)計(jì):利用一系列轉(zhuǎn)換規(guī)則把RMDM圖中的元素轉(zhuǎn)換為目標(biāo)平臺(tái)上的對(duì)象,已經(jīng)有一些工具從RMDM轉(zhuǎn)換為HTML;用戶界面設(shè)計(jì):界面布局設(shè)計(jì);運(yùn)行行為設(shè)計(jì):鏈接途徑、歷史、導(dǎo)航機(jī)制實(shí)現(xiàn);構(gòu)建和測(cè)試:傳統(tǒng)的軟件工程步驟,特別測(cè)試所有導(dǎo)航路徑。
(4)Araneus(ADM)
Araneus是從數(shù)據(jù)庫研究領(lǐng)域發(fā)展而來的。Araneus中的內(nèi)容層采用ER模型對(duì)領(lǐng)域?qū)ο筮M(jìn)行建模,多媒體層把多媒體的設(shè)計(jì)分成概念設(shè)計(jì)和邏輯設(shè)計(jì)兩個(gè)階段,分別用NavigationConceptualModel(NCM,從RMM方法中發(fā)展而來)和AraneusDataModel(ADM)形式化。ADM允許基于頁面類型和鏈接描述站點(diǎn),而且一旦ADM方案建立后,一種特殊的語言Penelope就可以從數(shù)據(jù)庫結(jié)構(gòu)映射到超文本結(jié)構(gòu),并自動(dòng)生成HTML頁面。
Araneus中導(dǎo)航設(shè)計(jì)主要在概念設(shè)計(jì)階段完成,NCM中定義了三種節(jié)點(diǎn)類型和兩種鏈接類型來描述Web導(dǎo)航,描述包括哪些領(lǐng)域?qū)ο髮⒆鳛閷?dǎo)航對(duì)象出現(xiàn)在導(dǎo)航中,導(dǎo)航對(duì)象之間的導(dǎo)航路徑以及如何從源節(jié)點(diǎn)進(jìn)入感興趣信息。NCM模型完成后就可以建立ADM模型,ADM是用來建立頁面抽象描述的。
ADM的基礎(chǔ)特性是Page-Scheme符號(hào)。Page-Scheme是頁面抽象描述,實(shí)例是一個(gè)具有標(biāo)識(shí)(URL)和一組屬性的頁面。屬性有簡(jiǎn)單或復(fù)雜類型,如文本、圖片、聯(lián)接、列表等,提供兩種結(jié)構(gòu):異構(gòu)聯(lián)合(提供靈活性)和表單(主要針對(duì)動(dòng)態(tài)頁面)。
Araneus方法更強(qiáng)調(diào)內(nèi)容層和多媒體層的設(shè)計(jì)。著重于數(shù)據(jù)庫中的數(shù)據(jù)怎樣在頁面中呈現(xiàn),而且以自動(dòng)生成頁面為目標(biāo)。明確區(qū)分?jǐn)?shù)據(jù)庫設(shè)計(jì)和多媒體設(shè)計(jì),明確區(qū)分邏輯設(shè)計(jì)和概念設(shè)計(jì)是Araneus方法的一個(gè)特色。
為解決商業(yè)過程建模問題,Araneus2提供了一個(gè)機(jī)制使得構(gòu)成商業(yè)過程的活動(dòng)可以組織到一起。
(5)OOHDM
OOHDM(Obiect-orientedHypermediaDesignMethod)是Rossi等人在1998年提出的Web應(yīng)用程序開發(fā)方法。OOHDM的形式模型基礎(chǔ)前期是OMT,后期是UML,但都作了自己的擴(kuò)充。如屬性可以有多重類型等。
OOHDM把導(dǎo)航設(shè)計(jì)作為重要的一個(gè)階段分離出來并建立相應(yīng)的模型。導(dǎo)航模型又分為導(dǎo)航類模型(Navigationalclassmodel)和導(dǎo)航上下文模型(Navigationalcontextmodel)。導(dǎo)航類模型是領(lǐng)域模型在導(dǎo)航設(shè)計(jì)中映射的視圖,是通過面向?qū)ο蠖x語言對(duì)領(lǐng)域?qū)ο髮傩赃M(jìn)行組合或剪切,以及進(jìn)行屬性和關(guān)系篩選而建立的,模型元素為節(jié)點(diǎn)和鏈接,描述了導(dǎo)航對(duì)象及導(dǎo)航對(duì)象之間的導(dǎo)航關(guān)系。導(dǎo)航上下文模型中利用六種上下文元素描述導(dǎo)航空間結(jié)構(gòu),上下文是可以嵌套定義的。導(dǎo)航上下文模型中還有進(jìn)入結(jié)構(gòu)(向?qū)А⒑?jiǎn)單索引、動(dòng)態(tài)索引等)來描述進(jìn)入上下文和導(dǎo)航對(duì)象的結(jié)構(gòu)。
OOHDM主要采用類圖來描述靜態(tài)頁面的導(dǎo)航結(jié)構(gòu),至于導(dǎo)航的復(fù)雜行為語義,可以通過使用一個(gè)面向?qū)ο蟮臓顟B(tài)轉(zhuǎn)移模型NavigationCharts來描述。
OOHDM用AbstractDataView(ADV)來描述導(dǎo)航對(duì)象和其他界面對(duì)象如菜單條、按鈕等的結(jié)構(gòu)布局。界面復(fù)雜行為方面則采用ADVCharts來描述。
OOHDM后期的發(fā)展允許在原有模型上定義商業(yè)過程,即把商業(yè)過程作為基本的設(shè)計(jì)元素,而不再把商業(yè)過程看作是概念和導(dǎo)航設(shè)計(jì)的副產(chǎn)品。
OOHDM-Web是一個(gè)采用OOHDM描述的設(shè)計(jì)工具,但主要針對(duì)的是只讀的Web站點(diǎn)。軟件自動(dòng)生成由HTML代碼和OOHDM-Web函數(shù)庫調(diào)用相結(jié)合的頁面,所以它產(chǎn)生的頁面必須在OOHDM-Web環(huán)境下運(yùn)行。
(6)UME
UME(Nora Koch et a1,1999)基于OOHDM但采用UML作為統(tǒng)一的模型技術(shù)。如有需要,可以采用UML的擴(kuò)展機(jī)制stereotypcs和constraints。
UME導(dǎo)航設(shè)計(jì)的基礎(chǔ)是領(lǐng)域模型,輸出是導(dǎo)航模型。導(dǎo)航模型的建立被分為兩個(gè)過程,首先建立導(dǎo)航類模型然后是導(dǎo)航結(jié)構(gòu)模型。導(dǎo)航類模型是在領(lǐng)域模型上定義一個(gè)視圖,用來表示在Web應(yīng)用程序中哪些對(duì)象能夠被訪問以及對(duì)象之間的直接導(dǎo)航關(guān)系,一般用類圖來表示,模型元素是導(dǎo)航類和直接導(dǎo)航關(guān)聯(lián),是從領(lǐng)域模型中的類以及關(guān)聯(lián)映射過來的。導(dǎo)航結(jié)構(gòu)模型定義導(dǎo)航對(duì)象是怎樣被訪問的。它基于導(dǎo)航類模型,加入了一些模型元素來描述導(dǎo)航結(jié)構(gòu),這些元素包括菜單,索引,向?qū)В樵儯獠抗?jié)點(diǎn)和導(dǎo)航上下文。
UME將商業(yè)過程建立為單獨(dú)的模型,分析階段采用UseCase圖,進(jìn)一步的細(xì)節(jié)描述采用活動(dòng)圖,并定義和已經(jīng)存在的領(lǐng)域,導(dǎo)航和/或表現(xiàn)模型之間的關(guān)系。由于UME采用UML作為統(tǒng)一的模型符號(hào),模型之間的映射關(guān)系相對(duì)明確,但在UME中主要從設(shè)計(jì)方法角度提出了映射原則,缺乏模型映射關(guān)系描述機(jī)制,還無法做到真正的全自動(dòng)生成。UME和其他方法的區(qū)別在于和其他模型引入自己的符號(hào)不同,它采用的是標(biāo)準(zhǔn)的UML和擴(kuò)展。這樣可以利用現(xiàn)有的工具,模型的集成和連通能力得到了加強(qiáng)。
(7)00-H
OO-H(objectoriented-hypermedia)是一種面向?qū)ο蟮挠脕順?gòu)建復(fù)雜Web應(yīng)用程序的工程方法,所采用的形式模型是擴(kuò)展的UML。基于XML,和其他方法的主要區(qū)別在于能應(yīng)對(duì)復(fù)雜功能需求。主要著重Web界面和已有業(yè)務(wù)模型間的集成。提供了調(diào)用服務(wù)的機(jī)制。
在領(lǐng)域模型基礎(chǔ)上,OO-H增加了導(dǎo)航視圖和展示視圖,用來捕捉Web應(yīng)用的靜態(tài)和動(dòng)態(tài)特性。其中導(dǎo)航模型是通過為每一類用戶建立不同的NAD(NavigationAccessDiagram)來實(shí)現(xiàn)的。每個(gè)NAD對(duì)應(yīng)著相關(guān)用戶導(dǎo)航需求的信息、服務(wù)和導(dǎo)航路徑。當(dāng)NAD構(gòu)造后就可以根據(jù)映射規(guī)則生成默認(rèn)的用戶界面。
NAD的構(gòu)建基于四種類型的模型元素:導(dǎo)航類、導(dǎo)航目標(biāo)、導(dǎo)航鏈接和匯集。導(dǎo)航類是導(dǎo)航對(duì)象的描述,根據(jù)用戶的存取權(quán)限和導(dǎo)航需求對(duì)領(lǐng)域類屬性和方法加以擴(kuò)展而得到;導(dǎo)航目標(biāo)是一個(gè)模型元素的集合,用來描述用戶的某項(xiàng)導(dǎo)航需求,在導(dǎo)航目標(biāo)中一般要定義人口點(diǎn);導(dǎo)航鏈接定義了導(dǎo)航關(guān)系;匯集是在導(dǎo)航類或?qū)Ш侥繕?biāo)上定義的層次結(jié)構(gòu)。
在OO-H中,設(shè)計(jì)過程是在領(lǐng)域模型基礎(chǔ)上建立導(dǎo)航類視圖,進(jìn)一步用導(dǎo)航目標(biāo)匯集組織導(dǎo)航空間,而不同類型的導(dǎo)航鏈接則定義了導(dǎo)航關(guān)系,這些建模元素的采用可以定義復(fù)雜的靜態(tài)頁面導(dǎo)航結(jié)構(gòu),而對(duì)動(dòng)態(tài)頁面和導(dǎo)航的行為則沒有描述。在導(dǎo)航模式的支持方面,OO-H提供了豐富的模式分類,其中導(dǎo)航模式分為靜態(tài)模式和動(dòng)態(tài)模式,動(dòng)態(tài)模式中又分為流控制模式和跳轉(zhuǎn)模式等,可以采用不同粒度的模式來簡(jiǎn)化設(shè)計(jì)和加強(qiáng)重用。在00-H方法中還定義了導(dǎo)航視圖和展示視圖之間的映射規(guī)則,可以最終產(chǎn)生用戶界面代碼,但生成的頁面是簡(jiǎn)單的靜態(tài)頁面,實(shí)用程度仍然不夠。
至于商業(yè)過程的處理OO-H采用和UME類似的思想:由于采用了面向?qū)ο蟮慕K枷耄搀w現(xiàn)出一定的模型集成能力。
(8)其它方法
Web開發(fā)方法還有很多,限于篇幅我們不再詳細(xì)比較,下面介紹一些它們的主要特色。
Conallencq對(duì)UML使用標(biāo)準(zhǔn)的擴(kuò)展機(jī)制進(jìn)行了擴(kuò)展。進(jìn)行擴(kuò)展是為了讓W(xué)eb特有的構(gòu)件能與系統(tǒng)模型的其余部分集成,向Web應(yīng)用程序的設(shè)計(jì)人員、實(shí)施人員以及構(gòu)架設(shè)計(jì)師展示適當(dāng)?shù)某橄蠛兔骷?xì)級(jí)別。但Conallen主要提供建模符號(hào),缺乏設(shè)計(jì)過程的描述。
W2000是一個(gè)Web應(yīng)用程序的框架,基于已經(jīng)存在的兩個(gè)技術(shù):UML——標(biāo)準(zhǔn)的面向?qū)ο笙到y(tǒng)的建模語言以及HDM。UML和HDM的集成使模型的集成成為可能,但W2000在表現(xiàn)層設(shè)計(jì)方面比較缺乏。
WSDM是以用戶為中心的方法,著眼于系統(tǒng)的定制。它試圖解決信息過時(shí),鏈接丟失以及允許不同用戶瀏覽不同信息等可用性問題。其主要思想是先分組用戶,根據(jù)不同用戶特征建立"觀察”,然后才開始概念設(shè)計(jì)。
OOWS是一個(gè)模型驅(qū)動(dòng)的Web應(yīng)用建立方法。強(qiáng)調(diào)Web應(yīng)用從需求獲取到模型建立,經(jīng)過模型轉(zhuǎn)換到最終實(shí)現(xiàn)的開發(fā)全過程。OntoWebbei091是一個(gè)基于本體的方法,著眼于集成異構(gòu)數(shù)據(jù)源建立數(shù)據(jù)豐富的Web門戶。整個(gè)設(shè)計(jì)采用基于XML的元方案表示,使用了RDF和DAML+OIL。
4 結(jié)論
以上介紹了幾種典型的Web開發(fā)方法,可以看到雖然它們各具特點(diǎn),但都還不能完全滿足我們所提出的Web開發(fā)方法應(yīng)具有的特性(具體比較見表1)。
這也使得這些方法缺乏工程應(yīng)用,經(jīng)統(tǒng)計(jì)”只有大約3%的Web開發(fā)工程運(yùn)用了研究所提出的方法,甚至只有5%左右的工程人員知道這些方法的存在。造成這種狀況的原因是多方面的,一方面這些方法的提出是在一些學(xué)術(shù)雜志或會(huì)議上,工程人員缺乏對(duì)它們的關(guān)注,另一方面工程人員的技術(shù)慣性也阻礙了他們采用新的技術(shù)。但更主要的還是這些Web開發(fā)方法本身存在著不完備性和缺陷造成的。具體來說,現(xiàn)有的Web開發(fā)方法主要存在以下問題:
方法比較復(fù)雜,難于掌握。Web開發(fā)方法研究人員基于各自的研究領(lǐng)域所提出的方法一般自成體系,不熟悉其研究領(lǐng)域的人員在掌握上存在一定的難度。近期,更多的方法基于面向?qū)ο罄碚摚捎肬ML作為描述手段,而這也是工程實(shí)現(xiàn)人員熟悉的技術(shù),掌握難度有所降低,但大多數(shù)方法還是存在濫用UML擴(kuò)展機(jī)制的傾向,設(shè)計(jì)粒度太細(xì),仍然比較復(fù)雜。
不能對(duì)復(fù)雜功能建模。大多數(shù)開發(fā)方法針對(duì)的主要是只讀站點(diǎn),靜態(tài)視圖,缺乏對(duì)復(fù)雜功能特別是動(dòng)態(tài)Web應(yīng)用及商業(yè)過程的支持。主要原因是對(duì)那些從多媒體背景得到的方法主要著眼于信息的組織,表示和導(dǎo)航。功能特別是核心商業(yè)過程往往被忽略;對(duì)那些從面向?qū)ο蠼0l(fā)展起來的方法,對(duì)Web系統(tǒng)特殊的功能缺少合適的描述,通常把Web系統(tǒng)模型看作是和傳統(tǒng)軟件系統(tǒng)一樣的,或者在實(shí)現(xiàn)層次上定義一些擴(kuò)展。
界面設(shè)計(jì)大多比較簡(jiǎn)略。雖然Web開發(fā)方法大多都提供表現(xiàn)層建模,但大多都比較簡(jiǎn)略,沒有表現(xiàn)層設(shè)計(jì)細(xì)節(jié)。這里主要的原因是沒有在概念和邏輯建模概念中捕捉表現(xiàn)層凹,而只是就表現(xiàn)層界面元素進(jìn)行抽象設(shè)計(jì),而且界面元素之間的結(jié)構(gòu)和操作關(guān)系過于簡(jiǎn)單,無法滿足用戶的復(fù)雜細(xì)致的需求。
模式支持和利用不夠。Web模式是在總結(jié)Web應(yīng)用基礎(chǔ)上提煉出來的可重復(fù)使用的設(shè)計(jì)模式。支持模式的開發(fā)方法可以把模式作為建模元素,簡(jiǎn)化設(shè)計(jì)、加強(qiáng)重用,給代碼生成提供強(qiáng)有力的支持,而且也為系統(tǒng)的定制提供更好的支持。Web模式有導(dǎo)航層模式和表現(xiàn)層模式等。現(xiàn)有Web設(shè)計(jì)方法雖然也總結(jié)了一些Web模式,但仍顯不夠,更主要的是沒有把總結(jié)出的模式有機(jī)地結(jié)合到開發(fā)過程中。
模型之間缺少清楚和靈活的映射。大多數(shù)方法是一個(gè)分層的方法,把設(shè)計(jì)分為一些獨(dú)立的過程:首先進(jìn)行領(lǐng)域映射,體現(xiàn)Web應(yīng)用的結(jié)構(gòu)、內(nèi)容和工作流等;然后是關(guān)系分析,包括領(lǐng)域關(guān)系和導(dǎo)航關(guān)系;最后是表現(xiàn)層設(shè)計(jì)。設(shè)計(jì)結(jié)果是分別建立各層模型。現(xiàn)有方法普遍缺少層間的連接,模型之間缺少清楚和靈活的映射。這不但使得Web應(yīng)用的自動(dòng)生成無法真正達(dá)到,而且還影響了模型集成和連通的能力。
缺少工具支持。雖然有的開發(fā)方法提供了一些集成或輔助工具,但由于目前的方法主要是針對(duì)設(shè)計(jì)和實(shí)現(xiàn)階段,其他開發(fā)過程中重要的階段象需求工程和維護(hù)等都還沒有考慮,而且也缺少完善的開發(fā)過程支持,工具還不能給設(shè)計(jì)人員全面的支持,特別是方法普遍缺少文檔和用戶說明,嚴(yán)重影響了Web開發(fā)方法的實(shí)用程度。
總之,現(xiàn)有的方法更多的是從規(guī)范化設(shè)計(jì)的角度,而沒有從工程化應(yīng)用的角度出發(fā)。認(rèn)識(shí)到這一點(diǎn),下一步我們的工作主要是圍繞開發(fā)方法的工程化方面展開。
本博客為學(xué)習(xí)交流用,凡未注明引用的均為本人作品,轉(zhuǎn)載請(qǐng)注明出處,如有版權(quán)問題請(qǐng)及時(shí)通知。由于博客時(shí)間倉促,錯(cuò)誤之處敬請(qǐng)諒解,有任何意見可給我留言,愿共同學(xué)習(xí)進(jìn)步。