UML功能模型演示文稿_第1頁
UML功能模型演示文稿_第2頁
UML功能模型演示文稿_第3頁
UML功能模型演示文稿_第4頁
UML功能模型演示文稿_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

UML功能模型演示文稿目前一頁\總數(shù)七十七頁\編于十七點(diǎn)UML功能模型目前二頁\總數(shù)七十七頁\編于十七點(diǎn)功能模型描述系統(tǒng)內(nèi)的計(jì)算。它和對(duì)象模型、動(dòng)態(tài)模型共同構(gòu)成系統(tǒng)模型結(jié)構(gòu)的三大支柱。功能模型說明發(fā)生了什么,動(dòng)態(tài)模型說明什么時(shí)候發(fā)生,而對(duì)象模型說明對(duì)象本身是什么。目前三頁\總數(shù)七十七頁\編于十七點(diǎn)6.1功能模型功能模型不僅說明了在對(duì)象模型中操作的意義和在動(dòng)態(tài)模型中的動(dòng)作,而且說明了對(duì)對(duì)象模型的約束。雖然對(duì)象模型對(duì)所有基本數(shù)據(jù)結(jié)構(gòu)的任一問題都很重要,但是許多交互程序也有一個(gè)有意義的功能模型。目前四頁\總數(shù)七十七頁\編于十七點(diǎn)6.2數(shù)據(jù)流圖一個(gè)數(shù)據(jù)流圖(DFD,DataFlowDiagram)表示系統(tǒng)中被計(jì)算值之間的功能關(guān)系,包括輸入值、輸出值和內(nèi)部數(shù)據(jù)存儲(chǔ)。目前五頁\總數(shù)七十七頁\編于十七點(diǎn)數(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ù)流圖。目前六頁\總數(shù)七十七頁\編于十七點(diǎn)圖6-1目前七頁\總數(shù)七十七頁\編于十七點(diǎn)6.2.1處理

處理就是將數(shù)據(jù)值轉(zhuǎn)換,最底層的處理是不受影響的純功能性的。處理用包含轉(zhuǎn)換描述(通常是它的名字)的橢圓表示。圖6-2給出了兩種處理。

目前八頁\總數(shù)七十七頁\編于十七點(diǎn)圖6-2目前九頁\總數(shù)七十七頁\編于十七點(diǎn)處理是在對(duì)象類上操作的方法(或方法片段)的實(shí)現(xiàn)。通常目標(biāo)對(duì)象是一個(gè)輸入流,特別是當(dāng)同類對(duì)象作為輸出流的情況下。但是在某種情況下,目標(biāo)對(duì)象是隱含的。目前十頁\總數(shù)七十七頁\編于十七點(diǎn)6.2.2數(shù)據(jù)流

數(shù)據(jù)流連接對(duì)象的輸出,或者另一對(duì)象輸入的處理,或是連接一個(gè)處理。數(shù)據(jù)流在數(shù)據(jù)值的產(chǎn)生者和使用者之間畫一個(gè)箭頭,該箭頭上標(biāo)有數(shù)據(jù)的描述,通常有其名字和類型。目前十一頁\總數(shù)七十七頁\編于十七點(diǎn)聚合的數(shù)據(jù)值能分裂成許多分量,每個(gè)分量用作不同的處理。每個(gè)數(shù)據(jù)流表示計(jì)算中某一點(diǎn)的值。數(shù)據(jù)流圖的邊界流是它的輸入和輸出,這些可能不被連接,或它們也可能與對(duì)象相連接。目前十二頁\總數(shù)七十七頁\編于十七點(diǎn)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)者和圖之間的箭頭是圖的輸入和輸出。

目前十三頁\總數(shù)七十七頁\編于十七點(diǎn)6.2.4數(shù)據(jù)存儲(chǔ)

