軟件工程導(dǎo)論知識(shí)點(diǎn)概要_第1頁(yè)
軟件工程導(dǎo)論知識(shí)點(diǎn)概要_第2頁(yè)
軟件工程導(dǎo)論知識(shí)點(diǎn)概要_第3頁(yè)
軟件工程導(dǎo)論知識(shí)點(diǎn)概要_第4頁(yè)
軟件工程導(dǎo)論知識(shí)點(diǎn)概要_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1.1 軟件危機(jī)軟件危機(jī)的表現(xiàn)軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)、使用和維護(hù)過(guò)程中遇到的一系列嚴(yán)重問(wèn)題。1)成本難以估計(jì)、成本高。2)軟件開(kāi)發(fā)進(jìn)度估計(jì)不準(zhǔn)確,項(xiàng)目延期比比皆是。3)軟件質(zhì)量得不到保證(功能和性能)。4)用戶(hù)對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。5)維護(hù)非常困難(多樣性 、復(fù)雜性、 副作用)。6)軟件通常沒(méi)有適當(dāng)?shù)奈臋n。7)軟件產(chǎn)品供不應(yīng)求,跟不上計(jì)算機(jī)普及速度。產(chǎn)生軟件危機(jī)的原因(1)與軟件本身的特點(diǎn)有關(guān) (邏輯復(fù)雜,成本高,風(fēng)險(xiǎn)大,難于維護(hù))。(2)與軟件開(kāi)發(fā)與維護(hù)的方法不正確有關(guān):軟件程序(軟件是程序、數(shù)據(jù)及相關(guān)文檔的完整集合)急于求成=拔苗助長(zhǎng)(軟件從定義、開(kāi)發(fā)、使用和

2、維護(hù)、廢棄要經(jīng)歷一個(gè)漫長(zhǎng)的生命周期)各自為陣無(wú)方法學(xué)(應(yīng)要組織良好、管理嚴(yán)密、各類(lèi)人員協(xié)作共同完成的工程項(xiàng)目)1.2 軟件工程定義軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)、心理學(xué)及管理科學(xué)等原理開(kāi)發(fā)軟件的工程。它借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本和提高效率為目的。軟件工程包括技術(shù)和管理兩方面的內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工程學(xué)科。軟件工程的特性:1. 軟件工程關(guān)注于大型程序的構(gòu)造(傳統(tǒng)的程序設(shè)計(jì)技術(shù)和工具是支持小型程序設(shè)計(jì)的)2. 軟件工程的中心課題是控制復(fù)雜性(問(wèn)題分解)3. 軟件經(jīng)常變化(考慮將來(lái)要發(fā)生的變化)4. 開(kāi)發(fā)軟件的效率非常重要(尋求更好、更有效的工具)5. 和諧地合作是

3、開(kāi)發(fā)軟件的關(guān)鍵(運(yùn)用標(biāo)準(zhǔn)和規(guī)程)6. 軟件必須有效地支持它的用戶(hù)(軟件要服務(wù)于用戶(hù))7. 在軟件工程領(lǐng)域中通常是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品軟件工程的7條基本原理1.用分階段的生命周期計(jì)劃嚴(yán)格管理2.堅(jiān)持進(jìn)行階段評(píng)審3.實(shí)行嚴(yán)格的產(chǎn)品控制4.采用現(xiàn)代程序設(shè)計(jì)技術(shù)5.結(jié)果應(yīng)能清楚地審查6.開(kāi)發(fā)小組的人員應(yīng)該少而精7.承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性軟件工程方法學(xué) 通常把在軟件生命周期全過(guò)程中使用的一整套技術(shù)方法的集合稱(chēng)為方法學(xué)(methodology),也稱(chēng)為范型(paradigm)。目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。軟件工程方法學(xué)包含

4、3個(gè)要素:方法、工具和過(guò)程。1.3 軟件生命周期每階段的基本任務(wù):1. 問(wèn)題定義2. 可行性研究3. 需求分析4. 總體設(shè)計(jì)5. 詳細(xì)設(shè)計(jì)6. 編碼和單元測(cè)試7. 綜合測(cè)試8. 軟件維護(hù)1.4 軟件過(guò)程軟件過(guò)程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。通常包括四種基本的過(guò)程活動(dòng): ()軟件規(guī)格說(shuō)明;()軟件開(kāi)發(fā);()軟件確認(rèn);()軟件演進(jìn)軟件過(guò)程模型: 軟件開(kāi)發(fā)程模型是軟件開(kāi)發(fā)全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。它能直觀表達(dá)軟件開(kāi)發(fā)全過(guò)程,明確規(guī)定要完成的主要活動(dòng)、任務(wù)和開(kāi)發(fā)策略。幾種典型的模型:瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、RUP等

5、。軟件過(guò)程模型的選擇基于項(xiàng)目和應(yīng)用的性質(zhì)、采用的方法工具以及需要的控制和交付的產(chǎn)品。瀑布模型(Waterfall Model ):傳統(tǒng)瀑布模型:規(guī)定了各項(xiàng)軟件工程活動(dòng),包括:制定開(kāi)發(fā)計(jì)劃、需求分析和說(shuō)明、軟件設(shè)計(jì)、程序編碼、測(cè)試、運(yùn)行維護(hù)。并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。特點(diǎn):1、階段間具有順序性和依賴(lài)性。2、推遲實(shí)現(xiàn)。3、質(zhì)量保證。優(yōu)點(diǎn):1、可強(qiáng)迫開(kāi)發(fā)人員采用規(guī)范的方法(例如,結(jié)構(gòu)化技術(shù)); 嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;要求每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過(guò)質(zhì)量保證小組的仔細(xì)驗(yàn)證。2、瀑布模型的成功在很大程度上是由于它基本上是一種文檔驅(qū)動(dòng)的模型。3、

