UML第6章功能模型.ppt_第1頁(yè)
UML第6章功能模型.ppt_第2頁(yè)
UML第6章功能模型.ppt_第3頁(yè)
UML第6章功能模型.ppt_第4頁(yè)
UML第6章功能模型.ppt_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第6章 功能模型,6.1 功能模型 6.2 數(shù)據(jù)流圖 6.3 指定的操作 6.4 約束 6.5 數(shù)據(jù)庫(kù)應(yīng)用中的功能模型 6.6 功能模型的實(shí)例 6.7 功能模型與對(duì)象模型和動(dòng)態(tài)模型 的關(guān)系,功能模型描述系統(tǒng)內(nèi)的計(jì)算。它和對(duì)象模型、動(dòng)態(tài)模型共同構(gòu)成系統(tǒng)模型結(jié)構(gòu)的三大支柱。功能模型說(shuō)明發(fā)生了什么,動(dòng)態(tài)模型說(shuō)明什么時(shí)候發(fā)生,而對(duì)象模型說(shuō)明對(duì)象本身是什么。,6.1 功能模型,功能模型不僅說(shuō)明了在對(duì)象模型中操作的意義和在動(dòng)態(tài)模型中的動(dòng)作,而且說(shuō)明了對(duì)對(duì)象模型的約束。 雖然對(duì)象模型對(duì)所有基本數(shù)據(jù)結(jié)構(gòu)的任一問(wèn)題都很重要,但是許多交互程序也有一個(gè)有意義的功能模型。,6.2 數(shù)據(jù)流圖,一個(gè)數(shù)據(jù)流圖(DFD,Data Flow Diagram)表示系統(tǒng)中被計(jì)算值之間的功能關(guān)系,包括輸入值、輸出值和內(nèi)部數(shù)據(jù)存儲(chǔ)。,數(shù)據(jù)流圖包含了以下處理:數(shù)據(jù)轉(zhuǎn)換的處理,轉(zhuǎn)移數(shù)據(jù)的數(shù)據(jù)流,產(chǎn)生和使用數(shù)據(jù)的施動(dòng)者(actor)對(duì)象以及數(shù)據(jù)存儲(chǔ)(datastore)對(duì)象。圖6-1顯示了窗口系統(tǒng)的圖標(biāo)的顯示數(shù)據(jù)流圖。,圖6-1,6.2.1 處理,處理就是將數(shù)據(jù)值轉(zhuǎn)換,最底層的處理是不受影響的純功能性的。 處理用包含轉(zhuǎn)換描述(通常是它的名字)的橢圓表示。圖6-2給出了兩種處理。,圖6-2,處理是在對(duì)象類(lèi)上操作的方法(或方法片段)的實(shí)現(xiàn)。通常目標(biāo)對(duì)象是一個(gè)輸入流,特別是當(dāng)同類(lèi)對(duì)象作為輸出流的情況下。但是在某種情況下,目標(biāo)對(duì)象是隱含的。,6.2.2 數(shù)據(jù)流,數(shù)據(jù)流連接對(duì)象的輸出,或者另一對(duì)象輸入的處理,或是連接一個(gè)處理。 數(shù)據(jù)流在數(shù)據(jù)值的產(chǎn)生者和使用者之間畫(huà)一個(gè)箭頭,該箭頭上標(biāo)有數(shù)據(jù)的描述,通常有其名字和類(lèi)型。,聚合的數(shù)據(jù)值能分裂成許多分量,每個(gè)分量用作不同的處理。 每個(gè)數(shù)據(jù)流表示計(jì)算中某一點(diǎn)的值。 數(shù)據(jù)流圖的邊界流是它的輸入和輸出,這些可能不被連接,或它們也可能與對(duì)象相連接。,6.2.3 施動(dòng)者,施動(dòng)者(actor)是一個(gè)主動(dòng)的對(duì)象,其對(duì)象是用產(chǎn)生或使用值的數(shù)據(jù)流圖驅(qū)動(dòng)的。 施動(dòng)者用矩形框表示,表示它是一個(gè)對(duì)象。施動(dòng)者和圖之間的箭頭是圖的輸入和輸出。,6.2.4 數(shù)據(jù)存儲(chǔ),數(shù)據(jù)存儲(chǔ)(data store)是數(shù)據(jù)流圖中用來(lái)存取和存儲(chǔ)的被動(dòng)對(duì)象。它與施動(dòng)者不同,一個(gè)數(shù)據(jù)存儲(chǔ)本身不產(chǎn)生任何操作,但至少對(duì)存儲(chǔ)數(shù)據(jù)和訪問(wèn)數(shù)據(jù)請(qǐng)求作出響應(yīng)。,數(shù)據(jù)存儲(chǔ)用包含存儲(chǔ)名的一對(duì)黑粗平行線表示。輸入箭頭表示修改已存數(shù)據(jù)的信息或操作,輸出箭頭表示從存儲(chǔ)中檢索信息 。 把對(duì)象視為單個(gè)數(shù)據(jù)和視為多值的數(shù)據(jù)存儲(chǔ)之間是不同的。,在圖6-3中,可用顧客名從銀行選擇一個(gè)儲(chǔ)戶(hù)賬戶(hù),這個(gè)操作的結(jié)果是賬戶(hù)對(duì)象本身,即它作為在修改操作中用作數(shù)據(jù)存儲(chǔ)。 圖6-4表示在銀行里一個(gè)新儲(chǔ)戶(hù)的賬戶(hù)建立,建立賬戶(hù)處理的結(jié)果是存入銀行中的一個(gè)新賬戶(hù)。,圖6-3,圖6-4,6.2.5 嵌套數(shù)據(jù)流圖,數(shù)據(jù)流圖可以嵌套任意層次,所有嵌套圖的集合構(gòu)成一棵樹(shù)。數(shù)據(jù)流圖的嵌套允許各層是相關(guān)的并且是可理解的,而整個(gè)功能可以是任意復(fù)雜的。 數(shù)據(jù)流圖嵌套到最后以簡(jiǎn)單功能為終結(jié)。這些功能必須作為操作來(lái)指定。,6.2.6 控制流,控制流是影響處理是否有效的布爾值,它本身不是處理的輸入值。控制流用虛點(diǎn)線表示從產(chǎn)生布爾值的一個(gè)處理到該處理的控制。,6.3 指定的操作,數(shù)據(jù)流圖中的處理最終必須用對(duì)象上的操作來(lái)實(shí)現(xiàn)。每個(gè)底層的原子處理是一個(gè)操作,高層處理也可以考慮為操作 。,每種操作可以指定為不同的方式,包括以下幾種: (1)數(shù)學(xué)函數(shù),如三角幾何函數(shù)。 (2)小型有限集合的輸入輸出值表(如枚舉)。 (3)根據(jù)輸入方程指定輸出。,(4)前置或后置條件(公理定義)。 (5)決策表。 (6)偽碼。 (7)自然語(yǔ)言。,主要的操作分為三大類(lèi):查詢(xún)、動(dòng)作和活動(dòng)。 查詢(xún)是一個(gè)操作,它不受任何對(duì)象的外部可視狀態(tài)的影響,它是一個(gè)單純的功能。,動(dòng)作是一種變換,對(duì)目標(biāo)對(duì)象有副作用,或者從目標(biāo)對(duì)象對(duì)系統(tǒng)中可觸及的另一些對(duì)象有副作用。 一種活動(dòng)是對(duì)象具有持久性的一種操作,而查詢(xún)和動(dòng)作是瞬間的。,6.4 約束,約束表示兩個(gè)對(duì)象在相同時(shí)間的關(guān)系,或者表示同樣對(duì)象在不同時(shí)間的不同值的關(guān)系。 對(duì)象約束則指定某些對(duì)象完全地或部分地依賴(lài)另一對(duì)象。,動(dòng)態(tài)約束指定了不同對(duì)象狀態(tài)、事件之間的聯(lián)系。 功能約束指定了操作上的限制。,6.5 數(shù)據(jù)庫(kù)應(yīng)用中的功能模型,本節(jié)將介紹功能模型中可選擇的表示法,包括增強(qiáng)的偽碼、決策表和方程式。這些表示法對(duì)數(shù)據(jù)庫(kù)有較大的幫助。,6.5.1 偽碼,順序一系列偽碼語(yǔ)句本身有一順序,通常用分號(hào)將一連串的語(yǔ)句分隔開(kāi)。 條件條件成立時(shí)為true(真),條件不成立時(shí)用false(假)。條件語(yǔ)句有單個(gè)語(yǔ)句和多個(gè)語(yǔ)句。,其格式為: if then else if then else end if,迭代循環(huán)有兩種迭代循環(huán)。一種是通過(guò)集合進(jìn)行迭代;另一種是通過(guò)固定的循次數(shù)進(jìn)行迭代。, for each in end for each for to increment by end for,方法簽名一種方法是類(lèi)操作的實(shí)現(xiàn)。用以下代碼來(lái)指定方法簽名: 類(lèi)名:操作名 (參數(shù)表) 返回 域,方法引用用“對(duì)象名#方法名(參數(shù)表)”表示方法的引用。要避免在程序設(shè)計(jì)語(yǔ)言以及值引用和參照引用之間的低層區(qū)分中使用此種表示法 。,功能返回保留字return是一個(gè)方法執(zhí)行的終結(jié),并返回一個(gè)值。 局部變量如果要保持方法簡(jiǎn)單,就應(yīng)少用局部變量,隱含定義局部變量并且不用顯式聲明。 內(nèi)含方法參數(shù)根據(jù)面向?qū)ο笳Z(yǔ)言的習(xí)慣,一個(gè)方法有執(zhí)行該方法的對(duì)象的內(nèi)含參數(shù)。,6.5.2 ONN的偽代碼,用導(dǎo)航對(duì)象模型表示擴(kuò)展偽碼,這種表示稱(chēng)為對(duì)象導(dǎo)航表示ONN。 ONN的偽碼能夠詳細(xì)說(shuō)明要做什么,而不是如何實(shí)現(xiàn)什么。因此,可以很方便地實(shí)現(xiàn)具有許多數(shù)據(jù)庫(kù)語(yǔ)言的ONN。,ONN有以下幾個(gè)優(yōu)點(diǎn): (1)能把功能模型和對(duì)象模型緊緊系在一起。 (2)提高軟件生產(chǎn)率。 (3)便于檢查。 (4)促進(jìn)面向?qū)ο蟮乃季S能力。,6.5.3 ONN的構(gòu)造,簡(jiǎn)單二元關(guān)聯(lián)遍歷 1)ObjectOrSet.targetRole 這種構(gòu)造按照目標(biāo)角色來(lái)遍歷關(guān)聯(lián)。該目標(biāo)角 色可以是一個(gè)角色名,或者當(dāng)無(wú)二義性時(shí),可 以是一個(gè)類(lèi)名。在圖6-5中用aCity.Airport表 示機(jī)場(chǎng)為城市服務(wù)。 ONN構(gòu)造有以下含義:,(1)在objectOrSet中對(duì)每個(gè)對(duì)象進(jìn)行迭代。 (2)對(duì)每個(gè)對(duì)象尋找關(guān)聯(lián)對(duì)象。 (3)返回關(guān)聯(lián)對(duì)象關(guān)聯(lián)共用體(union)。,圖6-5,2)objectOrSet.sourceRole 用“.”兩個(gè)操作符組合從源角色開(kāi)始遍歷二元關(guān)聯(lián)。這種源角色可以是一個(gè)角色名,或當(dāng)無(wú)二義性時(shí),可以是一個(gè)類(lèi)名。例如,圖6-6中用aCity.City表示機(jī)場(chǎng)為城市服務(wù) 。,圖6-6,資格關(guān)聯(lián)遍歷 1)objectOrSet.role 在圖6-7中anAirline.FlightDescription表示一條航線有多個(gè)航班描述。,圖6-7,2)objectOrSet.rolequalifiervalue 資格符不僅改善對(duì)象模型的結(jié)構(gòu),而且使得導(dǎo)航該模型變得容易??梢灾付ㄝ^小的,比沒(méi)有資格符更精確的對(duì)象關(guān)聯(lián)集合。,概括遍歷 1)objectOrSet:superclass 例如,在圖6-8中aTravelAgent:Agent從TravelAgent子類(lèi)開(kāi)始,導(dǎo)航到Agent超類(lèi)。,圖6-8,2)objectOrSet:subclass 也可以從超類(lèi)到子類(lèi)向下遍歷概括,稱(chēng)之為“向下計(jì)算”。用隱含迭代的方法既可以“向下計(jì)算”單個(gè)對(duì)象,也可以“向下計(jì)算”對(duì)象集合。,“.”操作符的第三種用法是用鏈接遍歷對(duì)象,這個(gè)鏈接可以是二元的、三元的或n元的關(guān)聯(lián)。可以用鏈接遍歷一相關(guān)對(duì)象。在定義的一個(gè)鏈接內(nèi)內(nèi)含每個(gè)角色的一個(gè)對(duì)象,所以單鏈接總是為給定的角色給出單個(gè)對(duì)象。,從對(duì)象遍歷到鏈接 1)rolel=objectOrSetl, rol2=objectOrSet2, , associationName 這個(gè)結(jié)構(gòu)用多個(gè)角色尋找到鏈接,對(duì)二元關(guān)聯(lián) 可指定兩個(gè)對(duì)象,如果對(duì)象是相關(guān)的,則該結(jié) 構(gòu)產(chǎn)生一個(gè)鏈接。否則為空值(null)。,從對(duì)象遍歷鏈接可以幫助遍歷關(guān)聯(lián)類(lèi),或者尋找到鏈接屬性。例如,在圖6-9中表達(dá)式granteeaUser,TableaTable產(chǎn)生一個(gè)權(quán)限,然后使用此權(quán)限去查找誰(shuí)是授予者的用戶(hù)。,圖6-9,2)objectOrSetrole 也可以?xún)H指定一個(gè)角色和使用符號(hào)操作來(lái)檢索鏈接。,過(guò)濾器 1)objectOrSetfilter 過(guò)濾器filter可以是任一布爾表達(dá)式(其值用真或假判定)。 2)linkOrSetfilter 這個(gè)過(guò)濾器filter可以是任何布爾表達(dá)式,其值用真或假來(lái)判定。,從對(duì)象遍歷到值 可以用“.”操作符去查找一個(gè)對(duì)象的屬性值。 從鏈接遍歷到值 這種結(jié)構(gòu)也可以使用“.”操作符查找鏈接的屬性值 。,6.5.4 組合ONN構(gòu)造,ONN的真正能力來(lái)自于將組合基本構(gòu)造加進(jìn)表達(dá)式中??梢蕴娲磉_(dá)式,但對(duì)objectOrSet不管它在任何地方出現(xiàn)都要判斷是一個(gè)對(duì)象,還是一個(gè)對(duì)象集合。,ONN表達(dá)式的例子 1)theStMaoAirport.origin.destination 2)theStMaoAirport.origin.Destination.origin.destination,3)aFrequentFlyerAccountAirline. accountNumber 4)aFlight.FlightDescription. AircraftDescription.modelNumber 5)aTripReservation. FlightReservation.Flight. FlightDescription.Airline,與偽碼組合的ONN例子 1)Airport:findZeroOneStops 2)TripReservation: hasOnlyAisleSeats,6.5.5 添加ONN特性,數(shù)學(xué)特性 (1)ONN表達(dá)式不是可交換的 (2)ONN表達(dá)式不是聯(lián)合的 (3)ONN表達(dá)式遵循閉包特性,空值(Null)。如果在ONN構(gòu)造中有一個(gè)null參數(shù),那么所有ONN構(gòu)造都用空值來(lái)判斷。因?yàn)樵诒闅v關(guān)聯(lián)中能夠碰到空值,所以O(shè)NN允許空值。,屬性存取。ONN可直接地存取屬性。可以選擇實(shí)現(xiàn)一個(gè)ONN表達(dá)式,使之具有關(guān)系DBMS或OODBMS查詢(xún);或者可以把ONN表達(dá)式分解成一系列方法,小心地封裝存取一些對(duì)象。,資格符和關(guān)聯(lián)類(lèi)。缺少資格符表示的模型僅能找到有歧義的對(duì)象集合,找不到所要找的那個(gè)對(duì)象。關(guān)聯(lián)類(lèi)也可遍歷一個(gè)特定對(duì)象。,6.5.6 其他范型,數(shù)據(jù)流圖。數(shù)據(jù)流圖的使用恰好與數(shù)據(jù)庫(kù)應(yīng)用獨(dú)特的方法是對(duì)立的。沒(méi)有理由用這種重點(diǎn)在于處理和顯示數(shù)據(jù)的方法來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù)。,決策表。決策表對(duì)離散邏輯提供了有用的表示。在決策表中,行是專(zhuān)用規(guī)則,而列是依附于規(guī)則的屬性(前提和推斷)。圖6-10表示了對(duì)應(yīng)于決策表的對(duì)象模型。,圖6-10,數(shù)學(xué)方程式。數(shù)學(xué)方程式提供了一個(gè)對(duì)一些應(yīng)用表達(dá)功能性的媒介。在分析階段,方程式說(shuō)明描述了需求是什么;在設(shè)計(jì)階段,如果這個(gè)軟件是可用的,那么方程式能夠直接地求出解來(lái)。,6.5.7 實(shí)踐技巧,考慮多個(gè)范型 避免過(guò)程分解 小心使用偽碼 不要編寫(xiě)含糊的偽碼 避免歧義的決策表 為功能模型提供文件,6.6 功能模型的實(shí)例(飛行模擬機(jī)裝置),這節(jié)描述飛行模擬機(jī)裝置(f1ight simulator)的功能模型。圖6-11表示了飛行模擬機(jī)裝置的頂層數(shù)據(jù)流圖。,圖6-11,調(diào)整控制處理的擴(kuò)充如圖6-12所示,可以看到三種不同的控制比較:升降、副翼和風(fēng)門(mén)(油門(mén))。,圖6-12,力的計(jì)算處理綜合了幾何和空氣動(dòng)力學(xué)的計(jì)算,擴(kuò)充如圖6-13所示。主合力是由牽引力、提升力、推沖力和重力的向量之和計(jì)算而得到的。,圖6-13,6.7 功能模型與對(duì)象模型和動(dòng)態(tài)模型的關(guān)系,功能模型表示了系統(tǒng)“必須要做什么”。底層(相當(dāng)于葉子部分)處理是在對(duì)象上操作。對(duì)象模型表示“執(zhí)行者”對(duì)象本身,每個(gè)處理是用某個(gè)對(duì)象的方法來(lái)實(shí)現(xiàn)的。,與功能模型的關(guān)系:對(duì)象模型表示在功能模型中的施動(dòng)者、數(shù)據(jù)存儲(chǔ)和流的結(jié)構(gòu),而動(dòng)態(tài)模型

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論