類(lèi)圖2優(yōu)秀文檔_第1頁(yè)
類(lèi)圖2優(yōu)秀文檔_第2頁(yè)
類(lèi)圖2優(yōu)秀文檔_第3頁(yè)
類(lèi)圖2優(yōu)秀文檔_第4頁(yè)
類(lèi)圖2優(yōu)秀文檔_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章類(lèi)圖目錄3.2UML中的類(lèi)3.3類(lèi)圖中的關(guān)系3.4閱讀類(lèi)圖3.5如何建立對(duì)象模型3.1類(lèi)圖的概念3.1類(lèi)圖的概念類(lèi)圖(Classdiagram)是最常用的UML圖,顯示出類(lèi)、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系;我們常用類(lèi)圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。一個(gè)系統(tǒng)可以有多張類(lèi)圖,一個(gè)類(lèi)也可以出現(xiàn)在幾張類(lèi)圖中。類(lèi)圖是描述類(lèi)、協(xié)作(類(lèi)或?qū)ο箝g的協(xié)作)、接口及其關(guān)系的圖。與所有UML的其它圖一樣,類(lèi)圖可以包括注釋、約束、包。類(lèi)圖中的關(guān)系包括:依賴(lài)關(guān)系(Dependency)、泛化關(guān)系(Generalization)、關(guān)聯(lián)關(guān)系(Association)、實(shí)現(xiàn)關(guān)系(Realization)。3.1類(lèi)圖的概念電子商務(wù)網(wǎng)站的對(duì)象模型3.1類(lèi)圖的概念2類(lèi)圖的劃分A、概念層(需求分析階段)概念層類(lèi)圖描述了問(wèn)題領(lǐng)域的概念。類(lèi)可以從問(wèn)題域的概念中得出,一般這些概念和類(lèi)有自然的聯(lián)系,但兩者并沒(méi)有直接的映射關(guān)系。畫(huà)概念層類(lèi)圖時(shí)很少考慮或不考慮實(shí)現(xiàn)問(wèn)題。因此,概念層類(lèi)圖應(yīng)獨(dú)立于具體的程序設(shè)計(jì)語(yǔ)言。B、說(shuō)明層(設(shè)計(jì)階段)說(shuō)明層類(lèi)圖描述軟件的接口部分,而不是軟件的實(shí)現(xiàn)部分。C、實(shí)現(xiàn)層(實(shí)現(xiàn)階段)只有在實(shí)現(xiàn)層才真正考慮類(lèi)的實(shí)現(xiàn)問(wèn)題,提供類(lèi)的實(shí)現(xiàn)細(xì)節(jié)。3.1類(lèi)圖的概念3類(lèi)圖的組成元素類(lèi)圖中的元素有類(lèi)、接口、協(xié)作、關(guān)系、注釋、約束、包。關(guān)系把類(lèi)、協(xié)作、接口連接在一起構(gòu)成一個(gè)圖。注釋的作用是對(duì)某些類(lèi)和接口進(jìn)行注釋?zhuān)s束的作用是對(duì)某些類(lèi)和接口進(jìn)行約束。泛化關(guān)系實(shí)現(xiàn)關(guān)系關(guān)聯(lián)關(guān)系依賴(lài)關(guān)系注釋內(nèi)容實(shí)現(xiàn)接口3.1類(lèi)圖的概念類(lèi)圖常用來(lái)描述業(yè)務(wù)或軟件系統(tǒng)的組成、結(jié)構(gòu)和關(guān)系,用于對(duì)系統(tǒng)的靜態(tài)結(jié)構(gòu)進(jìn)行建模。我們通常通過(guò)下面三種方式使用類(lèi)圖:(1)為系統(tǒng)詞匯建模型在使用UML構(gòu)件系統(tǒng)前需要構(gòu)造系統(tǒng)的基本詞匯,以描述系統(tǒng)的邊界。模擬系統(tǒng)的詞匯表,涉及到確定哪些抽象是系統(tǒng)的一部分,哪些抽象不在系統(tǒng)的邊界內(nèi)。可以用類(lèi)圖規(guī)定這些抽象和它們的責(zé)任。(2)為簡(jiǎn)單的協(xié)作建模協(xié)作是由一些共同工作的類(lèi)、接口和其他模型元素所構(gòu)成的一個(gè)整體,這個(gè)整體提供的一些合作行為強(qiáng)于所有這些元素的行為的和。系統(tǒng)分析者可以通過(guò)類(lèi)圖將這種簡(jiǎn)單的協(xié)作進(jìn)行可視化和表述。模擬協(xié)作管理和協(xié)調(diào)發(fā)薪水的行為外部銀行系統(tǒng)的接口,用來(lái)封裝系統(tǒng)與外部銀行系統(tǒng)的通信實(shí)現(xiàn)接口表明雇員應(yīng)得的薪水支票封裝了銀行的信息3.1類(lèi)圖的概念(3)模型化一個(gè)邏輯數(shù)據(jù)庫(kù)模式在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),通常將數(shù)據(jù)庫(kù)模式看作為數(shù)據(jù)庫(kù)概念設(shè)計(jì)的藍(lán)圖,在很多領(lǐng)域,都需要在關(guān)系數(shù)據(jù)庫(kù)或面向數(shù)據(jù)庫(kù)中存儲(chǔ)永久信息。系統(tǒng)分析者可以使用類(lèi)圖來(lái)對(duì)這些數(shù)據(jù)庫(kù)進(jìn)行模式建模。3.2UML中的類(lèi)類(lèi)由一個(gè)矩形表示,它包含3欄,在每欄中分別寫(xiě)入類(lèi)的名稱(chēng)、類(lèi)的屬性和類(lèi)的操作。Order類(lèi)表示法1)名稱(chēng)每個(gè)類(lèi)都必須有一個(gè)有別于其他類(lèi)的名稱(chēng),類(lèi)名部分是不能省略的。類(lèi)的名稱(chēng)通常來(lái)自于系統(tǒng)的問(wèn)題域,并且盡可能地明確表達(dá)要表達(dá)的事物,不會(huì)造成類(lèi)的語(yǔ)義沖突。名稱(chēng)(Name)是一個(gè)文本串,由字符、數(shù)字、下劃線組成的惟一的字符串。在實(shí)際應(yīng)用中,有一個(gè)普遍采用的命名原則:采用CamelCase格式,盡可能避免使用縮寫(xiě)。3.2UML中的類(lèi)表示方法有兩種:(1)簡(jiǎn)單名:如Order、Title、Shape等,就只是一個(gè)單獨(dú)的名稱(chēng)。(2)全名(路徑名):在類(lèi)名前面加上包的名稱(chēng),例如java::awt::Rectangel、businessRule::order等。2)屬性屬性描述了類(lèi)的靜態(tài)特征,在面向?qū)ο缶幊讨校褜傩员硎緸槌蓡T變量。屬性是類(lèi)的一個(gè)特性,它描述了類(lèi)的對(duì)象(實(shí)例)所具有的一系列特征值。一個(gè)類(lèi)可以具有零個(gè)到多個(gè)屬性。通常屬性名的第一個(gè)字母是小寫(xiě)的。屬性定義:[visibility]attribute-name[:type][=initial-value][{property-string}]其中:可見(jiàn)性(visibility)表示該屬性對(duì)類(lèi)外的元素是否可訪問(wèn)。分為:public(+)公有的,即模型中的任何類(lèi)都可以訪問(wèn)該屬性。private(-)私有的,表示不能被別的類(lèi)訪問(wèn)。protected(#)受保護(hù)的,表示該屬性只能被該類(lèi)及其子類(lèi)訪問(wèn)。3.2UML中的類(lèi)3)操作操作是類(lèi)能夠做的事情,或者是另一個(gè)類(lèi)能對(duì)該類(lèi)做的事情。在面向?qū)ο缶幊陶Z(yǔ)言中,它通常表示為成員方法。操作通常應(yīng)該聲明為public,否則它難以向其他類(lèi)提供服務(wù)。操作定義:[visibility]operating-name[(parameter-list)][:return-type][{property-string}]可見(jiàn)性操作名(參數(shù)表);返回類(lèi)型{約束特性}其中:參數(shù)表:參數(shù)名:類(lèi)型,…Parameter-name:type=default-value返回類(lèi)型:操作返回的結(jié)果類(lèi)型。3.2UML中的類(lèi)4)職責(zé)職責(zé)描述了類(lèi)做什么,即,類(lèi)的屬性和操作能完成什么任務(wù)。它指明類(lèi)承擔(dān)的責(zé)任和義務(wù)。在矩形框中最后一欄中寫(xiě)明類(lèi)的職責(zé)。職責(zé)的表示3.2UML中的類(lèi)5)約束約束指定了類(lèi)所要滿足的一個(gè)或多個(gè)規(guī)則。在UML中,用花括號(hào)括起來(lái)的自由文本表示約束。約束的表示3.2UML中的類(lèi)

2類(lèi)的種類(lèi)1)抽象類(lèi)在進(jìn)行類(lèi)設(shè)計(jì)時(shí),如果一些具體類(lèi)具有相同的方法或?qū)傩裕覀兛梢园堰@些相同的方法或?qū)傩詮倪@些具體類(lèi)中抽取出來(lái),把它們封裝到一個(gè)抽象類(lèi)中,然后,通過(guò)擴(kuò)展抽象類(lèi),重新定義這些具體類(lèi)。抽象類(lèi)是一種不能直接實(shí)例化的類(lèi),也就是說(shuō)不能用抽象類(lèi)創(chuàng)建對(duì)象。在UML中,抽象類(lèi)和抽象方法的表示是將其名字用斜體表示。但是由于斜體字在草圖中不容易表現(xiàn),因此推薦用《abstract》構(gòu)造型來(lái)表示。抽象類(lèi)的兩種表示方法3.2UML中的類(lèi)2)接口接口是一種類(lèi)似于抽象類(lèi)的機(jī)制,接口中的方法都是抽象方法。接口可以有名字,用以與其他的接口相區(qū)別,接口名通常是從問(wèn)題域的詞匯表中抽取出的短名詞或名詞詞組。在UML中,接口兩種表示方法。《Interface》圖標(biāo)表示法Interface構(gòu)造符號(hào)表示法接口的兩種表示法圖標(biāo)表示方法的優(yōu)點(diǎn)是簡(jiǎn)單,它只適用于只有單個(gè)操作的接口和草圖中。構(gòu)造符號(hào)表示法是采用類(lèi)(interface實(shí)際上是一種特殊的類(lèi))的方式表示,它的優(yōu)點(diǎn)是可以添加多個(gè)抽象方法,具有更強(qiáng)的表示能力。3.2UML中的類(lèi)3)關(guān)聯(lián)類(lèi)

