第6章 面向?qū)ο蠓治龇椒╛第1頁
第6章 面向?qū)ο蠓治龇椒╛第2頁
第6章 面向?qū)ο蠓治龇椒╛第3頁
第6章 面向?qū)ο蠓治龇椒╛第4頁
第6章 面向?qū)ο蠓治龇椒╛第5頁
已閱讀5頁,還剩92頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1 軟件工程軟件工程 Software Engineering第第6章章 面向?qū)ο蠓治龇椒嫦驅(qū)ο蠓治龇椒╫面向?qū)ο蠓治龈攀雒嫦驅(qū)ο蠓治龈攀鰋建立用例模型建立用例模型o建立對(duì)象模型建立對(duì)象模型o建立動(dòng)態(tài)模型建立動(dòng)態(tài)模型2面向?qū)ο蠓治龈攀雒嫦驅(qū)ο蠓治龈攀鰋面向?qū)ο蠓治龅拿嫦驅(qū)ο蠓治龅? 3個(gè)模型個(gè)模型用例模型用例模型:用例和場景表示的功能模型;:用例和場景表示的功能模型;對(duì)象模型對(duì)象模型:用類和對(duì)象表示的靜態(tài)模型;:用類和對(duì)象表示的靜態(tài)模型;交互模型交互模型:由狀態(tài)圖和順序圖表示的動(dòng)態(tài)模型。:由狀態(tài)圖和順序圖表示的動(dòng)態(tài)模型。 3面向?qū)ο蠓治龈攀雒嫦驅(qū)ο蠓治龈攀鰋對(duì)象模型的對(duì)象模型的5 5個(gè)層次個(gè)

2、層次Coad & YourdonCoad & Yourdon提出,復(fù)雜問題提出,復(fù)雜問題( (大型系統(tǒng)大型系統(tǒng)) )的對(duì)象模型應(yīng)的對(duì)象模型應(yīng)該由下述該由下述5 5個(gè)層次組成:個(gè)層次組成:主題層主題層( (也稱為范疇層也稱為范疇層) )、類類- -對(duì)象對(duì)象層層、結(jié)構(gòu)層結(jié)構(gòu)層、屬性層屬性層和和服務(wù)層服務(wù)層,如圖所示。,如圖所示。 4建立用例模型建立用例模型o建立用例模型的過程建立用例模型的過程 (1) 確定業(yè)務(wù)參與者確定業(yè)務(wù)參與者標(biāo)識(shí)目標(biāo)系統(tǒng)將支持的不同標(biāo)識(shí)目標(biāo)系統(tǒng)將支持的不同類型的用戶,可以是人、事件或其他系統(tǒng)。類型的用戶,可以是人、事件或其他系統(tǒng)。(2) 確定業(yè)務(wù)需求用例確定業(yè)

3、務(wù)需求用例參與者需要系統(tǒng)提供的完參與者需要系統(tǒng)提供的完整功能。整功能。(3) 創(chuàng)建用例圖創(chuàng)建用例圖標(biāo)識(shí)參與者與用例之間、用例與標(biāo)識(shí)參與者與用例之間、用例與用例之間的關(guān)系。用例之間的關(guān)系。5例例: :選課系統(tǒng)。選課系統(tǒng)。給教師分配課程和學(xué)生注冊課程。給教師分配課程和學(xué)生注冊課程。n 在每個(gè)學(xué)期選課開始之前,在每個(gè)學(xué)期選課開始之前,系統(tǒng)管理員系統(tǒng)管理員需要對(duì)系統(tǒng)中的教需要對(duì)系統(tǒng)中的教師信息、課程信息和學(xué)生信息進(jìn)行維護(hù)。學(xué)期結(jié)束后,將本師信息、課程信息和學(xué)生信息進(jìn)行維護(hù)。學(xué)期結(jié)束后,將本學(xué)期成績歸檔到學(xué)期成績歸檔到學(xué)籍檔案系統(tǒng)學(xué)籍檔案系統(tǒng)。 n 學(xué)生學(xué)生登錄系統(tǒng)后會(huì)得到一份本學(xué)期將要開設(shè)的課程目錄。

4、登錄系統(tǒng)后會(huì)得到一份本學(xué)期將要開設(shè)的課程目錄。每門課程包含的信息有開課系別、教師、上課時(shí)間、教室、每門課程包含的信息有開課系別、教師、上課時(shí)間、教室、容納的學(xué)生數(shù)量和學(xué)生選擇課程的先決條件。容納的學(xué)生數(shù)量和學(xué)生選擇課程的先決條件。n當(dāng)學(xué)生選擇了一門課程后,系統(tǒng)需訪問學(xué)籍檔案系統(tǒng),查詢當(dāng)學(xué)生選擇了一門課程后,系統(tǒng)需訪問學(xué)籍檔案系統(tǒng),查詢是否符合選課的先決條件是否符合選課的先決條件 。如果不符合,系統(tǒng)給出提示信息。如果不符合,系統(tǒng)給出提示信息。n每個(gè)學(xué)期有一段時(shí)間讓學(xué)生可以改變計(jì)劃,學(xué)生可以在這段每個(gè)學(xué)期有一段時(shí)間讓學(xué)生可以改變計(jì)劃,學(xué)生可以在這段時(shí)間內(nèi)訪問聯(lián)機(jī)系統(tǒng)以增選課程或退選課程。時(shí)間內(nèi)訪問

5、聯(lián)機(jī)系統(tǒng)以增選課程或退選課程。 6例例: :選課系統(tǒng)。選課系統(tǒng)。給教師分配課程和學(xué)生注冊課程。給教師分配課程和學(xué)生注冊課程。n教師教師可以訪問在線系統(tǒng),查看將要教授哪些課程和每門課程可以訪問在線系統(tǒng),查看將要教授哪些課程和每門課程有哪些學(xué)生報(bào)名,課程考試結(jié)束后可以提交成績,系統(tǒng)可以有哪些學(xué)生報(bào)名,課程考試結(jié)束后可以提交成績,系統(tǒng)可以生成帶有成績分布統(tǒng)計(jì)結(jié)果的成績單。生成帶有成績分布統(tǒng)計(jì)結(jié)果的成績單。71. 確定業(yè)務(wù)參與者確定業(yè)務(wù)參與者o通過關(guān)注系統(tǒng)的業(yè)務(wù)參與者,我們可以將重點(diǎn)放在通過關(guān)注系統(tǒng)的業(yè)務(wù)參與者,我們可以將重點(diǎn)放在如何使用系統(tǒng),而不是如何構(gòu)造系統(tǒng)上,并且有助如何使用系統(tǒng),而不是如何構(gòu)造

6、系統(tǒng)上,并且有助于進(jìn)一步明確系統(tǒng)的于進(jìn)一步明確系統(tǒng)的范圍范圍和和邊界邊界。o當(dāng)系統(tǒng)比較龐大和復(fù)雜時(shí),要搞清楚系統(tǒng)的需求往當(dāng)系統(tǒng)比較龐大和復(fù)雜時(shí),要搞清楚系統(tǒng)的需求往往比較困難,通過明確參與者,可以針對(duì)參與者確往比較困難,通過明確參與者,可以針對(duì)參與者確定系統(tǒng)需求,有助于保證系統(tǒng)需求的完整性。定系統(tǒng)需求,有助于保證系統(tǒng)需求的完整性。 81. 確定業(yè)務(wù)參與者確定業(yè)務(wù)參與者o可通過以下資料來確定系統(tǒng)的參與者可通過以下資料來確定系統(tǒng)的參與者:標(biāo)識(shí)系統(tǒng)范圍和邊界的環(huán)境圖;標(biāo)識(shí)系統(tǒng)范圍和邊界的環(huán)境圖;現(xiàn)有系統(tǒng)(如果有的話)的文檔和用戶手冊;現(xiàn)有系統(tǒng)(如果有的話)的文檔和用戶手冊;項(xiàng)目會(huì)議和研討會(huì)的記錄;項(xiàng)

