freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件設計zhousu第6章體系結(jié)構(gòu)的模式與結(jié)構(gòu)(完整版)

2025-07-22 20:02上一頁面

下一頁面
  

【正文】 1描述了 MVC(模型 視圖 控制器)模式。組織模式即靜態(tài)表述的樣例,慣用范例則是反映眾多系統(tǒng)共有的結(jié)構(gòu)和語義。通過熟悉一些體系結(jié)構(gòu)風格,可以了解軟件體系結(jié)構(gòu)豐富的選擇空間以及在這個基礎上對風格選擇的一些權(quán)衡。對于很多風格來說,也可能存在一個或多個語義模型,其中規(guī)定了怎樣從系統(tǒng)的各部分屬性來確定系統(tǒng)的總體屬性。 風格與模式 ? 一種體系結(jié)構(gòu)風格就是施加在整個系統(tǒng)設計上的一種變換,目的是為系統(tǒng)的所有構(gòu)件建立一個結(jié)構(gòu)。 基本體系結(jié)構(gòu) ? 5種典型的基本體系結(jié)構(gòu)(構(gòu)件、連接件和特性)是: – 功能結(jié)構(gòu):構(gòu)件表示功能或處理實體,連接件表示接口,它提供“ 使用 ” 構(gòu)件或 “ 傳遞數(shù)據(jù)到 ” 構(gòu)件的功能。 基本體系結(jié)構(gòu) – 物理結(jié)構(gòu):物理結(jié)構(gòu)類似于設計開發(fā)中的部署模型,構(gòu)件是物理硬件,軟件駐留在硬件、上。構(gòu)件間如何進行數(shù)據(jù)通信?數(shù)據(jù)流是否是連續(xù)地傳遞給系統(tǒng),或數(shù)據(jù)對象是否是零散地傳遞給系統(tǒng)?數(shù)據(jù)傳遞的模式是什么(即,數(shù)據(jù)是從一個構(gòu)件傳遞到另一個構(gòu)件,還是數(shù)據(jù)被系統(tǒng)中的構(gòu)件全局共享)?是否存在數(shù)據(jù)構(gòu)件(如黑板或中心存儲庫)?如果存在,它們的作用是什么?功能構(gòu)件如何和數(shù)據(jù)構(gòu)件交互?數(shù)據(jù)構(gòu)件是被動的還是主動的(即數(shù)據(jù)構(gòu)件是否主動地和系統(tǒng)的其他構(gòu)件交互)?數(shù)據(jù)和控制如何在系統(tǒng)中交互? ? 這些問題有助于設計者對設計質(zhì)量進行早期評估,也為更詳細地分析體系結(jié)構(gòu)奠定了基礎。輸入數(shù)據(jù)流經(jīng)過這些變換直到轉(zhuǎn)換為輸出。這些構(gòu)件從輸入源讀入數(shù)據(jù)流,通過管道( Pipe)連接,管道將數(shù)據(jù)從一個構(gòu)件傳送到下一個構(gòu)件,并在輸出池產(chǎn)生輸出數(shù)據(jù)流。 管道 過濾器 ? 管道 過濾器系統(tǒng)有很多優(yōu)點。雖然系統(tǒng)中的過濾器對數(shù)據(jù)采取增量的方式,但過濾器的獨立性很強,這樣設計者必須考慮每個過濾器完成從輸入到輸出的完整轉(zhuǎn)換。這里,一個分層系統(tǒng)( Layered Systems)按照層次結(jié)構(gòu)組織,系統(tǒng)的功能被劃分成幾個獨立的層次,每一層只依賴緊接的下一層所提供的服務和設施。 分層系統(tǒng) ? 這種體系結(jié)構(gòu)模式最著名的例子就是分層通信協(xié)議。當一層的接口改變或增加了新設施的時候,只有毗鄰的層受影響。圖 67中的任何一層都可以分為兩層或更多層。第三,它支持重用。比如,實際的通信協(xié)議體就很難映射到OSI框架中,因為其中許多協(xié)議跨多個層。這種類型的系統(tǒng)例子包括指揮和控制系統(tǒng)、管理信息系統(tǒng)、 CAD系統(tǒng)和軟件的交互開發(fā)環(huán)境等。若一個新組件的數(shù)據(jù)模型與該模型有沖突,那么要想將它集成到該系統(tǒng)中來就可能很困難。另外,數(shù)據(jù)可以在客戶間通過“黑板”機制傳送(即黑板構(gòu)件負責協(xié)調(diào)信息在客戶間的傳遞),客戶構(gòu)件獨立地執(zhí)行過程。知識源僅通過黑板進行交互。 客戶機 服務器 ? 容器模式與系統(tǒng)的靜態(tài)結(jié)構(gòu)有關,但是不能展現(xiàn)出它的運行組織。絕大多數(shù)客戶機 服務器系統(tǒng)實現(xiàn)為分布式系統(tǒng),通過互聯(lián)網(wǎng)的協(xié)議連接在一起。 客戶機 服務器 ? 圖 612所示是一個基于 Web的提供電影和圖片庫的多用戶系統(tǒng)。這種模式的構(gòu)件是對象(封裝了數(shù)據(jù)和必須用于控制該數(shù)據(jù)的操作),或者也可稱為抽象數(shù)據(jù)類型的實例,構(gòu)件間通過信息傳遞進行通信與合作。 數(shù)據(jù)抽象和面向?qū)ο蠼M織 ? 面向?qū)ο笙到y(tǒng)有很多眾所周知的優(yōu)點。 ? 在一個系統(tǒng)中,比如面向?qū)ο笙到y(tǒng),構(gòu)件接口提供了過程和函數(shù)的集合,典型的情況是,構(gòu)件通過顯式地調(diào)用這些例程來與其他構(gòu)件交互。這些過程會使編輯器滾動到相應的代碼行,或者重新顯示被監(jiān)視的變量的值。 ? 隱式調(diào)用對重用提供了很好的支持。有時數(shù)據(jù)通過事件傳遞,但在某些情況下,事件系統(tǒng)必須依賴一個共享緩沖區(qū),以便于數(shù)據(jù)的交換。 圖 613 解釋器 數(shù) 據(jù)( 程 序 狀 態(tài) )被 解 釋 的 程 序( 偽 碼 )內(nèi) 部解 釋 器狀 態(tài)解 釋 引 擎存 儲 區(qū)選 擇 的 指 令 和 數(shù) 據(jù)數(shù) 據(jù) 存 取輸 入輸 出計 算( 狀 態(tài) 機 ) 解釋器 ? 解釋器模式通常用來構(gòu)建虛擬機,以彌合程序語義所期望的與硬件提供的計算引擎之間的差距。 – ④ 操縱變量:一種過程變量,它的值能被控制器改變。這樣的一個過程稱為開環(huán)系統(tǒng)( Openloop System)。對于一個沒有模塊化支持的語言,系統(tǒng)通常會被組織成一個主程序和一系列子程序的集合。這些系統(tǒng)被定義成狀態(tài)集合和指定的轉(zhuǎn)換集合,轉(zhuǎn)換將系統(tǒng)從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)。 應用框架 ? 體系結(jié)構(gòu)風格、設計模式和應用框架的概念是基于不同的目的和出發(fā)點來討論軟件體系結(jié)構(gòu),它們之間的概念經(jīng)常互相借鑒和引用。(事實上, Unix管道 過濾器就是以這種方式組織的;文件系統(tǒng)充當知識庫的角色,初始化轉(zhuǎn)換器充當控制器的角色。這些共性導致了用來描述特殊類型軟件系統(tǒng)的結(jié)構(gòu)和組成的軟件體系結(jié)構(gòu)的發(fā)展。 體系結(jié)構(gòu)的應用方式 ? 軟件設計人員可以以多種方式來使用這些應用體系結(jié)構(gòu)模型: – 1)作為體系結(jié)構(gòu)設計過程的一個起點。 – 4)作為評估組件以便復用的手段。這種類型系統(tǒng)包括交互式銀行系統(tǒng)、電子商務系統(tǒng)、信息系統(tǒng)和預訂系統(tǒng)。請求會被應用相關的邏輯進行處理。 圖 616 ATM機系統(tǒng)的軟件體系結(jié)構(gòu) 獲 取 客 戶賬 戶 標 識 符驗 證 卡選 擇 服 務查 詢 賬 戶更 新 賬 戶打 印 明 細返 回 卡分 發(fā) 現(xiàn) 金輸 入 處 理 輸 出A T M 數(shù) 據(jù) 庫 A T M 信息系統(tǒng) ? 所有涉及與共享數(shù)據(jù)庫交互的系統(tǒng)都可以看成是基于事務的信息系統(tǒng)。 圖 617 分層的信息系統(tǒng)體系結(jié)構(gòu) 事 務 管 理 數(shù) 據(jù) 庫信 息 檢 索 和 修 改 用 戶 身 份 驗 證 通 信 和 授 權(quán)用 戶 界 面 信息系統(tǒng) ? 作為分層模型的一個實例,圖 618給出了 MHCPMS系統(tǒng)的體系結(jié)構(gòu),這個系統(tǒng)維護并管理那些具有心理問題前來咨詢專家的病人的詳細信息。 信息系統(tǒng) ? 信息和資源管理系統(tǒng)通?;?Web系統(tǒng),用戶接口使用Web瀏覽器實現(xiàn)。它將高層語言翻譯成機器代碼。 語言處理系統(tǒng) ? 程序語言編譯器是更一般化的編程環(huán)境的一部分,它具有一般的體系結(jié)構(gòu),包括以下組件: – ① 詞法分析器,將一個輸入的語言記號轉(zhuǎn)換為內(nèi)部形式; – ② 符號表,保持實體名字相關的信息(變量、類名字、對象名字等),實體是正在翻譯的文本; – ③ 語法分析器,它檢查正在翻譯的語言的語法。 圖 620 編譯器的管道 過濾器體系結(jié)構(gòu) 符 號 表語 法 樹詞 法 分 析 句 法 分 析 語 義 分 析 代 碼 生 成 語言處理系統(tǒng) ? 語言編譯的管道 過濾器模型對于程序的編譯和執(zhí)行無需用戶交互的批處理環(huán)境很有效,例如,把一個 XML文件翻譯成另一個文件。因此,語法制向的編輯器能夠在程序輸入時檢查程序的語法是正確的,而程序格式轉(zhuǎn)換器能夠以一種十分方便閱讀的格式創(chuàng)建程序清單。在這種情況下,來自一個組件的變化需要立即反映到其他組件中。 語言處理系統(tǒng) ? 還會有其他一些組件,這些組件可能用于從所生成的機器代碼中分析和變換語法樹來提高效率和降低冗余。 語言處理系統(tǒng) ? 圖 619給出了編程語言的一種語言處理系統(tǒng)的可能的體系結(jié)構(gòu)。在電子商務系統(tǒng)中,應用相關層包括額外的功能,支持所謂的“購物車”,即用戶可以在不同的事務中購買多個項目,然后在一個事務中完成對所有項目的叉付。在這個例子中, UI是用 Web瀏覽器實現(xiàn)的。這些大數(shù)據(jù)庫例子有圖書館書目庫、航班時刻表、醫(yī)院的病人記錄等。在事務管理器正確完成事務后,傳遞一個信號給應用,報告處理完畢。事務中的所有操作都必須在數(shù)據(jù)庫永久改變之前完成,確保在事務中操作失敗不會導致數(shù)據(jù)庫的不一致性。在希望復用時,可以將它們與一般結(jié)構(gòu)做比較來看在應用體系結(jié)構(gòu)中是否有類似的組件。當然,這些都必須針對被開發(fā)的專門系統(tǒng)進行特殊處理,但不管怎樣,它們都是設計的一個很好的開始。例如,在實時系統(tǒng)中就有不同系統(tǒng)類型的通用的體系結(jié)構(gòu)模型,像數(shù)據(jù)采集系統(tǒng)或監(jiān)控系統(tǒng)。這是一個知識庫,它通過隱式調(diào)用來激活外部的構(gòu)件。 ? 一種組合方式是使用層次結(jié)構(gòu)??梢哉f,一個框架是一個可復用的設計構(gòu)件,它規(guī)定了應用的體系結(jié)構(gòu),闡明了整個設計、協(xié)作構(gòu)件之間的依賴關系、責任分配和控制流程,表現(xiàn)為一組抽象類以及其實例之間協(xié)作的方法,它為構(gòu)件復用提供了上下文( Context)關系。主程序 /子程序體系結(jié)構(gòu)的構(gòu)件分布在網(wǎng)絡中的多臺計算機上,則構(gòu)成遠程過程調(diào)用體系結(jié)構(gòu)。通常,通過監(jiān)測諸如溫度、壓力和流速這類屬性,計算它們的值,再通過改變設備(比如氣閥,加熱器,冷卻器)的設置,來控制過程。 – ⑥ 開環(huán)系統(tǒng):在這種系統(tǒng)中,過程變量的相關信息不用于調(diào)整系統(tǒng)。 過程控制 ? 基于過程控制環(huán)路是另一個體系結(jié)構(gòu)模式,這種模式在軟件開發(fā)中并沒有得到廣泛認可;這種模式不像面向?qū)ο蠡蚬δ茉O計那樣以出現(xiàn)的某類構(gòu)件為特征,控制環(huán)路的設計特點是不僅具有某類構(gòu)件,還具有在構(gòu)件間必須保持的特殊關系。最后,正確性驗證也可能是個問題,因為發(fā)布事件的過程的具體含義與事件激發(fā)的上下文有關。第二個優(yōu)點是隱式調(diào)用能夠簡化系統(tǒng)的演化。 ? 從體系結(jié)構(gòu)的角度說,隱式調(diào)用模式中的構(gòu)件是模塊,其接口不僅提供過程的集合(像抽象數(shù)據(jù)類型),也提供事件的集合。 ? 隱式調(diào)用的思想是,不直接調(diào)用一個過程,而是發(fā)布或廣播一個或多個事件。另外,由于把操作的數(shù)據(jù)和一組存取例程綁定在一起,使得設計者能夠把問題分解成交互作用的代理集合。 數(shù)據(jù)抽象和面向?qū)ο蠼M織 ? 在這種描述中并沒有提及繼承。視頻信號需要快速、同步地傳輸,但分辨率相對較低。此外,更重要的好處是分離性和獨立性。 表 65 客戶機 服務器模式 圖 612 電影資料庫的客戶機 服務器體系結(jié)構(gòu) 目 錄 服 務 器圖 書 館 目 錄W e b 服 務 器電 影 和 圖 片信 息視 頻 服 務 器電 影 商 店圖 片 服 務 器圖 片 商 店網(wǎng) 絡客 戶 1 客 戶 2 客 戶 3 客 戶 4 客戶機 服務器 ? 一個采用客戶機 服務器模式的系統(tǒng)是由一個服務集合和相關的服務器以及訪問和使用這些服務的客戶機組織起來的。知識源不斷修改黑板中的數(shù)據(jù),直到問題得解。在不同的系統(tǒng)中,知識庫和外部構(gòu)件集合之間的交互方式存在很大的差異。雖然從邏輯上講將集中式容器分布到不同的機器上是可能的,但這樣做會引起數(shù)據(jù)冗余和不一致性的問題。該圖顯示了一個包含不同工具來支持模型驅(qū)動開發(fā)的 IDE系統(tǒng)。 表 64 容器模式 圖 69 以數(shù)據(jù)為中心的體系結(jié)構(gòu) 數(shù) 據(jù) 存 儲( 中 心 存 儲 庫 或 黑 板 )客 戶 軟 件 客 戶 軟 件客 戶 軟 件客 戶 軟 件客 戶 軟 件客 戶 軟 件客 戶 軟 件 客 戶 軟 件 知識庫(容器) ? 數(shù)據(jù)存儲(如文件或數(shù)據(jù)庫)駐留在這種體系結(jié)構(gòu)的中心,其他構(gòu)件會經(jīng)常訪問該數(shù)據(jù)存儲,并對存儲中的數(shù)據(jù)進行更新、增加、刪除或者修改。這使得定義標準層接口成為可能,在此接口上可建立不同實現(xiàn)。這個系統(tǒng)有 5層,最底層是各個圖書館中獨立的數(shù)據(jù)庫。 分層系統(tǒng) ? 圖 67是一個分為 4層的體系結(jié)構(gòu)的例子。較低層定義較低層的交互,最底層通常通過硬件連接來定義。在外層,構(gòu)件完成建立用戶界面的操作;在內(nèi)層,構(gòu)件完
點擊復制文檔內(nèi)容
教學教案相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1