數(shù)據(jù)存儲(chǔ)(datastore)是數(shù)據(jù)流圖中用來存取和存儲(chǔ)的被動(dòng)對(duì)象。它與施動(dòng)者不同,一個(gè)數(shù)據(jù)存儲(chǔ)本身不產(chǎn)生任何操作,但至少對(duì)存儲(chǔ)數(shù)據(jù)和訪問數(shù)據(jù)請(qǐng)求作出響應(yīng)。目前十四頁\總數(shù)七十七頁\編于十七點(diǎn)數(shù)據(jù)存儲(chǔ)用包含存儲(chǔ)名的一對(duì)黑粗平行線表示。輸入箭頭表示修改已存數(shù)據(jù)的信息或操作,輸出箭頭表示從存儲(chǔ)中檢索信息。把對(duì)象視為單個(gè)數(shù)據(jù)和視為多值的數(shù)據(jù)存儲(chǔ)之間是不同的。目前十五頁\總數(shù)七十七頁\編于十七點(diǎn)在圖6-3中,可用顧客名從銀行選擇一個(gè)儲(chǔ)戶賬戶,這個(gè)操作的結(jié)果是賬戶對(duì)象本身,即它作為在修改操作中用作數(shù)據(jù)存儲(chǔ)。圖6-4表示在銀行里一個(gè)新儲(chǔ)戶的賬戶建立,建立賬戶處理的結(jié)果是存入銀行中的一個(gè)新賬戶。

目前十六頁\總數(shù)七十七頁\編于十七點(diǎn)圖6-3目前十七頁\總數(shù)七十七頁\編于十七點(diǎn)圖6-4目前十八頁\總數(shù)七十七頁\編于十七點(diǎn)6.2.5嵌套數(shù)據(jù)流圖

數(shù)據(jù)流圖可以嵌套任意層次,所有嵌套圖的集合構(gòu)成一棵樹。數(shù)據(jù)流圖的嵌套允許各層是相關(guān)的并且是可理解的,而整個(gè)功能可以是任意復(fù)雜的。

數(shù)據(jù)流圖嵌套到最后以簡單功能為終結(jié)。這些功能必須作為操作來指定。目前十九頁\總數(shù)七十七頁\編于十七點(diǎn)6.2.6控制流

控制流是影響處理是否有效的布爾值,它本身不是處理的輸入值??刂屏饔锰擖c(diǎn)線表示從產(chǎn)生布爾值的一個(gè)處理到該處理的控制。目前二十頁\總數(shù)七十七頁\編于十七點(diǎn)6.3指定的操作

數(shù)據(jù)流圖中的處理最終必須用對(duì)象上的操作來實(shí)現(xiàn)。每個(gè)底層的原子處理是一個(gè)操作,高層處理也可以考慮為操作。目前二十一頁\總數(shù)七十七頁\編于十七點(diǎn)每種操作可以指定為不同的方式,包括以下幾種:(1)數(shù)學(xué)函數(shù),如三角幾何函數(shù)。(2)小型有限集合的輸入/輸出值表(如枚舉)。(3)根據(jù)輸入方程指定輸出。目前二十二頁\總數(shù)七十七頁\編于十七點(diǎn)

(4)前置或后置條件(公理定義)。(5)決策表。(6)偽碼。(7)自然語言。目前二十三頁\總數(shù)七十七頁\編于十七點(diǎn)主要的操作分為三大類:查詢、動(dòng)作和活動(dòng)。查詢是一個(gè)操作,它不受任何對(duì)象的外部可視狀態(tài)的影響,它是一個(gè)單純的功能。目前二十四頁\總數(shù)七十七頁\編于十七點(diǎn)動(dòng)作是一種變換,對(duì)目標(biāo)對(duì)象有副作用,或者從目標(biāo)對(duì)象對(duì)系統(tǒng)中可觸及的另一些對(duì)象有副作用。一種活動(dòng)是對(duì)象具有持久性的一種操作,而查詢和動(dòng)作是瞬間的。目前二十五頁\總數(shù)七十七頁\編于十七點(diǎn)6.4約束

