軟體架構文件 修訂歷程
軟體架構文件 簡介![]() 1.1 用途本文件利用若干個不同的架構觀點來描述系統的不同層面,提供了系統的綜合性架構概觀。它的目的是為了擷取及傳達已對系統作出的重大架構決策。 1.2 範圍本「軟體架構文件」提供「課程登錄系統」的架構概觀。Wylie College 開發了「課程登錄系統」來支援線上課程登錄。 本文件直接從在 Rose 中實作的「課程登陸分析 & 設計模型」中產生。大部分的章節是從 Rose Model 中擷取,並使用 SoDA 和「軟體架構文件」範本。 1.3 定義、字首語和縮寫請參閱名詞解釋 [4]。 1.4 參考資料
![]()
![]()
![]() 4.1 在架構上重要的使用案例 圖型名稱:在架構上重要的使用案例
4.1.1 關閉登錄 簡要說明:本使用案例可讓「登錄人員」關閉登錄流程。學生數不足的課程教材會遭到取消。課程教材中最少要有三位學生。 會通知沒有被取消的每一門課程教材中的每一位學生之帳單結算系統,以便能針對該課程教材對學生計費。本使用案例的主要參與者為「登錄人員」。「帳單結算系統」是本使用案例內所涉及的參與者。 4.1.2 登入 簡要說明:本使用案例說明使用者如何登入「課程登錄系統」。啟動本使用案例的參與者是「學生」、「教授」和「登錄人員」。 4.1.3 維護教授資訊 簡要說明:本使用案例可讓登錄人員在登錄系統中維護教授資訊。這包括在系統中加入、修改及刪除教授。本使用案例的參與者為「登錄人員」。 4.1.4 選取執教課程 簡要說明:本使用案例可讓教授從他在要來的學期中有執教資格、 並且從想要教授的課程型錄中,選取課程教材(將會提供日期和時間特有的課程)。啟動本使用案例的參與者為「教授」。 「課程型錄系統」是本使用案例內的參與者。 4.1.5 課程登錄 簡要說明:本使用案例可讓學生登錄本學期中的課程。如果是在學期開始的選課/退課期間內進行變更,則學生也可以修改或刪除所選的課程。「帳單結算系統」會獲通知所有的登錄更新。 「課程型錄」提供本學期的所有課程教材清單。本使用案例的主要參與者為學生。「課程型錄系統」是本使用案例內的參與者。 4.1.6 檢視學期成績單 簡要說明:本使用案例可讓學生檢視他在上一個已完成學期的學期成績單。本使用案例的參與者為學生。 4.1.7 送出成績 簡要說明:本使用案例可讓教授送出在上一個學期中完成的一或多個班級的學生成績。本使用案例中的參與者為「教授」。 4.1.8 維護學生資訊
![]() 架構之邏輯觀點的說明。說明最重要的類別、 它們在服務套件和子系統中的編排,以及這些子系統如何編排到階層中。另說明最重要的使用案例實現化,例如,架構的動態方面。可以併入類別圖來說明在架構上重要的類別、子系統、套件和階層之間的關係。 課程登錄系統的邏輯觀點由 3 個主要套件所組成: 「使用者介面」、「企業服務」和「企業物件」。 「使用者介面套件」包含參與者用來與系統通訊的每一份表單的類別。存在界限類別以支援登入、排程維護、教授資訊維護、 選取課程、送出成績、維護學生資訊、關閉登錄,以及檢視學期成績單。 「企業服務套件」包含用於連結財務系統、控制學生登錄,以及管理學生評估的控制類別。 「商業物件套件」包含大學構件的實體類別(亦即,課程教材、排程),以及與「課程型錄系統」連結的界限類別。
5.1.1 應用程式 階層 這個應用程式層具有所有的界限類別,這些類別代表使用者看到的應用程式畫面。這一層取決於「流程物件」層;其將用戶端與中層分隔成兩邊。 5.1.2 企業服務 階層 「企業服務」流程層具有所有的控制者類別,這些類別代表推動應用程式行為的使用案例管理人員。這一層代表用戶端到中層邊界。「企業服務」層取決於「流程物件」層;其將用戶端與中層分隔成兩邊。
階層 「中介軟體」層支援 Relational DBMS 和 OODBMS 的存取。
![]() 架構之流程觀點的說明。說明執行系統時所涉及的作業(流程和執行緒)、 它們的互動和配置。另說明將物件和類別配置給作業。 「流程模型」說明編排為可執行程序的課程登錄類別。這些流程是為了支援學生登錄、教授功能、 登錄截止,以及對外部「財務系統」和「課程型錄系統」的存取。
圖型名稱:流程 6.1.1 CourseCatalogSystemAccess 這項流程管理對舊版「課程型錄系統」的存取權。它可由多位登錄課程的使用者共用。這樣可快取最近擷取的課程和教材以增進效能。 CourseCatalog 流程、CourseCache 和 OfferingCache 內的個別執行緒用來從舊版系統中非同步地擷取項目。 分析機制: - 舊式介面 需求可追蹤性: - 設計限制:系統應與現有的舊版系統(課程型錄資料庫)整合。
6.1.2 CourseCatalog 大學所提供的所有課程和課程教材的完整型錄包括上個學期的課程和課程教材。 這個類別扮演適應者(請參閱 Gamma 型樣)。它運作以確定可以透過對子系統的 ICourseCatalog 介面存取 CourseCatalogSystem。
6.1.3 CourseRegistrationProcess 就目前正在登錄課程的每一位學生而言,有這項流程的一個實例。
6.1.4 RegistrationController 這支援可讓學生登錄本學期中的課程之使用案例。如果是在學期開始的選課/退課期間內進行變更,則學生也可以修改或刪除所選的課程。 分析機制: - 分送
6.1.5 StudentApplication 管理學生功能,其中包括使用者介面處理程序以及企業流程協調。 就目前正在登錄課程的每一位學生而言,有這項流程的一個實例。
6.1.6 MainStudentForm 控制「學生」應用程式的介面。控制「學生」使用的格式系列。
6.1.7 BillingSystemAccess 這項流程與外部財務(帳單結算)系統通訊來起始學生帳單結算。
6.1.8 CloseRegistrationProcess 「關閉登錄」流程在登錄期間結束時起始。這項流程與控制對「財務系統」的存取權之程序通訊。
6.1.9 BillingSystem 「財務系統」支援針對學生在本學期所登錄的課程送出學生帳單。 分析機制: - 舊式介面
6.1.10 CloseRegistrationController 「關閉登錄控制器」控制對「財務系統」的存取權。 分析機制: - 分送
圖型名稱:設計元素的流程 6.2.1 CourseCache
6.2.3 課程 課程的特定教材,包括一週中的某幾日以及時間。 分析機制: - 永久性 - 舊式介面
6.4 流程到實作 圖型名稱:流程到實作
* 用於識別所有遠端物件的遠端介面。任何遠端物件都必須直接或間接實作這個介面。只有遠端介面中指定的那些方法可以在遠端使用。 * 實作類別可以實作任何數目的遠端介面,並且可以延伸其他的遠端實作類別。 6.4.2 Runnable * Runnable 介面應由任何其實例是要由執行緒執行的類別來實作。此類別必須定義一個沒有引數的方法,稱為 run。 * 設計這個介面的目的,是為希望在它們作用中時執行程式碼的物件提供共同通訊協定。例如,Runnable 是由類別 Thread 實作。 * 在作用中就是表示執行緒已啟動,但是尚未停止。
* 執行緒是程式中執行的調度單位。「Java 虛擬機器」容許一個應用程式有多個執行緒同時執行。 * 每個執行緒都有優先順序。具有較高優先順序的執行緒會比具有較低優先順序的執行緒優先執行。每一個執行緒可能也會被標示為常駐程式。當在某個執行緒中執行的程式碼建立新的執行緒物件時,新執行緒的優先順序一開始會設為與建立方執行緒的優先順序相同,並且只有在建立方執行緒是常駐程式時,才會是常駐程式。
7、 部署觀點 架構之部署觀點的說明說明最典型的平台配置的不同實體節點。另說明對實體節點的作業配置(來自「流程」觀點)。 本節是按實體網路配置來編排;每一種這類的配置都以部署圖來說明,後接流程到每一個處理器的對映。 圖型名稱:部署觀點 學生使用外部桌面 PC(透過網際網路撥接連接至學校伺服器)登錄課程。 學生透過本端桌面 PC(透過 LAN 直接連接至學校伺服器)登錄課程。教授也使用這些本端 PC 來選取課程及送出學生成績。「登錄人員」使用這些本端 PC 來維護學生和教授的資訊。 「登錄伺服器」是校園的主要 UNIX 伺服器。所有的教職員和學生透過校園 LAN 存取此伺服器。 「課程型錄系統」是包含完整課程型錄的舊版系統。可以透過 College Server 和 LAN 存取它。 「帳單結算系統」(又稱為「財務系統」)是一套舊版系統,它在每一個學期產生學生的帳單。
![]()
![]()
|
|