軟件工程理論與實(shí)踐 課件 第10章 面向?qū)ο蠓治?1_第1頁(yè)
軟件工程理論與實(shí)踐 課件 第10章 面向?qū)ο蠓治?1_第2頁(yè)
軟件工程理論與實(shí)踐 課件 第10章 面向?qū)ο蠓治?1_第3頁(yè)
軟件工程理論與實(shí)踐 課件 第10章 面向?qū)ο蠓治?1_第4頁(yè)
軟件工程理論與實(shí)踐 課件 第10章 面向?qū)ο蠓治?1_第5頁(yè)
已閱讀5頁(yè),還剩41頁(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)介

第10章面向?qū)ο蠓治霰菊赂攀?理解面向?qū)ο蠓治龅倪^(guò)程和原則本章首先講述面向?qū)ο蠓治龅倪^(guò)程和原則,然后闡述面向?qū)ο蠼#ㄈ绾谓?duì)象模型,動(dòng)態(tài)模型以及功能模型。掌握面向?qū)ο蠼5娜N模型目錄3面向?qū)ο蠓治龇椒嫦驅(qū)ο蠼5诙?jié)第一節(jié)10.1面向?qū)ο蠓治龇椒嫦驅(qū)ο蠓治鲞^(guò)程面向?qū)ο蠓治鲈瓌t面向?qū)ο蠓治鲞^(guò)程5面向?qū)ο蟮姆治鲋饕杂美P蜑榛A(chǔ)。開(kāi)發(fā)人員在收集到的原始需求的基礎(chǔ)上,通過(guò)構(gòu)建用例模型從而得到系統(tǒng)的需求。進(jìn)而再通過(guò)對(duì)用例模型的完善,使得需求得到改善。所謂用例是指系統(tǒng)中的一個(gè)功能單元,可以描述為參與者與系統(tǒng)之間的一次交互。用例常被用來(lái)收集用戶的需求。面向?qū)ο蠓治鲞^(guò)程6

語(yǔ)法

首先要找到系統(tǒng)的操作者,即用例的參與者。參與者是在系統(tǒng)之外,透過(guò)系統(tǒng)邊界與系統(tǒng)進(jìn)行有意義交互的任何事物??梢园褏⑴c者執(zhí)行的每一個(gè)系統(tǒng)功能都看作一個(gè)用例??梢哉f(shuō),用例描述了系統(tǒng)的功能,涉及系統(tǒng)為了實(shí)現(xiàn)一個(gè)功能目標(biāo)而關(guān)聯(lián)的參與者、對(duì)象和行為。確定了系統(tǒng)的所有用例之后,就可以開(kāi)始識(shí)別目標(biāo)系統(tǒng)中的對(duì)象和類(lèi)了。把具有相似屬性和操作的對(duì)象定義為一個(gè)類(lèi)。

參與者用例對(duì)象面向?qū)ο蠓治鲞^(guò)程7確定了系統(tǒng)的所有用例之后,就可以開(kāi)始識(shí)別目標(biāo)系統(tǒng)中的對(duì)象和類(lèi)了。把具有相似屬性和操作的對(duì)象定義為一個(gè)類(lèi)。屬性定義對(duì)象的靜態(tài)特征,一個(gè)對(duì)象往往包含很多屬性,目標(biāo)系統(tǒng)應(yīng)當(dāng)只考慮與系統(tǒng)業(yè)務(wù)相關(guān)的屬性。

