UML軟件建模實(shí)驗(yàn)指導(dǎo)書_第1頁
UML軟件建模實(shí)驗(yàn)指導(dǎo)書_第2頁
UML軟件建模實(shí)驗(yàn)指導(dǎo)書_第3頁
UML軟件建模實(shí)驗(yàn)指導(dǎo)書_第4頁
UML軟件建模實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔傾情為你奉上精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)專心專注專業(yè)精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)UML軟件建模實(shí) 驗(yàn) 指 導(dǎo) 書計(jì) 算 機(jī) 工 程 學(xué) 院目 錄 TOC o 1-2 f u 實(shí)驗(yàn)一 UML用例圖和類圖 PAGEREF _Toc h 3實(shí)驗(yàn)二 UML序列圖和協(xié)作圖 PAGEREF _Toc h 29實(shí)驗(yàn)三 UML活動圖的設(shè)計(jì)和實(shí)現(xiàn) PAGEREF _Toc h 42實(shí)驗(yàn)四 UML構(gòu)件圖和部署圖 PAGEREF _Toc h 53實(shí)驗(yàn)一 UML用例圖和類圖實(shí)驗(yàn)題目 學(xué)校的網(wǎng)上選課系統(tǒng)的用例圖和類圖實(shí)驗(yàn)?zāi)康?能夠根據(jù)系統(tǒng)的功能分析系統(tǒng)的用例組成,正確確定用例圖中的角色。能

2、夠分析系統(tǒng)的用例、活動者以及它們之間的關(guān)系。根據(jù)對系統(tǒng)的分析,準(zhǔn)確確定相應(yīng)的類,確定類的屬性和操作,正確分析屬性和操作的可繼承性使用Rose軟件能正確畫出用例圖,并說明每一個用例的事件流。正確使用Rose軟件定義類和類的關(guān)系和畫出完整的類圖。實(shí)驗(yàn)要求 根據(jù)需求文檔確定每一個用例的名稱、參與執(zhí)行者(活動者)、前置條件、主事件流、 輔事件流和后置事件流。 能從一類單一的對象中抽象出類的定義,并依據(jù)實(shí)際要求,設(shè)計(jì)類的屬性和操作。 能對現(xiàn)實(shí)世界中的對象存在各種各樣的關(guān)系,分析出這些關(guān)系,主要有:繼承關(guān)系;類之間的關(guān)聯(lián)。并能在類圖中反映這些關(guān)系。 實(shí)驗(yàn)內(nèi)容 學(xué)校的網(wǎng)上選課系統(tǒng)的用例圖和類圖的設(shè)計(jì)和實(shí)現(xiàn)

3、用例圖 用例圖設(shè)計(jì)實(shí)例介紹學(xué)校的網(wǎng)上選課系統(tǒng)的用例圖的設(shè)計(jì)和實(shí)現(xiàn)需求 學(xué)校的網(wǎng)上選課系統(tǒng)主要包括如下功能:管理員通過系統(tǒng)管理界面進(jìn)入,建立本學(xué)期要開的各種課程、將課程信息保存在數(shù)據(jù)庫中并可以對課程進(jìn)行改動和刪除。學(xué)生通過客戶機(jī)瀏覽器,根據(jù)學(xué)號和密碼進(jìn)入選課界面,在這里學(xué)生可以進(jìn)行三種操作:查詢已選課程、選課以及付費(fèi)。同樣,通過業(yè)務(wù)層,這些操作結(jié)果存入數(shù)據(jù)庫中。分析 本系統(tǒng)涉及的用戶包括管理員(Registrar)和學(xué)生(student),他們是用例圖中的活動者,他們的主要特征相似,都具有姓名和學(xué)號等信息,所以可以抽象出“基”活動者People,而Registrar和 Student則從Peop

4、le統(tǒng)一派生。數(shù)據(jù)庫管理系統(tǒng)是另外一個活動者。事件流下面是系統(tǒng)中出現(xiàn)的一些事件流。添加課程事件流:(1)管理員選擇進(jìn)入管理界面,用例開始。(2)系統(tǒng)提示輸入管理員密碼(3)管理員輸入密碼。(4)系統(tǒng)驗(yàn)證密碼。A1:密碼錯誤(5)進(jìn)入管理界面,系統(tǒng)顯示目前所建立的全部課程信息(6)管理員選擇添加課程。(7)系統(tǒng)提示輸入新課程信息(8)管理員輸入信息。(9)系統(tǒng)驗(yàn)證是否和已有課程A2:有沖突(10)系統(tǒng)添加新課程,提示課程添加成功。(11)系統(tǒng)重新進(jìn)入管理主界面,顯示所有課程。(12)用例結(jié)束。其他事件流:A1:密碼錯誤(1)系統(tǒng)提示再次輸入。(2)用戶確認(rèn)。(3)三次錯誤,拒絕再次訪問。(4)否

5、則進(jìn)入添加課程事件流第5步。A2:有沖突(1)系統(tǒng)提示沖突,顯示沖突課程信,(2)用戶重新輸入。(3)繼續(xù)驗(yàn)證直到無沖突。(4)進(jìn)入添加課程事件流第10步。刪除課程事件流和修改課程事件流與此類似。選課事件流:(1)學(xué)生進(jìn)入選課登錄界面,用例開始。(2)系統(tǒng)提示輸入學(xué)號和密碼。(3)學(xué)生輸入學(xué)號和密碼。(4)系統(tǒng)驗(yàn)證。Al:驗(yàn)證失敗(5)進(jìn)人選課主界面。(6)學(xué)生點(diǎn)擊選課。(7)系統(tǒng)顯示所有課程信息。(8)學(xué)生選擇課程。(9)系統(tǒng)驗(yàn)證課程是否可選。A2:不可選(10)系統(tǒng)提示課程選擇成功,提示學(xué)生交費(fèi)。(11) 用例結(jié)束。錯誤流:A1:驗(yàn)證失敗(1)系統(tǒng)提示驗(yàn)證失敗,提示重新輸入。(2)三次失敗

6、,拒絕訪問。(3)成功,轉(zhuǎn)選課事件流第5步。A2:課程不可選(1)系統(tǒng)提示課程不可選及原因。(2)學(xué)生重新選課。(3)重新驗(yàn)證直至成功。(4)轉(zhuǎn)選課事件流第10步。因?yàn)楦顿M(fèi)方式多樣,所以在此將不討論付費(fèi)用例。查詢事件流比較簡單,這里也不詳細(xì)描述。根據(jù)以上的分析,可以繪制出如圖1所示的系統(tǒng)用例圖。 圖1 系統(tǒng)用例圖在Rose2003中設(shè)計(jì)選課系統(tǒng)的用例圖,具體步驟如下: (1) 點(diǎn)擊瀏覽器中的use case View中的Main,彈出用例圖窗口如圖3。此時,與用例圖窗口對應(yīng)的工具欄如圖2所示。 圖2 工具欄 圖3用例圖窗口(2) 將光標(biāo)置于工具欄的Actor圖標(biāo)上,按下左鍵并將光標(biāo)拖曳到用例圖

