




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第7章面向對象軟件工程及UML面向對象軟件工程UML的基本模型UML的事物UML的關系UML的圖使用和擴展UML面向對象方法的優(yōu)點?
需求的錯誤-
不完整、不一致、不明確-
開發(fā)人員和用戶無法以同樣的方式說明需求?需求的變化-
需求在整個項目過程中始終發(fā)生變化-
設計后期發(fā)生改變?持續(xù)的變化-系統(tǒng)功能不斷變化-
許多變化出現(xiàn)在項目后期-
維護過程中發(fā)生許多變化-
系統(tǒng)在不斷的變化中最終變得不可用3?系統(tǒng)結構的崩潰面向對象方法的優(yōu)點?
面向對象模型更接近于問題域-以問題域中的對象為基礎建模-
以對象、屬性和操作對問題進行建模-
努力避免在開發(fā)過程中出現(xiàn)大的概念跳變
?將模型組織成對象的集合-
真實世界中的具體事物
?
駕駛執(zhí)照、信用卡、飛機等-
邏輯概念
?
操作系統(tǒng)中的分時策略、軍事訓練中的沖突解決規(guī)則等5?反復細化高層模型直到可以實現(xiàn)的程度面向對象方法的優(yōu)點面向對象分析概述面向對象分析的3個模型用例模型:用例和場景表示的功能模型;對象模型:用類和對象表示的靜態(tài)模型;交互模型:由狀態(tài)圖和順序圖表示的動態(tài)模型。UML介紹 1997年11月,國際對象管理組織OMG批準把UML1.1作為基于面向對象技術的標準建模語言。
UML是97年軟件工程領域,最重要的成果之一,是面對象技術領域內(nèi)占主導地位的標準建模語言,UML不僅統(tǒng)一了Booch、OMT、OOSE的表示方法并對其作了進一步的發(fā)展,最終統(tǒng)一為大眾所接受的標準建模語言。什么是UML??
統(tǒng)一建模語言是一種直觀化、明確化、構建和文檔化軟件系統(tǒng)產(chǎn)物的通用可視化建模語言。?
UML是一種建模語言而不是一種編程語言。它用于建立系統(tǒng)的分析模型和設計模型,而不是用于編程。用UML建立的系統(tǒng)模型不是可執(zhí)行的程序,但是通過適當?shù)能浖ぞ撸涯P偷囊徊糠终Z義轉換為可執(zhí)行程序是可行的。?
UML只是一種面向對象建摸語言,而不是一種面向對象建模方法.因為它只定義建立面向對象系統(tǒng)模型所需的概念(建模元素)
可視化表示法.但它并不介紹如何進行系統(tǒng)建摸.UML符號為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語法為系統(tǒng)建模提供了標準。這些圖形符號和文字所表達的是應用級的模型,在語義上它是UML元模型的實例。UML模型由事物、關系和圖組成RationalRose是最常用的UML建模工具
7.1UML的基本模型7.1UML的基本模型7.1RationalRose7.2UML的事物事物是對模型中最具代表性成分的抽象,在UML中,可以分為結構事物、行為事物、分組事物和注釋事物4類。事物組成各類UML圖,形成UML模型結構事物結構事物是UML模型的靜態(tài)部分,主要用來描述概念的或物理的元素,包括類、主動類、接口、對象、用例、參與者、協(xié)作、構件和節(jié)點等。(1)類(class)──類用帶有類名、屬性和操作的矩形框來表示。UML用例圖、類圖、協(xié)作圖等都會用到這些事物結構事物(2)主動類(activeclass)──主動類的實例應具有一個或多個進程或線程,能夠啟動控制活動。(3)接口(interface)──描述了一個類或構件的一組外部可用的服務(操作)集。接口定義的是一組操作的描述,而不是操作的實現(xiàn)。一般將接口畫成從實現(xiàn)它的類或構件引出的圓圈,接口體現(xiàn)了使用與實現(xiàn)分離的原則。結構事物結構事物(4)對象(object)──對象是類的實例,其名字下邊加下劃線,對象的屬性值需明確給出。(5)用例(usecase)──也稱用況,用于表示系統(tǒng)想要實現(xiàn)的行為,即描述一組動作序列(即場景)。而系統(tǒng)執(zhí)行這組動作后將產(chǎn)生一個對特定參與者有價值的結果。結構事物(6)參與者(actor)──也稱角色,是指與系統(tǒng)有信息交互關系的人、軟件系統(tǒng)或硬件設備,在圖形上用簡化的小木頭人表示。(7)協(xié)作(collaboration)──用例僅描述要實現(xiàn)的行為,不描述這些行為的實現(xiàn)。這種實現(xiàn)用協(xié)作描述。協(xié)作定義交互,描述一組角色實體和其他實體如何通過協(xié)同工作來完成一個功能或行為。類可以參與幾個協(xié)作。結構事物(8)構件(component)──也稱組件,是系統(tǒng)中物理的、可替代的部件。它通常是描述一些邏輯元素的物理包。(9)節(jié)點(node)──是在運行時存在的物理元素。它代表一種可計算的資源,通常具有一定的記憶能力和處理能力。行為事物行為事物是UML模型的動態(tài)部分,包括兩類:(1)交互(interaction)──交互由在特定的上下文環(huán)境中共同完成一定任務的一組對象之間傳遞的消息組成。如圖所示。交互涉及的元素包括消息、動作序列(由一個消息所引起的行為)和鏈(對象間的連接)。對象之間的交互描述結構事物之間的行為行為事物(2)狀態(tài)機(statemachine)──描述了一個對象或一個交互在生存周期內(nèi)響應事件所經(jīng)歷的狀態(tài)序列,單個類或者一組類之間協(xié)作的行為都可以用狀態(tài)機來描述。狀態(tài)機涉及到狀態(tài)、變遷和活動,其中狀態(tài)用圓角矩形來表示。
分組事物分組事物是UML模型的組織部分。它的作用是為了降低模型復雜性。UML中的分組事物是包(package)。包是把模型元素組織成組的機制,結構事物、行為事物甚至其他分組事物都可以放進包內(nèi)。將各類事物分組注釋事物注釋事物是UML模型的解釋部分,它們用來描述和標注模型的任何元素。通??梢杂米⑨屝揎棊в屑s束或者解釋的圖。為UML模型進行注釋7.3UML的關系描述事物之間的聯(lián)系、行為、消息是由語義/需求決定的依賴依賴(Dependency)是兩個事物之間的語義關系,其中一個事物發(fā)生變化會影響到另一個事物的語義,它用一個虛線箭頭表示。虛線箭頭的方向從源事物指向目標事物,表示源事物依賴于目標事物。依賴關系依賴依賴關系的細化(通過關鍵字修飾)依賴依賴關系的細化(通過關鍵字修飾)關聯(lián)關聯(lián)(association)是一種結構關系,它描述了兩個或多個類的實例之間的連接關系,是一種特殊的依賴。關聯(lián)分為普通關聯(lián)、限定關聯(lián)、關聯(lián)類,以及聚合與復合。用于表示,兩個類之間存在關系關聯(lián)——普通關聯(lián)普通關聯(lián)是最常見的關聯(lián)關系,只要類與類之間存在連接關系就可以用普通關聯(lián)表示。普通關聯(lián)又分為二元關聯(lián)和多元關聯(lián)。二元關聯(lián)描述兩個類之間的關聯(lián),用兩個類之間的一條直線來表示,直線上可寫上關聯(lián)名。
關聯(lián)——關聯(lián)類在關聯(lián)關系比較簡單的情況下,關聯(lián)關系的語義用關聯(lián)關系的名字來概括。但在某些情況下,需要對關聯(lián)關系的語義做詳細的定義、存儲和訪問,為此可以建立關聯(lián)類(associationclass),用來描述關聯(lián)的屬性。關聯(lián)中的每個鏈與關聯(lián)類的一個實例相聯(lián)系。關聯(lián)類通過一條虛線與關聯(lián)連接。
聚合聚合(Aggregation)也稱為聚集,是一種特殊的關聯(lián)。它描述了整體和部分之間的結構關系。比關聯(lián)表示的關系更加緊密。聚合一般是指共享聚合(sharedaggregation)部分方不依賴于整體方而存在,或者說部分方可參與多個整體方。復合復合,又稱之為“組合”“復合聚合”。部分方組成整體方,但同時部分類完全隸屬于整體類。一旦整體類不存在了,則部分類也會隨之消失,或失去存在價值。泛化泛化(generalization)關系就是一般類和特殊類之間的繼承關系。在UML中,一般類亦稱泛化類,特殊類亦稱特化類。泛化針對類型而不針對實例,因為一個類可以繼承另一個類,但一個對象不能繼承另一個對象。一般類/泛化類/抽象類實現(xiàn)實現(xiàn)(implement)是泛化關系和依賴關系的結合,也是類之間的語義關系,通常在以下兩種情況出現(xiàn)實現(xiàn)關系:(1)接口和實現(xiàn)它們的類或構件之間;(2)用例和實現(xiàn)它們的協(xié)作之間。7.4UML的圖UML規(guī)范定義了6種類型的圖:用例圖類圖交互圖狀態(tài)圖活動圖實現(xiàn)圖1.用例模型用例模型描述的是外部執(zhí)行者(actor)所理解的系統(tǒng)功能。用例模型用于需求分析階段,它的建立是系統(tǒng)開發(fā)者和用戶反復討論的結果,描述了開發(fā)者和用戶對需求規(guī)格達成的共識。用例圖顯示誰是相關的用戶,用戶希望系統(tǒng)提供什么服務(用例),以及用例之間的關系。用例圖主要的作用是獲取需求、指導測試。用例圖1.用例模型
在UML中,一個用例模型由若干個用例圖來描述,用例圖的主要元素是用例和執(zhí)行者。用例圖是包括執(zhí)行者、由系統(tǒng)邊界(一個矩形)封閉的一組用例。執(zhí)行者和用例之間的關聯(lián)、用例間關系以及執(zhí)行者的泛化的圖。用例圖用例圖用例圖的建模元素XXX系統(tǒng)參與者用例關系2.用例之間的關系
用例之間可以有泛化(generalization)、擴展(extend)和包含(include)三種關系。擴展和使用是繼承關系(即泛化關系)的兩種不同形式。組合則是把相關的用例打成包,當作一個整體看待。用例圖(1)
擴展關系(extend)向一個用例中加入一些新的動作后構成了另一個用例,這兩個用例之間的關系就是擴展關系。基用例中將存在一個擴展點,只有當擴展點被激活時,子用例才會被執(zhí)行。(2)包含(include)當兩個或多個用例中共用一組相同的動作,這時可以將這組相同的動作抽出來作為一個獨立的子用例,供多個基用例所共享。基用例并非一個完整的用例,所以include關系中的基用例必須和子用例一起使用才夠完整,子用例也必然被執(zhí)行。用例圖(3)
泛化(generalization)泛化關系是一種繼承關系,子用例將繼承基用例的所有行為,關系和通信關系,也就是說在任何使用基用例的地方都可以用子用例來代替。泛化關系在用例圖中使用空心的箭頭表示,箭頭方向從子用例指向基用例。用例圖銀行儲蓄系統(tǒng)的用例圖銀行存儲系統(tǒng)
類圖類圖描述類、類與類之間的靜態(tài)關系,它是從靜態(tài)角度表示系統(tǒng)的,因此類圖屬于一種靜態(tài)模型。類圖是構建其他圖的基礎,沒有類圖就沒有狀態(tài)圖、協(xié)作圖等其他圖,也就無法表示系統(tǒng)其他方面的特性。類圖顯示了類(及其接口)、類的內(nèi)部結構以及與其他類的聯(lián)系。聯(lián)系是指類元之間的聯(lián)系,在類的建模中可以使用關聯(lián)、聚合、復合(組合)和泛化關系。銀行儲蓄系統(tǒng)的核心類圖泛化關聯(lián)教學管理系統(tǒng)的類圖關聯(lián)泛化聚合聚合當一個類完全依據(jù)另一個類而存在時則為復合關系關聯(lián)類關聯(lián)類是指表示其他類之間關聯(lián)關系的類。當一個關聯(lián)具有自己的屬性并需要存儲它們時,就需要用關聯(lián)類建模。關聯(lián)類用虛線連接在兩個類之間的聯(lián)系上。交互圖UML中有兩種類型的交互圖:順序圖和協(xié)作圖。順序圖描述對象之間的動態(tài)交互關系,著重表現(xiàn)對象間消息傳遞的時間順序。順序圖中的符號如下:
消息的類型交互圖UML定義了三種消息:簡單消息:表示簡單的控制流,它只是表示控制從一個對象傳給另一個對象,而沒有描述通信的任何細節(jié)。同步消息:表示嵌套的控制流,操作的調(diào)用是一種典型的同步消息。調(diào)用者發(fā)出消息后必須等待消息返回,只有當處理消息的操作執(zhí)行完畢后,調(diào)用者才可以繼續(xù)執(zhí)行自己的操作。異步消息:表示異步控制流,發(fā)送者發(fā)出消息后不用等待消息處理完就可以繼續(xù)執(zhí)行自己的操作。異步消息主要用于描述實時系統(tǒng)中的并發(fā)行為。取款用例的順序圖協(xié)作圖協(xié)作圖是順序圖的一種變化形式,用于描述相互協(xié)作的對象間的交互關系和鏈接關系。
狀態(tài)圖描述一個特定對象的所有可能的狀態(tài)以及引起狀態(tài)轉換的事件。大多數(shù)面向對象技術都用狀態(tài)圖表示單個對象在其生命期中的行為。一個狀態(tài)圖包括一系列狀態(tài)、事件以及狀態(tài)之間的轉移。1.狀態(tài)所有對象都具有狀態(tài),狀態(tài)是對象執(zhí)行了一系列活動的結果。當某個事件發(fā)生后,對象的狀態(tài)將發(fā)生變化。在狀態(tài)圖中定義的狀態(tài)可能有:初態(tài)(初始狀態(tài))、終態(tài)(最終狀態(tài))、中間狀態(tài)和復合狀態(tài)。在一張狀態(tài)圖中只能有一個初態(tài),而終態(tài)則可以有多個。狀態(tài)圖支票對象的狀態(tài)圖電話對象的狀態(tài)圖狀態(tài)圖中間狀態(tài)用圓角矩形表示,可能包含三個部分,第一部分為狀態(tài)的名稱;第二部分為狀態(tài)變量的名字和值,這部分是可選的;第三部分是活動表,這部分也是可選的。中間狀態(tài)狀態(tài)圖電梯的狀態(tài)圖(本狀態(tài)圖沒有終點)狀態(tài)圖例:帶有事件說明的狀態(tài)轉換的例子在上樓及下樓事件中增加參數(shù)floor.帶有事件說明的狀態(tài)轉換狀態(tài)圖在“空閑”狀態(tài),將屬性timer的值置0,然后連續(xù)遞增timer的值,直到“上樓”或“下樓”事件發(fā)生,或守衛(wèi)條件“timer=超時值”。加上屬性的狀態(tài)轉換狀態(tài)圖活動圖用來捕捉用例的活動,使用框圖的方式顯示動作及其結果。活動圖是一個流圖,描述了從活動到活動的流。它是另一種描述交互的方式,它描述采取何種動作,動作的結果是什么(動作狀態(tài)改變),何時發(fā)生(動作序列),以及在何處發(fā)生(泳道)?;顒訄D活動圖中的符號取款用例的活動圖構件圖描述軟件構件及構件之間的依賴關系,顯示代碼的靜態(tài)結構。構件是邏輯架構中定義的概念和功能(例如,類、對象及它們之間的關系)在物理架構中的實現(xiàn)。典型情況下,構件是開發(fā)環(huán)境中的實現(xiàn)文件。構件圖軟件構件可以是下述的任何一種構件。源構件:源構件僅在編譯時才有意義。典型情況下,它是實現(xiàn)一個或多個類的源代碼文件。二進制構件:典型情況下,二進制構件是對象代碼,它是源構件的編譯結果??蓤?zhí)行構件:可執(zhí)行構件是一個可執(zhí)行的程序文件,它是鏈接所有二進制構件所得到的結果。一個可執(zhí)行構件代表在處理器(計算機)上運行的可執(zhí)行單元。構件圖畫圖系統(tǒng)的構件圖構件圖銀行儲蓄系統(tǒng)的構件圖構件圖部署圖描述處理器、設備和連接,它顯示系統(tǒng)硬件的物理拓撲結構及在此結構上執(zhí)行的軟件。部署圖可以顯示計算節(jié)點的拓撲結構和通信路徑、節(jié)點上運行的軟件以及軟件包含的邏輯單元。
部署圖典型的部署圖7.5使用和擴展UML使用UML的準則1.不要試圖使用所有的圖形和符號應該根據(jù)項目的特點,選用最適用的圖形和符號。一般來說,應該優(yōu)先選用簡單的圖形和符號,例如,用例、類、關聯(lián)、屬性和繼承等概念是最常用的。2.不要為每個事物都畫一個模型應該把精力集中于關鍵的領域。最好只畫幾張關鍵的圖,經(jīng)常使用并不斷更新、修改這幾張圖。7.5使用和擴展UML3.應該分層次地畫模型圖根據(jù)項目進展的不同階段,用正確的觀點畫模型圖。如果處于分析階段,應該畫概念層模型圖;當開始著手進行軟件設計時,應該畫設計層模型圖;當考察某個特定的實現(xiàn)方案時,則應畫實現(xiàn)層模型圖。使用UML的最大危險是過早地陷入實現(xiàn)細節(jié)。為了避免這一危險,應該把重點放在概念層和說明層。4.模型應該具有協(xié)調(diào)性模型必須在每個抽象層次內(nèi)和不同的抽象層次之間協(xié)調(diào)。7.5使用和擴展UML5.模型和模型元
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人家服務合同范本
- 中班社會領域活動方案
- 房屋雙方買賣合同
- 車輛掛靠經(jīng)營協(xié)議書
- 交通物流配送優(yōu)化方案
- 班車租賃合同集錦
- 智能制造模具研發(fā)投資合同
- 工程機械施工協(xié)議書
- 新能源材料研發(fā)投資合同
- Unit 3 Amazing animals第4課時(教學設計)-2024-2025學年人教PEP版(2024)英語三年級上冊
- 中學校園安保服務投標方案
- 義務教育“雙減”作業(yè)設計初中生物作業(yè)設計案例共三篇
- 2024-2030年中國車載冰箱行業(yè)市場發(fā)展調(diào)研及投資戰(zhàn)略分析報告
- 數(shù)字全息顯微成像的理論和實驗研究
- 科技引領全景式景區(qū)
- 單個軍人隊列動作教學法教案全(新條令)
- 職業(yè)素養(yǎng)提升第2版(大學生職業(yè)素養(yǎng)指導課程)全套教學課件
- 第16講 電氣絕緣節(jié)工作原理講解
- 《行政倫理學教程(第四版)》課件 第3、4章?行政理性與行政價值、行政倫理規(guī)范
- (正式版)SHT 3046-2024 石油化工立式圓筒形鋼制焊接儲罐設計規(guī)范
- 2024-2029年中國電力工程監(jiān)理行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
評論
0/150
提交評論