第二章 使用UML進(jìn)行建模_第1頁(yè)
第二章 使用UML進(jìn)行建模_第2頁(yè)
第二章 使用UML進(jìn)行建模_第3頁(yè)
第二章 使用UML進(jìn)行建模_第4頁(yè)
第二章 使用UML進(jìn)行建模_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章使用UML進(jìn)行建模2.1導(dǎo)言UML統(tǒng)一建模語(yǔ)言是適用于所有面向?qū)ο蠓椒▽W(xué)的標(biāo)準(zhǔn)記號(hào)系統(tǒng),可以用于建立系統(tǒng)開(kāi)發(fā)中的多種模型功能模型 --- 用例圖對(duì)象模型 --- 類圖,對(duì)象圖動(dòng)態(tài)模型 --- 交互圖(順序圖)、狀態(tài)圖、

活動(dòng)圖、協(xié)作圖其他 --- 構(gòu)件圖、部署圖UML可視化建模UML可視化建模2.2UML綜述用例圖(

UseCaseDiagram)用例圖是從用戶角度描述系統(tǒng)功能,是用戶所能觀察到的系統(tǒng)功能的模型圖,用例是系統(tǒng)中的一個(gè)功能單元包括參與者、系統(tǒng)邊界、用例本身類圖(ClassDiagram)類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合等,也包括類的內(nèi)部結(jié)構(gòu)(類的屬性和操作)對(duì)象圖(ObjectDiagram)

對(duì)象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識(shí)。他們的不同點(diǎn)在于對(duì)象圖顯示類的多個(gè)對(duì)象實(shí)例,而不是實(shí)際的類順序圖(SequenceDiagram)順序圖顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,它強(qiáng)調(diào)對(duì)象之間消息發(fā)送的順序,同時(shí)顯示對(duì)象之間的交互

順序圖的一個(gè)用途是用來(lái)表示用例中的行為順序。當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每條消息對(duì)應(yīng)了一個(gè)類操作或引起狀態(tài)轉(zhuǎn)換的觸發(fā)事件

協(xié)作圖(CollaborationDiagram)協(xié)作圖描述對(duì)象間的協(xié)作關(guān)系,協(xié)作圖跟順序圖相似,顯示對(duì)象間的動(dòng)態(tài)合作關(guān)系。除顯示信息交換外,協(xié)作圖還顯示對(duì)象之間的關(guān)系。協(xié)作圖的一個(gè)用途是表示一個(gè)類操作的實(shí)現(xiàn)

