《基于任務驅動模式的軟件工程與UML建模技術》課件項目十_第1頁
《基于任務驅動模式的軟件工程與UML建模技術》課件項目十_第2頁
《基于任務驅動模式的軟件工程與UML建模技術》課件項目十_第3頁
《基于任務驅動模式的軟件工程與UML建模技術》課件項目十_第4頁
《基于任務驅動模式的軟件工程與UML建模技術》課件項目十_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目十靜態(tài)建模任務一認識靜態(tài)建模

任務二認識類圖

任務三使用RationalRose繪制類圖任務四認識對象圖

任務一認識靜態(tài)建模

自然界中存在的事物大都具有類與對象的關系,于是我們可以借用自然界中的類與對象的表示方法,在計算機的軟件系統(tǒng)中描述與實現(xiàn)類和對象。所謂對象,就是可以控制和操作的實體,它可以是一個設備、一個組織或一個商務,它包括屬性的描述和行為的描述兩方面。屬性描述類的基本特征(汽車的長度、顏色等);行為描述類具有的功能(汽車啟動、行駛、轉彎和剎車等功能),也就是對指定類的對象可以進行哪些操作。就像程序設計語言中整型變量是整數(shù)類型的具體變化,用戶可以對整型變量進行操作一樣,對象是類的實例化,所有的操作都是針對對象進行的。以面向對象方式建造的模型,由于建造在真實世界的基本概念上,與真實世界非常接近,使得該模型易于交流,易于驗證,易于維護。

操作一靜態(tài)建模概述

在計算機系統(tǒng)中,我們用類表示系統(tǒng),并把現(xiàn)實世界中我們能夠識別的對象分類表示,這種處理方式稱做面向對象。由于面向對象的思想與現(xiàn)實世界中的事物的表示方式相似,所以采用面向對象的思想建造模型會為建模者帶來很多好處。UML的靜態(tài)建模就需要借助于類圖和對象圖。使用UML進行靜態(tài)建模,就是通過類圖和對象圖從一個相對靜止的狀態(tài)分析系統(tǒng)中包含的類和對象,以及它們之間的關系等。

任務二認識類圖

操作一類圖的概述

類圖顯示了系統(tǒng)靜態(tài)的結構,標識了不同的實體(人、事物和數(shù)據(jù))是如何彼此關聯(lián)的。在類圖中不僅包含了系統(tǒng)定義的各種類(其中包含了類的屬性和操作),也包含了它們之間的關系。由于類圖是用來描述軟件系統(tǒng)中的類以及類之間的關系的一種圖示,是從靜態(tài)角度表示系統(tǒng)的,所以這種描述在系統(tǒng)整個生命周期中都是有效的。類圖是構建其它圖的基礎,如果沒有類圖,就沒有狀態(tài)圖、順序圖和協(xié)作圖等,也就無法表示軟件系統(tǒng)的其它各個側面。類圖中允許出現(xiàn)的模型元素只有類和它們之間的關系。如圖10-1所示,類用長方形表示,長方形分成上、中、下三個區(qū)域,每個區(qū)域用不同的名字標識,用以代表類的各個特征。上面的區(qū)域內標識類的名字,中間的區(qū)域內標識類的屬性,下面的區(qū)域內標識類的操作方法,這三部分作為一個整體描述某個類。圖10-1類的表示在面向對象軟件工程中,將類劃分為以下幾種:

(1)實體類:它表示的是系統(tǒng)領域內的實體。實體類對應著現(xiàn)實中的客觀實物,是系統(tǒng)領域內的實體,用來保存信息,一般對應著數(shù)據(jù)表、文件等。實體類可以從現(xiàn)實中存在的客觀事物,以及需要持久存放的信息兩方面來發(fā)現(xiàn)。實體類的表示方法如圖10-2所示。圖10-2實體類

(2)邊界類:是系統(tǒng)的用戶界面,直接跟系統(tǒng)外部參與者交互,與系統(tǒng)進行信息交流。它位于系統(tǒng)與外界的交界處,例如窗體、對話框、報表、與外部設備或系統(tǒng)交互的類等。邊界類處在用例圖中參與者與用例的關聯(lián)處,可以根據(jù)用例圖發(fā)現(xiàn)邊界類。每個參與者和用例交互至少要有一個邊界類。邊界類的表示方法如圖10-3所示。圖10-3邊界類

