面向象軟件工程標(biāo)準(zhǔn)建模語言UML_第1頁
面向象軟件工程標(biāo)準(zhǔn)建模語言UML_第2頁
面向象軟件工程標(biāo)準(zhǔn)建模語言UML_第3頁
面向象軟件工程標(biāo)準(zhǔn)建模語言UML_第4頁
面向象軟件工程標(biāo)準(zhǔn)建模語言UML_第5頁
已閱讀5頁,還剩100頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο筌浖こ蹋?biāo)準(zhǔn)建模語言u(píng)ml) 李 宣 東 南京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系面向?qū)ο筌浖こ堂嫦驅(qū)ο?“面向?qū)ο蟆笔且环N認(rèn)識(shí)客觀世界的世界觀,這種世界觀將客觀世界看成是有許多不同種類的對(duì)象構(gòu)成的,每個(gè)對(duì)象有自己的內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律,不同對(duì)象之間的相互聯(lián)系、相互作用就構(gòu)成了完整的客觀世界。面向?qū)ο筌浖こ堂嫦驅(qū)ο?“面向?qū)ο蟆笔菑慕Y(jié)構(gòu)組織的角度去模擬客觀世界的一種方法,這種方法的基本著眼點(diǎn)是構(gòu)成客觀世界的那些成分-對(duì)象。 用“面向?qū)ο蟆钡挠^點(diǎn)去認(rèn)識(shí)客觀世界,用“面向?qū)ο蟆钡姆椒ㄈツM客觀世界,這就構(gòu)成了“面向?qū)ο蟆钡耐暾x。面向?qū)ο筌浖こ堂嫦驅(qū)ο蟾拍?對(duì)象 對(duì)象是現(xiàn)實(shí)世界中個(gè)體或事物的抽象

2、表示,是其屬性和相關(guān)操作的封裝。屬性表示對(duì)象的性質(zhì),屬性值規(guī)定了對(duì)象所有可能的狀態(tài)。對(duì)象的操作是指該對(duì)象可以展現(xiàn)的外部服務(wù)。面向?qū)ο筌浖こ堂嫦驅(qū)ο蟾拍?類和實(shí)例 類是某些對(duì)象的共同特性的表示,它描述了這些對(duì)象內(nèi)部是如何構(gòu)造的。相同類的對(duì)象在它們的操作和它們的信息結(jié)構(gòu)兩個(gè)方面都有相同的定義。 在面向?qū)ο笙到y(tǒng)中,每個(gè)對(duì)象都屬于一個(gè)類。屬于某個(gè)特定類的對(duì)象稱為該類的實(shí)例。因此,常常把對(duì)象和實(shí)例當(dāng)作同義詞。實(shí)例是從某類創(chuàng)建的一個(gè)對(duì)象。面向?qū)ο筌浖こ堂嫦驅(qū)ο蟾拍?繼承 如果類b繼承類a,那么類a中描述的操作和信息結(jié)構(gòu)將成為類b的一部分。 借助繼承,可以表示類之間的類似性,并且在其他類能繼承的一個(gè)類中

3、描述這些相似性。因此,就能夠復(fù)用公共的描述。繼承常常被提倡為軟件工業(yè)界中關(guān)于復(fù)用的一個(gè)核心思想。繼承還有利于軟件維護(hù)。 通過抽取和共享公共特性就能夠通用化一些類,并且把它們放在繼承層次的更高位置。同樣,如果希望增加新類,可以尋找這樣一個(gè)類,它已經(jīng)提供了適用于該新類的某些操作和信息結(jié)構(gòu)。然后,讓新類繼承這個(gè)類,只需增加該新類所獨(dú)有的那些內(nèi)容。然后,使這個(gè)類專用化。建立對(duì)象模型 identifying classes and objects (識(shí)別對(duì)象和類) specifying attributes (說明對(duì)象屬性) defining operations (定義對(duì)象操作) finalizing

4、 the object definition (最終確定對(duì)象定義)面向?qū)ο蟮倪^程模型planning riskanalysis customercommunication customerevaluation engineering,construction & releaseidentifycandidateclassesconstructnth iterationof systemlook upclassesin libraryput new classesin libraryextractclassesif availableengineerclassesif unavailab

5、le analysis design programming testing面向?qū)ο筌浖こ?面向?qū)ο蠼?面向?qū)ο笏枷氡容^自然地模擬了人類認(rèn)識(shí)客觀世界的方式,面向?qū)ο蟮姆治龊驮O(shè)計(jì)應(yīng)該從建模開始。構(gòu)造模型通常出于以下幾個(gè)目地: 在著手解決一個(gè)復(fù)雜問題之前,對(duì)解決方案進(jìn)行檢測(cè); 用于同客戶或其他相關(guān)人員進(jìn)行交流; 加強(qiáng)視覺效果; 對(duì)復(fù)雜問題進(jìn)行簡化。面向?qū)ο筌浖こ堂嫦驅(qū)ο蠼?模型是對(duì)事物的一種抽象,人們常常在正式建造實(shí)物之前,首先建立一個(gè)簡化的模型,以便更透徹地了解它的本質(zhì),抓住問題的要害; 在模型中,人們總是剔除那些與問題無關(guān)的、非本質(zhì)的東西,從而使模型與真實(shí)的實(shí)體相比更加簡單、易于把握;