6、瀑布模型適合于用戶(hù)需求明確、完整、無(wú)重大變化的軟件項(xiàng)目開(kāi)發(fā)!問(wèn)題:1、不適應(yīng)需求經(jīng)常發(fā)生變更的環(huán)境:在項(xiàng)目的開(kāi)發(fā)過(guò)程中,變更可能會(huì)引起混亂。所以,有人形象地把采用線性模型進(jìn)行商業(yè)軟件工程稱(chēng)之為“在沙灘上蓋樓房”。(適合于用戶(hù)需求明確、完整、無(wú)重大變化的軟件項(xiàng)目開(kāi)發(fā))2、線性順序模型每一步的工作都必須以前一階段的輸出為輸入,這種特征會(huì)導(dǎo)致工作中發(fā)生“阻塞”狀態(tài)。3、由于瀑布模型幾乎完全依賴(lài)于書(shū)面的規(guī)格說(shuō)明,很可能導(dǎo)致最終開(kāi)發(fā)出的軟件產(chǎn)品不能真正滿足用戶(hù)的需要。 4、是一種整體開(kāi)發(fā)模型,程序的物理實(shí)現(xiàn)集中在開(kāi)發(fā)階段的后期,用戶(hù)在最后才能看到自己的產(chǎn)品。在可運(yùn)行的軟件產(chǎn)品交付給用戶(hù)之前,用戶(hù)只能通過(guò)

7、文檔來(lái)了解產(chǎn)品是什么樣的??焖僭湍P停≧apid Prototype Model)步驟:第一步進(jìn)行試驗(yàn)開(kāi)發(fā),得出產(chǎn)品的“原型”,其目的在于弄清軟件需求并探索可行性;第二步在原型的基礎(chǔ)上開(kāi)發(fā)出較為滿意的軟件產(chǎn)品。該模型克服了瀑布模型的部分缺陷,減少了軟件需求不明確給開(kāi)發(fā)工作帶來(lái)的風(fēng)險(xiǎn)。前提:(1)是用戶(hù)必須積極參與原型的建造,建造原型僅僅是為了定義需求,之后就必須被全部拋棄(至少是部分拋棄),實(shí)際的軟件必須在充分考慮到軟件質(zhì)量和可維護(hù)性之后才被開(kāi)發(fā)。從這個(gè)意義上說(shuō),原型模型又往往被稱(chēng)為“拋棄原型模型”。(2)是必須有快速開(kāi)發(fā)工具可供使用。 增量模型 (Incremental Model)是一種

8、漸進(jìn)地開(kāi)發(fā)逐步完善的軟件版本的模型,該模型一般首先開(kāi)發(fā)產(chǎn)品的基本部,然后再逐步開(kāi)發(fā)產(chǎn)品的附加部分。整個(gè)軟件產(chǎn)品被分解成許多個(gè)增量構(gòu)件。每個(gè)構(gòu)件由多個(gè)相互作用的功能模塊構(gòu)成,并能夠完成特定的功能。該增量模型表明:必須在開(kāi)始實(shí)現(xiàn)各個(gè)構(gòu)件之前就全部完成需求分析、規(guī)格說(shuō)明和概要設(shè)計(jì),因此風(fēng)險(xiǎn)較小。優(yōu)點(diǎn):是十分有用的一種模型。在克服瀑布模型缺點(diǎn)、減少由于軟件需求不明確而給開(kāi)發(fā)工作帶來(lái)風(fēng)險(xiǎn)方面,確有顯著的效果;縮短產(chǎn)品提交時(shí)間都能夠起到良好的作用。困難:1、在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞原來(lái)已經(jīng)開(kāi)發(fā)出的產(chǎn)品。此外,必須把軟件的體系結(jié)構(gòu)設(shè)計(jì)得便于按這種方式進(jìn)行擴(kuò)充,向現(xiàn)有產(chǎn)品中加

9、入新構(gòu)件的過(guò)程必須簡(jiǎn)單、方便,也就是說(shuō),軟件體系結(jié)構(gòu)必須是開(kāi)放的。2、開(kāi)發(fā)人員既要把軟件系統(tǒng)看作整體。又要看成可獨(dú)立的構(gòu)件,因此相互矛盾。除非開(kāi)發(fā)人員有足夠的技術(shù)能力協(xié)調(diào)好。3、多個(gè)構(gòu)件并行開(kāi)發(fā),具有無(wú)法集成的風(fēng)險(xiǎn)螺旋模型 (Spiral Model)優(yōu)點(diǎn):對(duì)于高風(fēng)險(xiǎn)的大型軟件,螺旋模型是一個(gè)理想的開(kāi)發(fā)方法。缺點(diǎn):風(fēng)險(xiǎn)驅(qū)動(dòng),需要相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專(zhuān)門(mén)知識(shí),否則風(fēng)險(xiǎn)更大。適合場(chǎng)合:主要適用于內(nèi)部開(kāi)發(fā)的大規(guī)模軟件項(xiàng)目,隨著過(guò)程的進(jìn)展演化,開(kāi)發(fā)者和用戶(hù)能夠更好地識(shí)別和對(duì)待每一個(gè)演化級(jí)別上的風(fēng)險(xiǎn)。只有內(nèi)部開(kāi)發(fā)的項(xiàng)目,才能在風(fēng)險(xiǎn)過(guò)大時(shí)方便地中止項(xiàng)目。如果進(jìn)行風(fēng)險(xiǎn)分析的費(fèi)用接近整個(gè)項(xiàng)目的經(jīng)費(fèi)預(yù)算,則