7、窗口上,放開左鍵,用例圖窗口內(nèi)出現(xiàn)一個活動的圖標(biāo)(見圖4),其名字為“NewClass”。 圖4 繪制用例圖之1(3)修改元素的名字有如下兩種方法: 在用例圖窗口中雙擊NewClas s圖標(biāo),彈出如圖5所示的窗口。然后再選擇“General”選項(xiàng)卡,將Name修改為“People,最后按下“確認(rèn)”按鈕。 如圖4所示,在用例圖窗口中將光標(biāo)置于“NewClass”處,直接將其修改為“People”。圖5 繪制用例圖之2(3) 采用同樣的方法,在用例圖中添加Registrar和Student圖標(biāo),點(diǎn)擊用例窗口工具欄中的圖標(biāo)“generalization”,在用例圖窗口中,將光標(biāo)從Student 移動

8、到People,在Student與People之間添加概括(generalization)關(guān)系(見圖6)。圖6 繪制用例圖之3(4)同樣在Registrar和People之間添加概括關(guān)系。 (5)點(diǎn)擊工具欄中Use Case的圖標(biāo),將光標(biāo)移到用例圖窗口,窗口內(nèi)顯示用例的橢圓圖標(biāo),采用和(3)同樣的方法,將圖標(biāo)名稱改成“SelectCourse”。 添加Select Course用例,點(diǎn)擊工具欄中的Undirectional Relation圖標(biāo),將光標(biāo)從Student指向Select Course,在Student和Select Course之間添加關(guān)系(見圖7)。圖7 繪制用例圖之4(6)重

9、復(fù)以上步驟,完成所示的用例圖。 圖8 用例圖(10)然后再指定活動者和用例的屬性。在瀏覽器中選擇活動者People,按下鼠標(biāo)右鍵,在彈出的菜單中選擇“Open Specification”,彈出圖9所示的對話框。圖9 繪制用例圖之5(11)從圖9中可以看到People的版型(Stereotype)是Actor(以后還將介紹這個畫面)。 (12)雙擊Select Course用例,彈出Use Case Specification對話框(見圖10)。圖10 繪制用例圖之6(13)在Documentation文本框中可以書寫該用例的事件流(見圖11) 圖11 繪制用例圖之7(14)完成以上步驟,可以

10、看到Rose在瀏覽器中自動標(biāo)出了各種關(guān)系。圖12中使用橢圓將它們標(biāo)注出來。圖12 繪制用例圖之8類圖 選課系統(tǒng)的類圖設(shè)計(jì)和實(shí)現(xiàn)1 類的創(chuàng)建本實(shí)驗(yàn)先分析選課系統(tǒng)中的類,然后作出它們的類圖。1.1選課系統(tǒng)中的類分析系統(tǒng)中的所有序列圖,除了角色之外,有以下名詞:(1)課程。(2)界面。(3)控制對象。這3個名詞可以抽象出3個類:課程類、界面類和控制對象類。首先看課程類(Course)。課程類應(yīng)該有以下屬性:(1)課程名稱(name)(2)開課教室(classroom)(3)課程號(courseID)(4)授課教師(teacher)(5)選課的學(xué)生(students)(6)開課起始時間(firstle

11、ssondate)(7)允許選課的學(xué)生人數(shù)(maxstudents)(8)設(shè)置課程名稱(setname)(9)設(shè)置開課教室(setclassroom)(10)設(shè)置課程號(setcourselD)(11)設(shè)置授課教師信息(setteacher)(12)設(shè)置開課起始時間(setfirstlessondate)(13)設(shè)置允許選課的學(xué)生人數(shù)(setmaxstudents)(14)查詢課程名稱(getname)(15)查詢開課教室(getclassroom)(16)查詢課程號(getcourselD)(17)查詢授課教師信息(getteacher)(18)查詢開課起始時間(getfirstlesson

12、date)(19)查詢允許選課的學(xué)生人數(shù)(getmaxstudents)關(guān)于界面類和控制類,因?yàn)樯婕暗胶罄m(xù)的內(nèi)容,所以本實(shí)驗(yàn)暫時不考慮它們。根據(jù)以上的分析,可以繪制出如圖2所示的類圖。圖2 選課系統(tǒng)的完整類圖1.2類圖的創(chuàng)建 在下面介紹在Rose中創(chuàng)建Course類的過程。 (1)選擇瀏覽器中的“Logical View”,按F鼠標(biāo)右鍵,在彈出的菜單中選擇“New”,再在下一級菜單中選擇“Class”,創(chuàng)建一個新的類,然后將這個類的名字改成“Course”,結(jié)果如圖13所示。圖13 繪制類圖之1(2)添加屬性。在瀏覽器中選擇類“course”,按下鼠標(biāo)右鍵,在彈出的菜單中選擇“New”,再選擇

13、“Attribute”,則一個新的屬性被添加,將屬性名字改成“Name”,如果如圖14所示。圖14 繪制類圖之2(3)選擇name ,按下鼠標(biāo)右鍵,選擇“open Specification”,則彈出如圖15示的“ Class Attribution Specification”對話框。在這個對話框中有兩個選項(xiàng)卡,一個用來設(shè)置屬性的固有特性,比如類型(Type)、版型(Stereotype)、初始值(Initial)、存取控制(Export Control)等,一個用來進(jìn)一步指定屬性是靜態(tài)(Static)的還是繼承(Derived)的等。圖15 繪制類圖之3(4)圖16所示為設(shè)置屬性的類型(T

14、ype)示意圖。同樣可以設(shè)置初始值(Initial)和存取控制(Export Control)等。 圖16 繪制類圖之4(5)圖17給出進(jìn)一步設(shè)置屬性的示意圖。圖中將“Containment”設(shè)置為“By Value” 屬性的“Containment”特征表示屬性如何存放在類中。By value表示屬性放在類中,By reference表示屬性放在類外,類指向這個屬性。Unspecified表示還沒有指定控制類型,應(yīng)在生成代碼之前指定By value或By reference。圖17 繪制類圖之5(6)如果要刪除屬性,右鍵選擇屬性,在彈出的菜單中選擇“Delete”即可。 (7)添加操作。在瀏

15、覽器中選擇類“Course”,按下鼠標(biāo)右鍵,在彈出的菜單中選擇 “New”,再在F一級菜單中選擇“Operation“,則添加一個新的操作。圖18是將添加操作的名字改為“GetName”的示意圖。 (8)選擇GetName,按下鼠標(biāo)右鍵,選擇“Open Specification”,在彈出的對話框中可以 設(shè)置操作的固有特性。如圖19所示。 (9)在Specification對話框中,操作或者屬性都有存取控制的選項(xiàng),操作的存取控制的選項(xiàng)默認(rèn)值是公有的,屬性的存取控制的選項(xiàng)默認(rèn)值是私有的。不同的存取控制采用不同的標(biāo)記表示(如圖20所示)。本圖只是說明不同的控制標(biāo)記,后面的圖將按照實(shí)際要求設(shè)計(jì)。(1

16、0)重復(fù)以上步驟,完成Course類的設(shè)計(jì)。圖21是設(shè)計(jì)結(jié)果圖圖18 繪制類圖之6圖19 繪制類圖之7圖20繪制類圖之8圖21繪制類圖之9 類能實(shí)現(xiàn)對象的封裝,是面向?qū)ο蟮闹匾卣?。通過第一部分的學(xué)習(xí),應(yīng)該能夠了解類、對象、屬性、操作的概念,可以從一類單一的對象中抽象出類的定義,并依據(jù)實(shí)際要求,設(shè)計(jì)類的屬性和操作。 2 類的繼承 在選課系統(tǒng)中,涉及到的用戶包括管理員(Registrar)和學(xué)生(Student),其主要特征相似,所以可以建立統(tǒng)一基類People,而Registrar和Student則由People派生。 2.1在角色或類之問添加繼承關(guān)系很簡單,下面給出實(shí)現(xiàn)過程。(1) 雙擊瀏覽