(3)控制類:是控制系統(tǒng)中對象之間的交互。它負責協(xié)調其它類的工作,實現(xiàn)對其他對象的控制。一個用例中最少會有一個控制類,用來控制用例中的事件順序,也可以在多個用例之間協(xié)調用例之間的聯(lián)系??刂祁惖谋硎痉椒ㄈ鐖D10-4所示。圖10-4控制類在傳統(tǒng)的C/S系統(tǒng)中,實體類、邊界類和控制類沒有嚴格的一一對應關系;在現(xiàn)在流行的設計模式(如MVC模式)中,實體類、邊界類和控制類一一對應??赏ㄟ^查找分析人員、組織、設備、事件和外部系統(tǒng)等,找出各種可能有用的候選對象,以發(fā)現(xiàn)實體類,或通過閱讀系統(tǒng)文檔和用例,查找用例的事件流中的名詞(包括角色、類、類屬性和表達式),從中尋找到實體類;對于邊界類,分析階段不需要深入研究用戶界面的窗口部件,只要能說明通過交互所實現(xiàn)的目標就可以。有些類無法通過以上方法找到;有些類需要從協(xié)作圖和順序圖中通過分析對象來確定。例如在下面訂貨系統(tǒng)的用例圖中找出系統(tǒng)的邊界類、實體類、控制類(見圖10-5、10-6)。圖10-5訂貨管理用例圖圖10-6訂貨管理的控制類、邊界類、實體類

(4)具體類:有自己的具體對象的類稱為具體類。具體類中的操作都有具體實現(xiàn)的方法。例如:圖10-7中的“輪船”和“汽車”兩個類就是具體的類,“汽車”中的drive操作具體實現(xiàn)為驅動車輪滾動,而“輪船”類中的drive操作則具體實現(xiàn)為轉動螺旋槳。

(5)抽象類:沒有具體對象的類稱為抽象類。抽象類一般為父類,用于描述其它類(子類)的公共屬性和行為(操作)。比如圖10-7中“交通工具”就是一個抽象類。(在Rose中用斜體顯示)。對于抽象類,很難想象該類的對象是什么樣子,因為它既不是具體的汽車,也不是具體的輪船,所以該類沒有對象,但是描述了交通工具的一般特征。圖10-7具體類與抽象類

操作二類圖的組成

類圖顯示了系統(tǒng)靜態(tài)的結構,標識了不同的實體(人、事物和數(shù)據(jù))是如何彼此相關聯(lián)的。在類圖中不僅包含為系統(tǒng)定義的各種類(其中包含了類的屬性和操作),也包含了它們之間的關系。由于類圖是用來描述軟件系統(tǒng)中類以及類之間的關系的一種圖示,是從靜態(tài)角度表示系統(tǒng)的,所以這種描述在系統(tǒng)整個生命周期中都是有效的。類圖是構建其它圖的基礎,如果沒有類圖,就沒有狀態(tài)圖、順序圖和協(xié)作圖等,也就無法表示軟件系統(tǒng)的其它各個側面。

1.類的名稱

類的名稱是一個字符串,是每個類中所必有的構成元素,用于區(qū)別于其他類。類的名稱應該來自系統(tǒng)的問題域,盡可能用明確簡短的業(yè)務領域中事物的名稱,避免使用抽象、無意義的名詞。通常情況下,類的名稱為一個名詞,例如人、桌子、圖形、匯總。譬如,“事物”就是個抽象的名詞。如果用英文,第1個字母大寫,如Shape、Person、Item。

類的名稱可以分為簡單名稱和路徑名稱。單獨的名稱(即不包含冒號的字符串)叫作簡單名稱,如Item。

2.類的屬性

類的屬性是類的一個組成部分,描述了類在軟件系統(tǒng)中所代表的一個事物的特性。在繪制類圖時,類的屬性放在類名字的下方,用來描述該類的對象所具有的特征。類的名稱與屬性如圖10-8所示。圖10-8類的名稱與屬性描述類的特征的屬性可能很多,也可以沒有。在系統(tǒng)建模時,我們只抽取那些系統(tǒng)中需要使用的特征作為類的屬性。正如變量有類型一樣,屬性也有類型,屬性的類型反映屬性的種類。例如:屬性的類型可以是整型、實型、布爾型、枚舉型等基本類型。在UML中,類屬性的語法為:[可見性]屬性名[:類型][=初始值][{特性}]。

1)可見性

可見性用于描述類的屬性、類的方法對于其它的類或包是否可以訪問的特性。類的屬性有不同的可見性,常用的有公有(public)、私有(private)和保護(protected)三種類型,如圖10-9所示。圖10-9屬性的可見性

2)屬性名

類的屬性名用于描述類的特性,一個類可能有多個屬性。如果用英文表達,第1個英文單詞首字母小寫,其他單詞首字母大寫,例如:

name;

contactName;

creditLimit;

isPrepaid。

3)類型

屬性的類型用來說明該屬性是什么數(shù)據(jù)類型。屬性的數(shù)據(jù)類型有:

字符串:String;

日期:Date;

布爾:Boolean;

整型:int。

4)初始值