順序圖清楚地表示了交互作用中的時(shí)間順序(強(qiáng)調(diào)時(shí)間),但沒(méi)有明確表示對(duì)象間的關(guān)系。協(xié)作圖清楚地表示了對(duì)象間的關(guān)系(強(qiáng)調(diào)空間),但時(shí)間順序必須從順序圖獲得。狀態(tài)圖(StateChartDiagram)狀態(tài)圖是一個(gè)類對(duì)象所可能經(jīng)歷的所有狀態(tài)的模型圖。狀態(tài)圖的主角是對(duì)象的狀態(tài),以及使?fàn)顟B(tài)發(fā)生變化的條件,通過(guò)狀態(tài)圖來(lái)驗(yàn)證對(duì)象是否存在設(shè)計(jì)缺陷?;顒?dòng)圖(ActivityDiagram)類似于傳統(tǒng)意義上的流程圖,描述一個(gè)功能的邏輯流程,擅長(zhǎng)于描述沒(méi)有外部事件參與情況下的程序運(yùn)行流程構(gòu)件圖(ComponentDiagram)構(gòu)件圖用于靜態(tài)建模,將系統(tǒng)劃分為單個(gè)可實(shí)施的子系統(tǒng)(構(gòu)件,模塊)。并通過(guò)對(duì)構(gòu)件間依賴關(guān)系的描述來(lái)估計(jì)對(duì)系統(tǒng)構(gòu)件的修改給系統(tǒng)可能帶來(lái)的影響。部署圖(DeploymentDiagram)部署圖用于靜態(tài)建模,是表示運(yùn)行時(shí)子系統(tǒng)的分布及相互依賴關(guān)系。如果含有依賴關(guān)系的子系統(tǒng)放置在不同節(jié)點(diǎn)上,部署視圖可以展示出執(zhí)行過(guò)程中的瓶頸。UML參考書籍UML參考書籍1.《用例驅(qū)動(dòng)UML對(duì)象建模應(yīng)用——范例分析》DougRosenberg、KendallScott著,人民郵電出版社,2005。2.《UML精粹——標(biāo)準(zhǔn)對(duì)象建模語(yǔ)言簡(jiǎn)明指南》(第3版)MartinFowler著,徐家福譯,清華大學(xué)出版社,2005。3.《UML對(duì)象、組件和框架——Catalysis方法》DesmondFrancisD’Souza、AlanCameronWills著,清華大學(xué)出版社,2004。4.《UML和模式應(yīng)用》(第2版)CraigLarman著,機(jī)械工業(yè)出版社,2004。5.《有效用例模式》SteveAdolph,PaulBramble著,車立紅譯,清華大學(xué)出版社,2003。6.《用例建?!?,KurtBittner著,姜昊譯,清華大學(xué)出版社,20037.《UML和統(tǒng)一過(guò)程實(shí)用面向?qū)ο蟮姆治龊驮O(shè)計(jì)》JimArlow,IlaNeustadt,機(jī)械工業(yè)出版社,2003。8.《UML風(fēng)格》ScottW.Ambler著,王少峰譯,清華大學(xué)出版社,2004。9.《UML用戶指南》GradyBooch,IvarJacobson著,邵維忠等譯,機(jī)械工業(yè)出版社,2001年6月。10.《UML參考手冊(cè)》IvarJacobson,JamesRumbaugh。姚淑蘭,唐發(fā)根譯。機(jī)械工業(yè)出版社,2001附錄UML建模工具1.2.3.4.2.3建?;顒?dòng)中的概念系統(tǒng)由一組可以進(jìn)行通信的構(gòu)件(子系統(tǒng))組成的有組織集合模型使用不同視角對(duì)系統(tǒng)進(jìn)行的抽象描述(各種UML圖)數(shù)據(jù)類型某類型數(shù)據(jù)的抽象表示(整形,浮點(diǎn))類對(duì)結(jié)構(gòu)與行為的一種封裝(子類,繼承,對(duì)象)事件系統(tǒng)中相關(guān)的事件(鼠標(biāo)點(diǎn)擊,按鈕按下)消息一種實(shí)現(xiàn)對(duì)象間異步通信的機(jī)制應(yīng)用域從用戶的角度理解系統(tǒng)解答域從開(kāi)發(fā)者的角度理解系統(tǒng)面向?qū)ο蠓治鲫P(guān)心的是應(yīng)用域建模面向?qū)ο笤O(shè)計(jì)關(guān)心的是解答域建模2.4UML的深入透視用例圖用例是從參與者看到的系統(tǒng)行為,描述了某事件發(fā)生時(shí)系統(tǒng)提供的功能包含參與者,系統(tǒng)邊界,用例參與者是與用例交互的外部實(shí)體,如人員用戶、管理員等,或其他系統(tǒng),如數(shù)據(jù)庫(kù),客戶端等用例可以由參與者啟動(dòng),也可由其他用例啟動(dòng)用例與參與者交換信息用例圖用例的文字描述用例名稱用戶登陸QQ(一般需要有動(dòng)詞描述)參與者QQ用戶,QQ驗(yàn)證服務(wù)器,QQ應(yīng)用服務(wù)器事件流(用例的交互序列,應(yīng)該被編號(hào))用戶填寫用戶名及密碼QQ客戶端通過(guò)加密將用戶名及密碼傳輸?shù)津?yàn)證服務(wù)器驗(yàn)證服務(wù)器驗(yàn)證成功并通知QQ客戶端QQ客戶端向QQ應(yīng)用服務(wù)器發(fā)起請(qǐng)求QQ應(yīng)用服務(wù)器返回用戶信息(包括好友,群等信息)。QQ客戶端顯示主界面入口條件用戶打開(kāi)QQ客戶端出口條件QQ客戶端顯示主界面其他需求(非功能性需求的體現(xiàn))登陸過(guò)程同步,可隨時(shí)取消,登陸超時(shí)設(shè)置為一分鐘。用例的通信關(guān)系參與者和用例存在數(shù)據(jù)交換時(shí),他們進(jìn)行通信,他們之間用線段連接用例的包含關(guān)系包含關(guān)系是從基本用例到包含用例的關(guān)系A(chǔ)用例包含B用例說(shuō)明A用例可以啟動(dòng)B用例,使用“use”,或者“include”表示如果A用例使用了其他用例,在其他需求中描述用例名稱與好友聊天參與者QQ用戶,QQ應(yīng)用服務(wù)器事件流………入口條件用戶已登錄QQ客戶端出口條件退出聊天界面其他需求在與好友聊天的過(guò)程中,啟動(dòng)用例傳輸聊天信息用例的擴(kuò)展關(guān)系擴(kuò)展關(guān)系是從擴(kuò)展用例到基本用例的關(guān)系A(chǔ)用例擴(kuò)展B用例說(shuō)明A用例在B用例的基礎(chǔ)上擴(kuò)展了功能。用例的繼承關(guān)系對(duì)某個(gè)用例增加更多的細(xì)節(jié),就可以被說(shuō)明成為新的用例,并且與原用例呈繼承關(guān)系包含是說(shuō)明該用例包含其他用例,作為其他用例的啟動(dòng)前提擴(kuò)展對(duì)基本用例的功能進(jìn)行擴(kuò)展繼承是對(duì)原用例細(xì)節(jié)的擴(kuò)展用例關(guān)系建模正確與否影響到后期對(duì)象模型與系統(tǒng)模型問(wèn)題查找好友用例和添加好友用例是什么關(guān)系?擴(kuò)展播放歌曲用例與將歌曲推薦給好友是什么關(guān)系?擴(kuò)展登陸用例和隱身登陸用例是什么關(guān)系繼承播放歌曲與啟動(dòng)系統(tǒng)自帶播放器用例是什么關(guān)系?包含如何驗(yàn)證用例場(chǎng)景-用例的實(shí)例,場(chǎng)景注重可理解性,用例注重完整性。一個(gè)用例可能有多個(gè)場(chǎng)景場(chǎng)景名稱查找好友參與者張三:QQ用戶,QQ應(yīng)用服務(wù)器事件流張三通過(guò)PC端QQ客戶端程序在聊天,忽然想起需要查找一個(gè)朋友