約束表示兩個(gè)對(duì)象在相同時(shí)間的關(guān)系,或者表示同樣對(duì)象在不同時(shí)間的不同值的關(guān)系。對(duì)象約束則指定某些對(duì)象完全地或部分地依賴另一對(duì)象。目前二十六頁\總數(shù)七十七頁\編于十七點(diǎn)動(dòng)態(tài)約束指定了不同對(duì)象狀態(tài)、事件之間的聯(lián)系。功能約束指定了操作上的限制。目前二十七頁\總數(shù)七十七頁\編于十七點(diǎn)6.5數(shù)據(jù)庫應(yīng)用中的功能模型

本節(jié)將介紹功能模型中可選擇的表示法,包括增強(qiáng)的偽碼、決策表和方程式。這些表示法對(duì)數(shù)據(jù)庫有較大的幫助。目前二十八頁\總數(shù)七十七頁\編于十七點(diǎn)6.5.1偽碼

順序——一系列偽碼語句本身有一順序,通常用分號(hào)將一連串的語句分隔開。條件——條件成立時(shí)為true(真),條件不成立時(shí)用false(假)。條件語句有單個(gè)語句和多個(gè)語句。目前二十九頁\總數(shù)七十七頁\編于十七點(diǎn)

其格式為:

if<條件1>then <語句>elseif<條件2>thenelse<語句><語句>endif目前三十頁\總數(shù)七十七頁\編于十七點(diǎn)迭代循環(huán)——有兩種迭代循環(huán)。一種是通過集合進(jìn)行迭代;另一種是通過固定的循次數(shù)進(jìn)行迭代。目前三十一頁\總數(shù)七十七頁\編于十七點(diǎn)

①foreach<集合中一個(gè)元素>in<集合><語句>endforeach②for<循環(huán)次數(shù)計(jì)數(shù):=循環(huán)最小數(shù)>to<循環(huán)最大數(shù)> incrementby<循環(huán)增量> <語句>endfor目前三十二頁\總數(shù)七十七頁\編于十七點(diǎn)方法簽名——一種方法是類操作的實(shí)現(xiàn)。用以下代碼來指定方法簽名:類名::操作名(參數(shù)表)返回域目前三十三頁\總數(shù)七十七頁\編于十七點(diǎn)方法引用——用“對(duì)象名#方法名(參數(shù)表)”表示方法的引用。要避免在程序設(shè)計(jì)語言以及值引用和參照引用之間的低層區(qū)分中使用此種表示法。目前三十四頁\總數(shù)七十七頁\編于十七點(diǎn)功能返回——保留字return是一個(gè)方法執(zhí)行的終結(jié),并返回一個(gè)值。局部變量——如果要保持方法簡單,就應(yīng)少用局部變量,隱含定義局部變量并且不用顯式聲明。內(nèi)含方法參數(shù)——根據(jù)面向?qū)ο笳Z言的習(xí)慣,一個(gè)方法有執(zhí)行該方法的對(duì)象的內(nèi)含參數(shù)。目前三十五頁\總數(shù)七十七頁\編于十七點(diǎn)6.5.2ONN的偽代碼

用導(dǎo)航對(duì)象模型表示擴(kuò)展偽碼,這種表示稱為對(duì)象導(dǎo)航表示ONN。ONN的偽碼能夠詳細(xì)說明要做什么,而不是如何實(shí)現(xiàn)什么。因此,可以很方便地實(shí)現(xiàn)具有許多數(shù)據(jù)庫語言的ONN。目前三十六頁\總數(shù)七十七頁\編于十七點(diǎn)ONN有以下幾個(gè)優(yōu)點(diǎn):(1)能把功能模型和對(duì)象模型緊緊系在一起。(2)提高軟件生產(chǎn)率。(3)便于檢查。(4)促進(jìn)面向?qū)ο蟮乃季S能力。目前三十七頁\總數(shù)七十七頁\編于十七點(diǎn)6.5.3ONN的構(gòu)造

簡單二元關(guān)聯(lián)遍歷1)ObjectOrSet.targetRole這種構(gòu)造按照目標(biāo)角色來遍歷關(guān)聯(lián)。該目標(biāo)角色可以是一個(gè)角色名,或者當(dāng)無二義性時(shí),可以是一個(gè)類名。在圖6-5中用aCity.Airport表示機(jī)場(chǎng)為城市服務(wù)。