10、風(fēng)險(xiǎn)分析是不可行的。噴泉模型 (Fountain Model)特點(diǎn):噴泉模型的各階段均采用了“對(duì)象”這一統(tǒng)一范式,整個(gè)過(guò)程看起來(lái)像噴泉從噴出到落下再?lài)姵龅闹芏鴱?fù)始過(guò)程產(chǎn)生的光滑水柱,體現(xiàn)了軟件創(chuàng)建所固有的迭代和無(wú)間隙的特征。適合場(chǎng)合:噴泉模型主要用于面向?qū)ο蟮能浖?xiàng)目,軟件的某個(gè)部分通常被重復(fù)多次,相關(guān)對(duì)象在每次迭代中隨之加入漸進(jìn)的軟件成分。Rational統(tǒng)一軟件開(kāi)發(fā)過(guò)程RUP軟件開(kāi)發(fā)生命周期是一個(gè)二維的軟件開(kāi)發(fā)模型。橫軸代表時(shí)間,體現(xiàn)生命周期特征;縱軸代表工作流,體現(xiàn)了開(kāi)發(fā)過(guò)程的靜態(tài)結(jié)構(gòu)。RUP中的軟件生命周期在時(shí)間上被分解為四個(gè)順序的階段:初始、細(xì)化、構(gòu)造和移交。每個(gè)階段圍繞著9個(gè)核心工

11、作流分別迭代。適合場(chǎng)合:可開(kāi)發(fā)或大或小、分布在各個(gè)領(lǐng)域的項(xiàng)目,表明了RUP的多功能性和廣泛適應(yīng)性。適合于需求不穩(wěn)定、不全面的軟件項(xiàng)目開(kāi)發(fā)。1.5 小結(jié)軟件 =程序+數(shù)據(jù)+文檔軟件危機(jī): 原因,現(xiàn)象,辦法 (軟件工程學(xué))軟件工程:指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的一門(mén)工程科學(xué)軟件工程3個(gè)要素:方法、工具和過(guò)程。軟件生命周期:定義,開(kāi)發(fā),運(yùn)行維護(hù)軟件過(guò)程: 瀑布模型,快速原型模型、增量模型、螺旋模型、噴泉模型、RUP等2.1 可行性研究目的:用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。2.2 可行性研究的主要內(nèi)容(1) 技術(shù)可行性(2) 經(jīng)濟(jì)可行性(3) 操作可行性(4) 法律可行性(5) 社會(huì)可

12、行性2.3 數(shù)據(jù)流圖1、一種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換。2、它只是描繪數(shù)據(jù)在軟件中流動(dòng)和被處理的邏輯過(guò)程,是系統(tǒng)邏輯功能的圖形表示。3、設(shè)計(jì)數(shù)據(jù)流圖時(shí)只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮怎樣具體地實(shí)現(xiàn)這些功能。畫(huà)數(shù)據(jù)流圖的方法:1、自頂向下,逐步求精2、先畫(huà)頂層DFD,描繪系統(tǒng)的整體邏輯概貌;頂層流圖僅包含一個(gè)加工,它代表被開(kāi)發(fā)系統(tǒng)。它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)所輸出數(shù)據(jù)。3、其次畫(huà)中間層流圖:對(duì)上層父圖的處理的細(xì)化,形成子圖。底層流圖是指其加工不需要在做分解的數(shù)據(jù)流圖,它處在最底層。注意:數(shù)據(jù)流圖應(yīng)該分層,并且在把功能級(jí)數(shù)據(jù)

13、流圖細(xì)化后得到的處理超過(guò)9個(gè)時(shí),應(yīng)該采用畫(huà)分圖的辦法。當(dāng)把一個(gè)處理分解為一系列處理時(shí),分解前和分解后的輸入輸出數(shù)據(jù)流必須相同!數(shù)據(jù)流圖用途:1、畫(huà)數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。2、分析員把他對(duì)現(xiàn)有系統(tǒng)的認(rèn)識(shí)或?qū)δ繕?biāo)系統(tǒng)的設(shè)想用數(shù)據(jù)流圖描繪出來(lái),供有關(guān)人員審查確認(rèn)。3、由于在數(shù)據(jù)流圖中通常僅僅使用4種基本符號(hào),而且不包含任何有關(guān)物理實(shí)現(xiàn)的細(xì)節(jié),因此,絕大多數(shù)用戶(hù)都可以理解和評(píng)價(jià)它。4、數(shù)據(jù)流圖著重描繪系統(tǒng)所完成的功能,其另一個(gè)主要用途是作為輔助物理系統(tǒng)的分析和設(shè)計(jì)的工具。2.4 小結(jié)1、可行性研究的任務(wù): 技術(shù), 經(jīng)濟(jì),社會(huì)2、可行性研究過(guò)程: 8 步驟3、數(shù)據(jù)流圖: 源點(diǎn)或終點(diǎn)

14、,處理,數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流4、數(shù)據(jù)字典: 是分析階段的工具,包括流,元素,存儲(chǔ),處理4類(lèi)元素組成。5、成本/效益分析:從經(jīng)濟(jì)角度判斷是否繼續(xù)投資于這項(xiàng)工程的主要依據(jù)。3.1 需求分析的具體任務(wù)確定對(duì)系統(tǒng)的綜合要求:1、功能需求2、性能需求3、可靠性和可用性需求4、出錯(cuò)處理需求5、接口需求6、約束7、 逆向需求8、將來(lái)可能提出的要求分析系統(tǒng)的數(shù)據(jù)要求:建立數(shù)據(jù)模型,用圖形化的工具描述數(shù)據(jù)結(jié)構(gòu)(如層次方框圖和warnier圖)。導(dǎo)出系統(tǒng)的邏輯模型數(shù)據(jù)流圖、實(shí)體聯(lián)系圖、狀態(tài)轉(zhuǎn)換圖、數(shù)據(jù)字典等。修正系統(tǒng)開(kāi)發(fā)計(jì)劃:由分析過(guò)程準(zhǔn)確地估計(jì)系統(tǒng)的成本和進(jìn)度,修正以前制定的開(kāi)發(fā)計(jì)劃。3.2 與用戶(hù)溝通獲取需求的方