通常先找出所有的候選類(lèi),然后再?gòu)暮蜻x類(lèi)中剔除與問(wèn)題域無(wú)關(guān)的、非本質(zhì)的東西。例如將書(shū)寫(xiě)的需求陳述中,提取名詞作為候選類(lèi),描述特征的形容詞作為屬性,動(dòng)詞作為操作,然后再剔除不必要、不正確、重復(fù)的內(nèi)容。類(lèi)的劃分8邊界類(lèi)控制類(lèi)實(shí)體類(lèi)邊界類(lèi)代表了系統(tǒng)及其操參與者的邊界,描述參與者與系統(tǒng)之間的交互。它更加關(guān)注系統(tǒng)的職責(zé),而不是實(shí)現(xiàn)職責(zé)的具體細(xì)節(jié)。通常,界面控制類(lèi)、系統(tǒng)和設(shè)備接口類(lèi)都屬于邊界類(lèi)。控制類(lèi)代表了系統(tǒng)的邏輯控制,描述一個(gè)用例所具有的事件流的控制行為,實(shí)現(xiàn)對(duì)用例行為的封裝。通常,可以為每個(gè)用例定義一個(gè)控制類(lèi)。實(shí)體類(lèi)描述了系統(tǒng)中必須存儲(chǔ)的信息及相關(guān)的行為,通常對(duì)應(yīng)于現(xiàn)實(shí)世界中的事物。目標(biāo)系統(tǒng)的類(lèi)可以劃分為邊界類(lèi)、控制類(lèi)和實(shí)體類(lèi)類(lèi)之間的關(guān)系關(guān)聯(lián)關(guān)系依賴(lài)關(guān)系是“非結(jié)構(gòu)化”的和短暫的關(guān)系,表明某個(gè)對(duì)象會(huì)影響另外一個(gè)對(duì)象的行為或服務(wù)。泛化關(guān)系泛化關(guān)系與類(lèi)間的繼承類(lèi)似。聚合關(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)的類(lèi)和對(duì)象之后,就可以分析類(lèi)之間的關(guān)系了。對(duì)象或類(lèi)之間的關(guān)系有依賴(lài)、關(guān)聯(lián)、聚合、組合、泛化和實(shí)現(xiàn)。依賴(lài)關(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ì)類(lèi)與接口的關(guān)系。面向?qū)ο蠓治鲞^(guò)程10明確了對(duì)象、類(lèi)和類(lèi)之間的層次關(guān)系之后,需要進(jìn)一步識(shí)別出對(duì)象之間的動(dòng)態(tài)交互行為,即系統(tǒng)響應(yīng)外部事件或操作的工作過(guò)程。一般采用順序圖將用例和分析的對(duì)象聯(lián)系在一起,描述用例的行為是如何在對(duì)象之間分布的。也可以采用協(xié)作圖、狀態(tài)圖或活動(dòng)圖。

最后,需要將需求分析的結(jié)果用多種模型圖表示出來(lái),并對(duì)其進(jìn)行評(píng)審。由于分析的過(guò)程是一個(gè)循序漸進(jìn)的過(guò)程,合理的分析模型需要多次迭代才能得到。面向?qū)ο蠓治鲞^(guò)程面向?qū)ο蟮男枨蠓治?0.1面向?qū)ο蠓治龇椒嫦驅(qū)ο蠓治鲞^(guò)程面向?qū)ο蠓治鲈瓌t面向?qū)ο蠓治鲈x有實(shí)際意義的對(duì)象3、共享性2、模型的描述要規(guī)范、準(zhǔn)確4、封裝性特別要注意的是,一定要把在應(yīng)用領(lǐng)域中有意義的、與所要解決的問(wèn)題有關(guān)系的所有事物作為對(duì)象,既不能遺漏,也不要定義無(wú)關(guān)對(duì)象。強(qiáng)調(diào)實(shí)體的本質(zhì),忽略無(wú)關(guān)的屬性。對(duì)象描述應(yīng)盡量使用現(xiàn)在時(shí)態(tài),陳述語(yǔ)句,以保證語(yǔ)義的清晰。定義對(duì)象時(shí)還應(yīng)該描述對(duì)象之間的關(guān)系及對(duì)象的背景信息面向?qū)ο蠹夹g(shù)的共享有不同級(jí)別,如同一類(lèi)共享屬性和服務(wù);子類(lèi)繼承父類(lèi)屬性和服務(wù);同意應(yīng)用中的共享類(lèi)及其繼承性;通過(guò)類(lèi)庫(kù)實(shí)現(xiàn)在不同應(yīng)用中的共享等。對(duì)不能抽象為某一類(lèi)的對(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ū)ο蟮姆治鲋?,通常需要建?種形式的模型,它們分別是描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對(duì)象模型,描述系統(tǒng)控制結(jié)構(gòu)的動(dòng)態(tài)模型,以及描述系統(tǒng)功能的功能模型。這3種模型都涉及數(shù)據(jù)、控制、操作等共同的概念,只不過(guò)每種模型描述的側(cè)重點(diǎn)不同。一個(gè)典型的軟件系統(tǒng)通常包括的內(nèi)容為:面向?qū)ο蠼?6面向?qū)ο蠓治鲋?,解決的問(wèn)題不同,3個(gè)模型的重要程度也不同。1.一般來(lái)說(shuō),解決任何問(wèn)題,都要從客觀世界實(shí)體及實(shí)體相互關(guān)系抽象出有價(jià)值的對(duì)象模型;2.當(dāng)問(wèn)題涉及交互作用和時(shí)序時(shí),需要構(gòu)造動(dòng)態(tài)模型。3.當(dāng)解決運(yùn)算量很大的問(wè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)格測(cè)試驗(yàn)證。10.2面向?qū)ο蠼=?duì)象模型建立動(dòng)態(tài)模型建立功能模型3種模型之間的關(guān)系建立對(duì)象模型