6、面向?qū)ο筌浖こ堂嫦驅(qū)ο蠼?在建造一個(gè)復(fù)雜系統(tǒng)時(shí),開發(fā)者必須從多種不同的角度來抽象系統(tǒng),使用準(zhǔn)確的符號(hào)來構(gòu)造模型,然后檢查這些模型是否符合系統(tǒng)的需求,并逐步添加細(xì)節(jié),從而將這些模型轉(zhuǎn)化成實(shí)現(xiàn)方案。 建模語言是面向?qū)ο蠼V械囊粋€(gè)非常關(guān)鍵的因素。標(biāo)準(zhǔn)建模語言u(píng)mluml的設(shè)計(jì)目標(biāo): 運(yùn)用面向?qū)ο蟾拍顏順?gòu)造系統(tǒng)模型 建立起從概念模型直至可執(zhí)行體之間明顯的對(duì)應(yīng)關(guān)系 著眼于那些有重大影響的問題 創(chuàng)建一種對(duì)人和機(jī)器都適用的建模語言標(biāo)準(zhǔn)建模語言u(píng)mluml概要 uml由omg與1997年11月批準(zhǔn)為標(biāo)準(zhǔn)建模語言。 uml建立在當(dāng)今國際上最有代表性的三種面向?qū)ο蠓椒ǎ╞ooch方法,omt方法,oose方

7、法)的基礎(chǔ)之上。 uml是一種建模語言而不是一種方法,uml本身是獨(dú)立于過程的。標(biāo)準(zhǔn)建模語言u(píng)ml uml為人們提供了從不同的角度去觀察和展示系統(tǒng)的各種特征的一種標(biāo)準(zhǔn)表達(dá)方式。在uml中,從任何一個(gè)角度對(duì)系統(tǒng)所作的抽象都可能需要用幾種模型圖來描述,而這些來自不同角度的模型圖最終組成了系統(tǒng)的完整模型。標(biāo)準(zhǔn)建模語言u(píng)ml 一般而言,我們可以從以下幾種常用的視角來描述一個(gè)系統(tǒng): 系統(tǒng)的使用實(shí)例:從系統(tǒng)外部的操作者的角度描述系統(tǒng)的功能。 系統(tǒng)的邏輯結(jié)構(gòu):描述系統(tǒng)內(nèi)部的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為,即從內(nèi)部描述如何設(shè)計(jì)實(shí)現(xiàn)系統(tǒng)功能。 系統(tǒng)的構(gòu)成:描述系統(tǒng)由哪些程序構(gòu)件所組成。 系統(tǒng)的并發(fā)性:描述系統(tǒng)的并發(fā)性,強(qiáng)調(diào)

8、并發(fā)系統(tǒng)中存在的各種通信和同步問題。 系統(tǒng)的配置:描述系統(tǒng)的軟件和各種硬件設(shè)備之間的配置關(guān)系。標(biāo)準(zhǔn)建模語言u(píng)mluml模型圖(5類,10種): 用例圖 靜態(tài)圖(類圖,對(duì)象圖,包圖) 行為圖(狀態(tài)圖,活動(dòng)圖) 交互圖(順序圖,合作圖) 實(shí)現(xiàn)圖(構(gòu)件圖,配置圖)標(biāo)準(zhǔn)建模語言u(píng)mluml語義 元-元模型: 元模型的基礎(chǔ)體系結(jié)構(gòu),定義一種說明元模型的語言 元模型: 元-元模型的一個(gè)實(shí)例,定義一種說明模型的語言 模型: 元模型的一個(gè)實(shí)例,定義一種語言來描述信息領(lǐng)域 用戶對(duì)象: 模型的一個(gè)實(shí)例,定義一個(gè)特定的領(lǐng)域標(biāo)準(zhǔn)建模語言u(píng)mluml主要文件: uml概要(uml summary) uml語義(uml

9、semantics) uml表示法指南(uml notation guide) 對(duì)象約束語言規(guī)約(object contraint language specification):該文件定義并介紹了一種對(duì)象約束語言(ocl),其用途是用來說明在圖形化的系統(tǒng)模型中不能充分表達(dá)的建模信息。它是一種形式化語言。http:/ (用例圖) 從本質(zhì)上將,一個(gè)用例是用戶與計(jì)算機(jī)之間為達(dá)到某個(gè)目的的一次典型交互作用: 用例描述了用戶提出的一些可見的需求; 用例可大可小; 用例對(duì)應(yīng)一個(gè)具體的用戶目標(biāo)標(biāo)準(zhǔn)建模語言u(píng)ml (用例圖) 用例圖描述系統(tǒng)外部的執(zhí)行者與系統(tǒng)的用例之間的某種聯(lián)系。 所謂用例是指對(duì)系統(tǒng)提供的功