15、法1、訪談2、面向數(shù)據(jù)流自頂向下逐步求精3、簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù)4、快速建立軟件原型(它應(yīng)該實(shí)現(xiàn)用戶(hù)看得見(jiàn)的功能,原型要具有快速并容易修改的特點(diǎn))3.3 數(shù)據(jù)規(guī)范化規(guī)范化的目的是:1、消除數(shù)據(jù)冗余,即消除表格中數(shù)據(jù)的重復(fù);2、消除多義性,使關(guān)系中的屬性含義清楚、單一;3、使關(guān)系的“概念”單一化,讓每個(gè)數(shù)據(jù)項(xiàng)只是一個(gè)簡(jiǎn)單的數(shù)或字符串,而不是一個(gè)組項(xiàng)或重復(fù)組;4、方便操作。使數(shù)據(jù)的插入、刪除與修改操作可行并方便;5、使關(guān)系模式更靈活,易于實(shí)現(xiàn)接近自然語(yǔ)言的查詢(xún)方式。3.4 狀態(tài)轉(zhuǎn)換圖(狀態(tài)圖)通過(guò)描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來(lái)表示系統(tǒng)的行為。狀 態(tài)1、狀態(tài)規(guī)定了系統(tǒng)對(duì)事件的響應(yīng)方式。

16、2、系統(tǒng)對(duì)事件的響應(yīng),既可以是做一個(gè)(或一系列)動(dòng)作,也可以是僅僅改變系統(tǒng)本身的狀態(tài),還可以是既改變狀態(tài)又做動(dòng)作。3、可分為:初態(tài)(初始狀態(tài));終態(tài)(最終狀態(tài));中間狀態(tài)4、一張狀態(tài)圖中只能有一個(gè)初態(tài),而終態(tài)則可以有0至多個(gè)。事 件 事件就是引起系統(tǒng)做動(dòng)作或(和)轉(zhuǎn)換狀態(tài)的控制信息。符 號(hào)1、初態(tài)用實(shí)心圓表示,終態(tài)用一對(duì)同心圓(內(nèi)圓為實(shí)心圓)表示2、中間狀態(tài)用圓角矩形表示,分成上、中、下3個(gè)部分。3、 活動(dòng)表的語(yǔ)法格式:事件名(參數(shù)表)/動(dòng)作表達(dá)式(1)“事件名”可以是任何事件的名稱(chēng)。在活動(dòng)表中經(jīng)常使用下述3種標(biāo)準(zhǔn)事件:entry,exit和do。(2) entry事件指定進(jìn)入該狀態(tài)的動(dòng)作,e

17、xit事件指定退出該狀態(tài)的動(dòng)作,而do事件則指定在該狀態(tài)下的動(dòng)作。需要時(shí)可以為事件指定參數(shù)表。(3) 動(dòng)作表達(dá)式描述應(yīng)做的具體動(dòng)作。4、事件表達(dá)式的語(yǔ)法:事件說(shuō)明守衛(wèi)條件/動(dòng)作表達(dá)式(1) 事件說(shuō)明:事件名(參數(shù)表)(2) 動(dòng)作表達(dá)式:當(dāng)狀態(tài)轉(zhuǎn)換開(kāi)始時(shí)執(zhí)行該表達(dá)式。(3) 守衛(wèi)條件是一個(gè)布爾表達(dá)式,如果既有事件說(shuō)明又有守衛(wèi)條件,則當(dāng)事件發(fā)生且守衛(wèi)條件為真是狀態(tài)轉(zhuǎn)換才發(fā)生,如果只有守衛(wèi)條件沒(méi)有事件說(shuō)明,則守衛(wèi)條件為真時(shí),發(fā)生狀態(tài)轉(zhuǎn)換。5.1 設(shè)計(jì)過(guò)程1. 設(shè)想供選擇的方案;2. 選取合理的方案;3. 推薦最佳方案;4.功能分解;5. 設(shè)計(jì)軟件結(jié)構(gòu);6. 設(shè)計(jì)數(shù)據(jù)庫(kù);7. 制定測(cè)試計(jì)劃;8. 書(shū)寫(xiě)

18、文檔;9. 審查和復(fù)審5.2 設(shè)計(jì)原理模塊化1、把程序劃分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功能,這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完成指定的功能以滿足用戶(hù)的需求。2、模塊是由邊界元素限定的相鄰程序元素的序列,而且有一個(gè)總體標(biāo)識(shí)符代表它。模塊是構(gòu)成程序的基本構(gòu)件。3、過(guò)程、函數(shù)、子程序和宏等,都可作為模塊。4、面向?qū)ο蠓椒▽W(xué)中的對(duì)象是模塊,對(duì)象內(nèi)的方法(或稱(chēng)為服務(wù))也是模塊。模塊化的好處: 1、可以降低軟件開(kāi)發(fā)的難度;2、可以使程序結(jié)構(gòu)清晰,增加易讀性和易修改性;3、模塊化還有利于提高代碼的可重用性及團(tuán)隊(duì)合作開(kāi)發(fā)大型軟件的可行性。抽象抽象是人類(lèi)在解決復(fù)雜問(wèn)題時(shí)經(jīng)常采用的一種思維方