初始值是指屬性最初獲得的賦值。設定初始值有兩個作用:一是保護系統(tǒng)的完整性,防止屬性未賦值破壞系統(tǒng)的完整性;二是為用戶提供易用性,一旦指定了屬性的初始值,當創(chuàng)建該類的對象時,該對象的屬性值便自動被賦為設定的初始值,簡化了用戶操作。

例如:#visibility:Boolean=false,表示屬性“visibility”初始值取“false”。

5)屬性字符串

屬性字符串用來指定關于屬性的其他信息,通常情況下列出該屬性所有可能的取值。

3.類的操作

類的操作用于描述類所表示事物的動態(tài)性質。類的操作格式為

[可見性]操作名[(參數(shù)列表):返回類型]

其中,可見性:該操作對外部實體的顯現(xiàn)程度??梢娦苑譃椋?/p>

可見public:+;

受限protected::#;

私有private:-。

操作名:第1個英文單詞首字母小寫,其它單詞首字母大寫。例如:

close();

creditRecording()。參數(shù)列表:該操作的輸入?yún)?shù),可以為空。例如:

#create();

+hide()。

返回類型:某個操作的返回類型有多種,例如:+getName():String。

操作三類之間的關系

軟件系統(tǒng)中的類不是孤立存在的,類與類之間存在著一定的聯(lián)系。UML中的類圖由類和它們之間的關系組成。類與類之間的關系通常包括關聯(lián)關系、泛化關系、依賴關系、實現(xiàn)關系等。

1.關聯(lián)關系

1)關聯(lián)(association)

關聯(lián)是模型元素之間的一種語義聯(lián)系,它是對具有共同的結構特性、行為特性、關系和語義的鏈接的描述。關聯(lián)分為普通關聯(lián)(見圖10-10)、遞歸關聯(lián)、限定關聯(lián)、有序關聯(lián)、三元關聯(lián)、單向關聯(lián)和雙向關聯(lián)(見圖10-11)等。這里只介紹普通關聯(lián)。其他關聯(lián)類型請讀者參閱相關資料進行了解。圖10-10普通關聯(lián)圖10-11單向與雙向關聯(lián)

2)關聯(lián)名

可以在關聯(lián)的一個方向上為關聯(lián)起一個名字,而在另一個方向上起另一個名字,名字通常緊挨著直線書寫。如果關聯(lián)關系已經(jīng)清楚,就無需關聯(lián)名。當要明確地給關聯(lián)提供角色名或當一個模型存在許多關聯(lián)且要對這些關聯(lián)進行查閱和區(qū)別時,才要給出關聯(lián)名稱。如圖10-10所示,“擁有”就是“reader”類和“Card”類之間的關聯(lián)名稱,代表某位讀者擁有一張借書證。

3)關聯(lián)的角色

角色是關聯(lián)關系中一個類對另一個類所表現(xiàn)出來的職責。角色的名稱是名詞或名詞短語,用來解釋對象是如何參與關聯(lián)的。任何關聯(lián)關系中的角色通常用字符串命名。在類圖中,把角色的名字放置在與此角色有關的關聯(lián)關系的末端,并緊挨著使用該角色的類,如圖10-12所示。如果關聯(lián)名與角色名相同,則不標出角色名。圖10-12關聯(lián)的角色

4)關聯(lián)的特性

(1)關聯(lián)的多重性。多重性就是一種約束。關聯(lián)的多重性用來在類圖中圖示關聯(lián)中的數(shù)量關系。例如:一個個體可以擁有零臺手機或多臺手機。在UML中,多重性被表示為用“..”分隔開的區(qū)間,其格式為“minimum..maximum”,都是整數(shù)。常見的多重性表示方法如表10-1所示。表10-1常見的多重性表示方法

(2)關聯(lián)的約束。有時,兩個類之間的一個關聯(lián)有一個規(guī)則??梢酝ㄟ^關聯(lián)線附近加注一個約束來說明這個規(guī)則。例如,一個BankTeller(銀行出納員)為一個Customer(顧客)服務(Serves),但是服務的順序要按照顧客排隊的次序進行。在模型中可以通過在Customer類附近加上一個花括號括起來的“ordered(有序)”來說明這個規(guī)則(也就是指明約束),如圖10-13所示。圖10-13關聯(lián)約束另一種類型的約束是“or(或)”關系,通過在兩條關聯(lián)線之間連一條虛線,虛線之上標注“{or}”來表示這種約束。

2.泛化關系

泛化關系表示一個泛化的元素和一個具體的元素之間的關系。泛化又稱繼承。UML中的泛化是通用元素和具體元素之間的一種分類關系。具體元素完全擁有通用元素的信息,并且還可附加一些其它信息。泛化可用于類、用例等各種模型元素。父類與子類的泛化關系圖示為一個帶空心三角形的直線,空心三角形緊挨著父類,如圖10-14所示。圖10-14類之間的泛化關系類的繼承關系可以是多層的。也就是說,一個子類本身還可以作另一個類的父類,層層繼承下去。在泛化關系中如果附加一個約束條件(多重、不相交、完全和不完全),則會對繼承進行限制。根據(jù)這些約束條件的不同,繼承的類型可以分為多重繼承、不相交繼承、完全繼承和不完全繼承。

