UML(一)-【概論】
前言
主要是對九個方面進行了概述:
1.面向物件技術
2.模型與視覺化建模
3.什麼是UML
4.UML發展歷史
5.軟體過程
6.UML工具
7.UML的構成
8.UML示例
9.UML在軟體開發各個階段的應用
面向物件技術
之前看軟工的視訊就學習過,這裡再複習一遍。
面向物件技術出現於20世紀70年代末,是軟體工程領域中的重要技術。
面向物件技術是一種程式設計方法。
面向物件技術是一種對現實世界中問題的抽象方式。
對面向物件建模技術的研究的主要成果就是統一建模語言UML。
軟體質量衡量指標
分為兩部分:外部、內部。
(1)外部:正確性、健壯性和可靠性、效能。
(2)內部:模組性、靈活性和可擴充套件性、可複用性、可相容性。
面向物件技術提高了軟體質量。
模型與視覺化建模
1.什麼是模型?
模型是對現實的簡化。就是把複雜系統變成小的系統,採用”逐個擊破“的原則逐一解決。
2.為什麼要視覺化建模?
一幅圖頂的上千言萬語。
3.模型的組成
模型是用來描述現實系統的,一般由下列幾個部分組成:
系統:即描述的物件。
目標:系統的目標。
組分:構成系統的各種組分或子系統。
約束條件:系統所處的環境及約束條件。
變數:表述各組分的量的變化,它分內部變數、外部變數及狀態變數。
關係:表述不同變數之間的數量關係。
4.模型的表示
模型可以用一個6元組表示:M{O,G,T,V,R,S},其中:
O:表示模型的物件集;
G:表示模型的目標集;
T:表示模型系統所處的環境及約束條件集;
V:表示模型的變數集,包括內部變數、外部變數及狀態變數;
R:表示模型變數之間的關係集;
S:表示模型的狀態集,從初態到終態。
5.建模的原理
(1)分解
(2)抽象
(3)泛化
(4)投影/檢視
(5)構件化
(6)形式化
什麼是UML
1.UML是一種視覺化的面向物件建模語言。
2.UML描述了一個系統的靜態結構和動態行為。
3.UML用圖形方式表現典型的面向物件系統的整個結構。
4.UML從不同的角度為系統建模,並形成系統的不同檢視。這些圖包括:類圖(它以繼承結構、關聯、組成和聚集為特色)、時序圖、協作圖和狀態圖等。
5.UML統一建模語言是用來設計軟體藍圖的視覺化建模語言。
它支援面向物件系統的分析、設計、實現和交付等各個環節,可以用於系統的理解、設計、瀏覽、維護和資訊控制。
在著名的Booch方法、OMT方法、OOSE方法基礎上,廣泛民主的發展組成。
6.於1997年11月被OMG組織正式採納。
7.UML不是一個程式設計語言。
8.UML不是一個形式化語言。
軟體過程
1.軟體危機的主要特徵
(1).軟體開發週期大大超過規定日期
(2).軟體開發成本嚴重超標
(3).軟體質量難於保證
2.軟體開發面臨的問題?
(1)不能滿足使用者或商業的要求
(2).不能很好的定位需求
(3).模組難於整合
(4).到最後才發現錯誤
(5).對於終端使用者來說質量較差
(6).負載時效能差
(7).沒有協調團隊的努力
(8).不斷地修改-釋出問題
3.統一軟體過程RUP
RUP是Rational公司開發和維護的過程產品,是目前影響較大的、面向物件的軟體開發過程。
(1.)RUP的三個特點:用例驅動以架構為中心採用迭代和增量。
(2).統一軟體過程框架
RUP認為:一個軟體產品開發過程應該包括多次迴圈。
每個迴圈包含四個階段:
初始
細化
構造
移交
每個階段又包括多個迭代過程。
UML工具
1.主流UML工具
-Rational Rose
-Together
-Microsoft Visio
2.什麼是Rational Rose?
Rational Rose是一種工具,它可以在Rose建模中提供建立、檢視、修改和操作元件的能力
UML的構成
UML的基本構造塊
一.UML中的事物
構成模型圖的一些基本圖示符號,它們表示一些面向物件的基本概念。
可以分為四大類:結構事物、行為事物、分組事物、註釋事物。
1.結構事物:
(1)類:類是對一組具有相同屬性、方法和語義的物件的描述。一個類實現一個或多個介面。
(2)介面:介面描述了一個類或構件的一個服務的操作集。介面僅僅是定義了一組操作的規範,它並沒有給出這組操作的具體實現。
(3)協作:協作定義了一個互動,它是由一組共同工作以提供某協作的角色和其它元素構成的群體,這些協作行為大於所有元素的各自行為的總和。因此,協作有結構、行為和維度。一個給定的類可以參與幾個協作。
(4)用例(use case ):用例是對一組動作序列的描述,系統執行這些動作將產生一個對特定的參與者有價值且可觀察的結果。
(5)主動類:是這樣的類,其物件至少擁有一個程序或線圖,因此它能啟動控制活動。
(6)構件:構建是系統中物理的、可替代的部件,它遵循且提供一組介面的實現。
(7)節點(node):節點是在執行時存在的物理元素,它表示了一種可計算的資源,它通常至少有一些記憶能力處理能力。一個構建集可以駐留在一個節點內。也可以從一個節點遷移到另一個節點。
2.行為事物:
行為事物是UML模型的動態部分。它們是模型中的動詞,描述了跨越時間和空間的行為。共有兩類主要的行為事物。
(1)互動:互動這樣一種行為,他由在特定語境中共同完成一定特定任務的一組物件之間交換的訊息組成。一個物件群體的行為或單個操作的行為可用一個互動來描述。
(2)狀態機:狀態機是這樣一種行為,描述了一個物件或一個互動在生命期內響應事件所經歷的狀態序列。單個類或一組類之間協作的行為可以用狀態機來描述。一個狀態機到另一個狀態的流事件或活動。
3.分組事物:
分組事物是UML模型的組織部分,最主要的分組是包(package).
(1)包是把元素組織成組的機制。
(2)包是UML中唯一的組織機制。
(3)包可以擁有其他元素,這些冤死可以是類、介面、構建、節點、協作、用例和圖,甚至可以是其他包。
(4)一個包形成了一個名稱空間。在一個包中同一種元素的名稱必須是唯一的。不同種類的元素可以有相同的名稱。
4.註釋事物:
註釋事物是UML模型的解釋部分。這些註釋事物用來描述、說明和標註模型的任何元素。有一種主要的註釋事物,稱為註解(note)
註解是一個依附於一個元素或一組元素之上,對它進行約束或解釋的簡單符號。
二.UML中的關係
一共有四種關係:關聯、依賴、泛化、實現。
1.關聯:描述了兩個或多個類之間的結構性關係。
2.依賴:是一種使用的關係, 即一個類的實現需要另一個類的協助, 所以要儘量不使用雙向的互相依賴.
3.泛化:是一種特殊/一般關係,特殊元素(子元素)的物件可替代一般元素(父元素)的物件。用這種方法,子元素共享了父元素的結構和行為。
4.實現:是類元之間的語義關係,在該關係中一個類元描述了另一個類元保證實現的契約。
三、UML中的圖
特定的視角對系統所做的抽象描述。事物是對模型中最具有代表性的成分的抽象;關係把事物結合在一起,圖聚集了相關的事物。
UML表示機制的層次結構:
1.用例圖 :
用來描述使用者的需求,從使用者的角度描述系統的功能,並指出各功能的執行者,強調誰在使用系統,系統為執行者完成哪些功能。
2.靜態圖:
類圖:用於定義系統中的類,包括描述類的內部結構和類之間的關係。類圖主要用於描述系統的靜態結構。
物件圖:物件圖是類圖的一個例項,描述了系統在具體時間點上所包含的物件以及各個物件之間的關係。
3.行為圖:
用來描述系統的動態模型和物件之間的互動關係,包括:
-狀態圖:用來描述類的物件所有可能的狀態以及事件發生時狀態的轉移條件。-活動圖:用來描述滿足用例要求所要進行的活動以及活動間的約束關係,使用活動圖有利於識別系統的並行活動。
-互動圖:用來描述物件之間的互動關係,包括:
— 序列圖:描述物件之間的互動順序,著重體現物件間訊息傳遞的事件順序,強調物件之間訊息的傳送順序,同時 也顯示物件之間的互動過程。
協作圖:描述物件之間的合作關係,更側重於說明哪些物件之間有訊息的傳遞。
序列圖和協作圖可以相互轉化。
4.實現圖 :
——構件圖:構件圖用來描述程式碼構件的物理結構以及各構件之間的依賴關係。一個構件可以使一個資原始檔、一個二進位制檔案或者一個可執行檔案。
——實施圖:部署圖定義了系統中硬體的物理體系結構,用來描述實際的物理裝置以及它們之間的連線關係。
UML的規則
不能簡單地把UML的構造塊按隨機的方式放在一起。像任何語言一樣,UML有一套規則,這些規則描述了一個結構良好的模型看起來應該像什麼。
UML有用於描述如下事物的語義規則:
命名為事物、關係和圖起名範圍給一個名稱以特定含義的語境。
可見性怎樣讓其他人使用或看見名稱。
完整性事物如何正確、一致地相互聯絡。
執行執行或模擬動態模型的含義是什麼。
UML中的公共機制
一、規格說明
UML不只是一種圖形語言。實際上,在它的圖形表示法的每部分背後都有一個規格說明,這個規格說明提供了對構造塊的語法和語義的文字敘述。
UML的圖形表示法用來對系統進行視覺化;UML的規格說明用來描述系統的細節。
UML的規格說明提供了一個語義底版,它包含了一個系統的各模型的所有部分,並且各部分相互聯絡,並保持一致。因此,UML圖只不過是對底版的簡單視覺投影,每一個圖展現了系統的一個特定的方面。
二、修飾
UML表示法中的每一個元素都有一個基本符號,可以把各種修飾細節加到這個符號上。
三、通用劃分
1.類/物件二分法
——類是一個抽象;物件是這種抽象的一個具體形式。
——UML的每一個構造塊幾乎都存在像類/物件這樣的二分法。
例如:用例和用例例項(場景),構件和構件例項,節點和節點例項等。
2.介面/實現二分法
——介面聲明瞭一個鍥約,而實現則表示了對該契約的具體實施,它負責如實地實現介面的完整語義。
——幾乎每一個UML的構造塊都有像介面/實現這樣的二分法。
例如:用例和實現它們的協作,操作和實現它們的方法。
四、擴充套件機制
對UML圖示符號的擴充套件。
UML在軟體開發各個階段的應用
在軟體開發各個階段,使用不同的UML圖對系統進行描述。
採用面向物件技術設計軟體系統時,使用用例圖來描述使用者需求;使用類圖、物件圖、包圖、構件圖和部署圖這五種靜態圖來描述系統的靜態結構;使用順序圖、合作圖、活動圖和狀態圖這四種圖描述系統行為。
1.需求:
——採用用例圖來描述需求(角色、功能、外部互動)。
2.分析:明確解決問題的細節——採用類圖來描述靜態結構——採用順序圖、合作圖、活動圖、狀態圖來描述動態行為
3.設計:
給出解決方案
——採用類圖、包,對類的介面進行設計
4.實現:
——將類用某面向物件語言實現
5.整合與交付:
——構件圖、包、部署圖
6.測試:
——單元測試使用類圖和列的規格說明書。
——整合測試使用類圖、包、構件圖和合作圖。
——系統測試使用用例圖來測試系統功能。