17、器中Logical View:的Main圖標(biāo),彈出類圖窗口,從Use Case View 下將People、Registrar和Student拖到窗口中。圖22圖22 繪制類圖之10(2)選擇類圖工具欄的“Generalization”圖標(biāo),在類圖窗中,按下鼠標(biāo)左鍵,將光標(biāo)從角色Student移動到People,如圖22所示,在二者之間出現(xiàn)一個表示繼承關(guān)系的箭頭標(biāo)志。同理添加Registrar與People之間的繼承關(guān)系。(若用例圖中已畫則會自動生成) (3)如圖23所示,給People增加一私有屬性name,這時Registrar和Student都沒有設(shè)置屬性。在類圖窗口中雙擊Student

18、的圖標(biāo),彈出“Class Specification”對話框,點(diǎn)擊Attributes選項(xiàng)卡,注意這時Show inherite被選擇,而Attributes列表中沒有任何屬性。從圖中可以看到,父類中的私有屬性沒有被繼承。圖23 繪制類圖之11(4) 將People的name屬性設(shè)置成保護(hù)屬性,操作同(3),可以看到Show inherite被選擇時,Attributes列表中有一個屬性name(見圖24),父類中的保護(hù)屬性被子類繼承。 圖24 繪制類圖之12(5)將People的name屬性設(shè)置成公有屬性,操作同(3),可以看到Show inherite Attributes列表中有一個屬性

19、name(見圖13),父類中的公有屬性被子類繼承。圖25 繪制類圖之13 繼承是面向?qū)ο蟮闹匾卣髦唬ㄟ^繼承,可以創(chuàng)建事務(wù)的層次分類??梢允紫榷x 一個具有廣泛意義的類,然后從它進(jìn)行派生,添加一些具有特定特征的類。 當(dāng)一個類是另外一個類的特殊情形時,可以考慮引入繼承關(guān)系。 父類的屬性和操作,只有當(dāng)存取控制是公有和保護(hù)型時,才能被繼承。私有屬性和操作不能被子類繼承。 3. 類的關(guān)聯(lián) 可以使用下列的指導(dǎo)方針列出暫時性的關(guān)聯(lián)關(guān)系: (1)動詞與介詞詞組。 (2)兩個或兩個以上的類有相依賴的關(guān)系,就可能有關(guān)聯(lián)。(3)隱含的關(guān)系。 (4)一般的常識。 然后依據(jù)以下的規(guī)則去除假性的關(guān)聯(lián): (1)如果有

20、一類別被去除,則與之相關(guān)的關(guān)聯(lián)也應(yīng)去除。 (2)現(xiàn)在不考慮與外界領(lǐng)域的關(guān)聯(lián)或是實(shí)現(xiàn)時才會產(chǎn)生的關(guān)聯(lián)。 (3)關(guān)聯(lián)是說明結(jié)構(gòu)的屬性而不是在說明事件。 3.1選課系統(tǒng)的關(guān)聯(lián)關(guān)系分析 在選課系統(tǒng)中設(shè)計(jì)了以下類: 1)界面FormObiect 2)控制對象ControlObject。 3)課程Course。 設(shè)計(jì)了以下角色: 1)學(xué)生Student。 2)管理員Registrar。 3)學(xué)生和管理員的父類People。 4)數(shù)據(jù)庫Database。 這些類和角色之間的關(guān)系如下: 1)角色Student和Registrar從People派生。 2)學(xué)生、管理員在與系統(tǒng)交互時,都有一個界面與之對應(yīng)。 3)

21、一個界面可能和課程相關(guān)(O-多門)。 4)控制對象負(fù)責(zé)課程的處理,處理結(jié)果在界面上顯示。 5)控制對象完成對數(shù)據(jù)庫的操作。 6)界面請求控制對象的服務(wù)。 依據(jù)以上分析,畫出簡略的類關(guān)系圖。進(jìn)一步分析如下: (1)一個用戶界面對象和O個或多個學(xué)生相關(guān)。 (2)一個用戶界面對象和0個或多個管理員相關(guān)。 (3)一個用戶界面對象和O個或多個課程信息相關(guān)。 (4)一個控制對象和0個或多個課程信息相關(guān)。 (5)一個用戶界面對象和一個控制對象相關(guān)。(6)一個控制對象和一個用戶界面對象相關(guān)。 更加詳細(xì)的類圖如圖26所示,類的屬性和操作請參見上面。圖26 詳細(xì)的類圖3.2選課系統(tǒng)中的類、屬性和操作 總結(jié)一下選課

22、系統(tǒng)中定義的類、類的屬性和操作。到目前為止,選課系統(tǒng)中自定義的類共有7個,如表1所示。 仔細(xì)分析系統(tǒng)的需求和前面的設(shè)計(jì),可以得到每個類的屬性和操作。下面對它們分別予以說明。 (1) 類People定義的屬性和操作如圖27所示,說明見表2。圖27 繪制類圖之14(2) 類Student的屬性和操作如圖27所示,說明見表3。圖27 繪制類圖之15因?yàn)閟tudent是從People繼承的“Class Specification”對話框中,選擇“Show inherite”,屬性和操作顯示如圖28所示,從中可以看到它從People中繼承的屬性和操作。圖 28 繪制類圖之16(3)類Registrar的

23、屬性和操作如圖29所示,說明見表4。圖29 繪制類圖之17因?yàn)镽egistrar是從People繼承的“Class Specification”對話框中,選擇“Show inherite”,屬性和操作顯示如圖30所示,從中可以看到它從People中繼承的屬性和操作。圖30 繪制類圖之18(4)類DataBase 的屬性和操作如圖31所示,說明見表5。圖31 繪制類圖之19(2) 類ControlObject的屬性和操作如圖32所示,說明見表6。圖32 繪制類圖之20(3) 類的Course的屬性和操作如圖33所示,說明見表7。圖33 繪制類圖之21(7)FormObject的屬性和操作如圖34

24、所示,說明見表8。圖34 繪制類圖之22DisplayCourseList()是重載函數(shù) 3.3關(guān)聯(lián)關(guān)系的創(chuàng)建 前面介紹了類的創(chuàng)建,現(xiàn)在介紹類圖的創(chuàng)建。操作步驟如下: (1)在“課程設(shè)計(jì)”模型的LogicalVieW中,選擇“Main”類圖,將上節(jié)中定義的類或角色從瀏覽器中拖至“Main”類圖窗口,詳情見圖35。圖35 繪制類圖之23(2)在類圖的工具欄中選擇“Creates a unidirectional association”圖標(biāo),在類圖窗口中,按下鼠標(biāo)左鍵,從student指向FormObject,則在student和FormObjeet之間添加了關(guān)聯(lián),然后調(diào)整一下類的位置。如圖25

