![第8章面向?qū)ο骭第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-6/6/a1c5bdef-39b3-40b6-ace2-cf849f9b4763/a1c5bdef-39b3-40b6-ace2-cf849f9b47631.gif)
![第8章面向?qū)ο骭第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-6/6/a1c5bdef-39b3-40b6-ace2-cf849f9b4763/a1c5bdef-39b3-40b6-ace2-cf849f9b47632.gif)
![第8章面向?qū)ο骭第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-6/6/a1c5bdef-39b3-40b6-ace2-cf849f9b4763/a1c5bdef-39b3-40b6-ace2-cf849f9b47633.gif)
![第8章面向?qū)ο骭第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-6/6/a1c5bdef-39b3-40b6-ace2-cf849f9b4763/a1c5bdef-39b3-40b6-ace2-cf849f9b47634.gif)
![第8章面向?qū)ο骭第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-6/6/a1c5bdef-39b3-40b6-ace2-cf849f9b4763/a1c5bdef-39b3-40b6-ace2-cf849f9b47635.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第三部分 面向?qū)ο蟮能浖_發(fā)方法第第8章章 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?8.1 什么是面向?qū)ο蠓治?面向?qū)ο蠓治觯嫦驅(qū)ο蠓治觯∣bject-Oriented Analysis,OOA)是軟件生命周期的一個階段,具有一般分析方法所共同具有是軟件生命周期的一個階段,具有一般分析方法所共同具有的內(nèi)容、目標及策略。然而,的內(nèi)容、目標及策略。然而,OOA強調(diào)運用面向?qū)ο蠓椒▉韽娬{(diào)運用面向?qū)ο蠓椒▉韺栴}域和系統(tǒng)責任進行分析與理解,定義描述問題域和系對問題域和系統(tǒng)責任進行分析與理解,定義描述問題域和系統(tǒng)責任所需要的對象,定義對象的屬性、操作以及對象之間統(tǒng)責任所需要的對象,定義對象的屬性、操作以及對象之間的
2、關(guān)系,目標是建立一個符合問題域、滿足用戶功能需求的的關(guān)系,目標是建立一個符合問題域、滿足用戶功能需求的OOA模型。模型。 8.1 什么是面向?qū)ο蠓治鼋鹑跇I(yè)務個人儲蓄國債發(fā)行貸款業(yè)務.人事管理信息備份系統(tǒng)責任問題域:被開發(fā)系統(tǒng)的應用領(lǐng)域,即在現(xiàn)實世界中由這個系統(tǒng)進行處理的業(yè)務范圍。:所開發(fā)的系統(tǒng)應該具 備的職能。8.1 什么是面向?qū)ο蠓治?.1 什么是面向?qū)ο蠓治?.2 建立基本模型建立基本模型類圖類圖 類圖描述了系統(tǒng)中各類對象以及它們之間類圖描述了系統(tǒng)中各類對象以及它們之間的各種關(guān)系。的各種關(guān)系。 一張類圖應該注重表達系統(tǒng)靜態(tài)結(jié)構(gòu)的一一張類圖應該注重表達系統(tǒng)靜態(tài)結(jié)構(gòu)的一個方面,這意味著,若系統(tǒng)
3、較為復雜,可個方面,這意味著,若系統(tǒng)較為復雜,可能要繪制多張類圖。能要繪制多張類圖。 821 對象與類對象與類 對象對象是具有明確語義邊界并封裝了狀態(tài)和行為的實體,由一組屬性和作是具有明確語義邊界并封裝了狀態(tài)和行為的實體,由一組屬性和作用在這組屬性上的一組操作構(gòu)成,是構(gòu)成系統(tǒng)的一個基本單位。用在這組屬性上的一組操作構(gòu)成,是構(gòu)成系統(tǒng)的一個基本單位。 類類是對一組具有相同屬性和操作的一組對象的抽象描述。是對一組具有相同屬性和操作的一組對象的抽象描述。 一個類的所有對象具有相同的屬性,是指所有對象的屬性的一個類的所有對象具有相同的屬性,是指所有對象的屬性的個數(shù)、名稱、數(shù)據(jù)類型都相同,各個對象的屬性值
4、則可以互不相同,并且隨個數(shù)、名稱、數(shù)據(jù)類型都相同,各個對象的屬性值則可以互不相同,并且隨著程序的執(zhí)行而變化。至于操作,對于一個類的所有對象都是一樣的,即所著程序的執(zhí)行而變化。至于操作,對于一個類的所有對象都是一樣的,即所有的對象共同使用它們的類定義中給出的操作。有的對象共同使用它們的類定義中給出的操作。 821 對象與類對象與類 用一個由水平線劃分成三個分欄的實線矩形表示類。在最上面的那個分欄放類名,中間的分欄放屬性列表,最下面的分欄放操作列表,每個屬性和操作都各占一行 對象名:類名類類 名名屬性欄操作欄821 對象與類對象與類 在使用用況圖完成捕獲與描述需求后,已經(jīng)對問題域和在使用用況圖完成
5、捕獲與描述需求后,已經(jīng)對問題域和系統(tǒng)責任進行了分析,把用戶的的需求落實到了各個用況之系統(tǒng)責任進行了分析,把用戶的的需求落實到了各個用況之中。中。 由于用況模型僅描述了系統(tǒng)內(nèi)外的交互情況,從其中識由于用況模型僅描述了系統(tǒng)內(nèi)外的交互情況,從其中識別出來的對象與類肯定是不夠全面的。別出來的對象與類肯定是不夠全面的。 在識別對象與類時在識別對象與類時,問題域和系統(tǒng)責任仍是工作的基礎(chǔ)。問題域和系統(tǒng)責任仍是工作的基礎(chǔ)。因為二者從不同的角度告訴分析員應該設(shè)立哪些對象。因為二者從不同的角度告訴分析員應該設(shè)立哪些對象。 考慮問題域,側(cè)重于客觀存在的事物與系統(tǒng)中對象的映射考慮問題域,側(cè)重于客觀存在的事物與系統(tǒng)中對
6、象的映射。 可以啟發(fā)分析員發(fā)現(xiàn)對象的因素包括:人員、組織機構(gòu)、可以啟發(fā)分析員發(fā)現(xiàn)對象的因素包括:人員、組織機構(gòu)、物品、設(shè)備、事件(如索賠、上訪、交易)、表格、日志、報物品、設(shè)備、事件(如索賠、上訪、交易)、表格、日志、報告和結(jié)構(gòu)等。告和結(jié)構(gòu)等。 其中的結(jié)構(gòu)可能是多種多樣的,例如,在概念類別上,汽其中的結(jié)構(gòu)可能是多種多樣的,例如,在概念類別上,汽車之上有車輛,之下可細分為客車和轎車,左右有摩托車和拖車之上有車輛,之下可細分為客車和轎車,左右有摩托車和拖拉機,之內(nèi)有發(fā)動機。它還可作成車隊的一個成分。拉機,之內(nèi)有發(fā)動機。它還可作成車隊的一個成分。821 對象與類對象與類2考慮系統(tǒng)邊界考慮系統(tǒng)邊界 1
7、) 把一些人員和設(shè)備看作問題域范疇以內(nèi)的事物,系統(tǒng)中把一些人員和設(shè)備看作問題域范疇以內(nèi)的事物,系統(tǒng)中的對象是對它們的抽象描述。側(cè)重于以系統(tǒng)中的對象模擬現(xiàn)實的對象是對它們的抽象描述。側(cè)重于以系統(tǒng)中的對象模擬現(xiàn)實中的人和設(shè)備。中的人和設(shè)備。 2) 對系統(tǒng)邊界之外與系統(tǒng)進行交互的參與者,系統(tǒng)中需要對系統(tǒng)邊界之外與系統(tǒng)進行交互的參與者,系統(tǒng)中需要設(shè)立相應的對象處理系統(tǒng)與這些實際的人和設(shè)備的交互,側(cè)重設(shè)立相應的對象處理系統(tǒng)與這些實際的人和設(shè)備的交互,側(cè)重于以系統(tǒng)中的對象處理現(xiàn)實中的人和設(shè)備與系統(tǒng)的交互。于以系統(tǒng)中的對象處理現(xiàn)實中的人和設(shè)備與系統(tǒng)的交互。 3) 在系統(tǒng)中設(shè)立一個對象,處理與外系統(tǒng)的接口。在
8、系統(tǒng)中設(shè)立一個對象,處理與外系統(tǒng)的接口。 人員人員設(shè)備外系統(tǒng)外系統(tǒng)從不同的角從不同的角度考慮人員度考慮人員和設(shè)備和設(shè)備821 對象與類對象與類 如果已經(jīng)建立了用況模型,考慮執(zhí)行下列的附加步驟:如果已經(jīng)建立了用況模型,考慮執(zhí)行下列的附加步驟: 使用用況產(chǎn)生場景。使用用況產(chǎn)生場景。 使用場景尋找已錯過的類。使用場景尋找已錯過的類。821 對象與類對象與類(1)舍棄無用的類)舍棄無用的類通過屬性判斷:通過屬性判斷:是否通過屬性記錄了某些有用的信息是否通過屬性記錄了某些有用的信息*?通過操作判斷:通過操作判斷:是否通過操作提供了某些有用的功能是否通過操作提供了某些有用的功能* ?二者都不是二者都不是無
9、用無用 通常,類應該具有多個屬性和操作。也存在無屬性而僅有通常,類應該具有多個屬性和操作。也存在無屬性而僅有操作的類,或無操作而僅有屬性的類的情況。操作的類,或無操作而僅有屬性的類的情況。 821 對象與類對象與類 系統(tǒng)責任所要求的某些功能系統(tǒng)責任所要求的某些功能例如系統(tǒng)安裝、配置、信息備例如系統(tǒng)安裝、配置、信息備份、瀏覽份、瀏覽可能無法從問題域中找到相應的對象來提供這些功可能無法從問題域中找到相應的對象來提供這些功能,應該在設(shè)計階段考慮專門為它們增加一些類,既把它們推遲能,應該在設(shè)計階段考慮專門為它們增加一些類,既把它們推遲到設(shè)計階段考慮。到設(shè)計階段考慮。 系統(tǒng)責任要求的某些功能可能與實現(xiàn)環(huán)
10、境有關(guān),也推遲到設(shè)系統(tǒng)責任要求的某些功能可能與實現(xiàn)環(huán)境有關(guān),也推遲到設(shè)計階段考慮。計階段考慮。例如:與圖形用戶界面系統(tǒng)、數(shù)據(jù)管理系統(tǒng)、硬件例如:與圖形用戶界面系統(tǒng)、數(shù)據(jù)管理系統(tǒng)、硬件和操作系統(tǒng)有關(guān)的類。和操作系統(tǒng)有關(guān)的類。821 對象與類對象與類(1)簡化)簡化 對對只有一個屬性的類只有一個屬性的類只有一個只有一個操作操作的類的類班級班級班主任班主任姓名姓名11班級班級班主任姓名班主任姓名輸出設(shè)備輸出設(shè)備格式轉(zhuǎn)換器格式轉(zhuǎn)換器文件格式轉(zhuǎn)換文件格式轉(zhuǎn)換輸出設(shè)備輸出設(shè)備文件格式轉(zhuǎn)換文件格式轉(zhuǎn)換 821 對象與類對象與類 (2)類的屬性或操作不適合該類的全部對象類的屬性或操作不適合該類的全部對象 例:
11、例:“汽車汽車”類的類的“乘客限量乘客限量”屬性,不適合于吊車、鏟車。屬性,不適合于吊車、鏟車。問題:分類不夠詳細問題:分類不夠詳細進一步劃分特殊類進一步劃分特殊類 (3)屬性及操作相同的類)屬性及操作相同的類*經(jīng)過抽象,差別很大的事物可能只保留相同的特征經(jīng)過抽象,差別很大的事物可能只保留相同的特征考慮能否合并為一個類,如計算機與吸塵器考慮能否合并為一個類,如計算機與吸塵器 (4)屬性及操作相似的類)屬性及操作相似的類*考慮能否提升出一個一般類考慮能否提升出一個一般類*,或形成整體部分結(jié)構(gòu)。,或形成整體部分結(jié)構(gòu)。例例:轎車、貨車,抽象出汽車;機床與鼓風機用電機做成分轎車、貨車,抽象出汽車;機床
12、與鼓風機用電機做成分. (5)對職責過多的類進行分解)對職責過多的類進行分解821 對象與類對象與類821 對象與類對象與類 主動對象是具有主動行為的對象,在設(shè)計階段是擁有線程或進程并能夠啟動控制活動的對象。主動類是其實例為主動對象的類。 識別主動對象的策略:識別主動對象的策略:(1)考慮問題域)考慮問題域 哪些對象需呈現(xiàn)主動行為哪些對象需呈現(xiàn)主動行為*?-按定義按定義(2)考慮系統(tǒng)責任)考慮系統(tǒng)責任 根據(jù)系統(tǒng)責任觀察系統(tǒng)功能的構(gòu)成層次,重點考慮完成最外層功能根據(jù)系統(tǒng)責任觀察系統(tǒng)功能的構(gòu)成層次,重點考慮完成最外層功能的對象是否應定義為主動對象。的對象是否應定義為主動對象。 (3)考慮系統(tǒng)邊界)
13、考慮系統(tǒng)邊界 哪些對象與參與者交互?如果一個交互是由參與者發(fā)起的,第一哪些對象與參與者交互?如果一個交互是由參與者發(fā)起的,第一個處理該交互的對象是主動對象個處理該交互的對象是主動對象 (4)進行操作執(zhí)行路線的逆向追蹤。)進行操作執(zhí)行路線的逆向追蹤。 在分析階段不能完全確定主動對象821 對象與類對象與類activeactive 類類 名名類類 名名主動類主動類對象名:類名主動對象類類 名名對象名:類名主動類的線框是粗黑的,或在主動類名之前要加一個主動性標記主動類的線框是粗黑的,或在主動類名之前要加一個主動性標記 active;在尚未確定是不是主動對象之前,暫時用普通對象的類符號表示。在尚未確定
14、是不是主動對象之前,暫時用普通對象的類符號表示。q適合該類及其特殊類的全部對象實例適合該類及其特殊類的全部對象實例* 機動車汽車摩托車車輛汽車摩托車馬車921 對象與類對象與類821 對象與類對象與類建立類圖的對象層建立類圖的對象層 用類符號表示每個對象類用類符號表示每個對象類填寫類描述模板填寫類描述模板若發(fā)現(xiàn)新的屬性與操作、關(guān)系,可以隨時加到類符號中。若發(fā)現(xiàn)新的屬性與操作、關(guān)系,可以隨時加到類符號中。p反映個體而不是群體反映個體而不是群體* 書書-書籍;船書籍;船-船舶船舶*p使用名詞使用名詞,或帶有定語的名詞或帶有定語的名詞 ,避免無意義的符號,避免無意義的符號 如線裝書如線裝書p考慮使用
15、適當種類的語言文字對類命名??紤]使用適當種類的語言文字對類命名。 在中國:可用中、英文雙重命名在中國:可用中、英文雙重命名*821 對象與類對象與類822 定義屬性與操作定義屬性與操作 屬性屬性是用來描述對象靜態(tài)特征的一個數(shù)據(jù)項是用來描述對象靜態(tài)特征的一個數(shù)據(jù)項 從技術(shù)觀點上,屬性是變量,包含它的每一個對象都具有從技術(shù)觀點上,屬性是變量,包含它的每一個對象都具有自己的值(自己的值(屬性值屬性值)。)。 按照面向?qū)ο蠓椒ǖ姆庋b原則,一個對象的屬性和操作是按照面向?qū)ο蠓椒ǖ姆庋b原則,一個對象的屬性和操作是緊密結(jié)合的,對象的屬性只能由這個對象的操作存取。緊密結(jié)合的,對象的屬性只能由這個對象的操作存取
16、。 可見性分為可見性分為、(包,只(包,只有在同一包中聲明的類能夠使用這一屬性)。有在同一包中聲明的類能夠使用這一屬性)。 在一個對象在一個對象/類中,必須給每一個屬性一個唯一的名字。類中,必須給每一個屬性一個唯一的名字。 屬性的類型可以是常見的基本數(shù)據(jù)類型,也可以是自己定義的類型。屬性的類型可以是常見的基本數(shù)據(jù)類型,也可以是自己定義的類型。 類類 名名普通類普通類 屬性屬性1 1屬性屬性n n操作操作1 1操作操作m m OO方法中有方法中有“實例屬性實例屬性”和和“類屬性類屬性”的概念之分。上的概念之分。上面談到的只是實例屬性。面談到的只是實例屬性。 C+中冠以中冠以static的成員變量
17、是類屬性,這樣的屬性對一個的成員變量是類屬性,這樣的屬性對一個類的全部對象實例只是一份共同的數(shù)據(jù)空間,所以對任何對象類的全部對象實例只是一份共同的數(shù)據(jù)空間,所以對任何對象而言,該屬性的值總是相同的。而言,該屬性的值總是相同的。 實例屬性和類屬性各有不同的用途實例屬性和類屬性各有不同的用途*。 822 定義屬性與操作定義屬性與操作按常識這個對象應該有哪些屬性?按常識這個對象應該有哪些屬性?在當前的問題域中,對象應該有哪些屬性?在當前的問題域中,對象應該有哪些屬性?根據(jù)系統(tǒng)責任,這個對象應具有哪些屬性根據(jù)系統(tǒng)責任,這個對象應具有哪些屬性* *? 如信用卡的使用如信用卡的使用建立這個對象是為了保存和
18、管理哪些信息?建立這個對象是為了保存和管理哪些信息?對象為了完成其功能,需要增設(shè)哪些屬性?對象為了完成其功能,需要增設(shè)哪些屬性?對象是否需要通過專設(shè)的屬性區(qū)別其狀態(tài)對象是否需要通過專設(shè)的屬性區(qū)別其狀態(tài)* *? 如設(shè)備如設(shè)備用什么屬性表示聚合和關(guān)聯(lián)?用什么屬性表示聚合和關(guān)聯(lián)?-不建議不建議可利用需求文檔中的形容詞或所有格短語可利用需求文檔中的形容詞或所有格短語* *。 若一個屬性的結(jié)構(gòu)較為復雜(即不僅僅是一些簡單的數(shù)字或文本),若一個屬性的結(jié)構(gòu)較為復雜(即不僅僅是一些簡單的數(shù)字或文本),可考慮把其作為對象。可考慮把其作為對象。822 定義屬性與操作定義屬性與操作q是否體現(xiàn)了以系統(tǒng)責任為目標的抽象
19、;例:書的重量是否體現(xiàn)了以系統(tǒng)責任為目標的抽象;例:書的重量* ?q是否描述對象本身的特征;例:課程是否描述對象本身的特征;例:課程電話號碼電話號碼* ?q一個屬性所對應的一個事物性質(zhì)的粒度要適當。一個屬性所對應的一個事物性質(zhì)的粒度要適當。 例如人的通信地址,包括國家、省、城市、街道、門牌號碼等內(nèi)容,但這些內(nèi)容在通信地例如人的通信地址,包括國家、省、城市、街道、門牌號碼等內(nèi)容,但這些內(nèi)容在通信地址這個概念上是不可分的。在定義址這個概念上是不可分的。在定義“人員人員”對象的屬性時,應該使用一個屬性對象的屬性時,應該使用一個屬性“通信地址通信地址”,而,而不應把有關(guān)通信地址的各項內(nèi)容拆散開用多個屬
20、性來描述。不應把有關(guān)通信地址的各項內(nèi)容拆散開用多個屬性來描述。 q若一個對象與另一個對象有關(guān)系,其屬性必須捕獲該對象的性若一個對象與另一個對象有關(guān)系,其屬性必須捕獲該對象的性質(zhì),而不是關(guān)系或關(guān)系中的其他對象的性質(zhì);質(zhì),而不是關(guān)系或關(guān)系中的其他對象的性質(zhì); 如屬性必須是整個實體的特征,而不是其成分的特征如屬性必須是整個實體的特征,而不是其成分的特征*q是否可通過繼承得到?是否可通過繼承得到?q可以從其它屬性直接導出的屬性可以從其它屬性直接導出的屬性*; q與實現(xiàn)有關(guān)的因素,推遲到與實現(xiàn)有關(guān)的因素,推遲到OOD考慮(規(guī)范化、對象標識、性考慮(規(guī)范化、對象標識、性能問題)能問題)822 定義屬性與操
21、作定義屬性與操作命名:原則與類的命名相同命名:原則與類的命名相同定位:針對所描述的對象,適合全部對象實例。定位:針對所描述的對象,適合全部對象實例。 把每個屬性都填寫到相應的類符號中去,并在相應的類把每個屬性都填寫到相應的類符號中去,并在相應的類描述模板中進行詳細說明。描述模板中進行詳細說明。 822 定義屬性與操作定義屬性與操作 操作操作是類的對象被要求執(zhí)行的服務。是類的對象被要求執(zhí)行的服務。 可見性的取值為可見性的取值為+(公有的公有的)、#(受保護的受保護的) 、-(私有的私有的)或或(包)(包) 。 內(nèi)部操作和外部操作內(nèi)部操作和外部操作, 特征標記特征標記 類操作類操作是用是用來來操操
22、縱類縱類屬性的操作。屬性的操作。 例如例如C+中的前面冠以中的前面冠以static的成員函數(shù),就是類范圍操作的成員函數(shù),就是類范圍操作 類范圍的操作用帶下劃線的名字和類型表達式串表示。實例范圍操作是默類范圍的操作用帶下劃線的名字和類型表達式串表示。實例范圍操作是默認的,對其不用標記。認的,對其不用標記。822 定義屬性與操作定義屬性與操作 如果想要在如果想要在OOA階段記錄方法的詳細文字描述或算法,則把階段記錄方法的詳細文字描述或算法,則把它們放在類描述模板中,如有必要也可放在注釋中。該項工作應它們放在類描述模板中,如有必要也可放在注釋中。該項工作應該在該在OOD階段完成。階段完成。 諸如創(chuàng)建
23、(創(chuàng)建并初始化一個新對象)、連接(將一個對象與諸如創(chuàng)建(創(chuàng)建并初始化一個新對象)、連接(將一個對象與另一個對象連接)、訪問(得到或設(shè)置屬性值)、斷開連接(將另一個對象連接)、訪問(得到或設(shè)置屬性值)、斷開連接(將一個對象與另一個對象的連接斷開)和刪除一個對象之類的操作一個對象與另一個對象的連接斷開)和刪除一個對象之類的操作都屬于在算法上是簡單的操作,在都屬于在算法上是簡單的操作,在OOA不予以考慮。不予以考慮。 在在OOA中,只對識別那些必須由對象提供的、在算法上復雜中,只對識別那些必須由對象提供的、在算法上復雜的業(yè)務操作(如要進行某些計算或監(jiān)控操作的業(yè)務操作(如要進行某些計算或監(jiān)控操作 )感
24、興趣。)感興趣。 822 定義屬性與操作定義屬性與操作(1)考慮系統(tǒng)責任)考慮系統(tǒng)責任有哪些功能要求在本對象提供*?(2)考慮問題域)考慮問題域?qū)ο笤趩栴}域?qū)氖挛镉心男┬袨? ?(3)分析對象狀態(tài))分析對象狀態(tài)在每種狀態(tài)下對象可能發(fā)生什么行為?對象狀態(tài)的轉(zhuǎn)換,是由哪些操作引起的?-狀態(tài)圖講述(4)追蹤操作的執(zhí)行路線)追蹤操作的執(zhí)行路線模擬操作的執(zhí)行,并在整個系統(tǒng)中跟蹤* 。(5)用動詞識別操作用動詞識別操作(6 6)查看每一個屬性,因為要用對象的操作來對其進行操縱查看每一個屬性,因為要用對象的操作來對其進行操縱 822 定義屬性與操作定義屬性與操作審查對象的每個操作審查對象的每個操作是否直
25、接提供系統(tǒng)責任所要求的某項功能? 或者響應其它操作的請求,間接地完成某種功能的某些局部操作?調(diào)整調(diào)整取消無用的操作一個操作應該只完成一項單一的單一的、相對完整的相對完整的功能*調(diào)整調(diào)整拆分 或 合并審查與調(diào)整審查與調(diào)整 822 定義屬性與操作定義屬性與操作命名:動詞或動賓結(jié)構(gòu)命名:動詞或動賓結(jié)構(gòu)定位:定位:與實際事物一致與實際事物一致例:售貨員例:售貨員售貨售貨*,商品,商品售出售出*在泛化中的位置在泛化中的位置適合類的全部對象實例適合類的全部對象實例822 定義屬性與操作定義屬性與操作 把每個對象的操作都填寫到相應的類符號中。把每個對象的操作都填寫到相應的類符號中。 在類描述模板中,寫出:在
26、類描述模板中,寫出:q說明操作的職責說明操作的職責q操作原型(操作原型( 消息格式)消息格式) 可見性可見性 操作名操作名(參數(shù)列表參數(shù)列表):返回類型返回類型 q消息發(fā)送(指出在這個操作執(zhí)行時,需要請求哪些別的對象操作,消息發(fā)送(指出在這個操作執(zhí)行時,需要請求哪些別的對象操作,即接收消息的對象類名以及執(zhí)行這個消息的操作名)即接收消息的對象類名以及執(zhí)行這個消息的操作名)q約束條件:如果該操作的執(zhí)行有前置條件、后置條件,以及執(zhí)行時約束條件:如果該操作的執(zhí)行有前置條件、后置條件,以及執(zhí)行時間的要求等其它需要說明的事項,則在這里加以說明。間的要求等其它需要說明的事項,則在這里加以說明。q實現(xiàn)操作的方
27、法(文字、活動圖或流程圖實現(xiàn)操作的方法(文字、活動圖或流程圖)。)。 822 定義屬性與操作定義屬性與操作分類關(guān)系、繼承(一般-特殊)generalization(generalization-specialization)構(gòu)成關(guān)系(整體-部分)aggregation(whole-part)靜態(tài)聯(lián)系association使用關(guān)系Dependency這些關(guān)系形成了類圖的關(guān)系層這些關(guān)系形成了類圖的關(guān)系層*823 建立關(guān)系建立關(guān)系 1、概念、概念 是較特殊的類和較一般的類之間的直接關(guān)系(繼承關(guān)是較特殊的類和較一般的類之間的直接關(guān)系(繼承關(guān)系),其中較一般的類具有較特殊的類的共同性質(zhì),較特殊的系),其
28、中較一般的類具有較特殊的類的共同性質(zhì),較特殊的類繼承較一般的類的性質(zhì),且還具有自己的性質(zhì),較特殊的類類繼承較一般的類的性質(zhì),且還具有自己的性質(zhì),較特殊的類的對象是較一般的類的對象的子集。的對象是較一般的類的對象的子集。92.2.31 泛化泛化 特殊類一般類的性質(zhì)一般類特殊類的性質(zhì)只要有這些性質(zhì)必須有這些性質(zhì)對象實例集合性質(zhì)集合理解一般類與特殊類之間的關(guān)系823 建立關(guān)系建立關(guān)系 把在一個類中沒有實現(xiàn)的操作(即沒有提供方法),稱為把在一個類中沒有實現(xiàn)的操作(即沒有提供方法),稱為。 在在C+中,把抽象操作稱作純虛操作。 含有抽象操作的類是不能直接實例化的,在UML中把這種類叫做。抽象類的作用是為
29、了讓其子類繼承它的屬性和操作等。 823 建立關(guān)系建立關(guān)系 2、表示法、表示法一般類一般類特殊類特殊類特殊類特殊類泛化泛化 抽象類帶有標記抽象類帶有標記“abstract”,或者把操作的特征標記寫成斜體來表或者把操作的特征標記寫成斜體來表示它是抽象的。示它是抽象的。 抽象操作帶有標記抽象操作帶有標記“abstract”,或者把操作的特征標記寫成斜體來,或者把操作的特征標記寫成斜體來表示它是抽象的。表示它是抽象的。abstract823 建立關(guān)系建立關(guān)系 (1 1)學習當前領(lǐng)域的分類學知識)學習當前領(lǐng)域的分類學知識(2 2)按常識考慮事物的分類)按常識考慮事物的分類(3 3)利用泛化的定義)利用
30、泛化的定義(右圖)(右圖)(4 4)考察類的屬性與操作)考察類的屬性與操作(左圖)(左圖)(5 5)看兩個類的對象之間是否有)看兩個類的對象之間是否有“是一種是一種”關(guān)系。關(guān)系。?公司人員公司人員姓名姓名身份證號身份證號股份股份工資工資 ? ?公司人員公司人員姓名姓名身份證號身份證號 股東股東股份股份 職員職員工資工資 姓名姓名身份證號身份證號股份股份 姓名姓名身份證號身份證號工資工資 股東股東職員職員公司人員公司人員姓名姓名身份證號身份證號 股東股東股份股份職員職員工資工資 ? ?823 建立關(guān)系建立關(guān)系 (1)問題域是否需要這樣的分類?(例:書善本書*)(2)系統(tǒng)責任是否需要這樣的分類?(
31、例:職員本市職員)(3)是否符合分類學的常識?(用“is a kind of ”去套)4 4、審查與調(diào)整、審查與調(diào)整(4)是否構(gòu)成了繼承關(guān)系?運輸工具發(fā)動機載重量速度 飛機飛行高度 自動導航 汽車運輸工具發(fā)動機載重量速度 飛機飛行高度 自動導航 運輸運輸或或 汽車發(fā)動機載重量速度運輸 飛機飛行高度 自動導航 823 建立關(guān)系建立關(guān)系 一、從一般類劃分出太多的特殊類,使系統(tǒng)中類的設(shè)置太多,增加了系統(tǒng)的復雜性;二、建立過深的繼承層次,增加了系統(tǒng)的理解難度和處理開銷。 運輸工具發(fā)動機載重量速度 飛機飛行高度 自動導航 運輸運輸工具發(fā)動機載重量速度 飛機飛行高度 自動導航 汽車運輸823 建立關(guān)系建立
32、關(guān)系 人員人員男男 人人女女 人人中國人中國人美國人美國人日本人日本人人員人員性別性別國籍國籍823 建立關(guān)系建立關(guān)系 雷達雷達型號型號生產(chǎn)廠生產(chǎn)廠安裝地點安裝地點 開啟開啟關(guān)閉關(guān)閉監(jiān)控監(jiān)控一般類存在的理由:一般類存在的理由:有兩個或兩個以上的特殊類需要用它創(chuàng)建對象實例有助于軟件復用電子設(shè)備電子設(shè)備激光打印機激光打印機傳真機傳真機通訊設(shè)備設(shè)備電子設(shè)備計算機設(shè)備打印機民用通訊設(shè)備激光打印機傳真機設(shè)設(shè) 備備型號型號生產(chǎn)廠生產(chǎn)廠開啟開啟關(guān)閉關(guān)閉 雷雷 達達安裝地點安裝地點 監(jiān)控監(jiān)控 823 建立關(guān)系建立關(guān)系 定義泛化的活動,將使分析員對系統(tǒng)中的類及其特征有更定義泛化的活動,將使分析員對系統(tǒng)中的類及其
33、特征有更深入的認識。深入的認識。 隨著泛化的建立,經(jīng)常需要對類圖的對象層和特征層作某隨著泛化的建立,經(jīng)常需要對類圖的對象層和特征層作某些修改,包括增加、刪除、合并或分開某些類,以及增、刪某些修改,包括增加、刪除、合并或分開某些類,以及增、刪某些屬性和操作或把它們移到其它類。些屬性和操作或把它們移到其它類。823 建立關(guān)系建立關(guān)系 對象之間的靜態(tài)聯(lián)系是指,最終可通過對象屬性來對象之間的靜態(tài)聯(lián)系是指,最終可通過對象屬性來表示的一個對象對另一個對象的聯(lián)系表示的一個對象對另一個對象的聯(lián)系。 對象之間的動態(tài)聯(lián)系是指,對象之間在行為(如操對象之間的動態(tài)聯(lián)系是指,對象之間在行為(如操作調(diào)用)上的依賴關(guān)系。作
34、調(diào)用)上的依賴關(guān)系。 用關(guān)聯(lián)用關(guān)聯(lián)* * (association)表示類之間的靜態(tài)聯(lián)系。表示類之間的靜態(tài)聯(lián)系。 用鏈用鏈* * (linklink)表示類對象之間的靜態(tài)聯(lián)系。)表示類對象之間的靜態(tài)聯(lián)系。823 建立關(guān)系建立關(guān)系 1 1)關(guān)聯(lián))關(guān)聯(lián) 如果類的對象之間通過屬性有連接關(guān)系,那么這些類之間如果類的對象之間通過屬性有連接關(guān)系,那么這些類之間的語義關(guān)系就是的語義關(guān)系就是關(guān)聯(lián)關(guān)聯(lián)。 教教 師師學學 生生0.0.* *1 1指導論文指導論文城市城市0.*0.*有航線有航線 把二元關(guān)聯(lián)表示成連接兩個類符號的實線路徑(兩個端點把二元關(guān)聯(lián)表示成連接兩個類符號的實線路徑(兩個端點可以連接到相同的類,
35、但是端點是不同的)。可以連接到相同的類,但是端點是不同的)。 關(guān)聯(lián)名可以在關(guān)聯(lián)名可以在路徑附近表示出來。路徑附近表示出來。 兩個類之間可以有多個關(guān)聯(lián)兩個類之間可以有多個關(guān)聯(lián). 823 建立關(guān)系建立關(guān)系 2)鏈)鏈 鏈鏈是關(guān)聯(lián)的一個實例,是對象間的語義連接。是關(guān)聯(lián)的一個實例,是對象間的語義連接。 在最常見的情況下,鏈是一對對象引用。在最常見的情況下,鏈是一對對象引用。 這樣的連接使得對象之間在這樣的連接使得對象之間在某段時間內(nèi)某段時間內(nèi)保持聯(lián)系。保持聯(lián)系。在兩個對象在兩個對象之間建立了鏈,每一個對象都可以請求另一個對象的操作。之間建立了鏈,每一個對象都可以請求另一個對象的操作。 把二元鏈表示為兩
36、個實例之間的路徑。把二元鏈表示為兩個實例之間的路徑。 如果有關(guān)聯(lián)名,就應該在它的下面畫線表示鏈名。如果有關(guān)聯(lián)名,就應該在它的下面畫線表示鏈名。 所有的鏈都被默認為是雙向的,單向的用箭頭來標示。所有的鏈都被默認為是雙向的,單向的用箭頭來標示。 對象之間可以有多個鏈對象之間可以有多個鏈*。張三:教師李四:學生指導論文教教 師師學學 生生0.0.* *1 1指導論文指導論文823 建立關(guān)系建立關(guān)系 例子例子1,3,8 0.10.*1.3,7.10,15,19.* 3)多重性)多重性 可把多重性規(guī)約表示成由用逗號可把多重性規(guī)約表示成由用逗號分開的整數(shù)間隔序列組成的數(shù)字串;分開的整數(shù)間隔序列組成的數(shù)字串
37、; 也可用區(qū)間代表整數(shù)的范圍(可也可用區(qū)間代表整數(shù)的范圍(可能無限):下限能無限):下限.上限,用于說明從上限,用于說明從下限到上限的整數(shù)閉區(qū)間。下限到上限的整數(shù)閉區(qū)間。 星號(星號(*)可以用于上限,表明)可以用于上限,表明不限制上限。不限制上限。 * 等價于等價于0.*。教教 師師學學 生生0.0.* *1 1指導論文指導論文823 建立關(guān)系建立關(guān)系 成績單11學生有一個系11.*教授工作系0.11教授系主任課程0.*0.*學生選修0.*0.*課程預修823 建立關(guān)系建立關(guān)系 4)關(guān)聯(lián)角色)關(guān)聯(lián)角色 在關(guān)聯(lián)的一個端點上可有一個角色。每一個角色具有一個名在關(guān)聯(lián)的一個端點上可有一個角色。每一個
38、角色具有一個名字,用來描述其類被其他的類看作是什么:把它稱為角色名。字,用來描述其類被其他的類看作是什么:把它稱為角色名。 當需要強調(diào)一個類在一個關(guān)聯(lián)的確切含義時,使用關(guān)聯(lián)角色當需要強調(diào)一個類在一個關(guān)聯(lián)的確切含義時,使用關(guān)聯(lián)角色名。名。用戶口令擁有者 如果使用角色名,就可以省略關(guān)聯(lián)名。如果使用角色名,就可以省略關(guān)聯(lián)名。 823 建立關(guān)系建立關(guān)系 有時可指定類的角色,而不用關(guān)聯(lián)角色。但要注意:改變有時可指定類的角色,而不用關(guān)聯(lián)角色。但要注意:改變該類不要對其他類產(chǎn)生影響。該類不要對其他類產(chǎn)生影響。學生口令專業(yè)擁有者1 1.*0.1 *學生口令擁有者口令專業(yè)1 1.*?823 建立關(guān)系建立關(guān)系 管
39、理者管理者 1下屬下屬 * 雇員雇員 張三張三 侯六侯六 李四李四 王五王五管理者管理者 管理者管理者 管理者管理者 下屬下屬 下屬下屬 下屬下屬 823 建立關(guān)系建立關(guā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)類既可以被看作是具有類的性質(zhì)的關(guān)聯(lián),也可以被看作為具有關(guān)聯(lián)既可以被看作是具有類的性質(zhì)的關(guān)聯(lián),也可以被看作為具有關(guān)聯(lián)性質(zhì)的類。性質(zhì)的類。 例如,考慮一個人的工資。通常將它作為屬性設(shè)在例如,考慮一個人的工資。通常將它作為屬性設(shè)在Person類類中。中。 考慮考慮一個人在多個公司工作一個人在多個公司工作,公司也應該知道它所發(fā)放的
40、工資公司也應該知道它所發(fā)放的工資. 實際上,工資應該是類實際上,工資應該是類Person和和Company之間的雇傭關(guān)系之間的雇傭關(guān)系的一個屬性。的一個屬性。 如果在具有關(guān)聯(lián)關(guān)系的類中,存在著一個屬性放在哪個類如果在具有關(guān)聯(lián)關(guān)系的類中,存在著一個屬性放在哪個類中都不合適的情況,就考慮使用關(guān)聯(lián)類。中都不合適的情況,就考慮使用關(guān)聯(lián)類。 823 建立關(guān)系建立關(guān)系 N元關(guān)聯(lián)元關(guān)聯(lián)是三個或三個以上類之間的一個關(guān)聯(lián)。是三個或三個以上類之間的一個關(guān)聯(lián)。 UMLUML規(guī)定:一個角色上的多重性是指,當該規(guī)定:一個角色上的多重性是指,當該N N元關(guān)聯(lián)中的其元關(guān)聯(lián)中的其它它N-1N-1個值被確定時,該關(guān)聯(lián)潛在的實例
41、元組的數(shù)目。個值被確定時,該關(guān)聯(lián)潛在的實例元組的數(shù)目。? 用一個大的菱形表示一個用一個大的菱形表示一個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)一樣,角色修飾可以顯示在每一個路徑上。 可以用虛線把關(guān)聯(lián)類符號與菱形連接起來,表示具有屬性、操作或關(guān)可以用虛線把關(guān)聯(lián)類符號與菱形連接起來,表示具有屬性、操作或關(guān)聯(lián)的聯(lián)的N元關(guān)聯(lián)。元關(guān)聯(lián)。 項目項目語言語言人員人員823 建立關(guān)系建立關(guān)系 (1 1)認識對象之間的靜態(tài)聯(lián)系)認識對象之
42、間的靜態(tài)聯(lián)系 考慮問題域和系統(tǒng)責任考慮問題域和系統(tǒng)責任哪些類的對象之間的關(guān)系需哪些類的對象之間的關(guān)系需要在系統(tǒng)中表達。要在系統(tǒng)中表達。 (2 2)認識關(guān)聯(lián)的屬性與操作認識關(guān)聯(lián)的屬性與操作 對于考慮中的每一種關(guān)聯(lián),進一步分析它是否應該帶有對于考慮中的每一種關(guān)聯(lián),進一步分析它是否應該帶有某些屬性和操作。就是說,是否含有一些僅憑一個簡單的關(guān)某些屬性和操作。就是說,是否含有一些僅憑一個簡單的關(guān)聯(lián)不能充分表達的信息聯(lián)不能充分表達的信息(P117)(P117) 。 (3 3)分析并表示關(guān)聯(lián)的多重性分析并表示關(guān)聯(lián)的多重性 從連接線的每一端,看本端的一個對象可能與另一端的從連接線的每一端,看本端的一個對象可能
43、與另一端的幾個對象發(fā)生連接,把結(jié)果標注到連接線的另一端。幾個對象發(fā)生連接,把結(jié)果標注到連接線的另一端。 (4 4)對多對多的關(guān)聯(lián)的處理)對多對多的關(guān)聯(lián)的處理? ?823 建立關(guān)系建立關(guān)系 在建立關(guān)聯(lián)的過程中可能增加一些新的對象類,要把這些新在建立關(guān)聯(lián)的過程中可能增加一些新的對象類,要把這些新增的類補充到類圖的對象層中,并建立它們的類描述模板。增的類補充到類圖的對象層中,并建立它們的類描述模板。 一種說法:對于每一個關(guān)聯(lián),可在它某一端所連接的對象類一種說法:對于每一個關(guān)聯(lián),可在它某一端所連接的對象類中增加相應的屬性;在這個類的描述模板中,給出這個屬性的詳中增加相應的屬性;在這個類的描述模板中,給
44、出這個屬性的詳細說明。細說明。不建議!不建議! 823 建立關(guān)系建立關(guān)系 聚合聚合(aggregation)是關(guān)聯(lián)的一種特殊形式,表示整體類和部)是關(guān)聯(lián)的一種特殊形式,表示整體類和部分類之間的分類之間的“整體部分整體部分”關(guān)系。關(guān)系。 聚集聚集 (aggregate)是聚合關(guān)系中作為是聚合關(guān)系中作為“整體整體”的類,而把作為的類,而把作為“部分部分”的類稱為的類稱為 成分或部分。成分或部分。 類與類之間的聚合關(guān)系指的是,一個類的對象實例,以另一個類的對象實例作為類與類之間的聚合關(guān)系指的是,一個類的對象實例,以另一個類的對象實例作為其組成部分,其組成部分, 是種是種“a part of”或或“h
45、as a”; 也可理解為,一個類定義引用另一個類定義。也可理解為,一個類定義引用另一個類定義。8.233 聚合聚合 Class B Class A B b; 組合組合是聚合的一種形式,其部分類的對象和整體類的對象之間是聚合的一種形式,其部分類的對象和整體類的對象之間有很強的有很強的“屬于屬于”關(guān)系,整體類的對象管理部分類的對象,關(guān)系,整體類的對象管理部分類的對象, 決定決定部分類的對象何時屬于它,何時不屬于它。部分可以先于整體消亡部分類的對象何時屬于它,何時不屬于它。部分可以先于整體消亡。 組合對象是組合對象是組合類的實例。組合類的實例。 823 建立關(guān)系建立關(guān)系 C:整體類中的屬性用部分類作
46、為基類型,為組合;整體類中的屬性用部分類作為基類型,為組合;JAVA:整體類中的屬性用部分類作為基類型,為聚合。對于整體類中的屬性用部分類作為基類型,為聚合。對于C+中的屬性中的屬性為指針(基類型為一個類)也是如此。為指針(基類型為一個類)也是如此。部分對象部分對象整體對象嵌套對象嵌套對象整體對象部分對象部分對象整體對象對象指針或?qū)ο髽俗R對象指針或?qū)ο髽俗R描述緊密描述緊密、固定的、固定的關(guān)系,例關(guān)系,例如汽車與如汽車與發(fā)動機發(fā)動機描述松散描述松散、 靈活的靈活的關(guān)系,例關(guān)系,例如公司與如公司與法律顧問法律顧問823 建立關(guān)系建立關(guān)系 整體對象類整體對象類部分對象類部分對象類1.*1.*連接符:
47、連接符: 表示法表示法汽汽 車車發(fā)動機發(fā)動機車車 輪輪14,60.10.1例子:例子:多重性:多重性:一對一一對多多對多多重性表示:多重性表示:固定的數(shù)目或范圍例如:1 或 1.3不定的數(shù)目或范圍例如: * 或 0.*組合的聚集端的多重性不能超過組合的聚集端的多重性不能超過1 1。823 建立關(guān)系建立關(guān)系 學院大學11 .*大學學院構(gòu)成聚合上一般不標名稱。異同?1.*1823 建立關(guān)系建立關(guān)系 2 2 識別聚合識別聚合 (1 1)物理上的整體事物和它的組成部分)物理上的整體事物和它的組成部分例:機器、設(shè)備和它的零部件例:機器、設(shè)備和它的零部件(2 2)組織機構(gòu)和它的下級組織及部門)組織機構(gòu)和它
48、的下級組織及部門例:公司與子公司、部門例:公司與子公司、部門(3 3)團體(組織)與成員)團體(組織)與成員例:公司與職員例:公司與職員(4 4)一種事物在空間上包容其它事物)一種事物在空間上包容其它事物例:生產(chǎn)車間與機器例:生產(chǎn)車間與機器(5 5)抽象事物的整體與部分)抽象事物的整體與部分例:學科與分支學科、法律與法律條款例:學科與分支學科、法律與法律條款(6 6)具體事物和它的某個抽象方面)具體事物和它的某個抽象方面例:人員與身份、履歷例:人員與身份、履歷(7 7)在材料上的組成關(guān)系)在材料上的組成關(guān)系 例如,面包由面粉、糖和酵母組成,汽車是由鋼、塑料例如,面包由面粉、糖和酵母組成,汽車是
49、由鋼、塑料和玻璃組成。和玻璃組成。 823 建立關(guān)系建立關(guān)系 (1 1)是否屬于問題域?)是否屬于問題域?例:公司職員與家庭*(2 2)是不是系統(tǒng)責任的需要?)是不是系統(tǒng)責任的需要?例:公司與工會*(3 3)部分對象是否有一個以上的屬性?)部分對象是否有一個以上的屬性?例:汽車與輪胎(規(guī)格) *(4 4)是否有明顯的整體)是否有明顯的整體- -部分關(guān)系?部分關(guān)系?例:學生與課程,誰是整體?部分? 定義整體定義整體-部分結(jié)構(gòu)的活動可能發(fā)現(xiàn)一些新的對象類,或部分結(jié)構(gòu)的活動可能發(fā)現(xiàn)一些新的對象類,或者從整體對象的類定義中分割出一些部分對象的類定義,應者從整體對象的類定義中分割出一些部分對象的類定義,
50、應把它們加入到對象層中,并給出它們的詳細說明。把它們加入到對象層中,并給出它們的詳細說明。 823 建立關(guān)系建立關(guān)系 依賴依賴規(guī)約了兩個或多個模型元素(或兩個模型元素集合)規(guī)約了兩個或多個模型元素(或兩個模型元素集合)之間的一種語義關(guān)系,對目標元素的改變可能需要改變該依賴之間的一種語義關(guān)系,對目標元素的改變可能需要改變該依賴中的源元素。中的源元素。 把依賴表示為兩個模型元素之間的虛線箭頭。在箭頭尾部的模型元素(把依賴表示為兩個模型元素之間的虛線箭頭。在箭頭尾部的模型元素(客戶)依賴箭頭頭部的模型元素(提供者)。箭頭可以用放在雙尖括號內(nèi)的客戶)依賴箭頭頭部的模型元素(提供者)。箭頭可以用放在雙尖
51、括號內(nèi)的字符串標識。字符串標識。823 建立關(guān)系建立關(guān)系 8.3 建立行為模型 描述清楚了對象的行為以及對象之間的交描述清楚了對象的行為以及對象之間的交互,有助于進一步地發(fā)現(xiàn)與定義類的操作,互,有助于進一步地發(fā)現(xiàn)與定義類的操作,更有助于確定類之間的關(guān)系。更有助于確定類之間的關(guān)系。 UML中的一些圖可以用于建立面向?qū)ο蠓种械囊恍﹫D可以用于建立面向?qū)ο蠓治龅男袨槟P汀1竟?jié)講述其中的典型的順析的行為模型。本節(jié)講述其中的典型的順序圖、活動圖和狀態(tài)機圖。序圖、活動圖和狀態(tài)機圖。1 1、概述、概述 順序圖順序圖(Sequence Diagram)是一種詳細表示對象之間是一種詳細表示對象之間以及對象與參與者
52、實例之間交互的圖,它由一組協(xié)作的對象以及對象與參與者實例之間交互的圖,它由一組協(xié)作的對象(或參與者實例)以及它們之間可發(fā)送的消息組成,它強調(diào)(或參與者實例)以及它們之間可發(fā)送的消息組成,它強調(diào)消息之間的順序。消息之間的順序。 對象名對象名:類名:類名圖中含有對象(參與者)圖中含有對象(參與者) 、消息、生命線和執(zhí)行規(guī)約組成。、消息、生命線和執(zhí)行規(guī)約組成。831順序圖 順序圖是二維的:順序圖是二維的:垂直方向垂直方向表示時間,表示時間,水平方向水平方向表示不同的對象或參與者。表示不同的對象或參與者。 通常時間維由上到下(根據(jù)需要,也通常時間維由上到下(根據(jù)需要,也可以由下到上)。通常只有時間順序
53、是可以由下到上)。通常只有時間順序是重要的,但在實時應用中時間軸是能度重要的,但在實時應用中時間軸是能度量的。量的。 對象的水平順序并不重要,順序可以對象的水平順序并不重要,順序可以是任意的。是任意的。 t0831順序圖 2、對象生命線、對象生命線 把對象表示成稱之為把對象表示成稱之為“生命線生命線”的垂直虛的垂直虛線。線。 生命線代表一個對象在特定時間內(nèi)的存生命線代表一個對象在特定時間內(nèi)的存在。在。 在圖的頂部(第一個箭頭之上)放置在交在圖的頂部(第一個箭頭之上)放置在交互開始時就存在的對象,而在整個交互完成互開始時就存在的對象,而在整個交互完成時仍然存在的對象的生命線,要延伸超出最時仍然存
54、在的對象的生命線,要延伸超出最后一個箭頭。后一個箭頭。 如果一個對象在圖中所規(guī)定的時間段被創(chuàng)如果一個對象在圖中所規(guī)定的時間段被創(chuàng)建,那么就把創(chuàng)建對象的箭頭的頭部畫在對建,那么就把創(chuàng)建對象的箭頭的頭部畫在對象符號上。如果對象在圖中被銷毀,那么用象符號上。如果對象在圖中被銷毀,那么用一個大的一個大的“X” 標記它的析構(gòu),該標記或者放標記它的析構(gòu),該標記或者放在引起析構(gòu)的箭頭處,或者放在從被銷毀的在引起析構(gòu)的箭頭處,或者放在從被銷毀的對象最終返回的箭頭處(在自析構(gòu)的情況對象最終返回的箭頭處(在自析構(gòu)的情況下)。下)。 生命線可以分裂成兩條或更多條并發(fā)的生生命線可以分裂成兩條或更多條并發(fā)的生命線,以表
55、示條件性。這樣的每一個生命線命線,以表示條件性。這樣的每一個生命線對應于交互中的一個條件分支。生命線可以對應于交互中的一個條件分支。生命線可以在某個后續(xù)點處合并。在某個后續(xù)點處合并。 執(zhí)行規(guī)約執(zhí)行規(guī)約表示一個對象直接或者通過從表示一個對象直接或者通過從屬例程執(zhí)行一個行為的時期。它既表示了屬例程執(zhí)行一個行為的時期。它既表示了行為執(zhí)行的持續(xù)時間,也表示了調(diào)用者與行為執(zhí)行的持續(xù)時間,也表示了調(diào)用者與被調(diào)用者之間的控制關(guān)系。被調(diào)用者之間的控制關(guān)系。 用一個窄長的矩形表示執(zhí)行規(guī)約,矩形用一個窄長的矩形表示執(zhí)行規(guī)約,矩形頂端和它的開始時刻對齊,末端和它的結(jié)頂端和它的開始時刻對齊,末端和它的結(jié)束時刻對齊。束
56、時刻對齊。 執(zhí)行規(guī)約符號的頂端畫在進入的箭頭的執(zhí)行規(guī)約符號的頂端畫在進入的箭頭的尖端(開始該動作的那個箭頭),底端畫尖端(開始該動作的那個箭頭),底端畫在返回的箭頭的尾部。在返回的箭頭的尾部。 當一個對象處于執(zhí)行規(guī)約期時,該對象當一個對象處于執(zhí)行規(guī)約期時,該對象能夠響應或發(fā)送消息,執(zhí)行對象或活動。能夠響應或發(fā)送消息,執(zhí)行對象或活動。 當一個對象不處于執(zhí)行規(guī)約期時,該對當一個對象不處于執(zhí)行規(guī)約期時,該對象不做什么事情,但它是存在的,等待新象不做什么事情,但它是存在的,等待新的消息執(zhí)行規(guī)約它。的消息執(zhí)行規(guī)約它。 若調(diào)用一個對象的另一個操作,第二個若調(diào)用一個對象的另一個操作,第二個執(zhí)行規(guī)約符號畫在第
57、一個符號稍微靠右的執(zhí)行規(guī)約符號畫在第一個符號稍微靠右的位置。位置。 遞歸?遞歸? 消息消息是對象之間的通訊的規(guī)格說明,這樣的通訊用于傳輸將發(fā)生的活動所是對象之間的通訊的規(guī)格說明,這樣的通訊用于傳輸將發(fā)生的活動所需要的信息需要的信息控制信息(如調(diào)用)和所使用的數(shù)據(jù)的規(guī)格說明。控制信息(如調(diào)用)和所使用的數(shù)據(jù)的規(guī)格說明。 一個消息會調(diào)用另一個對象的操作,調(diào)用本對象的操作,向另一個對象發(fā)一個消息會調(diào)用另一個對象的操作,調(diào)用本對象的操作,向另一個對象發(fā)送一個信號,創(chuàng)建或者撤消一個對象(可以自己銷毀自己),還可能向調(diào)用者送一個信號,創(chuàng)建或者撤消一個對象(可以自己銷毀自己),還可能向調(diào)用者返回一個結(jié)果。返
58、回一個結(jié)果。 把消息表示為從一個對象生命線到另一個對象生命線的一個水平實線箭頭,把消息表示為從一個對象生命線到另一個對象生命線的一個水平實線箭頭,即從源對象指向目標對象,以觸發(fā)目標對象中的特定操作。對于對象到自身的即從源對象指向目標對象,以觸發(fā)目標對象中的特定操作。對于對象到自身的消息,箭頭就從同一個對象符號開始和結(jié)束。消息,箭頭就從同一個對象符號開始和結(jié)束。 用消息(操作或信號)的名字及其參數(shù)值或者參數(shù)表達式標示箭頭。用消息(操作或信號)的名字及其參數(shù)值或者參數(shù)表達式標示箭頭。 4、消息、消息831順序圖 用如下種類的箭頭表示不同種類的通訊:用如下種類的箭頭表示不同種類的通訊: 同步消息同步
59、消息 一般把它用于普通的過程調(diào)用。在外層控制恢復之前,要完成整個嵌套序列。一般把它用于普通的過程調(diào)用。在外層控制恢復之前,要完成整個嵌套序列。通常把它用于普通的過程調(diào)用。通常把它用于普通的過程調(diào)用。 同步消息返回同步消息返回 用它顯式地表示從過程調(diào)用的返回。用它顯式地表示從過程調(diào)用的返回。 在控制的過程流中,可以省略返回箭頭(暗示執(zhí)行規(guī)約結(jié)束),這是要假設(shè)每在控制的過程流中,可以省略返回箭頭(暗示執(zhí)行規(guī)約結(jié)束),這是要假設(shè)每個調(diào)用在任何消息后都有一個配對的返回。個調(diào)用在任何消息后都有一個配對的返回。 若需要標識返回值,則要顯式地把它標示在返回的箭頭上。若需要標識返回值,則要顯式地把它標示在返回
60、的箭頭上。 831順序圖 異步消息異步消息 用它表示異步通訊,也即發(fā)送者發(fā)出消息后,立即繼續(xù)執(zhí)行中的下一步,用它表示異步通訊,也即發(fā)送者發(fā)出消息后,立即繼續(xù)執(zhí)行中的下一步,不進行等待。不進行等待。 異步消息返回異步消息返回 若請求方發(fā)了一個異步消息,且接收方響應它后要返回信息,則使用另若請求方發(fā)了一個異步消息,且接收方響應它后要返回信息,則使用另一個異步消息。一個異步消息。 注意:消息與對消息的響應。注意:消息與對消息的響應。若在一個主動對象發(fā)送信號并等待完成一個嵌套的行為序列才若在一個主動對象發(fā)送信號并等待完成一個嵌套的行為序列才繼續(xù)時,也可以把同步消息用于并發(fā)的主動對象。繼續(xù)時,也可以把同
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑幕墻抗風抗震性能檢測合同
- 2025年度環(huán)保管家環(huán)境應急響應與處置服務合同
- 2025年度國內(nèi)電子信息產(chǎn)業(yè)保理業(yè)務合同協(xié)議書
- 四川省瀘州市合江縣第五片區(qū)2024-2025學年七年級上學期第一次聯(lián)考數(shù)學試卷(含答案)
- 鎮(zhèn)江2025年江蘇鎮(zhèn)江市第三人民醫(yī)院第一批編外用工招聘8人筆試歷年參考題庫附帶答案詳解
- 重慶2025年重慶醫(yī)科大學招聘緊缺高層次人才50人筆試歷年參考題庫附帶答案詳解
- 衢州2025年浙江衢州市第三醫(yī)院招聘第一批編外人員筆試歷年參考題庫附帶答案詳解
- 肇慶廣東肇慶德慶縣總工會招聘鎮(zhèn)(街道)社會化工會工作者15人筆試歷年參考題庫附帶答案詳解
- 溫州浙江溫州海關(guān)綜合技術(shù)服務中心招聘編外工作人員筆試歷年參考題庫附帶答案詳解
- 池州2024年安徽池州學院招聘事業(yè)編制黨政管理崗4人筆試歷年參考題庫附帶答案詳解
- 國家電網(wǎng)公司電力安全工作規(guī)程 配電部分 試行
- 2023-2024學年浙江省杭州市小學語文六年級上冊期末深度自測試題
- GB/T 19868.2-2005基于焊接經(jīng)驗的工藝評定
- 蘭州牛肉面攻略課件
- 機房巡檢記錄表
- 警燈、警報器使用證申請表
- (中職)電梯維護與保養(yǎng)項目九 電梯曳引系統(tǒng)的維護與保養(yǎng)教學課件
- 中國科學院率先行動計劃組織實施方案
- 園林規(guī)劃設(shè)計16_任務三-交通廣場綠地設(shè)計
- 節(jié)制閘工程施工組織設(shè)計方案
- 《新媒體廣告設(shè)計》—教學教案
評論
0/150
提交評論