面向?qū)ο蠓治鍪滓墓ぷ?,是建立?wèn)題域的對(duì)象模型。這個(gè)對(duì)象模型要描述現(xiàn)實(shí)世界中的“類(lèi)與對(duì)象”及它們之間的關(guān)系,表示了目標(biāo)系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu)。靜態(tài)數(shù)據(jù)結(jié)構(gòu)細(xì)節(jié)依賴(lài)較少,容易確定且比較穩(wěn)定。所以面向?qū)ο蠓治鲋卸际窍冉?duì)象模型,再考慮建立動(dòng)態(tài)模型和功能模型,對(duì)象模型為動(dòng)態(tài)模型和功能模型提供了實(shí)質(zhì)性框架。建立對(duì)象模型復(fù)雜問(wèn)題(大型系統(tǒng))的對(duì)象模型通常由下述5個(gè)層次組成:主題層(也稱(chēng)為范疇層)、類(lèi)與對(duì)象層、結(jié)構(gòu)層、屬性層和服務(wù)層,如圖所示。上述5個(gè)層次對(duì)應(yīng)著在面向?qū)ο蠓治鲞^(guò)程中建立對(duì)象模型的5項(xiàng)主要活動(dòng):劃分主題;找出類(lèi)與對(duì)象;識(shí)別結(jié)構(gòu);定義屬性;定義服務(wù)。實(shí)際上五項(xiàng)活動(dòng)沒(méi)有必要的完成順序,設(shè)計(jì)時(shí)也不需要嚴(yán)格遵守自頂向下原則。劃分主題20A.主題主題是把一組具有較強(qiáng)聯(lián)系的類(lèi)組織在一起而得到的類(lèi)的集合,一般有以下特點(diǎn):主題是由一組具有較強(qiáng)聯(lián)系的類(lèi)形成的集合,但本身不是一個(gè)類(lèi)。一個(gè)主題內(nèi)部的類(lèi)之間往往具有某種意義上的內(nèi)在聯(lián)系。主題的劃分一般沒(méi)有固定規(guī)則,不同側(cè)重可以得到不同的劃分方式。自底向上。先建立對(duì)象類(lèi),然后把對(duì)象類(lèi)中關(guān)系較密切的類(lèi)組織為一個(gè)主題。如果主題數(shù)量仍然很多,則可進(jìn)一步將聯(lián)系較強(qiáng)的小主題組織為大主題,直到系統(tǒng)中最上層主題數(shù)不超過(guò)7個(gè)。這種方式適合于小型系統(tǒng)或中型系統(tǒng)。自頂向下。先分析系統(tǒng),確定幾個(gè)大的主題,每個(gè)主題相當(dāng)于一個(gè)子系統(tǒng)。將這些子系統(tǒng)再分別進(jìn)行面向?qū)ο蠓治?,建立各個(gè)子系統(tǒng)中的對(duì)象類(lèi)。最終可將各個(gè)子系統(tǒng)合并為一個(gè)大的子系統(tǒng)。劃分主題主題的劃分有以下兩種方式。一般來(lái)說(shuō),應(yīng)該按照問(wèn)題領(lǐng)域而不是功能分解的方法來(lái)確定主題。此外確定主題應(yīng)遵循“使不同主題內(nèi)的類(lèi)之間依賴(lài)和交互最少”的原則來(lái)確定主題,可以使用UML的包來(lái)展現(xiàn)主題。劃分主題22B.主題圖上述的主題劃分的最終結(jié)果能夠形成一個(gè)完整的對(duì)象類(lèi)圖和一個(gè)主題圖。主題圖一般有如下3種表示方式。展開(kāi)方式將關(guān)系較密切的對(duì)象類(lèi)畫(huà)在一個(gè)框內(nèi),框的每個(gè)角標(biāo)上主題號(hào),框內(nèi)是詳細(xì)的對(duì)象類(lèi)圖,標(biāo)出每個(gè)類(lèi)的屬性和服務(wù)以及類(lèi)之間的詳細(xì)關(guān)系,這就是主題圖的展開(kāi)方式。壓縮方式將每個(gè)主題號(hào)及主題名分別寫(xiě)在一個(gè)框內(nèi),這就是主題圖的壓縮方式。半展開(kāi)方式。將每個(gè)框內(nèi)主題號(hào)、主題名及該主題中所含的對(duì)象類(lèi)全部列出,這就是主題圖的半展開(kāi)方式。主題圖的壓縮方式是為了表明系統(tǒng)的總體情況,而主題圖的展開(kāi)方式是為了表明系統(tǒng)的詳細(xì)情況。對(duì)象模型用類(lèi)符號(hào)、類(lèi)實(shí)例符號(hào)、類(lèi)的關(guān)聯(lián)關(guān)系、繼承關(guān)系等表示。有些對(duì)象具有主動(dòng)服務(wù)功能,稱(chēng)為主動(dòng)對(duì)象。劃分主題23如圖所示即為一個(gè)商品銷(xiāo)售管理系統(tǒng)的主題圖。這個(gè)系統(tǒng)的功能包括:①為商品編號(hào)并記錄名稱(chēng)、單價(jià)數(shù)量等相關(guān)信息。②營(yíng)業(yè)員接班后要登錄和收獲,以及將顧客選購(gòu)的商品輸入購(gòu)物清單、商品計(jì)價(jià)、收費(fèi)、打印購(gòu)物清單及合計(jì);交班時(shí)要進(jìn)行結(jié)賬和交款。此系統(tǒng)可以幫助供貨員發(fā)現(xiàn)哪些商品需要供貨。賬冊(cè)用來(lái)統(tǒng)計(jì)商品銷(xiāo)售量、進(jìn)貨量和庫(kù)存量,以及資金的結(jié)算。此外,上級(jí)系統(tǒng)可以向該系統(tǒng)發(fā)送消息。經(jīng)過(guò)分析可以確定如下幾類(lèi):營(yíng)業(yè)員、銷(xiāo)售事件、賬冊(cè)、商品、商品目錄、供貨員、上級(jí)系統(tǒng)接口等。將其中關(guān)系比較密切的類(lèi)劃入同一個(gè)框,可以得到(a)中的展開(kāi)方式的主題圖,如果只標(biāo)注主題號(hào)和主題名稱(chēng),則可以得到壓縮方式的主題圖(b),若在其之上補(bǔ)充類(lèi)名,則得到半展開(kāi)主題圖(c).確定類(lèi)與對(duì)象建立對(duì)象模型首先要確定對(duì)象、類(lèi),然后進(jìn)行篩選。通過(guò)區(qū)分實(shí)體類(lèi)、邊界類(lèi)和控制類(lèi)來(lái)檢查對(duì)象模型的完整性,候選的類(lèi)和對(duì)象包括:①可感知的物理實(shí)體②人或組織的角色③應(yīng)該記憶的事件④兩個(gè)或多個(gè)事件的相互作用⑤需要說(shuō)明的概念。此外,更簡(jiǎn)單的非正式分析方法及將需求描述的名詞作為候選,然后根據(jù)以下原則篩選:①冗余,如果兩個(gè)類(lèi)表達(dá)同樣的信息,應(yīng)選擇更合理的。②無(wú)關(guān),系統(tǒng)只需包含與本系統(tǒng)密切相關(guān)的類(lèi)或?qū)ο蟆"刍\統(tǒng),去除籠統(tǒng)的類(lèi)或?qū)ο?。④屬性:系統(tǒng)中如果某個(gè)類(lèi)只有一個(gè)屬性,則可以考慮將其作為另一個(gè)類(lèi)的屬性。⑤操作,對(duì)于即可作動(dòng)詞也可作名詞的詞匯,應(yīng)正確決定是作為類(lèi)還是操作。⑥實(shí)現(xiàn),分析階段不需要保留只和時(shí)間有關(guān)的候選。分析對(duì)象、類(lèi)之間的相互關(guān)系。對(duì)象類(lèi)之間的關(guān)系可分為關(guān)聯(lián)、依賴(lài)、泛化和實(shí)現(xiàn)等關(guān)系。確定結(jié)構(gòu)25結(jié)構(gòu)就是定義類(lèi)之間的層次結(jié)構(gòu)關(guān)系,具體的結(jié)構(gòu)及其確定方式在第7章。確定屬性26R屬性的確定既與問(wèn)題域有關(guān),也和目標(biāo)系統(tǒng)的任務(wù)有關(guān)。標(biāo)識(shí)屬性的啟發(fā)性準(zhǔn)則如下:1)每個(gè)對(duì)象至少需包含一個(gè)屬性。2)屬性取值必需適合對(duì)象類(lèi)的所有實(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ì)象的外部不可見(jiàn)狀態(tài),應(yīng)將該屬性從分析模型中刪去。應(yīng)注意以下問(wèn)題:誤把對(duì)象當(dāng)作屬性誤把關(guān)聯(lián)類(lèi)的屬性當(dāng)作對(duì)象屬性誤把內(nèi)部狀態(tài)當(dāng)作屬性4)過(guò)度細(xì)化5)存在不一致的屬性屬性不能包含一個(gè)內(nèi)部結(jié)構(gòu)屬性在任何時(shí)候只能有一個(gè)在其允許范圍內(nèi)的確切值確定屬性27

通用的屬性應(yīng)放在泛化結(jié)構(gòu)中較高層的類(lèi)中,特殊的屬性應(yīng)放在較低層的類(lèi)中。實(shí)體關(guān)系圖中的實(shí)體可能對(duì)應(yīng)于某一對(duì)象。這樣,實(shí)體的屬性就會(huì)簡(jiǎn)單地成為對(duì)象的屬性。如果實(shí)體(如學(xué)校)不只對(duì)應(yīng)于一類(lèi)對(duì)象,那么這個(gè)實(shí)體的屬性必須分配到分析模型的不同類(lèi)的對(duì)象之中。確定屬性28添加新的媒體文件;通過(guò)編碼查找需要的文件;刪除指定文件;Four030102ThreeTwoOne例:多媒體商店銷(xiāo)售系統(tǒng)需要處理的文件:圖像文件和聲音文件,都擁有名稱(chēng)和唯一編碼,作者信息和格式信息,聲音文件還包括文件時(shí)長(zhǎng)(秒)。04統(tǒng)計(jì)系統(tǒng)中文件的數(shù)量。確定屬性29分析過(guò)程:根據(jù)文件的信息,圖像文件和聲音文件的類(lèi)都需要有屬性:id-編碼,author-作者,format-格式。為了方便處理,還可加入source-文件位置。由功能①③,應(yīng)該有按參數(shù)構(gòu)造和按編碼刪除的兩個(gè)方法。此外還有findByld-查找,count-查找兩個(gè)方法。聲音文件的類(lèi)還要加入一個(gè)duration屬性描述時(shí)長(zhǎng),并包括對(duì)應(yīng)存取方法,兩種類(lèi)的各項(xiàng)信息如圖。確定服務(wù)30