和類(lèi)一樣,關(guān)聯(lián)也可以有自己的屬性和操作。此時(shí),這個(gè)關(guān)聯(lián)實(shí)際上是個(gè)關(guān)聯(lián)類(lèi)。關(guān)聯(lián)類(lèi)Role關(guān)聯(lián)類(lèi)既是關(guān)聯(lián)又是類(lèi),它不僅象關(guān)聯(lián)那樣連接兩個(gè)類(lèi),而且可以定義一組屬于關(guān)聯(lián)本身的特性。注意:只有關(guān)聯(lián)每一端的對(duì)象是1:1對(duì)應(yīng)時(shí),才能創(chuàng)建關(guān)聯(lián)類(lèi)。3.2UML中的類(lèi)4)模版類(lèi)在c++這樣的語(yǔ)言中,提供了一種叫做參數(shù)化類(lèi)(parameterizedclass)的機(jī)制,或叫做模版(template)。例如,我們需要一些能夠處理整型、浮點(diǎn)型、字符串的數(shù)組,普通的做法是為它們各創(chuàng)建一個(gè)類(lèi),這三個(gè)類(lèi)除了數(shù)據(jù)類(lèi)型不同之外,其他的都是相同,但是仍然要定義三次。模版就是用來(lái)解決這個(gè)問(wèn)題,可以根據(jù)占位符或者參數(shù)來(lái)定義類(lèi),而不用說(shuō)明屬性、方法返回值和方法參數(shù)的實(shí)際類(lèi)型。通過(guò)實(shí)際值代替占位符就可創(chuàng)建新類(lèi)。3.2UML中的類(lèi)模板類(lèi)3.2UML中的類(lèi)5)主動(dòng)類(lèi)從運(yùn)行的角度來(lái)看,還有一種特殊的類(lèi)——主動(dòng)類(lèi),主動(dòng)類(lèi)的實(shí)例稱(chēng)為主動(dòng)對(duì)象,一個(gè)主動(dòng)對(duì)象擁有一個(gè)控制線程并且能夠控制線程的活動(dòng),具有獨(dú)立的控制權(quán)。例如,命令處理程序就是一個(gè)主動(dòng)類(lèi)的例子,它從外面接受命令對(duì)象,然后在自身的控制線程內(nèi)執(zhí)行命令。3.2UML中的類(lèi)6)嵌套類(lèi)在諸如Java的語(yǔ)言中,允許你將一個(gè)類(lèi)的定義放在另一個(gè)類(lèi)定義的內(nèi)部,這就是嵌套類(lèi),在Java中也稱(chēng)為內(nèi)層類(lèi)。嵌套類(lèi)是聲明在它的外層類(lèi)中的,因此只能夠通過(guò)外層類(lèi)或外層類(lèi)的對(duì)象對(duì)它進(jìn)行訪問(wèn),在UML中,可以采用一個(gè)錨圖標(biāo)來(lái)表示這種關(guān)系。