10、能(或稱系統(tǒng)的用途)的一種描述; 執(zhí)行者是那些可能使用這些用例的人或外部系統(tǒng); 用例和執(zhí)行者之間的聯(lián)系描述了“誰使用哪個(gè)用例”。標(biāo)準(zhǔn)建模語言u(píng)ml (用例圖) 用例圖著重于從系統(tǒng)外部執(zhí)行者的角度來描述系統(tǒng)需要提供哪些功能,并且指明了這些功能的執(zhí)行者是誰; 用例圖在uml方法中占有十分重要的地位,人們甚至稱uml是一種用例圖驅(qū)動(dòng)的開發(fā)方法。標(biāo)準(zhǔn)建模語言u(píng)ml (用例圖)用例圖中的圖符: 用例 執(zhí)行者 系統(tǒng):用于界定系統(tǒng)功能范圍,描述該系統(tǒng)功能的用例都置于其中,而描述外部實(shí)體的執(zhí)行者都置于其外。 關(guān)聯(lián):連接執(zhí)行者和用例,表示執(zhí)行者所代表的系統(tǒng)外部實(shí)體與該用例所描述的系統(tǒng)需求有關(guān)。標(biāo)準(zhǔn)建模語言u(píng)ml

11、 (用例圖)用例圖中的圖符: 使用:由用例a連向用例b,表示用例a中使用了用例b中的行為或功能。 擴(kuò)展:由用例a連向用例b,表示用例b描述了一項(xiàng)基本需求,而用例a則描述了該基本需求的特殊情況。 注釋體:對(duì)uml實(shí)體進(jìn)行文字描述 注釋連接:將注釋體與要描述的實(shí)體連接,說明該注釋體是針對(duì)該實(shí)體所進(jìn)行的描述。使用擴(kuò)展標(biāo)準(zhǔn)建模語言u(píng)ml (用例圖)設(shè)置邊界風(fēng)險(xiǎn)分析交易估計(jì)進(jìn)行交易超越邊界更新帳目評(píng)價(jià)貿(mào)易經(jīng)理營銷人員記帳系統(tǒng)銷售人員使用使用擴(kuò)展標(biāo)準(zhǔn)建模語言u(píng)ml (用例圖)用例模型的獲?。?獲取執(zhí)行者 獲取用例標(biāo)準(zhǔn)建模語言u(píng)ml (用例圖)獲取執(zhí)行者: 誰使用系統(tǒng)的主要功能(主要使用者)? 誰需要系統(tǒng)支

12、持他們的日常工作? 誰來維護(hù)、管理系統(tǒng)使其能正常工作(輔助使用者)? 系統(tǒng)需要控制哪些硬件? 系統(tǒng)需要與其他哪些系統(tǒng)交互? 對(duì)系統(tǒng)產(chǎn)生的結(jié)果感興趣的是哪些人?標(biāo)準(zhǔn)建模語言u(píng)ml (用例圖)獲取用例: 執(zhí)行者要求系統(tǒng)提供哪些功能? 執(zhí)行者需要讀、產(chǎn)生、刪除、修改或存儲(chǔ)系統(tǒng)中的信息有哪些類型? 必須提醒執(zhí)行者的系統(tǒng)事件有哪些? 執(zhí)行者必須提醒系統(tǒng)事件有哪些?怎樣把這些事件表示成用例中的功能?標(biāo)準(zhǔn)建模語言u(píng)ml (類圖) 在面向?qū)ο蟮慕<夹g(shù)中,類、對(duì)象和它們之間的關(guān)系是最基本的建模元素。對(duì)于一個(gè)想要描述的系統(tǒng),其類模型、對(duì)象模型以及它們之間的關(guān)系揭示了系統(tǒng)的結(jié)構(gòu)。 類圖描述了系統(tǒng)中的類及其相互之間

13、的各種關(guān)系,其本質(zhì)反映了系統(tǒng)中包含的各種對(duì)象的類型以及對(duì)象間的各種靜態(tài)關(guān)系(關(guān)聯(lián),子類型)。標(biāo)準(zhǔn)建模語言u(píng)ml (類圖)類圖中的圖符: 類:表示一個(gè)類,其中第一欄是類的 名,第二欄是類的屬性,第三欄是類的操作。 包:包是一種分組機(jī)制,表示一個(gè)類 圖集合。 關(guān)聯(lián):用于表示類的對(duì)象之間的關(guān)系。其特殊形式有組成關(guān)聯(lián)和聚集關(guān)聯(lián)。operationsattributesclasspackage標(biāo)準(zhǔn)建模語言u(píng)ml (類圖)類圖中的圖符: 聚集關(guān)聯(lián):用于表示類的對(duì)象之間的關(guān)系是整體與部分的關(guān)系。 組成關(guān)聯(lián):用于表示類的對(duì)象之間的關(guān)系:整體擁有各部分,部分與整體共存,如整體不存在了,部分也會(huì)隨之消失。 泛化關(guān)