“對(duì)象”是由描述其屬性的數(shù)據(jù)以及可以對(duì)這些數(shù)據(jù)施加的操作(即方法或服務(wù)),封裝在一起構(gòu)成的獨(dú)立單元。因此,為建立完整的對(duì)象模型,既要確定類(lèi)中應(yīng)該定義的屬性,又要確定類(lèi)中應(yīng)該定義的服務(wù)。但是,需要等到建立了動(dòng)態(tài)模型和功能模型之后,才能最終確定類(lèi)中應(yīng)有的服務(wù),因?yàn)檫@兩個(gè)模型更明確地描述了每個(gè)類(lèi)中應(yīng)該提供哪些服務(wù)。實(shí)際上,在確定類(lèi)中應(yīng)有的服務(wù)時(shí),既要考慮該類(lèi)實(shí)體的常規(guī)行為,又要考慮在本系統(tǒng)中特殊需要的服務(wù)。識(shí)別類(lèi)的操作時(shí),應(yīng)注意:①只有一個(gè)或很少操作的類(lèi),這個(gè)類(lèi)可能合法,但或許可以與其他類(lèi)合并。②沒(méi)有操作的類(lèi),可能沒(méi)有必要存在,可以合并。③太多操作的類(lèi),應(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)模型首先要編寫(xiě)腳本,從腳本中提取事件,設(shè)想用戶界面,然后畫(huà)出UML順序圖,最后畫(huà)出對(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)作,也可以?xún)H僅改變對(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í)世界中的抽象。事件沒(méi)有持續(xù)時(shí)間,是瞬間完成的。(3)服務(wù):指對(duì)象達(dá)到某種狀態(tài)時(shí)所做的一系列處理操作。這些操作是需要消耗時(shí)間的。