7、目會(huì)議和研討會(huì)的記錄;現(xiàn)有的需求文檔、工作手冊等?,F(xiàn)有的需求文檔、工作手冊等。91. 確定業(yè)務(wù)參與者確定業(yè)務(wù)參與者o還可以通過提出以下問題,明確系統(tǒng)的參與者:還可以通過提出以下問題,明確系統(tǒng)的參與者:誰或者什么為系統(tǒng)提供輸入?誰或者什么為系統(tǒng)提供輸入?誰或者什么接收系統(tǒng)的輸出?誰或者什么接收系統(tǒng)的輸出?需要與其他系統(tǒng)連接的接口嗎?需要與其他系統(tǒng)連接的接口嗎?是否存在在預(yù)定的時(shí)間自動(dòng)觸發(fā)的事件?是否存在在預(yù)定的時(shí)間自動(dòng)觸發(fā)的事件?誰將維護(hù)系統(tǒng)中的信息?誰將維護(hù)系統(tǒng)中的信息?101. 確定業(yè)務(wù)參與者確定業(yè)務(wù)參與者o從選課系統(tǒng)的需求描述中,可以確定從選課系統(tǒng)的需求描述中,可以確定4 4類參與者:類參

8、與者:學(xué)生學(xué)生(StudentStudent)教師教師(TeacherTeacher)系統(tǒng)管理員系統(tǒng)管理員(AdministratorAdministrator)學(xué)籍檔案系統(tǒng)學(xué)籍檔案系統(tǒng)(Archive SystemArchive System)112. 確定業(yè)務(wù)需求用例確定業(yè)務(wù)需求用例o以下問題可以幫助我們更好地標(biāo)識(shí)系統(tǒng)的用例:以下問題可以幫助我們更好地標(biāo)識(shí)系統(tǒng)的用例:每個(gè)參與者的特定任務(wù)是什么?每個(gè)參與者的特定任務(wù)是什么? 是否每個(gè)參與者都要從系統(tǒng)中創(chuàng)建、存儲(chǔ)、改變、是否每個(gè)參與者都要從系統(tǒng)中創(chuàng)建、存儲(chǔ)、改變、移動(dòng)或讀取信息?移動(dòng)或讀取信息? 是否任何參與者需要通知系統(tǒng)有關(guān)突發(fā)性的、外部是

9、否任何參與者需要通知系統(tǒng)有關(guān)突發(fā)性的、外部的改變?的改變? 哪些用例支持或維護(hù)系統(tǒng)?哪些用例支持或維護(hù)系統(tǒng)? 目前的用例是否覆蓋了所有功能需求?目前的用例是否覆蓋了所有功能需求?122. 確定業(yè)務(wù)需求用例確定業(yè)務(wù)需求用例o環(huán)境圖環(huán)境圖是分析參與者和發(fā)現(xiàn)潛在用例的極好來源,是分析參與者和發(fā)現(xiàn)潛在用例的極好來源,它不僅可以用在結(jié)構(gòu)化分析方法中,也可以用于面它不僅可以用在結(jié)構(gòu)化分析方法中,也可以用于面向?qū)ο蟮姆治龇椒ㄖ?。向?qū)ο蟮姆治龇椒ㄖ?。o通過環(huán)境圖,可以確定系統(tǒng)的主要輸入輸出,通過通過環(huán)境圖,可以確定系統(tǒng)的主要輸入輸出,通過提交和接收輸入輸出的各方確定潛在的用例。提交和接收輸入輸出的各方確定潛在

10、的用例。13o選課系統(tǒng)的環(huán)境圖選課系統(tǒng)的環(huán)境圖14o選課系統(tǒng)的業(yè)務(wù)列表選課系統(tǒng)的業(yè)務(wù)列表15o對(duì)用例的完整描述包括對(duì)用例的完整描述包括用例名稱用例名稱、執(zhí)行者執(zhí)行者、前置條前置條件件、后置條件后置條件、一個(gè)主事件流一個(gè)主事件流、零到多個(gè)、零到多個(gè)備選事件備選事件流流。o主事件流主事件流表示正常情況下執(zhí)行者與系統(tǒng)之間的信息表示正常情況下執(zhí)行者與系統(tǒng)之間的信息交互及動(dòng)作序列。交互及動(dòng)作序列。o備選事件流備選事件流則表示特殊情況或異常情況下的信息交則表示特殊情況或異常情況下的信息交互及動(dòng)作序列?;ゼ皠?dòng)作序列。o應(yīng)給出每個(gè)用例的規(guī)格說明。應(yīng)給出每個(gè)用例的規(guī)格說明。 用例的規(guī)格說明用例的規(guī)格說明16用例

11、用例“選擇課程選擇課程”的規(guī)格說明的規(guī)格說明17 用例用例“選擇課程選擇課程”的規(guī)格說明的規(guī)格說明 183. 創(chuàng)建用例圖創(chuàng)建用例圖o用例圖用例圖是若干個(gè)參與者和用例,以及它們間的關(guān)系是若干個(gè)參與者和用例,以及它們間的關(guān)系構(gòu)成的圖形表示。構(gòu)成的圖形表示。o每個(gè)系統(tǒng)通常都有一個(gè)每個(gè)系統(tǒng)通常都有一個(gè)總體視圖總體視圖(Global View of Global View of Actors and Use CasesActors and Use Cases),如果總體視圖過于復(fù)雜,),如果總體視圖過于復(fù)雜,則可以創(chuàng)建多個(gè)則可以創(chuàng)建多個(gè)用例圖用例圖,每個(gè)用例圖關(guān)注系統(tǒng)的某,每個(gè)用例圖關(guān)注系統(tǒng)的某一方面。

