




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
統(tǒng)一建模語言第1頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)11.1UML簡介1UML的產(chǎn)生和成長
UML發(fā)展歷史大致可以概括為四個階段:第一階段:面向?qū)ο蟮姆椒▽W(xué)家聯(lián)合行動。1994年10月,GradyBooch和JimRumbaugh開始致力于這一工作。第二階段:公司的聯(lián)合行動。1996年,UML的開發(fā)者得到了來自公眾的正面反應(yīng),并倡議成立了UML成員協(xié)會,以完善、加強和促進UML的定義工作。第三階段:在OMG組織、控制下對UML規(guī)范進行的修訂和改進,產(chǎn)生了UML1.2、1.3、1.4、1.5等版本。第四階段:目前所處階段。目前所處階段是本世紀開始以來的重大修訂,推出了全新的版本2.0。第2頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)2UML的定義及目標
UML是一種標準的圖形化建模語言,它是面向?qū)ο蠓治雠c設(shè)計的一種標準表示。
1、它是一種可視化的建模語言。
2、它是一種建模語言規(guī)格說明,是一種表示的標準。
3、不是過程也不是方法,但允許任何一種過程和方法使用它UML主要作者提出的目標是:提供給用戶一個易于使用和表達的可視化的建模語言,使他們能夠開發(fā)和交流有意義的模型。獨立于任何開發(fā)語言。獨立于任何開發(fā)過程。簡單并且可擴展,具有擴展和專有化機制,便于擴展,無需對核心概念進行修改。提供了解建模語言的一個基本手段。支持面向?qū)ο蟮脑O(shè)計與開發(fā)中涌現(xiàn)出的高級概念,例如協(xié)作、框架、模式和構(gòu)件,強調(diào)在軟件開發(fā)中對架構(gòu)、框架、模式和構(gòu)件的重用。最佳的軟件工程實踐經(jīng)驗的集成。有利于面向?qū)ο蠊ぞ叩氖袌龀砷L。第3頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)3UML的應(yīng)用領(lǐng)域
1.在不同類型系統(tǒng)中的應(yīng)用UML常見的應(yīng)用有:信息系統(tǒng)(InformationSystem);技術(shù)系統(tǒng)(TechnicalSystem);嵌入式實時系統(tǒng)(EmbeddedReal-TimeSystem);分布式系統(tǒng)(DistributedSystem);系統(tǒng)軟件(SystemSoftware);商業(yè)系統(tǒng)(BusinessSystem);在軟件開發(fā)的不同階段中的應(yīng)用,UML適用于系統(tǒng)開發(fā)過程中從需求規(guī)格描述到系統(tǒng)完成后測試的不同階段。第4頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)11.2UML語言概述1視圖(views)視圖用來表示被建模系統(tǒng)的各個方面。視圖由多個圖(Diagrams)構(gòu)成,它不是一個圖片(graph),而是在某一個抽象層上對系統(tǒng)的抽象表示。如果要為系統(tǒng)建立一個完整的模型圖,只需定義一定數(shù)量的視圖,每個視圖表示系統(tǒng)的一個特殊的方面就可以了。另外,視圖還把建模語言和系統(tǒng)開發(fā)時選擇的方法或過程連接起來。第5頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)2圖(diagram)圖由圖片(graph)組成。圖片是模型元素的符號化。把這些符號有機地組織起來形成的圖,表示了系統(tǒng)的一個特殊部分或某個方面。一個典型的系統(tǒng)模型應(yīng)有多個各種類型的圖,圖是一個具體視圖的組成部分,在畫一個圖時就相當(dāng)于把這個圖分配給某個視圖了。依據(jù)圖本身的內(nèi)容,有些圖可能是多個視圖的一部分。UML中包含用例圖、類圖、對象圖、狀態(tài)圖、順序圖、協(xié)作圖、活動圖、構(gòu)件圖、部署圖共九種。使用這九種圖就可以描述世界上任何復(fù)雜的事物,這充分地顯示了UML的多樣性和靈活性。第6頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)3模型元素圖為
一些通用的模型元素符號示例在圖中使用的概念統(tǒng)稱為模型元素。第7頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)4通用機制UML語言利用通用機制為圖附加一些信息,這些信息通常無法用基本的模型元素表示,常用的通用機制有修飾(adornment)、筆記(note)和規(guī)格說明(specification)等。第8頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)5UML建模工具
隨著UML的誕生與發(fā)展,涌現(xiàn)出了眾多的UML建模工具。如RationalRose、Microsoft的MicrosoftOfficeVisio、Jude、免費的UML工具BOUML、SparxSystems的EnterpriseArchitect(EA)、使用java編寫的開源UML產(chǎn)品ArgoUml、StartUML等等。第9頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)11.3用例建模用例建模描述一個系統(tǒng)應(yīng)該做什么,描述的是外部參與者所理解的系統(tǒng)功能。構(gòu)建用例模型是通過開發(fā)者與客戶或最終使用者對需求規(guī)格說明達成的共識,明確系統(tǒng)的基本功能,為后階段的工作打下基礎(chǔ)。用例模型的基本組成部件是用例、參與者和系統(tǒng)。用例用于描述系統(tǒng)的功能,也就是從外部用戶的角度,觀察系統(tǒng)應(yīng)支持哪些功能,幫助分析人員理解系統(tǒng)的行為,它是對系統(tǒng)功能的宏觀描述。第10頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)1用例圖用例模型可以由若干個用例圖組成,用例圖中包含系統(tǒng)、參與者和用例等三種模型元素。第11頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)2參與者(actor)1)參與者是與系統(tǒng)交互的人或事2)尋找參與者通過回答下列的一些問題確定參與者:(1)使用系統(tǒng)主要功能的人是誰?(即主要參與者)(2)需要借助于系統(tǒng)完成日常工作的人。(3)維護、管理系統(tǒng),保證系統(tǒng)正常工作的人(次要參與者)。(4)系統(tǒng)要控制哪些硬件設(shè)備?(5)系統(tǒng)需要與哪些其它系統(tǒng)交互?(6)對系統(tǒng)產(chǎn)生的結(jié)果感興趣的人或事是哪些?第12頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)3用例用例代表的是參與者感受到的一個完整的功能。UML中的用例是動作步驟的集合。系統(tǒng)中的每種可執(zhí)行情況就是一個動作,每個動作由許多具體步驟實現(xiàn)。1)用例的特征(1)用例總由參與者初始化,即:參與者必須直接或間接地指示系統(tǒng)執(zhí)行用例。(2)用例為參與者提供值。用例必須為參與者提供實在的值,這個值能被參與者識別。(3)用例是一個完整的描述。第13頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)2.尋找用例對于已識別的參與者,通過詢問下列問題就可發(fā)現(xiàn)用例:(1)參與者需要系統(tǒng)提供哪種功能?參與者需要做什么?(2)參與者需要讀取、產(chǎn)生、刪除、修改或存儲系統(tǒng)中的某種信息嗎?(3)系統(tǒng)中發(fā)生的事件需要通知參與者嗎?或者參與者需要通知系統(tǒng)某件事嗎?這些事件(功能)能干些什么?(4)如果用系統(tǒng)的新功能處理參與者的日常工作,是簡單化了還是提高了工作效率?第14頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)3)用例的描述應(yīng)包括下面幾個方面:(1)用例的目標:用例的最終任務(wù)是什么?想達到什么樣的目標?(2)用例是怎樣被啟動(initiate)的:哪個參與者在怎樣的情況下啟動執(zhí)行用例?比如張三買了車,是所以要投保的原因。(3)參與者和用例之間的消息流:參與者和用例之間的哪些消息是用來通知對方的?哪些是修改或檢索信息的?哪些是幫助用例做決定的?系統(tǒng)和參與者之間的主消息流描述了什么問題?系統(tǒng)使用或修改了哪些實體?(4)用例的多種執(zhí)行方案:在不同的條件或特殊情況下,用例能依當(dāng)時條件選擇一種合適的執(zhí)行方案。(5)如何通過給參與者一個值來結(jié)束用例。第15頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)4)用例之間的關(guān)系用例之間有擴展(extend)、使用(use)、組合三種關(guān)系。擴展和使用是繼承關(guān)系的另一種體現(xiàn)形式。組合則是把相關(guān)的用例打成包(package),當(dāng)作一個整體看待。第16頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)11.4類與對象建模1類和對象
在面向?qū)ο蠼<夹g(shù)中,我們采用分類的方法將客觀世界的實體映射為對象,并歸納成一個個類。、對象和他們之間的關(guān)聯(lián)是面向?qū)ο蠹夹g(shù)中最基本的元素。在UML中,類和對象模型分別由類圖和對象圖表示。
第17頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)2類圖和對象圖類圖是類圖屬于一種靜態(tài)模型,是用類和它們之間的關(guān)系描述系統(tǒng)的一種圖示。對象圖是類圖的一個實例。表示在某一時刻類的具體實例和這些實例之間的具體連接關(guān)系。
第18頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)3關(guān)系
類圖由類和它們之間的關(guān)系組成,類與類之間的關(guān)系有關(guān)聯(lián)(association)、依賴(dependency)、泛化(generalization)1)關(guān)聯(lián)關(guān)系關(guān)聯(lián)表示兩個類之間存在某種語義上的聯(lián)系,用于描述類與類之間的連接。根據(jù)不同的含義關(guān)聯(lián)可分為普通關(guān)聯(lián)、遞歸關(guān)聯(lián)、限定關(guān)聯(lián)、或關(guān)聯(lián)、有序關(guān)聯(lián)、三元關(guān)聯(lián)和聚合等七種。第19頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)2)聚合(aggregation)(一般聚合、共享聚合、組合—復(fù)合聚合)聚合是一種特殊形式的關(guān)聯(lián)。聚合表示類與類之間的整體與部分的關(guān)系。3)泛化(generalization)泛化表示的是一般描述和具體描述之間的關(guān)系,具體描述建立在一般描述的基礎(chǔ)上,并對其進行了擴展。具體描述與一般描述完全一致,具有其所有特性、成員和關(guān)系。第20頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)4)依賴(Dependency)依賴是兩個模型元素間的語義連接,一個是獨立的模型元素,一個是依賴的模型元素。5)細化(refinement)細化是UML中的術(shù)語,表示對事物更詳細一層的描述。兩個元素A、B描述同一件事物,它們的區(qū)別是抽象層次不同,若元素B是在元素A的基礎(chǔ)上的更詳細的描述,則稱元素B細化了元素A,或稱元素A細化成元素B。第21頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)4約束和派生(規(guī)則)UML中的規(guī)則稱為約束和派生。約束用于限制一個模型,我們已經(jīng)討論過的約束有或關(guān)聯(lián)、有序關(guān)聯(lián)和繼承約束。派生用于描述某種事物的產(chǎn)生規(guī)則,比如說一個人的年齡可以由該人的生日和當(dāng)前日期派生出來。一般說來,約束和派生能應(yīng)用于任何模型元素,但最常用于屬性、關(guān)聯(lián)、繼承、角色和時間第22頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)5包對于一個復(fù)雜的系統(tǒng),通常都是把它分為若干個較小的系統(tǒng)(子系統(tǒng))。解決這個問題的一個思路是將許多類集合成一個更高層次的單位,形成一個高內(nèi)聚、低耦合的類的集合。這個思路被松散地應(yīng)用到許多對象技術(shù)中。
第23頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)6如何確定類 1)尋找類在進行構(gòu)造類圖描述系統(tǒng)的工作時,首先要定義類,也就是將系統(tǒng)要處理的數(shù)據(jù)抽象成類的屬性,將處理數(shù)據(jù)的方法抽象為操作。2)類名類的名字用黑體字書寫在長方形的最上面,給類命名時最好能夠反映類所代表的問題域中的概念。3)定義屬性類的屬性放在類名字的下方,用來描述該類的對象所具有的特征。4)定義操作存取、或改變屬性值、或執(zhí)行某個動作都是操作。操作通常又稱為函數(shù)。第24頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)11.5動態(tài)建模1消息(massage)在面向?qū)ο蠹夹g(shù)中,對象間的交互是通過對象間消息的傳遞來完成的。第25頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)2狀態(tài)圖(StateDiagram)狀態(tài)圖(StateDiagram)用來描述一個特定對象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。大多數(shù)面向?qū)ο蠹夹g(shù)都用狀態(tài)圖表示單個對象在其生命周期中的行為。第26頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)3順序圖((SequenceDiagram)順序圖用來描述對象之間動態(tài)的交互關(guān)系,著重體現(xiàn)對象間消息傳遞的時間順序。順序圖存在兩個軸:水平軸表示不同的對象,垂直軸表示時間。順序圖中的對象用一個帶有垂直虛線的矩形框表示,并標有對象名和類名。垂直虛線是對象的生命線,用于表示在某段時間內(nèi)對象是存在的。對象間的通信通過在對象的生命線間畫消息來表示。消息的箭頭指明消息的類型。第27頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)4協(xié)作圖(CollaborationDiagram)協(xié)作圖主要描述相互合作的對象間的交互關(guān)系和鏈接關(guān)系(一條鏈接是一個關(guān)聯(lián)的實例化)。順序圖和協(xié)作圖都用來描述對象間的交互,但是側(cè)重點不一樣。順序圖強調(diào)的是時間,而協(xié)作圖強調(diào)的是空間鏈接,顯示真正的對象以及對象間是如何聯(lián)系在一起的,可以只顯示對象的內(nèi)部結(jié)構(gòu),同順序圖一樣,協(xié)作圖也可以說明操作的執(zhí)行,用例的執(zhí)行或系統(tǒng)中的一次簡單的交互情節(jié)。第28頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)5活動圖(ActivityDiagram)活動圖使用狀態(tài)圖的符號,與狀態(tài)圖有相同的開始點和結(jié)束點?;顒訄D中的狀態(tài)稱為動作狀態(tài),用圓角矩形表示,動作狀態(tài)之間的轉(zhuǎn)移用箭頭表示。轉(zhuǎn)移上可以附加監(jiān)護條件、發(fā)送子句和動作表達式。第29頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)11.6物理體系結(jié)構(gòu)建模UML中體系結(jié)構(gòu)的定義為:體系結(jié)構(gòu)是系統(tǒng)的組織結(jié)構(gòu)??梢赃f歸地將體系結(jié)構(gòu)分解成通過接口交互的部分,連接各個部分的關(guān)系,組裝各個部分的約束。體系結(jié)構(gòu)可以分解成邏輯和物理體系結(jié)構(gòu)。邏輯體系結(jié)構(gòu)主要指定系統(tǒng)的功能特點,通過系統(tǒng)的功能需求來描述;物理體系結(jié)構(gòu)則描述系統(tǒng)的非功能部分:如可靠性、兼容性、資源使用和系統(tǒng)分布。第30頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)1邏輯體系結(jié)構(gòu)邏輯體系結(jié)構(gòu)處理系統(tǒng)的功能,將功能分配到系統(tǒng)的各個部分,詳細說明它們是如何工作的。邏輯體系結(jié)構(gòu)包括應(yīng)用邏輯,但不是將邏輯物理上分布到不同的進程、程序或計算機。邏輯體系結(jié)構(gòu)有助于更清楚地了解系統(tǒng)的結(jié)構(gòu),使得更容易管理和協(xié)調(diào)工作。第31頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)2物理體系結(jié)構(gòu)物理體系結(jié)構(gòu)詳細描述系統(tǒng)的軟件、硬件。它描述硬件結(jié)構(gòu),包括不同的節(jié)點以及節(jié)點間如何連接。物理體系結(jié)構(gòu)還說明實現(xiàn)邏輯體系結(jié)構(gòu)中定義的概念的代碼模塊的物理結(jié)構(gòu)和相關(guān)性,軟件運行時,進程、程序和其它構(gòu)件的分布。第32頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)構(gòu)件圖描述軟件構(gòu)件及構(gòu)件之間的關(guān)系,顯示代碼的結(jié)構(gòu)。構(gòu)件是邏輯體系結(jié)構(gòu)中定義的概念和功能在物理體系結(jié)構(gòu)中的實現(xiàn)。典型情況下構(gòu)件是開發(fā)環(huán)境中的實現(xiàn)文件。3構(gòu)件圖
構(gòu)件圖描述軟件構(gòu)件及構(gòu)件之間的關(guān)系,顯示代碼的結(jié)構(gòu)。構(gòu)件是邏輯體系結(jié)構(gòu)中定義的概念和功能在物理體系結(jié)構(gòu)中的實現(xiàn)。典型情況下構(gòu)件是開發(fā)環(huán)境中的實現(xiàn)文件。
第33頁,共37頁,2023年,2月20日,星期二計算機科學(xué)與工程學(xué)院SoftwareEngineer)4部署圖部署圖描述處理器、設(shè)備、軟件構(gòu)件在運行時的體系結(jié)構(gòu)。它是系統(tǒng)拓樸的最終的物理描述,即描述硬件單元和運行在硬件
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校裝飾改造方案(3篇)
- 雨量應(yīng)急監(jiān)測方案(3篇)
- 招生預(yù)算方案(3篇)
- 醫(yī)院新區(qū)建設(shè)總體規(guī)劃與實施策略
- 痔瘡射頻治療技術(shù)應(yīng)用與臨床實踐
- 早期孕檢超聲講解
- 整村改造項目方案(3篇)
- 智能科技產(chǎn)業(yè)主題展執(zhí)行方案
- 5S知識培訓(xùn)計劃課件
- PET-CT在腦腫瘤診療中的臨床應(yīng)用
- 保安員知識考試題庫及答案
- 2025年湖南電焊考試題庫
- 2025年云南高考歷史試卷解讀及備考策略指導(dǎo)課件
- 瀝青混凝土供貨方案及保障措施
- 檢驗標準管理辦法
- (高清版)T∕CES 243-2023 《構(gòu)網(wǎng)型儲能系統(tǒng)并網(wǎng)技術(shù)規(guī)范》
- 2025年自考毛概考試試題及答案
- 2025-2026教科版科學(xué)三年級上冊詳細教學(xué)計劃
- 2025即時零售行業(yè)規(guī)模消費場景及頭部平臺美團京東淘寶對比分析報告
- 安徽省安慶市2024-2025學(xué)年七年級下學(xué)期6月期末數(shù)學(xué)試卷(含詳解)
- 2025至2030立體車庫行業(yè)市場深度調(diào)研及發(fā)展趨勢與發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
評論
0/150
提交評論