1. 程式人生 > >【軟考】——面向物件技術(互動圖、構件圖、組合結構圖、協作圖、部署圖、包圖)

【軟考】——面向物件技術(互動圖、構件圖、組合結構圖、協作圖、部署圖、包圖)

互動圖???——》對系統的動態方面進行建模;

互動圖組成???——》物件、訊息、生命線等;

互動圖表現???——》序列圖、通訊圖、互動概覽圖、計時圖、狀態圖;

順序圖主要元素

1、物件與角色???——》最頂上一排矩形框;

在互動圖中,參與互動的物件既可以是具體的事物,又可以是原型化的事物;

作為具體的事物,一個物件代表現實世界中的某個東西;

【例如】aOrder作為類Order的一個例項,可以代表一個特定的訂單;而如果作為一個原型化的事件,則aOrder可以代表類Order的任何一個例項;

2、生命線與控制焦點???——》每個物件都有自己的生命線;???——》物件生命線是一條垂直的虛線,用來表示一個物件在一段時間記憶體在;

訊息???——》描述物件之間所進行的通訊;

訊息分類???——》呼叫、返回、傳送、建立和銷燬

                                 

解析???——》

第1步???——》 在dispatchForm(分發窗體)中,對於某個已支付的Order進行分發時,就會呼叫該訂單(一個Order類的例項物件aOrder)的dispatch()方法;

1.1 dispatch()方法將逐個呼叫 [for each orderitem] 該Order對應的所有OrderItem物件的getPeddleryId()方法獲取供應ID1.2

(PeddleryId),1.1.1 而OrderItem物件則是通過其所對應的Product物件來的getPeddleryId()方法來獲取供應商ID 1.1.2

當Order的例項物件aOrder得到返回的PeddleryId後,根據該值判斷是否已經有相對應的DeliverOrder物件【if PeddeleryId Not Exist】,如果沒有就建立它(呼叫 1.3 create(PeddleryId)),然後再將對應的Product新增到這個DeliverOrder物件中。[else ] 1.4否則就直接新增到相應的DeliverOrder物件中

assert???——》表示內容所描述的行為是執行過程中那個時刻唯一的有效行為;

如果執行到這個片斷的前面,則說明該片斷就一定會發生

它通常和ignore或consider一起使用,以斷言某種特定種類的訊息行為

break???——》定義一個含有監護條件的子片斷;???——》互動片斷操作符break和迴圈語句的break有點類似;

critical???——》連續性的事物性的操作;

表示該子片斷是“臨界區域”,在臨界區域中生命線上的事件序列不能夠和其它區域中的任何其他事件交錯;???——》表示一個原子性的連續操作;

ref???——》引用另一個片段到此處;

在一個互動圖中,我們可以引用其它的互動圖;???——》表示的方法是用一個矩形,加上ref操作符,並寫明引用的互動圖名稱;

通訊圖就是把順序圖豎起來去看,關注了訪問關係;

通訊圖主要元素???——》

鏈???——》聯結器,表示物件之間的語義連線;

鏈是關聯的一個例項(包括《association》、《self》、《global》、《local》等);

訊息編號???——》一種是無層次編號,它簡單直觀;另一種是巢狀的編號,它更易於表示訊息的包含關係(類似:1.3.2 );

迭代標記???——》用*號表示,表示迴圈;通常還有迭代表達式,用來說明迴圈規則;

監護條件???——》表示分支,也就是表示“如果條件為true,才傳送訊息”;

  1. 序列圖???——》強調訊息時間順序;???——》場景(scenario)的圖形化表示;
  2. 通訊圖???——》強調接收和傳送訊息的物件的結構組織;
  3. 互動概覽圖???——》強調控制流;???——》互動圖和活動圖的混合物;
  4. 計時圖???——》關注沿著線性時間軸、 生命線內部和生命線之間的條件改變;

