【UML】——概述
面向物件技術
面向物件`
是一種程式設計方法
是一種對現象世界中問題的抽象方式
對面向物件建模技術的研究的主要成果就是統一建模語言UML
軟體質量衡量指標
外部
1、正確性
2、健壯性和可靠性
3、效能
內部
1、模組性
2、靈活性和可擴充套件性
3、可複用性
4、可相容性
建模與視覺化建模
為什麼要建模?
要生產合格的軟體就要有一套關於體系結構、過程和工具的規範
模型:
對現實的簡化。就是把複雜系統程式設計小的系統,採用“逐個擊破”的原則逐一解決。
模型的組成:
系統:即描述的物件
目標:系統的目標
組分:構成系統的各種組分或子系統
約束條件:系統所處的環境及約束條件
變數:表述各組分的量的變化,它分內部變數、外部變數及狀態變數。
關係:表述不同變數之間的數量關係
M={O,G,T,V,R,S}
O:表示模型的物件集
G:表示模型的目標集
T:表示模型系統所處的環境及約束條件集
V:表示模型的變數集,包括內部變數、外部變數及狀態變數
S:表示模型的狀態集,從初態到終態
建模的原理
分解:
抽象:提取相同部分
泛化:繼承
投影/檢視:
構件化:例如像大工廠
形式化:
軟體過程
## 軟體危機的主要特性
1、軟體的開發週期大大超過規定週期
2、軟體開發成本嚴重超標
3、軟體質量難於保證。
軟體開發面臨的問題?
1、不能滿足使用者或商業的要求
2、不能很好的定位需求
3、模組難於整合
4、到最後才發現錯誤
5、對於終端使用者來說質量較差
6、負載時效能差
7、沒有協調團結的努力
8、不斷地修改-釋出問題
UML時一種建模語言,在實際軟體專案中,要和具體的軟體開發過程結合起來才能更好的發揮作用
UML構成
事物:構成模型圖的一些基本圖示符號,它們表示一些面向物件的基本概念
關係:表示基本圖示符號之間的關係
圖:特定的視角對系統所作的抽象描述
總結:事物是對模型中最具有代表性的成分的抽象,關係把事物結合在一起,圖聚集了相關的事物。
事物
結構事物(靜態部分)
類(Class) | 對一組具有相同屬性、方法、關係和語義的物件的描述,一個類實現了一個或多個介面。 | |
---|---|---|
介面(Interface) | 描述了一個類或構件的一個服務的操作集,介面僅僅是定義了一組操作的規範,它並沒有給出這組操作的具體實現 | |
協作(collaboration) | 定義了一個互動,由一組共同工作以提供某協作的角色和其他元素構成的群體,這些協作行為大於所有的元素的各自行為的總和。因此,協作由結構、行為和維度。一個給定的類可以參與幾個協作。 | |
用例(Use Case) | 對一組動作序列的描述,系統執行這些動作將產生一對特定的參與者有價值且可觀察的結果。 | |
主動類(active class) | 其物件至少擁有一個程序或執行緒,因此它能啟動控制活動 | |
構件(component) | 系統中物理的、可替代的部件,它遵循且提供一組介面的實現。 | |
節點(nodes) | 在執行時存在的物理元素,它表示了一種可計算的資源,它通常至少有一些記憶處理能力,一個構建集可以駐留一個節點內,也可以從一個節點遷移到另一個節點。 |
行為事物(動態部分)
互動(interaction) | 由在特定語境中共同完成一定特定任務的一組物件之間交換的訊息組成,一個物件群體的行為或單個操作的行為可用一個互動來描述。 | |
---|---|---|
狀態機(state machine) | 描述了一個物件或以惡搞互動在生命期內相應事件所經歷的狀態序列,單個類或一組類之間的協作的行為可以用狀態機來描述,一個狀態機涉及到一些其他的元素,包括狀態、轉換(從一個狀態到另一個狀態的流)、事件(發轉換的事物)和活動(對一個轉換的相應)。 |
分組事物(組織部分)
包(package):把元素組織成組的機制。
唯一的組織機制。
擁有其他元素,這些元素可以是類、介面、構件、節點、協作、用例和圖,甚至可以是其他包。
一個包形成了一個名稱空間,在一個包中同一種元素的名稱必須是唯一的,不同種類的元素可以由相同的名稱。
註釋事物(解釋部分)
用來描述、說明和標註模型的任何元素。
1、註解(note)是一個依附於一個元素或一組元素之上,對它進行約束和解釋的簡單符號。
UML中的關係
關聯 | 描述了兩個或多個類之間的結構性關係。 | |
---|---|---|
泛化 | 一種特殊/一般關係,特殊元素(子元素)的物件可替代一般元素(父元素)的物件。用這種方法,子元素共享了父元素的結構行為。 | |
依賴 | ||
實現 | 類元之間的語義關係,在該關係中一個類元描述了另一個類員保證實現的契約。 |
UML中的圖
用例圖:(use case diagrams)
用來描述使用者的需求,從使用者的角度描述系統的功能,並指出各功能的執行者,強調誰在使用系統,系統為執行者完成哪些功能。
靜態圖
1、類圖(Class diagrams)用於定義系統中的類,包括描述類的內部結構和類之間的關係,類圖主要用於描述系統的靜態結構。
2、物件圖(Object diagrams)是類圖的一個例項,描述了系統在具體時間點上所包含的物件以及各個物件之間的關係。
行為圖:用來描述系統的動態模型和物件之間的互動關係
1、狀態圖(Statechart diagrams):用來描述類的物件所有可能的狀態以及事件發生時狀態的轉移條件。
2、活動圖(Activity dragrams):用來描述滿足用例要求所要進行的活動以及活動間的約束關係,使用活動圖有利於識別系統的並行活動。
3、互動圖:用來描述物件之間的互動關係,包括:
(1)、序列圖(Sequence diagrams):描述物件之間的互動順序,著重體現物件間訊息傳遞的時間順序,強調物件之間訊息的傳送順序,同時也顯示物件之間的互動過程。
(2)、協作圖(Collaboration diagrams):描述物件之間的合作關係,更側重於說明哪些物件之間有訊息的傳遞。
序列圖和寫作圖可以相互互動。
4、實現圖
(1)、構件圖(Component diagrams):構件圖用來描述程式碼構件的物理結構以及各構件之間的依賴關係。一個構件可以使一個資原始檔、一個二進位制檔案或者一個可執行檔案。
(2)、實施圖(Deployment diagrams):部署圖定義了系統中硬體的物理體系結構,用來描述實際的物理裝置以及它們之間的連線關係。
UML中的規則
命名為事物、關係和圖起名
範圍給一個名稱以特定含義的語境
可見性怎樣讓其他人使用或看見名稱
完整性事物如何正確、一致地相互聯絡
執行執行或模擬動態模型的含義是什麼
UML中的公共機制
規格說明:
UML不只是一種圖形語言。實際上,在它的圖形表示法的每部分背後都有一個規格說明,這個規格說明提供了對構造塊的語法和語義的文字描述。
UML的圖形表示法用來對系統進行視覺化;UML的規格說明用來描述系統的細節。
UML的規格說明提供了一個語義底版,它包含了一個系統的各個模型的所有部分,並且各個部分相互聯絡,並保持一致,UML圖只不過是對底版本的簡單視覺投影,每一個圖展現了系統的一個特定的方面。
修飾:
UML表示法中的每一個元素都有一個基本的符號,可以把各種修飾細節加到這個符號上
通用劃分:
1、類/物件二分法
類是一個抽象;物件是這種抽象的一個具體形式。
UML的每一個構造塊幾乎都存在像類/物件這樣的二分法。
2、介面/實現二分法
介面生命了一個契約,而實現則表示了對該契約的具體實施,它負責如實地實現介面的完整語義。
幾乎每一個UML的構造塊都有像介面/實現這樣的二分法。
擴充套件機制:
對UML圖示符號的擴充套件。
UML在應用
感謝您的閱讀,如果有更好的指導,歡迎您的指導!