12、一方面。o通常是圍繞參與者創(chuàng)建用例圖。通常是圍繞參與者創(chuàng)建用例圖。 19使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型1. 在在Rose中創(chuàng)建參與者(中創(chuàng)建參與者(actors) 創(chuàng)建的角色應(yīng)放在創(chuàng)建的角色應(yīng)放在Use-Case ModelUse-Case Model包中的包中的ActorsActors包包中比較好,如果模型結(jié)構(gòu)中沒有這樣的包,可以中比較好,如果模型結(jié)構(gòu)中沒有這樣的包,可以先創(chuàng)建先創(chuàng)建ActorsActors包,之后按下面的步驟創(chuàng)建角色:包,之后按下面的步驟創(chuàng)建角色: (1) (1) 在瀏覽器窗口中的在瀏覽器窗口中的ActorsActors包上單擊鼠標(biāo)右鍵,包上單擊鼠標(biāo)右鍵,顯示彈出

13、菜單;顯示彈出菜單; (2) (2) 選擇選擇New:ActorNew:Actor菜單選項(xiàng),系統(tǒng)創(chuàng)建名為菜單選項(xiàng),系統(tǒng)創(chuàng)建名為New New ClassClass的參與者;的參與者; (3) (3) 選中新創(chuàng)建的參與者,更名為設(shè)計(jì)的名字。選中新創(chuàng)建的參與者,更名為設(shè)計(jì)的名字。20使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型1. 在在Rose中創(chuàng)建參與者(中創(chuàng)建參與者(actors)21使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型2. 給參與者添加文檔給參與者添加文檔o在在RoseRose中我們對(duì)模型元素都可以(在多數(shù)情況下中我們對(duì)模型元素都可以(在多數(shù)情況下是必須的)添加文檔以描述更多的信息。是必須的

14、)添加文檔以描述更多的信息。o應(yīng)該給模型中的每個(gè)應(yīng)該給模型中的每個(gè)actoractor添加摘要描述,摘要添加摘要描述,摘要描述表示描述表示actoractor和系統(tǒng)交互的規(guī)則。和系統(tǒng)交互的規(guī)則。 o課程注冊系統(tǒng)中課程注冊系統(tǒng)中actoractor的摘要描述如下:的摘要描述如下: StudentStudent在學(xué)校注冊上課的人;在學(xué)校注冊上課的人; TeacherTeacher學(xué)校授權(quán)上課的人;學(xué)校授權(quán)上課的人; AdministratorAdministrator系統(tǒng)認(rèn)同的維護(hù)人員;系統(tǒng)認(rèn)同的維護(hù)人員; Archive SystemArchive System管理學(xué)生學(xué)籍檔案的外部系統(tǒng)。管理學(xué)

15、生學(xué)籍檔案的外部系統(tǒng)。22使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型3. 在在Rose中創(chuàng)建用例(中創(chuàng)建用例(Use Case)o應(yīng)該將用例放在應(yīng)該將用例放在Use casesUse cases包中,如果您的模型結(jié)包中,如果您的模型結(jié)構(gòu)中沒有這樣的包,則應(yīng)該先創(chuàng)建包。構(gòu)中沒有這樣的包,則應(yīng)該先創(chuàng)建包。o也可以將每個(gè)用例放在單獨(dú)的包中,因此可以先創(chuàng)也可以將每個(gè)用例放在單獨(dú)的包中,因此可以先創(chuàng)建相應(yīng)的包,再創(chuàng)建用例。建相應(yīng)的包,再創(chuàng)建用例。o另外,在多個(gè)用例中使用的公共用例,如驗(yàn)證用戶另外,在多個(gè)用例中使用的公共用例,如驗(yàn)證用戶(Validate UserValidate User),可以放在一個(gè)單

16、獨(dú)的包中,),可以放在一個(gè)單獨(dú)的包中,如可以在如可以在Use casesUse cases包中創(chuàng)建包中創(chuàng)建Included Use CasesIncluded Use Cases包來存放公共用例。包來存放公共用例。23使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型3. 在在Rose中創(chuàng)建用例(中創(chuàng)建用例(Use Case) 在在RoseRose中創(chuàng)建用例的過程如下:中創(chuàng)建用例的過程如下: (1) (1) 在瀏覽器的相應(yīng)包上單擊鼠標(biāo)右鍵,彈出菜單在瀏覽器的相應(yīng)包上單擊鼠標(biāo)右鍵,彈出菜單顯示;顯示; (2) (2) 選擇選擇New: Use CaseNew: Use Case選項(xiàng),則在瀏覽器中生成選項(xiàng),

17、則在瀏覽器中生成名為名為NewUseCaseNewUseCase的新用例;的新用例; (3) (3) 選中創(chuàng)建的新用例,鍵入設(shè)計(jì)的名字。選中創(chuàng)建的新用例,鍵入設(shè)計(jì)的名字。 重復(fù)上面的步驟,直到將所有需要的用例都創(chuàng)建完重復(fù)上面的步驟,直到將所有需要的用例都創(chuàng)建完成。成。 24使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型3. 在在Rose中創(chuàng)建用例(中創(chuàng)建用例(Use Case) 25使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型4. 為用例增加文檔描述為用例增加文檔描述 將每個(gè)用例的規(guī)格說明增加到將每個(gè)用例的規(guī)格說明增加到RoseRose系統(tǒng)中。系統(tǒng)中。 例如,可以將選擇課程的規(guī)格說明存放在一個(gè)單獨(dú)例如,

18、可以將選擇課程的規(guī)格說明存放在一個(gè)單獨(dú)的的WordWord文檔文檔“選擇課程的規(guī)格說明選擇課程的規(guī)格說明.doc.doc”中,并將中,并將此文件作為附加文檔添加到此文件作為附加文檔添加到RoseRose中的中的“Register Register for a coursefor a course”用例下。用例下。 26使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型4. 為用例增加文檔描述為用例增加文檔描述 將用例的規(guī)格說明文檔關(guān)聯(lián)到將用例的規(guī)格說明文檔關(guān)聯(lián)到用例的方法如下:用例的方法如下: (1) (1) 在瀏覽器中的用例(如在瀏覽器中的用例(如“Register for a courseRegis

19、ter for a course”)上單)上單擊鼠標(biāo)右鍵彈出菜單;擊鼠標(biāo)右鍵彈出菜單; (2) (2) 選擇選擇SpecificationSpecification菜單;菜單; (3) (3) 選擇選擇FilesFiles標(biāo)簽頁;標(biāo)簽頁;(4) (4) 單擊右鍵彈出快捷菜單;單擊右鍵彈出快捷菜單; (5) (5) 選擇選擇Insert FileInsert File菜單,如圖所示;菜單,如圖所示; 27使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型4. 為用例增加文檔描述為用例增加文檔描述 (6) (6) 瀏覽目錄列表選擇要關(guān)聯(lián)的瀏覽目錄列表選擇要關(guān)聯(lián)的文件;文件; (7) (7) 單擊單擊打開打開

20、按鈕,系統(tǒng)將選擇按鈕,系統(tǒng)將選擇的文件加到說明窗口中,如的文件加到說明窗口中,如圖所示;圖所示; (8) (8) 單擊單擊OKOK按鈕關(guān)閉按鈕關(guān)閉SpecificationSpecification窗口。窗口。28使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型5. 創(chuàng)建用例圖創(chuàng)建用例圖 在在RoseRose中創(chuàng)建用例圖的過程如下:中創(chuàng)建用例圖的過程如下:(1) (1) 加入?yún)⑴c者及用例加入?yún)⑴c者及用例 在瀏覽器中的用例視圖(在瀏覽器中的用例視圖(Use Case ViewUse Case View)中雙擊)中雙擊MainMain; 單擊一個(gè)單擊一個(gè)actoractor選中,并將其拖動(dòng)到圖中;選中,并

21、將其拖動(dòng)到圖中; 重復(fù)步驟重復(fù)步驟 ,把每個(gè)需要的,把每個(gè)需要的actoractor加入到圖中;加入到圖中; 在瀏覽器中選擇一個(gè)用例并把它拖到圖中;在瀏覽器中選擇一個(gè)用例并把它拖到圖中; 重復(fù)步驟重復(fù)步驟 把所有用例都拖到圖中。把所有用例都拖到圖中。29使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型(2) (2) 創(chuàng)建參與者與用例之間的關(guān)聯(lián)關(guān)系創(chuàng)建參與者與用例之間的關(guān)聯(lián)關(guān)系 在圖形工具欄上單擊在圖形工具欄上單擊AssociationAssociation(雙向關(guān)聯(lián))或(雙向關(guān)聯(lián))或Unidirectional AssociationUnidirectional Association(單向關(guān)聯(lián))圖標(biāo)

22、,在起始(單向關(guān)聯(lián))圖標(biāo),在起始actoractor上單擊并拖動(dòng)到上單擊并拖動(dòng)到use caseuse case上。上。 可以按下面的步驟給關(guān)聯(lián)關(guān)系增加關(guān)系類型(構(gòu)造型,可以按下面的步驟給關(guān)聯(lián)關(guān)系增加關(guān)系類型(構(gòu)造型,stereotypestereotype):): 雙擊雙擊AssociationAssociation線,彈出線,彈出SpecificationSpecification窗口;或使用右鍵菜單的窗口;或使用右鍵菜單的“Open Open SpecificationSpecification” 項(xiàng)。項(xiàng)。 從從stererotypestererotype后面的下拉框中選擇一種類后面的下

23、拉框中選擇一種類型,如圖所示。如果下拉框中沒有,則可以輸型,如圖所示。如果下拉框中沒有,則可以輸入關(guān)系名稱。入關(guān)系名稱。 單擊單擊OKOK,關(guān)閉,關(guān)閉specificationspecification窗口。窗口。30使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型o添加了參與者與用例之間關(guān)系的用例圖添加了參與者與用例之間關(guān)系的用例圖 31使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型(2) (2) 創(chuàng)建用例之間的關(guān)系創(chuàng)建用例之間的關(guān)系o用例之間主要主要有三種關(guān)系:包含用例之間主要主要有三種關(guān)系:包含(include)(include)、使用、使用(useuse)、擴(kuò)展()、擴(kuò)展(extendextend)

24、。)。 o在在RoseRose中創(chuàng)建包含(中創(chuàng)建包含( include include )關(guān)系的步驟如下:)關(guān)系的步驟如下: 在工具條上選擇在工具條上選擇dependencydependency圖標(biāo);圖標(biāo); 在在包含包含用例上單擊,拖動(dòng)到被用例上單擊,拖動(dòng)到被包包含含的用例上;的用例上; 雙擊雙擊dependencydependency線,彈出線,彈出specificationspecification窗口;窗口; 在在stereotypestereotype下拉列表中選擇下拉列表中選擇“includeinclude”,如圖所示。,如圖所示。 單擊單擊OKOK關(guān)閉關(guān)閉specification

25、specification窗口。窗口。32使用使用Rose創(chuàng)建用例模型創(chuàng)建用例模型o添加了包含關(guān)系的主用例圖如圖所示。添加了包含關(guān)系的主用例圖如圖所示。 33建立對(duì)象模型建立對(duì)象模型o在系統(tǒng)分析階段,對(duì)象建模的主要任務(wù)是建立問題在系統(tǒng)分析階段,對(duì)象建模的主要任務(wù)是建立問題域的概念模型。域的概念模型。o這個(gè)模型描述了現(xiàn)實(shí)世界中的這個(gè)模型描述了現(xiàn)實(shí)世界中的“類與對(duì)象類與對(duì)象”以及它以及它們之間的關(guān)系。們之間的關(guān)系。o在在UMLUML中,通過建立中,通過建立類圖類圖來表示對(duì)象模型。來表示對(duì)象模型。 34劃分主題劃分主題o在開發(fā)大型、復(fù)雜系統(tǒng)的過程中,為了降低復(fù)雜程在開發(fā)大型、復(fù)雜系統(tǒng)的過程中,為了降

26、低復(fù)雜程度,人們習(xí)慣于把系統(tǒng)再進(jìn)一步劃分成幾個(gè)不同的度,人們習(xí)慣于把系統(tǒng)再進(jìn)一步劃分成幾個(gè)不同的主題。主題。o應(yīng)該按問題領(lǐng)域而不是用功能分解方法來確定主題。應(yīng)該按問題領(lǐng)域而不是用功能分解方法來確定主題。此外,應(yīng)該按照使不同主題內(nèi)的對(duì)象相互間依賴和此外,應(yīng)該按照使不同主題內(nèi)的對(duì)象相互間依賴和交互最少的原則來確定主題。交互最少的原則來確定主題。o主題可以采用主題可以采用UMLUML中的中的包包來展現(xiàn)。來展現(xiàn)。35確定類與對(duì)象確定類與對(duì)象1. 找出候選的類與對(duì)象找出候選的類與對(duì)象 類與對(duì)象是對(duì)問題域中有意義的事物的抽象,它們類與對(duì)象是對(duì)問題域中有意義的事物的抽象,它們既可能是可見的物理實(shí)體,也可能是

27、抽象的概念。既可能是可見的物理實(shí)體,也可能是抽象的概念。 可以將客觀事物分為以下五類:可以將客觀事物分為以下五類:可感知的物理實(shí)體可感知的物理實(shí)體,如教學(xué)樓、教室等。,如教學(xué)樓、教室等。人或組織的角色人或組織的角色,如教師、計(jì)算機(jī)系等。,如教師、計(jì)算機(jī)系等。應(yīng)該記憶的事件應(yīng)該記憶的事件,如演出、交通事故等。,如演出、交通事故等。兩個(gè)或多個(gè)對(duì)象的相互作用,通常帶有交易或接觸的性質(zhì)兩個(gè)或多個(gè)對(duì)象的相互作用,通常帶有交易或接觸的性質(zhì),如購買、教學(xué)等。如購買、教學(xué)等。需要說明的概念需要說明的概念,如保險(xiǎn)法、政策等。,如保險(xiǎn)法、政策等。36確定類與對(duì)象確定類與對(duì)象1. 找出候選的類與對(duì)象找出候選的類與對(duì)

28、象o另一種更簡單的非正式分析方法,是以自然語言書寫的需另一種更簡單的非正式分析方法,是以自然語言書寫的需求陳述為依據(jù),把陳述中的名詞作為類與對(duì)象的候選者,求陳述為依據(jù),把陳述中的名詞作為類與對(duì)象的候選者,用形容詞作為確定屬性的線索,把動(dòng)詞作為服務(wù)用形容詞作為確定屬性的線索,把動(dòng)詞作為服務(wù)( (操作操作) )的的候選者。候選者。o例如,在選課系統(tǒng)中,可以初步確定例如,在選課系統(tǒng)中,可以初步確定TeacherTeacher(教師)、(教師)、StudentStudent(學(xué)生)、(學(xué)生)、CourseCourse(課程)、(課程)、CourseTaskCourseTask(課程任(課程任務(wù),指一門

29、課程劃分為多個(gè)任務(wù))、務(wù),指一門課程劃分為多個(gè)任務(wù))、StudentListStudentList(學(xué)生名(學(xué)生名冊)、冊)、ScoreReportScoreReport(成績單)等類與對(duì)象。(成績單)等類與對(duì)象。37確定類與對(duì)象確定類與對(duì)象2. 篩選出正確的類與對(duì)象篩選出正確的類與對(duì)象 嚴(yán)格考察每個(gè)候選對(duì)象,從中去掉不正確的或不嚴(yán)格考察每個(gè)候選對(duì)象,從中去掉不正確的或不必要的類與對(duì)象,僅保留確實(shí)應(yīng)該記錄其信息或必要的類與對(duì)象,僅保留確實(shí)應(yīng)該記錄其信息或需要其提供服務(wù)的那些類與對(duì)象。需要其提供服務(wù)的那些類與對(duì)象。38確定類與對(duì)象確定類與對(duì)象3. 區(qū)分實(shí)體類、邊界類和控制類區(qū)分實(shí)體類、邊界類和控

30、制類o在類分析時(shí)首先從問題域的實(shí)體類入手,如果在建在類分析時(shí)首先從問題域的實(shí)體類入手,如果在建立分析對(duì)象模型時(shí)區(qū)分實(shí)體類、邊界類和控制類,立分析對(duì)象模型時(shí)區(qū)分實(shí)體類、邊界類和控制類,將有助于理解系統(tǒng)。將有助于理解系統(tǒng)。o實(shí)體類實(shí)體類表示系統(tǒng)將跟蹤的持久信息;表示系統(tǒng)將跟蹤的持久信息;邊界類邊界類表示參表示參與者與系統(tǒng)之間的交互;與者與系統(tǒng)之間的交互;控制類控制類負(fù)責(zé)用例的實(shí)現(xiàn)。負(fù)責(zé)用例的實(shí)現(xiàn)。其圖形表示如圖所示。其圖形表示如圖所示。39確定關(guān)聯(lián)確定關(guān)聯(lián)o標(biāo)識(shí)關(guān)聯(lián)的啟發(fā)式準(zhǔn)則如下:標(biāo)識(shí)關(guān)聯(lián)的啟發(fā)式準(zhǔn)則如下:(1) (1) 檢查指示狀態(tài)的動(dòng)詞或動(dòng)詞短語,識(shí)別動(dòng)作的主檢查指示狀態(tài)的動(dòng)詞或動(dòng)詞短語,識(shí)

31、別動(dòng)作的主體和客體,從角色尋找關(guān)聯(lián);體和客體,從角色尋找關(guān)聯(lián);(2) (2) 準(zhǔn)確地命名關(guān)聯(lián)和角色;準(zhǔn)確地命名關(guān)聯(lián)和角色;(3) (3) 盡量使用常用的修飾詞標(biāo)識(shí)出名字空間和關(guān)鍵屬盡量使用常用的修飾詞標(biāo)識(shí)出名字空間和關(guān)鍵屬性;性;(4) (4) 應(yīng)消除導(dǎo)出其他關(guān)聯(lián)的關(guān)聯(lián);應(yīng)消除導(dǎo)出其他關(guān)聯(lián)的關(guān)聯(lián);(5) (5) 在一組關(guān)聯(lián)被穩(wěn)定之前先不必考慮實(shí)例之間的多在一組關(guān)聯(lián)被穩(wěn)定之前先不必考慮實(shí)例之間的多重性;重性;(6) (6) 過多的關(guān)聯(lián)使得一個(gè)模型不可讀。過多的關(guān)聯(lián)使得一個(gè)模型不可讀。40確定屬性確定屬性o應(yīng)該僅考慮與具體應(yīng)用直接相關(guān)的屬性,不要考慮應(yīng)該僅考慮與具體應(yīng)用直接相關(guān)的屬性,不要考慮那些

32、超出所要解決的問題范圍的屬性。那些超出所要解決的問題范圍的屬性。o在分析過程中應(yīng)該首先找出最重要的屬性,以后再在分析過程中應(yīng)該首先找出最重要的屬性,以后再逐漸把其余屬性增添進(jìn)去。逐漸把其余屬性增添進(jìn)去。o在分析階段不要考慮那些純粹用于實(shí)現(xiàn)的屬性。在分析階段不要考慮那些純粹用于實(shí)現(xiàn)的屬性。41確定屬性確定屬性o標(biāo)識(shí)屬性的啟發(fā)性準(zhǔn)則如下標(biāo)識(shí)屬性的啟發(fā)性準(zhǔn)則如下:(1) (1) 每個(gè)對(duì)象至少需包含一個(gè)屬性,例如每個(gè)對(duì)象至少需包含一個(gè)屬性,例如_id_id。(2) (2) 屬性取值必需適合對(duì)象類的所有實(shí)例。例如,屬性屬性取值必需適合對(duì)象類的所有實(shí)例。例如,屬性“會(huì)會(huì)飛飛”并不屬于所有的鳥,有的鳥不會(huì)飛

33、,因此可以建立并不屬于所有的鳥,有的鳥不會(huì)飛,因此可以建立鳥的泛化結(jié)構(gòu),把不同的鳥劃分到鳥的泛化結(jié)構(gòu),把不同的鳥劃分到“會(huì)飛的鳥會(huì)飛的鳥”和和“不不會(huì)飛的鳥會(huì)飛的鳥”兩個(gè)子類中。兩個(gè)子類中。(3) (3) 出現(xiàn)在泛化關(guān)系中的對(duì)象所繼承的屬性必須與泛化關(guān)系出現(xiàn)在泛化關(guān)系中的對(duì)象所繼承的屬性必須與泛化關(guān)系一致。一致。(4) (4) 系統(tǒng)的所有存儲(chǔ)數(shù)據(jù)必須定義為屬性;系統(tǒng)的所有存儲(chǔ)數(shù)據(jù)必須定義為屬性;(5) (5) 對(duì)象的導(dǎo)出屬性應(yīng)當(dāng)略去。例如,對(duì)象的導(dǎo)出屬性應(yīng)當(dāng)略去。例如,“年齡年齡”是由屬性是由屬性“出生日期出生日期”導(dǎo)出,它不能作為基本屬性存在。導(dǎo)出,它不能作為基本屬性存在。(6) (6) 在

34、分析階段,如果某屬性描述了對(duì)象的外部不可見狀態(tài),在分析階段,如果某屬性描述了對(duì)象的外部不可見狀態(tài),應(yīng)將該屬性從分析模型中刪去。應(yīng)將該屬性從分析模型中刪去。42確定屬性確定屬性o選課系統(tǒng)中類與對(duì)象的屬性選課系統(tǒng)中類與對(duì)象的屬性 43確定服務(wù)確定服務(wù)o在標(biāo)識(shí)每個(gè)對(duì)象中必須封裝的服務(wù)時(shí)要注意以下兩在標(biāo)識(shí)每個(gè)對(duì)象中必須封裝的服務(wù)時(shí)要注意以下兩種服務(wù):種服務(wù):(1) (1) 簡單的服務(wù)簡單的服務(wù)。即每一個(gè)對(duì)象都應(yīng)具備的服務(wù),這。即每一個(gè)對(duì)象都應(yīng)具備的服務(wù),這些服務(wù)包括:建立和初始化一個(gè)新對(duì)象,建立或切些服務(wù)包括:建立和初始化一個(gè)新對(duì)象,建立或切斷對(duì)象之間的關(guān)聯(lián),存取對(duì)象的屬性值,釋放或刪斷對(duì)象之間的關(guān)聯(lián)

35、,存取對(duì)象的屬性值,釋放或刪除一個(gè)對(duì)象。這些服務(wù)在分析時(shí)是隱含的,在圖中除一個(gè)對(duì)象。這些服務(wù)在分析時(shí)是隱含的,在圖中不標(biāo)出,但實(shí)現(xiàn)類和對(duì)象時(shí)有定義。不標(biāo)出,但實(shí)現(xiàn)類和對(duì)象時(shí)有定義。(2) (2) 復(fù)雜的服務(wù)復(fù)雜的服務(wù)。它分為兩種:。它分為兩種:計(jì)算服務(wù)計(jì)算服務(wù):利用對(duì)象的屬性值計(jì)算,以實(shí)現(xiàn)某種功能;:利用對(duì)象的屬性值計(jì)算,以實(shí)現(xiàn)某種功能;監(jiān)控服務(wù)監(jiān)控服務(wù):處理對(duì)外部系統(tǒng)的輸入:處理對(duì)外部系統(tǒng)的輸入輸出,外部設(shè)備的控制輸出,外部設(shè)備的控制和數(shù)據(jù)的存取。和數(shù)據(jù)的存取。44確定服務(wù)確定服務(wù)o選課系統(tǒng)中類與對(duì)象的服務(wù)選課系統(tǒng)中類與對(duì)象的服務(wù) 45使用使用Rose建立類圖建立類圖1 創(chuàng)建類創(chuàng)建類創(chuàng)建類的

36、過程如下:創(chuàng)建類的過程如下: 在瀏覽器中選中邏輯視圖(在瀏覽器中選中邏輯視圖(Logical ViewLogical View),單擊鼠標(biāo)),單擊鼠標(biāo)右鍵。右鍵。 選擇選擇New:ClassNew:Class菜單,一個(gè)叫做菜單,一個(gè)叫做New ClassNew Class的類出現(xiàn)在瀏的類出現(xiàn)在瀏覽器中。覽器中。 選擇新類,鍵入類的名字。選擇新類,鍵入類的名字。 類也有構(gòu)造型,每個(gè)類最少有一種構(gòu)造型。一些常用的構(gòu)類也有構(gòu)造型,每個(gè)類最少有一種構(gòu)造型。一些常用的構(gòu)造型是:造型是:實(shí)體類實(shí)體類、邊界類邊界類、控制類控制類、例外類例外類等。等。 顯然,顯然,StudentStudent、Teacher

37、Teacher和和CourseCourse類應(yīng)屬于實(shí)體類。類應(yīng)屬于實(shí)體類。 邊界類可能包括邊界類可能包括RegisterFormRegisterForm(登記表格)、(登記表格)、CourseSchedule(CourseSchedule(課程表課程表) )等。等。46使用使用Rose建立類圖建立類圖在在Rational RoseRational Rose中為類增加構(gòu)造型的步驟如下:中為類增加構(gòu)造型的步驟如下: 在瀏覽器中選擇類,如在瀏覽器中選擇類,如StudentStudent,并單擊鼠標(biāo)右鍵,彈出快,并單擊鼠標(biāo)右鍵,彈出快捷菜單;捷菜單; 選擇選擇SepecificationSepecif

38、ication菜單;菜單; 選擇選擇GeneralGeneral頁,如圖所示;頁,如圖所示; 選擇或鍵入選擇或鍵入stereotypestereotype的名字,的名字,如選擇如選擇“entityentity”表示實(shí)體類;表示實(shí)體類; 單擊單擊OKOK按鈕關(guān)閉按鈕關(guān)閉SpecificationSpecification窗口。窗口。 47使用使用Rose建立類圖建立類圖2給類增加屬性和操作給類增加屬性和操作 在類的說明窗口中點(diǎn)擊在類的說明窗口中點(diǎn)擊“AttributesAttributes”標(biāo)簽頁,之后標(biāo)簽頁,之后在下面的表格體上單擊鼠標(biāo)右在下面的表格體上單擊鼠標(biāo)右鍵,從彈出菜單中選擇鍵,從彈出

39、菜單中選擇“InsertInsert”菜單,如圖所示,菜單,如圖所示,就可以輸入屬性了。就可以輸入屬性了。48使用使用Rose建立類圖建立類圖3. 將類組織到包中將類組織到包中o如果系統(tǒng)僅僅包含少數(shù)的幾個(gè)類,我們便可以很容如果系統(tǒng)僅僅包含少數(shù)的幾個(gè)類,我們便可以很容易地管理。易地管理。o通常的系統(tǒng)都包含很多類,你需要一種機(jī)制來管理通常的系統(tǒng)都包含很多類,你需要一種機(jī)制來管理以便更方便使用、維護(hù)和復(fù)用。這就是以便更方便使用、維護(hù)和復(fù)用。這就是包包有用的原有用的原因。因。49使用使用Rose建立類圖建立類圖o對(duì)于選課系統(tǒng),可以建立如圖所示的對(duì)于選課系統(tǒng),可以建立如圖所示的3 3個(gè)包:個(gè)包:界面界面

40、(InterfacesInterfaces)、)、人人(PeoplePeople)和)和學(xué)校事件學(xué)校事件(UniversityArtifacesUniversityArtifaces)。)。 50使用使用Rose建立類圖建立類圖o當(dāng)創(chuàng)建好包后,就需要當(dāng)創(chuàng)建好包后,就需要重新安排類的位置,方重新安排類的位置,方法如下:法如下: 單擊選擇瀏覽器中的類;單擊選擇瀏覽器中的類; 把類拖動(dòng)到設(shè)計(jì)的包中;把類拖動(dòng)到設(shè)計(jì)的包中; 重復(fù)上述步驟直到所有的重復(fù)上述步驟直到所有的類都重新定位。類都重新定位。 將類組織到包中之后的邏輯將類組織到包中之后的邏輯視圖如圖所示。視圖如圖所示。51使用使用Rose建立類圖建