19、式,它是指將現(xiàn)實(shí)世界中具有共性的一類(lèi)事物的相似的、本質(zhì)的方面集中概括起來(lái),而暫時(shí)忽略它們之間的細(xì)節(jié)差異。結(jié)構(gòu)化程序中自頂向下、逐步求精的模塊劃分思想正是人類(lèi)思維中運(yùn)用抽象方法解決復(fù)雜問(wèn)題的體現(xiàn)。逐步求精定義:為了能集中精力解決主要問(wèn)題而盡量推遲對(duì)問(wèn)題細(xì)節(jié)的考慮。好處:1、降低了軟件開(kāi)發(fā)中每個(gè)階段的工作難度;2、簡(jiǎn)化了軟件的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程;3、有助于提高軟件的可讀性、可測(cè)試性和可維護(hù)性;4、在程序設(shè)計(jì)中運(yùn)用抽象的方法還能夠提高代碼的可重用性。信息隱藏和局部化1、信息隱藏:設(shè)計(jì)和確定模塊,使得一個(gè)模塊內(nèi)包含的信息(過(guò)程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來(lái)說(shuō),是不能訪問(wèn)的。目的:主要是為了提高模塊的獨(dú)

20、立性,減少將一個(gè)模塊中的錯(cuò)誤擴(kuò)散到其他模塊的機(jī)會(huì)。模塊之間的信息傳遞只能通過(guò)合法的調(diào)用接口來(lái)實(shí)現(xiàn)。信息隱蔽對(duì)提高軟件的可讀性和可維護(hù)性都是非常重要的。2、局部化:是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。如模塊中的局部數(shù)據(jù)元素是局部化的一個(gè)例子。3、局部化和信息隱藏概念是密切相關(guān)的,局部化有助于信息隱藏模塊獨(dú)立模塊的獨(dú)立性是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他模塊的接口是簡(jiǎn)單的。1、耦合:不同模塊之間互連程度的度量。2、內(nèi)聚:模塊功能強(qiáng)度的度量。3、模塊獨(dú)立是模塊化、抽象、信息隱藏和局部化概念的直接結(jié)果。3、優(yōu)點(diǎn):比較容易開(kāi)發(fā)出有效模塊化(即具有獨(dú)立的模塊

21、)的軟件;獨(dú)立的模塊比較容易測(cè)試和維護(hù)。4、耦合:(1) 數(shù)據(jù)耦合:若兩個(gè)模塊之間僅通過(guò)模塊參數(shù)交換信息,且交換的信息全部為簡(jiǎn)單數(shù)據(jù),則稱(chēng)這種耦合為數(shù)據(jù)耦合。耦合性最低。(2) 控制耦合:若模塊之間交換的信息中包含有控制信息(盡管有時(shí)控制信息是以數(shù)據(jù)的形式出現(xiàn)的),則稱(chēng)這種耦合為控制耦合。控制耦合是中等程度的耦合,它會(huì)增加程序的復(fù)雜性。(3) 特征耦合:當(dāng)把整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞而被調(diào)用的模塊只需要使用其中一部分?jǐn)?shù)據(jù)元素。(4) 公共環(huán)境耦合:若兩個(gè)或多個(gè)模塊通過(guò)引用公共數(shù)據(jù)相互聯(lián)系。(5) 內(nèi)容耦合:一個(gè)模塊訪問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù);一個(gè)模塊不通過(guò)正常入口而轉(zhuǎn)到另一個(gè)模塊的內(nèi)部;兩個(gè)模塊有

22、一部分程序代碼重疊;一個(gè)模塊有多個(gè)入口(這意味著一個(gè)模塊有幾種功能)。(6) 盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。5、內(nèi)聚:低內(nèi)聚:偶然內(nèi)聚,邏輯內(nèi)聚,時(shí)間內(nèi)聚中內(nèi)聚:過(guò)程內(nèi)聚,通信內(nèi)聚高內(nèi)聚:順序內(nèi)聚,功能內(nèi)聚6、高內(nèi)聚,低耦合6.1 結(jié)構(gòu)程序設(shè)計(jì)1、結(jié)構(gòu)程序設(shè)計(jì)技術(shù):是實(shí)現(xiàn)質(zhì)量要求的基本保證,是詳細(xì)設(shè)計(jì)的邏輯基礎(chǔ)。2、結(jié)構(gòu)程序設(shè)計(jì)定義: 一個(gè)程序的代碼塊僅僅通過(guò)順序、選擇和循環(huán)這三種基本的控制結(jié)構(gòu)進(jìn)行連接;并且每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口。- 3、只用三種基本的控制結(jié)構(gòu)(順序,選擇,循環(huán))就能實(shí)現(xiàn)任何單入口單出口的程序。從而實(shí)現(xiàn)結(jié)構(gòu)程序設(shè)

23、計(jì)。4、三種基本結(jié)構(gòu)的共同特點(diǎn):(1) 只有一個(gè)入口; (2) 只有一個(gè)出口;(3) 結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到;(4) 結(jié)構(gòu)內(nèi)不存在“死循環(huán)”(無(wú)終止的循環(huán))。 5、結(jié)構(gòu)程序設(shè)計(jì)的特點(diǎn):(1) 由三種基本結(jié)構(gòu)順序組成的,可以解決任何復(fù)雜的問(wèn)題。(2) 程序內(nèi)不存在無(wú)規(guī)律的轉(zhuǎn)向,只在基本結(jié)構(gòu)內(nèi)才允許存在分支和向前或向后的跳轉(zhuǎn)。6.2 過(guò)程設(shè)計(jì)的工具(1)過(guò)程設(shè)計(jì)是設(shè)計(jì)模塊的詳細(xì)步驟(算法),是詳細(xì)設(shè)計(jì)階段應(yīng)完成的主要工作。 (2)過(guò)程設(shè)計(jì)的工具描述程序處理過(guò)程的工具。程序流程圖的優(yōu)缺點(diǎn):主要優(yōu)點(diǎn):對(duì)控制流程的描繪很簡(jiǎn)明直觀、易于理解,便于初學(xué)者掌握。主要缺點(diǎn):(1) 本質(zhì)上不是逐步求精的