25、,為了顯示方便,將類的屬性和操作的“Show All Attributes”和“Show All Operations”設(shè)置為不選,將類的屬性和操作隱藏起來。 圖36 繪制類圖之24(3)可以給新添加的關(guān)聯(lián)命名。在類圖窗口中,選擇student和FormObject之間的關(guān)聯(lián), 按下鼠標(biāo)右鍵,在彈出的菜單中選擇“Open Standard Specification”,彈出如圖37所示的對話框。圖37 繪制類圖之25(4)在該對話框中可以設(shè)置關(guān)聯(lián)的屬性。關(guān)聯(lián)兩端的對象,箭頭指向的稱為“Role A”,另一端稱為“Role B”。如圖38所示,可以將Role A記作“theFormObject”

26、。圖38 繪制類圖之26(5)如圖39所示,在“Association Specificafi For”對話框中點(diǎn)擊“ Role B Detail”選項(xiàng)卡,將Multiplic設(shè)置成l,再點(diǎn)擊“Role A Detail” 選項(xiàng)卡,將Multiplic設(shè)置成0.n。 (6)同理,將Student設(shè)置為1,設(shè)置完成后,類圖變成如圖29所示的形式。圖39 繪制類圖之27圖40 繪制類圖之28現(xiàn)在使用圖30和圖40來說明如何在類圖中添加及修改聚合關(guān)系。 圖29建立一個新的和選課系統(tǒng)無關(guān)的類text,并假設(shè)一個界面對象中有0至多個text對象,則界面類和text類之間存在聚合關(guān)系。選擇FormObje

27、ct和text之間的關(guān)聯(lián),按下鼠標(biāo)右鍵,在彈出的菜單中選擇“Open Specification”,則彈出“Aggregation Specification For”對話框,點(diǎn)擊“Role B Detail”選項(xiàng)卡,如圖29所示,將對話框中的Aggregate項(xiàng)選中。 圖41 聚合關(guān)系的建立將圖41中的Containment of text設(shè)置為 By Value,按下“Apply”按鈕,類圖中聚合的標(biāo)記變成圖42所示的組合的標(biāo)記。圖42組合關(guān)系的建立(7)回到圖40,使用圖40和圖41所示的方法,完成如圖43所示的選課系統(tǒng)的完整類圖。 圖43 系統(tǒng)類圖小結(jié) 用例描述用戶使用系統(tǒng)時從頭到尾的

28、一系列事件,它展現(xiàn)和暗示了系統(tǒng)的需求。UML中使用用例圖來組織用例。本實(shí)驗(yàn)介紹了用例圖及其所涉及的概念,包括: (1)用例。 (2)活動者 (3)事件流 (4)用例和用例之間、用例與活動者之間、活動者與活動者之間的關(guān)系。 (5)最后,還介紹了在Rose中用例圖的創(chuàng)建方法?,F(xiàn)實(shí)世界中的對象存在各種各樣的關(guān)系,分析這些關(guān)系,主要有: (1)繼承關(guān)系。繼承反映了自然界中特殊和普遍之間的關(guān)系,用它可以模擬客觀世界。利用繼承很容易在原有類上增加新的東西。 (2)類之間的關(guān)聯(lián)。關(guān)聯(lián)關(guān)系描述了給定類的對象個體之間的語義連接,是兩個類或多個類之間的一個關(guān)系。連接是關(guān)聯(lián)的一個實(shí)例。聚合是表達(dá)主體部分關(guān)系的關(guān)聯(lián),

29、組合是關(guān) 聯(lián)的更強(qiáng)的形式。聚合和組合是關(guān)聯(lián)的特殊形式。本實(shí)驗(yàn)介紹了類的屬性、操作,繼承和類之間的關(guān)聯(lián)、聚合、組合關(guān)系,它們的UML表示方法,繪制了選課系統(tǒng)的完整的框圖。 實(shí)驗(yàn)二 UML序列圖和協(xié)作圖 實(shí)驗(yàn)?zāi)康模?1) 能夠掌握兩種交互圖的相同點(diǎn)和區(qū)別。2) 能夠根據(jù)事件流,準(zhǔn)確確定對象,畫出序列圖和協(xié)作圖。 3) 熟悉使用Rose軟件創(chuàng)建兩種交互圖。 實(shí)驗(yàn)要求 掌握兩種交互圖即序列圖和協(xié)作圖的概念和組成,掌握通過交互圖顯示對象之間的關(guān)系和對象之間處理的消息來建模系統(tǒng)的動態(tài)特性。 實(shí)驗(yàn)內(nèi)容: 通過選課用例(select Course)為例,來學(xué)習(xí)序列圖和協(xié)作圖的設(shè)計(jì)和實(shí)現(xiàn)。 實(shí)驗(yàn)步驟1) 分析選

30、課事件流; 2) 用Rose創(chuàng)建select Course序列圖 3) 用Rose創(chuàng)建select Course協(xié)作圖 序列圖 一旦定義了一個工程的用例,就可以用它們來指導(dǎo)對系統(tǒng)的進(jìn)一步開發(fā)。用例的實(shí)現(xiàn)描述了相互影響的對象的集合,這些對象將支持用例所要求的功能。系統(tǒng)用例的實(shí)現(xiàn),是從外部給視圖轉(zhuǎn)到內(nèi)部結(jié)構(gòu)的第一步。 UML中,用例的實(shí)現(xiàn)用交互圖(interaction diagram)來指定和說明。交互圖通過顯示對象之間的關(guān)系和對象之間處理的消息來對系統(tǒng)的動態(tài)特性建模。 有兩種交互圖:序列圖(sequence diagram)和協(xié)作圖(collabor diagram)。本實(shí)驗(yàn)介紹序列圖和協(xié)作圖

31、及其實(shí)現(xiàn)。 本實(shí)驗(yàn)主要以選課系統(tǒng)中的選課用例(select Course)為例,來學(xué)習(xí)序列圖和協(xié)作圖的設(shè)計(jì)和實(shí)現(xiàn)。為了使問題更簡單一些,不考慮學(xué)生的登錄。假設(shè)學(xué)生已經(jīng)成功登錄系統(tǒng),選課的事件流如下: (1)學(xué)生進(jìn)入選課主界面。 (2)學(xué)生點(diǎn)擊選課。 (3)系統(tǒng)顯示所有課程信息。 (4)學(xué)生選擇課程。 (5)系統(tǒng)驗(yàn)證課程是否可選。 A1:課程不可選 (6)系統(tǒng)提示課程選擇成功,提示學(xué)生交費(fèi)。(7)用例結(jié)束。 A1課程不可選 (1)系統(tǒng)提示課程不可選及原因。 (2)學(xué)生重新選課。 (3)重新驗(yàn)證直至成功。 (4)轉(zhuǎn)選課事件流第6步。 序列圖描述的是對象與對象的交互,創(chuàng)建序列圖的步驟如下: (1)尋

