4.確定屬性
屬性是個(gè)體對(duì)象的性質(zhì),屬性通常用修飾性的名詞詞組來(lái)表示.形容詞常常表示具體的可枚舉的屬性值,屬性不可能在問(wèn)題陳述中完全表述出來(lái),必須借助于應(yīng)用域的知識(shí)及對(duì)客觀世界的知識(shí)才可以找到它們。只考慮與具體應(yīng)用直接相關(guān)的屬性,不要考慮那些超出問(wèn)題范圍的屬性。首先找出重要屬性,避免那些只用于實(shí)現(xiàn)的屬性,要為各個(gè)屬性取有意義的名字。按下列標(biāo)準(zhǔn)刪除不必要的和不正確的屬性:
(1) 對(duì)象:若實(shí)體的獨(dú)立存在比它的值重要,那么這個(gè)實(shí)體不是屬性而是對(duì)象。如在郵政目錄中,"城市"是一個(gè)屬性,然而在人口普查中,"城市"則被看作是對(duì)象。在具體應(yīng)用中,具有自身性質(zhì)的實(shí)體一定是對(duì)象。
(2) 定詞:若屬性值取決于某種具體上下文,則可考慮把該屬性重新表述為一個(gè)限定詞。
(3) 名稱:名稱常常作為限定詞而不是對(duì)象的屬性,當(dāng)名稱不依賴于上下文關(guān)系時(shí),名稱即為一個(gè)對(duì)象屬性,尤其是它不惟一時(shí)。
(4) 標(biāo)識(shí)符:在考慮對(duì)象模糊性時(shí),引入對(duì)象標(biāo)識(shí)符表示,在對(duì)象模型中不列出這些對(duì)象標(biāo)識(shí)符,它是隱含在對(duì)象模型中,只列出存在于應(yīng)用域的屬性。
(5) 內(nèi)部值:若屬性描述了對(duì)外不透明的對(duì)象的內(nèi)部狀態(tài),則應(yīng)從對(duì)象模型中刪除該屬性。
(6) 細(xì)化:忽略那些不可能對(duì)大多數(shù)操作有影響的屬性。
5.使用繼承來(lái)細(xì)化類
使用繼承來(lái)共享公共機(jī)構(gòu),以次來(lái)組織類,可以用兩種方式來(lái)進(jìn)行。
(1) 自底向上通過(guò)把現(xiàn)有類的共同性質(zhì)一般化為父類,尋找具有相似的屬性,關(guān)系或操作的類來(lái)發(fā)現(xiàn)繼承。例如"遠(yuǎn)程事務(wù)"和"出納事務(wù)"是類似的,可以一般化為"事務(wù)"。有些一般化結(jié)構(gòu)常常是基于客觀世界邊界的現(xiàn)有分類,只要可能,盡量使用現(xiàn)有概念。對(duì)稱性常有助于發(fā)現(xiàn)某些丟失的類。
(2) 自頂向下將現(xiàn)有的類細(xì)化為更具體的子類。具體化常?梢詮膽(yīng)用域中明顯看出來(lái)。應(yīng)用域中各枚舉字情況是最常見(jiàn)的具體化的來(lái)源。例如:菜單,可以有固定菜單,頂部菜單,彈出菜單,下拉菜單等,這就可以把菜單類具體細(xì)化為各種具體菜單的子類。當(dāng)同一關(guān)聯(lián)名出現(xiàn)多次且意義也相同時(shí),應(yīng)盡量具體化為相關(guān)聯(lián)的類,例如"事務(wù)"從"出納站"和"自動(dòng)出納機(jī)"進(jìn)入,則"錄入站"就是"出納站"和"自動(dòng)出納站"的一般化。在類層次中,可以為具體的類分配屬性和關(guān)聯(lián)。各屬性和都應(yīng)分配給最一般的適合的類,有時(shí)也加上一些修正。
應(yīng)用域中各枚舉情況是最常見(jiàn)的具體化的來(lái)源。
6.完善對(duì)象模型
對(duì)象建模不可能一次就能保證模型是完全正確的,軟件開(kāi)發(fā)的整個(gè)過(guò)程就是一個(gè)不斷完善的過(guò)程。模型的不同組成部分多半是在不同的階段完成的,如果發(fā)現(xiàn)模型的缺陷,就必須返回到前期階段去修改,有些細(xì)化工作是在動(dòng)態(tài)模型和功能模型完成之后才開(kāi)始進(jìn)行的。
(1) 幾種可能丟失對(duì)象的情況及解決辦法:
·同一類中存在毫無(wú)關(guān)系的屬性和操作,則分解這個(gè)類,使各部分相互關(guān)聯(lián);
·一般化體系不清楚,則可能分離扮演兩種角色的類
·存在無(wú)目標(biāo)類的操作,則找出并加上失去目標(biāo)的類;
·存在名稱及目的相同的冗余關(guān)聯(lián),則通過(guò)一般化創(chuàng)建丟失的父類,把關(guān)聯(lián)組織在一起。
(2) 查找多余的類。
類中缺少屬性,操作和關(guān)聯(lián),則可刪除這個(gè)類。
(3)查找丟失的關(guān)聯(lián)。
丟失了操作的訪問(wèn)路徑,則加入新的關(guān)聯(lián)以回答查詢。
(4) 網(wǎng)絡(luò)系統(tǒng)的具體情況作如下的修改:
①現(xiàn)金卡有多個(gè)獨(dú)立的特性。把它分解為兩個(gè)對(duì)象:卡片權(quán)限和現(xiàn)金卡。
a.卡片權(quán)限:它是銀行用來(lái)鑒別用戶訪問(wèn)權(quán)限的卡片,表示一個(gè)或多個(gè)用戶帳戶的訪問(wèn)權(quán)限;各個(gè)卡片權(quán)限對(duì)象中可能具有好幾個(gè)現(xiàn)金卡,每張都帶有安全碼,卡片碼,它們附在現(xiàn)金卡上,表現(xiàn)銀行的卡片權(quán)限。
b.現(xiàn)金卡:它是自動(dòng)出納機(jī)得到表示碼的數(shù)據(jù)卡片,它也是銀行代碼和現(xiàn)金卡代碼的數(shù)據(jù)載體。
、"事務(wù)"不能體現(xiàn)對(duì)帳戶之間的傳輸描述的一般性,因它只涉及一個(gè)帳戶,一般來(lái)說(shuō),在每個(gè)帳戶中,一個(gè)"事務(wù)"包括一個(gè)或多個(gè)"更新",一個(gè)"更新"是對(duì)帳戶的一個(gè)動(dòng)作,它們是取款,存款,查詢之一。一個(gè)"更新"中所有"更新"應(yīng)該是一個(gè)原子操作。
、"分理處"和"分離處理機(jī)"之間,"分行"和"分行處理機(jī)"之間的區(qū)別似乎并不影響分析,計(jì)算機(jī)的通信處理實(shí)際上是實(shí)現(xiàn)的概念,將"分理處計(jì)算機(jī)"并入到"分理處",將"分行計(jì)算機(jī)"并入到"分行"。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |