




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第10章面向?qū)ο蠓治霰菊赂攀?理解面向?qū)ο蠓治龅倪^程和原則本章首先講述面向?qū)ο蠓治龅倪^程和原則,然后闡述面向?qū)ο蠼?,包括如何建立?duì)象模型,動(dòng)態(tài)模型以及功能模型。掌握面向?qū)ο蠼5娜N模型目錄3面向?qū)ο蠓治龇椒嫦驅(qū)ο蠼5诙?jié)第一節(jié)10.1面向?qū)ο蠓治龇椒嫦驅(qū)ο蠓治鲞^程面向?qū)ο蠓治鲈瓌t面向?qū)ο蠓治鲞^程5面向?qū)ο蟮姆治鲋饕杂美P蜑榛A(chǔ)。開發(fā)人員在收集到的原始需求的基礎(chǔ)上,通過構(gòu)建用例模型從而得到系統(tǒng)的需求。進(jìn)而再通過對(duì)用例模型的完善,使得需求得到改善。所謂用例是指系統(tǒng)中的一個(gè)功能單元,可以描述為參與者與系統(tǒng)之間的一次交互。用例常被用來收集用戶的需求。面向?qū)ο蠓治鲞^程6
語法
首先要找到系統(tǒng)的操作者,即用例的參與者。參與者是在系統(tǒng)之外,透過系統(tǒng)邊界與系統(tǒng)進(jìn)行有意義交互的任何事物??梢园褏⑴c者執(zhí)行的每一個(gè)系統(tǒng)功能都看作一個(gè)用例??梢哉f,用例描述了系統(tǒng)的功能,涉及系統(tǒng)為了實(shí)現(xiàn)一個(gè)功能目標(biāo)而關(guān)聯(lián)的參與者、對(duì)象和行為。確定了系統(tǒng)的所有用例之后,就可以開始識(shí)別目標(biāo)系統(tǒng)中的對(duì)象和類了。把具有相似屬性和操作的對(duì)象定義為一個(gè)類。
參與者用例對(duì)象面向?qū)ο蠓治鲞^程7確定了系統(tǒng)的所有用例之后,就可以開始識(shí)別目標(biāo)系統(tǒng)中的對(duì)象和類了。把具有相似屬性和操作的對(duì)象定義為一個(gè)類。屬性定義對(duì)象的靜態(tài)特征,一個(gè)對(duì)象往往包含很多屬性,目標(biāo)系統(tǒng)應(yīng)當(dāng)只考慮與系統(tǒng)業(yè)務(wù)相關(guān)的屬性。
通常先找出所有的候選類,然后再從候選類中剔除與問題域無關(guān)的、非本質(zhì)的東西。例如將書寫的需求陳述中,提取名詞作為候選類,描述特征的形容詞作為屬性,動(dòng)詞作為操作,然后再剔除不必要、不正確、重復(fù)的內(nèi)容。類的劃分8邊界類控制類實(shí)體類邊界類代表了系統(tǒng)及其操參與者的邊界,描述參與者與系統(tǒng)之間的交互。它更加關(guān)注系統(tǒng)的職責(zé),而不是實(shí)現(xiàn)職責(zé)的具體細(xì)節(jié)。通常,界面控制類、系統(tǒng)和設(shè)備接口類都屬于邊界類??刂祁惔砹讼到y(tǒng)的邏輯控制,描述一個(gè)用例所具有的事件流的控制行為,實(shí)現(xiàn)對(duì)用例行為的封裝。通常,可以為每個(gè)用例定義一個(gè)控制類。實(shí)體類描述了系統(tǒng)中必須存儲(chǔ)的信息及相關(guān)的行為,通常對(duì)應(yīng)于現(xiàn)實(shí)世界中的事物。目標(biāo)系統(tǒng)的類可以劃分為邊界類、控制類和實(shí)體類類之間的關(guān)系關(guān)聯(lián)關(guān)系依賴關(guān)系是“非結(jié)構(gòu)化”的和短暫的關(guān)系,表明某個(gè)對(duì)象會(huì)影響另外一個(gè)對(duì)象的行為或服務(wù)。泛化關(guān)系泛化關(guān)系與類間的繼承類似。聚合關(guān)系和組合關(guān)系是特殊的關(guān)聯(lián)關(guān)系,它們強(qiáng)調(diào)整體和部分之間的從屬性,組合是聚合的一種形式,組合關(guān)系對(duì)應(yīng)的整體和部分具有很強(qiáng)的歸屬關(guān)系和一致的生命期。比如,計(jì)算機(jī)和顯示器就屬于聚合關(guān)系。確定了系統(tǒng)的類和對(duì)象之后,就可以分析類之間的關(guān)系了。對(duì)象或類之間的關(guān)系有依賴、關(guān)聯(lián)、聚合、組合、泛化和實(shí)現(xiàn)。依賴關(guān)系關(guān)聯(lián)關(guān)系是“結(jié)構(gòu)化”的關(guān)系,描述對(duì)象之間的連接。實(shí)現(xiàn)關(guān)系實(shí)現(xiàn)關(guān)系是針對(duì)類與接口的關(guān)系。面向?qū)ο蠓治鲞^程10明確了對(duì)象、類和類之間的層次關(guān)系之后,需要進(jìn)一步識(shí)別出對(duì)象之間的動(dòng)態(tài)交互行為,即系統(tǒng)響應(yīng)外部事件或操作的工作過程。一般采用順序圖將用例和分析的對(duì)象聯(lián)系在一起,描述用例的行為是如何在對(duì)象之間分布的。也可以采用協(xié)作圖、狀態(tài)圖或活動(dòng)圖。
最后,需要將需求分析的結(jié)果用多種模型圖表示出來,并對(duì)其進(jìn)行評(píng)審。由于分析的過程是一個(gè)循序漸進(jìn)的過程,合理的分析模型需要多次迭代才能得到。面向?qū)ο蠓治鲞^程面向?qū)ο蟮男枨蠓治?0.1面向?qū)ο蠓治龇椒嫦驅(qū)ο蠓治鲞^程面向?qū)ο蠓治鲈瓌t面向?qū)ο蠓治鲈x有實(shí)際意義的對(duì)象3、共享性2、模型的描述要規(guī)范、準(zhǔn)確4、封裝性特別要注意的是,一定要把在應(yīng)用領(lǐng)域中有意義的、與所要解決的問題有關(guān)系的所有事物作為對(duì)象,既不能遺漏,也不要定義無關(guān)對(duì)象。強(qiáng)調(diào)實(shí)體的本質(zhì),忽略無關(guān)的屬性。對(duì)象描述應(yīng)盡量使用現(xiàn)在時(shí)態(tài),陳述語句,以保證語義的清晰。定義對(duì)象時(shí)還應(yīng)該描述對(duì)象之間的關(guān)系及對(duì)象的背景信息面向?qū)ο蠹夹g(shù)的共享有不同級(jí)別,如同一類共享屬性和服務(wù);子類繼承父類屬性和服務(wù);同意應(yīng)用中的共享類及其繼承性;通過類庫實(shí)現(xiàn)在不同應(yīng)用中的共享等。對(duì)不能抽象為某一類的對(duì)象實(shí)例要明確排斥所有軟件構(gòu)件都有明確的范圍及清楚的外部邊界。軟件構(gòu)件的內(nèi)部實(shí)現(xiàn)和界面接口分離。目錄14面向?qū)ο蠓治龇椒嫦驅(qū)ο蠼5诙?jié)第一節(jié)面向?qū)ο蠼?5它使用數(shù)據(jù)結(jié)構(gòu)(對(duì)象模型)執(zhí)行操作(動(dòng)態(tài)模型)完成數(shù)據(jù)值的變化(功能模型)
在面向?qū)ο蟮姆治鲋校ǔP枰?種形式的模型,它們分別是描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對(duì)象模型,描述系統(tǒng)控制結(jié)構(gòu)的動(dòng)態(tài)模型,以及描述系統(tǒng)功能的功能模型。這3種模型都涉及數(shù)據(jù)、控制、操作等共同的概念,只不過每種模型描述的側(cè)重點(diǎn)不同。一個(gè)典型的軟件系統(tǒng)通常包括的內(nèi)容為:面向?qū)ο蠼?6面向?qū)ο蠓治鲋?,解決的問題不同,3個(gè)模型的重要程度也不同。1.一般來說,解決任何問題,都要從客觀世界實(shí)體及實(shí)體相互關(guān)系抽象出有價(jià)值的對(duì)象模型;2.當(dāng)問題涉及交互作用和時(shí)序時(shí),需要構(gòu)造動(dòng)態(tài)模型。3.當(dāng)解決運(yùn)算量很大的問題時(shí),需要構(gòu)造功能模型。動(dòng)態(tài)模型和功能模型中都包含有對(duì)象模型中的操作(服務(wù)與方法)。在面向?qū)ο蠓治鲋?,需要?gòu)造出完全獨(dú)立于實(shí)現(xiàn)的應(yīng)用域模型;在面向?qū)ο笤O(shè)計(jì)中,需要將求解域的結(jié)構(gòu)逐漸加入;在實(shí)現(xiàn)階段則要將應(yīng)用域和求解域結(jié)構(gòu)編碼并嚴(yán)格測試驗(yàn)證。10.2面向?qū)ο蠼=?duì)象模型建立動(dòng)態(tài)模型建立功能模型3種模型之間的關(guān)系建立對(duì)象模型
面向?qū)ο蠓治鍪滓墓ぷ?,是建立問題域的對(duì)象模型。這個(gè)對(duì)象模型要描述現(xiàn)實(shí)世界中的“類與對(duì)象”及它們之間的關(guān)系,表示了目標(biāo)系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu)。靜態(tài)數(shù)據(jù)結(jié)構(gòu)細(xì)節(jié)依賴較少,容易確定且比較穩(wěn)定。所以面向?qū)ο蠓治鲋卸际窍冉?duì)象模型,再考慮建立動(dòng)態(tài)模型和功能模型,對(duì)象模型為動(dòng)態(tài)模型和功能模型提供了實(shí)質(zhì)性框架。建立對(duì)象模型復(fù)雜問題(大型系統(tǒng))的對(duì)象模型通常由下述5個(gè)層次組成:主題層(也稱為范疇層)、類與對(duì)象層、結(jié)構(gòu)層、屬性層和服務(wù)層,如圖所示。上述5個(gè)層次對(duì)應(yīng)著在面向?qū)ο蠓治鲞^程中建立對(duì)象模型的5項(xiàng)主要活動(dòng):劃分主題;找出類與對(duì)象;識(shí)別結(jié)構(gòu);定義屬性;定義服務(wù)。實(shí)際上五項(xiàng)活動(dòng)沒有必要的完成順序,設(shè)計(jì)時(shí)也不需要嚴(yán)格遵守自頂向下原則。劃分主題20A.主題主題是把一組具有較強(qiáng)聯(lián)系的類組織在一起而得到的類的集合,一般有以下特點(diǎn):主題是由一組具有較強(qiáng)聯(lián)系的類形成的集合,但本身不是一個(gè)類。一個(gè)主題內(nèi)部的類之間往往具有某種意義上的內(nèi)在聯(lián)系。主題的劃分一般沒有固定規(guī)則,不同側(cè)重可以得到不同的劃分方式。自底向上。先建立對(duì)象類,然后把對(duì)象類中關(guān)系較密切的類組織為一個(gè)主題。如果主題數(shù)量仍然很多,則可進(jìn)一步將聯(lián)系較強(qiáng)的小主題組織為大主題,直到系統(tǒng)中最上層主題數(shù)不超過7個(gè)。這種方式適合于小型系統(tǒng)或中型系統(tǒng)。自頂向下。先分析系統(tǒng),確定幾個(gè)大的主題,每個(gè)主題相當(dāng)于一個(gè)子系統(tǒng)。將這些子系統(tǒng)再分別進(jìn)行面向?qū)ο蠓治觯⒏鱾€(gè)子系統(tǒng)中的對(duì)象類。最終可將各個(gè)子系統(tǒng)合并為一個(gè)大的子系統(tǒng)。劃分主題主題的劃分有以下兩種方式。一般來說,應(yīng)該按照問題領(lǐng)域而不是功能分解的方法來確定主題。此外確定主題應(yīng)遵循“使不同主題內(nèi)的類之間依賴和交互最少”的原則來確定主題,可以使用UML的包來展現(xiàn)主題。劃分主題22B.主題圖上述的主題劃分的最終結(jié)果能夠形成一個(gè)完整的對(duì)象類圖和一個(gè)主題圖。主題圖一般有如下3種表示方式。展開方式將關(guān)系較密切的對(duì)象類畫在一個(gè)框內(nèi),框的每個(gè)角標(biāo)上主題號(hào),框內(nèi)是詳細(xì)的對(duì)象類圖,標(biāo)出每個(gè)類的屬性和服務(wù)以及類之間的詳細(xì)關(guān)系,這就是主題圖的展開方式。壓縮方式將每個(gè)主題號(hào)及主題名分別寫在一個(gè)框內(nèi),這就是主題圖的壓縮方式。半展開方式。將每個(gè)框內(nèi)主題號(hào)、主題名及該主題中所含的對(duì)象類全部列出,這就是主題圖的半展開方式。主題圖的壓縮方式是為了表明系統(tǒng)的總體情況,而主題圖的展開方式是為了表明系統(tǒng)的詳細(xì)情況。對(duì)象模型用類符號(hào)、類實(shí)例符號(hào)、類的關(guān)聯(lián)關(guān)系、繼承關(guān)系等表示。有些對(duì)象具有主動(dòng)服務(wù)功能,稱為主動(dòng)對(duì)象。劃分主題23如圖所示即為一個(gè)商品銷售管理系統(tǒng)的主題圖。這個(gè)系統(tǒng)的功能包括:①為商品編號(hào)并記錄名稱、單價(jià)數(shù)量等相關(guān)信息。②營業(yè)員接班后要登錄和收獲,以及將顧客選購的商品輸入購物清單、商品計(jì)價(jià)、收費(fèi)、打印購物清單及合計(jì);交班時(shí)要進(jìn)行結(jié)賬和交款。此系統(tǒng)可以幫助供貨員發(fā)現(xiàn)哪些商品需要供貨。賬冊(cè)用來統(tǒng)計(jì)商品銷售量、進(jìn)貨量和庫存量,以及資金的結(jié)算。此外,上級(jí)系統(tǒng)可以向該系統(tǒng)發(fā)送消息。經(jīng)過分析可以確定如下幾類:營業(yè)員、銷售事件、賬冊(cè)、商品、商品目錄、供貨員、上級(jí)系統(tǒng)接口等。將其中關(guān)系比較密切的類劃入同一個(gè)框,可以得到(a)中的展開方式的主題圖,如果只標(biāo)注主題號(hào)和主題名稱,則可以得到壓縮方式的主題圖(b),若在其之上補(bǔ)充類名,則得到半展開主題圖(c).確定類與對(duì)象建立對(duì)象模型首先要確定對(duì)象、類,然后進(jìn)行篩選。通過區(qū)分實(shí)體類、邊界類和控制類來檢查對(duì)象模型的完整性,候選的類和對(duì)象包括:①可感知的物理實(shí)體②人或組織的角色③應(yīng)該記憶的事件④兩個(gè)或多個(gè)事件的相互作用⑤需要說明的概念。此外,更簡單的非正式分析方法及將需求描述的名詞作為候選,然后根據(jù)以下原則篩選:①冗余,如果兩個(gè)類表達(dá)同樣的信息,應(yīng)選擇更合理的。②無關(guān),系統(tǒng)只需包含與本系統(tǒng)密切相關(guān)的類或?qū)ο?。③籠統(tǒng),去除籠統(tǒng)的類或?qū)ο蟆"軐傩裕合到y(tǒng)中如果某個(gè)類只有一個(gè)屬性,則可以考慮將其作為另一個(gè)類的屬性。⑤操作,對(duì)于即可作動(dòng)詞也可作名詞的詞匯,應(yīng)正確決定是作為類還是操作。⑥實(shí)現(xiàn),分析階段不需要保留只和時(shí)間有關(guān)的候選。分析對(duì)象、類之間的相互關(guān)系。對(duì)象類之間的關(guān)系可分為關(guān)聯(lián)、依賴、泛化和實(shí)現(xiàn)等關(guān)系。確定結(jié)構(gòu)25結(jié)構(gòu)就是定義類之間的層次結(jié)構(gòu)關(guān)系,具體的結(jié)構(gòu)及其確定方式在第7章。確定屬性26R屬性的確定既與問題域有關(guān),也和目標(biāo)系統(tǒng)的任務(wù)有關(guān)。標(biāo)識(shí)屬性的啟發(fā)性準(zhǔn)則如下:1)每個(gè)對(duì)象至少需包含一個(gè)屬性。2)屬性取值必需適合對(duì)象類的所有實(shí)例。3)出現(xiàn)在泛化關(guān)系中的對(duì)象所繼承的屬性必須與泛化關(guān)系一致。4)系統(tǒng)的所有存儲(chǔ)數(shù)據(jù)必須定義為屬性。5)對(duì)象的導(dǎo)出屬性應(yīng)當(dāng)略去。6)在分析階段,如果某屬性描述了對(duì)象的外部不可見狀態(tài),應(yīng)將該屬性從分析模型中刪去。應(yīng)注意以下問題:誤把對(duì)象當(dāng)作屬性誤把關(guān)聯(lián)類的屬性當(dāng)作對(duì)象屬性誤把內(nèi)部狀態(tài)當(dāng)作屬性4)過度細(xì)化5)存在不一致的屬性屬性不能包含一個(gè)內(nèi)部結(jié)構(gòu)屬性在任何時(shí)候只能有一個(gè)在其允許范圍內(nèi)的確切值確定屬性27
通用的屬性應(yīng)放在泛化結(jié)構(gòu)中較高層的類中,特殊的屬性應(yīng)放在較低層的類中。實(shí)體關(guān)系圖中的實(shí)體可能對(duì)應(yīng)于某一對(duì)象。這樣,實(shí)體的屬性就會(huì)簡單地成為對(duì)象的屬性。如果實(shí)體(如學(xué)校)不只對(duì)應(yīng)于一類對(duì)象,那么這個(gè)實(shí)體的屬性必須分配到分析模型的不同類的對(duì)象之中。確定屬性28添加新的媒體文件;通過編碼查找需要的文件;刪除指定文件;Four030102ThreeTwoOne例:多媒體商店銷售系統(tǒng)需要處理的文件:圖像文件和聲音文件,都擁有名稱和唯一編碼,作者信息和格式信息,聲音文件還包括文件時(shí)長(秒)。04統(tǒng)計(jì)系統(tǒng)中文件的數(shù)量。確定屬性29分析過程:根據(jù)文件的信息,圖像文件和聲音文件的類都需要有屬性:id-編碼,author-作者,format-格式。為了方便處理,還可加入source-文件位置。由功能①③,應(yīng)該有按參數(shù)構(gòu)造和按編碼刪除的兩個(gè)方法。此外還有findByld-查找,count-查找兩個(gè)方法。聲音文件的類還要加入一個(gè)duration屬性描述時(shí)長,并包括對(duì)應(yīng)存取方法,兩種類的各項(xiàng)信息如圖。確定服務(wù)30
“對(duì)象”是由描述其屬性的數(shù)據(jù)以及可以對(duì)這些數(shù)據(jù)施加的操作(即方法或服務(wù)),封裝在一起構(gòu)成的獨(dú)立單元。因此,為建立完整的對(duì)象模型,既要確定類中應(yīng)該定義的屬性,又要確定類中應(yīng)該定義的服務(wù)。但是,需要等到建立了動(dòng)態(tài)模型和功能模型之后,才能最終確定類中應(yīng)有的服務(wù),因?yàn)檫@兩個(gè)模型更明確地描述了每個(gè)類中應(yīng)該提供哪些服務(wù)。實(shí)際上,在確定類中應(yīng)有的服務(wù)時(shí),既要考慮該類實(shí)體的常規(guī)行為,又要考慮在本系統(tǒng)中特殊需要的服務(wù)。識(shí)別類的操作時(shí),應(yīng)注意:①只有一個(gè)或很少操作的類,這個(gè)類可能合法,但或許可以與其他類合并。②沒有操作的類,可能沒有必要存在,可以合并。③太多操作的類,應(yīng)該考慮分解,使操作數(shù)保持在合理區(qū)間。10.2面向?qū)ο蠼=?duì)象模型建立動(dòng)態(tài)模型建立功能模型3種模型之間的關(guān)系建立動(dòng)態(tài)模型32對(duì)象模型建立后,就需考察對(duì)象和關(guān)系的動(dòng)態(tài)變化情況。動(dòng)態(tài)模型描述對(duì)象和關(guān)系的狀態(tài)、狀態(tài)轉(zhuǎn)換的觸發(fā)事件、對(duì)象的服務(wù)(行為)。建立動(dòng)態(tài)模型首先要編寫腳本,從腳本中提取事件,設(shè)想用戶界面,然后畫出UML順序圖,最后畫出對(duì)象狀態(tài)轉(zhuǎn)換圖。(1)狀態(tài):是對(duì)象在其生命周期中的某個(gè)特定階段所處的某種情形,它是對(duì)影響對(duì)象行為的屬性值的一種抽象。狀態(tài)規(guī)定了對(duì)象對(duì)事件的響應(yīng)方式。對(duì)象對(duì)事件的響應(yīng),既可以是做一個(gè)(或一系列)的動(dòng)作,也可以僅僅改變對(duì)象本身的狀態(tài),還可以是既改變狀態(tài)又做動(dòng)作。(2)事件:是引起對(duì)象狀態(tài)轉(zhuǎn)換的控制信息,它是在某個(gè)特定時(shí)刻所發(fā)生的事情,它是對(duì)引起對(duì)象從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)的現(xiàn)實(shí)世界中的抽象。事件沒有持續(xù)時(shí)間,是瞬間完成的。(3)服務(wù):指對(duì)象達(dá)到某種狀態(tài)時(shí)所做的一系列處理操作。這些操作是需要消耗時(shí)間的。
編寫腳本33輸入腳本輸出在建立動(dòng)態(tài)模型過程中,腳本是系統(tǒng)執(zhí)行某個(gè)功能的一系列事件,腳本描述用戶(或其他外部設(shè)備)與目標(biāo)系統(tǒng)之間的一個(gè)或多個(gè)典型的交互過程,以便對(duì)目標(biāo)系統(tǒng)的行為有更具體的認(rèn)識(shí)。腳本通常起始于一個(gè)系統(tǒng)外部的輸入事件,結(jié)束于一個(gè)系統(tǒng)外部的輸出事件,它可以包括發(fā)生在這個(gè)期間的系統(tǒng)所有的內(nèi)部事件(包括正常情況腳本和異常情況腳本)。編寫腳本的目的是保證不遺漏系統(tǒng)功能中重要的交互步驟,有助于確保整個(gè)交互過程的正確性和清晰性。編寫腳本34例如,下面陳述的是客戶在ATM機(jī)上取款的腳本。(1)客戶將卡插入ATM機(jī),開始用例。(2)ATM顯示歡迎消息并提示客戶輸入密碼。(3)客戶輸入密碼。(4)ATM確認(rèn)密碼有效。如果無效則執(zhí)行子事件流a。如果與主機(jī)聯(lián)接有問題,則執(zhí)行異常事件流e。(5)ATM提供以下選項(xiàng):存錢、取錢、查詢。(6)用戶選擇取錢選項(xiàng)。(7)ATM提示輸入所取金額。(8)用戶輸入所取金額。(9)ATM確定該賬戶是否有足夠的金額。如果余額不夠,則執(zhí)行子事件流b,如果與主機(jī)聯(lián)接有問題,則執(zhí)行異常事件流e。(10
)ATM從客戶賬戶中減去所取金額。(11)ATM向客戶提供要取的錢。(12)ATM打印清單。(13)ATM退出客戶的卡,用例結(jié)束。子事件流編寫腳本35
子事件流a:a1.
提示用戶輸入無效密碼,請(qǐng)求再次輸入;a2.如果三次輸入無效密碼,系統(tǒng)自動(dòng)關(guān)閉,退出客戶銀行卡。
子事件流b:b1.提示用戶余額不夠。b2.返回(5),等待客戶重新選擇設(shè)計(jì)用戶界面36R動(dòng)態(tài)模型用戶界面原型大多數(shù)交互行為都可以分為應(yīng)用邏輯和用戶界面兩部分。通常,系統(tǒng)分析員首先集中精力考慮系統(tǒng)的信息流和控制流,而不是首先考慮用戶界面。實(shí)際上,采用不同界面(例如,命令行或圖形用戶界面),可以實(shí)現(xiàn)同樣的程序邏輯。應(yīng)用邏輯是內(nèi)在的、本質(zhì)的內(nèi)容,用戶界面是外在的表現(xiàn)形式。動(dòng)態(tài)模型著重表示應(yīng)用系統(tǒng)的控制邏輯。但是,用戶界面的美觀、方便、易學(xué)及效率,是用戶使用系統(tǒng)時(shí)首先感受到的。用戶界面的美觀與否往往對(duì)用戶是否喜歡、是否接受一個(gè)系統(tǒng)起很重要的作用。在分析階段不能忽略用戶界面的設(shè)計(jì),在這個(gè)階段用戶界面的細(xì)節(jié)并不太重要,重要的是在這種界面下的信息交換方式。應(yīng)該快速建立用戶界面原型,供用戶試用與評(píng)價(jià)。畫UML順序圖或活動(dòng)圖37
完整、正確的腳本為建立動(dòng)態(tài)模型奠定了必要的基礎(chǔ)。但是,用自然語言書寫的腳本往往不夠簡明,而且有時(shí)在閱讀時(shí)會(huì)有二義性。為了有助于建立動(dòng)態(tài)模型,通常在畫狀態(tài)圖之前先畫出事件跟蹤圖。UML順序圖(也稱為事件跟蹤圖)中,一條豎線代表應(yīng)用領(lǐng)域中的一個(gè)類,每個(gè)事件用一條水平的箭頭線表示,箭頭方向從事件的發(fā)送對(duì)象指向接受對(duì)象,時(shí)間從上向下遞增。謂詞邏輯表示法38如果對(duì)象的屬性值不相同時(shí),對(duì)象的行為規(guī)則有所不同,我們稱對(duì)象處于不同的狀態(tài)。由于對(duì)象在不同狀態(tài)下呈現(xiàn)不同的行為方式,所以應(yīng)分析對(duì)象的狀態(tài),才可正確地認(rèn)識(shí)對(duì)象的行為并定義它的服務(wù)。例如,通信系統(tǒng)中的電話對(duì)象,就有電話閑置、撥通中、忙音、通話、斷線、超時(shí)等狀態(tài)。這里可以專門定義一個(gè)“狀態(tài)”屬性。該屬性有之前介紹的幾種屬性值,每一個(gè)屬性值就是一種狀態(tài)。有了狀態(tài)圖,就可“執(zhí)行”狀態(tài)圖,以便檢驗(yàn)狀態(tài)轉(zhuǎn)換的正確性和協(xié)調(diào)一致性。執(zhí)行方法是從任意一個(gè)狀態(tài)開始,當(dāng)出現(xiàn)一個(gè)事件時(shí),引起狀態(tài)轉(zhuǎn)換,到達(dá)另一狀態(tài),在狀態(tài)人口處執(zhí)行相關(guān)的行為,在另一事件出現(xiàn)之前,這個(gè)狀態(tài)應(yīng)該不發(fā)生變化。10.2面向?qū)ο蠼=?duì)象模型建立動(dòng)態(tài)模型建立功能模型3種模型之間的關(guān)系建立功能模型40
功能模型表明了系統(tǒng)中數(shù)據(jù)之間的依賴關(guān)系,以及有關(guān)的數(shù)據(jù)處理功能,它由一組數(shù)據(jù)流圖組成。數(shù)據(jù)流圖中的處理對(duì)應(yīng)于狀態(tài)圖中的活動(dòng)或動(dòng)作,數(shù)據(jù)流對(duì)應(yīng)于對(duì)象圖中的對(duì)象或?qū)傩浴=⒐δ苣P偷牟襟E如右:確定輸入和輸出值畫數(shù)據(jù)流圖定義服務(wù)03010201020304GOAL確定輸入輸出值41數(shù)據(jù)流圖中的輸入和輸出值是系統(tǒng)與外部之間進(jìn)行交互的事件的參數(shù)。畫數(shù)據(jù)流圖功能模型可用多張數(shù)據(jù)流圖等來表示。在面向?qū)ο蠓椒ㄖ校瑪?shù)據(jù)源往往是主動(dòng)對(duì)象,它通過生成或使用數(shù)據(jù)來驅(qū)動(dòng)數(shù)據(jù)流。數(shù)據(jù)終點(diǎn)接收數(shù)據(jù)的輸出流。數(shù)據(jù)流圖中的數(shù)據(jù)存儲(chǔ)是被動(dòng)對(duì)象,本身不產(chǎn)生任何操作,只響應(yīng)存儲(chǔ)和訪問數(shù)據(jù)的要求。輸入箭頭表示增加、更改或刪除所存儲(chǔ)的數(shù)據(jù),輸出箭頭表示從數(shù)據(jù)存儲(chǔ)中查找信息。確定服務(wù)42SWOT
類的服務(wù)與對(duì)象模型中的屬性和關(guān)聯(lián)的查詢有關(guān),與動(dòng)態(tài)模型中
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海市高境第一中學(xué)2024-2025學(xué)年高三第二次綜合考試試題含解析
- 四川民族學(xué)院《機(jī)器人學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 許昌學(xué)院《醫(yī)學(xué)科學(xué)研究導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 宣化科技職業(yè)學(xué)院《新媒體藝術(shù)傳播》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川工業(yè)科技學(xué)院《結(jié)構(gòu)疲勞與斷裂力學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 邢臺(tái)學(xué)院《醫(yī)學(xué)人文導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東省德州市齊河縣一中2025年高三教學(xué)測試(二)英語試題含解析
- 嘉應(yīng)學(xué)院《創(chuàng)新方法與實(shí)踐(以競賽導(dǎo)向的信息技術(shù)創(chuàng)新實(shí)踐)》2023-2024學(xué)年第二學(xué)期期末試卷
- 石家莊二手房房屋買賣合同二零二五年
- 油茶種植承包合同書
- 2025年貴州高速集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025版融資租賃合同履行監(jiān)管服務(wù)合同3篇
- 2025年長沙水業(yè)集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2024年中考模擬試卷生物(廣東深圳卷)
- 2025年度農(nóng)村林地林業(yè)資產(chǎn)評(píng)估與轉(zhuǎn)讓承包合同2篇
- 精神類藥物中毒護(hù)理查房
- 上海農(nóng)林職業(yè)技術(shù)學(xué)院《經(jīng)濟(jì)效益審計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- (高清版)DB41∕T 2137-2021 公路隧道監(jiān)控量測技術(shù)規(guī)程
- 鋼結(jié)構(gòu)單層廠房施工方案
- 項(xiàng)目工期管理
- 【MOOC】英語語法與寫作-暨南大學(xué) 中國大學(xué)慕課MOOC答案
評(píng)論
0/150
提交評(píng)論