32、找對象。 (2)尋找角色。 (3)將消息加進(jìn)圖中。 首先,查找Select Course用例的對象。從事件流中發(fā)現(xiàn)涉及以下對象: (1)界面。 (2)課程。 (3)對于業(yè)務(wù)層的操作,也應(yīng)該有對象進(jìn)行處理。 (4)事件流中設(shè)計(jì)的角色有:學(xué)生、數(shù)據(jù)庫。 然后,分析對象、角色之間交互的消息。本用例主要有以下交互: (1)學(xué)生通過界面發(fā)送選課命令。 (2)界面向控制對象請求課程信息。 (3)控制對象向數(shù)據(jù)庫發(fā)送查詢數(shù)據(jù)消息。 (4)控制對象暫存數(shù)據(jù)庫的查詢結(jié)果。 (5)界面對象從控制對象中取得所有的課程信息。 (6)在界面上顯示所有的課程信息。 (7)界面對象發(fā)送命令要求控制對象刪除課程信息。 (8)

33、學(xué)生選擇課程。 (9)界面對象要求學(xué)生輸入學(xué)號。 (10)界面對象向控制對象發(fā)送信息,查詢該生是否可以選擇選定的課程。 (11)控制對象從數(shù)據(jù)庫中查詢關(guān)聯(lián)信息。 (12)控制對象判斷是否可以選課。 13)如果可以選課,則向數(shù)據(jù)庫中添加關(guān)聯(lián)信息。 (14)向界面對象返回信息。根據(jù)以上分析,整理的最終Select Course序列圖如圖1所示。圖1 Select Course序列圖3. Select Course 創(chuàng)建Select Course序列圖的具體步驟如下: 在瀏覽器中右鍵點(diǎn)出“Use Case View”,在彈出的菜單中選擇“New”,再在下一級菜單中“Sequence Diagram”

34、,則Use Case View中顯示一個新創(chuàng)建的序列圖的圖標(biāo),名字是New Diagram,如圖2所示,將該圖的名字改成Select Course。圖2 創(chuàng)建序列圖在瀏覽器中選擇一個序列圖時,序列圖窗口工具變成如圖3所示的形式。圖3 工具欄(3)在瀏覽器中選擇角色Student,將其從瀏覽器中拖到序列圖中(見圖4),圖窗口中顯示角色:Student和泳道:Student,:Student對象下有虛線條。圖4 向序列圖窗口中添加角色(4)選擇Create a Object具欄按鈕,光標(biāo)變成十字形狀,將光標(biāo)移到圖窗口中,按下鼠標(biāo)左鍵,則序列圖窗口中添加了一個無名對象,窗口的頂部也出現(xiàn)了一個無名的冰

35、道(見圖5)。 圖5 添加無名對象(5)選擇新創(chuàng)建的對象,按下鼠標(biāo)右鍵,在彈出的菜單中選擇“Open specification”,彈出“Object Specification”對話框,選擇對象的類,這是個界面對象,這里選擇FormView 圖6選擇界面對象的類如圖7所示,將這個對象命名為Form。(7)選擇對象類且輸入對象名稱后,按下“OK”按鍵,序列圖中顯示已經(jīng)命名的標(biāo)有類的對象。 (8)用同樣的方法在序列圖中添加對象courses和control,添加活動者Database。添加后的結(jié)果如圖8所示。圖8 添加對象(9)注意到圖8中courses、control都沒有類,為了給它們添加類

36、信息,可以雙擊courses 的圖標(biāo),在彈出的“Object Specification”對話框的Class下拉列表中選擇項(xiàng)。 圖9操作示意圖。(10)選擇后按下“OK” 按鈕,彈出如圖10所示的“Class Specification”對話框,然后在 Name文本框中輸入“Course”。 圖10建立新的類(11)在對話框中按下“OK”按鈕,返回到“Object Specification”對話框。注意到在這個對話框中,圖9給出操作示意圖。Course(見圖11),將courses的Persistence屬性設(shè)置成Persistant。 圖11 12)在圖11的對話框中按下“OK”按鈕,返回

37、序列圖窗口(見圖12)。圖12修改了的courses對象(13)用同樣的方法設(shè)置control對象的類為ControlObject,并修改數(shù)據(jù)庫角色的名稱為 “db”(見圖13)。圖13 修改數(shù)據(jù)庫角色(14)下面在序列圖中增加消息。選擇工具欄中的“Object Message”圖標(biāo),在序列圖中將光標(biāo)從stu指向Form,釋放鼠標(biāo)右鍵,則stu和Form之間添加了一個消息,標(biāo)有序號1,在其后添加消息名稱SelectCommand()(見圖14)。 圖14(15)重復(fù)以上過程,完成整個序列圖(見圖15)。圖15 完整序列圖這里順便介紹一下從序列圖中刪除對象的方法。用鼠標(biāo)在序列圖窗口選擇一個對象,

38、 在“Edit”菜單中選擇“Delete from Model”,則所選擇的對象被刪除。 4 Add Course序列圖的創(chuàng)建 先介紹Add Course序列圖。 Add Course用例的事件流如下: (1)管理員選擇進(jìn)入管理界面,用例開始。 (2)系統(tǒng)提示輸入管理員密碼。 (3)管理員輸入密碼。 (4)系統(tǒng)驗(yàn)證密碼。 A1:密碼錯誤 (5)進(jìn)入管理界面,系統(tǒng)顯示目前所建立的全部課程信息。 (6)管理員選擇添加課程。 (7)系統(tǒng)提示輸入新課程信息 (8)管理員輸入信息。 (9)系統(tǒng)驗(yàn)證是否和已有課程沖突。 A2:有沖突 (10)系統(tǒng)添加新課程,提示課程添加成功。 (11)系統(tǒng)重新進(jìn)入管理主界

39、面,顯示所有課程。 (12)用例結(jié)束。 首先,查找Add Course用例的對象。從事件流中發(fā)現(xiàn)涉及以下對象: (1)界面。 (2)課程。 (3)對于業(yè)務(wù)層的操作,也應(yīng)該有對象進(jìn)行處理。 (4)事件流中設(shè)計(jì)的角色有:管理員,數(shù)據(jù)庫。 然后,分析對象、角色之間交互的消息。本用例主要有以下交互: (1)管理員進(jìn)入管理界面,選擇添加課程功能。 (2)界面提示用戶輸入課程信息。 (3)界面對象創(chuàng)建一個課程對象。 (4)通過控制對象來對課程信息進(jìn)行合法性檢查。 (5)控制對象向課程對象返回結(jié)果。 (6)控制對象向數(shù)據(jù)庫查詢課程相關(guān)信息。 (7)控制對象對查詢結(jié)果進(jìn)行判斷。 (8)控制對象向數(shù)據(jù)庫中插人數(shù)

