《UML面向?qū)ο蠓治?、建模與設(shè)計(jì)》課件 第11、12章 狀態(tài)圖、活動圖_第1頁
《UML面向?qū)ο蠓治?、建模與設(shè)計(jì)》課件 第11、12章 狀態(tài)圖、活動圖_第2頁
《UML面向?qū)ο蠓治?、建模與設(shè)計(jì)》課件 第11、12章 狀態(tài)圖、活動圖_第3頁
《UML面向?qū)ο蠓治?、建模與設(shè)計(jì)》課件 第11、12章 狀態(tài)圖、活動圖_第4頁
《UML面向?qū)ο蠓治?、建模與設(shè)計(jì)》課件 第11、12章 狀態(tài)圖、活動圖_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

狀態(tài)圖

11.1狀態(tài)圖的基本概念狀態(tài)機(jī)狀態(tài)圖狀態(tài)機(jī)狀態(tài)機(jī)是一種行為,它說明對象在其生命周期中響應(yīng)事件所經(jīng)歷的狀態(tài)變化序列以及對那些時間的響應(yīng)。一般情況下,一個狀態(tài)機(jī)依附于一個類,用來描述這個類的實(shí)例的狀態(tài)及其轉(zhuǎn)換,和對接收到的事件所做出的響應(yīng)。此外,狀態(tài)機(jī)也可以依附于用例、操作、協(xié)作等元素上,描述它們的執(zhí)行過程。狀態(tài)機(jī)從對象的初始狀態(tài)開始,響應(yīng)事件并執(zhí)行某些動作,從而引起狀態(tài)的轉(zhuǎn)換;在新狀態(tài)下又繼續(xù)響應(yīng)事件并執(zhí)行動作,如此循環(huán)進(jìn)行到對象的終結(jié)狀態(tài)。狀態(tài)機(jī)狀態(tài)機(jī)主要由狀態(tài)、轉(zhuǎn)換、事件、動作和活動5部分組成。狀態(tài)表示對象的生命周期中的一種條件或情況。轉(zhuǎn)換表示兩種狀態(tài)間的一種關(guān)系。事件表示在某一時間與空間下所發(fā)生的有意義的事情。動作表示一個可執(zhí)行的原子操作,是UML能夠表達(dá)的最小計(jì)算單元活動表示狀態(tài)機(jī)中的非原子執(zhí)行,一般由一系列動作組成。狀態(tài)圖狀態(tài)圖,UML2規(guī)范后稱狀態(tài)機(jī)圖,是一個展示狀態(tài)機(jī)的圖。狀態(tài)圖基本上就是一個狀態(tài)機(jī)中元素的投影,這也就意味著狀態(tài)圖包括狀態(tài)機(jī)的所有特征。狀態(tài)圖顯示了一個對象如何根據(jù)當(dāng)前狀態(tài)對不同事件做出反應(yīng)的動態(tài)行為。狀態(tài)圖主要由狀態(tài)和轉(zhuǎn)換兩種元素組成。狀態(tài)圖狀態(tài)圖狀態(tài)圖用于對系統(tǒng)的動態(tài)方面進(jìn)行建模,適合描述一個對象在其生命周期中的各種狀態(tài)及狀態(tài)的轉(zhuǎn)換。狀態(tài)圖的作用主要體現(xiàn)在以下幾點(diǎn):狀態(tài)圖描述了狀態(tài)轉(zhuǎn)換時所需的觸發(fā)事件和監(jiān)護(hù)條件等因素,有利于開發(fā)人員捕捉程序中需要的事件。狀態(tài)圖清楚地描述了狀態(tài)之間的轉(zhuǎn)換及其順序,這樣就可以方便地看出事件的執(zhí)行順序,狀態(tài)圖的使用節(jié)省了大量的描述文字。清晰的事件順序有利于開發(fā)人員在開發(fā)程序時避免出現(xiàn)事件錯序的情況。狀態(tài)圖通過判定可以更好地描述工作流在不同的條件下而出現(xiàn)的分支。11.2狀態(tài)圖的組成簡單狀態(tài)轉(zhuǎn)換偽狀態(tài)簡單狀態(tài)狀態(tài)是狀態(tài)圖的重要組成部分,它描述了一個對象穩(wěn)定在的某一個持續(xù)過程或所處狀況,與動態(tài)行為的執(zhí)行所產(chǎn)生的結(jié)果。當(dāng)對象滿足某一狀態(tài)的條件時,該狀態(tài)被稱為激活的。在UML中,狀態(tài)分為簡單狀態(tài)與復(fù)合狀態(tài)。簡單狀態(tài)就是沒有嵌套的狀態(tài)。初態(tài)和終態(tài)是兩個特殊的狀態(tài),分別表示狀態(tài)機(jī)的入口狀態(tài)和出口狀態(tài)。對于一個不含嵌套結(jié)構(gòu)的狀態(tài)機(jī),只能有一個初態(tài),可以有一個或多個終態(tài)甚至沒有終態(tài)。簡單狀態(tài)簡單狀態(tài)狀態(tài)一般由狀態(tài)名稱、子狀態(tài)、入口動作和出口動作、內(nèi)部執(zhí)行活動、內(nèi)部轉(zhuǎn)換和可推遲事件組成。對于簡單狀態(tài)而言,不會有子狀態(tài)。狀態(tài)名稱:可以把一個狀態(tài)與其他狀態(tài)分別開來,即狀態(tài)名稱必須在當(dāng)前層次內(nèi)保持唯一。沒有名稱的狀態(tài)被稱為匿名狀態(tài)。入口動作與出口動作:由其它狀態(tài)轉(zhuǎn)移到當(dāng)前狀態(tài)或從當(dāng)前狀態(tài)轉(zhuǎn)移到其它狀態(tài)時要附帶完成的動作。表示為“entry/動作表達(dá)式”和“exit/動作表達(dá)式”。簡單狀態(tài)內(nèi)部執(zhí)行活動:當(dāng)對象進(jìn)入一個狀態(tài)時,在執(zhí)行完入口動作后就開始執(zhí)行該活動。使用“do/活動表達(dá)式”來表示。內(nèi)部轉(zhuǎn)換:指的是不導(dǎo)致狀態(tài)改變的轉(zhuǎn)換。內(nèi)部轉(zhuǎn)換只有源狀態(tài)而沒有目標(biāo)狀態(tài)。表示為“事件名稱(事件參數(shù))/活動表達(dá)式”??赏七t事件:不會觸發(fā)狀態(tài)的轉(zhuǎn)換,且當(dāng)對象處于該狀態(tài)時事件可能會被推遲,但不會丟失。格式為“事件名稱/defer”。轉(zhuǎn)換轉(zhuǎn)換是兩種狀態(tài)間的一種關(guān)系。它指明當(dāng)特定事件發(fā)生或特定條件滿足時,處于某狀態(tài)(源狀態(tài))的對象將執(zhí)行某一動作或活動并進(jìn)入另一狀態(tài)(目標(biāo)狀態(tài))。轉(zhuǎn)換表示為從源狀態(tài)指向目標(biāo)狀態(tài)的實(shí)線箭頭,并附有轉(zhuǎn)換的標(biāo)簽。轉(zhuǎn)換的標(biāo)簽格式如下:?轉(zhuǎn)換名稱:?opt