14、聯(lián):泛化關(guān)系(繼承關(guān)系)定義了類和包間的一般元素和特殊元素之間的分類關(guān)系。標(biāo)準(zhǔn)建模語言u(píng)ml (類圖)類圖中的圖符: 依賴關(guān)系:有兩個(gè)類或包元素x、y,修改元素x的定義可能會(huì)引起對(duì)另一個(gè)元素y的定義的修改,則稱元素y依賴于元素x。 對(duì)象:類的一個(gè)實(shí)例。 鏈接:用于表示對(duì)象間的關(guān)聯(lián)關(guān)系的一個(gè)實(shí)例。valuesobject標(biāo)準(zhǔn)建模語言u(píng)ml (類圖)訂單datereceivedisprepaidnumber:stringprce:moneydispatch()close()訂單項(xiàng)quantity:integerprice:moneyissatisfied:boolean1*項(xiàng)客戶nameaddre

15、sscreditrating():string團(tuán)體客戶contactnamecreditratingcreditlimitremind()billformonth(intrger)雇員產(chǎn)品個(gè)人客戶creditcard#creditrating()=“poor”銷售代表1*0.11*標(biāo)準(zhǔn)建模語言u(píng)ml (對(duì)象圖)對(duì)象圖 對(duì)象圖是類圖的一種變形。除了在對(duì)象名下面要加下劃線以外,對(duì)象圖中所使用的符號(hào)與類圖基本相同。 對(duì)象圖是類圖的一種實(shí)例化。一張對(duì)象圖表示的是與其對(duì)應(yīng)的類圖的一個(gè)具體實(shí)例,即系統(tǒng)在某一時(shí)期或者某一特定時(shí)刻可能存在的具體對(duì)象實(shí)例以及它們相互之間的具體關(guān)系。標(biāo)準(zhǔn)建模語言u(píng)ml (對(duì)象圖)

16、作者計(jì)算機(jī)名字:string內(nèi)存:ineger名字:string年齡:integer0.1uses1.*小王:作者小王的工作pc:計(jì)算機(jī)名字 = “王小影”年齡 = 32小王的工作pc:計(jì)算機(jī)名字 = “compaq x”內(nèi)存 = 32名字 = “dell486”內(nèi)存 = 64類圖對(duì)象圖標(biāo)準(zhǔn)建模語言u(píng)ml (對(duì)象圖) 對(duì)象圖并不象類圖那樣具有重要的地位,但是利用它可以幫助我們通過具體的實(shí)例分析,更具體直觀地了解復(fù)雜系統(tǒng)類圖的豐富內(nèi)涵。 對(duì)象圖還常常被用作合作圖的一部分,用以展示一組對(duì)象實(shí)例之間的動(dòng)態(tài)協(xié)作關(guān)系。標(biāo)準(zhǔn)建模語言u(píng)ml (包圖) 包是類的集合。 包圖所顯示的是類的包以及這些包之間的依賴

17、關(guān)系。 如果兩個(gè)包中的任意兩個(gè)類之間存在依賴關(guān)系,則這兩個(gè)包之間存在依賴關(guān)系。 包的依賴是不傳遞的。標(biāo)準(zhǔn)建模語言u(píng)ml (包圖)訂單獲取界面訂單獲取應(yīng)用awt郵件發(fā)送清單界面郵件發(fā)送清單應(yīng)用訂單顧客標(biāo)準(zhǔn)建模語言u(píng)ml (包圖)何時(shí)使用包圖: 在大項(xiàng)目中,包圖是一種重要工具(有專家建議,只要你不能將整個(gè)系統(tǒng)的類圖壓縮到一張a4紙上,你就應(yīng)該使用包圖); 依賴產(chǎn)生耦合,應(yīng)該盡量將依賴性減少到最低程度; 包的概念對(duì)測(cè)試也是特別有用的。標(biāo)準(zhǔn)建模語言u(píng)ml (狀態(tài)圖)狀態(tài)圖 狀態(tài)圖是對(duì)類的一種補(bǔ)充描述,它展示了此類對(duì)象所具有的可能的狀態(tài)以及某些事件發(fā)生時(shí)其狀態(tài)的轉(zhuǎn)移情況。 在狀態(tài)圖中,狀態(tài)由圓角矩形表示