嵌套類(lèi)表示法3.2UML中的類(lèi)類(lèi)代表領(lǐng)域知識(shí)中的詞匯和術(shù)語(yǔ)。同客戶交談,分析他們的領(lǐng)域知識(shí),設(shè)計(jì)用來(lái)解決領(lǐng)域中的問(wèn)題的計(jì)算機(jī)系統(tǒng),同時(shí)也就是在學(xué)習(xí)這些領(lǐng)域詞匯,并用UML中的類(lèi)建立這些領(lǐng)域詞匯的類(lèi)模型。如何識(shí)別類(lèi):在與客戶的交談中,要注意客戶用來(lái)描述業(yè)務(wù)實(shí)體的名詞術(shù)語(yǔ)。這些名詞可作為領(lǐng)域模型中的類(lèi)。還要注意你聽(tīng)到的動(dòng)詞,因?yàn)檫@些動(dòng)詞可能會(huì)構(gòu)成這些類(lèi)中的操作屬性,得到一組類(lèi)的核心列表后,應(yīng)當(dāng)向客戶詢(xún)問(wèn)在業(yè)務(wù)過(guò)程中每個(gè)類(lèi)的作用,這些將是類(lèi)的職責(zé)。識(shí)別類(lèi)類(lèi)的識(shí)別是面向?qū)ο蠓椒ǖ囊粋€(gè)難點(diǎn),但又是建模的關(guān)鍵。常用的方法有:1.名詞識(shí)別法2.系統(tǒng)實(shí)體識(shí)別法3.從用例中識(shí)別類(lèi)4.利用分解與抽象技術(shù)關(guān)鍵是要定義類(lèi)的“屬性”及“操作”。1.名詞識(shí)別法

相關(guān)類(lèi):相關(guān)類(lèi)是指那些明顯屬于問(wèn)題域的類(lèi),一般表示這些類(lèi)的名字的名詞經(jīng)常出現(xiàn)在需求陳述中。模糊類(lèi):那些我們不能肯定地和無(wú)二義性地分類(lèi)為相關(guān)類(lèi)的類(lèi)。我們需要對(duì)它們進(jìn)一步進(jìn)行分析后才能確定其是相關(guān)類(lèi)還是屬性或者無(wú)關(guān)類(lèi)。無(wú)關(guān)類(lèi):無(wú)關(guān)類(lèi)是那些問(wèn)題域之外的類(lèi),我們無(wú)法陳述它們的目的。有經(jīng)驗(yàn)的開(kāi)發(fā)人員在他們候選類(lèi)的初始表中就不包括無(wú)關(guān)類(lèi),這樣識(shí)別和消除無(wú)關(guān)類(lèi)的步驟就可以省略了。1.名詞識(shí)別法

識(shí)別問(wèn)題域中的實(shí)體,實(shí)體的描述通常用名詞、名詞短語(yǔ)、名詞性代詞的形式出現(xiàn)。用指定語(yǔ)言對(duì)系統(tǒng)進(jìn)行描述;從系統(tǒng)描述中標(biāo)識(shí)名詞、名詞短語(yǔ)、名詞性代詞;識(shí)別確定(取、舍)類(lèi)。描述過(guò)程應(yīng)與領(lǐng)域?qū)<夜餐献魍瓿桑⒆裱瓎?wèn)題域中的概念和命名。1.名詞識(shí)別法

識(shí)別問(wèn)題域中的實(shí)體,實(shí)體的描述通常用名詞、名詞短語(yǔ)、名詞性代詞的形式出現(xiàn)。用指定語(yǔ)言對(duì)系統(tǒng)進(jìn)行描述;從系統(tǒng)描述中標(biāo)識(shí)名詞、名詞短語(yǔ)、名詞性代詞;識(shí)別確定(取、舍)類(lèi)。為了發(fā)現(xiàn)對(duì)象和類(lèi),開(kāi)發(fā)人員要在系統(tǒng)需求和系統(tǒng)分析的文檔中查找名詞和名詞短語(yǔ),包括:可感知的事物、角色、事件、互相作用、人員、場(chǎng)所、組織、設(shè)備和地點(diǎn)等。

識(shí)別問(wèn)題域中的實(shí)體,實(shí)體的描述通常用名詞、名詞短語(yǔ)、名詞性代詞的形式出現(xiàn)。用指定語(yǔ)言對(duì)系統(tǒng)進(jìn)行描述;從系統(tǒng)描述中標(biāo)識(shí)名詞、名詞短語(yǔ)、名詞性代詞;識(shí)別確定(取、舍)類(lèi)。1.名詞識(shí)別法根據(jù)下述原則進(jìn)一步確定類(lèi):①去掉冗余類(lèi):如兩個(gè)類(lèi)表述同一信息,應(yīng)保留最具有描述能力的類(lèi)。②去掉不相干的類(lèi):刪除與問(wèn)題無(wú)關(guān)或關(guān)系不大的類(lèi)。③刪除模糊的類(lèi)或性質(zhì)獨(dú)立性不強(qiáng)的類(lèi):有些初始類(lèi)邊界定義不確切,或范圍太廣,應(yīng)該刪除。⑤所描述的操作不適宜作為對(duì)象類(lèi),所描述的只是實(shí)現(xiàn)過(guò)程中的暫時(shí)的對(duì)象,應(yīng)刪去。案例—銀行網(wǎng)絡(luò)系統(tǒng)

一、問(wèn)題的陳述

銀行網(wǎng)絡(luò)系統(tǒng)包括人工出納和分行共享的自動(dòng)出納機(jī);各分理處用自己的計(jì)算機(jī)處理業(yè)務(wù)(保存帳戶、處理事務(wù)等);各分理處與出納站通過(guò)網(wǎng)絡(luò)通信;出納站錄入帳戶和事務(wù)數(shù)據(jù)。自動(dòng)出納機(jī)與分行計(jì)算機(jī)通信;自動(dòng)出納機(jī)與用戶接口,接受現(xiàn)金卡;發(fā)放現(xiàn)金;打印收據(jù);分行計(jì)算機(jī)與撥款分理處結(jié)帳。要求系統(tǒng)正確處理同一帳戶的并發(fā)訪問(wèn);網(wǎng)絡(luò)費(fèi)用平均攤派給各分理處。ATM(AutoTradeMachine)銀行網(wǎng)絡(luò)系統(tǒng)包括人工出納和分行與分理處共享的自動(dòng)出納機(jī)。銀行網(wǎng)絡(luò)ATM系統(tǒng)自動(dòng)出納機(jī)自動(dòng)出納機(jī)自動(dòng)出納機(jī)出納站分理處計(jì)算機(jī)分理處計(jì)算機(jī)出納站帳戶帳戶用戶分行計(jì)算機(jī)自動(dòng)出納機(jī)…確定類(lèi)采用名詞識(shí)別法:檢查問(wèn)題陳述中的所有名詞,得到初始類(lèi):軟件銀行網(wǎng)絡(luò)出納員分行系統(tǒng)自動(dòng)出納機(jī)帳戶帳戶數(shù)據(jù)出納站分理處訪問(wèn)分理處計(jì)算機(jī)

事務(wù)事務(wù)數(shù)據(jù)現(xiàn)金卡用戶顧客分行計(jì)算機(jī)現(xiàn)金收據(jù)費(fèi)用安全措施記錄保管根據(jù)下述原則進(jìn)一步確定類(lèi):①去掉冗余類(lèi):如兩個(gè)類(lèi)表述同一信息,應(yīng)保留最具有描述能力的類(lèi),如“用戶”與“顧客”是重復(fù)的描述,由于“顧客”更具有描述性,故保留它,刪除“用戶”。②去掉不相干的類(lèi):刪除與問(wèn)題無(wú)關(guān)或關(guān)系不大的類(lèi),如“費(fèi)用”。確定類(lèi)采用名詞識(shí)別法:檢查問(wèn)題陳述中的所有名詞,得到初始類(lèi):軟件銀行網(wǎng)絡(luò)出納員分行系統(tǒng)自動(dòng)出納機(jī)帳戶帳戶數(shù)據(jù)出納站分理處訪問(wèn)分理處計(jì)算機(jī)

事務(wù)事務(wù)數(shù)據(jù)現(xiàn)金卡用戶顧客分行計(jì)算機(jī)現(xiàn)金收據(jù)費(fèi)用安全措施記錄保管③刪除模糊的類(lèi):有些初始類(lèi)邊界定義不確切,或范圍太廣,應(yīng)該刪除。如“系統(tǒng)”、“安全措施”、“記錄保管”、“銀行網(wǎng)絡(luò)”。④刪除那些性質(zhì)獨(dú)立性不強(qiáng)的,而應(yīng)該是類(lèi)“屬性”的候選類(lèi):如“帳戶數(shù)據(jù)”、“收據(jù)”、“現(xiàn)金”、“事務(wù)數(shù)據(jù)”。采用名詞識(shí)別法:檢查問(wèn)題陳述中的所有名詞,得到初始類(lèi):軟件銀行網(wǎng)絡(luò)出納員分行系統(tǒng)自動(dòng)出納機(jī)帳戶帳戶數(shù)據(jù)出納站分理處訪問(wèn)分理處計(jì)算機(jī)

事務(wù)事務(wù)數(shù)據(jù)現(xiàn)金卡用戶顧客分行計(jì)算機(jī)現(xiàn)金收據(jù)費(fèi)用安全措施記錄保管⑤所描述的操作不適宜作為對(duì)象類(lèi),并被其自身所操縱,所描述的只是實(shí)現(xiàn)過(guò)程中的暫時(shí)的對(duì)象,應(yīng)刪去。如“軟件”,“訪問(wèn)”。確定類(lèi)最終確定的11個(gè)類(lèi)為:

分行計(jì)算機(jī)分行出納站出納員分理處計(jì)算機(jī)自動(dòng)出納機(jī)帳戶現(xiàn)金卡事務(wù)顧客采用名詞識(shí)別法:檢查問(wèn)題陳述中的所有名詞,得到初始類(lèi):軟件銀行網(wǎng)絡(luò)出納員分行系統(tǒng)自動(dòng)出納機(jī)帳戶帳戶數(shù)據(jù)出納站分理處訪問(wèn)分理處計(jì)算機(jī)

事務(wù)事務(wù)數(shù)據(jù)現(xiàn)金卡用戶顧客分行計(jì)算機(jī)現(xiàn)金收據(jù)費(fèi)用安全措施記錄保管確定類(lèi)

