您好,登錄后才能下訂單哦!
UML的使用方式
草稿
藍本
開發語言
在敏捷開發中我們常以草稿的方式來使用UML。
圖
敏捷開發中我們常用到的圖是類圖跟序列圖。我們用這兩種圖來分析識別領域模型。這些圖形識別出來的概念將形成我們對相關領域描述的一套語言。
1.類圖(Class Diagram)
用來描述對象的類型,是對靜態信息的描述。這些靜態的信息包括類的特性(Features)跟類之間的關系及限制。
- 相關概念
類的特性包括性質(Property)跟操作(Operation)。 Property包括類的屬性(Attribute)跟關聯(Association)。 注意操作(Operation)跟方法(Method)的區別。 Operation是過程的聲明。Method是過程的具體實現。這個區別在存在多態的時候比較容易解釋。比如,我們父類里有doAction(),在不同的子類中有不同的實現。在這種情況下,我們可以說我們有一個operation,并有多個Method的實現。 Generalization, 從軟件開發的角度來看,用繼承(inheritance)可以很好地闡述這個問題。判斷繼承的一個重要原則是李氏替換原則(Liskov Substitution Principle - LSP)。 依賴(Dependency),如果一個單元的相關定義的變換會引起其他單元的變化,我們就可認定著兩者間存在依賴。在軟件設計時。 通過辨識依賴我們可以分析設計在依賴方面的問題。通常我們要做到單向的依賴,環狀依賴的形成是需要我們特別注意避免的。另外,我們盡量要依賴于穩定的單元。接口相對于具體實現要穩定。 根據依賴的定義,其實association,generalization都確立了類之間的依賴關系。但在圖形表達時我們要根據想要表達的核心意圖來選擇是用依賴來表示還是association或generalization。 依賴的傳遞性上是根據具體依賴的種類不同決定的。一般的依賴不具傳遞性。有的也有傳遞性,比如繼承。
-注意點
在我們識別generalization關系時,注意區分分類(classification)這個概念。原因是generalization是可傳遞的,classification是不傳遞的,它是描述對象跟類型之間的關系。比如,猴子是靈長目,靈長目是動物。靈長目是動物按目的一種分類。我們嘗試應用傳遞關系來組織一下。我們可以說猴子是動物,但我們不能說猴子是動物按目的一種分類。注意這里“靈長目是動物按目的一種分類”是classification。所以注意這里“是”的關系不都是generalization。
2.序列圖(Sequence Diagram)
序列圖是交互圖(Interaction Diagram)的一種。交互圖描述某些行為上對象之間(注意是對象之間,不是類。另外有可能不僅僅是類的對象之間,可能還有其他參與者)的相互協作的關系。序列圖用來幫助我們捕獲一個場景下的行為。畫序列圖時,我們常針對一個use case進行,找出實例對象以及他們之間交互的信息來進行圖示。
-作用
此圖不能清楚地描述算法,但它能清楚地描述出調用關系。這很符合我們敏捷開發的需求。作為草圖我們無需關注太多算法細節。
此圖能清楚地辨析出各個對象的職責。作為OO開發的入門或初級用戶,往往容易寫出集中控制(centralized control)的代碼,因為這樣更加貼合過程式的思維習慣。而我們提倡分布的邏輯控制(distributed control),就是把數據跟行為緊密結合到單一職責的對象上。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。