張三打開(kāi)QQ查找界面,發(fā)現(xiàn)里面有按昵稱查找和按號(hào)碼查找張三找到了上次聚會(huì)朋友所給的QQ號(hào)碼并輸入QQ客戶端顯示查找到的對(duì)方信息。問(wèn)題請(qǐng)描述一下解鎖你的手機(jī)的場(chǎng)景?類圖類圖以反映類的結(jié)構(gòu)(屬性、操作)以及類之間的關(guān)系為主要目的,描述了軟件系統(tǒng)的結(jié)構(gòu),是一種靜態(tài)建模方法類圖中的“類”與面向?qū)ο笳Z(yǔ)言中的“類”的概念是對(duì)應(yīng)的,是對(duì)現(xiàn)實(shí)世界中的事物的抽象類圖中的事物及解釋從上到下分為三部分,分別是類名、屬性和操作。類名是必須有的類如果有屬性,則每一個(gè)屬性都必須有一個(gè)名字,另外還可以有其它的描述信息,如可見(jiàn)性、數(shù)據(jù)類型、缺省值等類如果有操作,則每一個(gè)操作也都有一個(gè)名字,其它可選的信息包括可見(jiàn)性、參數(shù)的名字、參數(shù)類型、參數(shù)缺省值和操作的返回值的類型等可見(jiàn)性-代表private+代表public#代表protected也可以使用圖形表示返回值類型操作名稱斜體為抽象操作缺省值類名斜體為抽象類屬性名稱參數(shù)列表(標(biāo)準(zhǔn)圖形)(變體圖形)接口抽象類模版參數(shù)模版類類圖中的事物及解釋接口:一組操作的集合,只有操作的聲明而沒(méi)有實(shí)現(xiàn)抽象類:不能被實(shí)例化的類,一般至少包含一個(gè)抽象操作模版類:一種參數(shù)化的類,在編譯時(shí)把模版參數(shù)綁定到不同的數(shù)據(jù)類型,從而產(chǎn)生不同的類UML表示法類圖中的關(guān)系及解釋關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系是一種最簡(jiǎn)單、最抽象的對(duì)象間關(guān)系描述。它只是描述了對(duì)象A于對(duì)象B之間存在一種業(yè)務(wù)上、概念上的邏輯關(guān)系,但是關(guān)聯(lián)關(guān)系的雙方不包含對(duì)方的屬性。例如(學(xué)生-成績(jī))

