第三類指的是那些一旦發出請求即進行編譯的腳本頁,以后的所有請求都使用編譯過的頁。只有最初頁的內容謀淞,该页矅I嶠辛硪淮偽嘁。诊勦页介诱岄活的蒋懢页和高效抵\嘁胍持洹?
Web 頁建模
Web 頁,不管是腳本頁還是編譯頁,都一對一地映射到 UML 中的構件。構件是系統的"物理"可更換部件。模型的實施視圖(構件視圖)描述了系統的構件及它們之間的關系。在 Web 應用程序中,這個視圖描述了系統的所有 Web 頁及它們彼此之間的關系(如超鏈接)。在一定程度上,Web 系統的構件圖就相當于站點圖。
由于構件僅僅代表了接口的物理打包方式,它們并不適用于對頁內部的協作關系建模。這一抽象級別仍需要成為模型的組成部分,而且對設計員和實施員而言極其重要。為引入正題,我們可以說每個 Web 頁在模型的設計視圖(邏輯視圖)中都是一個 UML 類,它與其他頁的關系(關聯關系)即代表了超鏈接。但如果考慮到任何 Web 頁都可能既代表一組只存在于服務器上的功能和協作,同時又代表只存在于客戶機上的一組完全不同的功能和協作,那么這種抽象就不成立了。舉例來說,使用動態 HTML(客戶端腳本)作為部分輸出的所有服務器 Web 腳本頁都是這樣的頁。對這個問題的直接反應可能就是為類中的每個屬性或操作設計原型,指明它是在服務器端還是在客戶端有效。至此,運用模型倒讓問題變得復雜了,而我們的初衷是要簡化問題。
一個更好的解決方案是"分別考慮"。從邏輯上講,服務器端的 Web 頁行為與客戶端是完全不同的。在服務器上執行時,頁有權訪問服務器端資源(中間層構件、數據庫、文件系統等),即與這些資源具有某些關系。同一頁(或者是該頁的 HTML 流輸出)在客戶端有完全不同的行為和關系集。在客戶端,腳本頁與瀏覽器本身(通過文檔對象模型,即 DOM),以及該頁指定的所有 Java Applet、ActiveX 控件或插件相關。對于認真的設計員而言,頁還可能與客戶機上在另一個 HTML 框架或瀏覽器實例出現的其他"活動"頁相關。
通過分別考慮,我們就可以用一個類為 Web 頁的服務器端建模,用另一個類為客戶端建模。我們采用 UML 擴展機制為兩者分別定義構造型和圖標?quot;server page" 和 "client page",以此來區分兩者。UML 中的構造型允許我們為建模元素定義新的語義。已指定構造型的類在 UML 圖中可用定制圖標表示,或者僅僅用 ("") 之間的構造型名稱說明。圖標對概述圖很有用,在概述圖中,最好使用簡單的標記對顯示出的類屬性和操作進行標注。
對于 Web 頁,構造型指出了類是客戶機或服務器上 Web 頁邏輯行為的抽象。兩種抽象通過兩者之間的定向關系相互關聯關系。這種關聯關系的構造型為:"build",因為可以說服務器頁構建了客戶機頁(圖 1)。每個動態 Web 頁(即頁內容在運行時才能決定的頁)都用一個服務器頁構建。每個客戶機頁至多只能用一個服務器頁構建,而一個服務器頁可以構建多個客戶機頁。
文章來源于領測軟件測試網 http://www.kjueaiud.com/