系統架構設計筆記(31)—— 系統方案的制訂和改進

通過在問題定義和歸結模型階段的工作,已經分析並定義了與系統開發目標相關的各種模型 、 分析出了系統的功能清單 、 性能要求等,解釋了 “ 系統目標是什麼 ” 的問題。在系統方案階段,主要完成的工作則是解釋 “ 系統如何實現 ” 的問題。

系統方案制訂的最主要內容,包括以下幾個方面。

1 確定軟件架構

在問題定義階段得到的軟件概念模型使用各種工具定義了項目的開發目標。在系統方案制訂階段纔開始真正考慮如何去實現軟件。其中最重要的工作,就是制定系統的實現架構。

系統的實現架構與一些很具體的方面相關:

(1)分析模型的結構

例如,採用結構化分析方法得到的功能分解體系,或面向對象的類和 “ 對象-關係圖”、 “ 對象-行爲圖 ”。

(2)一些對應於系統目標的最基本、最重要的實現要素

例如,關鍵的用例 、 最主要的控制類 、 對象組織的模式 、 常用和最關鍵的實現算法模型等。這些實現要素對應於系統目標實現最重要的場景,表示了整個系統最主要的控制流程和實現機制。

(3)特性和要點的解釋

這些附加的內容解釋系統的一些特性、服務等是如何實現的。

2 關鍵性要素和實現手段

關鍵性的實現要素通常包括:

  • 關鍵的用例、最主要的控制類、功能和服務的首要組織方式(例如網站首頁);
  • 對象的組織模式;
  • 常用和最關鍵的實現算法模型。

關鍵性的實現手段通常包括:

  • 選定基礎計算平臺,如操作系統、數據庫、 Web 服務器、中間件平臺等;
  • 選定開發工具和開發環境,如計算機語言、構件庫、工具軟件等。

3 歸結目標到最適合的計算體系

通常,提供開發工具和開發環境的組織總是有一些標準的計算體系可以選擇(例如, .NET 和 J2EE 等),因此對於大多數系統開發項目來說,比較各種標準計算體系與預期目標之間的匹配程度即可選定計算體系。選擇標準的計算體系去實現系統可以忽略大多數基礎平臺和底層支撐技術的實現問題,從而大大提高系統的質量 、 降低開發風險和成本。

開發人員常根據基礎平臺的系統實現能力支持,公司或項目組在特定實現平臺上的技術積累,甚至技術的 “ 先進性 ” 或流行程度這樣的因素去選擇系統的實現技術體系。

在另一些情況下,出於各種諸如用戶投資力度,與用戶現有的 IT 設施保持一致性 、 兼容性 、 擴展性及未來維護的能力等因素,系統的基礎平臺很可能在項目的論證階段就已經被確定,如操作系統 、 數據庫系統 、 Web服務器 、 開發工具或開發環境等。在這種情況下,系統的實現體系實際上已經確定。

通過同時參考系統概念模型,將前面得到的系統功能清單和系統實現的各種關鍵要素整理並分類,然後與現有的技術 、 標準的實現體系進行比較和匹配,就可以將系統概念模型定義的系統目標,進一步映射到真正可計算 、 可實現的系統架構上。

這個過程可以理解爲一種不斷歸結 、 比較並匹配的過程。進行匹配的過程常常是一種雙向的選擇和探究過程,一方面拿出一個系統目標中的功能或實現要素,詢問:這部分功能屬於表示層 、 業務邏輯 、 還是數據服務?另一方面,也研究標準計算體系提供的功能,例如:放在業務邏輯層合適嗎?技術人員具有這方面的開發經驗積累嗎?甚至是標準構件或服務可用嗎?

各種標準的計算體系可能很複雜,但通常總是包括一些邏輯上的劃分,例如, .NET 體系將應用系統理解爲三個層次,表示層 、 事務邏輯層和數據服務層構成。

(1)表示層

用戶的界面部分。例如,單一應用程序的用戶界面 、C/S 計算模式的客戶端 、B/S 模式在瀏覽器中運行的 HTML、DHTML、Scripting、JavaApplet、ActiveX 等。

(2)事務邏輯層

負責處理表示層的應用請求,完成商務邏輯的計算任務,並將處理結果返回給用戶。事務邏輯處理層是將原先置於客戶端的事務邏輯分離出來,集中置於服務器部分,爲所有用戶共享。事務邏輯層是整個應用的核心部分,而組件對象模型 COM 則相當於其心臟。事務邏輯層通過 COM 進行事務處理,並由 IIS ( Internet Information Server , Internet 信息服務器)和 MTS ( Microsoft Transaction Server ,微軟事務處理服務器)爲各種應用組件提供完善的管理。

(3)數據服務層

爲應用提供數據來源。和以往的兩層架構不同,數據庫不再和每個活動客戶保持一個連接,而是若干個客戶通過應用邏輯組件共享數據庫的連接,從而減少連接次數,提高數據服務器的性能和安全性。

相同的三層計算模式,也會表現爲不同的實現方式。例如,表示層可能是單一應用系統的用戶界面 、 C/S 計算的客戶端 、 或 B/S 計算的 Web 頁面和元素;事務邏輯層可能是單一應用系統的程序模塊 、 C/S 的服務器端服務 、 B/S 應用服務器中的業務腳本或業務對象;當利用類似存儲過程來實現數據操作邏輯的時候,存儲過程也被看作事務邏輯層的一部分,但如果利用 ADO ( ActiveX DataObject , ActiveX 數據對象)這樣的數據訪問組件訪問數據時, ADO 和後臺的數據庫系統及數據庫的邏輯則被看作數據服務層的一部分。

在必要的情況下,某個層次還可能進一步細分,例如,使用面向對象設計方法的系統常常會將事務邏輯層劃分爲基本的計算對象 、 業務對象及黏合業務對象實現功能的腳本 “ 膠水 ” 或一些控制類。


歸結系統實現要素到計算體系的時候,要點在於理解各種計算體系的大致分層和構成,比較實現要素的目標和實現手段之間的 “ 適合程度 ” ,而不是生搬硬套某種實現機制,或盲目追求某種 “ 流行的 ” 或 “ 先進的 ” 算體系。

系統方案制訂後,需要根據有關標準進行評價,找出不符合實際的地方,然後進行改進。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章