Rose 的用法

 

一、模型與建模

模型:對問題的書面上的無歧義文字或圖形的描述.簡言之, 模型是對現實的簡化. 通過模型, 人們可以瞭解所研究事物的本質.

建模:對現實系統進行適當的過濾,用適當的表現規則描述出簡潔的模型。

建模是一種深入解決問題的方法。

建模的原則:

(1). 選擇建立什麼樣的模型對如何發現和解決問題具有重要的影響。正確的模型有助於提高開發者的洞察力。

(2)每個模型可以有多種表現方式,使用者的身份和使用的原因是評判模型好壞的關鍵。

(3)最好的模型總是能夠切合實際。模型是現實的簡化,必須保證簡化過程不會掩蓋任何重要的的細節。

(4)孤立模型是不完整的,

軟件建模的實現過程:

軟件建模的作用是把來源於現實世界的問題轉化爲計算機可以理解和實現的問題。

軟件建模的實現過程是從需求入手,用模型表達分析設計過程,最終將模型

二、UML

1、UML(United Modeing Languange)統一建模語言:是一種基於面向對象的可視化建模語言。

UML 採用了一組形象化的圖形(如類圖)符號作爲建模語言, 使用這些符號可以形象地描述系統的各個方面

UML 通過建立圖形之間的各種關係(如類與類之間的關係)來描述模型.

2、UML 中一共有 10 種圖: 類圖、對象圖、包圖、組件圖、部署圖、用例圖、時序圖、協作圖、狀態圖、活動圖(前五個靜態模型圖: 描述系統的靜態結構;後動態模型圖: 描述系統行爲的各個方面)

3、UML 中的關係主要包括 4 種: 關聯關係(association)、依賴關係(dependency)、泛化關係(generalization)、實現關係(realization)

三、用例圖

1、用例圖(Use Case Diagram): 也稱爲用戶模型圖, 是從軟件需求分析到最終實現的第一步, 它是從客戶的角度來描述系統功能.

2、用例圖包含 3 個基本組件: 參與者(Actor), 用例(Use Case), 關係:

(1)參與者(Actor): 與系統打交道的人或其他系統即使用該系統的人或事物. 在 UML 中參與者用人形圖標表示

(2)用例(Use Case): 代表系統的某項完整的功能. 在 UML 中使用一個橢圓來表

(3)關係: 定義用例之間的關係 ------ 泛化關係, 擴展關係, 包含關係

 

A 用例之間的關係 ---- 泛化關係

泛化關係: 表示同一業務目的(父用例)的不同技術實現(各個子用例). 在 UML 中, 用例泛化用一個三角箭頭從子用例指向父用例. 以下是某購物網站爲用戶提供不同的支付方式

 

 

B 用例之間的關係----包含關係

一個用例可以包含其他用例具有的行爲, 並把它包含的用例行爲作爲自身行爲的一部分. 在 UML 中包含關係用虛線箭頭加 “<<include>>”, 箭頭指向被包含的用例

 

C  用例之間的關係----擴展關係

如果在完成某個功能的時候偶爾會執行另外一個功能, 則用擴展關係表示.在 UML 中擴展關係用虛線箭頭加 “<<extend>>”, 箭頭指向被擴展的用例

四、類圖

類圖是面向對象系統建模中最常用的圖. 是定義其他圖的基礎.

類圖主要是用來顯示系統中的類, 接口以及它們之間的關係.

類圖包含的主要元素有類, 接口和關係. 其中關係有關聯關係, 泛化關係, 依賴關係和實現關係. 在類圖中也可以包含註釋和約束.

1、類的表示法

1)類是類圖的主要組件, 由 3 部分組成: 類名, 屬性和方法. 在 UML 中, 類用矩形來表示, 頂端部分存放類的名稱, 中間部分存放類的屬性, 屬性的類型及值, 底部部分存放類的方法, 方法的參數和返回類型.

2)在 UML 中可以根據實際情況有選擇的隱藏屬性部分或方法部分或兩者都隱藏

3)在 UML 中, 公有類型有 + 表示, 私有類型用 – 表示, 保護類型用 # 表示. UML 的工具開發商可以使用自己定義的符號表示不同的可見性

2、接口的表示法

1)接口中包含方法, 但不包含屬性. 在 UML 中接口用一個帶有名稱的圓圈表示, 並且通過一條實線與它的模型元素相連

2)有時候接口也使用普通類符號表示

3、類之間的關係 ---- 泛化關係

1)在 UML 中, 泛化關係用來表示類與類, 接口與接口之間的繼承關係. 泛化關係有時也稱爲”is a kind of”關係

在 UML 中泛化關係用一條實線空心箭頭由子類指向父類

4、類之間的關係 ---- 實現關係

1)在 UML 中, 實現關係用來表示類與接口之間的實現關係.

2)在 UML 中實現關係用一條虛線空心箭頭由子類指向父類

5、類之間的關係 ---- 依賴關係