40、據(jù)。 (9)在界面上顯示結(jié)果。 (10)控制對象撤銷建立的課程對象。 根據(jù)以上分析,整理的Add Course序列圖如圖16所示。 圖16 Add Course序列圖5. Select Course協(xié)作圖的創(chuàng)建 下面介紹Select Coursef協(xié)作圖的創(chuàng)建,具體步驟如下: (1) 在瀏覽器的“Use Case View”中的用例Select Course上按下鼠標(biāo)右鍵,在彈出的菜單中選擇“New”,然后再在彈出的菜單中選擇“Collaboration Diagram”,創(chuàng)建一個新的協(xié)作圖,將協(xié)作圖的名字改成Select Course(見圖17)。 (2)選擇協(xié)作圖Select Course

41、,協(xié)作圖窗口工具欄如圖18所示。圖18 工具欄(3) Select Course協(xié)作圖涉及以下對象:學(xué)生、界面、控制對象、數(shù)據(jù)庫對象、課程對象。下面操作在圖中添加對象:在Use Case View中選擇Student角色,將其拖動到協(xié)作圖窗口;再選擇工具欄圖標(biāo)“Object”,如圖19所示,在協(xié)作圖窗口中按下鼠標(biāo)左鍵,添加一個對象圖19 添加對象(4)選擇對象并按下鼠標(biāo)右鍵,在彈出的菜單中選擇“Open Specification”,然后在彈出 的對話框中設(shè)置對象的屬性,如圖20所示。圖20設(shè)置對象的屬性 (5)采用同樣的方法添加對象control、courses和db,結(jié)果如圖21所示。圖2

42、1 添加對象(6)對象之間的交互如下: 學(xué)生通過界面發(fā)送選課命令。 界面向控制對象請求課程信息。 控制對象向數(shù)據(jù)庫發(fā)送查詢數(shù)據(jù)消息。 控制對象暫存數(shù)據(jù)庫的查詢結(jié)果。 界面對象從控制對象中取得所有的課程信息。 在界面上顯示所有的課程信息。 界面對象發(fā)送命令要求控制對象刪除課程信息。 學(xué)生選擇課程。 界面對象要求學(xué)生輸入學(xué)號。 界面對象向控制對象發(fā)送信息,查詢該生是否可以選擇選定的課程。 控制對象從數(shù)據(jù)庫中查詢關(guān)聯(lián)信息。 控制對象判斷是否可以選課。 如果可以選課,則向數(shù)據(jù)庫中添加關(guān)聯(lián)信息。向界面對象返回信息。 采用以下方法在對象之間添加消息: 選擇“Object Link”工具欄圖標(biāo),將光標(biāo)移到協(xié)

43、作圖窗口,由stu指向form,建立stu到 form的連接,結(jié)果如圖22所示。圖22 建立連接(7)選擇工具欄中的“Link Message”圖標(biāo),點(diǎn)擊剛才添加的連接,則添加一條消息,如圖23所示。 圖23添加消息(8)從步驟(6)中得知學(xué)生發(fā)送到界面的第一條消息是“學(xué)生通過界面發(fā)送選課命令”,記作SelectCommand,下面將其設(shè)置到消息上去。在協(xié)作圖窗口上選擇1:,點(diǎn)擊鼠標(biāo)右鍵,在撣出的菜單中選擇“Open Specification”,彈出圖24所示的對話框,在對話框中輸入消息的名字。按下“OK按鈕,得到圖25所示的形式。圖25 設(shè)置了屬性的消息 (9)采用以上方法添加對象、連接和

44、消息,設(shè)置消息的屬性,最終得到如圖26所示的協(xié)作圖。如圖26 Select Course協(xié)作圖6.小結(jié) 本實(shí)驗(yàn)做了序列圖和協(xié)作圖,它們描述了用例的初始實(shí)現(xiàn)。在實(shí)際設(shè)計(jì)時,只要做成其中的一種圖,然后選擇圖,按下“F5”鍵,即可生成另一種圖。 在UML中,用例的實(shí)現(xiàn)用交互圖來指定和說明。交互圖通過顯示對象之間的關(guān)系和對象之間處理的消息來建模系統(tǒng)的動態(tài)特性。有兩種交互圖,它們是序列圖和協(xié)作圖。本實(shí)驗(yàn)介紹了序列圖和協(xié)作圖的基本概念、組成以及在Rose中的實(shí)現(xiàn)。實(shí)驗(yàn)三 UML活動圖的設(shè)計(jì)和實(shí)現(xiàn) 實(shí)驗(yàn)?zāi)康模?1) 熟悉活動圖的創(chuàng)建,根據(jù)事件流,準(zhǔn)確地勾畫出活動圖。 2) 能夠分析系統(tǒng)的每一個用例的事件流、

45、畫出相應(yīng)的活動圖。 3) 能使用Rose軟件正確畫出活動圖。 實(shí)驗(yàn)要求: 掌握活動圖的基本概念和組成。用活動圖來描述事件的流程。描述采取何種動作、做什么(對象狀態(tài)改變)、何時發(fā)生(動作序列)以及在何處發(fā)生(泳道)。 確定活動圖的起始狀態(tài)、終止?fàn)顟B(tài)、狀態(tài)轉(zhuǎn)移、決策、守護(hù)條件、同步棒和泳道。 實(shí)驗(yàn)內(nèi)容: 通過實(shí)際制作選課系統(tǒng)中的Add Course(添加課程)用例來學(xué)習(xí)設(shè)計(jì)和實(shí)現(xiàn)活動圖。 實(shí)驗(yàn)步驟: 1) 活動圖的基本概念和的組成 2) 分析用例的事件流 3) 用Rose軟件畫出活動圖 Add Course(添加課程)用例的活動圖設(shè)計(jì)和實(shí)現(xiàn) 利用文本描述事件流是很有用的,但如果事件流的邏輯復(fù)雜且有

46、許多其他事件流,則文本形式可能較難閱讀和理解。這時可以使用流程圖來描述事件流,在UML中這種圖稱為活動圖,它是事件流的另一種建模方式。 因?yàn)榛顒訄D顯示的信息與文本事件流相同,所以可在業(yè)務(wù)模型中用活動圖描述業(yè)務(wù)過程的工作流。本實(shí)驗(yàn)介紹如何創(chuàng)建活動圖。 1活動圖的基本概念和的組成 在用例模型中,活動圖用來捕捉用例的活動,使用框圖的方式顯示動作及其結(jié)果?;顒訄D著重描述操作(0peratlon)以及用例實(shí)例或?qū)ο笾械幕顒印?活動圖是一種描述工作流的方式,它用來描述采取何種動作、做什么(對象狀態(tài)改變)、何時發(fā)生(動作序列)以及在何處發(fā)生(泳道)?;顒訄D可以用作下述目的: 1)描述一個操作執(zhí)行過程中所完成

47、的工作(動作),這是活動圖最常見的用途。 2)描述對象內(nèi)部的工作。 3)顯示如何執(zhí)行一組相關(guān)的動作,以及這些動作如何影響它們周圍的對象。 4)顯示用例的實(shí)例如何執(zhí)行動作以及如何改變對象狀態(tài)。 5)說明一次商務(wù)活動中的人(角色)、工作流組織和對象是如何工作的。 活動圖由起始狀態(tài)(start state)、終止?fàn)顟B(tài)(end state)、狀態(tài)轉(zhuǎn)移(state transition)、決策(decision)、守護(hù)條件、同步棒(synchronization bar)和泳道(swimlane)組成。 起始狀態(tài)顯式地表示活動圖上一個工作流程的開始,用實(shí)心圓點(diǎn)來表示(見圖1)。圖1 活動圖示例 一個活動