一般的關(guān)聯(lián)關(guān)系語(yǔ)義較弱。也有兩種語(yǔ)義較強(qiáng),分別是聚合與組合UML表示法UML表示法聚合關(guān)系特殊關(guān)聯(lián)關(guān)系,指明一個(gè)聚集(整體)和組成部分之間的關(guān)系(例如汽車和車隊(duì))組合關(guān)系語(yǔ)義更強(qiáng)的聚合,部分和整體具有相同的生命周期(例如人和大腦)UML表示法UML表示法類Circle、Rectangle實(shí)現(xiàn)了接口Shape的操作泛化關(guān)系在面向?qū)ο笾幸话惴Q為繼承關(guān)系,存在于父類與子類、父接口與子接口之間實(shí)現(xiàn)關(guān)系對(duì)應(yīng)于類和接口之間的關(guān)系UML表示法模板類Stack<T>定義了棧相關(guān)的操作;IntStack將參數(shù)T與實(shí)際類型int綁定,使得所有操作都針對(duì)int類型的數(shù)據(jù)類Memento和類Originator建立了友元依賴關(guān)系,以便Originator使用Memento的私有變量state依賴關(guān)系描述了一個(gè)類的變化對(duì)依賴于它的類產(chǎn)生影響的情況。有多種表現(xiàn)形式,例如綁定(bind)、友元(friend)等C++代碼classVehicle{public:

virtualintStart()=0;

virtualintStop()=0;

virtualintRun(floatfSpeed)=0;private:

floatfMaxSpeed;};Java代碼publicabstractclassVehicle{

publicabstractintStart();

public

abstractintStop();

public

abstractintRun(floatfSpeed);

privatefloatfMaxSpeed;}類圖與代碼的映射C++代碼classDialog{private:ButtonbtnOK;ButtonbtnCancel;TextBoxtxtInfo;};classButton{};classTextBox{};組合關(guān)系,代碼表現(xiàn)為Dialog的屬性有Button和TextBox的對(duì)象如果Dialog銷毀,Button和TextBox對(duì)象也需要銷毀關(guān)聯(lián)關(guān)系的映射-組合關(guān)系

聚合關(guān)系,代碼表現(xiàn)為B類含有A對(duì)象的引用,如classB{A*a;};classA{inti;};B類對(duì)象銷毀,A類對(duì)象不一定銷毀關(guān)聯(lián)關(guān)系的映射-聚合關(guān)系Java代碼publicclassSavingsAccountextendsAccount{………}C++代碼classSavingsAccount:publicAccount{……};泛化(繼承)關(guān)系的映射C++代碼classShape{public:virtualvoid

Draw()=0;};classCircle:publicShape{public:void

Draw();private;

PointptCenter;

intnRadius;};Java代碼publicinterfaceShape{publicabstract

voidDraw();}publicclassCircleimplementsShape{publicvoid

Draw();privatePointptCenter;privateintnRadius;}在C++語(yǔ)言里面,使用抽象類代替接口,使用泛化關(guān)系代替實(shí)現(xiàn)關(guān)系在Java語(yǔ)言里面,有相應(yīng)的關(guān)鍵字interface、implements實(shí)現(xiàn)關(guān)系的映射綁定依賴C++代碼template<typenameT>classStack{private:intsize;public:intPush(Telem);intPop();constT&GetTop();};typedefStack<float>FloatStack;C++代碼(編譯器生成)classFloatStack{private:intsize;public:intPush(floatelem);intPop();constfloat&GetTop

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論