不關(guān)心系統(tǒng)的運(yùn)作流程及實(shí)體之間的通信狀態(tài),而只考慮系統(tǒng)中的人員、組織、地點(diǎn)、表格、報(bào)告等實(shí)體,經(jīng)過(guò)分析將他們識(shí)別為類(lèi)(或?qū)ο螅1粯?biāo)識(shí)的實(shí)體有:系統(tǒng)需要存儲(chǔ)、分析、處理的信息實(shí)體;系統(tǒng)內(nèi)部需要處理的設(shè)備;與系統(tǒng)交互的外部系統(tǒng);系統(tǒng)相關(guān)人員;系統(tǒng)的組織實(shí)體。2.系統(tǒng)實(shí)體識(shí)別法例:有一個(gè)購(gòu)物超市,顧客可在貨架上自由挑選商品,由收款機(jī)收款,收款機(jī)讀取商品上的條型碼標(biāo)簽,并計(jì)算商品價(jià)格。收款機(jī)應(yīng)保留所有交易的記錄,以備帳務(wù)復(fù)查及匯總使用。通過(guò)分析問(wèn)題的陳述,確定以下幾類(lèi)實(shí)體:⑴信息實(shí)體:交易記錄、商品、稅務(wù)信息、銷(xiāo)售記錄、貨存記錄。⑵設(shè)備:收款機(jī)、條型碼掃描器。⑶交互系統(tǒng):信用卡付款系統(tǒng)。⑷人員職責(zé):收款員、顧客、會(huì)計(jì)、經(jīng)理。⑸系統(tǒng)的組織實(shí)體:本例不考慮。以上列出的實(shí)體,都可以直接識(shí)別為類(lèi)。2.系統(tǒng)實(shí)體識(shí)別法根據(jù)用例的描述來(lái)識(shí)別類(lèi);如用例的描述中出現(xiàn)哪些實(shí)體?用例執(zhí)行過(guò)程中產(chǎn)生并存儲(chǔ)哪些信息?與用例關(guān)聯(lián)的角色向用例輸入什么信息?用例又向該角色輸出哪些信息?3.從用例中識(shí)別類(lèi)在確定類(lèi)時(shí),常使用兩類(lèi)技術(shù):

⑴分解技術(shù)將整體類(lèi)和組合類(lèi)分解。可控制單個(gè)類(lèi)的規(guī)模。

⑵抽象技術(shù)根據(jù)一些類(lèi)的相似性建立抽象類(lèi),并建立抽象類(lèi)與這些類(lèi)之間的繼承關(guān)系。抽象類(lèi)實(shí)現(xiàn)了系統(tǒng)內(nèi)部的重用,很好地控制了復(fù)雜性,并為所有子類(lèi)定義了一個(gè)公共的界面,使設(shè)計(jì)局部化,提高系統(tǒng)的可修改性和可維護(hù)性。4.利用分解與抽象技術(shù)識(shí)別屬性屬性能使人們對(duì)類(lèi)有更深入、更具體的認(rèn)識(shí),它可以確定并區(qū)分類(lèi)的狀態(tài)。一個(gè)屬性一般都描述類(lèi)的某個(gè)特征。1.分析2.識(shí)別屬性屬性的確定與問(wèn)題域有關(guān),也和系統(tǒng)的責(zé)任有關(guān)。應(yīng)該僅考慮與具體應(yīng)用直接相關(guān)的屬性,不要考慮那些超出所要解決的問(wèn)題范圍的屬性。按一般常識(shí)來(lái)看這個(gè)類(lèi)應(yīng)該有哪些屬性?在當(dāng)前問(wèn)題域中,這個(gè)類(lèi)應(yīng)具有哪些屬性?根據(jù)系統(tǒng)的責(zé)任的要求,這個(gè)類(lèi)應(yīng)具有哪些屬性?建立的這個(gè)類(lèi)是為了保存和管理哪些信息?為了在類(lèi)的操作中實(shí)現(xiàn)特定的功能,需要增設(shè)哪些屬性?類(lèi)和對(duì)象有哪些需要區(qū)別的狀態(tài)?是否增加一個(gè)屬性來(lái)區(qū)別這些狀態(tài)?定義操作類(lèi)操作的識(shí)別可以依據(jù)需求陳述、用例描述和系統(tǒng)的上下文環(huán)境來(lái)進(jìn)行。

有哪些類(lèi)會(huì)與該類(lèi)交互(包括該類(lèi)本身)?

所有與該類(lèi)具有交互行為的對(duì)象會(huì)發(fā)送哪些消息給該類(lèi)?該類(lèi)又會(huì)發(fā)送哪些消息給這些類(lèi)?

該類(lèi)如何響應(yīng)別的類(lèi)發(fā)送來(lái)的消息?在發(fā)送消息出去之前,該類(lèi)需要作何處理?

從該類(lèi)本身來(lái)說(shuō),它應(yīng)該有哪些操作來(lái)維持其信息的更新、一致性和完整性?