48、圖中,只有一個起始狀態(tài)。終止?fàn)顟B(tài)表示了一個活動圖的最后和終結(jié)狀態(tài),一個活動圖中可以有0個或多個終止?fàn)顟B(tài),終止?fàn)顟B(tài)用實(shí)心圓點(diǎn)外加一個小圓圈來表示(見圖1)。 活動圖中的動作用一個圓角四邊形表示,其內(nèi)部的文本串用來說明采取的動作,動作之間的轉(zhuǎn)移用箭頭來表示,稱為轉(zhuǎn)移,用帶有箭頭的實(shí)線表示。箭頭上可能還帶有守護(hù)條件、發(fā)送短句和動作表達(dá)式,守護(hù)條件用來約束轉(zhuǎn)移,守護(hù)條件為真時轉(zhuǎn)移才可以開始。用菱形符號來表示決策點(diǎn),決策符號可以有一個或多個進(jìn)入轉(zhuǎn)移,兩個或更多的帶有守護(hù)條件的發(fā)出轉(zhuǎn)移。可以將一個轉(zhuǎn)移分解成兩個或更多的轉(zhuǎn)移,從而導(dǎo)致并發(fā)的動作。所有的并行轉(zhuǎn)移在合并之前必須被執(zhí)行。一條粗黑線表示將轉(zhuǎn)移分解成

49、多個分支,同樣用粗黑線來表示分支的合并,粗黑線稱為同步棒(見圖2)。圖2 活動圖示例泳道分割活動圖,有助于更好地理解執(zhí)行活動的場所。 下面采用活動圖來描述選課系統(tǒng)中的Add Course用例的工作流 2實(shí)例 本實(shí)驗(yàn)主要是通過實(shí)際制作選課系統(tǒng)中的Add Course(添加課程)用例來學(xué)習(xí)設(shè)計(jì)和制作活動圖。 21分析 在用例圖中分析過,Add Course用例的事件流為: (1)管理員選擇進(jìn)入管理界面,用例開始。 (2)系統(tǒng)提示輸入管理員密碼。 (3)管理員輸入密碼。 (4)系統(tǒng)驗(yàn)證密碼。 A1:密碼錯誤 (5)進(jìn)入管理界面,系統(tǒng)顯示目前所建立的全部課程信息。 (6)管理員選擇添加課程。 (7)系

50、統(tǒng)提示輸入新課程信息。 (8)管理員輸入信息。 (9)系統(tǒng)驗(yàn)證是否和已有課程沖突。 A2:有沖突 (10)系統(tǒng)添加新課程,提示課程添加成功。 (11)系統(tǒng)重新進(jìn)入管理主界面,顯示所有課程。 (12)用例結(jié)束。 因?yàn)楣芾韱T密碼驗(yàn)證過程可以抽取出來,作為通用的流程,所以這里對Add Course事件流稍作修改,將管理員輸入課程信息作為起始的活動,內(nèi)容如下: (1)管理員輸入信息。 (2)系統(tǒng)驗(yàn)證是否和已有課程沖突。 A2:有沖突 (3)系統(tǒng)添加新課程,提示課程添加成功。 (4)系統(tǒng)重新進(jìn)入管理主界面,顯示所有課程。 (5)用例結(jié)束。 圖3 Add Course用例的活動圖根據(jù)以上描述并進(jìn)一步細(xì)化,

51、畫出圖3所示的Add Course用例的活動圖。22創(chuàng)建Add Course活動圖 創(chuàng)建Add Course活動圖的步驟如下: (1)在瀏覽器中,使用鼠標(biāo)右鍵點(diǎn)擊Use Case View,在彈出的菜單中選擇“New” “Activity Diagram”,則在Use Case View中添加一項(xiàng)“StateActivity Model” ,該項(xiàng)產(chǎn)生一個名為“NewDiagram”的活動圖,將其改為“Add Course”,圖4 添加活動圖(2)使用鼠標(biāo)雙擊活動圖“Add Course”,彈出如圖5所示的活動圖窗口。圖5 活動窗口(4)點(diǎn)擊工具欄的“Swimlanc”工具,在右邊活動圖窗口點(diǎn)擊

52、鼠標(biāo)左鍵,即可增加一個新的泳道“NewSwimlane”,同時在左邊的活動圖“Add Course”之下,也出現(xiàn)一個泳道“NewSwimlane”標(biāo)識,將泳道名稱修改為“用戶接口”,如圖6所示。圖6 增加泳道1(7)使用同樣的方法增加“業(yè)務(wù)邏輯接口”和“數(shù)據(jù)庫接口”泳道,結(jié)果如圖7所示。圖7 增加泳道2(8)在工具欄中選擇“Start State”圖標(biāo),放置到“用戶接口”泳道內(nèi),選擇工具欄中的“Activity”圖標(biāo),在“用戶接口”泳道內(nèi)增加一個新的活動。將活動的名稱修改為“輸入課程各項(xiàng)信息”。圖8 增加活動(12)在工具欄中選擇“Transition”圖標(biāo),在活動圖窗口中,將光標(biāo)從起始狀態(tài)到

53、“輸入課各項(xiàng)信息”,則從起始狀態(tài)到“輸入課程各項(xiàng)信息”之間添加了一條帶箭頭的實(shí) 這就是轉(zhuǎn)移,輸入課程以后,還要判斷輸入的課程是否合法,即需要進(jìn)行課程驗(yàn)證。這個工作要提交到“業(yè)務(wù)邏輯接口”中進(jìn)行。采用前述的方法,在“業(yè)務(wù)邏輯接口”泳道中添加“驗(yàn)證課程”活動,并在“輸入課程各項(xiàng)信息”和“驗(yàn)證課程”之間添加轉(zhuǎn)移 圖9掭加“驗(yàn)證課程”活動和相關(guān)轉(zhuǎn)移 (14)為了進(jìn)行課程信息的驗(yàn)證,需要在業(yè)務(wù)邏輯接口中依據(jù)已有的課程信息,創(chuàng)建課 程對象,提交到數(shù)據(jù)庫中,進(jìn)行信息的驗(yàn)證。添加“創(chuàng)建課程對象”活動,依據(jù)課程對象的信息,在數(shù)據(jù)庫中查找課程信息。為了完成這個功能,在“數(shù)據(jù)庫接口”泳道中添加“在數(shù)據(jù)庫中查詢課程”