事件名稱opt?(參數(shù)列表)?opt?[監(jiān)護(hù)條件]?opt?/效果列表?opt轉(zhuǎn)換——轉(zhuǎn)換名轉(zhuǎn)換名稱是轉(zhuǎn)換的標(biāo)識符。在實(shí)際使用中,為了防止轉(zhuǎn)換名稱與轉(zhuǎn)換的觸發(fā)器或監(jiān)護(hù)條件混淆,一般不必為轉(zhuǎn)換命名。對于一個轉(zhuǎn)換,除了源狀態(tài)、目標(biāo)狀態(tài)外,還要有事件、監(jiān)護(hù)條件和效果列表等內(nèi)容。這三個部分的內(nèi)容對轉(zhuǎn)換不是必需的,在使用時要根據(jù)轉(zhuǎn)換所表達(dá)的具體語義來添加相應(yīng)內(nèi)容。轉(zhuǎn)換——事件事件是在某一時間與空間下所發(fā)生的有意義的事情,是系統(tǒng)執(zhí)行中發(fā)生的值得建模的事物。事件一般被狀態(tài)或轉(zhuǎn)換所發(fā)送和接收。在轉(zhuǎn)換中被接收的事件也被稱為該轉(zhuǎn)換的觸發(fā)器或觸發(fā)事件。事件包含一個參數(shù)列表(可能為空),用于從事件的產(chǎn)生者向其接收者傳遞信息。對應(yīng)于觸發(fā)器轉(zhuǎn)換,沒有明確的觸發(fā)器的轉(zhuǎn)換成為結(jié)束轉(zhuǎn)換或無觸發(fā)器轉(zhuǎn)換,是在狀態(tài)的內(nèi)部活動執(zhí)行完畢后隱式觸發(fā)的。轉(zhuǎn)換——事件能夠在觸發(fā)器中接收的事件有以下四種:調(diào)用事件:調(diào)用事件表示對象接收到一個調(diào)用操作的請求。其期待的結(jié)果是事件的接收者觸發(fā)一個轉(zhuǎn)換并執(zhí)行相應(yīng)的操作。改變事件:改變事件的發(fā)生依賴于事件中某個表達(dá)式所表達(dá)的布爾條件。改變事件沒有參數(shù),要一直等到條件被滿足才能發(fā)生。信號事件:信號由一個對象準(zhǔn)確地送給另一個或一組對象。發(fā)送給一組對象的信號可能觸發(fā)每個對象的不同轉(zhuǎn)換。時間事件:時間事件的發(fā)生依賴于事件中的一個時間表達(dá)式。比如,可以讓對象進(jìn)入某狀態(tài)后經(jīng)過一段給定的時間或到達(dá)某個絕對時間后發(fā)生該事件。轉(zhuǎn)換——事件轉(zhuǎn)換——監(jiān)護(hù)條件監(jiān)護(hù)條件是一個轉(zhuǎn)換被激發(fā)之前必須滿足的一個條件。監(jiān)護(hù)條件是一個布爾表達(dá)式,可以根據(jù)觸發(fā)器事件的參數(shù)、屬性和狀態(tài)機(jī)所描述的對象的鏈接等寫成。當(dāng)轉(zhuǎn)換接收到觸發(fā)事件后,只有監(jiān)護(hù)條件為真,轉(zhuǎn)換才能被激活。對監(jiān)護(hù)條件的檢驗(yàn)是觸發(fā)器計(jì)算過程的一部分,對于每個事件監(jiān)護(hù)條件只檢查一次。如果事件被處理時監(jiān)護(hù)條件為假,那么除非再次接收到一個觸發(fā)事件,將不會再重新計(jì)算監(jiān)護(hù)條件的值。轉(zhuǎn)換——效果列表效果列表是一個過程表達(dá)式,在轉(zhuǎn)換被激活時執(zhí)行,表示轉(zhuǎn)換附加的效果。效果列表包括多個動作,可以根據(jù)操作、屬性、擁有對象的連接、觸發(fā)器事件的參數(shù)等寫成。動作可以是一個賦值語句、算術(shù)運(yùn)算、發(fā)送事件、調(diào)用對象的屬性或操作、創(chuàng)建或銷毀對象等。效果的表達(dá)語法與其實(shí)現(xiàn)的具體內(nèi)容有關(guān)。偽狀態(tài)偽狀態(tài)指的是在狀態(tài)機(jī)中具有狀態(tài)的形式,卻具有特殊行為的頂點(diǎn)。當(dāng)一個偽狀態(tài)處于活動時,系統(tǒng)不會處理事件,而是瞬間自動轉(zhuǎn)換到另一個狀態(tài),并且這種轉(zhuǎn)換是沒有事件進(jìn)行顯式觸發(fā)的。最常見的偽狀態(tài)包括初態(tài)、選擇、分叉與結(jié)合、歷史狀態(tài)等。初態(tài):初態(tài)實(shí)際上不是一個真正的狀態(tài),它更像是狀態(tài)機(jī)的入口。初態(tài)的具體語義概念是模糊的且是瞬時的,不能存在觸發(fā)器進(jìn)行觸發(fā),否則對象將可能會長時間停留在一個語義不明的初態(tài)中。偽狀態(tài)選擇是狀態(tài)機(jī)中的一個偽狀態(tài)節(jié)點(diǎn),用于表達(dá)狀態(tài)機(jī)中的分支結(jié)構(gòu)。一個選擇節(jié)點(diǎn)將一個轉(zhuǎn)換分割為兩個片段,即將觸發(fā)事件與監(jiān)護(hù)條件分離。選擇節(jié)點(diǎn)不同分支上的監(jiān)護(hù)條件應(yīng)該覆蓋所有情況,否則狀態(tài)機(jī)將不知道如何運(yùn)行。11.3復(fù)合狀態(tài)復(fù)合狀態(tài)是指包含有一個或多個嵌套狀態(tài)機(jī)的狀態(tài)。順序復(fù)合狀態(tài):當(dāng)順序復(fù)合狀態(tài)被激活時,只有一個子狀態(tài)會被激活。并發(fā)復(fù)合狀態(tài):復(fù)合狀態(tài)中包括兩個或多個并發(fā)執(zhí)行的子狀態(tài)機(jī)。在復(fù)合狀態(tài)中,我們可以先將一部分細(xì)小的狀態(tài)組合成一個狀態(tài)機(jī),把這個新的狀態(tài)機(jī)作為總狀態(tài)圖中的一個復(fù)合狀態(tài)來呈現(xiàn)。順序復(fù)合狀態(tài)順序復(fù)合狀態(tài)又被稱為非正交狀態(tài),是僅含一個狀態(tài)機(jī)的復(fù)合狀態(tài)。當(dāng)順序復(fù)合狀態(tài)被激活時,只有一個子狀態(tài)會被激活。它只增加了一層子結(jié)構(gòu),沒有增加額外的并發(fā)性。并發(fā)復(fù)合狀態(tài)并發(fā)復(fù)合狀態(tài),也稱正交復(fù)合狀態(tài),是包括兩個或多個并發(fā)執(zhí)行的子狀態(tài)機(jī)的復(fù)合狀態(tài)。并發(fā)復(fù)合狀態(tài)將復(fù)合狀態(tài)分成若干個正交區(qū)域,每個區(qū)域都有一個相對獨(dú)立的子狀態(tài)機(jī)。如果該并發(fā)復(fù)合狀態(tài)是激活的,那么該狀態(tài)中每個區(qū)域都將有一個狀態(tài)是激活的。歷史狀態(tài)歷史狀態(tài)是應(yīng)用于復(fù)合狀態(tài)的一種偽狀態(tài),它代表上次離開該復(fù)合狀態(tài)時的最后一個子狀態(tài)。當(dāng)一個來自于復(fù)合狀態(tài)外的轉(zhuǎn)換為復(fù)合狀態(tài)內(nèi)的歷史狀態(tài)時,將使歷史狀態(tài)所記錄的子狀態(tài)被激活。深歷史狀態(tài)保存的更深的嵌套層次中的子狀態(tài)。11.4狀態(tài)圖的建模技術(shù)為對象的生命周期建模確定狀態(tài)機(jī)的語境。設(shè)置狀態(tài)機(jī)的初態(tài)和終態(tài)。決定該對象的狀態(tài)機(jī)中可能需要響應(yīng)的事件。從初態(tài)到終態(tài),列出這個對象可能處于的所有頂層狀態(tài)。用轉(zhuǎn)移將這些狀態(tài)連接起來,明確轉(zhuǎn)移的觸發(fā)器和監(jiān)護(hù)條件,接著向轉(zhuǎn)移中添加效果動作。11.4狀態(tài)圖的建模技術(shù)識別狀態(tài)是否需要有入口動作和出口動作。如果需要,使用子狀態(tài)來對頂層狀態(tài)進(jìn)行嵌套。檢查狀態(tài)機(jī)中提供的事件是否與所期望的相匹配;檢查所有事件是否都已經(jīng)被狀態(tài)機(jī)所處理。檢查狀態(tài)機(jī)中的動作是否能由類或?qū)ο蟮年P(guān)系、操作等支持。跟蹤狀態(tài)機(jī),確保狀態(tài)機(jī)是良構(gòu)的,即不存在無法到達(dá)的狀態(tài),也不會發(fā)生停機(jī)。11.5實(shí)驗(yàn):使用Rose繪制狀態(tài)圖11.5.1狀態(tài)圖的Rose操作11.5.2繪制機(jī)票預(yù)訂系統(tǒng)中“航班”類的狀態(tài)圖活動圖

