




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件工程第7章 面向?qū)ο蠓椒ɑA(chǔ)內(nèi)容摘要l面向?qū)ο蟮幕靖拍頻面向?qū)ο蟮姆治龊驮O(shè)計(jì)過(guò)程lUML概述內(nèi)容摘要l面向?qū)ο蟮姆治龊驮O(shè)計(jì)過(guò)程lUML概述Peter Coad和Edward Yourdon提出用下列等式識(shí)認(rèn)面向?qū)ο蠓椒ǎ好嫦驅(qū)ο?= 對(duì)象(object) + 分類(classification) + 繼承(inheritance) + 通過(guò)消息的通信(communication with messages)可以說(shuō),采用這四個(gè)概念開發(fā)的軟件系統(tǒng)是面向?qū)ο蟮?面向?qū)ο蠓椒ǖ某霈F(xiàn)很快受到計(jì)算機(jī)軟件界的青睞,并成為20世紀(jì)90年代的主流開發(fā)方法。分析其原因:l從認(rèn)知學(xué)的角度來(lái)看,面向?qū)ο蠓椒ǚ?/p>
2、人們對(duì)客觀世界的認(rèn)識(shí)規(guī)律l面向?qū)ο蠓椒ㄩ_發(fā)的軟件系統(tǒng)易于維護(hù),其體系結(jié)構(gòu)易于理解、擴(kuò)充和修改1.面向?qū)ο蠓椒ㄖ械睦^承機(jī)制有力支持軟件的復(fù)用面向?qū)ο蟮幕靖拍?1. (object) 對(duì)象是指一組屬性以及這組屬性上的專用操作的封裝體 屬性(attribute)通常是一些數(shù)據(jù),有時(shí)它也可以是另一個(gè)對(duì)象。每個(gè)對(duì)象都有它自己的屬性值,表示該對(duì)象的狀態(tài)。對(duì)象中的屬性只能通過(guò)該對(duì)象所提供的操作來(lái)存取或修改 操作(operation)(也稱方法或服務(wù))規(guī)定了對(duì)象的行為,表示對(duì)象所能提供的服務(wù)封裝(encapsulation)是一種信息隱蔽技術(shù),用戶只能看見(jiàn)對(duì)象封裝界面上的信息,對(duì)象的內(nèi)部實(shí)現(xiàn)對(duì)用戶是隱蔽的。
3、封裝的目的是使對(duì)象的使用者和生產(chǎn)者分離,使對(duì)象的定義和實(shí)現(xiàn)分開 一個(gè)對(duì)象通??捎蓪?duì)象名、屬性和操作三部分組成2. 類(class) 類是一組具有相同屬性和相同操作的對(duì)象的集合。一個(gè)類中的每個(gè)對(duì)象都是這個(gè)類的一個(gè)實(shí)例(instance) 類是創(chuàng)建對(duì)象的模板,從同一個(gè)類實(shí)例化的每個(gè)對(duì)象都具有相同的結(jié)構(gòu)和行為轎轎 車車型號(hào):字符串型號(hào):字符串顏色:字符串顏色:字符串牌照號(hào):字符串牌照號(hào):字符串張經(jīng)理的轎車張經(jīng)理的轎車型號(hào)型號(hào)= =桑塔納桑塔納顏色顏色= =紅色紅色牌照號(hào)牌照號(hào)= =滬滬AN2037AN2037類類實(shí)例對(duì)象實(shí)例對(duì)象3. 繼承(inheritance) 繼承是類間的基本關(guān)系,它是基于層次
4、關(guān)系的不同類共享數(shù)據(jù)和操作的一種機(jī)制。父類中定義了其所有子類的公共屬性和操作,在子類中除了定義自己特有的屬性和操作外,可以繼承其父類(或祖先類)的屬性和操作,還可以對(duì)父類(或祖先類)中的操作重新定義其實(shí)現(xiàn)方法 矩形矩形長(zhǎng)長(zhǎng)寬寬對(duì)角線對(duì)角線計(jì)算面積計(jì)算面積計(jì)算對(duì)角線計(jì)算對(duì)角線 多邊形多邊形頂點(diǎn)數(shù)頂點(diǎn)數(shù)頂點(diǎn)坐標(biāo)頂點(diǎn)坐標(biāo)計(jì)算面積計(jì)算面積旋轉(zhuǎn)旋轉(zhuǎn)有時(shí),我們定義一個(gè)類,它把一些類組織起來(lái),提供一些公共的行為,但并不需要使用這個(gè)類的實(shí)例,而僅使用其子類的實(shí)例。我們把這種沒(méi)有實(shí)例的類稱為抽象類(abstract class)。在抽象類中可以定義抽象操作,抽象操作指:只定義這個(gè)類的操作接口,不定義它的實(shí)現(xiàn),其
5、實(shí)現(xiàn)部分由其子類定義。抽象操作操作名用斜體字表示,也可以在操作特征(signature)后面加上特征字符串a(chǎn)bstract交通工具交通工具飛行器飛行器汽汽 車車 船船轎轎 車車貨貨 車車 一般一般- -特殊關(guān)系特殊關(guān)系 如果一個(gè)子類只有唯一一個(gè)父類,這種繼承稱為單一繼承。如果一個(gè)子類有一個(gè)以上的父類,這種繼承稱為多重繼承水上交通工具水上交通工具 陸上交通工具陸上交通工具 水陸兩棲交通工具水陸兩棲交通工具多重繼承多重繼承4. 消息(message) 消息傳遞是對(duì)象間通信的手段,一個(gè)對(duì)象通過(guò)向另一個(gè)對(duì)象發(fā)送消息來(lái)請(qǐng)求其服務(wù)。一個(gè)消息通常包括接收對(duì)象名、調(diào)用的操作名和適當(dāng)?shù)膮?shù)(如果有必要的話)。消
6、息只告訴接收對(duì)象需要完成什么操作,但并不指示接收者怎樣完成操作。消息完全由接收者解釋,接收者獨(dú)立決定采用什么方法完成所需的操作5. 多態(tài)性(polymorphism) 多態(tài)性是指同一個(gè)操作作用于不同的對(duì)象上可以有不同的解釋,并產(chǎn)生不同的執(zhí)行結(jié)果。例如“畫”操作,作用在“矩形”對(duì)象上,則在屏幕上畫一個(gè)矩形,作用在“圓”對(duì)象上,則在屏幕上畫一個(gè)圓。也就是說(shuō),相同操作的消息發(fā)送給不同的對(duì)象時(shí),每個(gè)對(duì)象將根據(jù)自己所屬類中定義的這個(gè)操作去執(zhí)行,從而產(chǎn)生不同的結(jié)果6. 動(dòng)態(tài)綁定(dynamic binding) 動(dòng)態(tài)綁定是指在程序運(yùn)行時(shí)才將消息所請(qǐng)求的操作與實(shí)現(xiàn)該操作的方法連接起來(lái) 傳統(tǒng)的程序設(shè)計(jì)語(yǔ)言的過(guò)
7、程調(diào)用與目標(biāo)代碼的連接(即調(diào)用哪個(gè)過(guò)程)放在程序運(yùn)行前(即編譯時(shí))進(jìn)行(稱為靜態(tài)綁定),而動(dòng)態(tài)綁定則是把這種連接推遲到運(yùn)行時(shí)才進(jìn)行 動(dòng)態(tài)綁定是一種在運(yùn)行時(shí)確定被執(zhí)行代碼的技術(shù)在一般與特殊關(guān)系中,子類是父類的一個(gè)特例,所以父類對(duì)象可以出現(xiàn)的地方,也允許其子類對(duì)象出現(xiàn)。因此在運(yùn)行過(guò)程中,當(dāng)一個(gè)對(duì)象發(fā)送消息請(qǐng)求服務(wù)時(shí),要根據(jù)接收對(duì)象的具體情況將請(qǐng)求的操作與實(shí)現(xiàn)的方法進(jìn)行連接,即動(dòng)態(tài)綁定if 條件 then p := t ; else p := r ;area := p.getarea ;getArea abstractpolygonareahexagongetArearectanglegetArea
8、lengthwidthtrianglegetAreaVar p : polygon ;Var t : triangle := triangle.new ;Var r : rectangle := rectangle.new ; 內(nèi)容摘要l面向?qū)ο蟮幕靖拍頻UML概述面向?qū)ο蠓治鯫bject-Oriented Analysis 面向?qū)ο蠓治龅囊话悴襟E如下:l獲取客戶對(duì)系統(tǒng)的需求:包括標(biāo)識(shí)場(chǎng)景(scenario)和用況(use case,也稱用例),以及建造需求模型l用基本的需求為指南,來(lái)選擇類和對(duì)象(包括屬性和操作)。l定義類的結(jié)構(gòu)和層次。l建造對(duì)象關(guān)系模型。l建造對(duì)象行為模型。1.利用用況/
9、場(chǎng)景來(lái)復(fù)審分析模型。 分析過(guò)程1. 獲取客戶對(duì)系統(tǒng)的需求l需求獲取必須讓客戶與開發(fā)者充分地交流l分析員首先標(biāo)識(shí)使用該系統(tǒng)的不同的執(zhí)行者(actor),執(zhí)行者代表使用該系統(tǒng)的不同的角色l每個(gè)執(zhí)行者可以敘述他如何使用系統(tǒng),或者說(shuō)他需要系統(tǒng)提供什么功能l執(zhí)行者提出的每一個(gè)使用場(chǎng)景(或功能)都是系統(tǒng)的一個(gè)用況的實(shí)例,用況描述了系統(tǒng)的一種用法(或一個(gè)功能)l所有執(zhí)行者提出的所有用況構(gòu)成系統(tǒng)的完整的功能需求 注意l執(zhí)行者與用戶是不同的兩個(gè)概念,一個(gè)用戶可以扮演幾個(gè)角色(執(zhí)行者),一個(gè)執(zhí)行者可以是用戶,也可以是其他系統(tǒng)(應(yīng)用程序或設(shè)備)l得到的用況必須進(jìn)行復(fù)審,以使需求完整2. 標(biāo)識(shí)類和對(duì)象 類和對(duì)象來(lái)自問(wèn)
10、題領(lǐng)域??梢韵葮?biāo)識(shí)候選類,然后進(jìn)行篩選3. 定義類的結(jié)構(gòu)和層次 類的結(jié)構(gòu)主要有兩種:一般特殊(generalizationspecialization)結(jié)構(gòu)和整體部分(wholepart)結(jié)構(gòu) 一般特殊結(jié)構(gòu)是一種分類結(jié)構(gòu),反映了類間的一般與特殊的關(guān)系。一般類與特殊類之間是一種“is a”的關(guān)系,如:汽車是一種交通工具。同樣,特殊類還可以分為更特殊的類,這樣可形成類的層次結(jié)構(gòu) 整體部分結(jié)構(gòu)反映了類間的整體與部分關(guān)系。值得注意的是,整體部分關(guān)系是對(duì)對(duì)象而言的,而不是對(duì)類的。整體部分關(guān)系是一種“has a ”的關(guān)系,如“汽車”有“發(fā)動(dòng)機(jī)”。同樣,整體部分結(jié)構(gòu)也具有層次結(jié)構(gòu)有的面向?qū)ο蠓椒ㄖ校鸦ハ鄥f(xié)
11、作以完成一組緊密結(jié)合在一起的責(zé)任的類的集合定義為主題(subject)或子系統(tǒng)(subsystem)。主題和子系統(tǒng)都是一種抽象,從外界觀察系統(tǒng)時(shí),主題或子系統(tǒng)可看作黑盒,它有自己的一組責(zé)任和協(xié)作者,觀察者不必關(guān)心其細(xì)節(jié)。觀察一個(gè)主題或子系統(tǒng)的內(nèi)部時(shí),觀察者可以把注意力集中在系統(tǒng)的某一個(gè)方面。因此,主題或子系統(tǒng)實(shí)際上是系統(tǒng)更高抽象層次上的一種描述4. 建造對(duì)象關(guān)系模型 對(duì)象-關(guān)系模型描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),它指出了類間的關(guān)系(relationship) 類之間的關(guān)系有關(guān)聯(lián)、依賴、泛化、實(shí)現(xiàn)等5. 建立對(duì)象行為模型 對(duì)象-行為模型描述了系統(tǒng)的動(dòng)態(tài)行為,它們指明系統(tǒng)如何響應(yīng)外部的事件或激勵(lì)(stimu
12、lus) 建模的步驟如下l評(píng)估所有的用況,以完全理解系統(tǒng)中交互的序列l(wèi)標(biāo)識(shí)驅(qū)動(dòng)交互序列的事件,理解這些事件如何和特定的對(duì)象相關(guān)聯(lián)l為每個(gè)用況創(chuàng)建事件軌跡(event trace)l為系統(tǒng)建造狀態(tài)機(jī)圖l復(fù)審對(duì)象-行為模型,以驗(yàn)證準(zhǔn)確性和一致性 面向?qū)ο笤O(shè)計(jì)(Object_Oriented Design) 面向?qū)ο笤O(shè)計(jì)的一般步驟如下:l系統(tǒng)設(shè)計(jì)將子系統(tǒng)分配到處理器將子系統(tǒng)分配到處理器選擇實(shí)現(xiàn)數(shù)據(jù)管理、界面支持和任務(wù)選擇實(shí)現(xiàn)數(shù)據(jù)管理、界面支持和任務(wù)管理的設(shè)計(jì)策略管理的設(shè)計(jì)策略為系統(tǒng)設(shè)計(jì)合適的控制機(jī)制為系統(tǒng)設(shè)計(jì)合適的控制機(jī)制1.1.復(fù)審并考慮權(quán)衡(折衷)復(fù)審并考慮權(quán)衡(折衷)l對(duì)象設(shè)計(jì)在過(guò)程級(jí)別(在過(guò)
13、程級(jí)別(procedural lavelprocedural lavel)設(shè)計(jì))設(shè)計(jì)每個(gè)操作,即設(shè)計(jì)每個(gè)操作的實(shí)現(xiàn)細(xì)節(jié)每個(gè)操作,即設(shè)計(jì)每個(gè)操作的實(shí)現(xiàn)細(xì)節(jié)定義內(nèi)部類定義內(nèi)部類為類的屬性設(shè)計(jì)內(nèi)部數(shù)據(jù)結(jié)構(gòu)為類的屬性設(shè)計(jì)內(nèi)部數(shù)據(jù)結(jié)構(gòu)l消息設(shè)計(jì) 使用對(duì)象間的協(xié)作和對(duì)象-關(guān)系模型,設(shè)計(jì)消息模型l復(fù)審 復(fù)審設(shè)計(jì)模型并在需要時(shí)迭代。 1. 系統(tǒng)設(shè)計(jì)1) 將分析模型劃分成子系統(tǒng) 在OO系統(tǒng)設(shè)計(jì)中,我們把分析模型中緊密相關(guān)的類、關(guān)系等設(shè)計(jì)元素包裝成子系統(tǒng) 通常,子系統(tǒng)的所有元素共享某些公共的性質(zhì),它們可能都涉及完成相同的功能;它們可能駐留在相同的產(chǎn)品硬件中;或者它們可能管理相同的類和資源 子系統(tǒng)由它們的責(zé)任所刻畫
14、,即,一個(gè)子系統(tǒng)可以通過(guò)它提供的服務(wù)來(lái)標(biāo)識(shí)。在OOD中,這種服務(wù)是完成特定功能的一組操作 子系統(tǒng)的設(shè)計(jì)準(zhǔn)則是:(1) 子系統(tǒng)應(yīng)具有定義良好的接口,通過(guò)接口和系統(tǒng)的其它部分通信(2) 除了少數(shù)的“通信類” 外,子系統(tǒng)中的類應(yīng)只和該子系統(tǒng)中的其它類協(xié)作(3) 子系統(tǒng)的數(shù)量不宜太多(4) 可以在子系統(tǒng)內(nèi)部再次劃分,以降低復(fù)雜性2) 標(biāo)識(shí)問(wèn)題本身的并發(fā)性,并為子系統(tǒng)分配處理器 通過(guò)對(duì)對(duì)象-行為模型的分析,可發(fā)現(xiàn)系統(tǒng)的并發(fā)性。如果對(duì)象(或子系統(tǒng))不是同時(shí)活動(dòng)的,則它們不需并發(fā)處理,此時(shí)這些對(duì)象(或子系統(tǒng))可以在同一個(gè)處理器上實(shí)現(xiàn)。反之,如果對(duì)象(或子系統(tǒng))必須對(duì)一些事件同時(shí)異步地動(dòng)作,則它們被視為并發(fā)的
15、,此時(shí),可以將并發(fā)的子系統(tǒng)分別分配到不同的處理器,或者分配在同一個(gè)處理器,而由操作系統(tǒng)提供并發(fā)支持3) 任務(wù)管理設(shè)計(jì)Coad和Yourdon提出如下管理任務(wù)對(duì)象的設(shè)計(jì)策略:(1) 確定任務(wù)的類型(2) 必要時(shí),定義協(xié)調(diào)者任務(wù)和關(guān)聯(lián)的對(duì)象(3) 將協(xié)調(diào)者任務(wù)和其它任務(wù)集成通??赏ㄟ^(guò)了解任務(wù)是如何被啟動(dòng)的來(lái)確定任務(wù)的類型,如事件驅(qū)動(dòng)任務(wù),時(shí)鐘驅(qū)動(dòng)任務(wù)。每個(gè)任務(wù)應(yīng)該定義其優(yōu)先級(jí),并識(shí)別關(guān)鍵任務(wù)。當(dāng)有多個(gè)任務(wù)時(shí)還可以考慮增加一個(gè)協(xié)調(diào)者任務(wù),以控制這些任務(wù)協(xié)同工作4) 數(shù)據(jù)管理設(shè)計(jì) 通常數(shù)據(jù)管理設(shè)計(jì)成層次模式,其目的是將數(shù)據(jù)的物理存儲(chǔ)及操縱與系統(tǒng)的業(yè)務(wù)邏輯加以分離 數(shù)據(jù)管理的設(shè)計(jì)包括設(shè)計(jì)系統(tǒng)中各種數(shù)據(jù)對(duì)
16、象的存儲(chǔ)方式(如內(nèi)部數(shù)據(jù)結(jié)構(gòu)、文件、數(shù)據(jù)庫(kù)),以及設(shè)計(jì)相應(yīng)的服務(wù),即為要儲(chǔ)存的對(duì)象增加所需的屬性和操作5) 資源管理設(shè)計(jì) OO系統(tǒng)可利用一系列不同的資源(如磁盤驅(qū)動(dòng)器、處理器、通信線路等外部實(shí)體或數(shù)據(jù)庫(kù)、對(duì)象等抽象資源),很多情況下,子系統(tǒng)同時(shí)競(jìng)爭(zhēng)這些資源,因此要設(shè)計(jì)一套控制機(jī)制和安全機(jī)制,以控制對(duì)資源的訪問(wèn),避免對(duì)資源使用的沖突 6)人機(jī)界面設(shè)計(jì) 對(duì)大多數(shù)應(yīng)用系統(tǒng)而言,人機(jī)界面本身是一個(gè)非常重要的子系統(tǒng)。人機(jī)界面主要強(qiáng)調(diào)人如何命令系統(tǒng),以及系統(tǒng)如何向人提交信息。它包括窗口、菜單、報(bào)告的設(shè)計(jì)7) 子系統(tǒng)間的通信 子系統(tǒng)之間可以通過(guò)建立客戶/服務(wù)器連接進(jìn)行通信,也可以通過(guò)端對(duì)端(peer to
17、peer)連接進(jìn)行通信。我們必須確定子系統(tǒng)間通信的合約(contract),合約提供了一個(gè)子系統(tǒng)和另一個(gè)子系統(tǒng)交互的方式2. 對(duì)象設(shè)計(jì) 對(duì)象設(shè)計(jì)是為每個(gè)類的屬性和操作作出詳細(xì)的設(shè)計(jì),并設(shè)計(jì)連接類與它的協(xié)作者之間的消息規(guī)約1) 對(duì)象描述 對(duì)象設(shè)計(jì)的描述可以采取以下形式之一:(1) 協(xié)議描述:描述對(duì)象的接口,即定義對(duì)象可以接收的消息以及當(dāng)對(duì)象接收到消息后完成的相關(guān)操作(2) 實(shí)現(xiàn)描述:描述傳送給對(duì)象的消息所蘊(yùn)含的每個(gè)操作的實(shí)現(xiàn)細(xì)節(jié),實(shí)現(xiàn)細(xì)節(jié)包括有關(guān)對(duì)象私有部分的信息,即關(guān)于描述對(duì)象屬性的數(shù)據(jù)結(jié)構(gòu)的內(nèi)部細(xì)節(jié)和描述操作的過(guò)程細(xì)節(jié) 對(duì)對(duì)象的使用者來(lái)說(shuō),只需要協(xié)議描述就夠了2)設(shè)計(jì)算法和數(shù)據(jù)結(jié)構(gòu) 為對(duì)象中
18、的屬性和操作設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和實(shí)現(xiàn)算法3. 設(shè)計(jì)模式(design patterns) 在許多面向?qū)ο笙到y(tǒng)中,存在一些類和對(duì)象的重復(fù)出現(xiàn)的模式。這些模式求解特定的設(shè)計(jì)問(wèn)題,使面向?qū)ο笤O(shè)計(jì)更靈活,并最終可復(fù)用。這些模式幫助設(shè)計(jì)者復(fù)用以前成功的設(shè)計(jì),設(shè)計(jì)者可以把這些模式應(yīng)用到新的設(shè)計(jì)中一個(gè)設(shè)計(jì)模式通常可用4個(gè)基本要素來(lái)描述:1)模式名稱 用于描述模式的助憶符。設(shè)計(jì)模式名應(yīng)具有實(shí)際的含義,能反映模式的適用性和意圖2)問(wèn)題 描述何時(shí)使用模式,解釋設(shè)計(jì)問(wèn)題以及應(yīng)用模式所必須的環(huán)境和條件3)解決方案 描述構(gòu)成設(shè)計(jì)方案的各元素、它們之間的關(guān)系、各自的職責(zé)和協(xié)作方式4)效果(consequences) 描述模式應(yīng)
19、用的效果以及使用模式時(shí)的折中問(wèn)題內(nèi)容摘要l面向?qū)ο蟮幕靖拍頻面向?qū)ο蟮姆治龊驮O(shè)計(jì)過(guò)程統(tǒng)一建模語(yǔ)言UMLUnified Modeling LanguageUML概述 l為何研究UML結(jié)束方法大戰(zhàn)l發(fā)展歷史 1994年Booch和Rumbaugh在Rational Software Corporation開始了UML的工作,其目標(biāo)是創(chuàng)建一個(gè)“統(tǒng)一的方法”, 1995年OOSE的創(chuàng)始人Jacobson加盟到這項(xiàng)工作中,工作重點(diǎn)轉(zhuǎn)移到創(chuàng)建一種統(tǒng)一的建模語(yǔ)言UML 1996年6月、10月、1997年1月、11月分別推出了UML0.9、 UML0.91、 UML1.0、 UML1.1 UML概述 l19
20、97年11月,OMG(Object Management Group)批準(zhǔn)把UML1.1作為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語(yǔ)言l之后,UML進(jìn)行了持續(xù)的修訂和改進(jìn),先后產(chǎn)生了UML1.2、1.3、1.4、1.5版本l2004年推出了UML2.0,UML2.0對(duì)UML1.x作了重大的修改。 l模型元素 模型元素指模型中的實(shí)體以及實(shí)體間相互連接的關(guān)系 部分模型元素部分模型元素注解注解類類屬性屬性操作操作對(duì)象:類對(duì)象:類屬性屬性操作操作狀態(tài)狀態(tài)用況用況 結(jié)點(diǎn)結(jié)點(diǎn)供應(yīng)接口供應(yīng)接口包包依賴依賴關(guān)聯(lián)關(guān)聯(lián)泛化泛化主動(dòng)類主動(dòng)類屬性屬性操作操作請(qǐng)求接口請(qǐng)求接口構(gòu)件構(gòu)件實(shí)現(xiàn)實(shí)現(xiàn)視圖與圖主題域視圖 (view)圖(di
21、agram)結(jié)構(gòu)化結(jié)構(gòu)化靜態(tài)視圖靜態(tài)視圖類圖(類圖(class)設(shè)計(jì)視圖設(shè)計(jì)視圖內(nèi)部結(jié)構(gòu)(內(nèi)部結(jié)構(gòu)(internal structure)協(xié)作圖(協(xié)作圖(collaboration)構(gòu)件圖(構(gòu)件圖(component)用況視圖用況視圖用況圖(用況圖(use case)動(dòng)態(tài)的動(dòng)態(tài)的狀態(tài)機(jī)視圖狀態(tài)機(jī)視圖狀態(tài)機(jī)圖(狀態(tài)機(jī)圖(state machine)活動(dòng)視圖活動(dòng)視圖活動(dòng)圖(活動(dòng)圖(activity)交互視圖交互視圖順序圖(順序圖(sequence)通信圖(通信圖(communication)物理的物理的部署視圖部署視圖部署圖(部署圖(deployment)模型管理模型管理模型管理視圖模型管理視圖包
22、圖(包圖(package)剖面剖面包圖(包圖(package)l靜態(tài)視圖靜態(tài)視圖對(duì)應(yīng)用領(lǐng)域中的概念以及與系統(tǒng)實(shí)現(xiàn)有關(guān)的內(nèi)部概念建模,主要由類以及類之間的相互關(guān)系組成,在靜態(tài)視圖中不描述依賴于時(shí)間的系統(tǒng)行為。靜態(tài)視圖用類圖來(lái)展示l設(shè)計(jì)視圖設(shè)計(jì)視圖對(duì)應(yīng)用自身的設(shè)計(jì)結(jié)構(gòu)建模,例如,將設(shè)計(jì)結(jié)構(gòu)擴(kuò)展成:結(jié)構(gòu)化類元(classifier)、為實(shí)現(xiàn)功能所需的協(xié)作以及良定義接口的構(gòu)件的組裝。設(shè)計(jì)視圖由內(nèi)部結(jié)構(gòu)圖、協(xié)作圖和構(gòu)件圖實(shí)現(xiàn)l用況視圖用況視圖對(duì)被稱為執(zhí)行者的外部代理(他與特定視點(diǎn)的主題交互)所感受到的主題(如系統(tǒng))功能建模。用況視圖的意圖是列出系統(tǒng)中的用況和執(zhí)行者,并顯示哪個(gè)執(zhí)行者參與了哪個(gè)用況的執(zhí)行。
23、用況的行為用動(dòng)態(tài)視圖,特別是交互視圖來(lái)表示。用況視圖用用況圖來(lái)展示l狀態(tài)機(jī)視圖狀態(tài)機(jī)視圖對(duì)一個(gè)類的對(duì)象的可能生命歷程建模。一個(gè)狀態(tài)機(jī)包括用遷移連接的狀態(tài),每個(gè)狀態(tài)對(duì)一個(gè)對(duì)象在其生命期中滿足某種條件的一個(gè)時(shí)間段建模。當(dāng)一個(gè)事件發(fā)生時(shí),它會(huì)導(dǎo)致觸發(fā)對(duì)象的一個(gè)狀態(tài)向另一個(gè)新狀態(tài)的遷移,附加在遷移上的動(dòng)作或活動(dòng)也同時(shí)被執(zhí)行。狀態(tài)機(jī)視圖用狀態(tài)機(jī)圖來(lái)展示l活動(dòng)視圖活動(dòng)展示了包含在執(zhí)行計(jì)算或工作流中的計(jì)算活動(dòng)的控制流。一個(gè)動(dòng)作是一個(gè)基本的計(jì)算步,一個(gè)活動(dòng)結(jié)點(diǎn)是一組動(dòng)作或子活動(dòng),一個(gè)活動(dòng)可描述順序的和并發(fā)的計(jì)算。活動(dòng)視圖用活動(dòng)圖來(lái)展示l交互視圖交互視圖描述系統(tǒng)各部分中消息交換的順序。交互視圖提供了系統(tǒng)中行為的
24、整體視圖,也就是說(shuō),它展示了多個(gè)對(duì)象間交叉的控制流。交互視圖用順序圖和通信圖來(lái)展示l部署視圖部署視圖描述了運(yùn)行時(shí)結(jié)點(diǎn)上制品的分布。制品是一個(gè)物理實(shí)現(xiàn)單元,如一個(gè)文件,它也可以表示一或多個(gè)構(gòu)件的實(shí)現(xiàn)(一種表現(xiàn)形式)。結(jié)點(diǎn)是運(yùn)行時(shí)表示計(jì)算資源的物理對(duì)象,如,計(jì)算機(jī)、設(shè)備或內(nèi)存。部署視圖允許對(duì)分配的結(jié)果和資源分配進(jìn)行評(píng)估。部署視圖用部署圖來(lái)展示l模型管理視圖模型管理視圖對(duì)模型自身的組織建模。一個(gè)模型由一組保存模型元素(如類、狀態(tài)機(jī)、用況)的包組成。包還可以包含其它的包,因此,一個(gè)模型從一個(gè)間接包含所有模型內(nèi)容的根包(root package)開始。包是操縱模型內(nèi)容的單元,也是訪問(wèn)控制和配置控制的單元
25、。每個(gè)模型元素可以被一個(gè)包或另一個(gè)元素?fù)碛?。模型管理信息通常展示在包圖中,它是類圖的變種l剖面(profile)UML是用一個(gè)元模型(metamodel)定義的,元模型是指描述建模語(yǔ)言自身的模型。通常元模型的改變是復(fù)雜的,也是危險(xiǎn)的。剖面機(jī)制允許在不修改基礎(chǔ)元模型的前提下對(duì)UML作有限的變化。UML包含三個(gè)主要的可擴(kuò)展結(jié)構(gòu):約束(constraints)、版型(stereotypes)和標(biāo)簽值(tagged values)約束是以自然語(yǔ)言或特定形式語(yǔ)言的正文表示的語(yǔ)義條件或限制,約束寫在花括號(hào)中(),如value0,or。版型是在基于現(xiàn)有各類模型元素的外形中定義模型元素的新類型,它本質(zhì)上是一種
26、新元類(metaclass)。版型可以擴(kuò)展語(yǔ)義,但不能擴(kuò)展原元模型類的結(jié)構(gòu)。用標(biāo)記版型,如signal。標(biāo)簽值是貼在任何模型元素上的被命名的信息片。下圖給出了版型和標(biāo)簽值的應(yīng)用實(shí)例版型和標(biāo)簽值版型和標(biāo)簽值authorshipSchedulingtagged valuesauthorshipauthor=“Frank Martin”due=Dec.31,2009l 類圖 類圖展示了系統(tǒng)中類的靜態(tài)結(jié)構(gòu),即類與類之間的相互聯(lián)系。類之間有多種聯(lián)系方式,如關(guān)聯(lián)(相互連接)、依賴(一個(gè)類依賴或使用另一個(gè)類)、泛化(一個(gè)類是另一個(gè)類的特殊情況)等??梢园讶舾蓚€(gè)相關(guān)的類包裝在一起作為一個(gè)單元(包),相當(dāng)于一個(gè)
27、子系統(tǒng)。一個(gè)系統(tǒng)可以有多張類圖,一個(gè)類也可以出現(xiàn)在幾張類圖中l(wèi) 對(duì)象圖 對(duì)象圖是類圖的實(shí)例,它展示了系統(tǒng)執(zhí)行在某一時(shí)間點(diǎn)上的一個(gè)可能的快照。對(duì)象圖使用與類圖相同的符號(hào),只是在對(duì)象名下面加上下劃線,同時(shí)它還顯示了對(duì)象間的實(shí)例鏈接(link)關(guān)系l內(nèi)部結(jié)構(gòu)圖內(nèi)部結(jié)構(gòu)圖展示了類的分解,給出了組成一個(gè)結(jié)構(gòu)化類元的相互連接的部分、端口和連接器手冊(cè):演出手冊(cè)手冊(cè):演出手冊(cè)數(shù)據(jù)庫(kù):演出數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù):演出數(shù)據(jù)庫(kù)售票員:售票員售票員:售票員售票處售票處售票售票內(nèi)部結(jié)構(gòu)圖內(nèi)部結(jié)構(gòu)圖l協(xié)作圖協(xié)作圖展示了協(xié)作的定義,是一種合成的結(jié)構(gòu)圖。協(xié)作是為了完成某一目的而一起工作的一組對(duì)象間的上下文關(guān)系劇院售票劇院售票* * 1 1售票亭:售票亭售票亭:售票亭:售票處:售票處1 1 * *終端:售票終端終端:售票終端協(xié)作圖協(xié)作圖l構(gòu)件圖構(gòu)件圖展示了系統(tǒng)中的構(gòu)件(即來(lái)自應(yīng)用的軟件單元),構(gòu)件間通過(guò)接口的連接,以及構(gòu)件之間的依賴關(guān)系。構(gòu)件是一種結(jié)構(gòu)化類元,可以用內(nèi)部結(jié)構(gòu)圖來(lái)定義它的內(nèi)部結(jié)構(gòu)l用況圖用況圖展示了各類外部執(zhí)行者與系統(tǒng)所提供的用況之間的連接。一
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年幼兒園教學(xué)工作方案表參考
- 2025年政史教學(xué)工作方案
- 幼兒園創(chuàng)意畢業(yè)典禮方案2025年
- 中秋節(jié)活動(dòng)策劃方案設(shè)計(jì)12025年
- 工程項(xiàng)目管理復(fù)盤
- 家庭教育促進(jìn)法課件教案宣傳資料
- 貴州職業(yè)技術(shù)學(xué)院《數(shù)據(jù)分析與統(tǒng)計(jì)軟件應(yīng)用B》2023-2024學(xué)年第二學(xué)期期末試卷
- 道路房建知識(shí)培訓(xùn)課件
- 內(nèi)蒙古豐州職業(yè)學(xué)院《互動(dòng)媒體策劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 信陽(yáng)市潢川縣2025屆六年級(jí)下學(xué)期小升初數(shù)學(xué)試卷含解析
- WD-PSO-LSTM模型在光伏出力預(yù)測(cè)中的應(yīng)用
- 期中測(cè)試卷(試題)-2023-2024學(xué)年六年級(jí)下冊(cè)數(shù)學(xué)蘇教版
- 廣東省深圳市2023-2024學(xué)年六年級(jí)下冊(cè)(全冊(cè))期中模擬測(cè)試數(shù)學(xué)試卷(北師大版)
- 《黑人非洲音樂(lè)》
- 安全教育普法
- 分層過(guò)程審核培訓(xùn)-課后測(cè)試附有答案
- 急性腎損傷護(hù)理查房
- 江蘇省南京市鼓樓區(qū)2022-2023學(xué)年五年級(jí)下學(xué)期期中語(yǔ)文試卷
- 第1課+古代亞非【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 膠原蛋白注射知情同意書
- 幼兒園優(yōu)質(zhì)公開課:小班綜合《小雞過(guò)生日》課件
評(píng)論
0/150
提交評(píng)論