版課件第10章-面向?qū)ο蠓治鯻第1頁(yè)
版課件第10章-面向?qū)ο蠓治鯻第2頁(yè)
版課件第10章-面向?qū)ο蠓治鯻第3頁(yè)
版課件第10章-面向?qū)ο蠓治鯻第4頁(yè)
版課件第10章-面向?qū)ο蠓治鯻第5頁(yè)
已閱讀5頁(yè),還剩92頁(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ū)ο蠓治?0.1面向?qū)ο蠓治龅幕具^(guò)程10.2需求陳述10.3建立對(duì)象模型10.4建立動(dòng)態(tài)模型10.5建立功能模型10.6定義服務(wù)10.7小結(jié)OOA面向?qū)ο蠓治?OOA)的關(guān)鍵是識(shí)別出問(wèn)題域內(nèi)的類與對(duì)象,并分析它們相互間的關(guān)系,最終建立起問(wèn)題域的簡(jiǎn)潔、精確、可理解的正確模型。在用面向?qū)ο笥^點(diǎn)建立起的3種模型中,對(duì)象模型是最基本、最重要、最核心的。10.1面向?qū)ο蠓治龅幕具^(guò)程

10.1.1概述面向?qū)ο蠓治?抽取和整理用戶需求并建立問(wèn)題域精確模型的過(guò)程。面向?qū)ο蠓治鲞^(guò)程從分析陳述用戶需求的文件開(kāi)始??赡苡捎脩魡畏矫鎸?xiě)出需求陳述,也可能由系統(tǒng)分析員配合用戶,共同寫(xiě)出需求陳述。需求陳述通常是不完整、不準(zhǔn)確的,而且往往是非正式的。很難準(zhǔn)確描述10.1.1概述通過(guò)分析,可以發(fā)現(xiàn)和改正原始陳述中的二義性和不一致性,補(bǔ)充遺漏的內(nèi)容,從而使需求陳述更完整、更準(zhǔn)確。因此,需求陳述不是一成不變的,它是細(xì)化和完善實(shí)際需求的基礎(chǔ)??焖俳⒌脑拖到y(tǒng),有助于分析員和用戶之間的交流和理解,從而能更正確地提煉出用戶的需求。接著,系統(tǒng)分析員深入理解用戶需求,抽象出目標(biāo)系統(tǒng)的本質(zhì)屬性,并用模型準(zhǔn)確地表示出來(lái)。迭代分析模型10.1.1概述建模過(guò)程中分類工作往往有很大難度。它必須反映出一定深度的領(lǐng)域知識(shí),必須有領(lǐng)域?qū)<业拿芮信浜喜拍芡瓿伞V赜眉夹g(shù)是經(jīng)常使用的。面向?qū)ο蠼5玫降哪P图挫o態(tài)結(jié)構(gòu)(對(duì)象模型)、交互次序(動(dòng)態(tài)模型)和數(shù)據(jù)變換(功能模型)。10.1.23個(gè)子模型與5個(gè)層次不同問(wèn)題中這3個(gè)子模型的重要程度也不同。解決任何一個(gè)問(wèn)題,都需要從客觀世界實(shí)體及實(shí)體間相互關(guān)系抽象出極有價(jià)值的對(duì)象模型;當(dāng)問(wèn)題涉及交互作用和時(shí)序時(shí),動(dòng)態(tài)模型是重要的;解決運(yùn)算量很大的問(wèn)題,則涉及重要的功能模型。動(dòng)態(tài)模型和功能模型中都包含了對(duì)象模型中的操作(即服務(wù)或方法)。10.1.23個(gè)子模型與5個(gè)層次復(fù)雜問(wèn)題的對(duì)象模型通常由5個(gè)層次組成:主題層、類與對(duì)象層、結(jié)構(gòu)層、屬性層和服務(wù)層。10.1.23個(gè)子模型與5個(gè)層次主題是指導(dǎo)讀者(包括系統(tǒng)分析員、軟件設(shè)計(jì)人員、領(lǐng)域?qū)<?、管理人員、用戶等,泛指所有需要讀懂系統(tǒng)模型的人)理解大型、復(fù)雜模型的一種機(jī)制。通過(guò)劃分主題把一個(gè)大型、復(fù)雜的對(duì)象模型分解成幾個(gè)不同的概念范疇。10.1.23個(gè)子模型與5個(gè)層次5個(gè)層次對(duì)應(yīng)著在面向?qū)ο蠓治鲞^(guò)程中建立對(duì)象模型的5項(xiàng)主要活動(dòng):找出類與對(duì)象;識(shí)別結(jié)構(gòu);識(shí)別主題;定義屬性;定義服務(wù)。在進(jìn)行面向?qū)ο蠓治鰰r(shí)并不需要嚴(yán)格遵守自頂向下的原則。10.1.23個(gè)子模型與5個(gè)層次在完整地定義每個(gè)類中的服務(wù)之前,需要先建立起動(dòng)態(tài)模型和功能模型,通過(guò)對(duì)這兩種模型的研究,能夠更正確更合理地確定每個(gè)類應(yīng)該提供哪些服務(wù)。10.1.23個(gè)子模型與5個(gè)層次在概念上可以認(rèn)為,面向?qū)ο蠓治龃篌w上按照下列順序進(jìn)行:Step1:

尋找類與對(duì)象Step2:識(shí)別結(jié)構(gòu)Step3:識(shí)別主題Step4:定義屬性Step5:建立動(dòng)態(tài)模型Step6:建立功能模型Step7:定義服務(wù)。

當(dāng)然,上述過(guò)程要多次迭代得以實(shí)現(xiàn)。OOA的結(jié)構(gòu)類的邊界Class&objectlayer(類及對(duì)象層)Attributelayer(屬性層)Servicelayer(服務(wù)層)Structurelayer(結(jié)構(gòu)層)Subjectlayer(主題層)實(shí)例的邊界實(shí)例連接消息連接主題服務(wù)屬性10.2需求陳述