24、好工具。 -改進(jìn):PAD圖(2) 用箭頭代表控制流,描述程序時(shí)可以隨意跳轉(zhuǎn)。 -改進(jìn):N-S圖(3) 不易表示數(shù)據(jù)結(jié)構(gòu)。 -改進(jìn):PAD圖(4) 嵌套的條件選擇表示不清。 -改進(jìn):判定樹(shù)、判定表PAD圖(問(wèn)題分析圖)PAD圖的特點(diǎn):(1) 能展現(xiàn)算法的層次結(jié)構(gòu);(2) 表示形式直觀易懂;(3) 既可用于表示程序邏輯,又可用于描述數(shù)據(jù)結(jié)構(gòu);(4) 支持自頂向下,逐步求精的過(guò)程。判定表當(dāng)算法中包含多重嵌套的條件選擇時(shí),用程序流程圖、盒圖、PAD圖等都不易清楚地描述,然而,判定表能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。判定表的優(yōu)缺點(diǎn):優(yōu)點(diǎn):判定表能夠簡(jiǎn)潔而無(wú)歧義地描述處理規(guī)則??梢詫?duì)

25、判定表進(jìn)行校驗(yàn)或化簡(jiǎn)。缺點(diǎn):并不適于作為一種通用的設(shè)計(jì)工具,直觀性不夠。判定樹(shù)判定樹(shù)是用來(lái)表達(dá)加工邏輯的一種工具。比判定表更直觀,是一種常用的系統(tǒng)分析和設(shè)計(jì)工具。判定樹(shù)的優(yōu)缺點(diǎn):優(yōu)點(diǎn):比判定表更直觀。缺點(diǎn): (1) 不夠簡(jiǎn)潔,數(shù)據(jù)元素重復(fù)多次地寫(xiě)。 (2) 畫(huà)判定樹(shù)時(shí)分枝的次序?qū)?jiǎn)潔程序有影響。PDL程序設(shè)計(jì)語(yǔ)言(1) 是一種非形式化、比較靈活的混雜語(yǔ)言。也稱(chēng)為偽碼。(2) 用于描述模塊內(nèi)部過(guò)程的具體算法,以便在開(kāi)發(fā)人員之間比較精確的進(jìn)行交流。PDL的優(yōu)缺點(diǎn):優(yōu)點(diǎn):(1)可以作為注釋直接插入到源程序中。有利于PDL和源程序保持一致性。(2) PDL編寫(xiě)方便。(3)可以由自動(dòng)處理程序?qū)DL生成

26、程序代碼。缺點(diǎn):(1) 不如圖形工具形象直觀。(2) 描述復(fù)雜的條件組合與動(dòng)作間的對(duì)應(yīng)關(guān)系時(shí),不如判定表清晰簡(jiǎn)單。6.5 程序復(fù)雜程度的定量度量McCabe方法基本原理:根據(jù)程序控制流的復(fù)雜程度定量度量程序的復(fù)雜程度(稱(chēng)為程序的環(huán)形復(fù)雜度)。采用“流圖”:僅描繪程序的控制流程,完全不表現(xiàn)對(duì)數(shù)據(jù)的具體操作及分支或循環(huán)的具體條件?;静襟E:(1) 將程序流程圖或PDL等映射為流圖。(2) 基于流圖計(jì)算環(huán)形復(fù)雜度,以定量度量程序的復(fù)雜程度。 流圖定義: 僅僅描繪程序的控制流程基本符號(hào): 圓:表示結(jié)點(diǎn),代表一條或多條語(yǔ)句。 箭頭線:邊 區(qū)域:由邊和圓圍成的面積基本原則:合并原則:順序處理框和菱形判定框

27、、順序處理框序列分別合并映射成流圖中的一個(gè)結(jié)點(diǎn)。分解原則:復(fù)合條件分解為若干個(gè)簡(jiǎn)單條件,每個(gè)簡(jiǎn)單條件映射成流圖中一個(gè)結(jié)點(diǎn)。其他情況下的框映射成流圖中的一個(gè)結(jié)點(diǎn)。計(jì)算環(huán)形復(fù)雜度的方法:(1) 流圖中的環(huán)形復(fù)雜度V(G)=區(qū)域數(shù)。(2) 流圖G的環(huán)形復(fù)雜度V(G)=E-N+2,其中,E是流圖中邊的條數(shù),N是結(jié)點(diǎn)數(shù)。(3) 流圖G的環(huán)形復(fù)雜度V(G)=P+1,其中,P是流圖中判定結(jié)點(diǎn)的數(shù)目。環(huán)形復(fù)雜度的用途:(1) 可以用于比較兩個(gè)算法的優(yōu)劣。對(duì)測(cè)試難度的一種定量度量。(2) 作為模塊規(guī)模的精確限度。環(huán)形復(fù)雜度高的程序往往是最困難、最容易出問(wèn)題的程序。實(shí)踐表明,模塊規(guī)模以V(G)10為宜。7.1 軟

