一、識別類圖與對象的方法
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計與策劃設(shè)計,江門網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:江門等地區(qū)。江門做網(wǎng)站價格咨詢:189820811081.對象與類
1)概念與表示法
l對象:是系統(tǒng)中用來描述客觀事物的一個實體,是具有明確語義邊界的實體;作為構(gòu)成系統(tǒng)的一個基本單位,一個對象有一組屬性和對這組屬性進(jìn)行操作的一組服務(wù)構(gòu)成。
l類:是具有相同屬性、服務(wù)、關(guān)系和語義的一組對象的集合。它為屬于該類的全部對象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和服務(wù)兩個主要部分。
l類與對象的關(guān)系+模版與實例;類的實例是對象。類的外延是其所產(chǎn)生的對象集。
類的內(nèi)涵
2一般地說,類中的元素總是具有某種共同的性質(zhì)的,這就是類的元素的同質(zhì)性。
2一個類的所有元素所共同具有的、而且是這個類的元素所獨有的性質(zhì)(也就是說不是該類的元素就不具有該性質(zhì))稱為該類的內(nèi)涵。
2類的內(nèi)涵與外延之間存在著直觀的“反比關(guān)系”:類的內(nèi)涵越多,其外延越小;內(nèi)涵越小,其外延越大。
有一個類生成的一個對象可以扮演不同的角色。
2角色:一個類的一個角色是在特定的語境下該類的對象所呈現(xiàn)的行為。
2主動對象:是擁有線程或進(jìn)程并能夠啟動控制活動的對象。是用于描述具有主動行為的事物。
2主動類:主動對象所屬于的類叫做主動類。
2特征標(biāo)記:服務(wù)的名稱及其后的位于括號內(nèi)的參數(shù)列表叫做特征標(biāo)記(或基調(diào))。
setColor(String aColor)
類的各種表示法
2)識別對象與類的方法
研究用戶需求,明確系統(tǒng)責(zé)任
2閱讀:閱讀一切與用戶需求有關(guān)的書面材料
2交流:澄清一點,指導(dǎo)需求
2調(diào)查:到現(xiàn)場調(diào)查
2記錄、整理:產(chǎn)生需求文檔(補(bǔ)充用況圖)
研究問題域
2親臨現(xiàn)場調(diào)查,掌握第一手資料
2聽取問題域?qū)<业囊娊?/p>
2閱讀與問題域有關(guān)的材料
2借鑒相同或類似問題域已有的系統(tǒng)開發(fā)經(jīng)驗及文檔
考慮系統(tǒng)邊界(參考者)
2參與者啟發(fā)作為系統(tǒng)中的類的條件
管理信息
模擬行為
建立通訊
考慮系統(tǒng)責(zé)任
2對照系統(tǒng)責(zé)任所要求的每一項功能,查看是否可以由現(xiàn)有的對象完成這些功能。
2如果發(fā)現(xiàn)某些功能在現(xiàn)有的任何對象中都不能提供,則可啟發(fā)我們發(fā)現(xiàn)問題域中某些遺漏的對象。
名詞技術(shù)
2從名詞到對象或類通常有一對一的映射。
2用單個的專有名詞或代詞以及直接引用的名詞識別對象。
2用復(fù)數(shù)名詞以及不同名詞類識別類。
2可以啟發(fā)分析員發(fā)現(xiàn)對象的因素包括:人員、組織、物品、設(shè)備、事件、表格、日志、報告、結(jié)構(gòu)等。
3)審查與篩選
舍棄無用的對象
2通過屬性判斷:
n是否通過屬性記錄了妙霞有用的信息?
2通過服務(wù)判斷:
n是否通過服務(wù)提供了某些有用的功能?
2二者都不是——無用
2在應(yīng)用中,一個對象應(yīng)該為一些其他的對象提供服務(wù)
精簡對象
2只有一個屬性的對象
2只有一個服務(wù)的對象
2總體上,對象必須具有多個屬性和服務(wù)。也存在對象沒有屬性僅提供服務(wù),或?qū)傩詿o服務(wù)的情況。
與實現(xiàn)條件有關(guān)的對象,推遲到OOD考慮
2系統(tǒng)責(zé)任所要求的某些功能
n例如系統(tǒng)安裝、配置、信息備份、瀏覽——可能無法從問題域中找到相應(yīng)的對象來提供這些功能,可在設(shè)計階段考慮專門為它們增加一些對象,既把它們推遲到設(shè)計階段考慮。
2系統(tǒng)責(zé)任要求的某些功能可能與實現(xiàn)環(huán)境有關(guān),也推遲到設(shè)計階段考慮。
n與圖形用戶界面(GUI)系統(tǒng)、數(shù)據(jù)管理系統(tǒng)、硬件和操作系統(tǒng)有關(guān)的對象。
4)識別主動對象
考慮問題域和系統(tǒng)責(zé)任
2哪些對象需呈現(xiàn)主動行為?--按定義
從需求考慮系統(tǒng)的執(zhí)行情況
2如果一切對象服務(wù)都是順序執(zhí)行的,那么首先執(zhí)行的服務(wù)在哪個對象(唯一)?
2如果需要并發(fā)執(zhí)行,每條控制線程的起點在哪個對象?這樣的對象都是主動對象。
考慮系統(tǒng)邊界
2哪些對象與參與者交互?
n如果一個交互是由參與者發(fā)起的,
n第一個處理該交互的對象是主動對象
5)類的命名
適合該類及其特殊類的全部對象實例
2汽車加摩托->機(jī)動車;還有馬車->車輛
反映個體而不是群體
2書-書籍;船-船舶
使用名詞,避免無意義的符號
使用問題域通用、規(guī)范的詞匯
在中國:可用中、英文雙重命名
6)建立類圖的對象層
用類符號表示每個對象類
填寫類描述模板
若發(fā)現(xiàn)新的屬性與服務(wù)、關(guān)系,可以隨時加到類符號中。
二、識別屬性和操作的方法
1)概念與表示法
實例屬性:是類的一個已命名的性質(zhì),它描述該性質(zhì)的一個實例可以取的值的范圍。
2抽象為屬性的性質(zhì)是與問題域相關(guān)的
2從技術(shù)觀點上,從技術(shù)觀點上,屬性是一些變量(數(shù)據(jù)項或狀態(tài)信息),包含它的每一個對象(實例)都具有自己的值。
2按照面向?qū)ο蠓椒ǖ姆庋b原則,一個對象的屬性和服務(wù)是緊密結(jié)合的,對象的屬性只能由這個對象的服務(wù)存取。
類屬性:是描述類的所有對象共同特征的一個數(shù)據(jù)項,對于任何對象實例,它的屬性值都是相同的。
2)屬性的特征
ShlaerMellor(1992)提出,Richard C.Lee增補(bǔ)
特征0:屬性必須捕獲與其對象所在的語義域相一致的特征。
特征1:任何時間一個實例為其每一個屬性都精確地給出一個值。
特征2:不能包含內(nèi)部的結(jié)構(gòu)。
人的姓+名
特征3:屬性必須是整個實體的特征。
計算機(jī)的屏幕尺寸?顯示器的屏幕尺寸
特征4:對象的屬性必須與該對象相關(guān)。
油罐倒油瓶的容器中的容積屬性
特征5:對象的屬性值不能是與其有關(guān)的對象的值以其關(guān)系的值。
人的薪水結(jié)婚日期
2.識別服務(wù)
1)概念與表示法
操作:是類的行為特征,用于描述為了引發(fā)相關(guān)行為的名稱、類型、參數(shù)與約束。
2有名字和參數(shù)表; 有可見性和返回類型。
2可見性的取值為+(公有的)、#(受保護(hù)的)、-(私有的)或~(包內(nèi)的)。
2可見性、參數(shù)表和返回類型可在類描述模板中描述。
2抽象操作:把在一個類中沒有實現(xiàn)的操作(即沒有提供方法)。
服務(wù):一個類為其他類所做的工作。一個對象的服務(wù)是當(dāng)其他對象借助消息傳遞機(jī)制請求它時,它愿意執(zhí)行的所公布的或公開的工作。
方法:是操作的實現(xiàn)。當(dāng)一個對象請求另一個對象的服務(wù)時對象完成的詳細(xì)的動作集合(算法、過程)。
對象行為分類
系統(tǒng)行為
例:創(chuàng)建、刪除、復(fù)制、轉(zhuǎn)存
對象自身的行為——算法簡單的服務(wù)
例:讀、寫屬性值
對象自身的行為——算法復(fù)雜的服務(wù)
計算或監(jiān)控
表示法:
–類范圍的操作用帶下劃線的名字和類型表達(dá)式串表示。實例范圍的操作是默認(rèn)的,對其不用標(biāo)記。
–抽象操作帶有標(biāo)記“{abstract}”,或者把操作的特征標(biāo)記寫成斜體來表示它是抽象的。
2)識別服務(wù)
– OOA不考慮算法簡單服務(wù)
去創(chuàng)建、連接、訪問、斷開連接、刪除等等。
–考慮算法復(fù)雜的服務(wù)
由對象提供的、在算法上復(fù)雜的業(yè)務(wù)服務(wù)(如要進(jìn)行某些計算或監(jiān)控操作)
3)審查與調(diào)整
–審查對象的每個服務(wù)
是否真正有用
是否直接提供系統(tǒng)責(zé)任所要求的某項功能?
或者
響應(yīng)其它服務(wù)的請求間接地完成這種功能的某些局部操作?
調(diào)整——取消無用的服務(wù)
是不是高內(nèi)聚的
一個服務(wù)只完成一項單一的、完整的功能
調(diào)整——拆分或合并
4)認(rèn)識對象的主動行為
2考慮問題域?qū)ο笮袨槭潜灰l(fā)的,還是主動呈現(xiàn)的?
2與參與者交互的對象服務(wù)
2完成最外層功能的對象服務(wù)外層與內(nèi)層是請求與被請求的關(guān)系
2服務(wù)執(zhí)行路線逆向追蹤找到了主動服務(wù)就等于找到了主動對象。
5)服務(wù)的命名和定位
命名:動詞或動賓結(jié)構(gòu); 外向性
定位:
與實際事物一致
例:售貨員——售貨,商品——售出
在泛化中的位置
——適合類的全部對象實例
6)描述服務(wù)
把每個對象的服務(wù)都填寫到相應(yīng)的類符號中。
2在類描述模板中,寫出:
2說明服務(wù)的職責(zé)
2服務(wù)原型(消息的格式)
2消息發(fā)送(指出在這個服務(wù)執(zhí)行時,需要請求哪些別的對象服務(wù),即接收消息的對象類名以及執(zhí)行這個消息的服務(wù)名)
2約束條件:如果該服務(wù)的執(zhí)行有前置條件、后置條件,以及執(zhí)行時間的要求等其它需要說明的事項,則在這里加以說明。
2實現(xiàn)服務(wù)的方法(文字、活動圖或流程圖)。
三、識別關(guān)系——泛化關(guān)系
1.定義:
2如果類A具有類B的全部屬性和全部操作,而且還具有自己特有的一些屬性或操作,則A叫B的B的特殊類,B叫做A的一般類,A與B之間的關(guān)系成為泛化關(guān)系。
2如果類A的全部對象都是類B的對象,且類B中存在不屬于類A的對象,則A是B的特殊類,B是A的一般類,A與B之間的關(guān)系成為泛化關(guān)系。
2.性質(zhì):
后代將具有祖先的所有的關(guān)聯(lián)。
a)反對稱性
如果對象A是對象B的后代,那么B將不會與A有“是一個”關(guān)系(對象B不是對象A的后代)。例如,Employee是一個Person,但并不是所有人都是雇員。
b)傳遞性
如果對象A“是一個”對象B,對象B“是一個”對象C,那么對象A“是一個”對象C。
在OOA模型中建立泛化,是為了使系統(tǒng)模型更清晰地映射問題域中事物的分類關(guān)系。它把具有泛化關(guān)系的類組織在一起,可以簡化我們對復(fù)雜系統(tǒng)的認(rèn)識,從而增加了軟件的可維護(hù)性和適應(yīng)變化的靈活性。
3.基本表示法
4.泛化集(GeneralizationSet)
用來定義泛化關(guān)系中子集的集合。
泛化集的約束
2{complete,disjoint}
表明泛化集是覆蓋的,并且某些特殊類沒有共同的實例
2{incomplete,disjoint}
表明泛化集不是覆蓋的,并且某些特殊類沒有共同實例
2{complete,overlapping}
表明泛化集是覆蓋的,并且某些特殊類具有共同的實例
2{incomplete,overlapping}
表明泛化集不是覆蓋的,并且某些特殊類具有共同實例
2默認(rèn){incomplete,disjoint}
舉例:
四、泛化關(guān)系的識別策略
1)學(xué)習(xí)當(dāng)前領(lǐng)域的分類學(xué)知識
2)按常識考慮事物的分類
3)利用泛化的定義
兩個類
集合包含
特征包含
4)看兩個類的對象之間是否有“是一個”關(guān)系
Is A 關(guān)系表
考察A是一個B,B是一個A?
若都是——同義
若都從來不是——沒有泛化關(guān)系
A總是B,B有時是A,則A是一個B
5)考察類的屬性與服務(wù)
6)考慮領(lǐng)域范圍內(nèi)的復(fù)用
審查與調(diào)整
問題域與系統(tǒng)責(zé)任是否需要這樣的分類?
(例:書—善本書(內(nèi)容有用,流傳稀少,??叹?,具有文物、學(xué)術(shù)或藝術(shù)價值之本)
是否符合分類學(xué)的常識?
是否構(gòu)成了繼承關(guān)系?(確實繼承了一些屬性或服務(wù))
一般-特殊結(jié)構(gòu)的簡化
(1)取消沒有特殊性的特殊類
從一般類劃分出太多的特殊類,使系統(tǒng)中類的設(shè)置太多,增加了系統(tǒng)的復(fù)雜性;
建立過深的繼承層次,增加了系統(tǒng)的理解難度和處理開銷。
(2)增加屬性簡化一般-特殊結(jié)構(gòu)
(3)取消用途單一的一般類,減少繼承層次
一般類存在的理由
有兩個或兩個上以上的特殊類
需要用它創(chuàng)建對象實例
有助于軟件復(fù)用
調(diào)整對象層和特征層
定義泛化的活動,將使分析員對系統(tǒng)中的對象類及其特征有更深入的認(rèn)識。在很多情況下,隨著泛化的建立,需要對類圖的對象層和特征層作某些修改,包括增加、刪除、合并或分開某些類,以及增、刪某些屬性與服務(wù)或把它們移到其它類。
五、關(guān)聯(lián)關(guān)系的分類與識別策略
1.概念與表示法
2關(guān)聯(lián)
n關(guān)聯(lián)描述了引用類的實例的元組的集合。
n兩個類之間可以存在多個關(guān)聯(lián)
2鏈
n鏈?zhǔn)菍ο笠玫脑M。在最常見的情況下,它是一對對象引用。它是關(guān)聯(lián)的一個實例。
例:
2.多重性
2多重性是非負(fù)整數(shù)集的一個子集。
2另一端上的多重性是指,對于本端的一個對象,需要另一端對象的個數(shù)。
2其中的下限和上限都是文字整型值,說明從下限到上限的整數(shù)閉區(qū)間。此外星號(*)可以用于上限,表明不限制上限。
2如果多重性規(guī)約由單個的(*)構(gòu)成,那么它就表明了無窮的非負(fù)正整數(shù)的范圍,也即它等價于0..*。
3.角色
2在關(guān)聯(lián)的每一個端點上有一個角色。每一個角色具有一個角色名,用來描述其類被其他的類看作是什么。
2當(dāng)需要強(qiáng)調(diào)一個類在一個關(guān)聯(lián)的確切含義時,使用關(guān)聯(lián)角色名。
2如果使用角色名,就可以省略關(guān)聯(lián)名。
2角色名也決定了其類的多重性;就是說,該類與其他類的一個實例相關(guān)聯(lián)的實例的數(shù)量。
例:
4.導(dǎo)航性
2導(dǎo)航性限制了關(guān)聯(lián)上的訪問方向
2雙向的導(dǎo)航不必畫箭頭
UML2.0中對導(dǎo)航性的表示
5.關(guān)聯(lián)的類型
2關(guān)聯(lián)類
n具有關(guān)聯(lián)和類的特征的建模元素。關(guān)聯(lián)類既可以被看作是具有類的性質(zhì)的關(guān)聯(lián),也可以被看作為具有關(guān)聯(lián)性質(zhì)的類。
n把關(guān)聯(lián)類表示成一個用虛線連接到關(guān)聯(lián)路徑的類符號。
n關(guān)聯(lián)和關(guān)聯(lián)類符號表示同模型元素,它們的名字相同。名字可以放置在關(guān)聯(lián)上或類符號中(但它們的名字必須相同)。
n如果一個類的一個屬性可以同時有多個值,就考慮使用關(guān)聯(lián)類。
例如,一個人的薪水。
關(guān)聯(lián)類到二元關(guān)聯(lián)的轉(zhuǎn)換
2限定關(guān)聯(lián)(Qualifier)
二元關(guān)聯(lián)的屬性或者屬性列表,在此關(guān)聯(lián)中,屬性的值從整個對象集合里選擇一個唯一的關(guān)聯(lián)對象或者關(guān)聯(lián)對象集.
限定關(guān)聯(lián)(Qualifier)
n限定符可以是目標(biāo)類的一個屬性
n但通常是關(guān)聯(lián)的屬性
n該屬性的值限定了關(guān)聯(lián)
2異或關(guān)聯(lián)
2有序關(guān)聯(lián)
2多元關(guān)聯(lián)
2聚合
建立關(guān)聯(lián)的策略
2認(rèn)識對象之間的靜態(tài)聯(lián)系
n考慮問題域和系統(tǒng)責(zé)任——哪些類的對象實例之間的關(guān)系需要在系統(tǒng)中表達(dá)。
u物理位置或親密度
u包含
u通信
u享受服務(wù)
u存儲信息
2認(rèn)識關(guān)聯(lián)的屬性與操作
n對于考慮中的每一種關(guān)聯(lián),進(jìn)一步分析它是否應(yīng)該帶有某些屬性和操作。就是說,是否含有一些僅憑一個簡單的關(guān)聯(lián)不能充分表達(dá)的信息。
2分析并表示實例連接的多重性
n從連接線的每一端,看本端的一個對象可能與另一端的幾個對象發(fā)生連接,把結(jié)果標(biāo)注到連接線的另一端。
2對多對多的關(guān)聯(lián)的處理
多對多關(guān)聯(lián)的問題
2用面向?qū)ο笳Z言實現(xiàn)為兩個數(shù)組指針
2用關(guān)系數(shù)據(jù)庫實現(xiàn)為多對多的表
n多對多的表的信息是冗余的
n兩個多對多關(guān)系轉(zhuǎn)化為不符合第四范式的表
降低多對多關(guān)聯(lián)的多重性
2限定關(guān)聯(lián)
n用面向?qū)ο笳Z言實現(xiàn)為帶有參數(shù)的篩選函數(shù)
n用關(guān)系數(shù)據(jù)庫實現(xiàn)為先篩選后連接
2引入新的中間類
n切斷多對多類
n從問題域中尋找新的中間類,它與雙方都構(gòu)成1對多關(guān)系
n若問題域中找不到相應(yīng)的類,可構(gòu)想一個
六、分析模式簡介
通用分析模式
Accountability責(zé)任(party OrganizationHierarchies Organization structure …)
Observation and Measurements觀察與測量
Rederring to Objects對象的引用
領(lǐng)域分析模式
財務(wù)領(lǐng)域
規(guī)劃
商業(yè)
…
分析模式Party
分析模式Organization Hierarchies(組織層次)
分析模式Organization structure(組織結(jié)構(gòu))
七、聚合與組合關(guān)系
1.概念與表示法
2聚合(aggregation)是關(guān)聯(lián)的一種特殊形式,表示整體和部分之間的“整體-部分”關(guān)系。
2聚集(aggregate)是聚合關(guān)系中作為“整體”的類,而把作為“部分”的類稱為成分或部分。
2類與類之間的聚合關(guān)系指的是,一個類的對象實例,以另一個類的對象實例作為其組成部分,是種“a part of”或“has a”;也可理解為,一個類定義引用另一個類定義。
2組合(Composition)是聚合的一種形式,其中,其部分和整體之間具有很強(qiáng)的“屬于”關(guān)系,并且它們的生存期是一致的。這種聚集末端的多重性不能超過1。
2組合對象是組合類的實例。
表示法:
性質(zhì)
2結(jié)構(gòu)性質(zhì)
部分必須與它們所構(gòu)建的整體有某些結(jié)構(gòu)上或功能上的關(guān)系。
2數(shù)學(xué)性質(zhì)
a.反對稱性
如果對象A是對象B的一部分,那么對象B就不能是對象A的一部分。
b.傳遞性
如果對象A是對象B的一部分,對象B是對象C的一部分,那么對象A是對象C的一部分。
分類
整體部分關(guān)系的性質(zhì)
構(gòu)造性:整體部分之間存是否存在功能或結(jié)構(gòu)上的關(guān)系
同質(zhì)性:整體部分之間的類型是否相同
不變性:整體部分之間的是否不可分離性
根據(jù)性質(zhì)的不同可將整體部分關(guān)系分為以下幾類:
識別策略
2物理上的整體事物和它的組成部分
例:機(jī)器、設(shè)備和它的零部件
2組織機(jī)構(gòu)和它的下級組織及部門
例:公司與子公司、部門
2團(tuán)體(組織)與成員
例:公司與職員
2一種事物在空間上包容其它事物
例:生產(chǎn)車間與機(jī)器
2抽象事物的整體與部分
例:學(xué)科與分支學(xué)科、法律與法律條款
2具體事物和它的某個抽象方面
例:人員與身份、履歷
2在材料上的組成關(guān)系
例如,面包由面粉、糖和酵母組成,汽車是由鋼、塑料和玻璃組成。
審查與篩選
2是否屬于問題域或系統(tǒng)責(zé)任?
例:公司職員與家庭
2部分對象是否有一個以上的屬性?
例:汽車與輪胎(規(guī)格)
2是否有明顯的整體-部分關(guān)系?
例:學(xué)生與課程,誰是整體?部分?
八、依賴與實現(xiàn)關(guān)系
一個依賴規(guī)約了兩個或多個模型元素(或兩個模型元素集合)之間的一種語義關(guān)系,對目標(biāo)元素的改變可能需要改變該依賴中的源元素。
下面種類的依賴是預(yù)定義的:
access--訪問;derive --派生;import --移入;refine--精化
trace--跟蹤;use--使用
include–包含; extend—擴(kuò)展
表示法:
把依賴表示為兩個模型元素之間的虛線箭頭。在箭頭尾部的模型元素(客戶)依賴箭頭頭部的模型元素(提供者)。箭頭可以用放在書名號內(nèi)的字符串標(biāo)識。
可能會有一組元素作為客戶或提供者。在這種情況下,一個或多個尾部在客戶端的箭頭被連接到頭部在提供者端的一個或多個箭頭的尾部。如果需要,可以在連接處放置小的圓點。依賴的注釋應(yīng)該依附在連接點上。用沒有箭頭的虛線表示注釋或約束與它應(yīng)用到的元素之間的連接。這不是依賴。
不同類型的依賴
標(biāo)題名稱:面向?qū)ο蠹夹g(shù)之系統(tǒng)分析:類圖-創(chuàng)新互聯(lián)
文章鏈接:http://chinadenli.net/article22/dhppjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、關(guān)鍵詞優(yōu)化、外貿(mào)建站、網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)