ONN構(gòu)造有以下含義:目前三十八頁\總數(shù)七十七頁\編于十七點(diǎn)

(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)。目前三十九頁\總數(shù)七十七頁\編于十七點(diǎn)圖6-5目前四十頁\總數(shù)七十七頁\編于十七點(diǎn)2)objectOrSet.~sourceRole

用“.~”兩個(gè)操作符組合從源角色開始遍歷二元關(guān)聯(lián)。這種源角色可以是一個(gè)角色名,或當(dāng)無二義性時(shí),可以是一個(gè)類名。例如,圖6-6中用aCity.~City表示機(jī)場(chǎng)為城市服務(wù)。目前四十一頁\總數(shù)七十七頁\編于十七點(diǎn)圖6-6目前四十二頁\總數(shù)七十七頁\編于十七點(diǎn)資格關(guān)聯(lián)遍歷

1)objectOrSet.role

在圖6-7中anAirline.FlightDescription表示一條航線有多個(gè)航班描述。目前四十三頁\總數(shù)七十七頁\編于十七點(diǎn)圖6-7目前四十四頁\總數(shù)七十七頁\編于十七點(diǎn)2)objectOrSet.role[qualifier=value]

資格符不僅改善對(duì)象模型的結(jié)構(gòu),而且使得導(dǎo)航該模型變得容易??梢灾付ㄝ^小的,比沒有資格符更精確的對(duì)象關(guān)聯(lián)集合。目前四十五頁\總數(shù)七十七頁\編于十七點(diǎn)概括遍歷

1)objectOrSet:superclass

例如,在圖6-8中aTravelAgent:Agent從TravelAgent子類開始,導(dǎo)航到Agent超類。目前四十六頁\總數(shù)七十七頁\編于十七點(diǎn)圖6-8目前四十七頁\總數(shù)七十七頁\編于十七點(diǎn)2)objectOrSet:subclass

也可以從超類到子類向下遍歷概括,稱之為“向下計(jì)算”。用隱含迭代的方法既可以“向下計(jì)算”單個(gè)對(duì)象,也可以“向下計(jì)算”對(duì)象集合。目前四十八頁\總數(shù)七十七頁\編于十七點(diǎn)“.”操作符的第三種用法是用鏈接遍歷對(duì)象,這個(gè)鏈接可以是二元的、三元的或n元的關(guān)聯(lián)??梢杂面溄颖闅v一相關(guān)對(duì)象。在定義的一個(gè)鏈接內(nèi)內(nèi)含每個(gè)角色的一個(gè)對(duì)象,所以單鏈接總是為給定的角色給出單個(gè)對(duì)象。目前四十九頁\總數(shù)七十七頁\編于十七點(diǎn)

從對(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)。目前五十頁\總數(shù)七十七頁\編于十七點(diǎn)

從對(duì)象遍歷鏈接可以幫助遍歷關(guān)聯(lián)類,或者尋找到鏈接屬性。例如,在圖6-9中表達(dá)式{grantee=aUser,Table=aTable}產(chǎn)生一個(gè)權(quán)限,然后使用此權(quán)限去查找誰是授予者的用戶。目前五十一頁\總數(shù)七十七頁\編于十七點(diǎn)圖6-9目前五十二頁\總數(shù)七十七頁\編于十七點(diǎn)2)objectOrSet@role

也可以僅指定一個(gè)角色和使用符號(hào)操作來檢索鏈接。目前五十三頁\總數(shù)七十七頁\編于十七點(diǎn)過濾器1)objectOrSet[filter]

過濾器filter可以是任一布爾表達(dá)式(其值用真或假判定)。

2)linkOrSet[filter]

這個(gè)過濾器filter可以是任何布爾表達(dá)式,其值用真或假來判定。目前五十四頁\總數(shù)七十七頁\編于十七點(diǎn)從對(duì)象遍歷到值可以用“.”操作符去查找一個(gè)對(duì)象的屬性值。從鏈接遍歷到值這種結(jié)構(gòu)也可以使用“.”操作符查找鏈接的屬性值。