41、立類圖4. 建立和編輯主視圖建立和編輯主視圖o在邏輯視圖中的主視圖(在邏輯視圖中的主視圖(main)是系統(tǒng)的包圖。每個(gè)包也)是系統(tǒng)的包圖。每個(gè)包也有其自己的主要類圖,通常顯示包的公共類。也可能需要有其自己的主要類圖,通常顯示包的公共類。也可能需要?jiǎng)?chuàng)建其它的類圖。主視圖是邏輯視圖中典型的高級(jí)包視圖。創(chuàng)建其它的類圖。主視圖是邏輯視圖中典型的高級(jí)包視圖。o增加一個(gè)包圖的過程是:增加一個(gè)包圖的過程是: 在瀏覽器中雙擊主視圖;在瀏覽器中雙擊主視圖; 在瀏覽器中選擇包;在瀏覽器中選擇包; 把包拖到視圖中。把包拖到視圖中。52使用使用Rose建立類圖建立類圖4. 建立和編輯主視圖建立和編輯主視圖o對(duì)于每一個(gè)

42、包,都可以創(chuàng)建包的主類圖,步驟如下:對(duì)于每一個(gè)包,都可以創(chuàng)建包的主類圖,步驟如下: 在主視圖中雙擊包;在主視圖中雙擊包; Rose 會(huì)打開包并創(chuàng)建(或顯示)這個(gè)包的視圖;會(huì)打開包并創(chuàng)建(或顯示)這個(gè)包的視圖; 在瀏覽器中選擇類并拖到視圖中;在瀏覽器中選擇類并拖到視圖中; 重復(fù)步驟直到所有類都處理完。重復(fù)步驟直到所有類都處理完。53使用使用Rose建立類圖建立類圖5. 建立和編輯分視圖建立和編輯分視圖 需要時(shí)也可以加入類的分視圖,類的分視圖展現(xiàn)了模型中包需要時(shí)也可以加入類的分視圖,類的分視圖展現(xiàn)了模型中包和類的另一種和類的另一種“視圖視圖”。添加類的分視圖的步驟如下添加類的分視圖的步驟如下: 在