18、。狀態(tài)的改變稱作轉(zhuǎn)移,狀態(tài)轉(zhuǎn)移由箭頭表示,箭頭旁可以標(biāo)出轉(zhuǎn)移發(fā)生的條件。狀態(tài)轉(zhuǎn)移可以伴隨有某個(gè)動(dòng)作,它表明當(dāng)轉(zhuǎn)移發(fā)生時(shí)系統(tǒng)要做什么。標(biāo)準(zhǔn)建模語言u(píng)ml (狀態(tài)圖)下降狀態(tài)在第一層上升狀態(tài)向第一層下降空閑狀態(tài)上升到達(dá)到達(dá)上升超時(shí)下降到達(dá)第一層標(biāo)準(zhǔn)建模語言u(píng)ml (順序圖)順序圖 順序圖描述了對(duì)象之間動(dòng)態(tài)的交互關(guān)系,著重體現(xiàn)對(duì)象間消息傳遞的時(shí)間順序。 順序圖由一組對(duì)象構(gòu)成,每個(gè)對(duì)象分別帶有一條豎線,稱作對(duì)象的生命線,它代表時(shí)間軸,時(shí)間沿豎線向下延伸。順序圖描述了這些對(duì)象隨著時(shí)間的推移相互之間交換消息的過程。消息用從一條垂直的對(duì)象生命線指向另一個(gè)對(duì)象的生命線的水平箭頭表示。圖中還可以根據(jù)需要增加有關(guān)

19、時(shí)間的說明和其他注釋。標(biāo)準(zhǔn)建模語言u(píng)ml (順序圖):計(jì)算機(jī):打印服務(wù)程序:打印隊(duì)列:打印機(jī)打印文件打印文件打印機(jī)空閑保存文件打印機(jī)忙標(biāo)準(zhǔn)建模語言u(píng)ml (順序圖)p1p2p3e1e2e3e4e5e6e7e8e9e10標(biāo)準(zhǔn)建模語言u(píng)ml (順序圖)順序圖中的事件順序: 因果性(causality): 對(duì)同一消息而言,發(fā)送事件先于接收事件。 可控性(controlability): 對(duì)同一對(duì)象而言,事件p出現(xiàn)在發(fā)送事件q的上方,則p先于q。 隊(duì)列性(fifo): 對(duì)同一對(duì)象而言,接收事件p出現(xiàn)在接收事件q的上方,并且它們分別對(duì)應(yīng)的發(fā)送事件也位于同一個(gè)對(duì)象,則p先于q。標(biāo)準(zhǔn)建模語言u(píng)ml (順序圖

20、)e1e2e3e4e5e6e8e7e9e10e12e11p1p2p3p1p2p3e1e2e3e4e6e5e7e8e9e11e10e12標(biāo)準(zhǔn)建模語言u(píng)ml (合作圖)合作圖 與順序圖作用相同,合作圖也是用來描述系統(tǒng)中對(duì)象之間的動(dòng)態(tài)協(xié)作關(guān)系。合作圖側(cè)重于描述各個(gè)對(duì)象之間存在的消息收發(fā)關(guān)系(交互關(guān)系),而不專門突出這些消息發(fā)送的時(shí)間順序。 在合作圖中,對(duì)象同樣是用一個(gè)對(duì)象圖符來表示,箭頭表示消息發(fā)送的方向,而消息執(zhí)行的順序則由消息的編號(hào)來表明。標(biāo)準(zhǔn)建模語言u(píng)ml (合作圖):計(jì)算機(jī):打印隊(duì)列:打印服務(wù)程序:打印機(jī)1. 打印文件 3. 保存文件打印機(jī)忙2. 打印文件打印機(jī)空閑標(biāo)準(zhǔn)建模語言u(píng)ml (合作

21、圖) 合作圖的布局方法能更清楚地表示出對(duì)象之間靜態(tài)的連接關(guān)系。 順序圖突出執(zhí)行的時(shí)序,能更方便地看出事情發(fā)生的次序。 如果要描述在一個(gè)用例中的幾個(gè)對(duì)象協(xié)同工作的行為,交互圖是一種有力的工具。交互圖擅長顯示對(duì)象之間的合作關(guān)系,盡管它并不對(duì)這些對(duì)象的行為進(jìn)行精確的定義。 如果想要描述跨越多個(gè)用例的單個(gè)對(duì)象的行為,應(yīng)當(dāng)使用狀態(tài)圖;如果想要描述跨越多個(gè)用例或多個(gè)線程的多個(gè)對(duì)象的復(fù)雜行為,則需考慮使用活動(dòng)圖。標(biāo)準(zhǔn)建模語言u(píng)ml (活動(dòng)圖)活動(dòng)圖 活動(dòng)圖描述系統(tǒng)中各種活動(dòng)的執(zhí)行順序,通常用于描述一個(gè)操作中所要進(jìn)行的各項(xiàng)活動(dòng)的執(zhí)行流程。同時(shí),它也常被用來描述一個(gè)用例的處理流程,或者某種交互流程。 活動(dòng)圖由一

