軟體項目實訓及課程設計指導——系統概要設計中的組件設計示例

2020-12-11 楊教授工作室

軟體項目實訓及課程設計指導——軟體系統概要設計中的組件設計示例

1、UML技術規範中的UML組件及UML組件圖

UML技術規範中的組件是軟體應用系統的一個物理單元,它代表軟體應用系統中的一個物理實現的功能模塊——在Java技術平臺中一般為一個*.jar包文件。從模型視圖控制器(MVC)系統架構模式的角度來看,在一個軟體應用系統中應該包括有邊界組件、控制組件和實體組件三大部分。如下示圖為Rose UML開發工具軟體中創建UML組件的功能菜單的局部截圖:

UML技術規範中的組件圖是由組件、接口和組件之間的關系所構成的,組件圖一方面能夠幫助軟體應用系統的開發人員理解軟體應用系統的最終結構——因為組件圖可以描述出軟體應用系統的構成組件以及各個組件之間的相互關係;另一方面也使得開發實現工作有一個明確的開展目標和有利於項目開發小組中的其他人員(如幫助文檔的編寫人員)也能夠更好地理解軟體應用系統中的各個功能模塊。

2、UML技術規範中的UML組件之間可以存在有依賴關係

組件之間的依賴關係主要出現在下面的場合:一個組件中的模型元素使用了另一個組件中的模型元素;通過接口實現而產生出依賴聯繫——也就是一個組件對另一個組件的接口進行了具體的實現。UML技術規範中的組件圖中的各個組件之間的依賴關係是採用虛線箭頭表示的,如下示圖所示為某個信息管理系統中的UML組件圖局部截圖,各個組件之間的關係在示圖中也標註完畢。

3、在UML技術規範中所支持的各種主要類型的組件

(1)配置組件(Configurable Component)

配置組件是可執行系統的基礎、並描述了其他組件之間的關係和工作參數,它是一個可執行系統必須的組件。如在J2EE系統平臺中的各種*.xml的配置文件等。如下示圖為某個Web應用系統項目中的部署描述文件web.xml內容的局部截圖:

(2)工作產品組件(Work Product Components)

工作產品組件是在軟體開發階段使用的組件,是配置組件的來源——如數據文件和資料庫表、源程序文件等。它們並不直接構成可執行系統,而是軟體系統開發過程中的產品。

(3)可執行組件(Executive Program Components)

可執行組件構成可運行系統的最終組成結果,如Windows平臺中的動態連結庫DLL文件(COM+、DLL、ActiveX等形式)、可執行的EXE程序文件、Java平臺中的JAR包文件(各種形式的JavaBeans)等等都是執行組件。如下示圖為某個Web應用項目部署到應用伺服器Tomcat中的部署過程的局部截圖:

4、利用UML組件圖可以進一步細化軟體應用系統的系統架構設計結果

(1)明確軟體應用系統分層設計中的各個主要的組件

為了能夠細化軟體應用系統的架構設計結果,軟體應用系統的設計人員需要進一步對軟體應用系統中的架構設計結果進行橫向分塊——設計出體現軟體應用系統分層中的各個組件,並畫出最終的UML組件圖。

而對於一個軟體應用系統來說,在縱向方向從下至上一般可以分為如下不同的組件模塊:

1)持久層中的數據連接組件:負責連接軟體應用系統中的資料庫系統;

2)持久層中的持久實體組件:這些實體組件負責系統中的各種需要持久化的數據封裝;

3)持久層中的數據訪問接口組件:定義和規範系統中的各個資料庫表的數據訪問操作的方法(增、刪、改、查)和要求;

4)持久層中的數據訪問實現組件:具體完成數據訪問接口中所定義的各個數據訪問操作的功能實現--也就是具體地完成對資料庫表的增、刪、改、查的功能;

5)業務邏輯層中的業務實體組件:這些實體組件負責對系統中與業務處理有關的各種業務數據的封裝;

6)業務邏輯層中的業務處理接口組件:定義和規範系統中的各個業務邏輯處理的規則和要求;

7)業務邏輯層中的業務功能處理組件:具體完成業務處理接口中所定義的各個業務邏輯的功能實現;

8)表示層中的控制調度組件:響應表示層中視圖組件的請求、並對業務處理功能組件進行訪問和獲得處理後的結果,最後轉發到特定的視圖組件中顯示輸出;

9)表示層中的實體組件:這些實體組件負責對用戶的各種請求數據的封裝;

10)表示層中的視圖組件:它們是系統中的各種界面可視元素的集合,負責系統的界面顯示和請求數據的收集、校驗等功能;

11)其他輔助或者工具類型的組件:完成系統中的各種全局和通用的輔助性功能。

(2)採用UML組件圖表現出對軟體應用系統中的橫向分塊的設計結果