1)對於兩個相對獨立的系統,當一個系統負責構造另一個系統的實例,或者依賴另一個系統的服務時,這兩個系統之間體現爲依賴關係. 例如生產零件的機器和零件,機器負責構造零件對象; 充電電池和充電器,充電電池通過充電器來充電;自行車Bicycle和打氣筒Pump,自行車通過打氣筒來充氣

2)在現實生活中,通常不會爲某一輛自行車配備專門的打氣筒,而是在需要充氣的時候,從附近某個修車棚裏借個打氣筒打氣。在程序代碼中,表現爲Bicycle類的expand()方法有個Pump類型的參數。以下程序代碼表示某輛自行車先後到兩個修車棚裏充氣:

6、類之間的關係 ---- 關聯關係

1)對於兩個相對獨立的系統,當一個系統的實例與另一個系統的一些特定實例存在固定的對應關係時,這兩個系統之間爲關聯關係。例如客戶和訂單,每個訂單對應特定的客戶,每個客戶對應一些特定的訂單;公司和員工,每個公司對應一些特定的員工,每個員工對應一特定的公司;自行車和主人,每輛自行車屬於特定的主人,每個主人有特定的自行車。而充電電池和充電器之間就不存在固定的對應關係,同樣自行車和打氣筒之間也不存在固定的對應關係。

2)Person 類與 Bicycle 類之間存在關聯關係,這意味着在 Person 類中需要定義一個 Bicycle 類型的成員變量

在現時生活中,當騎自行車去上班時,只要從家裏推出自己的自行車就能上路了,不象給自行車打氣那樣,在需要打氣時,還要四處去找修車棚。因此,在Person類的goToWork()方法中,調用自身的bicycle對象的run()方法。假如goToWork()方法採用以下的定義方式:

那就好比去上班前,還要先四處去借一輛自行車,然後才能去上班。

7、關聯關係的名稱: 關聯關係可以有一個名稱, 用於描述該關係的性質.  此關聯名稱應該是動詞短語, 因爲它表明源對象正在目標對象上執行動作.

8、關聯關係的角色

當一個類處於關聯的某一端時, 該類就在這個關係中扮演一個特定的角色. 具體來說, 角色就是關聯關係中一個類對另一個類所表現的職責. 角色名稱是名詞或名稱短語.

9、關聯關係的多重性:關聯關係的多重性是指有多少對象可以參與該關聯, 多重性可以用來表達一個取值範圍, 特定值, 無限定的範圍.

10、  關聯關係 ---- 聚合關係

1)           聚合關聯是一種特殊的關聯. 它表示類間的關係是整體與部分的關係. 簡言之: 關聯關係中的一個類描述了一個較大的事物, 它由較小的事物組成.

2)           聚合關係描述了 “has a” 的關係, 即整體對象擁有部分對象

3)           整體和部分之間用空心菱形箭頭的連線連接, 箭頭指向部分

11、關聯關係 ---- 組成關係

1)組成關係是更強形式的聚合.

2)組成關係中, 整件擁有部件的生命週期, 所以整件刪除時, 部件一定會跟着刪除. 而且, 多個整件不可以同時共享同一個部件。

3) 聚合關係中, 整件不會擁有部件的生命週期, 所以整件刪除時, 部件不會被刪除. 再者, 多個整件可以共享同一個部件.

4) UML 中組成關係用實心的菱形實線表示

12、關聯關係 ---- 導航性

1)導航性表示可從源類的任何對象到目標類的一個或多個對象遍歷. 即: 給定源類的一個對象, 可以得到目標類的所有對象. 可以在關聯關係上加上箭頭表示導航方向.

2) 只在一個方向上可以導航的關聯稱爲單向關聯,用一個帶箭頭的方向表示; 在兩個方向上都可以導航的關聯稱爲雙向關聯, 用一條沒有箭頭的實線表示.

五、時序圖

1)時序圖用於描述對象之間的傳遞消息的時間順序, 即用例中的行爲順序.

2)當執行一個用例時, 時序圖中的每條消息對應了一個類操作或者引起轉換的觸發事件.

3)在 UML 中, 時序圖表示爲一個二維的關係圖, 其中, 縱軸是時間軸, 時間延豎線向下延伸. 橫軸代表在協作中各個獨立的對象. 當對象存在時, 生命線用一條虛線表示, 消息用從一個對象的生命線到另一個對象的生命線的箭頭表示. 箭頭以時間的順序在圖中上下排列.

 

1、              時序圖中的基本概念

1) 對象: 時序圖中對象使用矩形表示, 並且對象名稱下有下劃線. 將對象置於時序圖的頂部說明在交互開始時對象就已經存在了. 如果對象的位置不在頂部, 表示對象是在交互的過程中被創建的.

2) 生命線:  生命線是一條垂直的虛線. 表示時序圖中的對象在一段生命週期內存在. 每個對象底部中心的位置都帶有生命線.