54、活動,并在“創(chuàng)建課程對象”和“在數(shù)據(jù)庫中查詢課程”之間添加轉(zhuǎn)移關(guān)系(見圖10)。 圖10 增加轉(zhuǎn)移關(guān)系(16)查詢結(jié)果將被返回到業(yè)務(wù)邏輯接口,由業(yè)務(wù)邏輯接口判斷查詢結(jié)果的信息,以確認(rèn) 添加的課程是否合法。被添加的課程有可能是合法的,也有可能是不合法的,所以要增加一個決策(decision)進(jìn)行判斷。將光標(biāo)移到活動圖窗口的工具欄上,選擇“Decision”圖標(biāo),然后將光標(biāo)移動到活動圖窗口的“業(yè)務(wù)邏輯接口”泳道,按下鼠標(biāo)鍵添加一個決策,在“判斷添課程是否合法”和決策之間添加轉(zhuǎn)移(見圖11)。圖11 增加轉(zhuǎn)移(18)如果輸入的信息合法,則將在數(shù)據(jù)庫中添加輸入的課程信息。如果不合法,則提示重新輸入課程

55、信息。在“數(shù)據(jù)庫接口”泳道中添加“在數(shù)據(jù)庫中添加該課程”活動。在決策標(biāo)記和“在數(shù)據(jù)庫中添加該課程”活動之間添加轉(zhuǎn)移。這個轉(zhuǎn)移發(fā)生的條件是課程合法,所以,要在轉(zhuǎn)移上二添加守護(hù)條件“合法”。添加守護(hù)條件的方法是:雙擊剛才添加的轉(zhuǎn)移,在彈出的對話框中選擇“Detail”選項(xiàng)卡,在“Guard condition”欄中畭轉(zhuǎn)移條件“合法”(見圖12)。圖12 添加守護(hù)條件1圖13 添加守護(hù)條件2(20)在圖所示的對話框中按下“OK”按鈕,則活動圖可以看到,從決策到“在數(shù)據(jù)庫中添加該課程”的轉(zhuǎn)移上增加了守護(hù)條件“合法”。 (21)如果課程信息不合法,則提示重新輸入,重新轉(zhuǎn)入“輸入課程各項(xiàng)信息”活動。在決策

56、和“輸入課程各項(xiàng)信息”之間添加轉(zhuǎn)移,守護(hù)條件是“不合法”(見圖14)。注意到在圖中標(biāo)記的轉(zhuǎn)移上,標(biāo)有“提示重新輸入”的文字,這是在“stateTransition Specification“對話框中設(shè)置“Event”項(xiàng)得到的。 圖14 守護(hù)條件不合法(23)如果課程信息合法,則在數(shù)據(jù)庫中添加課程,然后判斷添加課程是否成功。增加一個決策,如果添加課程成功,則顯示添加成功信息,過程結(jié)束(見圖15)。圖15 結(jié)束(24)如果添加課程失敗,則顯示添加錯誤信息,過程結(jié)束(見圖16)。到此為止,一個完整的活動圖完成了。圖16 完整活動圖25)雙擊決策,彈出“Decision speclfication”

57、對話框,點(diǎn)擊“Transltlons”選項(xiàng)卡,可以看到與決策相關(guān)的轉(zhuǎn)移關(guān)系(見圖17)。圖17 決策描述當(dāng)然,也可以給決策命名。只要選擇“Decision specification”對話框的“General”選項(xiàng)卡,修改其中的“Name”項(xiàng)的內(nèi)容即可。 (26)完成整個活動圖后可以看到,瀏覽器也發(fā)生了相應(yīng)的變化:瀏覽器中列出了活動圖模型的元素(見圖18)。圖 18 活動模型元素小結(jié) 活動圖是另一種建模事件流的方式。利用文本描述事件流很有用,但如果事件流邏輯復(fù)雜且有許多其他事件流,或客戶對文本不像對框圖那么熟悉,則文本形式可能較難閱讀和理解。 活動圖顯示與文本事件流相同的信息。活動圖是描述工作

58、流的另一種方式,描述采取何種動作、做什么(對象狀態(tài)改變)、何時發(fā)生(動作序列)以及在何處發(fā)生(泳道)。 活動圖由起始狀態(tài)、終止?fàn)顟B(tài)、狀態(tài)轉(zhuǎn)移、決策、守護(hù)條件、同步棒和泳道組成。通過本實(shí)驗(yàn)的學(xué)習(xí),要求掌握以下內(nèi)容: (1)活動圖的基本概念和組成。 (2)使用Rose創(chuàng)建活動圖。實(shí)驗(yàn)四 UML構(gòu)件圖和部署圖 實(shí)驗(yàn)?zāi)康模?1) 掌握系統(tǒng)的構(gòu)件圖組成,并畫出選課系統(tǒng)的構(gòu)件圖 2) 掌握系統(tǒng)的布署圖組成,并畫出該圖 3) 通過學(xué)習(xí)布署圖的概念,能正確分析選課系統(tǒng)的布署圖的組成和連接關(guān)系,并使用Rose正確畫出布署圖,定義每一個要素的屬性。 實(shí)驗(yàn)要求: 通過本實(shí)驗(yàn)的學(xué)習(xí),要求能夠掌握構(gòu)件的基本概念、構(gòu)件圖

59、的設(shè)計(jì)和實(shí)現(xiàn)。能夠掌握布署圖的設(shè)計(jì)和實(shí)現(xiàn)。 實(shí)驗(yàn)內(nèi)容: 本實(shí)驗(yàn)通過實(shí)際的選課系統(tǒng)的實(shí)例來說明構(gòu)件圖和布署圖的設(shè)計(jì)和制作方法。實(shí)驗(yàn)步驟: 1) 分析并創(chuàng)建選課系統(tǒng)構(gòu)件圖 2) 分析選課系統(tǒng)布署圖 3) 布署圖的創(chuàng)建 選課系統(tǒng)的組件圖和部署圖設(shè)計(jì)和實(shí)現(xiàn)實(shí)驗(yàn)要求 1硬件基本配置:Intel Pentium 3 CPU或以上級別的CPU,大于128MB的內(nèi)存 2軟件要求:Windows982000Me/XP操作系統(tǒng),Office 972000系統(tǒng)程序。 組件視圖(component view)包含模型代碼庫、可執(zhí)行文件、運(yùn)行庫和其他組件的信息。組件是代碼的實(shí)際物理模塊,系統(tǒng)的組件圖用來顯示代碼模塊間的

60、關(guān)系。 1 組件圖的基本概念 組件圖顯示組件以及它們之間的依賴關(guān)系,一般來說,組件就是一個實(shí)際文件,可以有幾種類型: (1)源代碼組件。一個源代碼文件或者與一個包對應(yīng)的若干個源代碼文件。 (2)二進(jìn)制組件。一個目標(biāo)碼文件,一個靜態(tài)的或者動態(tài)的庫文件。 (3)可執(zhí)行組件。在一臺處理器上可運(yùn)行的一個可執(zhí)行的程序單位,即所謂可執(zhí)行程序。 組件圖可以用來顯示編譯、鏈接或執(zhí)行時組件之間的依賴關(guān)系,以及組件的接口和調(diào)用關(guān)系。在一個簡單的畫圖的C+程序中,包含3種類:main類(主程序類)放在maincpp中;shape類(基類)放在Shapecpp中。由它派生的Line類(負(fù)責(zé)畫線的類)放在Linecpp

溫馨提示

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

最新文檔

評論

0/150

提交評論