10.2.1書(shū)寫(xiě)要點(diǎn)需求陳述的內(nèi)容包括:?jiǎn)栴}范圍,功能需求,性能需求,應(yīng)用環(huán)境及假設(shè)條件等。它描述用戶的需求而不是提出解決問(wèn)題的方法。應(yīng)該指出哪些是系統(tǒng)必要的,哪些是任選的。應(yīng)該避免對(duì)設(shè)計(jì)策略施加約束,也不要描述系統(tǒng)的內(nèi)部結(jié)構(gòu)。對(duì)系統(tǒng)性能及系統(tǒng)與外界環(huán)境交互協(xié)議的描述,是合適的需求。從實(shí)際出發(fā),迭代完成。10.2.2例子某銀行擬開(kāi)發(fā)一個(gè)自動(dòng)取款機(jī)系統(tǒng),它是一個(gè)由自動(dòng)取款機(jī)、中央計(jì)算機(jī)、分行計(jì)算機(jī)及柜員終端組成的網(wǎng)絡(luò)系統(tǒng)。ATM和中央計(jì)算機(jī)由總行投資購(gòu)買??傂袚碛卸嗯_(tái)ATM,分別設(shè)在全市各主要街道上。分行負(fù)責(zé)提供分行計(jì)算機(jī)和柜員終端。柜員終端設(shè)在分行營(yíng)業(yè)廳及分行下屬的各個(gè)儲(chǔ)蓄所內(nèi)。該系統(tǒng)的軟件開(kāi)發(fā)成本由各個(gè)分行分?jǐn)偂?0.2.2例子10.2.2例子銀行柜員使用柜員終端處理儲(chǔ)戶提交的儲(chǔ)蓄事務(wù)。儲(chǔ)戶可以用現(xiàn)金或支票向自己擁有的某個(gè)賬戶內(nèi)存款或開(kāi)新賬戶。儲(chǔ)戶也可以從自己的賬戶中取款。通常,一個(gè)儲(chǔ)戶可能擁有多個(gè)賬戶。柜員負(fù)責(zé)把儲(chǔ)戶提交的存款或取款事務(wù)輸進(jìn)柜員終端,接收儲(chǔ)戶交來(lái)的現(xiàn)金或支票,或付給儲(chǔ)戶現(xiàn)金。柜員終端與相應(yīng)的分行計(jì)算機(jī)通信,分行計(jì)算機(jī)具體處理針對(duì)某個(gè)賬戶的事務(wù)并且維護(hù)賬戶。10.2.2例子擁有銀行賬戶的儲(chǔ)戶有權(quán)申請(qǐng)領(lǐng)取現(xiàn)金兌換卡。使用現(xiàn)金兌換卡可以通過(guò)ATM訪問(wèn)自己的賬戶。目前僅限于用現(xiàn)金兌換卡在ATM上提取現(xiàn)金(即取款),或查詢有關(guān)自己賬戶的信息(例如,某個(gè)指定賬戶上的余額)。將來(lái)可能還要求使用ATM辦理轉(zhuǎn)賬、存款等事務(wù)。10.2.2例子所謂現(xiàn)金兌換卡就是一張?zhí)刂频拇趴?,上面有分行代碼和卡號(hào)。分行代碼惟一標(biāo)識(shí)總行下屬的一個(gè)分行,卡號(hào)確定了這張卡可以訪問(wèn)哪些賬戶。通常,一張卡可以訪問(wèn)儲(chǔ)戶的若干個(gè)賬戶,但是不一定能訪問(wèn)這個(gè)儲(chǔ)戶的全部賬戶。每張現(xiàn)金兌換卡僅屬于一個(gè)儲(chǔ)戶所有,但是,同一張卡可能有多個(gè)副本,因此,必須考慮同時(shí)在若干臺(tái)ATM上使用同樣的現(xiàn)金兌換卡的可能性。也就是說(shuō),系統(tǒng)應(yīng)該能夠處理并發(fā)的訪問(wèn)。10.2.2例子當(dāng)用戶把現(xiàn)金兌換卡插入ATM之后,ATM就與用戶交互,以獲取有關(guān)這次事務(wù)的信息,并與中央計(jì)算機(jī)交換關(guān)于事務(wù)的信息。首先,ATM要求用戶輸入密碼,接下來(lái)ATM把從這張卡上讀到的信息以及用戶輸入的密碼傳給中央計(jì)算機(jī),請(qǐng)求中央計(jì)算機(jī)核對(duì)這些信息并處理這次事務(wù)。中央計(jì)算機(jī)根據(jù)卡上的分行代碼確定這次事務(wù)與分行的對(duì)應(yīng)關(guān)系,并且委托相應(yīng)的分行計(jì)算機(jī)驗(yàn)證用戶密碼。如果用戶輸入的密碼是正確的,ATM就要求用戶選擇事務(wù)類型(取款、查詢等)。當(dāng)用戶選擇取款時(shí),ATM請(qǐng)求用戶輸入取款額。最后,ATM從現(xiàn)金出口吐出現(xiàn)金,并且打印出賬單交給用戶。10.3建立對(duì)象模型面向?qū)ο蠓治鍪紫冉?wèn)題域的對(duì)象模型。它表示了目標(biāo)系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu)。需求陳述、應(yīng)用領(lǐng)域的專業(yè)知識(shí)以及關(guān)于客觀世界的常識(shí),是建立對(duì)象模型時(shí)的主要信息來(lái)源。10.3建立對(duì)象模型對(duì)象模型通常有5個(gè)層次。典型的工作步驟是:Step1:

確定對(duì)象類和關(guān)聯(lián)。對(duì)于大型復(fù)雜問(wèn)題還要進(jìn)一步劃分出若干個(gè)主題;Step2:

給類和關(guān)聯(lián)增添屬性。以進(jìn)一步描述它們;Step3:

設(shè)計(jì)繼承關(guān)系。利用適當(dāng)?shù)睦^承關(guān)系進(jìn)一步合并和組織類。Step4:

設(shè)計(jì)類中的操作。對(duì)類中操作的最后確定。10.3.1確定類與對(duì)象類與對(duì)象是客觀存在的。系統(tǒng)分析員的首要任務(wù)就是所有候選的類與對(duì)象,然后從中篩選掉不正確的或不必要的。1.找出候選的類與對(duì)象對(duì)象是問(wèn)題域中有意義的事物的抽象,它們既可能是物理實(shí)體,也可能是抽象概念。具體地說(shuō),大多數(shù)客觀事物可分為下述5類:10.3.1確定類與對(duì)象(1)可感知的物理實(shí)體,例如,飛機(jī)、汽車、書(shū)、房屋等。(2)人或組織的角色,例如,醫(yī)生、教師、雇主、雇員、計(jì)算機(jī)系、財(cái)務(wù)處等。(3)應(yīng)該記憶的事件,例如,飛行、演出、訪問(wèn)、交通事故等。(4)兩個(gè)或多個(gè)對(duì)象的相互作用,通常具有交易或接觸的性質(zhì),例如,購(gòu)買、納稅、結(jié)婚等。(5)需要說(shuō)明的概念,例如,政策、保險(xiǎn)政策、版權(quán)法等。10.3.1確定類與對(duì)象另一種非正式分析方法以用自然語(yǔ)言書(shū)寫(xiě)的需求陳述為依據(jù)。把陳述中的名詞作為類與對(duì)象的候選者把形容詞作為確定屬性的線索把動(dòng)詞作為服務(wù)的候選者。10.3.1確定類與對(duì)象銀行,自動(dòng)取款機(jī)(ATM),系統(tǒng),中央計(jì)算機(jī),分行計(jì)算機(jī),柜員終端,網(wǎng)絡(luò),總行,分行,軟件,成本,市,街道,營(yíng)業(yè)廳,儲(chǔ)蓄所,柜員,儲(chǔ)戶,現(xiàn)金,支票,賬戶,事務(wù),現(xiàn)金兌換卡,余額,磁卡,分行代碼,卡號(hào),用戶,副本,信息,密碼,類型,取款額,賬單,訪問(wèn)。分析員還應(yīng)該根據(jù)領(lǐng)域知識(shí)或常識(shí)進(jìn)一步把隱含的類與對(duì)象提取出來(lái)。例如,在ATM系統(tǒng)的需求陳述中提取“通信鏈路”和“事務(wù)日志”。10.3.1確定類與對(duì)象2.篩選出正確的類與對(duì)象非正式分析僅僅找到一些候選的類與對(duì)象,下面應(yīng)該嚴(yán)格考察每個(gè)候選對(duì)象,從中去掉不正確的或不必要的,僅保留確實(shí)應(yīng)該記錄其信息或需要其提供服務(wù)的那些對(duì)象。篩選時(shí)主要依據(jù)下列標(biāo)準(zhǔn),刪除不正確或不必要的類與對(duì)象:10.3.1確定類與對(duì)象(1)冗余如果兩個(gè)類表達(dá)了同樣的信息,則應(yīng)該保留在此問(wèn)題域中最富于描述力的名稱。以ATM系統(tǒng)為例,上面用非正式分析法得出了34個(gè)候選的類,其中儲(chǔ)戶與用戶,現(xiàn)金兌換卡與磁卡及副本分別描述了相同的兩類信息,因此,應(yīng)該去掉“用戶”、“磁卡”、“副本”等冗余的類,僅保留“儲(chǔ)戶”和“現(xiàn)金兌換卡”這兩個(gè)類。10.3.1確定類與對(duì)象(2)無(wú)關(guān)現(xiàn)實(shí)世界中存在許多對(duì)象,不能把它們都納入到系統(tǒng)中去,僅需要把與本問(wèn)題密切相關(guān)的類與對(duì)象放進(jìn)目標(biāo)系統(tǒng)中。以ATM系統(tǒng)為例,這個(gè)系統(tǒng)并不處理分?jǐn)傑浖_(kāi)發(fā)成本的問(wèn)題,而且ATM和柜員終端放置的地點(diǎn)與本軟件的關(guān)系也不大。因此,應(yīng)該去掉候選類“成本”、“市”、“街道”、“營(yíng)業(yè)廳”和“儲(chǔ)蓄所”。10.3.1確定類與對(duì)象(3)籠統(tǒng)在需求陳述中常常使用一些籠統(tǒng)的、泛指的名詞,要么系統(tǒng)無(wú)須記憶有關(guān)它們的信息,要么在需求陳述中有更明確更具體的名詞對(duì)應(yīng)它們所暗示的事務(wù)。以ATM系統(tǒng)為例,“銀行”實(shí)際指總行或分行,“訪問(wèn)”在這里實(shí)際指事務(wù),“信息”的具體內(nèi)容在需求陳述中隨后就指明了。此外還有一些籠統(tǒng)含糊的名詞。總之,在本例中應(yīng)該去掉“銀行”、“網(wǎng)絡(luò)”、“系統(tǒng)”、“軟件”、“信息”、“訪問(wèn)”等候選類。10.3.1確定類與對(duì)象(4)屬性在需求陳述中有些名詞實(shí)際上描述的是其他對(duì)象的屬性。在ATM系統(tǒng)的例子中,“現(xiàn)金”、“支票”、“取款額”、“賬單”、“余額”、“分行代碼”、“卡號(hào)”、“密碼”、“類型”等,實(shí)際上都應(yīng)該作為屬性對(duì)待。10.3.1確定類與對(duì)象(5)操作在需求陳述中有時(shí)可能使用一些既可作為名詞,又可作為動(dòng)詞的詞。例如,談到電話時(shí)通常把“撥號(hào)”當(dāng)作動(dòng)詞,當(dāng)構(gòu)造電話模型時(shí)確實(shí)應(yīng)該把它作為一個(gè)操作,而不是一個(gè)類。但是,在開(kāi)發(fā)電話的自動(dòng)記賬系統(tǒng)時(shí),“撥號(hào)”需要有自己的屬性(例如日期、時(shí)間、受話地點(diǎn)等),因此應(yīng)該把它作為一個(gè)類。10.3.1確定類與對(duì)象(6)實(shí)現(xiàn)在分析階段不應(yīng)該過(guò)早地考慮怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)。因此,應(yīng)該去掉和實(shí)現(xiàn)有關(guān)的候選的類與對(duì)象。在ATM系統(tǒng)的例子中,“事務(wù)日志”無(wú)非是對(duì)一系列事務(wù)的記錄,它的確切表示方式是面向?qū)ο笤O(shè)計(jì)的議題;“通信鏈路”在邏輯上是一種聯(lián)系,在系統(tǒng)實(shí)現(xiàn)時(shí)它是關(guān)聯(lián)類的物理實(shí)現(xiàn)。總之,應(yīng)該暫時(shí)去掉“事務(wù)日志”和“通信鏈路”這兩個(gè)類,在設(shè)計(jì)或?qū)崿F(xiàn)時(shí)再考慮它們。10.3.1確定類與對(duì)象綜上所述,在ATM系統(tǒng)的例子中,經(jīng)過(guò)初步篩選,剩下下列類與對(duì)象:ATM、中央計(jì)算機(jī)、分行計(jì)算機(jī)、柜員終端、總行、分行、柜員、儲(chǔ)戶、賬戶、事務(wù)、現(xiàn)金兌換卡。10.3.1確定類與對(duì)象兩個(gè)或多個(gè)對(duì)象之間的相互依賴、相互作用的關(guān)系就是關(guān)聯(lián)。分析確定關(guān)聯(lián),能促使分析員考慮問(wèn)題域的邊緣情況,有助于發(fā)現(xiàn)那些尚未被發(fā)現(xiàn)的類與對(duì)象。在分析確定關(guān)聯(lián)的過(guò)程中,不必花過(guò)多的精力去區(qū)分關(guān)聯(lián)和聚集。10.3.1確定類與對(duì)象1.初步確定關(guān)聯(lián)需求陳述中的描述性動(dòng)詞或動(dòng)詞詞組,通常表示關(guān)聯(lián)。以ATM系統(tǒng)為例,經(jīng)過(guò)分析初步確定出下列關(guān)聯(lián):10.3.1確定類與對(duì)象(1)直接提取動(dòng)詞短語(yǔ)得出的關(guān)聯(lián)ATM、中央計(jì)算機(jī)、分行計(jì)算機(jī)及柜員終端組成網(wǎng)絡(luò)??傂袚碛卸嗯_(tái)ATM。ATM設(shè)在主要街道上。分行提供分行計(jì)算機(jī)和柜員終端。柜員終端設(shè)在分行營(yíng)業(yè)廳及儲(chǔ)蓄所內(nèi)。分行分?jǐn)傑浖_(kāi)發(fā)成本。儲(chǔ)戶擁有賬戶。分行計(jì)算機(jī)處理針對(duì)賬戶的事務(wù)。分行計(jì)算機(jī)維護(hù)賬戶。10.3.1確定類與對(duì)象柜員終端與分行計(jì)算機(jī)通信。柜員輸入針對(duì)賬戶的事務(wù)。ATM與中央計(jì)算機(jī)交換關(guān)于事務(wù)的信息。中央計(jì)算機(jī)確定事務(wù)與分行的對(duì)應(yīng)關(guān)系。ATM讀現(xiàn)金兌換卡。ATM與用戶交互。ATM吐出現(xiàn)金。ATM打印賬單。系統(tǒng)處理并發(fā)的訪問(wèn)。10.3.1確定類與對(duì)象(2)需求陳述中隱含的關(guān)聯(lián)總行由各個(gè)分行組成。分行保管賬戶??傂袚碛兄醒胗?jì)算機(jī)。系統(tǒng)維護(hù)事務(wù)日志。系統(tǒng)提供必要的安全性。儲(chǔ)戶擁有現(xiàn)金兌換卡。(3)根據(jù)問(wèn)題域知識(shí)得出的關(guān)聯(lián)現(xiàn)金兌換卡訪問(wèn)賬戶。分行雇用柜員。10.3.1確定類與對(duì)象2.篩選經(jīng)初步分析得出的關(guān)聯(lián)只能作為候選的關(guān)聯(lián),還需經(jīng)過(guò)進(jìn)一步篩選,主要依據(jù)如下:(1)已刪去的類之間的關(guān)聯(lián)如果已經(jīng)刪掉的候選類,則與這個(gè)類有關(guān)的關(guān)聯(lián)也應(yīng)該刪去,或用其他類重新表達(dá)這個(gè)關(guān)聯(lián)。由于已經(jīng)刪去了“系統(tǒng)”、“網(wǎng)絡(luò)”、“市”、“街道”、“成本”、“軟件”、“事務(wù)日志”、“現(xiàn)金”、“營(yíng)業(yè)廳”、“儲(chǔ)蓄所”、“賬單”等候選類,因此,與這些類有關(guān)的下列8個(gè)關(guān)聯(lián)也應(yīng)該刪去:10.3.1確定類與對(duì)象①ATM、中央計(jì)算機(jī)、分行計(jì)算機(jī)及柜員終端組成網(wǎng)絡(luò)。②ATM設(shè)在主要街道上。③分行分?jǐn)傑浖_(kāi)發(fā)成本。④系統(tǒng)提供必要的安全性。⑤系統(tǒng)維護(hù)事務(wù)日志。⑥ATM吐出現(xiàn)金。⑦ATM打印賬單。⑧柜員終端設(shè)在分行營(yíng)業(yè)廳及儲(chǔ)蓄所內(nèi)。10.3.1確定類與對(duì)象(2)與問(wèn)題無(wú)關(guān)的或應(yīng)在實(shí)現(xiàn)階段考慮的關(guān)聯(lián)應(yīng)該把處在本問(wèn)題域之外的關(guān)聯(lián)或與實(shí)現(xiàn)密切相關(guān)的關(guān)聯(lián)刪去。例如,在ATM系統(tǒng)的例子中,“系統(tǒng)處理并發(fā)的訪問(wèn)”并沒(méi)有標(biāo)明對(duì)象之間的新關(guān)聯(lián),它只不過(guò)提醒我們?cè)趯?shí)現(xiàn)階段需要使用實(shí)現(xiàn)并發(fā)訪問(wèn)的算法,以處理并發(fā)事務(wù)。10.3.1確定類與對(duì)象(3)瞬時(shí)事件關(guān)聯(lián)應(yīng)該描述問(wèn)題域的靜態(tài)結(jié)構(gòu),而不應(yīng)該是一個(gè)瞬時(shí)事件。以ATM系統(tǒng)為例,“ATM讀現(xiàn)金兌換卡”描述了ATM與用戶交互周期中的一個(gè)動(dòng)作,它并不是ATM與現(xiàn)金兌換卡之間的固有關(guān)系,因此應(yīng)該刪去。類似地,還應(yīng)該刪去“ATM與用戶交互”。10.3.1確定類與對(duì)象如果用動(dòng)作表述的需求隱含了問(wèn)題域的某種基本結(jié)構(gòu),則應(yīng)該用適當(dāng)?shù)膭?dòng)詞詞組重新表示這個(gè)關(guān)聯(lián)。例如,在ATM系統(tǒng)的需求陳述中,“中央計(jì)算機(jī)確定事務(wù)與分行的對(duì)應(yīng)關(guān)系”隱含了結(jié)構(gòu)上“中央計(jì)算機(jī)與分行通信”的關(guān)系。10.3.1確定類與對(duì)象(4)三元關(guān)聯(lián)三個(gè)或三個(gè)以上對(duì)象之間的關(guān)聯(lián),大多可以分解為二元關(guān)聯(lián)或用詞組描述成限定的關(guān)聯(lián)?!肮駟T輸入針對(duì)賬戶的事務(wù)”可以分解成“柜員輸入事務(wù)”和“事務(wù)修改賬戶”這樣兩個(gè)二元關(guān)聯(lián)。而“分行計(jì)算機(jī)處理針對(duì)賬戶的事務(wù)”也可以做類似的分解。“ATM與中央計(jì)算機(jī)交換關(guān)于事務(wù)的信息”這個(gè)候選的關(guān)聯(lián),實(shí)際上隱含了“ATM與中央計(jì)算機(jī)通信”和“在ATM上輸入事務(wù)”這兩個(gè)二元關(guān)聯(lián)。10.3.1確定類與對(duì)象(5)派生關(guān)聯(lián)應(yīng)該去掉那些可以用其他關(guān)聯(lián)定義的冗余關(guān)聯(lián)。例如,在ATM系統(tǒng)的例子中,“總行擁有多臺(tái)ATM”實(shí)質(zhì)上是“總行擁有中央計(jì)算機(jī)”和“ATM與中央計(jì)算機(jī)通信”這兩個(gè)關(guān)聯(lián)組合的結(jié)果。而“分行計(jì)算機(jī)維護(hù)賬戶”的實(shí)際含義是“分行保管賬戶”和“事務(wù)修改賬戶”。3.進(jìn)一步完善應(yīng)該進(jìn)一步完善經(jīng)篩選后余下的關(guān)聯(lián),通常從下述幾個(gè)方面進(jìn)行改進(jìn):10.3.1確定類與對(duì)象(1)正名好的名字是幫助讀者理解的關(guān)鍵因素之一。因此,應(yīng)該選擇含義更明確的名字作為關(guān)聯(lián)名。“分行提供分行計(jì)算機(jī)和柜員終端”不如改為“分行擁有分行計(jì)算機(jī)”和“分行擁有柜員終端”。(2)分解為了能夠適用于不同的關(guān)聯(lián),必要時(shí)應(yīng)該分解以前確定的類與對(duì)象。例如,在ATM系統(tǒng)中,應(yīng)該把“事務(wù)”分解成“遠(yuǎn)程事務(wù)”和“柜員事務(wù)”。10.3.1確定類與對(duì)象(3)補(bǔ)充遺漏的關(guān)聯(lián)就應(yīng)該及時(shí)補(bǔ)上。例如,在ATM系統(tǒng)中把“事務(wù)”分解成上述兩類之后,需要補(bǔ)充“柜員輸入柜員事務(wù)”、“柜員事務(wù)輸進(jìn)柜員終端”、“在ATM上輸入遠(yuǎn)程事務(wù)”和“遠(yuǎn)程事務(wù)由現(xiàn)金兌換卡授權(quán)”等關(guān)聯(lián)。(4)標(biāo)明重?cái)?shù)初步判定各個(gè)關(guān)聯(lián)的類型,并粗略確定關(guān)聯(lián)的重?cái)?shù)。下圖是經(jīng)上述分析過(guò)程之后得出的ATM系統(tǒng)原始的類圖。10.3.1確定類與對(duì)象圖10.3ATM系統(tǒng)原始的類圖10.3.3劃分主題應(yīng)該按照使不同主題內(nèi)的對(duì)象相互間依賴和交互最少的原則來(lái)確定主題。以ATM系統(tǒng)為例,可以把它劃分成總行(包含總行和中央計(jì)算機(jī)這兩個(gè)類)、分行(包含分行、分行計(jì)算機(jī)、柜員終端、柜員事務(wù)、柜員和賬戶等類)和ATM(包含ATM、遠(yuǎn)程事務(wù)、現(xiàn)金兌換卡和儲(chǔ)戶等類)等3個(gè)主題。10.3.4確定屬性屬性是對(duì)象的性質(zhì)。分析階段不用屬性來(lái)表示對(duì)象間的關(guān)系,使用關(guān)聯(lián)能夠表示兩個(gè)對(duì)象間的任何關(guān)系。確定屬性的過(guò)程包括分析和選擇兩個(gè)步驟。10.3.4確定屬性1.分析在需求中用名詞詞組表示屬性,例如,“汽車的顏色”或“光標(biāo)的位置”。往往用形容詞表示可枚舉的具體屬性值,例如,“紅色的”、“打開(kāi)的”。分析員還必須借助于領(lǐng)域知識(shí)和常識(shí)才能分析得出需要的屬性。應(yīng)該僅考慮與具體應(yīng)用直接相關(guān)的屬性,不要考慮那些超出所要解決的問(wèn)題范圍的屬性。在分析過(guò)程中應(yīng)該首先找出最重要的屬性,以后再逐漸把其余屬性增添進(jìn)去。(迭代)10.3.4確定屬性2.選擇認(rèn)真考察經(jīng)初步分析而確定下來(lái)的那些屬性,從中刪掉不正確的或不必要的屬性。(1)誤把對(duì)象當(dāng)作屬性如果某個(gè)實(shí)體的獨(dú)立存在比它的值更重要,則應(yīng)把它作為一個(gè)對(duì)象。在具體應(yīng)用領(lǐng)域中具有自身性質(zhì)的實(shí)體,必然是對(duì)象。10.3.4確定屬性(2)誤把關(guān)聯(lián)類的屬性當(dāng)作一般對(duì)象的屬性如果某個(gè)性質(zhì)依賴于某個(gè)關(guān)聯(lián)鏈,則該性質(zhì)是關(guān)聯(lián)類的屬性。在多對(duì)多關(guān)聯(lián)中,關(guān)聯(lián)類屬性很明顯,即使在以后的開(kāi)發(fā)階段中,也不能把它歸并成相互關(guān)聯(lián)的兩個(gè)對(duì)象中任一個(gè)的屬性。10.3.4確定屬性(3)把限定誤當(dāng)成屬性正確使用限定詞往往可以減少關(guān)聯(lián)的重?cái)?shù)。如果把某個(gè)屬性值固定下來(lái)以后能減少關(guān)聯(lián)的重?cái)?shù),則應(yīng)該考慮把這個(gè)屬性重新表述成一個(gè)限定詞。在ATM系統(tǒng)的例子中,“分行代碼”、“賬號(hào)”、“雇員號(hào)”、“站號(hào)”等都是限定詞。10.3.4確定屬性(4)誤把內(nèi)部狀態(tài)當(dāng)成了屬性如果某個(gè)性質(zhì)是對(duì)象的非公開(kāi)的內(nèi)部狀態(tài),則應(yīng)該從對(duì)象模型中刪掉這個(gè)屬性。(5)過(guò)于細(xì)化在分析階段應(yīng)該忽略那些對(duì)大多數(shù)操作都沒(méi)有影響的屬性。(6)存在不一致的屬性類應(yīng)該是簡(jiǎn)單而且一致的。如果得出一些看起來(lái)與其他屬性毫不相關(guān)的屬性,則應(yīng)該考慮把該類分解成兩個(gè)不同的類。10.3.5識(shí)別繼承關(guān)系一般說(shuō)來(lái),可以使用兩種方式建立繼承關(guān)系:自底向上:抽象出現(xiàn)有類的共同性質(zhì)泛化出父類,這個(gè)過(guò)程實(shí)質(zhì)上模擬了人類歸納思維過(guò)程。在ATM系統(tǒng)中,“遠(yuǎn)程事務(wù)”和“柜員事務(wù)”是類似的,可以泛化出父類“事務(wù)”;類似地,可以從“ATM”和“柜員終端”泛化出父類“輸入站”。10.3.5識(shí)別繼承關(guān)系自底向上也稱為從特殊類發(fā)現(xiàn)一般類。如下圖的例子:公司職員股東姓名身分證號(hào)碼……股份……職員工資……………………股東姓名身分證號(hào)碼股份…………職員姓名身分證號(hào)碼工資…………?10.3.5識(shí)別繼承關(guān)系(2)自頂向下:

把現(xiàn)有類細(xì)化成更具體的子類,這模擬了人類的演繹思維過(guò)程。利用多重繼承可以提高共享程度,但是同時(shí)也增加了概念上以及實(shí)現(xiàn)時(shí)的復(fù)雜程度。使用多重繼承機(jī)制時(shí),通常應(yīng)該指定一個(gè)主要父類,從它繼承大部分屬性和行為;次要父類只補(bǔ)充一些屬性和行為。10.3.5識(shí)別繼承關(guān)系自頂向下也稱為從一般類發(fā)現(xiàn)特殊類。公司職員股東姓名身分證號(hào)碼……股份……職員工資……公司職員姓名身分證號(hào)碼股份工資…………………………??10.3.6反復(fù)修改軟件開(kāi)發(fā)過(guò)程是一個(gè)迭代的過(guò)程。建模過(guò)程同理。面向?qū)ο蟮母拍詈头?hào)在整個(gè)開(kāi)發(fā)過(guò)程中都是一致的,更容易實(shí)現(xiàn)反復(fù)修改、逐步完善。有些細(xì)化工作是在建立了動(dòng)態(tài)模型和功能模型之后才進(jìn)行的。建模的步驟并不一定嚴(yán)格按照前面講述的次序進(jìn)行。10.3.6反復(fù)修改1.分解“現(xiàn)金兌換卡”類“現(xiàn)金兌換卡”有兩個(gè)相對(duì)獨(dú)立的功能,它既是鑒別儲(chǔ)戶使用ATM的權(quán)限的卡,又是ATM獲得分行代碼和卡號(hào)等數(shù)據(jù)的數(shù)據(jù)載體。因此把“現(xiàn)金兌換卡”類分解為“卡權(quán)限”和“現(xiàn)金兌換卡”兩個(gè)類。前一個(gè)類標(biāo)志儲(chǔ)戶訪問(wèn)賬戶的權(quán)限,后一個(gè)類是含有分行代碼和卡號(hào)的數(shù)據(jù)載體。多張現(xiàn)金兌換卡可能對(duì)應(yīng)著相同的訪問(wèn)權(quán)限。關(guān)聯(lián)10.3.6反復(fù)修改2.“事務(wù)”由“更新”組成一個(gè)事務(wù)包含對(duì)賬戶的若干次更新,更新指的是對(duì)賬戶所做的一個(gè)動(dòng)作(取款、存款或查詢)?!案隆彪m然代表一個(gè)動(dòng)作,但是它有自己的屬性(類型、金額等),應(yīng)該獨(dú)立存在,因此應(yīng)該把它作為類。3.把“分行”與“分行計(jì)算機(jī)”合并區(qū)分“分行”與“分行計(jì)算機(jī)”,對(duì)于本系統(tǒng)并沒(méi)有多大意義,為簡(jiǎn)單起見(jiàn),應(yīng)該把它們合并。類似地,合并“總行”和“中央計(jì)算機(jī)”。10.3.6反復(fù)修改取消沒(méi)有特殊屬性的特殊類。大學(xué)生研究生研究方向指導(dǎo)教師……學(xué)生姓名學(xué)號(hào)班級(jí)…………研究生研究方向指導(dǎo)教師……學(xué)生姓名學(xué)號(hào)班級(jí)…………10.3.6反復(fù)修改通過(guò)增加屬性簡(jiǎn)化一般-特殊結(jié)構(gòu)。人員…………男人…………女人……………………美國(guó)人…………日本人…………人員性別國(guó)籍…………中國(guó)人10.3.6反復(fù)修改兩種結(jié)構(gòu)的變通冷藏車…………汽車…………制冷設(shè)備…………冷藏車…………汽車…………制冷設(shè)備…………僅用一般-特殊結(jié)構(gòu)兩種結(jié)構(gòu)同用冷藏車…………汽車……………………僅用整體-部分結(jié)構(gòu)10.3.6反復(fù)修改用整體-部分結(jié)構(gòu)實(shí)現(xiàn)復(fù)用車床…………機(jī)床…………刨床…………起重機(jī)…………電動(dòng)機(jī)…………鉆床…………送料車…………10.4建立動(dòng)態(tài)模型第一步,編寫(xiě)典型交互行為的腳本。雖然腳本中不可能包括每個(gè)偶然事件,但是,至少必須保證不遺漏常見(jiàn)的交互行為。第二步,從腳本中提取出事件。確定觸發(fā)每個(gè)事件的動(dòng)作對(duì)象以及接受事件的目標(biāo)對(duì)象。第三步,排列事件發(fā)生的次序。確定每個(gè)對(duì)象可能有的狀態(tài)及狀態(tài)間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它們。最后,比較各個(gè)對(duì)象的狀態(tài)圖。檢查它們之間的一致性,確保事件之間的匹配。10.4.1編寫(xiě)腳本所謂“腳本”,原意是指“表演戲曲、話劇,拍攝電影、電視劇等所依據(jù)的本子,里面記載臺(tái)詞、故事情節(jié)等”。在建立動(dòng)態(tài)模型的過(guò)程中,腳本是指系統(tǒng)在某一執(zhí)行期間內(nèi)出現(xiàn)的一系列事件。腳本描述用戶與目標(biāo)系統(tǒng)之間的一個(gè)或多個(gè)典型的交互過(guò)程,以便對(duì)目標(biāo)系統(tǒng)的行為有更具體的認(rèn)識(shí)。編寫(xiě)腳本有助于確保整個(gè)交互過(guò)程的正確性的和清晰性。10.4.1編寫(xiě)腳本編寫(xiě)腳本時(shí),首先編寫(xiě)正常情況的腳本。然后,考慮特殊情況,例如輸入或輸出的數(shù)據(jù)為最大值(或最小值)。最后,考慮出錯(cuò)情況。例如,輸入的值為非法值或響應(yīng)失敗。對(duì)大多數(shù)交互式系統(tǒng)來(lái)說(shuō),出錯(cuò)處理都是最難實(shí)現(xiàn)的部分。如果可能,應(yīng)該允許用戶“異常中止”一個(gè)操作或“取消”一個(gè)操作。此外,還應(yīng)該提供諸如“幫助”和狀態(tài)查詢之類的在基本交互行為之上的“通用”交互行為。10.4.1編寫(xiě)腳本腳本描述事件序列。每當(dāng)系統(tǒng)中的對(duì)象與用戶交換信息時(shí),就發(fā)生一個(gè)事件。所交換的信息值就是該事件的參數(shù)(例如,“輸入密碼”事件的參數(shù)是所輸入的密碼)。也有許多事件是無(wú)參數(shù)的,這樣的事件僅傳遞一個(gè)信息——該事件已經(jīng)發(fā)生了。對(duì)于每個(gè)事件,都應(yīng)該指明觸發(fā)該事件的動(dòng)作對(duì)象(例如,系統(tǒng)、用戶或其他外部事物)、接受事件的目標(biāo)對(duì)象以及該事件的參數(shù)。10.4.2設(shè)想用戶界面大多數(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)的控制邏輯。10.4.2設(shè)想用戶界面圖10.7ATM的界面格式10.4.3畫(huà)事件跟蹤圖完整、正確的腳本為建立動(dòng)態(tài)模型奠定了必要的基礎(chǔ)。為了有助于建立動(dòng)態(tài)模型,通常在畫(huà)狀態(tài)圖之前先畫(huà)出事件跟蹤圖。為此首先需要進(jìn)一步明確事件及事件與對(duì)象的關(guān)系。10.4.3畫(huà)事件跟蹤圖1.確定事件應(yīng)該仔細(xì)分析每個(gè)腳本,以便從中提取出所有外部事件。事件包括系統(tǒng)與用戶交互的所有信號(hào)、輸入、輸出、中斷、動(dòng)作等。從腳本中容易找出正常事件,但是不要遺漏了異常事件和出錯(cuò)條件。傳遞信息的對(duì)象的動(dòng)作也是事件。例如,儲(chǔ)戶插入現(xiàn)金兌換卡、儲(chǔ)戶輸入密碼、ATM吐出現(xiàn)金等都是事件。大多數(shù)對(duì)象到對(duì)象的交互行為都對(duì)應(yīng)著事件。10.4.3畫(huà)事件跟蹤圖應(yīng)該把對(duì)控制流產(chǎn)生相同效果的那些事件組合在一起作為一類事件,并給它們?nèi)∫粋€(gè)惟一的名字。例如,“吐出現(xiàn)金”是一個(gè)事件類,盡管這類事件中的每個(gè)個(gè)別事件的參數(shù)值不同(吐出的現(xiàn)金數(shù)額不同),然而這并不影響控制流。10.4.3畫(huà)事件跟蹤圖2.畫(huà)出事件跟蹤圖從腳本中提取出各類事件并確定了每類事件的發(fā)送對(duì)象和接受對(duì)象之后,就可以用事件跟蹤圖把事件序列以及事件與對(duì)象的關(guān)系,形象、清晰地表示出來(lái)。事件跟蹤圖實(shí)質(zhì)上是擴(kuò)充的腳本,可認(rèn)為事件跟蹤圖是簡(jiǎn)化的UML順序圖。事件跟蹤圖舉例:打電話掛斷電話電話切斷掛斷電話通話通話停止振鈴?fù)V拐疋忢憫?yīng)電話電話振鈴鈴聲撥號(hào)(3)撥號(hào)(7撥號(hào)(3)撥號(hào)(2)電話忙音結(jié)束撥號(hào)(8)電話忙音開(kāi)始拿起聽(tīng)筒電話線接電話者打電話者存量為零找零扣減存量燈亮余額飲料結(jié)算選擇鍵#選擇按紐燈亮總金額夠顯示總額總額累加投入硬幣金額計(jì)算器存量計(jì)算器顧客售貨機(jī)選擇鍵售完燈舉例:飲料自動(dòng)售貨機(jī)系統(tǒng)的時(shí)序圖10.4.4畫(huà)狀態(tài)圖狀態(tài)圖描繪事件與對(duì)象狀態(tài)的關(guān)系。當(dāng)對(duì)象接受了一個(gè)事件以后,它的下個(gè)狀態(tài)取決于當(dāng)前狀態(tài)及所接受的事件。由事件引起的狀態(tài)改變稱為“轉(zhuǎn)換”。通常,用一張狀態(tài)圖描繪一類對(duì)象的行為,它確定了由事件序列引出的狀態(tài)序列。但是,也不是任何一個(gè)類都需要有一張狀態(tài)圖描繪它的行為。系統(tǒng)分析員應(yīng)該集中精力僅考慮具有重要交互行為的那些類。10.4.4畫(huà)狀態(tài)圖從一張事件跟蹤圖出發(fā)畫(huà)狀態(tài)圖時(shí),應(yīng)該集中精力僅考慮影響一類對(duì)象的事件,也就是說(shuō),僅考慮事件跟蹤圖中指向某條豎線的那些箭頭線。如果同一個(gè)對(duì)象對(duì)相同事件的響應(yīng)不同,則這個(gè)對(duì)象處在不同狀態(tài)。應(yīng)該盡量給每個(gè)狀態(tài)取個(gè)有意義的名字。通常,從事件跟蹤圖中當(dāng)前考慮的豎線射出的箭頭線,是這條豎線代表的對(duì)象達(dá)到某個(gè)狀態(tài)時(shí)所做的行為(往往是引起另一類對(duì)象狀態(tài)轉(zhuǎn)換的事件)。10.4.4畫(huà)狀態(tài)圖根據(jù)一張事件跟蹤圖畫(huà)出狀態(tài)圖之后,再把其他腳本的事件跟蹤圖合并到已畫(huà)出的狀態(tài)圖中。為此需在事件跟蹤圖中找出以前考慮過(guò)的腳本的分支點(diǎn)例如“驗(yàn)證賬戶”就是一個(gè)分支點(diǎn),因?yàn)轵?yàn)證的結(jié)果可能是“賬戶有效”,也可能是“無(wú)效賬戶”然后把其他腳本中的事件序列并入已有的狀態(tài)圖中,作為一條可選的路徑。10.4.4畫(huà)狀態(tài)圖考慮完正常事件之后再考慮邊界情況和特殊情況,其中包括在不適當(dāng)時(shí)候發(fā)生的事件。有時(shí)用戶不能做出快速響應(yīng),然而某些資源又必須及時(shí)收回,于是在一定間隔后就產(chǎn)生了“超時(shí)”事件。對(duì)用戶出錯(cuò)情況往往需要花費(fèi)很多精力處理,但是,出錯(cuò)處理是不能省略的。10.4.4畫(huà)狀態(tài)圖圖10.10總行類的狀態(tài)圖10.4.4畫(huà)狀態(tài)圖圖10.11分行類的狀態(tài)圖10.4.5審查動(dòng)態(tài)模型各個(gè)類的狀態(tài)圖通過(guò)共享事件合并起來(lái),構(gòu)成了系統(tǒng)的動(dòng)態(tài)模型。在完成了每個(gè)具有重要交互行為的類的狀態(tài)圖之后,應(yīng)該檢查系統(tǒng)級(jí)的完整性和一致性。每個(gè)事件都應(yīng)該既有發(fā)送對(duì)象又有接受對(duì)象,當(dāng)然,有時(shí)發(fā)送者和接受者是同一個(gè)對(duì)象。對(duì)于沒(méi)有前驅(qū)或沒(méi)有后繼的狀態(tài)應(yīng)該著重審查,如果這個(gè)狀態(tài)既不是交互序列的起點(diǎn)也不是終點(diǎn),則發(fā)現(xiàn)了一個(gè)錯(cuò)誤。10.4.5審查動(dòng)態(tài)模型應(yīng)該審查每個(gè)事件,跟蹤它對(duì)系統(tǒng)中各個(gè)對(duì)象所產(chǎn)生的效果,以保證它們與每個(gè)腳本都匹配。在總行類的狀態(tài)圖中,事件“分行代碼錯(cuò)”是由總行發(fā)出的,但是在ATM類的狀態(tài)圖中并沒(méi)有一個(gè)狀態(tài)接受這個(gè)事件。因此,在ATM類的狀態(tài)圖中應(yīng)該再補(bǔ)充一個(gè)狀態(tài)“do/顯示分行代碼錯(cuò)信息”,它接受由前驅(qū)狀態(tài)“do/驗(yàn)證賬戶”發(fā)出的事件“分行代碼錯(cuò)”,它的后續(xù)狀態(tài)是“退卡”。10.5建立功能模型功能模型表明了系統(tǒng)中數(shù)據(jù)之間的依賴關(guān)系,以及有關(guān)的數(shù)據(jù)處理功能,它由一組數(shù)據(jù)流圖組成。其中的處理功能可以用IPO圖(或表)、

溫馨提示

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