43、瀏覽器中單擊鼠標(biāo)右鍵,彈出快捷菜單;在瀏覽器中單擊鼠標(biāo)右鍵,彈出快捷菜單; 選擇選擇New:Class Diagram菜單;菜單; 系統(tǒng)增加名為系統(tǒng)增加名為“NewDiagram”的類圖,在此項(xiàng)處于選中的類圖,在此項(xiàng)處于選中狀態(tài)時(shí),輸入類圖的名字;狀態(tài)時(shí),輸入類圖的名字; 在瀏覽器中雙擊此類圖,將圖打開;在瀏覽器中雙擊此類圖,將圖打開; 在邏輯視圖中選擇一個(gè)類,并把該類拖到創(chuàng)建的圖中;在邏輯視圖中選擇一個(gè)類,并把該類拖到創(chuàng)建的圖中; 重復(fù)步驟重復(fù)步驟 直到選擇的每個(gè)類都放在該圖中。直到選擇的每個(gè)類都放在該圖中。54使用使用Rose建立類圖建立類圖o在選課系統(tǒng)中增加的分視圖在選課系統(tǒng)中增加的分視

44、圖 55使用使用Rose建立類圖建立類圖6. 為類添加關(guān)系為類添加關(guān)系(1) (1) 關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系在在Rational RoseRational Rose中創(chuàng)建關(guān)聯(lián)關(guān)系的步驟如下:中創(chuàng)建關(guān)聯(lián)關(guān)系的步驟如下: 在工具條上選擇關(guān)聯(lián)圖標(biāo);在工具條上選擇關(guān)聯(lián)圖標(biāo); 在類圖中單擊關(guān)聯(lián)的一個(gè)類;在類圖中單擊關(guān)聯(lián)的一個(gè)類; 拖動(dòng)關(guān)聯(lián)關(guān)系線到另一個(gè)類上。拖動(dòng)關(guān)聯(lián)關(guān)系線到另一個(gè)類上。56使用使用Rose建立類圖建立類圖標(biāo)識(shí)關(guān)聯(lián)的數(shù)量:標(biāo)識(shí)關(guān)聯(lián)的數(shù)量: 雙擊關(guān)系線,彈出雙擊關(guān)系線,彈出SpecificationSpecification窗口;窗口; 選擇選擇DetailDetail頁,修改角色頁,修改角色(R

45、ole A Detail(Role A Detail或或Role B Role B Detail)Detail); 鍵入設(shè)計(jì)的多重性數(shù)值。鍵入設(shè)計(jì)的多重性數(shù)值。57使用使用Rose建立類圖建立類圖標(biāo)識(shí)關(guān)聯(lián)的數(shù)量:標(biāo)識(shí)關(guān)聯(lián)的數(shù)量: 如果規(guī)定一名教師每學(xué)期最多承擔(dān)如果規(guī)定一名教師每學(xué)期最多承擔(dān)4 4個(gè)教學(xué)任務(wù),特殊情況個(gè)教學(xué)任務(wù),特殊情況下可以不承擔(dān)教學(xué)任務(wù);少于下可以不承擔(dān)教學(xué)任務(wù);少于1515人不開課,每名學(xué)生每學(xué)人不開課,每名學(xué)生每學(xué)期選課不超過期選課不超過6 6門。則增加了關(guān)聯(lián)數(shù)量的類圖如圖所示。門。則增加了關(guān)聯(lián)數(shù)量的類圖如圖所示。58使用使用Rose建立類圖建立類圖(2) (2) 聚合關(guān)