系統(tǒng)是否需要該類(lèi)具有另外的一些職責(zé)?⑤所描述的操作不適宜作為對(duì)象類(lèi),并被其自身所操縱,所描述的只是實(shí)現(xiàn)過(guò)程中的暫時(shí)的對(duì)象,應(yīng)刪去。職責(zé)描述了類(lèi)做什么,即,類(lèi)的屬性和操作能完成什么任務(wù)。如果一組元素通過(guò)關(guān)聯(lián)組成一個(gè)更大、更復(fù)雜的單元,這種關(guān)聯(lián)關(guān)系就是聚合。書(shū)籍計(jì)算機(jī)類(lèi)書(shū)籍非計(jì)算機(jī)類(lèi)書(shū)籍是從特殊元素到一般元素的分類(lèi)關(guān)系稱(chēng)為泛化關(guān)系。參數(shù)(《parameter》):一個(gè)操作和它的參數(shù)之間的關(guān)系。⑵抽象技術(shù)根據(jù)一些類(lèi)的相似性建立抽象類(lèi),并建立抽象類(lèi)與這些類(lèi)之間的繼承關(guān)系。在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),通常將數(shù)據(jù)庫(kù)模式看作為數(shù)據(jù)庫(kù)概念設(shè)計(jì)的藍(lán)圖,在很多領(lǐng)域,都需要在關(guān)系數(shù)據(jù)庫(kù)或面向數(shù)據(jù)庫(kù)中存儲(chǔ)永久信息。privateStringnumber;現(xiàn)金收據(jù)費(fèi)用安全措施記錄保管借閱記錄借閱記錄列表書(shū)籍列表出納站錄入帳戶和事務(wù)數(shù)據(jù)。事務(wù)事務(wù)數(shù)據(jù)現(xiàn)金卡用戶顧客分行計(jì)算機(jī)3.3類(lèi)圖中的關(guān)系1關(guān)系分類(lèi)依賴(lài)關(guān)系按照關(guān)系的性質(zhì),把關(guān)系分為4種,它們是依賴(lài)關(guān)系、泛化關(guān)系、關(guān)聯(lián)關(guān)系、實(shí)現(xiàn)關(guān)系。1)依賴(lài)關(guān)系表示兩個(gè)或多個(gè)模型元素之間語(yǔ)義上的連接關(guān)系,客戶元素以某種形式依賴(lài)于提供者元素。實(shí)際上,關(guān)聯(lián)、實(shí)現(xiàn)和泛化都是依賴(lài)關(guān)系。3.3類(lèi)圖中的關(guān)系

依賴(lài)關(guān)系可以細(xì)分為4大類(lèi):使用依賴(lài)、抽象依賴(lài)、授權(quán)依賴(lài)、綁定依賴(lài)。使用(《use》):聲明使用一個(gè)模型元素需要用到已存在的另一個(gè)模型元素,這樣才能爭(zhēng)取實(shí)現(xiàn)使用者的功能。調(diào)用(《call》):聲明已經(jīng)給類(lèi)調(diào)用其他類(lèi)的操作方法。參數(shù)(《parameter》):一個(gè)操作和它的參數(shù)之間的關(guān)系。發(fā)送(《send》):信號(hào)發(fā)送者和信號(hào)接受者之間的關(guān)系。實(shí)例化(《instantiate》):一個(gè)類(lèi)的方法創(chuàng)建了另一個(gè)類(lèi)的實(shí)例的聲明。(1)使用依賴(lài)表示客戶使用提供者提供的服務(wù),以實(shí)現(xiàn)它的行為。下面都屬于使用依賴(lài)的具體形式:3.3類(lèi)圖中的關(guān)系(2)抽象依賴(lài)表示客戶與提供者之間的關(guān)系,客戶與提供者屬于不同的抽象事物,具體依賴(lài)形式有:跟蹤(《trace》):聲明不同模型中的元素之間存在一些連接,但不如映射精確。精化(《refine》):聲明具有兩個(gè)不同語(yǔ)義層次上的元素之間的映射。派生(《derive》):聲明一個(gè)實(shí)例可以從另一個(gè)實(shí)例派生。(3)授權(quán)依賴(lài)表達(dá)一個(gè)事物訪問(wèn)另一個(gè)事物的能力,具體依賴(lài)形式有:訪問(wèn)(《access》):允許一個(gè)包訪問(wèn)另一個(gè)包的內(nèi)容。導(dǎo)入(《import》):允許一個(gè)包訪問(wèn)另一個(gè)包的內(nèi)容并未被訪問(wèn)包的組成部分增加別名。友元(《friend》):允許一個(gè)元素訪問(wèn)另一個(gè)元素,不管被訪問(wèn)的元素是否具有可見(jiàn)性。(4)綁定依賴(lài)綁定依賴(lài)屬于較高級(jí)的依賴(lài)類(lèi)型,用綁定模板以創(chuàng)建新的模型元素,具體依賴(lài)形式:綁定(《bind》):為模板參數(shù)指定值,以生成一個(gè)新的模型元素。3.3類(lèi)圖中的關(guān)系2)泛化關(guān)系是從特殊元素到一般元素的分類(lèi)關(guān)系稱(chēng)為泛化關(guān)系。模型元素可以是類(lèi)、用例以及其他。泛化關(guān)系publicclassEmployee{privateStringnumber;privateStringname;publicvoidsetName(StringnameIn){name=nameIn;}publicStringgetNumber(){returnnumber;}publicStringgetName(){returnname;}}3.3類(lèi)圖中的關(guān)系publicclassPartTimeEmployeeextendsEmployee{privatedoublehourlyPay;publicdoublegetHourlyPay(){returnhourlyPay;}publicvoidsetHourlyPay(doublehourlyPayIn){hourlyPay=hourlyPayIn;}publicdoublecalculateWeeklyPay(intnoOFHoursIn){returnnoOFHoursIn*hourlyPay;}}3.3類(lèi)圖中的關(guān)系3)關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系一般使用連接兩個(gè)類(lèi)的關(guān)聯(lián)線表示。普通關(guān)聯(lián)是最常見(jiàn)的一種關(guān)聯(lián),只要類(lèi)與類(lèi)之間存在連接關(guān)系就可以用普通關(guān)聯(lián)表示。關(guān)聯(lián)關(guān)系中包括聚合關(guān)系和組合關(guān)系。(1)聚合關(guān)系聚合關(guān)系描述的是部分與整體關(guān)系的關(guān)聯(lián)。如果一組元素通過(guò)關(guān)聯(lián)組成一個(gè)更大、更復(fù)雜的單元,這種關(guān)聯(lián)關(guān)系就是聚合。聚合關(guān)系3.3類(lèi)圖中的關(guān)系(2)組合關(guān)系組合關(guān)系是一種更強(qiáng)形式的關(guān)聯(lián)。組合關(guān)系UML標(biāo)準(zhǔn)表示Rose表示表示組合的符號(hào)窗口工具框顯示區(qū)標(biāo)題注意:在Rose中表示組合的符號(hào)與在UML標(biāo)準(zhǔn)中表示組合的符號(hào)有區(qū)別。3.3類(lèi)圖中的關(guān)系4)實(shí)現(xiàn)關(guān)系類(lèi)與被類(lèi)實(shí)現(xiàn)的接口、協(xié)作與被協(xié)作實(shí)現(xiàn)的用例都是實(shí)現(xiàn)關(guān)系。實(shí)現(xiàn)關(guān)系3.3類(lèi)圖中的關(guān)系關(guān)聯(lián)的屬性

