軟件架構(gòu)和建模課件_第1頁
軟件架構(gòu)和建模課件_第2頁
軟件架構(gòu)和建模課件_第3頁
軟件架構(gòu)和建模課件_第4頁
軟件架構(gòu)和建模課件_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件架構(gòu)與建模軟件架構(gòu)與建?;仡檿r(shí)序圖協(xié)作圖狀態(tài)圖回顧時(shí)序圖內(nèi)容安排基本概念體系結(jié)構(gòu)風(fēng)格包與包圖組件圖部署圖小結(jié)與實(shí)驗(yàn)內(nèi)容安排基本概念建筑的例子—狗舍一個(gè)人搭建,需要最小化建模簡(jiǎn)單的過程簡(jiǎn)單的工具建筑的例子—狗舍一個(gè)人搭建,需要建筑的例子—住房一個(gè)團(tuán)隊(duì)高效和適時(shí)地建造,需要仔細(xì)的建模良好定義的過程良好的工具建筑的例子—住房一個(gè)團(tuán)隊(duì)高效和適時(shí)地建造,需要建筑的例子—摩天大樓建筑的例子—摩天大樓機(jī)構(gòu)組織的例子—家庭作坊機(jī)構(gòu)組織的例子—家庭作坊機(jī)構(gòu)組織的例子—中小公司機(jī)構(gòu)組織的例子—中小公司機(jī)構(gòu)組織的例子—跨國(guó)集團(tuán)機(jī)構(gòu)組織的例子—跨國(guó)集團(tuán)軟件開發(fā)—單槍匹馬軟件開發(fā)—單槍匹馬軟件開發(fā)—團(tuán)隊(duì)開發(fā)軟件開發(fā)—團(tuán)隊(duì)開發(fā)軟件開發(fā)—大型復(fù)雜系統(tǒng)的開發(fā)軟件開發(fā)—大型復(fù)雜系統(tǒng)的開發(fā)系統(tǒng)架構(gòu)認(rèn)識(shí)與實(shí)踐程序=數(shù)據(jù)結(jié)構(gòu)+算法程序=對(duì)象+對(duì)象系統(tǒng)=構(gòu)件+構(gòu)件系統(tǒng)=組件+連接件整體結(jié)構(gòu)>技術(shù)細(xì)節(jié)性能>功能系統(tǒng)架構(gòu)認(rèn)識(shí)與實(shí)踐程序=數(shù)據(jù)結(jié)構(gòu)+算法軟件體系結(jié)構(gòu)定義軟件體系結(jié)構(gòu)將多組類結(jié)合起來,形成一個(gè)有機(jī)的整體,并且展示各部分之間結(jié)構(gòu)上的相互關(guān)系.構(gòu)件(components)連接件(connectors)配置(configurations)軟件體系結(jié)構(gòu)定義軟件體系結(jié)構(gòu)將多組類結(jié)合起來,形成一個(gè)有機(jī)的構(gòu)件構(gòu)件是指語義完整、語法正確和有可復(fù)用價(jià)值的單位軟件,是軟件復(fù)用過程中可以明確辨識(shí)的元素;結(jié)構(gòu)上,它是語義描述、通訊接口和實(shí)現(xiàn)代碼的復(fù)合體。構(gòu)件構(gòu)件是指語義完整、語法正確和有可復(fù)用價(jià)值的單位軟件,是軟構(gòu)件組成構(gòu)件是計(jì)算或數(shù)據(jù)儲(chǔ)存的單元構(gòu)件可以是計(jì)算和狀態(tài)的場(chǎng)所客戶(clients)服務(wù)器(servers)數(shù)據(jù)庫(databases)過濾器(filters)層次(layers)抽象數(shù)據(jù)類型(ADTs)構(gòu)件可以是簡(jiǎn)單的或復(fù)合的復(fù)合構(gòu)件描述了一個(gè)(子)系統(tǒng)構(gòu)件組成構(gòu)件是計(jì)算或數(shù)據(jù)儲(chǔ)存的單元連接件連接件是對(duì)以下內(nèi)容進(jìn)行建模的體系結(jié)構(gòu)元素構(gòu)件之間的交互指導(dǎo)這些交互的規(guī)則簡(jiǎn)單交互過程調(diào)用共享變量訪問復(fù)雜和語義豐富的交互客戶/服務(wù)器協(xié)議數(shù)據(jù)庫訪問協(xié)議異步事件廣播管道數(shù)據(jù)流連接件連接件是對(duì)以下內(nèi)容進(jìn)行建模的體系結(jié)構(gòu)元素配置/拓?fù)潴w系結(jié)構(gòu)的配置或拓?fù)涫菢?gòu)件和連接件的連接圖(connectedgraph),描述了系統(tǒng)結(jié)構(gòu)適當(dāng)?shù)倪B接并發(fā)和分布特性符合設(shè)計(jì)啟發(fā)式規(guī)則和風(fēng)格規(guī)則復(fù)合構(gòu)件本身就是配置配置/拓?fù)潴w系結(jié)構(gòu)的配置或拓?fù)涫菢?gòu)件和連接件的連接圖(con軟件體系結(jié)構(gòu)風(fēng)格是對(duì)某個(gè)體系結(jié)構(gòu)的一組約束,定義了能滿足要求的一組或一族體系結(jié)構(gòu)通用結(jié)構(gòu):分層、管道過濾器、黑板分布式系統(tǒng):客戶-服務(wù)器、三層、中介交互式系統(tǒng):MVC、表示-抽象-控制可適配系統(tǒng):微內(nèi)核、反映式其它:批處理、解釋器、進(jìn)程控制、基于規(guī)則軟件體系結(jié)構(gòu)風(fēng)格是對(duì)某個(gè)體系結(jié)構(gòu)的一組約束,定義了能滿足要求典型的體系結(jié)構(gòu)風(fēng)格典型的體系結(jié)構(gòu)風(fēng)格管道和過濾器每個(gè)構(gòu)件都有一組輸入和輸出,構(gòu)件讀輸入的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流。這個(gè)過程通常通過對(duì)輸入流的變換及增量計(jì)算來完成,所以在輸入被完全消費(fèi)之前,輸出便產(chǎn)生了這里的構(gòu)件被稱為過濾器,這種風(fēng)格的連接件就象是數(shù)據(jù)流傳輸?shù)墓艿溃瑢⒁粋€(gè)過濾器的輸出傳到另一過濾器的輸入管道和過濾器每個(gè)構(gòu)件都有一組輸入和輸出,構(gòu)件讀輸入的數(shù)據(jù)流,分層系統(tǒng)層次系統(tǒng)組織成一個(gè)層次結(jié)構(gòu),每一層為上層服務(wù),并作為下層客戶。在一些層次系統(tǒng)中,除了一些精心挑選的輸出函數(shù)外,內(nèi)部的層只對(duì)相鄰的層可見。這樣的系統(tǒng)中構(gòu)件在一些層實(shí)現(xiàn)了虛擬機(jī)(在另一些層次系統(tǒng)中層是部分不透明的)。連接件通過決定層間如何交互的協(xié)議來定義,拓?fù)浼s束包括對(duì)相鄰層間交互的約束。這種風(fēng)格支持基于可增加抽象層的設(shè)計(jì)。允許將一個(gè)復(fù)雜問題分解成一個(gè)增量步驟序列的實(shí)現(xiàn)。由于每一層最多只影響兩層,同時(shí)只要給相鄰層提供相同的接口,允許每層用不同的方法實(shí)現(xiàn),同樣為軟件復(fù)用提供了強(qiáng)大的支持分層系統(tǒng)層次系統(tǒng)組織成一個(gè)層次結(jié)構(gòu),每一層為上層服務(wù),并作為模型-視圖-控制器風(fēng)格用戶控制器視圖模型問題領(lǐng)域的應(yīng)用程序使用操作更新查看模型-視圖-控制器風(fēng)格用戶控制器視圖模型問題領(lǐng)域的應(yīng)用程序使客戶/服務(wù)器風(fēng)格客戶/服務(wù)器風(fēng)格客戶/服務(wù)器風(fēng)格-處理流程客戶/服務(wù)器風(fēng)格-處理流程三層客戶/服務(wù)器風(fēng)格三層客戶/服務(wù)器風(fēng)格三層風(fēng)格-處理流程三層風(fēng)格-處理流程三層客戶/服務(wù)器風(fēng)格三層客戶/服務(wù)器風(fēng)格基于層次消息總線的體系結(jié)構(gòu)基于層次消息總線的體系結(jié)構(gòu)區(qū)域集成服務(wù)器(ZIS)結(jié)構(gòu)區(qū)域集成服務(wù)器(ZIS)結(jié)構(gòu)異構(gòu)結(jié)構(gòu)風(fēng)格異構(gòu)結(jié)構(gòu)風(fēng)格結(jié)構(gòu)模型視圖用戶視圖用例圖實(shí)現(xiàn)視圖