46、系聚合關(guān)系o聚合是關(guān)聯(lián)關(guān)系的特殊形式聚合是關(guān)聯(lián)關(guān)系的特殊形式整體和部分的關(guān)系。整體和部分的關(guān)系。聚合是部分或包含的關(guān)系。聚合是部分或包含的關(guān)系。o例如:在一個(gè)學(xué)期中,很多班級(jí)的學(xué)生都需要上同例如:在一個(gè)學(xué)期中,很多班級(jí)的學(xué)生都需要上同一門課程(一門課程(CourseCourse),通常會(huì)將此門課程的教學(xué)劃),通常會(huì)將此門課程的教學(xué)劃分為多個(gè)教學(xué)任務(wù)(分為多個(gè)教學(xué)任務(wù)(CourseTaskCourseTask)。)。CourseCourse和和CourseTaskCourseTask可以認(rèn)為是聚合關(guān)系??梢哉J(rèn)為是聚合關(guān)系。59使用使用Rose建立類圖建立類圖(2) (2) 聚合關(guān)系聚合關(guān)系在在R

47、ational RoseRational Rose中創(chuàng)建聚合關(guān)系的方法如下:中創(chuàng)建聚合關(guān)系的方法如下: 從工具條上選擇聚合關(guān)系(從工具條上選擇聚合關(guān)系(aggregationaggregation)圖標(biāo);)圖標(biāo); 單擊屬于單擊屬于“整體整體”的類,拖動(dòng)鼠標(biāo)到屬于的類,拖動(dòng)鼠標(biāo)到屬于“部分部分”的類。的類。 增加了聚合關(guān)系的類圖如圖所示。增加了聚合關(guān)系的類圖如圖所示。60使用使用Rose建立類圖建立類圖(3) (3) 關(guān)聯(lián)類關(guān)聯(lián)類CourseTaskCourseTask和和StudentStudent之間是多對(duì)多的關(guān)系,一個(gè)很容易想之間是多對(duì)多的關(guān)系,一個(gè)很容易想到的問題是學(xué)生選課的成績存在哪里