22、些活動(dòng)組成,圖中同時(shí)包括了對(duì)這些活動(dòng)的說明。當(dāng)一個(gè)活動(dòng)執(zhí)行完畢之后,控制將沿著控制轉(zhuǎn)移箭頭轉(zhuǎn)向下一個(gè)活動(dòng)。活動(dòng)圖中還可以方便地描述控制轉(zhuǎn)移的條件以及并行執(zhí)行等要求。標(biāo)準(zhǔn)建模語言u(píng)ml (活動(dòng)圖)加水到容器中將咖啡放到過濾器中點(diǎn)燃咖啡爐取出咖啡杯把過濾器放到咖啡爐上沖調(diào)咖啡倒咖啡找飲料取一聽可口可樂喝飲料人找到可口可樂沒有可口可樂沒有咖啡找到咖啡熄滅咖啡爐標(biāo)準(zhǔn)建模語言u(píng)ml (活動(dòng)圖) 活動(dòng)圖最適合支持描述并行行為,這使之成為支持工作流建模的最好工具。 活動(dòng)圖最大的缺點(diǎn)是很難清楚地描述動(dòng)作與對(duì)象之間的關(guān)系。標(biāo)準(zhǔn)建模語言u(píng)ml (活動(dòng)圖) 對(duì)于以下情況可以使用活動(dòng)圖:(1)分析用例;(2)理解牽涉

23、多個(gè)用例的工作流;(3)處理多線程應(yīng)用。 在下列情況下,一般不要使用活動(dòng)圖:(1)顯示對(duì)象間合作;(2)顯示對(duì)象在其生命周期內(nèi)的運(yùn)轉(zhuǎn)情況。標(biāo)準(zhǔn)建模語言u(píng)ml (構(gòu)件圖)構(gòu)件圖 構(gòu)件圖描述軟件構(gòu)件以及它們之間的依賴關(guān)系,從而便于人們分析和發(fā)現(xiàn)當(dāng)修改某個(gè)構(gòu)件時(shí)可能對(duì)那些構(gòu)件產(chǎn)生影響,以便對(duì)它們做相應(yīng)的修改或更新。構(gòu)件可以是源代碼構(gòu)件、二進(jìn)制目標(biāo)碼構(gòu)件、可執(zhí)行構(gòu)件或文檔構(gòu)件。標(biāo)準(zhǔn)建模語言u(píng)ml (構(gòu)件圖) whnd.cpp: 窗口處理器 graphic.dll:圖形庫 comhnd.cpp: 命令處理器 main.cpp:主類 whnd.obj: 窗口處理器 comhnd.obj: 命令處理器 ma

24、in.obj:主類 client.exe: 客戶程序標(biāo)準(zhǔn)建模語言u(píng)ml (配置圖)配置圖 配置圖描述系統(tǒng)中硬件和軟件的物理配置情況和系統(tǒng)體系結(jié)構(gòu)。 在配置圖中,用結(jié)點(diǎn)表示實(shí)際的物理設(shè)備,如計(jì)算機(jī)和各種外部設(shè)備等,并根據(jù)它們之間的連接關(guān)系,將相應(yīng)的結(jié)點(diǎn)連接起來,并說明其連接方式。在結(jié)點(diǎn)里面,說明分配給該結(jié)點(diǎn)上運(yùn)行的可執(zhí)行構(gòu)件或?qū)ο?,從而說明哪些軟件單元被分配在哪些結(jié)點(diǎn)上運(yùn)行。標(biāo)準(zhǔn)建模語言u(píng)ml (配置圖)客戶a:個(gè)人電腦pc客戶b:個(gè)人電腦pc數(shù)據(jù)庫服務(wù)器:vax服務(wù)器:02tcp/ip協(xié)議tcp/ip協(xié)議decnet協(xié)議uml支撐環(huán)境rational rose 基于uml的模型驅(qū)動(dòng)的軟件開發(fā)環(huán)

25、境 全面支持團(tuán)隊(duì)整體合作的開發(fā)形式 集成了最新軟件開發(fā)技術(shù)和思想uml的擴(kuò)展 實(shí)時(shí)模型 uml-rt 可執(zhí)行模型 企業(yè)計(jì)算 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 uml框架下

26、的軟件工程 我們已經(jīng)有了統(tǒng)一的建模語言u(píng)ml 我們正在擁有統(tǒng)一軟件過程(rup?) 下一步是什么? a software component marketplace quality from the beginning give soul to software process a complete uml based software platform ivar jacobsonuml時(shí)間表 1997 - uml version 1.0, version 1.1 1998 - uml version 1.3 2000 - uml version 1.4 ? 2002 - uml versio

27、n 2.0 ? 2004 - 一個(gè)穩(wěn)定完善的uml version ?uml的國際會(huì)議 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 intern