結(jié)構(gòu)視圖

行為視圖

環(huán)境視圖

類圖對(duì)象圖順序圖協(xié)作圖狀態(tài)圖活動(dòng)圖組件圖部署圖結(jié)構(gòu)模型視圖用戶視圖實(shí)現(xiàn)視圖結(jié)構(gòu)視圖行為視圖環(huán)境視圖組件圖組件圖描述了軟件的各種組件和它們之間的依賴關(guān)系。組件圖中通常包含3種元素:組件、接口和依賴關(guān)系。組件圖組件圖描述了軟件的各種組件和它們之間的依賴關(guān)系。組件組件是定義了良好接口的物理實(shí)現(xiàn)單元,是系統(tǒng)中可替換的物理部件。一般情況下,組件表示將類、接口等邏輯元素打包而形成的物理模塊。組件可以是源代碼組件、二進(jìn)制組件或一個(gè)可執(zhí)行的組件。每個(gè)組件實(shí)現(xiàn)一些接口,并使用另一些接口。如果組件間的依賴關(guān)系與接口有關(guān),就可以被具有同樣接口的其他組件所替代。組件組件是定義了良好接口的物理實(shí)現(xiàn)單元,是系統(tǒng)中可替換的組件一個(gè)組件包含它所實(shí)現(xiàn)的一個(gè)或多個(gè)邏輯類的相關(guān)信息。在UML中,組件用一個(gè)左側(cè)帶有兩個(gè)突出小矩形的矩形來表示。組件一個(gè)組件包含它所實(shí)現(xiàn)的一個(gè)或多個(gè)邏輯類的相關(guān)信息。組件組件在很多方面與類相同-有名稱;-可以實(shí)現(xiàn)一組接口;-可以參與依賴關(guān)系;-可以被嵌套;-可以有實(shí)例;-可以參與交互。組件組件在很多方面與類相同組件類和組件之間也存在著差別:-類描述了軟件設(shè)計(jì)的邏輯組織和意圖;-組件描述軟件設(shè)計(jì)的物理實(shí)現(xiàn),即每個(gè)組件體現(xiàn)了系統(tǒng)設(shè)計(jì)中特定類的實(shí)現(xiàn)。組件類和組件之間也存在著差別:組件-名稱每個(gè)組件都必須有一個(gè)不同于其他組件的名稱。組件的名稱是一個(gè)字符串,位于組件圖標(biāo)內(nèi)部。實(shí)際應(yīng)用中,組件名稱通常是從現(xiàn)實(shí)的詞匯表中抽取出來的短名詞或名詞短語,并依據(jù)目標(biāo)操作系統(tǒng)添加相應(yīng)的擴(kuò)展名,例如java和dll。組件-名稱每個(gè)組件都必須有一個(gè)不同于其他組件的名稱。組件-名稱組件的名稱有兩種:簡(jiǎn)單名和路徑名。簡(jiǎn)單名只有一個(gè)簡(jiǎn)單的名稱;路徑名是在簡(jiǎn)單名的前面加上組件所在包的名稱。組件-名稱組件的名稱有兩種:簡(jiǎn)單名和路徑名。組件-名稱通常,UML圖中的組件只顯示其名稱,也可以用標(biāo)記值或表示組件細(xì)節(jié)的附加欄加以修飾。組件-名稱通常,UML圖中的組件只顯示其名稱,也可以用標(biāo)記值組件-種類在軟件系統(tǒng)建模過程中,存在3種類型的組件:配置組件、工作產(chǎn)品組件和執(zhí)行組件。組件-種類在軟件系統(tǒng)建模過程中,存在3種類型的組件:配置組配置組件配置組件是運(yùn)行系統(tǒng)需要配置的組件,是形成可執(zhí)行文件的基礎(chǔ)。操作系統(tǒng)、Java虛擬機(jī)(JVM)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)都屬于配置組件。配置組件配置組件是運(yùn)行系統(tǒng)需要配置的組件,是形成可執(zhí)行文件的工作產(chǎn)品組件工作產(chǎn)品組件包括模型、源代碼和用于創(chuàng)建配置組件的數(shù)據(jù)文件,它們是配置組件的來源。工作產(chǎn)品組件包括UML圖、Java類和動(dòng)態(tài)鏈接庫(DLL)和數(shù)據(jù)庫表等。工作產(chǎn)品組件工作產(chǎn)品組件包括模型、源代碼和用于創(chuàng)建配置組件的執(zhí)行組件執(zhí)行組件是在運(yùn)行時(shí)創(chuàng)建的組件,是最終可運(yùn)行的系統(tǒng)產(chǎn)生的允許結(jié)果。HTML和XML文檔和.NET組件等都是執(zhí)行組件的例子。執(zhí)行組件執(zhí)行組件是在運(yùn)行時(shí)創(chuàng)建的組件,是最終可運(yùn)行的系統(tǒng)產(chǎn)生組件圖標(biāo)組件的定義非常廣泛,如程序源代碼、子系統(tǒng)、動(dòng)態(tài)鏈接庫、ActiveX控件等都可以認(rèn)為是組件。在實(shí)際建模過程中,如果僅僅使用一種圖標(biāo)表示組件會(huì)造成不便。組件圖標(biāo)組件的定義非常廣泛,如程序源代碼、子系統(tǒng)、動(dòng)態(tài)鏈接庫一般組件Rose中的組件(Component),即一般意義上的組件??梢杂脴?gòu)造型來指定組件類型(Application、DLL、ActiveX、和Executable等)。一般組件Rose中的組件(Component),即一般意義上子程序規(guī)范子程序規(guī)范通常是一組子程序集合名,子程序中不包括類定義。子程序規(guī)范子程序規(guī)范通常是一組子程序集合名,子程序中不包括類子程序體子程序體主程序主程序(MainProgram)是包含程序根的文件。主程序主程序(MainProgram)是包含程序根的文件。包規(guī)范包是類的實(shí)現(xiàn)方法。包規(guī)范是類的頭文件,包含類中函數(shù)的原型信息。在C++中,包規(guī)范就是.h文件。包規(guī)范包是類的實(shí)現(xiàn)方法。包規(guī)范是類的頭文件,包含類中函數(shù)的原包體包體包含類操作代碼。C++中,包體就是.cpp文件。包體包體包含類操作代碼。C++中,包體就是.cpp文件。任務(wù)規(guī)范任務(wù)表示具有獨(dú)立控制線程的包。任務(wù)規(guī)范任務(wù)表示具有獨(dú)立控制線程的包。其他任務(wù)體虛包數(shù)據(jù)庫虛子程序其他任務(wù)體虛包數(shù)據(jù)庫虛子程序接口在組件圖中,組件可以通過其他組件的接口來使用其他組件中定義的操作。通過使用命名的接口,可以避免在系統(tǒng)中各個(gè)組件之間直接發(fā)生依賴關(guān)系,有利于組件的替換。組件圖中的接口也使用一個(gè)小圓圈來表示。接口在組件圖中,組件可以通過其他組件的接口來使用其他組件中定接口接口和組件之間的關(guān)系分為兩種:實(shí)現(xiàn)關(guān)系和依賴關(guān)系。接口和組件之間用實(shí)線連接表示實(shí)現(xiàn)關(guān)系;用虛線箭頭連接表示依賴關(guān)系。接口接口和組件之間的關(guān)系分為兩種:實(shí)現(xiàn)關(guān)系和依賴關(guān)系。接口組件的接口分為兩種:導(dǎo)入接口和導(dǎo)出接口。導(dǎo)入接口供訪問操作的組件使用,導(dǎo)出接口由提供操作的組件提供。如下圖所示,接口Interface對(duì)于組件Component來說是導(dǎo)出接口,對(duì)于組件Component2來說是導(dǎo)入接口。接口組件的接口分為兩種:導(dǎo)入接口和導(dǎo)出接口。依賴關(guān)系組件圖用依賴關(guān)系表示各組件之間存在的關(guān)系類型。在UML中,組件圖中依賴關(guān)系的表示方法與類圖中依賴關(guān)系相同,都是一個(gè)由客戶指向提供者的虛線箭頭。其中,客戶組件依賴于提供者組件;提供者組件只在開發(fā)時(shí)存在,運(yùn)行時(shí)則不存在。依賴關(guān)系組件圖用依賴關(guān)系表示各組件之間存在的關(guān)系類型。組件圖建模技術(shù)組件圖一般用于面向?qū)ο笙到y(tǒng)物理方面的建模,建模時(shí)要找出系統(tǒng)中存在的組件、接口以及組件之間的依賴關(guān)系。具體的建模步驟如下:⑴對(duì)系統(tǒng)中的組件建模。⑵對(duì)相應(yīng)組件提供的接口建模。⑶對(duì)組件之間的依賴關(guān)系建模。⑷將邏輯設(shè)計(jì)映射成物理實(shí)現(xiàn)。⑸對(duì)建模的結(jié)果進(jìn)行精化和細(xì)化。組件圖建模技術(shù)組件圖一般用于面向?qū)ο笙到y(tǒng)物理方面的建模,建模實(shí)—圖書館管理系統(tǒng)的組件圖使用Rose繪制組件圖的步驟:⑴創(chuàng)建組件圖⑵添加組件⑶增加組件的細(xì)節(jié)①指定組件的類型。②指定組件語言。③為組件添加聲明。⑷增加組件之間的依賴。實(shí)—圖書館管理系統(tǒng)的組件圖使用Rose繪制組件圖的步驟:實(shí)例—圖書館管理系統(tǒng)的組件圖組件圖工具欄按鈕簡(jiǎn)介:實(shí)例—圖書館管理系統(tǒng)的組件圖組件圖工具欄按鈕簡(jiǎn)介:實(shí)例—圖書館管理系統(tǒng)的組件圖圖書館管理系統(tǒng)的業(yè)務(wù)對(duì)象的組件圖實(shí)例—圖書館管理系統(tǒng)的組件圖圖書館管理系統(tǒng)的業(yè)務(wù)對(duì)象的組件圖部署圖部署圖定義部署圖是描述計(jì)算機(jī)、外部硬件設(shè)備及它們構(gòu)成的物理分布結(jié)構(gòu)。部署圖包含兩個(gè)部分:節(jié)點(diǎn)和連接。簡(jiǎn)單的單機(jī)系統(tǒng)部署圖包含一臺(tái)計(jì)算機(jī)及其外部設(shè)備,所有組件都部署在這個(gè)節(jié)點(diǎn)上在網(wǎng)絡(luò)支持和系統(tǒng)中,部署圖不僅描述每個(gè)分布的節(jié)點(diǎn),還描述組件在節(jié)點(diǎn)上的分布。定義部署圖是描述計(jì)算機(jī)、外部硬件設(shè)備及它們構(gòu)成的物理分布結(jié)構(gòu)節(jié)點(diǎn)節(jié)點(diǎn)代表一個(gè)運(yùn)行時(shí)計(jì)算機(jī)系統(tǒng)中的硬件資源。節(jié)點(diǎn)通常擁有一些內(nèi)存,并具有處理能力。例如一臺(tái)計(jì)算機(jī)、一個(gè)工作站等其它計(jì)算設(shè)備都屬于節(jié)點(diǎn)。節(jié)點(diǎn)節(jié)點(diǎn)代表一個(gè)運(yùn)行時(shí)計(jì)算機(jī)系統(tǒng)中的硬件資源。節(jié)點(diǎn)通常擁有一自定義構(gòu)造型圖標(biāo)自定義構(gòu)造型圖標(biāo)節(jié)點(diǎn)中的構(gòu)件當(dāng)某些構(gòu)件駐留在某個(gè)節(jié)點(diǎn)時(shí),可以在該節(jié)點(diǎn)的內(nèi)部描述這些構(gòu)件。對(duì)于一張部署圖而言,最有價(jià)值的信息就是節(jié)點(diǎn)上的內(nèi)容,也就是安裝在節(jié)點(diǎn)中的構(gòu)件。節(jié)點(diǎn)中的構(gòu)件當(dāng)某些構(gòu)件駐留在某個(gè)節(jié)點(diǎn)時(shí),可以在該節(jié)點(diǎn)的內(nèi)部描連接節(jié)點(diǎn)之間最常見的關(guān)系就是關(guān)聯(lián)關(guān)系(用一根實(shí)線表示),在部署圖中,稱之為“連接”,表示兩個(gè)節(jié)點(diǎn)之間的物理連接。連接節(jié)點(diǎn)之間最常見的關(guān)系就是關(guān)聯(lián)關(guān)系(用一根實(shí)線表示),在部如何繪制部署圖繪制系統(tǒng)部署圖,可以參照如下步驟進(jìn)行:

(1)對(duì)系統(tǒng)中的節(jié)點(diǎn)建模;(2)對(duì)節(jié)點(diǎn)間的關(guān)系建模;(3)對(duì)系統(tǒng)中的構(gòu)件建模,這些構(gòu)件來自構(gòu)件圖;(4)對(duì)構(gòu)件間的關(guān)系建模;(5)對(duì)建模的結(jié)果進(jìn)行精化和細(xì)化。如何繪制部署圖繪制系統(tǒng)部署圖,可以參照如下步驟進(jìn)行:

(案例以一個(gè)IC卡考勤系統(tǒng)的例子來說明部署圖的繪制過程。確定所需的節(jié)點(diǎn)及節(jié)點(diǎn)間的連接關(guān)系(1)IC卡讀卡器:提供給員工刷卡用,它收集刷卡的事件信息,傳給應(yīng)用系統(tǒng),并存入數(shù)據(jù)庫中。(2)應(yīng)用服務(wù)器:用來負(fù)責(zé)從IC卡讀卡器重收集信息,并對(duì)管理人員提供員工設(shè)置、考勤查詢等功能。(3)數(shù)據(jù)庫服務(wù)器:用來存儲(chǔ)考勤數(shù)據(jù),由于該系統(tǒng)比較小,因此在物理上可以與應(yīng)用服務(wù)器合并。(4)客戶端軟件:提供給管理人員使用,連接應(yīng)用服務(wù)器,完成相應(yīng)操作。另:客戶端與服務(wù)器的連接顯然應(yīng)該是通過網(wǎng)絡(luò)(假設(shè)是百兆以太網(wǎng)),而服務(wù)器與IC卡讀寫器則是通過串口(RS-232C).案例以一

溫馨提示

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