48、?到的問題是學(xué)生選課的成績存在哪里?顯然,對(duì)于每個(gè)顯然,對(duì)于每個(gè)CourseTaskCourseTask對(duì)象(一份教學(xué)任務(wù)),選課對(duì)象(一份教學(xué)任務(wù)),選課結(jié)束后都有一份學(xué)生名單,也就是結(jié)束后都有一份學(xué)生名單,也就是StudentListStudentList對(duì)象,是對(duì)象,是StudentListStudentList將將CourseTaskCourseTask對(duì)象及對(duì)象及StudentStudent對(duì)象關(guān)聯(lián)在一起對(duì)象關(guān)聯(lián)在一起的,的,因此,應(yīng)將因此,應(yīng)將StudentListStudentList作為關(guān)聯(lián)類。作為關(guān)聯(lián)類。61使用使用Rose建立類圖建立類圖(3) (3) 關(guān)聯(lián)類關(guān)聯(lián)類在在Ra

49、tional RoseRational Rose的工具條上選擇關(guān)聯(lián)類(的工具條上選擇關(guān)聯(lián)類(Association Association ClassClass)圖標(biāo),在)圖標(biāo),在CourseTaskCourseTask和和StudentStudent的關(guān)聯(lián)線上按下鼠的關(guān)聯(lián)線上按下鼠標(biāo),再拉到標(biāo),再拉到StudentListStudentList上,即完成了關(guān)聯(lián)類的增加。上,即完成了關(guān)聯(lián)類的增加。62使用使用Rose建立類圖建立類圖(4) (4) 泛化關(guān)系泛化關(guān)系 在在Rational RoseRational Rose中創(chuàng)建繼承關(guān)系的方法如下:中創(chuàng)建繼承關(guān)系的方法如下: 從工具條上選擇繼承關(guān)

50、系從工具條上選擇繼承關(guān)系(Generalization)(Generalization)圖標(biāo);圖標(biāo); 單擊屬于單擊屬于“子類子類”的類,拖動(dòng)鼠標(biāo)到屬于的類,拖動(dòng)鼠標(biāo)到屬于“父類父類”的的類。類。 在選課系統(tǒng)中,如果考慮在選課系統(tǒng)中,如果考慮到學(xué)生、教師或系統(tǒng)管理到學(xué)生、教師或系統(tǒng)管理員登錄系統(tǒng)時(shí)需要進(jìn)行權(quán)員登錄系統(tǒng)時(shí)需要進(jìn)行權(quán)限控制,可以增加限控制,可以增加用戶用戶(UserUser)類。)類。63建立動(dòng)態(tài)模型建立動(dòng)態(tài)模型o在開發(fā)交互式系統(tǒng)時(shí),動(dòng)態(tài)模型起著很重要的作用。在開發(fā)交互式系統(tǒng)時(shí),動(dòng)態(tài)模型起著很重要的作用。o在在UMLUML中動(dòng)態(tài)模型的描述工具有中動(dòng)態(tài)模型的描述工具有順序圖順序圖、協(xié)作

51、圖協(xié)作圖、狀態(tài)圖狀態(tài)圖、活動(dòng)圖?;顒?dòng)圖。64順序圖順序圖o用例圖用例圖中的事件流是由文本表示的,事件流描述的中的事件流是由文本表示的,事件流描述的是用例實(shí)現(xiàn)的過程,也稱為是用例實(shí)現(xiàn)的過程,也稱為場景場景(scenariosscenarios),),可以用順序圖表示場景??梢杂庙樞驁D表示場景。o順序圖順序圖按照時(shí)間順序顯示對(duì)象之間的交互關(guān)系。它按照時(shí)間順序顯示對(duì)象之間的交互關(guān)系。它描述場景中的對(duì)象和類以及在完成場景中定義的功描述場景中的對(duì)象和類以及在完成場景中定義的功能時(shí)對(duì)象間要交換的信息。能時(shí)對(duì)象間要交換的信息。65順序圖順序圖 在在Rational RoseRational Rose中創(chuàng)建順

52、序圖的過程如下:中創(chuàng)建順序圖的過程如下: 在瀏覽器中選擇某個(gè)用例,單擊鼠標(biāo)右鍵,彈出快捷菜在瀏覽器中選擇某個(gè)用例,單擊鼠標(biāo)右鍵,彈出快捷菜單;單; 選擇選擇New:Sequence DiagramNew:Sequence Diagram菜單。視圖中增加了一個(gè)名菜單。視圖中增加了一個(gè)名字為字為“NewDiagramNewDiagram”的順序圖;的順序圖; 選擇選擇NewDiagramNewDiagram,鍵入名字。,鍵入名字。 如在選課系統(tǒng)中,可以給如在選課系統(tǒng)中,可以給Register for a courseRegister for a course用例增加用例增加順序圖,如圖所示。順序圖

53、,如圖所示。66順序圖順序圖創(chuàng)建順序圖的對(duì)象和消息:創(chuàng)建順序圖的對(duì)象和消息: 在瀏覽器中雙擊順序圖將其打開;在瀏覽器中雙擊順序圖將其打開; 在瀏覽器中選擇在瀏覽器中選擇actoractor,將,將actoractor拖到順序圖中;拖到順序圖中; 在瀏覽窗口中查找需要的類,并依次將其拖到順序圖上,在順序圖上顯在瀏覽窗口中查找需要的類,并依次將其拖到順序圖上,在順序圖上顯示的是類對(duì)象。示的是類對(duì)象。 67順序圖順序圖創(chuàng)建順序圖的對(duì)象和消息:創(chuàng)建順序圖的對(duì)象和消息: 在工具條上選擇消息圖標(biāo);在工具條上選擇消息圖標(biāo); 在發(fā)出消息的對(duì)象上單擊鼠標(biāo),把消息線拖到接收消息的對(duì)象上;在發(fā)出消息的對(duì)象上單擊鼠標(biāo)