28、ational conference on the unified modeling 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, dres

29、den, germany. 2003 - the sixth international conference on the unified modeling language, 20 24, oct., 2003, usa. lecture notes in computer science, springeruml當(dāng)前的研究熱點(diǎn)當(dāng)前圍繞uml的研究工作集中在兩個(gè)方面: 使得uml更加精確 為uml提供有效的工具支持模型驅(qū)動(dòng)的體系結(jié)構(gòu)model driven architecture (mda) omg (object management group) omg是世界上最大的計(jì)算機(jī)工業(yè)聯(lián)盟,

30、于1989年4月有8個(gè)公司發(fā)起,目前有800多家成員。who are omg?at&tbeaborlandboeingcacitigroupcompaqericssonfordfujitsuglaxo smithklinehewlett packardhitachihyperionibmionaio softwarekabirakennedy carterjohn deeremicrosoftmitremsc.softwarenasanecnetgenicsnttoasisoraclepfizerrationalsaga softwaresapsas institutesecantsi

31、emenssprintsununisysvertel異構(gòu)-無處不在 programming languages 3 million cobol programmers 1.6 million vb programmers 1.1 million c/c+ programmers operating systems unix, mvs, vms, macos, windows (all 8!), palmos windows 3.1: its still out there! embedded devices (mobile, set-top, etc.) networks ethernet,

32、atm, ip, ss7, firewire, usb bluetooth, 802.11b, homerfomg的技術(shù)目標(biāo) 問題:分布異構(gòu)限制了互操作,同一功能用多種語言在多種環(huán)境下重復(fù)實(shí)現(xiàn)。 目標(biāo):使得基于對(duì)象的軟件在分布異構(gòu)環(huán)境下具有良好的可重用性、可移植性和互操作性,從而能夠在由多種主流硬件平臺(tái)上運(yùn)行多種操作系統(tǒng)構(gòu)成的異構(gòu)分布環(huán)境中,方便地建立異構(gòu)分布應(yīng)用系統(tǒng)。如何集成? 不存在統(tǒng)一的硬件平臺(tái) 不存在統(tǒng)一的操作系統(tǒng) 不存在統(tǒng)一的網(wǎng)絡(luò)協(xié)議 不存在統(tǒng)一的應(yīng)用模式 必須通過接口和互操作達(dá)到集成。omg的任務(wù) the omgs mission is to help computer users

33、 solve integration problems by supplying open, vendor-neutral interoperability specifications.omg的產(chǎn)品 common object request broker architecturecorba remains the only language- and platform-neutral interoperability standard unified modeling language umltm remains the worlds only standardized modeling

34、language common warehouse metamodel cwmtm, the integration of the last two data warehousing initiatives meta-object facility moftm, the repository standard xml metadata interchange xmitm, the xml-uml standard中間件 中間件是軟件領(lǐng)域近十年來發(fā)展起來的一種新技術(shù),其泛指位于操作系統(tǒng)與應(yīng)用軟件之間、能夠屏蔽操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議的差異、為異構(gòu)系統(tǒng)之間提供通訊服務(wù)的軟件。 中間件中間件 中間件屏蔽了

35、底層系統(tǒng)軟件(包括操作系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)庫管理系統(tǒng)等)的異構(gòu)性和復(fù)雜性,通過一個(gè)簡單而統(tǒng)一的開發(fā)環(huán)境,減少程序設(shè)計(jì)的復(fù)雜性并提高程序的可移植性,使得開發(fā)人員將注意力集中在自己的業(yè)務(wù)上,大大減少了技術(shù)上的負(fù)擔(dān)。中間件帶給應(yīng)用系統(tǒng)的,不只是開發(fā)的簡便和開發(fā)周期的縮短,也減少了系統(tǒng)的維護(hù)、運(yùn)行和管理的工作量,從而減少了系統(tǒng)總體費(fèi)用的投入。中間件目前的主流中間件可以分為五類: 數(shù)據(jù)訪問中間件 遠(yuǎn)程過程調(diào)用中間件 事務(wù)中間件 消息中間件 面向?qū)ο笾虚g件面向?qū)ο笾虚g件 面向?qū)ο蟮闹虚g件是對(duì)象技術(shù)和分布式計(jì)算發(fā)展的產(chǎn)物,它提供一種通訊機(jī)制,透明地在異構(gòu)的分布計(jì)算環(huán)境中傳遞對(duì)象請(qǐng)求。 omg的corba 微軟的