在類(lèi)圖中,依賴(lài)關(guān)系、泛化關(guān)系、實(shí)現(xiàn)關(guān)系已經(jīng)是很具體的關(guān)系,而關(guān)聯(lián)關(guān)系是比較抽象的高層次關(guān)系,為了對(duì)關(guān)聯(lián)進(jìn)一步具體化,我們需要了解關(guān)聯(lián)的屬性。關(guān)聯(lián)的屬性包括名稱(chēng)、角色、多重性、限定符和導(dǎo)航。關(guān)聯(lián)名稱(chēng)1)名稱(chēng)可以用一個(gè)動(dòng)詞或動(dòng)詞短語(yǔ)給關(guān)聯(lián)取名,用來(lái)描述關(guān)聯(lián)的性質(zhì)。在描述關(guān)聯(lián)時(shí),關(guān)聯(lián)的名稱(chēng)并不是必需的,在關(guān)聯(lián)名和角色中選一即可。可以在關(guān)聯(lián)上標(biāo)識(shí)閱讀方向的方向指示符,以消除閱讀的歧義。3.3類(lèi)圖中的關(guān)系2)角色在關(guān)聯(lián)關(guān)系中,角色表明了關(guān)聯(lián)的每一端在關(guān)聯(lián)中承擔(dān)的職責(zé),即關(guān)聯(lián)發(fā)生時(shí),關(guān)聯(lián)的每一端在關(guān)聯(lián)中扮演的角色。角色的名稱(chēng)應(yīng)該是名詞或名詞短語(yǔ),以解釋對(duì)象是如何參與關(guān)聯(lián)的。關(guān)聯(lián)的角色屬性描述了類(lèi)的靜態(tài)特征,在面向?qū)ο缶幊讨校褜傩员硎緸槌蓡T變量。在描述關(guān)聯(lián)時(shí),關(guān)聯(lián)的名稱(chēng)并不是必需的,在關(guān)聯(lián)名和角色中選一即可。名詞動(dòng)詞法的主要規(guī)則是從名詞與名詞短語(yǔ)中提取對(duì)象與屬性;箭頭表明了導(dǎo)航的方向性,只有源對(duì)象才能訪問(wèn)目標(biāo)對(duì)象,反之,目標(biāo)對(duì)象不能訪問(wèn)源對(duì)象。參數(shù)(《parameter》):一個(gè)操作和它的參數(shù)之間的關(guān)系。系統(tǒng)分析者可以通過(guò)類(lèi)圖將這種簡(jiǎn)單的協(xié)作進(jìn)行可視化和表述。⑤所描述的操作不適宜作為對(duì)象類(lèi),并被其自身所操縱,所描述的只是實(shí)現(xiàn)過(guò)程中的暫時(shí)的對(duì)象,應(yīng)刪去。發(fā)送(《send》):信號(hào)發(fā)送者和信號(hào)接受者之間的關(guān)系。出納站錄入帳戶和事務(wù)數(shù)據(jù)。采用名詞識(shí)別法:檢查問(wèn)題陳述中的所有名詞,得到初始類(lèi):構(gòu)造符號(hào)表示法是采用類(lèi)(interface實(shí)際上是一種特殊的類(lèi))的方式表示,它的優(yōu)點(diǎn)是可以添加多個(gè)抽象方法,具有更強(qiáng)的表示能力。⑵設(shè)備:收款機(jī)、條型碼掃描器。關(guān)聯(lián)的屬性包括名稱(chēng)、角色、多重性、限定符和導(dǎo)航。在矩形框中最后一欄中寫(xiě)明類(lèi)的職責(zé)。在與客戶的交談中,要注意客戶用來(lái)描述業(yè)務(wù)實(shí)體的名詞術(shù)語(yǔ)。③刪除模糊的類(lèi)或性質(zhì)獨(dú)立性不強(qiáng)的類(lèi):有些初始類(lèi)邊界定義不確切,或范圍太廣,應(yīng)該刪除。關(guān)聯(lián)類(lèi)既是關(guān)聯(lián)又是類(lèi),它不僅象關(guān)聯(lián)那樣連接兩個(gè)類(lèi),而且可以定義一組屬于關(guān)聯(lián)本身的特性。3.3類(lèi)圖中的關(guān)系3)多重性多重性就是某個(gè)類(lèi)有多少個(gè)對(duì)象可以和另一個(gè)類(lèi)的單個(gè)對(duì)象關(guān)聯(lián)。關(guān)聯(lián)的多重性根據(jù)下述原則進(jìn)一步確定類(lèi):可以逐字逐句地閱讀上面那段需求描述,并將其中所有的名詞及名詞短語(yǔ)列出來(lái),可以得到備選類(lèi)列表。PublicclassA{類(lèi)和對(duì)象有哪些需要區(qū)別的狀態(tài)?是否增加一個(gè)屬性來(lái)區(qū)別這些狀態(tài)?不關(guān)心系統(tǒng)的運(yùn)作流程及實(shí)體之間的通信狀態(tài),而只考慮系統(tǒng)中的人員、組織、地點(diǎn)、表格、報(bào)告等實(shí)體,經(jīng)過(guò)分析將他們識(shí)別為類(lèi)(或?qū)ο螅jP(guān)聯(lián)的屬性包括名稱(chēng)、角色、多重性、限定符和導(dǎo)航。ATM(AutoTradeMachine)銀行網(wǎng)絡(luò)系統(tǒng)包括人工出納和分行與分理處共享的自動(dòng)出納機(jī)。publicBtheB;構(gòu)造符號(hào)表示法是采用類(lèi)(interface實(shí)際上是一種特殊的類(lèi))的方式表示,它的優(yōu)點(diǎn)是可以添加多個(gè)抽象方法,具有更強(qiáng)的表示能力。⑴分解技術(shù)將整體類(lèi)和組合類(lèi)分解。自動(dòng)出納機(jī)與分行計(jì)算機(jī)通信;一個(gè)俱樂(lè)部(Club)可以有多個(gè)成員(Member),為了在成員集合(目標(biāo)對(duì)象)上找到需要的對(duì)象,我們選擇memberId作為查找關(guān)鍵字(限定符)。⑤所描述的操作不適宜作為對(duì)象類(lèi),并被其自身所操縱,所描述的只是實(shí)現(xiàn)過(guò)程中的暫時(shí)的對(duì)象,應(yīng)刪去。5如何建立對(duì)象模型在當(dāng)前問(wèn)題域中,這個(gè)類(lèi)應(yīng)具有哪些屬性?當(dāng)找到了反應(yīng)問(wèn)題域本質(zhì)的主要類(lèi),并清理他們之間的關(guān)系之后,就可以為這些類(lèi)添加相應(yīng)的職責(zé)。3.3類(lèi)圖中的關(guān)系類(lèi)A的代碼:PublicclassA{publicBtheB;publicA(){}}類(lèi)B的代碼:PublicclassB{publicB(){}}4)導(dǎo)航性如果關(guān)聯(lián)是單向的,則稱(chēng)為導(dǎo)航關(guān)聯(lián)。導(dǎo)航性描述了源對(duì)象通過(guò)鏈接訪問(wèn)目標(biāo)對(duì)象。箭頭表明了導(dǎo)航的方向性,只有源對(duì)象才能訪問(wèn)目標(biāo)對(duì)象,反之,目標(biāo)對(duì)象不能訪問(wèn)源對(duì)象。導(dǎo)航性3.3類(lèi)圖中的關(guān)系5)限定符當(dāng)一個(gè)類(lèi)的對(duì)象以關(guān)聯(lián)關(guān)系的角色的形式出現(xiàn)在另一個(gè)類(lèi)里時(shí),此角色可以在此類(lèi)中出現(xiàn)一次,也可以出現(xiàn)多次。角色的多重性指的是由類(lèi)產(chǎn)生的對(duì)象之間存在的數(shù)量關(guān)系。一個(gè)俱樂(lè)部(Club)可以有多個(gè)成員(Member),為了在成員集合(目標(biāo)對(duì)象)上找到需要的對(duì)象,我們選擇memberId作為查找關(guān)鍵字(限定符)。限定符ClubmemberIdMembermemberId:String10..1受限多重性源對(duì)象目標(biāo)對(duì)象限定符3.4閱讀類(lèi)圖1電子商務(wù)網(wǎng)站業(yè)務(wù)1)電子商務(wù)網(wǎng)站