3) 消息: 兩個對象之間的單路通信. 從發送方指向接收方. 在時序圖中很少使用返回消息.

4) 激活: 時序圖可以描述對象的激活和鈍化. 激活表示該對象被佔用以完成某個任務. 鈍化指對象處於空閒狀態, 等待消息. 在 UML 中, 對象激活時將對象的生命線拓寬爲矩形來表示的. 矩形稱爲計劃條或控制期. 對象就是在激活條的頂部被激活的. 對象在完成自己的工作後被鈍化.

5) 對象的創建和銷燬: 在時序圖中, 對象的默認位置是在圖的頂部. 這說明對象在交互開始之前就已經存在了. 如果對象是在交互過程中創建的, 那麼就應該將對象放到中間部分. 如果要撤銷一個對象, 在其生命線終止點處放置 “ X” 符號.

六、活動圖

 在 UML 中, 活動圖本質上就是流程圖. 它用於描述系統的活動, 判定點和分支等.

1、活動圖中的基本概念

1)動作狀態: 原子的, 不可中斷的動作, 並在此動作完成之後向另一個動作轉變. 在 UML 中動作狀態用圓角矩形           表示, 動作狀態所表示的動作寫在圓角矩形內部.

2) 分支與合併:  分支在軟件系統中很常見. 一般用於表示對象類所具有的條件行爲. 用一個布爾型表達式的真假來判定動作的流向. 條件行爲用分支和合並表達.在活動圖中, 分支用空心小菱形      表示. 分支包括一個入轉換和兩個帶條件的出轉換, 出轉換的條件應該是互斥的, 須保證只有一條出轉換能夠被觸發. 合併包含兩個帶條件的入轉換和一個出轉換.

3) 分叉與匯合: 分叉用來描述併發線程, 每個分叉可以有一個輸入轉換和兩個或多個輸出轉換. 每個轉換都可以是獨立的控制流. 匯合代表兩個或多個併發控制流同步發生, 當所有的控制流都達到匯合點後, 控制才能繼續往下進行. 每個匯合可以有兩個或多個輸入轉換和一個輸出轉換. 在 UML 中分叉和匯合用一條粗直線              表示

4) 泳道: 泳道將活動圖中的活動劃分爲若干組, 並將每一組指定給負責這組活動的業務組織. 泳道區分負責活動的對象, 明確地表示哪些活動是由哪些對象進行的. 每個活動指定明確地屬於一個泳道. 在活動圖中, 泳道用垂直實線繪出, 垂直線分隔的區域即爲泳道

七、狀態圖

狀態圖: 通過建立對象的生存週期模型來描述對象隨時間變化的動態行爲.

1、狀態圖中的基本概念

1)狀態: 用圓角矩形表示. 狀態名稱表示狀態的名字, 通常用字符串表示. 一個狀態的名稱在狀態圖所在的上下文中應該是唯一的.

2) 轉換: 用帶箭頭的直線表示. 一端連着源狀態, 一端連着目標狀態.

3) 初始狀態: 每個狀態圖都有一個初始狀態. 此狀態代表狀態圖的起始位置. 初始狀態只能作爲轉換的源, 不能作爲轉換的目標, 並且在狀態圖中只能有一個. 初始狀態用一個實心圓表示.

4) 終止狀態: 模型元素的最後狀態, 是一個狀態圖的終止點. 終止狀態在一個狀態圖中可以有多個.

八、協作圖

協作圖(也叫合作圖)是一種交互圖.

時序圖主要側重於對象間消息傳遞在時間上的先後關係, 而協作圖表達對象間的交互過程及對象間的關聯關係。

九、對象圖簡介

對象圖是類圖的一個實例, 用於顯示系統執行時的一個可能的快照. 即在某一個時間上系統可能出現的樣子. 對象圖用帶下劃線的對象名稱來表示對象.

十、包圖簡介

1)包圖: 由包和包之間的關係組成. 包的圖標就如同一個帶標籤的文件夾.

2)包提供了一種用於組織各種元素的分組機制. 在 UML 中, 包用來對元素進行分組, 併爲這些元素提供命名空間. 包所擁有的或者引用的所有元素稱爲包的內容, 包沒有實例.

十一、組件圖簡介

1) 組件圖用來建立系統中各組件之間的關係, 各組件通過功能組織在一起.

2) Javabean, ejb, jsp 都是組件。在UML中,組件使用在左側有兩個小矩形的大矩形來表示。

3) 組件圖可以用來設計系統的整體構架。

十二、部署圖簡介

1) 部署圖用來幫助開發者瞭解軟件中的各個組件駐留在什麼硬件位置, 以及這些硬件之間的交互關係。

2) 節點: 用來表示一種硬件, 可以是打印機, 計算機等.節點的標記符號是一個三維框,在框的左上方包含了節點的名稱。

3) 通信關聯: 節點通過通信關聯建立彼此的關係,採用從節點到節點繪製實線來表示關聯。

發佈了42 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章