編寫(xiě)腳本33輸入腳本輸出在建立動(dòng)態(tài)模型過(guò)程中,腳本是系統(tǒng)執(zhí)行某個(gè)功能的一系列事件,腳本描述用戶(或其他外部設(shè)備)與目標(biāo)系統(tǒng)之間的一個(gè)或多個(gè)典型的交互過(guò)程,以便對(duì)目標(biāo)系統(tǒng)的行為有更具體的認(rèn)識(shí)。腳本通常起始于一個(gè)系統(tǒng)外部的輸入事件,結(jié)束于一個(gè)系統(tǒng)外部的輸出事件,它可以包括發(fā)生在這個(gè)期間的系統(tǒng)所有的內(nèi)部事件(包括正常情況腳本和異常情況腳本)。編寫(xiě)腳本的目的是保證不遺漏系統(tǒng)功能中重要的交互步驟,有助于確保整個(gè)交互過(guò)程的正確性和清晰性。編寫(xiě)腳本34例如,下面陳述的是客戶在ATM機(jī)上取款的腳本。(1)客戶將卡插入ATM機(jī),開(kāi)始用例。(2)ATM顯示歡迎消息并提示客戶輸入密碼。(3)客戶輸入密碼。(4)ATM確認(rèn)密碼有效。如果無(wú)效則執(zhí)行子事件流a。如果與主機(jī)聯(lián)接有問(wèn)題,則執(zhí)行異常事件流e。(5)ATM提供以下選項(xiàng):存錢(qián)、取錢(qián)、查詢(xún)。(6)用戶選擇取錢(qián)選項(xiàng)。(7)ATM提示輸入所取金額。(8)用戶輸入所取金額。(9)ATM確定該賬戶是否有足夠的金額。如果余額不夠,則執(zhí)行子事件流b,如果與主機(jī)聯(lián)接有問(wèn)題,則執(zhí)行異常事件流e。(10

)ATM從客戶賬戶中減去所取金額。(11)ATM向客戶提供要取的錢(qián)。(12)ATM打印清單。(13)ATM退出客戶的卡,用例結(jié)束。子事件流編寫(xiě)腳本35