36、com sun公司基于ejb的j2ee面向?qū)ο笾虚g件 面向?qū)ο笾虚g件的異構(gòu)性和開放性各有不同:適用于異構(gòu)環(huán)境、開放的corba是internet與企業(yè)應(yīng)用事實(shí)上的工業(yè)標(biāo)準(zhǔn);特定于windows平臺(tái)、專有的com則是桌面系統(tǒng)的首選;基于ejb的j2ee則兼具二者之優(yōu)勢(shì),j2ee是一種利用java2平臺(tái)來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)復(fù)雜問題的體系結(jié)構(gòu),已經(jīng)被許多從事電子商務(wù)的中間件廠商所采納。中間件沒有消除異構(gòu) 由于一個(gè)中間件不能滿足所有用戶的要求,導(dǎo)致多種中間件并存又無法統(tǒng)一,于是為解決異構(gòu)問題提出的中間件本身產(chǎn)生異構(gòu)。 中間件似乎“提升”了異構(gòu)而沒有消除異構(gòu)。中間件沒有消除異構(gòu) 由于

37、難以形成統(tǒng)一的標(biāo)準(zhǔn),中間件的不斷發(fā)展將使得新舊系統(tǒng)之間的集成或系統(tǒng)的演化面臨不同的實(shí)現(xiàn)技術(shù),從而使得如何在保障已有投資的條件下驅(qū)動(dòng)整個(gè)系統(tǒng)的技術(shù)升級(jí)成為我們迫切需要解決的問題。模型驅(qū)動(dòng)的體系結(jié)構(gòu)mda(model driven architecture) mda is omgs next step in solving integration problems.mda的主要思想 mda的主要思想是分離業(yè)務(wù)功能分析與設(shè)計(jì)和實(shí)現(xiàn)技術(shù)與平臺(tái)之間緊耦合的關(guān)系,從而將技術(shù)與平臺(tái)變化對(duì)系統(tǒng)的影響降低到最小程度。 mda極大地加強(qiáng)了應(yīng)用模型與領(lǐng)域模型在整個(gè)軟件生命周期中的復(fù)用。mda的主要思想 與實(shí)現(xiàn)技術(shù)和

38、平臺(tái)無關(guān)、描述業(yè)務(wù)需求的功能模型(platform-independent model, pim) 與具體實(shí)現(xiàn)技術(shù)和平臺(tái)相關(guān)的應(yīng)用模型(platform-specific model, psm) mda將pim抽象出來,針對(duì)不同實(shí)現(xiàn)技術(shù)與平臺(tái)制訂多個(gè)映射規(guī)則,然后通過這些映射規(guī)則及輔助工具將pim轉(zhuǎn)換成psm,再將psm不斷求精直至形成最后代碼。mda的主要思想pimmappingspsmcorba specificplatform modelspsmejb specificplatform modelspsmxml specificplatform modelspsm.net specifi

39、cplatform modelspsmweb specificplatform modelscorba/ccmj2ee/ejbsoap/xmldcom/.netweb/wsdlbuilding an mda applicationstart with a platform-independent model (pim) representing business functionality and behavior, undistorted by technology details.platform-independentmodela detailed model, stating pre-

40、 and post-conditions in ocl, and semantics in action languagegenerating 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

41、 automatic, partially hand-written.corba modelmapping 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/soapmodelothe

42、rmodelmap a pim to many middleware technologies via omg standard mappingsgenerating implementationsplatform-independentmodelcorba modelmda tool generates all or most of the implementation code for deployment technology selected by the developer.java/ejbmodelcorbaxml/soapmodeljava/ejbxml/soapotheroth

43、ermodelmap psm to application interfaces, code, gui descriptors, sql queries, etc.integrating legacy & cotsplatform-independentmodellegacyappmda tools for reverse engineering automate discovery of models for re-integration on new platforms.cotsappotherothermodelreverse-engineering existing appli

44、cation into a model and redeploy.automating 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 int

45、egrated applications both within and across enterprises.mda帶來的好處 增強(qiáng)軟件復(fù)用性 增強(qiáng)軟件可移植性 提高軟件開發(fā)效率、降低成本 降低軟件維護(hù)成本 推動(dòng)軟件自動(dòng)化進(jìn)程mda的構(gòu)成mda的核心以下標(biāo)準(zhǔn)或規(guī)范構(gòu)成了mda的核心:統(tǒng)一建模語言(uniform modeling language, uml,建模工具)元對(duì)象設(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 metada

46、ta interchange , xmi,信息交換的標(biāo)準(zhǔn)格式)等。此外,mda還將標(biāo)準(zhǔn)化少數(shù)通用領(lǐng)域的pim、基于特定于中間件標(biāo)準(zhǔn)的psm、以及pim與psm之間的映射規(guī)則,為設(shè)計(jì)到代碼的自動(dòng)生成提供基礎(chǔ)。uml 2.0mda的需求: 精確的語義 可執(zhí)行模型 自動(dòng)代碼生成 更強(qiáng)的描述能力 針對(duì)特定領(lǐng)域的可擴(kuò)充性u(píng)ml profiles a uml profile is a set of extensions to uml using the built-in extension facilities of uml, stereotypes and tagged values. mof (meta object facility) mof provides the standard modeling and interchange constructs that are used in mda.

溫馨提示

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