28、件測(cè)試基礎(chǔ)根本目標(biāo)盡可能多地發(fā)現(xiàn)并排除軟件中潛藏的錯(cuò)誤,最終把一個(gè)高質(zhì)量的軟件系統(tǒng)交給用戶(hù)使用。軟件測(cè)試準(zhǔn)則(1) 所有測(cè)試都應(yīng)該能追溯到用戶(hù)需求。(2) 應(yīng)該遠(yuǎn)在測(cè)試開(kāi)始之前就制定出測(cè)試計(jì)劃。(3) 把Pareto原理應(yīng)用到軟件測(cè)試中。(測(cè)試發(fā)現(xiàn)的錯(cuò)誤中的80%很可能是由程序中20%的模塊造成的。)(4) 應(yīng)該從“小規(guī)模”測(cè)試開(kāi)始,并逐步進(jìn)行“大規(guī)?!睖y(cè)試(5) 窮舉測(cè)試是不可能的。(6) 為了達(dá)到最佳的測(cè)試效果,應(yīng)該由獨(dú)立的第三方從事測(cè)試工作。測(cè)試方法測(cè)試步驟(1) 模塊測(cè)試;(2) 子系統(tǒng)測(cè)試;(3) 系統(tǒng)測(cè)試;(4) 驗(yàn)收測(cè)試;(5) 平行運(yùn)行7.2 白盒測(cè)試技術(shù)邏輯覆蓋 以程序的邏輯

29、結(jié)構(gòu)為基礎(chǔ)設(shè)計(jì)測(cè)試用例的技術(shù)。(1)語(yǔ)句覆蓋 使程序中每個(gè)語(yǔ)句至少執(zhí)行一次。(2)判定覆蓋 使每個(gè)判定的真假分支都至少執(zhí)行一次。(3)條件覆蓋 使每個(gè)判定的每個(gè)條件的可能取值至少執(zhí)行一次。(4)判定/條件覆蓋 每個(gè)條件的所有可能取值至少執(zhí)行一次;使每個(gè)判定的真假分支都至少執(zhí)行一次。(5)條件組合覆蓋 所有可能的條件取值組合至少執(zhí)行一次。滿足條件組合覆蓋的測(cè)試數(shù)據(jù),也一定滿足判定覆蓋、條件覆蓋和判定/條件覆蓋標(biāo)準(zhǔn)。覆蓋標(biāo)準(zhǔn)相對(duì)較強(qiáng),但是也不意味著所有的路徑都能被執(zhí)行到。(6)路徑覆蓋 使程序中每條可能路徑都至少執(zhí)行一次??刂平Y(jié)構(gòu)測(cè)試基本路徑測(cè)試(常用)第1步:畫(huà)出程序流圖 第2步:計(jì)算程序的環(huán)形

30、復(fù)雜度P (表示程序基本路徑集中的獨(dú)立路徑數(shù)的上限)第3步:確定獨(dú)立路徑的基本集合第4步:從該基本集合導(dǎo)出測(cè)試用例第5步:執(zhí)行測(cè)試用例第6步:寫(xiě)測(cè)試報(bào)告條件測(cè)試 條件成分的類(lèi)型包括布爾算符、布爾變量、布爾括?。ɡㄗ『?jiǎn)單條件或復(fù)合條件)、關(guān)系算符及算術(shù)表達(dá)式。循環(huán)測(cè)試 (1)簡(jiǎn)單循環(huán);(2)嵌套循環(huán);(3)串接循環(huán)7.3 黑盒測(cè)試技術(shù)黑盒測(cè)試著重測(cè)試軟件功能。黑盒測(cè)試并不能取代白盒測(cè)試,它是與白盒測(cè)試互補(bǔ)的測(cè)試方法,它很可能發(fā)現(xiàn)白盒測(cè)試不易發(fā)現(xiàn)的其他類(lèi)型的錯(cuò)誤。黑盒測(cè)試力圖發(fā)現(xiàn)下述類(lèi)型的錯(cuò)誤: 功能不正確或遺漏了功能; 界面錯(cuò)誤; 數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤;性能錯(cuò)誤; 初始化和終止錯(cuò)誤。

31、黑盒測(cè)試技術(shù):(1)等價(jià)劃分法:把程序的輸入域劃分成若干個(gè)數(shù)據(jù)類(lèi),據(jù)數(shù)據(jù)類(lèi)導(dǎo)出測(cè)試用例。(2)邊界值分析法。(3)錯(cuò)誤推測(cè)法。(4)因果圖法等9.1 面向?qū)ο蟮母拍?)對(duì)象 對(duì)象是封裝了數(shù)據(jù)和行為的通信單位。2)類(lèi) 類(lèi)是對(duì)具有相同數(shù)據(jù)和相同操作的一組對(duì)象的定義,即類(lèi)是對(duì)具有相同屬性和行為的對(duì)象的描述。3)消息 對(duì)象之間進(jìn)行通信的構(gòu)造或結(jié)構(gòu)。消息分為請(qǐng)求消息和完成消息兩種 (由消息模式描述)。消息模式:發(fā)送對(duì)象、接收對(duì)象、內(nèi)容4)封裝 面向?qū)ο蟮囊粋€(gè)重要原則。封裝是指在面向?qū)ο蟮某绦蛑?,把?shù)據(jù)和實(shí)現(xiàn)操作的代碼集中起來(lái)放在對(duì)象內(nèi)部。5)繼承 面向?qū)ο竺枋鲱?lèi)之間相似性的重要機(jī)制,子類(lèi)自動(dòng)地共享基類(lèi)中