UML組件的圖示表示形式定義為一個大矩形左嵌兩個小矩形,並在大矩形框內標註出該組件的名字。在UML技術規範的組件視圖中一般包含有組件、接口和組件之間的依賴關係。下圖所示為體現銀行帳戶信息管理系統中的各個組件及關係的組件圖,它充分體現出該軟體應用系統分層設計中的橫向分塊設計結果——各個組件是依據它們在該軟體應用系統中的職責劃分的、並遵守面向對象封裝和隔離的基本原則完成對各個組件模塊的設計。

當然,軟體應用系統中的各個組件之間的關係不應該出現「多對多」形式的依賴關係。因為,如果組件彼此之間的依賴關係比較複雜時,則意味著該軟體應用系統的分層設計結果不是太良好,軟體應用系統的設計人員此時需要對軟體應用系統再進一步地「縱向分離」和「橫向分塊」。

相關焦點

  • 軟體項目實訓及課程設計指導——系統設計中的系統架構設計示例
    軟體項目實訓及課程設計指導——軟體系統設計中的系統架構設計示例1、軟體系統概要設計中所涉及的主要設計內容和工作過程(1)在軟體應用系統項目的系統概要設計工作中,首先是要完成軟體系統的總體架構設計及系統的分層設計,然後再利用UML包視圖體現出軟體系統架構設計的最終結果
  • 軟體項目實訓及課程設計指導——系統概要設計中的實體類結構和...
    軟體項目實訓及課程設計指導——系統概要設計中的實體類結構和關係的設計示例 1、軟體應用系統中的實體類及主要的作用 軟體應用系統中的實體類主要是指軟體系統中代表人、地點、事物或概念等方面的數據對象。
  • 軟體項目實訓及課程設計指導——實體類結構和類關係的設計示例
    軟體項目實訓及課程設計指導——系統概要設計中的實體類結構和關係的設計示例1、軟體應用系統中的實體類及主要的作用軟體應用系統中的實體類主要是指軟體系統中代表人、地點、事物或概念等方面的數據對象。如下示圖為銀行帳戶信息管理系統中的各個實體類結構和關係的設計結果,作者在此示圖中隱藏了每個實體類中的各個成員屬性(沒有顯示)。而如下示圖為體現某個軟體應用系統中的數據訪問操作組件、資料庫連接組件和數據實體類組件之間關係的UML類圖的局部截圖。
  • 軟體項目實訓及課程設計指導——UML靜動態建模在詳細設計中應用
    軟體項目實訓及課程設計指導——UML靜態和動態建模技術在詳細設計中的應用示例1.1 在軟體應用系統的詳細設計中要充分應用UML靜態和動態建模技術1、再次理解UML技術規範中的「統一」的內涵(2)在課程設計的項目開發中要充分應用UML靜態和動態建模技術在課程設計的項目開發中,作者強烈地要求讀者要應用UML所提供的各種技術規範實現所開發的軟體應用系統項目的分析、設計和開發實現等過程,這並不是要求讀者為了UML而應用「UML」——因為UML的統一建模的機制抓住了軟體應用系統的本質,它能夠定義軟體應用系統的體系結構
  • 軟體項目實訓及課程設計指導——如何實現面向服務的系統架構設計
    軟體項目實訓及課程設計指導——如何實現面向服務的系統架構設計1、什麼是基於SOA的軟體系統架構(1)什麼是面向服務的軟體系統體系架構所謂的SOA(Service-Oriented Architecture,面向服務的軟體系統體系架構
  • 軟體項目實訓及課程設計指導——如何實現面向對象的系統架構設計
    軟體項目實訓及課程設計指導——如何實現面向對象的系統架構設計1、什麼是面向對象的軟體應用系統的架構設計從軟體應用系統的架構設計師的角度來看,所謂的軟體應用系統的系統架構就是一套構建軟體應用系統的整體結構的各種設計準則
  • 軟體項目實訓及課程設計指導——如何在項目中實現日誌、事務功能
    軟體項目實訓及課程設計指導——如何在J2EE平臺項目中實現交易日誌、事務控制等功能1.1 基於面向切面AOP設計思想的系統架構設計實現交易日誌的應用示例1、面向對象OOP設計中的「開-閉」(OCP,Open-Close Principle)設計原則
  • 軟體項目實訓及課程設計指導——如何在數據持久層中應用DAO模式
    軟體項目實訓及課程設計指導——如何在J2EE應用系統數據持久層中應用DAO模式1、為什麼要在軟體應用系統中提供數據持久層軟體應用系統中的數據持久層主要為整個軟體應用系統提供數據訪問功能服務,從而可以使軟體應用系統中的業務層組件的設計和開發人員能夠專注於系統業務邏輯的開發
  • 項目實訓及課程設計——如何合理地設計軟體應用系統的Web表示層
    軟體項目實訓及課程設計指導——如何合理地設計軟體應用系統的Web表示層1、用戶界面是軟體應用系統的門面,在設計和開發實現時必須高度重視軟體應用系統表示層內的各個組件是軟體應用系統的前端界面組件,它們直接與應用該軟體應用系統的最終操作者發生各種人機互動行為。
  • 軟體項目實訓及課程設計指導——可擴展和可重用是架構設計的目標
    軟體項目實訓及課程設計指導——可擴展性和可重用性是面向對象架構設計的主要目標1、什麼是合理的軟體應用系統的系統架構設計軟體應用系統的設計人員經常會陷入一種困惑,面向對象系統架構設計結果的評價標準是什麼?
  • 軟體項目實訓及課程設計指導——為什麼要應用和實現SOA架構設計
    軟體項目實訓及課程設計指導——為什麼要應用和實現面向服務的系統架構設計面向對象的架構設計能夠適應不斷變化的軟體系統的需求,而面向切面架構設計是對面向對象架構設計的進一步擴展和完善,但面向對象的架構設計和面向切面架構設計都是針對單一的軟體應用系統設計的方法。
  • 如何合理地設計軟體應用系統中數據訪問服務層內的各個功能程序類
    軟體項目實訓及課程設計指導——如何合理地設計數據訪問服務層中的各個功能程序類作者已經在本系列文章《軟體項目實訓及課程設計指導--如何正確地設計J2EE應用系統持久層中的各個組件結構及關係》中為讀者介紹了為什麼要設計和應用數據訪問服務接口的目的及如何設計該接口以真正達到利用數據訪問服務層組件隔離業務處理邏輯和數據訪問操作邏輯的應用效果
  • 在軟體系統設計中如何降低軟體系統中程序類之間耦合關係(上篇)
    軟體項目實訓及課程設計指導——如何降低軟體系統中程序類之間耦合關係(上篇)1、分離軟體應用系統中各個模塊類的接口定義和對應接口的具體功能實現面向對象程序類設計的五大原則中的「開放-封閉原則」 ( OCP,Open-Close Principle)倡導分離接口的定義和接口的具體功能實現的設計原則
  • 如何正確地設計J2EE應用系統持久層中的各個組件結構及組件間關係
    軟體項目實訓及課程設計指導——如何正確地設計J2EE應用系統持久層中的各個組件結構及關係1、了解J2EE應用系統數據持久層中的各個組件類的類型在J2EE系統平臺下的軟體應用系統的數據持久層,一般都包含有如下的各個組件類:實體類、數據訪問對象類(包括接口和對應的實現類
  • 如何應用觀察者設計模式重構系統中日誌處理功能實現的程序代碼
    軟體項目實訓及課程設計指導——如何應用觀察者設計模式重構系統中的日誌處理功能實現的程序代碼1、GOF設計模式中的觀察者設計模式(1)什麼是觀察者設計模式GOF設計模式中的觀察者設計模式定義了一種解耦「一對多」的依賴關係的編程模式
  • 如何保證軟體應用系統架構設計結果的可擴展性和可重用性(上篇)
    軟體項目實訓及課程設計指導——如何保證軟體應用系統架構設計結果的可擴展性和可重用性(上篇)1、良好的可重用性軟體系統架構設計結果的主要體現可重用性的軟體應用系統的系統架構設計結果主要體現在如下兩個方面——本項目的系統架構設計的結果是可重用的和在本項目的系統架構設計中重用成熟的系統架構設計方案
  • 課程設計指導——如何應用Java反射技術靈活地創建程序類對象實例
    軟體項目實訓及課程設計指導——如何應用Java反射技術靈活地創建程序類的對象實例1、如何應用屬性配置文件實現對系統中的配置信息進行讀寫操作Java中的屬性配置文件主要可以作為軟體應用系統及項目的配置文件,比如許多J2EE的開源框架系統中都提供了屬性配置文件作為該應用框架的對外配置文件
  • 如何正確地應用JDBC API設計實現應用系統持久層中的各個DAO組件
    軟體項目實訓及課程設計指導——如何正確地應用JDBC API設計和實現應用系統持久層中的各個DAO組件1、Java 系統平臺中實現資料庫連接技術相關的APIJava 資料庫連接技術(JDBC,Java DataBase Connectivity)是一種將Java
  • 福建工程學院建築結構設計實訓教學系統及橋梁分析與設計軟體採購...
    福建省福怡藥械招標有限公司受福建工程學院的委託,就建築結構設計實訓教學系統及橋梁分析與設計軟體採購項目(項目編號:[3500]FYZB[GK]2017121)組織採購,評標工作已經結束,中標結果如下:   一、項目信息   項目編號:[3500]FYZB
  • 如何在基於面向服務架構設計的項目中應用WebService技術(下篇)
    軟體項目實訓及課程設計指導——如何在基於面向服務系統架構設計的項目中應用Web Service技術(下篇)6、Web服務組件在開發中常應用的各種設計模式(1)在Web服務組件具體開發中常用到的設計模式GOF設計模式在設計Web服務組件時可以起到「調適不同的接口」、「隔離不同的功能組件」和「統一請求的入口」等方面的作用。