![面向?qū)ο筌浖こ虡?biāo)準(zhǔn)建模語言UML_第1頁](http://file4.renrendoc.com/view/4e12260021de411a047c5405e89c1dc4/4e12260021de411a047c5405e89c1dc41.gif)
![面向?qū)ο筌浖こ虡?biāo)準(zhǔn)建模語言UML_第2頁](http://file4.renrendoc.com/view/4e12260021de411a047c5405e89c1dc4/4e12260021de411a047c5405e89c1dc42.gif)
![面向?qū)ο筌浖こ虡?biāo)準(zhǔn)建模語言UML_第3頁](http://file4.renrendoc.com/view/4e12260021de411a047c5405e89c1dc4/4e12260021de411a047c5405e89c1dc43.gif)
![面向?qū)ο筌浖こ虡?biāo)準(zhǔn)建模語言UML_第4頁](http://file4.renrendoc.com/view/4e12260021de411a047c5405e89c1dc4/4e12260021de411a047c5405e89c1dc44.gif)
![面向?qū)ο筌浖こ虡?biāo)準(zhǔn)建模語言UML_第5頁](http://file4.renrendoc.com/view/4e12260021de411a047c5405e89c1dc4/4e12260021de411a047c5405e89c1dc45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、面向?qū)ο筌浖こ蹋?biāo)準(zhǔn)建模語言UML) 李 宣 東1面向?qū)ο筌浖こ堂嫦驅(qū)ο蟆懊嫦驅(qū)ο蟆笔且环N認(rèn)識客觀世界的世界觀,這種世界觀將客觀世界看成是有許多不同種類的對象構(gòu)成的,每個對象有自己的內(nèi)部狀態(tài)和運動規(guī)律,不同對象之間的相互聯(lián)系、相互作用就構(gòu)成了完整的客觀世界。2面向?qū)ο筌浖こ堂嫦驅(qū)ο蟆懊嫦驅(qū)ο蟆笔菑慕Y(jié)構(gòu)組織的角度去模擬客觀世界的一種方法,這種方法的基本著眼點是構(gòu)成客觀世界的那些成分對象。用“面向?qū)ο蟆钡挠^點去認(rèn)識客觀世界,用“面向?qū)ο蟆钡姆椒ㄈツM客觀世界,這就構(gòu)成了“面向?qū)ο蟆钡耐暾x。3面向?qū)ο筌浖こ堂嫦驅(qū)ο蟾拍顚ο?對象是現(xiàn)實世界中個體或事物的抽象表示,是其屬性和相關(guān)操作的封裝。
2、屬性表示對象的性質(zhì),屬性值規(guī)定了對象所有可能的狀態(tài)。對象的操作是指該對象可以展現(xiàn)的外部服務(wù)。4面向?qū)ο筌浖こ堂嫦驅(qū)ο蟾拍铑惡蛯嵗?類是某些對象的共同特性的表示,它描述了這些對象內(nèi)部是如何構(gòu)造的。相同類的對象在它們的操作和它們的信息結(jié)構(gòu)兩個方面都有相同的定義。 在面向?qū)ο笙到y(tǒng)中,每個對象都屬于一個類。屬于某個特定類的對象稱為該類的實例。因此,常常把對象和實例當(dāng)作同義詞。實例是從某類創(chuàng)建的一個對象。5面向?qū)ο筌浖こ堂嫦驅(qū)ο蟾拍罾^承 如果類B繼承類A,那么類A中描述的操作和信息結(jié)構(gòu)將成為類B的一部分。 借助繼承,可以表示類之間的類似性,并且在其他類能繼承的一個類中描述這些相似性。因此,就能夠復(fù)用
3、公共的描述。繼承常常被提倡為軟件工業(yè)界中關(guān)于復(fù)用的一個核心思想。繼承還有利于軟件維護。 通過抽取和共享公共特性就能夠通用化一些類,并且把它們放在繼承層次的更高位置。同樣,如果希望增加新類,可以尋找這樣一個類,它已經(jīng)提供了適用于該新類的某些操作和信息結(jié)構(gòu)。然后,讓新類繼承這個類,只需增加該新類所獨有的那些內(nèi)容。然后,使這個類專用化。6建立對象模型Identifying classes and objects (識別對象和類)Specifying attributes (說明對象屬性)Defining operations (定義對象操作)Finalizing the object definit
4、ion (最終確定對象定義)7面向?qū)ο蟮倪^程模型Planning RiskAnalysis CustomerCommunication CustomerEvaluation Engineering,Construction & ReleaseIdentifycandidateclassesConstructnth iterationof systemLook upclassesin libraryPut new classesin libraryExtractclassesif availableEngineerclassesif unavailable analysis design pro
5、gramming testing8面向?qū)ο筌浖こ?面向?qū)ο蠼?面向?qū)ο笏枷氡容^自然地模擬了人類認(rèn)識客觀世界的方式,面向?qū)ο蟮姆治龊驮O(shè)計應(yīng)該從建模開始。構(gòu)造模型通常出于以下幾個目地:在著手解決一個復(fù)雜問題之前,對解決方案進行檢測;用于同客戶或其他相關(guān)人員進行交流;加強視覺效果;對復(fù)雜問題進行簡化。9面向?qū)ο筌浖こ堂嫦驅(qū)ο蠼DP褪菍κ挛锏囊环N抽象,人們常常在正式建造實物之前,首先建立一個簡化的模型,以便更透徹地了解它的本質(zhì),抓住問題的要害;在模型中,人們總是剔除那些與問題無關(guān)的、非本質(zhì)的東西,從而使模型與真實的實體相比更加簡單、易于把握;10面向?qū)ο筌浖こ堂嫦驅(qū)ο蠼T诮ㄔ煲粋€復(fù)雜系統(tǒng)時
6、,開發(fā)者必須從多種不同的角度來抽象系統(tǒng),使用準(zhǔn)確的符號來構(gòu)造模型,然后檢查這些模型是否符合系統(tǒng)的需求,并逐步添加細(xì)節(jié),從而將這些模型轉(zhuǎn)化成實現(xiàn)方案。建模語言是面向?qū)ο蠼V械囊粋€非常關(guān)鍵的因素。11標(biāo)準(zhǔn)建模語言UMLUML的設(shè)計目標(biāo):運用面向?qū)ο蟾拍顏順?gòu)造系統(tǒng)模型建立起從概念模型直至可執(zhí)行體之間明顯的對應(yīng)關(guān)系著眼于那些有重大影響的問題創(chuàng)建一種對人和機器都適用的建模語言12標(biāo)準(zhǔn)建模語言UMLUML概要UML由OMG與1997年11月批準(zhǔn)為標(biāo)準(zhǔn)建模語言。UML建立在當(dāng)今國際上最有代表性的三種面向?qū)ο蠓椒ǎ˙ooch方法,OMT方法,OOSE方法)的基礎(chǔ)之上。UML是一種建模語言而不是一種方法,UM
7、L本身是獨立于過程的。13標(biāo)準(zhǔn)建模語言UML UML為人們提供了從不同的角度去觀察和展示系統(tǒng)的各種特征的一種標(biāo)準(zhǔn)表達(dá)方式。在UML中,從任何一個角度對系統(tǒng)所作的抽象都可能需要用幾種模型圖來描述,而這些來自不同角度的模型圖最終組成了系統(tǒng)的完整模型。14標(biāo)準(zhǔn)建模語言UML 一般而言,我們可以從以下幾種常用的視角來描述一個系統(tǒng):系統(tǒng)的使用實例:從系統(tǒng)外部的操作者的角度描述系統(tǒng)的功能。系統(tǒng)的邏輯結(jié)構(gòu):描述系統(tǒng)內(nèi)部的靜態(tài)結(jié)構(gòu)和動態(tài)行為,即從內(nèi)部描述如何設(shè)計實現(xiàn)系統(tǒng)功能。系統(tǒng)的構(gòu)成:描述系統(tǒng)由哪些程序構(gòu)件所組成。系統(tǒng)的并發(fā)性:描述系統(tǒng)的并發(fā)性,強調(diào)并發(fā)系統(tǒng)中存在的各種通信和同步問題。系統(tǒng)的配置:描述系統(tǒng)的
8、軟件和各種硬件設(shè)備之間的配置關(guān)系。15標(biāo)準(zhǔn)建模語言UMLUML模型圖(5類,10種):用例圖靜態(tài)圖(類圖,對象圖,包圖)行為圖(狀態(tài)圖,活動圖)交互圖(順序圖,合作圖)實現(xiàn)圖(構(gòu)件圖,配置圖)16標(biāo)準(zhǔn)建模語言UMLUML語義元-元模型: 元模型的基礎(chǔ)體系結(jié)構(gòu),定義一種說明元模型的語言元模型: 元-元模型的一個實例,定義一種說明模型的語言模型: 元模型的一個實例,定義一種語言來描述信息領(lǐng)域用戶對象: 模型的一個實例,定義一個特定的領(lǐng)域17標(biāo)準(zhǔn)建模語言UMLUML主要文件:UML概要(UML Summary)UML語義(UML Semantics)UML表示法指南(UML Notation Gui
9、de)對象約束語言規(guī)約(Object Contraint language Specification):該文件定義并介紹了一種對象約束語言(OCL),其用途是用來說明在圖形化的系統(tǒng)模型中不能充分表達(dá)的建模信息。它是一種形式化語言。18標(biāo)準(zhǔn)建模語言UML (用例圖) 從本質(zhì)上將,一個用例是用戶與計算機之間為達(dá)到某個目的的一次典型交互作用:用例描述了用戶提出的一些可見的需求;用例可大可??;用例對應(yīng)一個具體的用戶目標(biāo)19標(biāo)準(zhǔn)建模語言UML (用例圖) 用例圖描述系統(tǒng)外部的執(zhí)行者與系統(tǒng)的用例之間的某種聯(lián)系。所謂用例是指對系統(tǒng)提供的功能(或稱系統(tǒng)的用途)的一種描述;執(zhí)行者是那些可能使用這些用例的人或外
10、部系統(tǒng);用例和執(zhí)行者之間的聯(lián)系描述了“誰使用哪個用例”。20標(biāo)準(zhǔn)建模語言UML (用例圖)用例圖著重于從系統(tǒng)外部執(zhí)行者的角度來描述系統(tǒng)需要提供哪些功能,并且指明了這些功能的執(zhí)行者是誰;用例圖在UML方法中占有十分重要的地位,人們甚至稱UML是一種用例圖驅(qū)動的開發(fā)方法。21標(biāo)準(zhǔn)建模語言UML (用例圖)用例圖中的圖符: 用例 執(zhí)行者 系統(tǒng):用于界定系統(tǒng)功能范圍,描述該系統(tǒng)功能的用例都置于其中,而描述外部實體的執(zhí)行者都置于其外。 關(guān)聯(lián):連接執(zhí)行者和用例,表示執(zhí)行者所代表的系統(tǒng)外部實體與該用例所描述的系統(tǒng)需求有關(guān)。22標(biāo)準(zhǔn)建模語言UML (用例圖)用例圖中的圖符: 使用:由用例A連向用例B,表示用例
11、A中使用了用例B中的行為或功能。 擴展:由用例A連向用例B,表示用例B描述了一項基本需求,而用例A則描述了該基本需求的特殊情況。 注釋體:對UML實體進行文字描述 注釋連接:將注釋體與要描述的實體連接,說明該注釋體是針對該實體所進行的描述。使用擴展23標(biāo)準(zhǔn)建模語言UML (用例圖)設(shè)置邊界風(fēng)險分析交易估計進行交易超越邊界更新帳目評價貿(mào)易經(jīng)理營銷人員記帳系統(tǒng)銷售人員使用使用擴展24標(biāo)準(zhǔn)建模語言UML (用例圖)用例模型的獲取:獲取執(zhí)行者獲取用例25標(biāo)準(zhǔn)建模語言UML (用例圖)獲取執(zhí)行者:誰使用系統(tǒng)的主要功能(主要使用者)?誰需要系統(tǒng)支持他們的日常工作?誰來維護、管理系統(tǒng)使其能正常工作(輔助使用
12、者)?系統(tǒng)需要控制哪些硬件?系統(tǒng)需要與其他哪些系統(tǒng)交互?對系統(tǒng)產(chǎn)生的結(jié)果感興趣的是哪些人?26標(biāo)準(zhǔn)建模語言UML (用例圖)獲取用例:執(zhí)行者要求系統(tǒng)提供哪些功能?執(zhí)行者需要讀、產(chǎn)生、刪除、修改或存儲系統(tǒng)中的信息有哪些類型?必須提醒執(zhí)行者的系統(tǒng)事件有哪些?執(zhí)行者必須提醒系統(tǒng)事件有哪些?怎樣把這些事件表示成用例中的功能?27標(biāo)準(zhǔn)建模語言UML (類圖)在面向?qū)ο蟮慕<夹g(shù)中,類、對象和它們之間的關(guān)系是最基本的建模元素。對于一個想要描述的系統(tǒng),其類模型、對象模型以及它們之間的關(guān)系揭示了系統(tǒng)的結(jié)構(gòu)。類圖描述了系統(tǒng)中的類及其相互之間的各種關(guān)系,其本質(zhì)反映了系統(tǒng)中包含的各種對象的類型以及對象間的各種靜態(tài)關(guān)
13、系(關(guān)聯(lián),子類型)。28標(biāo)準(zhǔn)建模語言UML (類圖)類圖中的圖符: 類:表示一個類,其中第一欄是類的 名,第二欄是類的屬性,第三欄是類的操作。 包:包是一種分組機制,表示一個類 圖集合。 關(guān)聯(lián):用于表示類的對象之間的關(guān)系。其特殊形式有組成關(guān)聯(lián)和聚集關(guān)聯(lián)。OperationsAttributesClassPackage29標(biāo)準(zhǔn)建模語言UML (類圖)類圖中的圖符: 聚集關(guān)聯(lián):用于表示類的對象之間的關(guān)系是整體與部分的關(guān)系。 組成關(guān)聯(lián):用于表示類的對象之間的關(guān)系:整體擁有各部分,部分與整體共存,如整體不存在了,部分也會隨之消失。 泛化關(guān)聯(lián):泛化關(guān)系(繼承關(guān)系)定義了類和包間的一般元素和特殊元素之間的
14、分類關(guān)系。30標(biāo)準(zhǔn)建模語言UML (類圖)類圖中的圖符: 依賴關(guān)系:有兩個類或包元素X、Y,修改元素X的定義可能會引起對另一個元素Y的定義的修改,則稱元素Y依賴于元素X。 對象:類的一個實例。 鏈接:用于表示對象間的關(guān)聯(lián)關(guān)系的一個實例。ValuesObject31標(biāo)準(zhǔn)建模語言UML (類圖)訂單DateReceivedisPrepaidnumber:Stringprce:MoneyDispatch()close()訂單項Quantity:Integerprice:MoneyisSatisfied:Boolean1*項客戶NameaddressCreditRating():String團體客戶C
15、ontactNamecreditRatingcreditLimitRemind()billforMonth(Intrger)雇員產(chǎn)品個人客戶CreditCard#creditRating()=“poor”銷售代表1*0.11*32標(biāo)準(zhǔn)建模語言UML (對象圖)對象圖對象圖是類圖的一種變形。除了在對象名下面要加下劃線以外,對象圖中所使用的符號與類圖基本相同。對象圖是類圖的一種實例化。一張對象圖表示的是與其對應(yīng)的類圖的一個具體實例,即系統(tǒng)在某一時期或者某一特定時刻可能存在的具體對象實例以及它們相互之間的具體關(guān)系。33標(biāo)準(zhǔn)建模語言UML (對象圖)作者計算機名字:String內(nèi)存:Ineger名字:
16、String年齡:Integer0.1Uses1.*小王:作者小王的工作PC:計算機名字 = “王小影”年齡 = 32小王的工作PC:計算機名字 = “Compaq X”內(nèi)存 = 32名字 = “Dell486”內(nèi)存 = 64類圖對象圖34標(biāo)準(zhǔn)建模語言UML (對象圖)對象圖并不象類圖那樣具有重要的地位,但是利用它可以幫助我們通過具體的實例分析,更具體直觀地了解復(fù)雜系統(tǒng)類圖的豐富內(nèi)涵。對象圖還常常被用作合作圖的一部分,用以展示一組對象實例之間的動態(tài)協(xié)作關(guān)系。35標(biāo)準(zhǔn)建模語言UML (包圖)包是類的集合。包圖所顯示的是類的包以及這些包之間的依賴關(guān)系。如果兩個包中的任意兩個類之間存在依賴關(guān)系,則這
17、兩個包之間存在依賴關(guān)系。包的依賴是不傳遞的。36標(biāo)準(zhǔn)建模語言UML (包圖)訂單獲取界面訂單獲取應(yīng)用AWT郵件發(fā)送清單界面郵件發(fā)送清單應(yīng)用訂單顧客37標(biāo)準(zhǔn)建模語言UML (包圖)何時使用包圖:在大項目中,包圖是一種重要工具(有專家建議,只要你不能將整個系統(tǒng)的類圖壓縮到一張A4紙上,你就應(yīng)該使用包圖);依賴產(chǎn)生耦合,應(yīng)該盡量將依賴性減少到最低程度;包的概念對測試也是特別有用的。38標(biāo)準(zhǔn)建模語言UML (狀態(tài)圖)狀態(tài)圖狀態(tài)圖是對類的一種補充描述,它展示了此類對象所具有的可能的狀態(tài)以及某些事件發(fā)生時其狀態(tài)的轉(zhuǎn)移情況。在狀態(tài)圖中,狀態(tài)由圓角矩形表示。狀態(tài)的改變稱作轉(zhuǎn)移,狀態(tài)轉(zhuǎn)移由箭頭表示,箭頭旁可以標(biāo)
18、出轉(zhuǎn)移發(fā)生的條件。狀態(tài)轉(zhuǎn)移可以伴隨有某個動作,它表明當(dāng)轉(zhuǎn)移發(fā)生時系統(tǒng)要做什么。39標(biāo)準(zhǔn)建模語言UML (狀態(tài)圖)下降狀態(tài)在第一層上升狀態(tài)向第一層下降空閑狀態(tài)上升到達(dá)到達(dá)上升超時下降到達(dá)第一層40標(biāo)準(zhǔn)建模語言UML (順序圖)順序圖順序圖描述了對象之間動態(tài)的交互關(guān)系,著重體現(xiàn)對象間消息傳遞的時間順序。順序圖由一組對象構(gòu)成,每個對象分別帶有一條豎線,稱作對象的生命線,它代表時間軸,時間沿豎線向下延伸。順序圖描述了這些對象隨著時間的推移相互之間交換消息的過程。消息用從一條垂直的對象生命線指向另一個對象的生命線的水平箭頭表示。圖中還可以根據(jù)需要增加有關(guān)時間的說明和其他注釋。41標(biāo)準(zhǔn)建模語言UML (順
19、序圖):計算機:打印服務(wù)程序:打印隊列:打印機打印文件打印文件打印機空閑保存文件打印機忙42標(biāo)準(zhǔn)建模語言UML (順序圖)P1P2P3e1e2e3e4e5e6e7e8e9e1043標(biāo)準(zhǔn)建模語言UML (順序圖)順序圖中的事件順序:因果性(Causality): 對同一消息而言,發(fā)送事件先于接收事件??煽匦裕–ontrolability): 對同一對象而言,事件p出現(xiàn)在發(fā)送事件q的上方,則p先于q。隊列性(FIFO): 對同一對象而言,接收事件p出現(xiàn)在接收事件q的上方,并且它們分別對應(yīng)的發(fā)送事件也位于同一個對象,則p先于q。44標(biāo)準(zhǔn)建模語言UML (順序圖)e1e2e3e4e5e6e8e7e9e
20、10e12e11P1P2P3P1P2P3e1e2e3e4e6e5e7e8e9e11e10e1245標(biāo)準(zhǔn)建模語言UML (合作圖)合作圖與順序圖作用相同,合作圖也是用來描述系統(tǒng)中對象之間的動態(tài)協(xié)作關(guān)系。合作圖側(cè)重于描述各個對象之間存在的消息收發(fā)關(guān)系(交互關(guān)系),而不專門突出這些消息發(fā)送的時間順序。在合作圖中,對象同樣是用一個對象圖符來表示,箭頭表示消息發(fā)送的方向,而消息執(zhí)行的順序則由消息的編號來表明。46標(biāo)準(zhǔn)建模語言UML (合作圖):計算機:打印隊列:打印服務(wù)程序:打印機1. 打印文件 3. 保存文件打印機忙2. 打印文件打印機空閑47標(biāo)準(zhǔn)建模語言UML (合作圖)合作圖的布局方法能更清楚地表
21、示出對象之間靜態(tài)的連接關(guān)系。順序圖突出執(zhí)行的時序,能更方便地看出事情發(fā)生的次序。如果要描述在一個用例中的幾個對象協(xié)同工作的行為,交互圖是一種有力的工具。交互圖擅長顯示對象之間的合作關(guān)系,盡管它并不對這些對象的行為進行精確的定義。如果想要描述跨越多個用例的單個對象的行為,應(yīng)當(dāng)使用狀態(tài)圖;如果想要描述跨越多個用例或多個線程的多個對象的復(fù)雜行為,則需考慮使用活動圖。48標(biāo)準(zhǔn)建模語言UML (活動圖)活動圖活動圖描述系統(tǒng)中各種活動的執(zhí)行順序,通常用于描述一個操作中所要進行的各項活動的執(zhí)行流程。同時,它也常被用來描述一個用例的處理流程,或者某種交互流程。活動圖由一些活動組成,圖中同時包括了對這些活動的說
22、明。當(dāng)一個活動執(zhí)行完畢之后,控制將沿著控制轉(zhuǎn)移箭頭轉(zhuǎn)向下一個活動?;顒訄D中還可以方便地描述控制轉(zhuǎn)移的條件以及并行執(zhí)行等要求。49標(biāo)準(zhǔn)建模語言UML (活動圖)加水到容器中將咖啡放到過濾器中點燃咖啡爐取出咖啡杯把過濾器放到咖啡爐上沖調(diào)咖啡倒咖啡找飲料取一聽可口可樂喝飲料人找到可口可樂沒有可口可樂沒有咖啡找到咖啡熄滅咖啡爐50標(biāo)準(zhǔn)建模語言UML (活動圖)活動圖最適合支持描述并行行為,這使之成為支持工作流建模的最好工具?;顒訄D最大的缺點是很難清楚地描述動作與對象之間的關(guān)系。51標(biāo)準(zhǔn)建模語言UML (活動圖)對于以下情況可以使用活動圖:(1)分析用例;(2)理解牽涉多個用例的工作流;(3)處理多線程
23、應(yīng)用。在下列情況下,一般不要使用活動圖:(1)顯示對象間合作;(2)顯示對象在其生命周期內(nèi)的運轉(zhuǎn)情況。52標(biāo)準(zhǔn)建模語言UML (構(gòu)件圖)構(gòu)件圖構(gòu)件圖描述軟件構(gòu)件以及它們之間的依賴關(guān)系,從而便于人們分析和發(fā)現(xiàn)當(dāng)修改某個構(gòu)件時可能對那些構(gòu)件產(chǎn)生影響,以便對它們做相應(yīng)的修改或更新。構(gòu)件可以是源代碼構(gòu)件、二進制目標(biāo)碼構(gòu)件、可執(zhí)行構(gòu)件或文檔構(gòu)件。53標(biāo)準(zhǔn)建模語言UML (構(gòu)件圖) Whnd.cpp: 窗口處理器 Graphic.dll:圖形庫 Comhnd.cpp: 命令處理器 Main.cpp:主類 Whnd.obj: 窗口處理器 Comhnd.obj: 命令處理器 Main.obj:主類 clien
24、t.exe: 客戶程序54標(biāo)準(zhǔn)建模語言UML (配置圖)配置圖配置圖描述系統(tǒng)中硬件和軟件的物理配置情況和系統(tǒng)體系結(jié)構(gòu)。在配置圖中,用結(jié)點表示實際的物理設(shè)備,如計算機和各種外部設(shè)備等,并根據(jù)它們之間的連接關(guān)系,將相應(yīng)的結(jié)點連接起來,并說明其連接方式。在結(jié)點里面,說明分配給該結(jié)點上運行的可執(zhí)行構(gòu)件或?qū)ο?,從而說明哪些軟件單元被分配在哪些結(jié)點上運行。55標(biāo)準(zhǔn)建模語言UML (配置圖)客戶A:個人電腦PC客戶B:個人電腦PC數(shù)據(jù)庫服務(wù)器:VAX服務(wù)器:02TCP/IP協(xié)議TCP/IP協(xié)議DecNet協(xié)議56UML支撐環(huán)境Rational Rose基于UML的模型驅(qū)動的軟件開發(fā)環(huán)境全面支持團隊整體合作的
25、開發(fā)形式集成了最新軟件開發(fā)技術(shù)和思想57UML的擴展實時模型 UML-RT可執(zhí)行模型企業(yè)計算 Enterprise Distributed Object Computing (EDOC) Enterprise Application Integration (EAI)軟件過程 Rational Unified Process (RUP)其他 Standard for Data Warehousing CORBA maps to UML XMI format for the exchange of UML models in text format 58UML框架下的軟件工程我們已經(jīng)有了統(tǒng)一的建
26、模語言UML我們正在擁有統(tǒng)一軟件過程(RUP?)下一步是什么?A Software Component MarketplaceQuality from the BeginningGive Soul to Software ProcessA Complete UML Based Software Platform Ivar Jacobson59UML時間表1997 UML version 1.0, version 1.11998 UML version 1.32000 UML version 1.4 ?2002 UML version 2.0 ?2004 一個穩(wěn)定完善的UML version ?
27、60UML的國際會議 98 The First International Workshop on The Unified Modeling Language, 3 - 4 June, 1998, Mulhouse, France 99 The Second International Conference on The Unified Modeling Language, 28 - 30 October, 1999, Fort Collins, Colorado, USA 2000 The Third International Conference on the Unified Model
28、ing Language, 2 - 6 October, 2000, York, UK 2001 The Fourth International Conference on the Unified Modeling Language, 1 - 5 October, 2001, Toronto, Canada 2002 The Fifth International Conference on the Unified Modeling Language, 30 Sept. 4 Oct., 2002, Dresden, Germany. 2003 The Sixth International
29、Conference on the Unified Modeling Language, 20 24, Oct., 2003, USA. Lecture Notes in Computer Science, Springer61UML當(dāng)前的研究熱點當(dāng)前圍繞UML的研究工作集中在兩個方面:使得UML更加精確為UML提供有效的工具支持62模型驅(qū)動的體系結(jié)構(gòu)Model Driven Architecture (MDA) 63OMG (Object Management Group)OMG是世界上最大的計算機工業(yè)聯(lián)盟,于1989年4月有8個公司發(fā)起,目前有800多家成員。64Who Are OMG?A
30、T&TBEABorlandBoeingCACitigroupCompaqEricssonFordFujitsuGlaxo SmithKlineHewlett PackardHitachiHyperionIBMIONAio SoftwareKabiraKennedy CarterJohn DeereMicrosoftMITREMSC.SoftwareNASANECNetGenicsNTTOASISOraclePfizerRationalSAGA SoftwareSAPSAS InstituteSecantSiemensSprintSunUnisysVertel65異構(gòu)-無處不在Programmi
31、ng languages3 million COBOL programmers1.6 million VB programmers1.1 million C/C+ programmersOperating systemsUnix, MVS, VMS, MacOS, Windows (all 8!), PalmOSWindows 3.1: its still out there!Embedded devices (mobile, set-top, etc.)NetworksEthernet, ATM, IP, SS7, Firewire, USBBluetooth, 802.11b, HomeR
32、F66OMG的技術(shù)目標(biāo)問題:分布異構(gòu)限制了互操作,同一功能用多種語言在多種環(huán)境下重復(fù)實現(xiàn)。目標(biāo):使得基于對象的軟件在分布異構(gòu)環(huán)境下具有良好的可重用性、可移植性和互操作性,從而能夠在由多種主流硬件平臺上運行多種操作系統(tǒng)構(gòu)成的異構(gòu)分布環(huán)境中,方便地建立異構(gòu)分布應(yīng)用系統(tǒng)。67如何集成?不存在統(tǒng)一的硬件平臺不存在統(tǒng)一的操作系統(tǒng)不存在統(tǒng)一的網(wǎng)絡(luò)協(xié)議不存在統(tǒng)一的應(yīng)用模式 必須通過接口和互操作達(dá)到集成。68OMG的任務(wù)The OMGs mission is to help computer users solve integration problems by supplying open, vendor-
33、neutral interoperability specifications.69OMG的產(chǎn)品Common Object Request Broker ArchitectureCORBA remains the only language- and platform-neutral interoperability standardUnified Modeling LanguageUMLTM remains the worlds only standardized modeling languageCommon Warehouse MetamodelCWMTM, the integratio
34、n of the last two data warehousing initiativesMeta-Object FacilityMOFTM, the repository standardXML Metadata InterchangeXMITM, the XML-UML standard70中間件 中間件是軟件領(lǐng)域近十年來發(fā)展起來的一種新技術(shù),其泛指位于操作系統(tǒng)與應(yīng)用軟件之間、能夠屏蔽操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議的差異、為異構(gòu)系統(tǒng)之間提供通訊服務(wù)的軟件。 71中間件硬件平臺系統(tǒng)軟件支撐軟件硬件平臺系統(tǒng)軟件支撐軟件中間件應(yīng)用軟件應(yīng)用軟件72中間件 中間件屏蔽了底層系統(tǒng)軟件(包括操作系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)庫
35、管理系統(tǒng)等)的異構(gòu)性和復(fù)雜性,通過一個簡單而統(tǒng)一的開發(fā)環(huán)境,減少程序設(shè)計的復(fù)雜性并提高程序的可移植性,使得開發(fā)人員將注意力集中在自己的業(yè)務(wù)上,大大減少了技術(shù)上的負(fù)擔(dān)。中間件帶給應(yīng)用系統(tǒng)的,不只是開發(fā)的簡便和開發(fā)周期的縮短,也減少了系統(tǒng)的維護、運行和管理的工作量,從而減少了系統(tǒng)總體費用的投入。73中間件目前的主流中間件可以分為五類:數(shù)據(jù)訪問中間件遠(yuǎn)程過程調(diào)用中間件事務(wù)中間件消息中間件面向?qū)ο笾虚g件74面向?qū)ο笾虚g件 面向?qū)ο蟮闹虚g件是對象技術(shù)和分布式計算發(fā)展的產(chǎn)物,它提供一種通訊機制,透明地在異構(gòu)的分布計算環(huán)境中傳遞對象請求。OMG的CORBA微軟的COMSun公司基于EJB的J2EE75面向?qū)?/p>
36、象中間件 面向?qū)ο笾虚g件的異構(gòu)性和開放性各有不同:適用于異構(gòu)環(huán)境、開放的CORBA是Internet與企業(yè)應(yīng)用事實上的工業(yè)標(biāo)準(zhǔn);特定于Windows平臺、專有的COM則是桌面系統(tǒng)的首選;基于EJB的J2EE則兼具二者之優(yōu)勢,J2EE是一種利用Java2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)復(fù)雜問題的體系結(jié)構(gòu),已經(jīng)被許多從事電子商務(wù)的中間件廠商所采納。76中間件沒有消除異構(gòu)由于一個中間件不能滿足所有用戶的要求,導(dǎo)致多種中間件并存又無法統(tǒng)一,于是為解決異構(gòu)問題提出的中間件本身產(chǎn)生異構(gòu)。中間件似乎“提升”了異構(gòu)而沒有消除異構(gòu)。77中間件沒有消除異構(gòu) 由于難以形成統(tǒng)一的標(biāo)準(zhǔn),中間件的不斷發(fā)展將使
37、得新舊系統(tǒng)之間的集成或系統(tǒng)的演化面臨不同的實現(xiàn)技術(shù),從而使得如何在保障已有投資的條件下驅(qū)動整個系統(tǒng)的技術(shù)升級成為我們迫切需要解決的問題。78模型驅(qū)動的體系結(jié)構(gòu)MDA(Model Driven Architecture)MDA is OMGs next step in solving integration problems.79MDA的主要思想MDA的主要思想是分離業(yè)務(wù)功能分析與設(shè)計和實現(xiàn)技術(shù)與平臺之間緊耦合的關(guān)系,從而將技術(shù)與平臺變化對系統(tǒng)的影響降低到最小程度。MDA極大地加強了應(yīng)用模型與領(lǐng)域模型在整個軟件生命周期中的復(fù)用。80MDA的主要思想與實現(xiàn)技術(shù)和平臺無關(guān)、描述業(yè)務(wù)需求的功能模型(P
38、latform-Independent Model, PIM)與具體實現(xiàn)技術(shù)和平臺相關(guān)的應(yīng)用模型(Platform-Specific Model, PSM)MDA將PIM抽象出來,針對不同實現(xiàn)技術(shù)與平臺制訂多個映射規(guī)則,然后通過這些映射規(guī)則及輔助工具將PIM轉(zhuǎn)換成PSM,再將PSM不斷求精直至形成最后代碼。81MDA的主要思想PIMMappingsPSMCORBA specificplatform modelsPSMEJB specificplatform modelsPSMXML specificplatform modelsPSM.NET specificplatform modelsPS
39、MWEB specificplatform modelsCORBA/CCMJ2EE/EJBSOAP/XMLDCOM/.NETWEB/WSDL82Building an MDA ApplicationStart with a Platform-Independent Model (PIM) representing business functionality and behavior, undistorted by technology details.Platform-IndependentModelA Detailed Model, stating Pre- and Post-Condit
40、ions in OCL, and Semantics in Action Language83Generating Platform-Specific ModelPlatform-IndependentModelMap a PIM to Specific Middleware Technologies via OMG Standard MappingsMDA tool applies a standard mapping to generate Platform-Specific Model (PSM) from the PIM. Code is partially automatic, pa
41、rtially hand-written.CORBA Model84Mapping to Multiple Deployment TechnologiesPlatform-IndependentModelCORBA ModelMDA tool applies an standard mapping to generate Platform-Specific Model (PSM) from the PIM. Code is partially automatic, partially hand-written.Java/EJBModelXML/SOAPModelOtherModelMap a
42、PIM to Many Middleware Technologies via OMG Standard Mappings85Generating ImplementationsPlatform-IndependentModelCORBA ModelMDA Tool generates all or most of the implementation code for deployment technology selected by the developer.Java/EJBModelCORBAXML/SOAPModelJava/EJBXML/SOAPOtherOtherModelMap
43、 PSM to application interfaces, code, GUI descriptors, SQL queries, etc.86Integrating Legacy & COTSPlatform-IndependentModelLegacyAppMDA Tools for reverse engineering automate discovery of models for re-integration on new platforms.COTSAppOtherOtherModelReverse-engineering existing application into
44、a model and redeploy.87Automating BridgesCORBA ModelXML/SOAPModelPlatform-IndependentModelCORBA SystemXML/SOAPSystemInteropBridgeMDA Tools combine application and platform knowledge to generate bridgesBridge generation is simplified by common application models, simplifying creation of integrated ap
45、plications both within and across enterprises.88MDA帶來的好處增強軟件復(fù)用性增強軟件可移植性提高軟件開發(fā)效率、降低成本降低軟件維護成本推動軟件自動化進程89MDA的構(gòu)成90MDA的核心以下標(biāo)準(zhǔn)或規(guī)范構(gòu)成了MDA的核心:統(tǒng)一建模語言(Uniform Modeling Language, UML,建模工具)元對象設(shè)施(Mete-Object Facility, MOF,標(biāo)準(zhǔn)的建模與交換結(jié)構(gòu))公共倉庫元模型(Common Warehouse Metamodel , CWM,數(shù)據(jù)倉庫的標(biāo)準(zhǔn))基于XML的元數(shù)據(jù)交換(XML Metadata Interchange , XMI,信息交換的標(biāo)準(zhǔn)格式)等。此外,MDA還將標(biāo)準(zhǔn)化少數(shù)通用領(lǐng)域的PIM、基于特定于中間件標(biāo)準(zhǔn)的PSM、以及PIM與PSM之間的映射規(guī)則,為設(shè)計到代碼的自動生成提供基礎(chǔ)。91UML 2.0MDA的需求:精確的語義可執(zhí)行模型自動代碼生成更強的描述能力針對特定領(lǐng)域的可擴充性92UML ProfilesA UML pro a set of extensions to UML using the built-in extension facilities of UML, stereotypes and tagged values. 93MOF (Me
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球滑靴式分揀系統(tǒng)行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球民用航空機翼行業(yè)調(diào)研及趨勢分析報告
- 為他人貸款合同擔(dān)保
- 叉車購銷合同模板
- 2025物料購置合同管理操作規(guī)程
- 學(xué)校商鋪租賃合同范本
- 提高組織和協(xié)調(diào)能力的培訓(xùn)
- 施工設(shè)計合同
- 商鋪租賃合同范本簡單
- 人才招聘中介服務(wù)合同模板
- 安全文明施工的管理要點
- 附屬醫(yī)院神經(jīng)內(nèi)科中長期發(fā)展規(guī)劃五年發(fā)展規(guī)劃
- 中醫(yī)中風(fēng)病(腦梗死)診療方案
- GMP-基礎(chǔ)知識培訓(xùn)
- 人教版小學(xué)六年級數(shù)學(xué)下冊(全冊)教案
- 人教版二年級語文上冊同音字歸類
- 高二數(shù)學(xué)下學(xué)期教學(xué)計劃
- 文學(xué)類作品閱讀練習(xí)-2023年中考語文考前專項練習(xí)(浙江紹興)(含解析)
- 第五章硅酸鹽分析
- 外科學(xué)總論-第十四章腫瘤
- 網(wǎng)絡(luò)反詐知識競賽參考題庫100題(含答案)
評論
0/150
提交評論