32、定義的數(shù)據(jù)和方法的機(jī)制。6)多態(tài)性 允許每個(gè)對(duì)象以自己最合適的方式去響應(yīng)共同的消息,從而增強(qiáng)軟件的靈活性和可復(fù)用性。7)重載 函數(shù)重載是指在同一作用域內(nèi)具有多個(gè)同名的函數(shù),這些函數(shù)具有若干個(gè)不同的參數(shù)特征;運(yùn)算符重載是指同一個(gè)運(yùn)算符可以施加于不同類(lèi)型的操作數(shù)上。9.4 對(duì)象模型對(duì)象模型表示靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)的“數(shù)據(jù)”性質(zhì)。它是對(duì)模擬客觀世界實(shí)體的對(duì)象以及對(duì)象彼此間的關(guān)系的映射,描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。類(lèi)圖的基本符號(hào)1. 定義類(lèi)UML中類(lèi)的圖形符號(hào)為長(zhǎng)方形,分成上、中、下3個(gè)區(qū)域(下面兩個(gè)區(qū)域可省略),分別放類(lèi)的名字、屬性和服務(wù)。類(lèi)名應(yīng)該是富于描述性的、簡(jiǎn)潔的而且無(wú)二義性的。2. 定義屬性UML

33、描述屬性的語(yǔ)法格式如下:可見(jiàn)性 屬性名: 類(lèi)型名=初值 性質(zhì)串屬性的可見(jiàn)性(即訪問(wèn)性):共有的(public)、私有的(private)和保護(hù)的(protected),分別用加號(hào)(+)、減號(hào)(-)和井號(hào)(#)表示。3. 定義服務(wù)服務(wù)也就是操作,UML描述操作的語(yǔ)法格式如下:可見(jiàn)性 操作名(參數(shù)表): 返回值類(lèi)型性質(zhì)串參數(shù)表是用逗號(hào)分隔的形式參數(shù)的序列。描述一個(gè)參數(shù)的語(yǔ)法: 參數(shù)名:類(lèi)型名=默認(rèn)值表示關(guān)系的符號(hào)1. 關(guān)聯(lián) 關(guān)聯(lián)表示兩個(gè)類(lèi)的對(duì)象之間存在某種語(yǔ)義上的聯(lián)系。1)普通關(guān)聯(lián):類(lèi)與類(lèi)之間存在連接關(guān)系就可以用普通關(guān)聯(lián)表示。2)關(guān)聯(lián)的角色:在任何關(guān)聯(lián)中都會(huì)涉及到參與此關(guān)聯(lián)的對(duì)象所扮演的角色(即起

34、的作用),如果沒(méi)有顯式標(biāo)出角色名,則意味著用類(lèi)名作為角色名。3)限定關(guān)聯(lián):通常用在一對(duì)多或多對(duì)多的關(guān)聯(lián)關(guān)系中,可以把模型中的重?cái)?shù)從一對(duì)多變成一對(duì)一,或從多對(duì)多簡(jiǎn)化成多對(duì)一。4)關(guān)聯(lián)類(lèi):說(shuō)明關(guān)聯(lián)的性質(zhì)可能需要一些附加信息。關(guān)聯(lián)類(lèi)通過(guò)一條虛線與關(guān)聯(lián)連接。關(guān)聯(lián)類(lèi)與一般類(lèi)一樣,也有屬性、操作和關(guān)聯(lián)。關(guān)聯(lián)中的每個(gè)連接與關(guān)聯(lián)類(lèi)的一個(gè)對(duì)象相聯(lián)系。2. 聚集 也稱(chēng)為聚合,是關(guān)聯(lián)的特例。聚集表示類(lèi)與類(lèi)之間的關(guān)系是整體與部分的關(guān)系1)共享聚集:在聚集關(guān)系中處于部分方的對(duì)象可同時(shí)參與多個(gè)處于整體方對(duì)象的構(gòu)成。一般聚集和共享聚集的圖示符號(hào),都是在表示關(guān)聯(lián)關(guān)系的直線末端緊挨著整體類(lèi)的地方畫(huà)一個(gè)空心菱形。2)組合聚集:如

35、果部分類(lèi)完全隸屬于整體類(lèi),部分與整體共存,整體不存在了部分也會(huì)隨之消失(或失去存在價(jià)值了),則該聚集稱(chēng)為組合聚集(簡(jiǎn)稱(chēng)為組成)。組成關(guān)系用實(shí)心菱形表示。3. 泛化 就是通常所說(shuō)的繼承關(guān)系,它是通用元素和具體元素之間的一種分類(lèi)關(guān)系。具體元素完全擁有通用元素的信息,并且還可以附加一些其他信息。用一端為空心三角形的連線表示泛化關(guān)系,三角形的頂角緊挨著通用元素。1)普通泛化:普通泛化與繼承基本相同。沒(méi)有具體對(duì)象的類(lèi)稱(chēng)為抽象類(lèi)。抽象類(lèi)通常作為父類(lèi),用于描述其他類(lèi)(子類(lèi))的公共屬性和行為。圖示抽象類(lèi)時(shí),在類(lèi)名下方附加一個(gè)標(biāo)記值abstract。2)受限泛化:給泛化關(guān)系附加約束條件,以進(jìn)一步說(shuō)明該泛化關(guān)系的使用方法或擴(kuò)充方法。3)多重繼承:一個(gè)子類(lèi)可以同時(shí)多次繼承同一個(gè)上層基類(lèi)。9.5 動(dòng)態(tài)模型動(dòng)態(tài)模型表示瞬時(shí)的、行為化的系統(tǒng)的“控制”性質(zhì),它規(guī)定了對(duì)象模型中的對(duì)象的合法變化序列。9.6 功能模型用例圖 一幅用例圖包含的模型元素有系統(tǒng)、行為者、用例及用例之間的關(guān)系。1)用例:表示系統(tǒng)提供的服務(wù),主要刻畫(huà)系統(tǒng)如何被參與者使用。Use Cas

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論