54、,把消息線拖到接收消息的對(duì)象上; 用鼠標(biāo)雙擊消息線,彈出如圖所示的消息窗口,在文本框用鼠標(biāo)雙擊消息線,彈出如圖所示的消息窗口,在文本框namename中鍵入消中鍵入消息名稱;息名稱;68順序圖順序圖創(chuàng)建順序圖的對(duì)象和消息:創(chuàng)建順序圖的對(duì)象和消息: 重復(fù)步驟重復(fù)步驟 到到 直到所有消息都添加到順序圖中。直到所有消息都添加到順序圖中。 69協(xié)作圖協(xié)作圖o協(xié)作圖協(xié)作圖也稱通信圖,是順序圖的另一種表示形式,也稱通信圖,是順序圖的另一種表示形式,用于描述相互協(xié)作的對(duì)象間的交互關(guān)系和鏈接關(guān)系。用于描述相互協(xié)作的對(duì)象間的交互關(guān)系和鏈接關(guān)系。o一般情況下,當(dāng)表示涉及很多對(duì)象的模型時(shí),協(xié)作一般情況下,當(dāng)表示涉及

55、很多對(duì)象的模型時(shí),協(xié)作圖比順序圖更形象。圖比順序圖更形象。o另外,與順序圖不同,對(duì)象之間的實(shí)線可能表明這另外,與順序圖不同,對(duì)象之間的實(shí)線可能表明這些對(duì)象的類之間需要關(guān)聯(lián)。些對(duì)象的類之間需要關(guān)聯(lián)。70協(xié)作圖協(xié)作圖o在在RoseRose中根據(jù)中根據(jù)順序圖順序圖建立建立協(xié)作圖協(xié)作圖非常簡單。非常簡單。o只要在順序圖上按只要在順序圖上按“F5F5”鍵,就可以自動(dòng)將順序圖轉(zhuǎn)換成協(xié)鍵,就可以自動(dòng)將順序圖轉(zhuǎn)換成協(xié)作圖。作圖。71狀態(tài)圖狀態(tài)圖o狀態(tài)圖狀態(tài)圖由對(duì)象的各個(gè)狀態(tài)和連接這些狀態(tài)的轉(zhuǎn)換組由對(duì)象的各個(gè)狀態(tài)和連接這些狀態(tài)的轉(zhuǎn)換組成。成。 o通常,用一張狀態(tài)圖描繪一類對(duì)象的行為,它確定通常,用一張狀態(tài)圖描繪

56、一類對(duì)象的行為,它確定了由事件序列引出的狀態(tài)序列。了由事件序列引出的狀態(tài)序列。o不是任何一個(gè)類都需要有一張狀態(tài)圖描繪它的行為,不是任何一個(gè)類都需要有一張狀態(tài)圖描繪它的行為,只針對(duì)具有明顯的狀態(tài)特征并且具有比較復(fù)雜的狀只針對(duì)具有明顯的狀態(tài)特征并且具有比較復(fù)雜的狀態(tài)態(tài)事件事件響應(yīng)行為的類,才需要畫狀態(tài)圖。響應(yīng)行為的類,才需要畫狀態(tài)圖。o在選課系統(tǒng)中,在選課系統(tǒng)中,CourseTaskCourseTask類的對(duì)象具有比較明顯類的對(duì)象具有比較明顯的狀態(tài)特征,其狀態(tài)有:的狀態(tài)特征,其狀態(tài)有:初始狀態(tài)初始狀態(tài)、可選狀態(tài)可選狀態(tài)、人人滿狀態(tài)滿狀態(tài)、關(guān)閉狀態(tài)關(guān)閉狀態(tài)。72狀態(tài)圖狀態(tài)圖創(chuàng)建狀態(tài)圖的過程如下:創(chuàng)建

57、狀態(tài)圖的過程如下: 在瀏覽器中選擇某個(gè)類,如選擇在瀏覽器中選擇某個(gè)類,如選擇CourseTaskCourseTask,單擊鼠標(biāo)右,單擊鼠標(biāo)右鍵,彈出快捷菜單;鍵,彈出快捷菜單; 選擇選擇New:Statechart DiagramNew:Statechart Diagram菜單。視圖中增加了一個(gè)名菜單。視圖中增加了一個(gè)名字為字為“NewDiagramNewDiagram”的狀態(tài)圖;的狀態(tài)圖; 選中選中NewDiagramNewDiagram,鍵入名字,如,鍵入名字,如StatechartDiagramStatechartDiagram。 雙擊雙擊StatechartDiagramStatech

58、artDiagram打開應(yīng)用窗口,就可以利用打開應(yīng)用窗口,就可以利用UMLUML工工具欄的圖標(biāo)元素畫狀態(tài)圖了。具欄的圖標(biāo)元素畫狀態(tài)圖了。 73選擇工具選擇工具文本文本注釋注釋注釋錨注釋錨狀態(tài)狀態(tài)初始狀態(tài)初始狀態(tài)終止?fàn)顟B(tài)終止?fàn)顟B(tài)轉(zhuǎn)換轉(zhuǎn)換反身轉(zhuǎn)換反身轉(zhuǎn)換狀態(tài)圖圖標(biāo)狀態(tài)圖圖標(biāo)74狀態(tài)圖狀態(tài)圖在選課系統(tǒng)中,可以給在選課系統(tǒng)中,可以給CourseTaskCourseTask增加狀態(tài)圖。增加狀態(tài)圖。75o書中書中P210案例:圖書館管理系統(tǒng)案例:圖書館管理系統(tǒng)o1.識(shí)別分析類識(shí)別分析類o(1)識(shí)別邊界類)識(shí)別邊界類o(2)識(shí)別控制類)識(shí)別控制類o(3)識(shí)別實(shí)體類)識(shí)別實(shí)體類o2.定義交互行為定義交互行為o

59、3.建立分析類圖建立分析類圖o1.識(shí)別分析類識(shí)別分析類o(1)識(shí)別邊界類)識(shí)別邊界類圖書館管理系統(tǒng)的邊界類圖書館管理系統(tǒng)的邊界類o(2)識(shí)別控制類)識(shí)別控制類o(3)識(shí)別實(shí)體類)識(shí)別實(shí)體類實(shí)體類說明BorrowerInfo普通讀者的基本信息Loan普通讀者的借書記錄Reservation普通讀者的預(yù)訂信息Title圖書資料的基本信息Item書目BookTitle書籍的基本信息MagazineTitle雜志的基本信息o2.定義交互行為定義交互行為o圖書館管理系統(tǒng)圖書館管理系統(tǒng)“登記借書登記借書”用例的順序圖用例的順序圖n指出查詢的條件(查詢要借閱的書是否存在)指出查詢的條件(查詢要借閱的書是否存

60、在)n若存在,獲取該書條目若存在,獲取該書條目n選中選中n借借n如果準(zhǔn)借增加一條借書記錄如果準(zhǔn)借增加一條借書記錄n更改書目的狀態(tài)更改書目的狀態(tài)圖書館管理系統(tǒng)圖書館管理系統(tǒng)“登記借書登記借書”用例的順序圖用例的順序圖1.查查詢要詢要借閱借閱的書的書是否是否存在存在2.若若存在,存在,獲取獲取該書該書條目條目3.選選中中4.借借5.如如果準(zhǔn)果準(zhǔn)借,借,增加增加一條一條借書借書記錄記錄6.更更改書改書目的目的狀態(tài)狀態(tài)o3.建立分析類圖建立分析類圖o將登記借書用例的時(shí)序圖中消息分配到具體的分析類中。將登記借書用例的時(shí)序圖中消息分配到具體的分析類中。o圖書館管理系統(tǒng)登記借書用例的分析類圖書館管理系統(tǒng)登記借書用例的分析類

溫馨提示

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

評(píng)論

0/150

提交評(píng)論