12.1活動圖基本概念活動圖是UML中一種重要的用于表達(dá)系統(tǒng)動態(tài)特性的圖?;顒訄D的作用是描述一系列具體動態(tài)過程的執(zhí)行邏輯,展現(xiàn)活動和活動之間轉(zhuǎn)移的控制流,并且它采用一種著重邏輯過程的方式來敘述。在對軟件密集系統(tǒng)建模的時候,有時需要詳細(xì)地模擬系統(tǒng)在運(yùn)作時的業(yè)務(wù)流程。面對這種需要,我們可以分析對象間發(fā)生的活動和觸發(fā)條件,選用活動圖對這些動態(tài)方面進(jìn)行建模?;顒訄D的主要組成元素包括動作、活動、動作流、分支與合并、分叉與匯合、泳道和對象流等。12.1活動圖基本概念活動圖組成元素動作和活動節(jié)點(diǎn)開始和終止控制流判斷節(jié)點(diǎn)合并節(jié)點(diǎn)泳道動作和活動節(jié)點(diǎn)動作代表一個原子操作,操作可能是任何合法的行為。動作可以是并且不限于:創(chuàng)建或刪除對象、發(fā)送消息、調(diào)用接口,甚至數(shù)學(xué)運(yùn)算以及返回表達(dá)式的求值結(jié)果?;顒庸?jié)點(diǎn)是一系列動作,主要用于實(shí)現(xiàn)動作序列的簡化和動作圖的嵌套。活動節(jié)點(diǎn)在圖例上的表達(dá)方式和動作相同。開始和終止活動圖中的開始和終止是兩個標(biāo)記符號,分別標(biāo)記了業(yè)務(wù)流程的起始位置和結(jié)束位置?;顒訄D中必須有且僅有一個開始標(biāo)記,一般至少有一個結(jié)束標(biāo)記。(存在一些特殊的無窮過程不存在終止標(biāo)記。)控制流控制流是活動圖中用于標(biāo)示控制路徑的一種符號。它負(fù)責(zé)當(dāng)一個動作或活動節(jié)點(diǎn)執(zhí)行完畢后,將執(zhí)行主體從當(dāng)前已完畢的節(jié)點(diǎn)轉(zhuǎn)移到過程的下一個動作或動作節(jié)點(diǎn)。控制流從活動圖的開始標(biāo)記開始運(yùn)行,經(jīng)過順序、分支等結(jié)構(gòu)引導(dǎo)著各個動作的連續(xù)執(zhí)行。判斷節(jié)點(diǎn)判斷節(jié)點(diǎn)是活動圖中進(jìn)行邏輯判斷、并創(chuàng)造分支的一種方法。判斷節(jié)點(diǎn)具有一個進(jìn)入控制流和至少兩個導(dǎo)出控制流。判斷節(jié)點(diǎn)具有多個導(dǎo)出流,對于每條導(dǎo)出流而言,應(yīng)當(dāng)在表示該控制流的箭頭上附加控制條件。合并節(jié)點(diǎn)合并節(jié)點(diǎn)將多個控制流進(jìn)行合并,并統(tǒng)一導(dǎo)出到同一個離開控制流。合并節(jié)點(diǎn)僅有邏輯意義而沒有時間和數(shù)據(jù)上的意義:幾個動作都指向同一個合并節(jié)點(diǎn)也并不意味著這些動作要在進(jìn)入之后互相等待或進(jìn)行同步數(shù)據(jù)之類的操作。泳道泳道是將活動中的具體活動按照負(fù)責(zé)進(jìn)行該活動的對象進(jìn)行分區(qū),一條泳道中的所有活動由同一個對象來執(zhí)行。除了以上的對線性流程進(jìn)行分區(qū)以外,使用泳道表示法可以更清晰地表示并發(fā)。12.3活動圖的高級概念并發(fā)分叉節(jié)點(diǎn)結(jié)合節(jié)點(diǎn)對象流擴(kuò)展區(qū)域分叉節(jié)點(diǎn)與結(jié)合節(jié)點(diǎn)分叉節(jié)點(diǎn)是從線性流程進(jìn)入并發(fā)過程的過渡節(jié)點(diǎn),它擁有一個進(jìn)入控制流和多個離開控制流。分叉節(jié)點(diǎn)的所有離開流程是并發(fā)關(guān)系,即分叉節(jié)點(diǎn)使執(zhí)行過程進(jìn)入多個動作并發(fā)的狀態(tài)。結(jié)合節(jié)點(diǎn)是將多個并發(fā)控制流收束回同一流程的節(jié)點(diǎn)標(biāo)記,功能上與合并節(jié)點(diǎn)類似。結(jié)合節(jié)點(diǎn)的各個進(jìn)入控制流間具有并發(fā)關(guān)系,它們在系統(tǒng)中同時運(yùn)行。對象流與擴(kuò)展區(qū)域?qū)ο罅魇荱ML為填補(bǔ)活動圖與面向?qū)ο笏枷胫g的疏離而出現(xiàn)的。如果需要在活動圖中表現(xiàn)對象流,則首先需要繪制出泳道,且對象應(yīng)該作為泳道的負(fù)責(zé)對象出現(xiàn)。擴(kuò)展區(qū)域是表示過程中的某個活動片段的模型。擴(kuò)展區(qū)域可以將一個需要體現(xiàn)在活動圖中的循環(huán)過程進(jìn)行提?。ú恍枰w現(xiàn)在活動圖中的,可以直接使用活動節(jié)點(diǎn)來略寫)。12.4活動圖建模技術(shù)對業(yè)務(wù)流程建模選擇一個將要描述的重要過程,過程中盡量涉及數(shù)量少但是關(guān)鍵的對象或參與者,將無關(guān)或關(guān)聯(lián)很小的對象排除在外,為每一個對象或參與者繪制泳道。在總體業(yè)務(wù)流程中提取關(guān)鍵的動作或活動節(jié)點(diǎn),并且將他們與對象或參與者相對應(yīng);若發(fā)現(xiàn)有些動作無法對應(yīng),則考慮動作是否在這個流程中起關(guān)鍵作用,或者是否遺漏了某些對象或參與者。規(guī)定初始狀態(tài);確定過程可能的結(jié)束位置,為活動圖添加開始和結(jié)束節(jié)點(diǎn)。12.4活動圖建模技術(shù)從業(yè)務(wù)流程的開始節(jié)點(diǎn)開始,把過程中發(fā)生的動作按事件順序排列,依次把這些動作添加到活動圖中。把局部的過于復(fù)雜的動作序列加以總結(jié),繪制成一個活動節(jié)點(diǎn);如果需要,把這個動作序列使用另外的活動圖進(jìn)行建模。找出連接這些動作和活動節(jié)點(diǎn)的控制流,并且準(zhǔn)確找到過程中的分支、分叉、合并與結(jié)合節(jié)點(diǎn)。如果業(yè)務(wù)流程中有一些關(guān)鍵對象的值或狀態(tài)需要加以描述,使用對象流添加這些對象在某些動作或活動節(jié)點(diǎn)前后的狀態(tài)描述。12.4活動圖建模技術(shù)對用例交互建模選擇概念用例

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論