版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二章使用UML進行建模2.1導言UML統(tǒng)一建模語言是適用于所有面向對象方法學的標準記號系統(tǒng),可以用于建立系統(tǒng)開發(fā)中的多種模型功能模型 --- 用例圖對象模型 --- 類圖,對象圖動態(tài)模型 --- 交互圖(順序圖)、狀態(tài)圖、
活動圖、協(xié)作圖其他 --- 構件圖、部署圖UML可視化建模UML可視化建模2.2UML綜述用例圖(
UseCaseDiagram)用例圖是從用戶角度描述系統(tǒng)功能,是用戶所能觀察到的系統(tǒng)功能的模型圖,用例是系統(tǒng)中的一個功能單元包括參與者、系統(tǒng)邊界、用例本身類圖(ClassDiagram)類圖描述系統(tǒng)中類的靜態(tài)結構。不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系如關聯(lián)、依賴、聚合等,也包括類的內部結構(類的屬性和操作)對象圖(ObjectDiagram)
對象圖是類圖的實例,幾乎使用與類圖完全相同的標識。他們的不同點在于對象圖顯示類的多個對象實例,而不是實際的類順序圖(SequenceDiagram)順序圖顯示對象之間的動態(tài)合作關系,它強調對象之間消息發(fā)送的順序,同時顯示對象之間的交互
順序圖的一個用途是用來表示用例中的行為順序。當執(zhí)行一個用例行為時,順序圖中的每條消息對應了一個類操作或引起狀態(tài)轉換的觸發(fā)事件
協(xié)作圖(CollaborationDiagram)協(xié)作圖描述對象間的協(xié)作關系,協(xié)作圖跟順序圖相似,顯示對象間的動態(tài)合作關系。除顯示信息交換外,協(xié)作圖還顯示對象之間的關系。協(xié)作圖的一個用途是表示一個類操作的實現(xiàn)
順序圖清楚地表示了交互作用中的時間順序(強調時間),但沒有明確表示對象間的關系。協(xié)作圖清楚地表示了對象間的關系(強調空間),但時間順序必須從順序圖獲得。狀態(tài)圖(StateChartDiagram)狀態(tài)圖是一個類對象所可能經歷的所有狀態(tài)的模型圖。狀態(tài)圖的主角是對象的狀態(tài),以及使狀態(tài)發(fā)生變化的條件,通過狀態(tài)圖來驗證對象是否存在設計缺陷。活動圖(ActivityDiagram)類似于傳統(tǒng)意義上的流程圖,描述一個功能的邏輯流程,擅長于描述沒有外部事件參與情況下的程序運行流程構件圖(ComponentDiagram)構件圖用于靜態(tài)建模,將系統(tǒng)劃分為單個可實施的子系統(tǒng)(構件,模塊)。并通過對構件間依賴關系的描述來估計對系統(tǒng)構件的修改給系統(tǒng)可能帶來的影響。部署圖(DeploymentDiagram)部署圖用于靜態(tài)建模,是表示運行時子系統(tǒng)的分布及相互依賴關系。如果含有依賴關系的子系統(tǒng)放置在不同節(jié)點上,部署視圖可以展示出執(zhí)行過程中的瓶頸。UML參考書籍UML參考書籍1.《用例驅動UML對象建模應用——范例分析》DougRosenberg、KendallScott著,人民郵電出版社,2005。2.《UML精粹——標準對象建模語言簡明指南》(第3版)MartinFowler著,徐家福譯,清華大學出版社,2005。3.《UML對象、組件和框架——Catalysis方法》DesmondFrancisD’Souza、AlanCameronWills著,清華大學出版社,2004。4.《UML和模式應用》(第2版)CraigLarman著,機械工業(yè)出版社,2004。5.《有效用例模式》SteveAdolph,PaulBramble著,車立紅譯,清華大學出版社,2003。6.《用例建?!?,KurtBittner著,姜昊譯,清華大學出版社,20037.《UML和統(tǒng)一過程實用面向對象的分析和設計》JimArlow,IlaNeustadt,機械工業(yè)出版社,2003。8.《UML風格》ScottW.Ambler著,王少峰譯,清華大學出版社,2004。9.《UML用戶指南》GradyBooch,IvarJacobson著,邵維忠等譯,機械工業(yè)出版社,2001年6月。10.《UML參考手冊》IvarJacobson,JamesRumbaugh。姚淑蘭,唐發(fā)根譯。機械工業(yè)出版社,2001附錄UML建模工具1.2.3.4.2.3建?;顒又械母拍钕到y(tǒng)由一組可以進行通信的構件(子系統(tǒng))組成的有組織集合模型使用不同視角對系統(tǒng)進行的抽象描述(各種UML圖)數(shù)據(jù)類型某類型數(shù)據(jù)的抽象表示(整形,浮點)類對結構與行為的一種封裝(子類,繼承,對象)事件系統(tǒng)中相關的事件(鼠標點擊,按鈕按下)消息一種實現(xiàn)對象間異步通信的機制應用域從用戶的角度理解系統(tǒng)解答域從開發(fā)者的角度理解系統(tǒng)面向對象分析關心的是應用域建模面向對象設計關心的是解答域建模2.4UML的深入透視用例圖用例是從參與者看到的系統(tǒng)行為,描述了某事件發(fā)生時系統(tǒng)提供的功能包含參與者,系統(tǒng)邊界,用例參與者是與用例交互的外部實體,如人員用戶、管理員等,或其他系統(tǒng),如數(shù)據(jù)庫,客戶端等用例可以由參與者啟動,也可由其他用例啟動用例與參與者交換信息用例圖用例的文字描述用例名稱用戶登陸QQ(一般需要有動詞描述)參與者QQ用戶,QQ驗證服務器,QQ應用服務器事件流(用例的交互序列,應該被編號)用戶填寫用戶名及密碼QQ客戶端通過加密將用戶名及密碼傳輸?shù)津炞C服務器驗證服務器驗證成功并通知QQ客戶端QQ客戶端向QQ應用服務器發(fā)起請求QQ應用服務器返回用戶信息(包括好友,群等信息)。QQ客戶端顯示主界面入口條件用戶打開QQ客戶端出口條件QQ客戶端顯示主界面其他需求(非功能性需求的體現(xiàn))登陸過程同步,可隨時取消,登陸超時設置為一分鐘。用例的通信關系參與者和用例存在數(shù)據(jù)交換時,他們進行通信,他們之間用線段連接用例的包含關系包含關系是從基本用例到包含用例的關系A用例包含B用例說明A用例可以啟動B用例,使用“use”,或者“include”表示如果A用例使用了其他用例,在其他需求中描述用例名稱與好友聊天參與者QQ用戶,QQ應用服務器事件流………入口條件用戶已登錄QQ客戶端出口條件退出聊天界面其他需求在與好友聊天的過程中,啟動用例傳輸聊天信息用例的擴展關系擴展關系是從擴展用例到基本用例的關系A用例擴展B用例說明A用例在B用例的基礎上擴展了功能。用例的繼承關系對某個用例增加更多的細節(jié),就可以被說明成為新的用例,并且與原用例呈繼承關系包含是說明該用例包含其他用例,作為其他用例的啟動前提擴展對基本用例的功能進行擴展繼承是對原用例細節(jié)的擴展用例關系建模正確與否影響到后期對象模型與系統(tǒng)模型問題查找好友用例和添加好友用例是什么關系?擴展播放歌曲用例與將歌曲推薦給好友是什么關系?擴展登陸用例和隱身登陸用例是什么關系繼承播放歌曲與啟動系統(tǒng)自帶播放器用例是什么關系?包含如何驗證用例場景-用例的實例,場景注重可理解性,用例注重完整性。一個用例可能有多個場景場景名稱查找好友參與者張三:QQ用戶,QQ應用服務器事件流張三通過PC端QQ客戶端程序在聊天,忽然想起需要查找一個朋友
張三打開QQ查找界面,發(fā)現(xiàn)里面有按昵稱查找和按號碼查找張三找到了上次聚會朋友所給的QQ號碼并輸入QQ客戶端顯示查找到的對方信息。問題請描述一下解鎖你的手機的場景?類圖類圖以反映類的結構(屬性、操作)以及類之間的關系為主要目的,描述了軟件系統(tǒng)的結構,是一種靜態(tài)建模方法類圖中的“類”與面向對象語言中的“類”的概念是對應的,是對現(xiàn)實世界中的事物的抽象類圖中的事物及解釋從上到下分為三部分,分別是類名、屬性和操作。類名是必須有的類如果有屬性,則每一個屬性都必須有一個名字,另外還可以有其它的描述信息,如可見性、數(shù)據(jù)類型、缺省值等類如果有操作,則每一個操作也都有一個名字,其它可選的信息包括可見性、參數(shù)的名字、參數(shù)類型、參數(shù)缺省值和操作的返回值的類型等可見性-代表private+代表public#代表protected也可以使用圖形表示返回值類型操作名稱斜體為抽象操作缺省值類名斜體為抽象類屬性名稱參數(shù)列表(標準圖形)(變體圖形)接口抽象類模版參數(shù)模版類類圖中的事物及解釋接口:一組操作的集合,只有操作的聲明而沒有實現(xiàn)抽象類:不能被實例化的類,一般至少包含一個抽象操作模版類:一種參數(shù)化的類,在編譯時把模版參數(shù)綁定到不同的數(shù)據(jù)類型,從而產生不同的類UML表示法類圖中的關系及解釋關聯(lián)關系關聯(lián)關系是一種最簡單、最抽象的對象間關系描述。它只是描述了對象A于對象B之間存在一種業(yè)務上、概念上的邏輯關系,但是關聯(lián)關系的雙方不包含對方的屬性。例如(學生-成績)
一般的關聯(lián)關系語義較弱。也有兩種語義較強,分別是聚合與組合UML表示法UML表示法聚合關系特殊關聯(lián)關系,指明一個聚集(整體)和組成部分之間的關系(例如汽車和車隊)組合關系語義更強的聚合,部分和整體具有相同的生命周期(例如人和大腦)UML表示法UML表示法類Circle、Rectangle實現(xiàn)了接口Shape的操作泛化關系在面向對象中一般稱為繼承關系,存在于父類與子類、父接口與子接口之間實現(xiàn)關系對應于類和接口之間的關系UML表示法模板類Stack<T>定義了棧相關的操作;IntStack將參數(shù)T與實際類型int綁定,使得所有操作都針對int類型的數(shù)據(jù)類Memento和類Originator建立了友元依賴關系,以便Originator使用Memento的私有變量state依賴關系描述了一個類的變化對依賴于它的類產生影響的情況。有多種表現(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{};組合關系,代碼表現(xiàn)為Dialog的屬性有Button和TextBox的對象如果Dialog銷毀,Button和TextBox對象也需要銷毀關聯(lián)關系的映射-組合關系
聚合關系,代碼表現(xiàn)為B類含有A對象的引用,如classB{A*a;};classA{inti;};B類對象銷毀,A類對象不一定銷毀關聯(lián)關系的映射-聚合關系Java代碼publicclassSavingsAccountextendsAccount{………}C++代碼classSavingsAccount:publicAccount{……};泛化(繼承)關系的映射C++代碼classShape{public:virtualvoid
Draw()=0;};classCircle:publicShape{public:void
Draw();private;
PointptCenter;
intnRadius;};Java代碼publicinterfaceShape{publicabstract
voidDraw();}publicclassCircleimplementsShape{publicvoid
Draw();privatePointptCenter;privateintnRadius;}在C++語言里面,使用抽象類代替接口,使用泛化關系代替實現(xiàn)關系在Java語言里面,有相應的關鍵字interface、implements實現(xià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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 洪水應急管理培訓課件
- 2024-2025學年陜西省西安市部分學校聯(lián)考高一上學期第四次階段性檢測歷史試題(解析版)
- 2024-2025學年山東省煙臺市高一下學期期中考試歷史試題(解析版)
- 2024-2025學年江蘇省連云港市贛榆區(qū)高一下學期期末考試歷史試題(解析版)
- 2026年生理學深度學習人體生理系統(tǒng)與功能全面試題庫
- 2026年市場營銷策略分析題庫與答案
- 2026年物流管理倉儲與配送優(yōu)化題集
- 2026年軟件開發(fā)崗面試題集專業(yè)技能與經驗測試
- 2026年機械工程師設計原理與制造工藝題目集
- 2026年職場技能測試有效溝通與團隊合作策略
- 書店智慧空間建設方案
- 2026年中考英語復習專題課件:謂語動詞的時態(tài)和被動語態(tài)
- 糧食行業(yè)競爭對手分析報告
- 2025年危險品運輸企業(yè)重大事故隱患自查自糾清單表
- 2025至2030汽車傳感器清洗系統(tǒng)行業(yè)調研及市場前景預測評估報告
- 兒科MDT臨床技能情景模擬培訓體系
- 無菌技術及手衛(wèi)生
- GB/Z 104-2025金融服務中基于互聯(lián)網服務的應用程序編程接口技術規(guī)范
- (人教版)必修第一冊高一物理上學期期末復習訓練 專題02 連接體、傳送帶、板塊問題(原卷版)
- 門窗工程掛靠協(xié)議書
- 供應鏈韌性概念及其提升策略研究
評論
0/150
提交評論