目前五十五頁\總數(shù)七十七頁\編于十七點(diǎn)6.5.4組合ONN構(gòu)造

ONN的真正能力來自于將組合基本構(gòu)造加進(jìn)表達(dá)式中??梢蕴娲磉_(dá)式,但對(duì)objectOrSet不管它在任何地方出現(xiàn)都要判斷是一個(gè)對(duì)象,還是一個(gè)對(duì)象集合。

目前五十六頁\總數(shù)七十七頁\編于十七點(diǎn)ONN表達(dá)式的例子1)theStMaoAirport.~origin.destination2)theStMaoAirport.~origin.Destination.~origin.destination目前五十七頁\總數(shù)七十七頁\編于十七點(diǎn)3)aFrequentFlyerAccount@Airline.accountNumber4)aFlight.FlightDescription.AircraftDescription.modelNumber5)aTripReservation.FlightReservation.Flight.FlightDescription.Airline

目前五十八頁\總數(shù)七十七頁\編于十七點(diǎn)與偽碼組合的ONN例子1)Airport::findZeroOneStops2)TripReservation::hasOnlyAisleSeats目前五十九頁\總數(shù)七十七頁\編于十七點(diǎn)目前六十頁\總數(shù)七十七頁\編于十七點(diǎn)6.5.5添加ONN特性數(shù)學(xué)特性(1)ONN表達(dá)式不是可交換的(2)ONN表達(dá)式不是聯(lián)合的(3)ONN表達(dá)式遵循閉包特性目前六十一頁\總數(shù)七十七頁\編于十七點(diǎn)空值(Null)。如果在ONN構(gòu)造中有一個(gè)null參數(shù),那么所有ONN構(gòu)造都用空值來判斷。因?yàn)樵诒闅v關(guān)聯(lián)中能夠碰到空值,所以O(shè)NN允許空值。

目前六十二頁\總數(shù)七十七頁\編于十七點(diǎn)屬性存取。ONN可直接地存取屬性??梢赃x擇實(shí)現(xiàn)一個(gè)ONN表達(dá)式,使之具有關(guān)系DBMS或OODBMS查詢;或者可以把ONN表達(dá)式分解成一系列方法,小心地封裝存取一些對(duì)象。

目前六十三頁\總數(shù)七十七頁\編于十七點(diǎn)資格符和關(guān)聯(lián)類。缺少資格符表示的模型僅能找到有歧義的對(duì)象集合,找不到所要找的那個(gè)對(duì)象。關(guān)聯(lián)類也可遍歷一個(gè)特定對(duì)象。

目前六十四頁\總數(shù)七十七頁\編于十七點(diǎn)6.5.6其他范型數(shù)據(jù)流圖。數(shù)據(jù)流圖的使用恰好與數(shù)據(jù)庫應(yīng)用獨(dú)特的方法是對(duì)立的。沒有理由用這種重點(diǎn)在于處理和顯示數(shù)據(jù)的方法來設(shè)計(jì)數(shù)據(jù)庫。目前六十五頁\總數(shù)七十七頁\編于十七點(diǎn)決策表。決策表對(duì)離散邏輯提供了有用的表示。在決策表中,行是專用規(guī)則,而列是依附于規(guī)則的屬性(前提和推斷)。圖6-10表示了對(duì)應(yīng)于決策表的對(duì)象模型。

目前六十六頁\總數(shù)七十七頁\編于十七點(diǎn)圖6-10目前六十七頁\總數(shù)七十七頁\編于十七點(diǎn)數(shù)學(xué)方程式。數(shù)學(xué)方程式提供了一個(gè)對(duì)一些應(yīng)用表達(dá)功能性的媒介。在分析階段,方程式說明描述了需求是什么;在設(shè)計(jì)階段,如果這個(gè)軟件是可用的,那么方程式能夠直接地求出解來。

目前六十八頁\總數(shù)七十七頁

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論