3.依賴關系

依賴關系描述的是兩個或多個模型元素之間的語義上的連接關系。其中一個模型元素是獨立的,另一個模型元素是非獨立的(依賴的),它依賴于獨立的模型元素。如果獨立的模型元素發(fā)生改變,將會影響依賴該模型元素的模型元素。簡單地說,兩個元素X、Y,如果X的變化必然導致Y的變化,則稱Y依賴X。依賴關系不僅限于類,用例、包、構件之間都可以存在依賴關系。在UML中,具有依賴關系的兩個模型元素用帶箭頭的虛線連接,箭頭指向獨立的類,如圖10-15所示。圖10-15類之間的依賴關系

4.實現(xiàn)關系

實現(xiàn)關系指定兩個實體之間的一個合同。實現(xiàn)是規(guī)格說明和其實現(xiàn)之間的關系,它將一種模型元素與另一種元素連接起來。實現(xiàn)關系通常在兩種情況下被使用:在接口與實現(xiàn)該接口的類之間,在用例以及實現(xiàn)該用例的協(xié)作之間。在UML中,實現(xiàn)關系的符號與泛化關系的符號類似,用一條帶指向接口的空心三角箭頭的虛線表示,如圖10-16所示。圖10-16類之間的實現(xiàn)關系

5.類的聚合與組合關系

聚合關系(Aggression)是關聯(lián)的特例,表示是什么的一部分(isthepartof)或者擁有一個(ownsa)的關系,是一個裝配件類與某個部件類相關聯(lián)的一種關系,帶有多種部件的裝配件應包含多個聚合。在UML中聚合的圖示方式為:在表示關聯(lián)關系的直線末端加一個空心的小菱形,空心菱形緊挨著具有整體性質的類。組合關系(Composition):是一種比聚合形式更強的組合。組合意味著整體與組成部件之間是互不可分的關系,作為整體的類會因為擁有某個部分的類而存在,否則也會消失。比如Windows系統(tǒng)中窗口包括標題(title)、工具欄(toolbar)、內容區(qū)(content)等。其中標題和內容區(qū)對窗口來說是必需的,它們與窗體之間的關系被建模為組合,而工具欄不是必需的,它與窗口之間的關系建模為聚合。組合關系圖示為一個帶實心菱形的直線,實心菱形緊挨著表示整體方的類,如圖10-17所示。圖10-17類的組合與聚合關系

任務三使用RationalRose繪制類圖

操作一創(chuàng)建類

在RationalRose中可以通過幾種途徑來創(chuàng)建類。最簡單的方法是利用模型的Logic視圖中的類圖標和繪圖工具,在圖中創(chuàng)建一個類?;蛘撸跒g覽器中選擇一個包并使用快捷菜單的“New”→“Class”,如圖10-18所示。一旦創(chuàng)建了一個類,就可以通過雙擊打開它的對話框并在“Documentation”字段中添加文本來對這個類進行說明。圖10-18創(chuàng)建類

操作二創(chuàng)建方法

(1)選擇瀏覽器中或類圖上的類。

(2)使用快捷菜單的“New”→“Operation”,如圖10-19所示。

(3)輸入方法的名字,可在“Documentation”字段中為該方法輸入描述其目的的簡要說明。圖10-19創(chuàng)建方法和屬性

操作三創(chuàng)建屬性

(1)選擇瀏覽器中或類圖上的類。

(2)使用快捷菜單的“New”→“Attribute”。

(3)輸入屬性的名字,可在“Documentation”字段中為該屬性輸入描述其目的的簡要說明。

操作四創(chuàng)建類圖

右擊瀏覽器內的Logical視圖,選擇“new”→“classdiagram”。把瀏覽器內的類拉到類圖中即可,如圖10-20所示。圖10-20創(chuàng)建類圖

操作五創(chuàng)建類之間的關系

類之間的關系在工具欄中顯示。

對于關聯(lián)關系來說,雙擊關聯(lián)關系,就可以在彈出的對話框中對關聯(lián)的名稱和角色進行編輯(見圖10-21)。圖10-21創(chuàng)建類之間關聯(lián)的名稱和角色編輯關聯(lián)關系的多重性的操作為:右鍵單擊所要編輯的關聯(lián)的一端,從彈出的菜單中選擇“Multiplicity”,然后選擇所要的基數(shù)(見圖10-22)。圖10-22關聯(lián)的多重性編輯

任務四認?識?對?象?圖

操作一對象圖概述

1.對象圖的概

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論