子事件流a:a1.

提示用戶輸入無(wú)效密碼,請(qǐng)求再次輸入;a2.如果三次輸入無(wú)效密碼,系統(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à)。畫(huà)UML順序圖或活動(dòng)圖37

完整、正確的腳本為建立動(dòng)態(tài)模型奠定了必要的基礎(chǔ)。但是,用自然語(yǔ)言書(shū)寫(xiě)的腳本往往不夠簡(jiǎn)明,而且有時(shí)在閱讀時(shí)會(huì)有二義性。為了有助于建立動(dòng)態(tài)模型,通常在畫(huà)狀態(tài)圖之前先畫(huà)出事件跟蹤圖。UML順序圖(也稱(chēng)為事件跟蹤圖)中,一條豎線代表應(yīng)用領(lǐng)域中的一個(gè)類(lèi),每個(gè)事件用一條水平的箭頭線表示,箭頭方向從事件的發(fā)送對(duì)象指向接受對(duì)象,時(shí)間從上向下遞增。謂詞邏輯表示法38如果對(duì)象的屬性值不相同時(shí),對(duì)象的行為規(guī)則有所不同,我們稱(chēng)對(duì)象處于不同的狀態(tài)。由于對(duì)象在不同狀態(tài)下呈現(xiàn)不同的行為方式,所以應(yīng)分析對(duì)象的狀態(tài),才可正確地認(rèn)識(shí)對(duì)象的行為并定義它的服務(wù)。例如,通信系統(tǒng)中的電話對(duì)象,就有電話閑置、撥通中、忙音、通話、斷線、超時(shí)等狀態(tài)。這里可以專(zhuān)門(mén)定義一個(gè)“狀態(tài)”屬性。該屬性有之前介紹的幾種屬性值,每一個(gè)屬性值就是一種狀態(tài)。有了狀態(tài)圖,就可“執(zhí)行”狀態(tài)圖,以便檢驗(yàn)狀態(tài)轉(zhuǎn)換的正確性和協(xié)調(diào)一致性。執(zhí)行方法是從任意一個(gè)狀態(tài)開(kā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ù)之間的依賴(lài)關(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ū)傩?。建立功能模型的步驟如右:確定輸入和輸出值畫(huà)數(shù)據(jù)流圖定義服務(wù)03010201020304GOAL確定輸入輸出值41數(shù)據(jù)流圖中的輸入和輸出值是系統(tǒng)與外部之間進(jìn)行交互的事件的參數(shù)。畫(huà)數(shù)據(jù)流圖功能模型可用多張數(shù)據(jù)流圖等來(lái)表示。在面向?qū)ο蠓椒ㄖ校瑪?shù)據(jù)源往往是主動(dòng)對(duì)象,它通過(guò)生成或使用數(shù)據(jù)來(lái)驅(qū)動(dòng)數(shù)據(jù)流。數(shù)據(jù)終點(diǎn)接收數(shù)據(jù)的輸出流。數(shù)據(jù)流圖中的數(shù)據(jù)存儲(chǔ)是被動(dòng)對(duì)象,本身不產(chǎn)生任何操作,只響應(yīng)存儲(chǔ)和訪問(wèn)數(shù)據(jù)的要求。輸入箭頭表示增加、更改或刪除所存儲(chǔ)的數(shù)據(jù),輸出箭頭表示從數(shù)據(jù)存儲(chǔ)中查找信息。確定服務(wù)42SWOT

類(lèi)的服務(wù)與對(duì)象模型中的屬性和關(guān)聯(lián)的查詢(xún)有關(guān),與動(dòng)態(tài)模型中

溫馨提示

  • 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)論