序列圖不同於通訊圖的特徵???——》

  1. 有物件生命線???——》一條垂直的虛線,表示一個物件在一段時間記憶體;
  2. 控制焦點???——》一個瘦高的矩形, 表示一個物件執行一個動作所經歷;

通訊圖不同於序列圖的特性???——》

  1. 有路徑???——》
  2. 有順序號???——》

序列圖和通訊圖是同構的,它們之問可以相互轉換;

互動圖強調的是物件到物件的控制流;

活動圖則強調的是從活動到活動的控制流;

構件圖(元件圖)???——》描述程式碼構件的物理結構以及各種構建之間的依賴關係;???——》專注於系統的靜態實現檢視;

構件???——》系統中可替換的物理部分;???——》每個構件都必須提供特定的服務;

構件分類???——》

  1. 實施構件???——》構成一個可執行系統的必要和充分構件;
  2. 工作產品構件???——》開發過程的產物,包括建立實施構件的原始碼檔案及資料檔案;???——》不是直接地參與可執行系統,而是用來產生可執行系統的中間工作產品;
  3. 執行構件???——》作為一個正在執行的系統的結果而被建立的;
  • 元件圖組成???——》構件、介面、關係;
  • 檢視解析???——》
  • “Order System”需要呼叫Inventory System元件和Customer Repository元件分別實現的ProductAccessor介面和CustomerLookup介面;
  • 元件間關係???——》泛化、依賴;

元件圖應用???——》

對可執行程式的結構建模???——》

  1. 首先識別你想建模的構件集合
  2. 考慮集合中各構件的不同型別
  3. 對這個集合中的每個構件,分析它們之的關係

對原始碼建模???——》

  1. 識別出感興趣的相關原始碼檔案的集合,並把它們建模為構件;
  2. 對於較大的系統,利用包來進行分組;
  3. 通過約束來表示原始碼的版本號、作者和最後修改日期等資訊;
  4. 用依賴關係來表示這些檔案間編譯的依賴關係

組合結構圖???——》描述一個分類器的內部結構;???——》對傳統類圖的一個補充;

組合結構圖???——》將每一個類放在一個整體中,從類的內部結構來審視一個類;

組成元素???——》

Part???——》表示被描述事物所擁有的內部成分;

Connector???——》表示部件之間的關係;

Port???——》表示部件和外部環境的互動點;

組合結構圖???——》只是一種新的表達形式;???——》能夠表達的資訊;???——》使用組合或者聚合也能夠表示;

應用???——》

解析:

TitleSql類包含兩個內部類,TitleImp類包含兩個部件,它們之間通過介面dmlAccess和java.sql.connection1產生連線;

協作圖(合作圖、協同圖)???——》強調的是傳送和接收訊息的物件之間的組織結構,可以看成是類圖和順序圖的交集,協作圖建模物件或者角色,以及它們彼此之間是如何通訊的;

組成:活動者、物件、連線和訊息;

部署圖(實施圖)???——》用來顯示系統中軟體和硬體的物理架構;???——》在實施階段使用;???——》說明哪些元件或子系統部署於哪些節點;

部署圖組成元素

Node???——》一個物理裝置;

連線???——》系統之間進行互動的通訊路徑;???——》節點之間的連線;

元件???——》可執行的物理程式碼模組;

【例子】某大型商場的資訊管理系統是由一個數據庫伺服器、中央伺服器、每個樓層的樓層伺服器、各櫃檯的收款機和各個部門的計算機終端組成的區域網絡,它們分別負責商場資料儲存、資料的彙總與分析、當日資料的儲存與整理、銷售資訊錄入和進銷存資訊處理等各種業務處理。用部署圖描述該系統在不同硬體上的配置情況;

某嵌入式系統(車載主機板)部署圖(區域性)

典型B/S系統部署圖

包圖???——》用於把模型本身組織成層次結構的通用機制,不能執行

大家給個贊,就是給我最大的鼓勵!!!

注意:“贊”位於右上角;