各實(shí)體間的關(guān)聯(lián)關(guān)系抽取業(yè)務(wù)模型3.4閱讀類(lèi)圖2)建立對(duì)象模型3.4閱讀類(lèi)圖2閱讀類(lèi)圖在閱讀這些簡(jiǎn)單的類(lèi)圖時(shí),重點(diǎn)在于把握三項(xiàng)內(nèi)容:類(lèi)、關(guān)系、多重性。其閱讀的順序應(yīng)該遵循以下原則:首先搞清楚每個(gè)類(lèi)的語(yǔ)義,其次理解類(lèi)間關(guān)系,然后,結(jié)合多重性來(lái)理解類(lèi)圖的結(jié)構(gòu)特點(diǎn)以及各個(gè)屬性和方法的含義。1)理解類(lèi)的語(yǔ)義該圖包含7個(gè)類(lèi):order(訂單),orderitlm(訂單項(xiàng)),customer(顧客),consignee(收貨人).delierorder(送貨單),peddlery(商戶),product(產(chǎn)品),并且每個(gè)類(lèi)都定義了若干屬性和方法。2)分析類(lèi)關(guān)系3)分析關(guān)聯(lián)的多重性源類(lèi)目標(biāo)類(lèi)關(guān)聯(lián)分析Customer(1)Order(0…n)訂單是屬于某個(gè)客戶的,網(wǎng)站的客戶可以有0個(gè)或多個(gè)訂單Order(1)Consignee(1)每個(gè)訂單只能夠有一個(gè)收貨人Order(1)OrderItem(1…n)訂單是由訂單項(xiàng)組成的,至少要有一個(gè)訂單項(xiàng),最多可以有n個(gè)Order(1)DeliverOrder(1…n)一個(gè)訂單有一個(gè)或多個(gè)送貨單說(shuō)明:系統(tǒng)根據(jù)訂單項(xiàng)的產(chǎn)品所屬的商戶,將其分發(fā)給商戶,拆成了多個(gè)送貨單!DeliverOrder(1)OrderItem(1…n)一張送貨單對(duì)應(yīng)訂單中的一到多個(gè)訂單項(xiàng)DeliverOrder(1)Consignee(1)每張送貨單都對(duì)應(yīng)著一個(gè)收貨人Peddlery(1)DeliverOrder(0…n)每個(gè)商戶可以有相關(guān)的0個(gè)或多個(gè)送貨單OrderItem(1)Product(1)每個(gè)訂單項(xiàng)中都包含著唯一的一個(gè)產(chǎn)品Peddlery(1)Prodcut(0…n)產(chǎn)品是屬于某個(gè)商戶的,可以注冊(cè)0到多個(gè)產(chǎn)品

關(guān)聯(lián)的兩個(gè)類(lèi)之間的數(shù)量和語(yǔ)義關(guān)系3.4閱讀類(lèi)圖3.4閱讀類(lèi)圖3.4閱讀類(lèi)圖加入了輔助元素的類(lèi)圖4)關(guān)聯(lián)的導(dǎo)航性9)導(dǎo)出屬性8)職責(zé)7)約束6)關(guān)聯(lián)的限定符5)關(guān)聯(lián)的角色名稱(chēng)3.5

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論