軟件工程復(fù)習(xí)_第1頁
軟件工程復(fù)習(xí)_第2頁
軟件工程復(fù)習(xí)_第3頁
軟件工程復(fù)習(xí)_第4頁
軟件工程復(fù)習(xí)_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程復(fù)習(xí)軟件工程第一章概述軟件工程的概念定義:研究如何應(yīng)用一些科學(xué)理論和工程上的技術(shù)來指導(dǎo)軟件的開發(fā),用較少的投資獲得高質(zhì)量的軟件的一門學(xué)科。基本內(nèi)容:包括理論、結(jié)構(gòu)、方法、工具、環(huán)境與規(guī)范等。目標(biāo):以較少的投資獲得易維護(hù)、易理解、可靠和高效率的軟件產(chǎn)品。原則:即分解、抽象和信息隱蔽、一致性和確定性。原理:工程化和系統(tǒng)化。軟件工程軟件的分類基于軟件功能的劃分 系統(tǒng)軟件、支撐軟件、應(yīng)用軟件基于軟件工作方式的劃分實時處理軟件、分時軟件、交互式軟件、批處理軟件基于軟件規(guī)模的劃分微型軟件、小型軟件、中型軟件、大型軟件、巨大型軟件、極大型軟件基于軟件失效的影響進(jìn)行劃分基于軟件服務(wù)對象的范圍進(jìn)行劃分 定制軟件、產(chǎn)品軟件軟件工程軟件危機(jī):指計算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。具體表現(xiàn):產(chǎn)品不符合用戶的實際需要。軟件開發(fā)生產(chǎn)率不高,不能滿足客觀需要。軟件產(chǎn)品質(zhì)量差。對軟件開發(fā)成本和進(jìn)度的估計不準(zhǔn)確??删S護(hù)性差。軟件的文檔資料不完整和不合格。軟件成本逐年上升。軟件工程產(chǎn)生危機(jī)的原因用戶要求不明確缺乏正確的理論指導(dǎo)軟件規(guī)模越來越大軟件復(fù)雜度越來越高也有書上從宏觀和微觀方面去分析原因。軟件工程如何克服軟件危機(jī)用工程的方法進(jìn)行軟件生產(chǎn)軟件工程:用工程、科學(xué)和數(shù)學(xué)的方法和原則來研制、維護(hù)計算機(jī)軟件的有關(guān)技術(shù)及管理方法。軟件工程軟件工程的三要素方法、工具、過程方法過程工具軟件工程軟件工程軟件工程的三要素方法:軟件工程方法是完成軟件工程項目的技術(shù)手段,它支持項目計劃和估算、系統(tǒng)和軟件需求分析、軟件設(shè)計、編碼、測試和維護(hù)。工具:軟件工程使用的工具是人類在開發(fā)軟件的活動中智力和體力的擴(kuò)展和延伸,它自動或半自動地支持軟件的開發(fā)和管理、支持各種軟件文檔的生成。過程:軟件工程中的過程貫穿于整個工程的各個環(huán)節(jié),在這個過程中,管理人員應(yīng)對軟件開發(fā)的質(zhì)量、進(jìn)度、成本等進(jìn)行評估和管理、控制,包括計劃跟蹤與控制、成本估算、人員的組織、質(zhì)量保證、配置管理等。軟件工程軟件開發(fā)的生命周期基本原則(1)用戶參與的原則;(2)“先邏輯,后物理”的原則;(3)“自頂向下”的原則;(4)工作成果描述標(biāo)準(zhǔn)化的原則。軟件工程第2章軟件生命周期過程模型軟件生命周期的六個階段1、問題的定義及規(guī)劃:此階段是軟件開發(fā)方與需求方共同討論,主要確定軟件的開發(fā)目標(biāo)及其可行性。2、需求分析:在確定軟件開發(fā)可行的情況下,對軟件需要實現(xiàn)的各個功能進(jìn)行詳細(xì)分析。3、軟件設(shè)計:此階段主要根據(jù)需求分析的結(jié)果,對整個軟件系統(tǒng)進(jìn)行設(shè)計,軟件設(shè)計一般分為總體設(shè)計和詳細(xì)設(shè)計。好的軟件設(shè)計將為軟件程序編寫打下良好的基礎(chǔ)。4、程序編寫:此階段是將軟件設(shè)計的結(jié)果轉(zhuǎn)換成計算機(jī)可運(yùn)行的程序代碼。5、軟件測試在軟件設(shè)計完成后要經(jīng)過嚴(yán)密的測試,以發(fā)現(xiàn)軟件在整個設(shè)計過程中存在的問題并加以糾正。6、運(yùn)行維護(hù):軟件維護(hù)是軟件生命周期中持續(xù)時間最長的階段。軟件工程瀑布模型(WaterfallModel

)瀑布模型將軟件生命周期劃分為制定計劃、需求分析、軟件設(shè)計、程序編寫、軟件測試和運(yùn)行維護(hù)等六個基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。需求分析

計劃設(shè)計

編碼測試運(yùn)行維護(hù)軟件工程螺旋模型

1988年,BarryBoehm正式發(fā)表了軟件系統(tǒng)開發(fā)的“螺旋模型”它將瀑布模型和演化模型結(jié)合起來,強(qiáng)調(diào)了其它模型所忽視的風(fēng)險分析,特別適合于大型復(fù)雜的系統(tǒng)。

螺旋模型沿著螺線進(jìn)行若干次迭代:

(1)制定計劃:確定軟件目標(biāo),選定實施方案,弄清項目開發(fā)的限制條件;

(2)風(fēng)險分析:分析評估所選方案,考慮如何識別和消除風(fēng)險;

(3)實施工程:實施軟件開發(fā)和驗證;

(4)客戶評估:評價開發(fā)工作,提出修正建議,制定下一步計劃。軟件工程螺旋模型優(yōu)勢通過原型的建立,使軟件開發(fā)在每個迭代的最初明確方向;通過風(fēng)險分析,最大程度地降低軟件徹底失敗造成損失的可能性;在每個迭代階段植入軟件測試,是每個階段的質(zhì)量得到保證;整體過程具備很高的靈活性,在開發(fā)過程的任何階段自由應(yīng)對變化;每個迭代階段累計開發(fā)成本,使支出狀況容易掌握;通過對用戶反饋的采集,與用戶溝通,以保證用戶需求的最大實現(xiàn);缺陷過分依賴風(fēng)險分析經(jīng)驗與技術(shù),一旦在風(fēng)險分析過程中出現(xiàn)偏差將造成重大損失;過于靈活的開發(fā)過程不利于已經(jīng)簽署合同的客戶與開發(fā)者之間的協(xié)調(diào);由于只適用大型軟件,過大的風(fēng)險管理支出會影響客戶的最終收益;軟件工程第三章需求分析需求分析的任務(wù)需求分析指的是在建立一個新的或改變一個現(xiàn)存的系統(tǒng)或產(chǎn)品時,確定新系統(tǒng)的目的、范圍、定義和功能時所要做的所有工作。需求分析是軟件工程中的一個關(guān)鍵過程。需求分析就是分析軟件用戶的需求是什么,用規(guī)范的格式表達(dá)出來。需求分析雖處于軟件開發(fā)過程的初期階段,但它對于整個軟件開發(fā)過程以及軟件產(chǎn)品質(zhì)量是至關(guān)重要的。隨著軟件系統(tǒng)復(fù)雜性的提高及規(guī)模的擴(kuò)大,需求分析在軟件開發(fā)中的所處的地位愈加突出,從而也愈加困難。簡而言之,需求分析的任務(wù)就是解決"做什么"的問題,就是要全面地理解用戶的各項要求,并準(zhǔn)確地表達(dá)所接受的用戶需求.軟件工程需求的類型通常的需求分為兩種類型:功能性需求和非功能性需求。功能性需求是用來描述系統(tǒng)能夠提供哪些功能來解決用戶提出的問題。比如:用例模型的描述。非功能性需求指軟件產(chǎn)品為滿足用戶業(yè)務(wù)需求而必須具有且除功能需求以外的特性。軟件產(chǎn)品的非功能性需求包括系統(tǒng)的性能、可靠性、可維護(hù)性、可擴(kuò)充性和對技術(shù)和對業(yè)務(wù)的適應(yīng)性等。如使用速度、系統(tǒng)恢復(fù)時間、響應(yīng)時間、安全性。非功能性需求涉及的范圍很廣,軟件產(chǎn)品本身不是孤立存在的,還涉及到諸多外在環(huán)境的影響。非功能性需求必須考慮軟件既要可用,又要易用。

軟件工程獲取需求的途徑一個項目,如果從開發(fā)方和使用方對需求的清楚程度來分,大致可以分為如下四種:開發(fā)方和使用方都清楚項目需求;開發(fā)方不清楚項目需求但使用方清楚;開發(fā)方和使用方都不清楚項目需求;開發(fā)方清楚項目需求但使用方不清楚。針對這四種類型的項目,總結(jié)出四種對應(yīng)的需求獲取方法:問卷調(diào)查法、會議討論法、界面原型法和demo版系統(tǒng)法。對于不同項目還有其它的方法可以使用,如組織人員、客戶訪談、收集相關(guān)的資料等。軟件工程需求規(guī)格說明書軟件需求規(guī)格說明作為產(chǎn)品需求的最終成果必須具有綜合性:必須包括所有的需求。開發(fā)者和客戶不能作任何假設(shè)。如果任何所期望的功能或非功能需求未寫入軟件需求規(guī)格說明那么它將不能作為協(xié)議的一部分并且不能在產(chǎn)品中出現(xiàn)。只有在仔細(xì)分析和理解了用戶的需求之后,才能按用戶的需求做出一份規(guī)范的需求規(guī)格說明書。軟件工程需求描述技術(shù)結(jié)構(gòu)化技術(shù)結(jié)構(gòu)化開發(fā)方法(StructuredDevelopingMethod)是現(xiàn)有的軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點是快速、自然和方便。結(jié)構(gòu)化開發(fā)方法由結(jié)構(gòu)化分析方法(SA法)、結(jié)構(gòu)化設(shè)計方法(SD法)及結(jié)構(gòu)化程序設(shè)計方法(SP法)構(gòu)成的。結(jié)構(gòu)化分析(StructuredAnalysis,簡稱SA法)方法是面向數(shù)據(jù)流的需求分析方法,是70年代末由Yourdon,Constaintine及DeMarco等人提出和發(fā)展,并得到廣泛的應(yīng)用。它適合于分析大型的數(shù)據(jù)處理系統(tǒng),特別是企事業(yè)管理系統(tǒng)。SA法也是一種建模的活動,主要是根據(jù)軟件內(nèi)部的數(shù)據(jù)傳遞、變換關(guān)系,自頂向下逐層分解,描繪出滿足功能要求的軟件模型。軟件工程SA法概述

結(jié)構(gòu)化分析方法的基本思想是“分解”和“抽象”。分解:是指對于一個復(fù)雜的系統(tǒng),為了將復(fù)雜性降低到可以掌握的程度,可以把大問題分解成若干小問題,然后分別解決。抽象:分解可以分層進(jìn)行,即先考慮問題最本質(zhì)的屬性,暫把細(xì)節(jié)略去,以后再逐層添加細(xì)節(jié),直至涉及到最詳細(xì)的內(nèi)容,這種用最本質(zhì)的屬性表示一個自系統(tǒng)的方法就是“抽象”。軟件工程SA法的描述工具

⑴分層的數(shù)據(jù)流圖⑵數(shù)據(jù)詞典⑶描述加工邏輯的結(jié)構(gòu)化語言、判定表或判定樹。軟件工程數(shù)據(jù)流圖數(shù)據(jù)流圖(DataFlowDiagram,簡稱DFD)是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具,它標(biāo)識了一個系統(tǒng)的邏輯輸入和邏輯輸出,以及把邏輯輸入轉(zhuǎn)換邏輯輸出所需的加工處理。數(shù)據(jù)流圖的圖符數(shù)據(jù)流圖有以下4種基本圖形符號:箭頭表示數(shù)據(jù)流,圓或橢圓表示加工。雙杠或者單杠表示數(shù)據(jù)存儲,矩形框表示數(shù)據(jù)的源點或終點,即外部實體。軟件工程例:畫出圖書預(yù)定系統(tǒng)的DFD圖?,F(xiàn)有一圖書預(yù)定系統(tǒng),接收由顧客發(fā)來的訂單,并對訂單進(jìn)行驗證,驗證過程是根據(jù)圖書目錄檢查訂單的正確性,同時根據(jù)顧客檔案確定是新顧客還是老顧客,是否有信譽(yù)。經(jīng)過驗證的正確訂單,暫存放在待處理的訂單文件中。對訂單進(jìn)行成批處理,根據(jù)出版社檔案,將訂單按照出版社進(jìn)行分類匯總,并保存訂單存根,然后將匯總訂單發(fā)往各出版社。畫圖步驟是:⑴首先確定外部實體(顧客、出版社)及輸入、輸出數(shù)據(jù)流(訂單、出版社訂單)。⑵再分解頂層的加工(驗證訂單、匯總訂單)。⑶確定所使用的文件(圖書目錄文件、顧客檔案等5個文件)。⑷用數(shù)據(jù)流將各部分連接起來,形成數(shù)據(jù)封閉。軟件工程圖書預(yù)定系統(tǒng)DFD:顧客出版社訂單出版社圖書目錄文件出版社檔案文件待處理訂單文件顧客檔案訂貨存根文檔驗證匯總訂單正確訂單批訂單軟件工程有限狀態(tài)機(jī)(FSM)有限狀態(tài)機(jī)(FiniteStateMachine)簡稱狀態(tài)機(jī),是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動作等行為的數(shù)學(xué)模型。狀態(tài)反映從系統(tǒng)開始到現(xiàn)在時刻的輸入變化。轉(zhuǎn)移指示狀態(tài)變更,并且用必須滿足來確使轉(zhuǎn)移發(fā)生的條件來描述它。動作是在給定時刻要進(jìn)行的活動的描述。有多種類型的動作:進(jìn)入動作:在進(jìn)入狀態(tài)時進(jìn)行退出動作:在退出狀態(tài)時進(jìn)行輸入動作:依賴于當(dāng)前狀態(tài)和輸入條件進(jìn)行轉(zhuǎn)移動作:在進(jìn)行特定轉(zhuǎn)移時進(jìn)行

軟件工程有限狀態(tài)是由下列各項規(guī)定所決定的:

1.狀態(tài)有限集S={S0,S1,S2,......}。

2.集合S的特殊元素S0,即為起始狀態(tài)(initailstate)。

3.輸入字母有限集I={i1,i2,......}。

4.輸出字母有限集O={o1,o2,......}。

5.S×I映至S的函數(shù)f,即轉(zhuǎn)換函數(shù)(transitionfunction)。

6.S映至O的函數(shù)g,即為輸出函數(shù)(outputfunction)。軟件工程狀態(tài)圖軟件工程第四章概要設(shè)計概要設(shè)計的概念軟件設(shè)計階段的工作是以上一階段的成果為前提和基礎(chǔ)的。軟件設(shè)計階段包括:概要設(shè)計和詳細(xì)設(shè)計兩個階段。概要設(shè)計的基本目的:概括地說,系統(tǒng)應(yīng)該如何做。軟件工程概要設(shè)計可分為:數(shù)據(jù)設(shè)計:把分析階段建立的信息描述轉(zhuǎn)換為實現(xiàn)軟件所要求的數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)結(jié)構(gòu)設(shè)計:該設(shè)計定義軟件系統(tǒng)各主要部件、成分之間的關(guān)系。過程設(shè)計:把結(jié)構(gòu)成分轉(zhuǎn)換成軟件的過程性描述,即完成每一個部件的過程化描述軟件工程概要設(shè)計的工具概要設(shè)計主要是完成軟件模塊的劃分,所以概要設(shè)計工具重點在表達(dá)軟件的結(jié)構(gòu),即模塊劃分與模塊之間的關(guān)系。常用的工具有:HIPO圖:(hierarchyplusinput-process-output)是IBM公司于70年代中期在層次結(jié)構(gòu)圖(structurechart)的基礎(chǔ)上推出的一種描述系統(tǒng)結(jié)構(gòu)和模塊內(nèi)部處理功能的工具。結(jié)構(gòu)圖:結(jié)構(gòu)圖是準(zhǔn)確表達(dá)程序結(jié)構(gòu)的圖形表示方法,它能清楚地反映出程序中各模塊間的層次關(guān)系和聯(lián)系。

軟件工程模塊獨立性模塊獨立性指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。模塊內(nèi)部各部分及模塊間的關(guān)系的一種衡量標(biāo)準(zhǔn),由內(nèi)聚和耦合來度量。具有獨立的模塊的軟件比較容易開發(fā)出來。這是由于能夠分割功能而且接口可以簡化,當(dāng)許多人分工合作開發(fā)同一個軟件時,這個優(yōu)點尤其重要。獨立的模塊比較容易測試和維護(hù)。這是因為相對說來,修改設(shè)計和程序需要的工作量比較小,錯誤傳播范圍小,需要擴(kuò)充功能時能夠"插入"模塊??傊K獨立是優(yōu)秀設(shè)計的關(guān)鍵,而設(shè)計又是決定軟件質(zhì)量的關(guān)鍵環(huán)節(jié)。軟件工程模塊的耦合性獨立的模塊之間一般是相互關(guān)聯(lián)的,很少相互獨立。模塊獨立性可以用兩個定義標(biāo)準(zhǔn)來度量:耦合和內(nèi)聚。耦合性是程序結(jié)構(gòu)中各個模塊之間相互關(guān)聯(lián)的度量。它取決于各個模塊之間接口的復(fù)雜程度、調(diào)用模塊的方式以及哪些信息通過接口。耦合的強(qiáng)弱取決于模塊間接口的復(fù)雜性、進(jìn)入或調(diào)用模塊的位置、方式以及通過接口傳送數(shù)據(jù)的多少等。模塊間的耦合程度直接影響系統(tǒng)的可理解性、可靠性和可維護(hù)性。軟件工程耦合的強(qiáng)弱等級簡接耦合數(shù)據(jù)耦合特征耦合控制耦合公共耦合外部耦合內(nèi)容耦合低耦合性模塊獨立性高強(qiáng)弱軟件工程模塊的內(nèi)聚性內(nèi)聚性又稱塊內(nèi)聯(lián)系。指模塊的功能強(qiáng)度的度量,即一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量。若一個模塊內(nèi)各元素(語名之間、程序段之間)聯(lián)系的越緊密,則它的內(nèi)聚性就越高。內(nèi)聚性越高越好。

功能性內(nèi)聚順序性內(nèi)聚通信性內(nèi)聚過程性內(nèi)聚邏輯性內(nèi)聚時間性內(nèi)聚偶然性內(nèi)聚高內(nèi)聚性模塊獨立性低強(qiáng),功能單一弱,功能分散軟件工程結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化程序設(shè)計由迪克斯特拉(E.W.dijkstra)在1969年提出,是以模塊化設(shè)計為中心,將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨立的模塊,這樣使完成每一個模塊的工作變單純而明確,為設(shè)計一些較大的軟件打下了良好的基礎(chǔ)。結(jié)構(gòu)化設(shè)計方法給出一組幫助設(shè)計人員在模塊層次上區(qū)分設(shè)計質(zhì)量的原理與技術(shù)。它通常與結(jié)構(gòu)化分析方法(SA法)銜接起來使用,以數(shù)據(jù)流圖為基礎(chǔ)得到軟件的模塊結(jié)構(gòu)。結(jié)構(gòu)化設(shè)計方法是基于模塊化、自頂向下細(xì)化、結(jié)構(gòu)化程序設(shè)計等程序設(shè)計技術(shù)基礎(chǔ)發(fā)展起來的?;舅枷耄簩④浖O(shè)計成由相對獨立且具有單一功能的模塊組成的結(jié)構(gòu),分為概要設(shè)計和詳細(xì)設(shè)計兩個階段。軟件工程SC圖:結(jié)構(gòu)圖是軟件結(jié)構(gòu)概要設(shè)計階段的工具。反映系統(tǒng)的功能實現(xiàn)以及模塊與模塊之間的聯(lián)系與通信,即反映了系統(tǒng)的總體結(jié)構(gòu)。SC圖的組成符號:模塊:一般地,在軟件系統(tǒng)的軟件結(jié)構(gòu)圖中,有6種類型的模塊:傳入模塊、傳出模塊、變換模塊、協(xié)調(diào)模塊、源模塊和漏模塊。調(diào)用關(guān)系:在軟件結(jié)構(gòu)圖中,模塊間的調(diào)用關(guān)系主要有三種:順序調(diào)用、選擇調(diào)用和循環(huán)調(diào)用。數(shù)據(jù)或控制信息:在軟件結(jié)構(gòu)中,模塊傳遞的信息用帶名稱的短線箭頭來表示。箭頭方向代表信息傳遞的方向。軟件工程SD方法約定用矩形框表示模塊,用帶箭頭的連線表示模塊間的調(diào)用關(guān)系,在調(diào)用線的兩旁,應(yīng)標(biāo)出傳入和傳出模塊的數(shù)據(jù)流。SC圖允許使用6種模塊,其中傳入、傳出和變換模塊用來組成變換結(jié)構(gòu)中的各個相應(yīng)部分。源模塊是不調(diào)用其他模塊的傳入模塊,只使用于部分的始端。漏模塊是不調(diào)用其他模塊的傳出模塊,僅用于傳出部分的末端??刂颇K是只調(diào)用其他模塊,不受其他模塊調(diào)用的模塊。XY傳入XY傳出XY變換X源X漏X控制Y…軟件工程結(jié)構(gòu)圖的基本術(shù)語深度:模塊結(jié)構(gòu)的層次數(shù)(控制的層數(shù))。寬度:同一層模塊的最大模塊數(shù)。扇出:一個模塊直接調(diào)用的其他模塊數(shù)目。扇入:調(diào)用一個給定模塊的模塊個數(shù)。(被調(diào)用的次數(shù))好的軟件結(jié)構(gòu)應(yīng)該是頂層扇出比較多,中層扇出較少,底層扇入多。第五章詳細(xì)設(shè)計概要設(shè)計與詳細(xì)設(shè)計的區(qū)別及聯(lián)系聯(lián)系:概要設(shè)計是詳細(xì)設(shè)計的基礎(chǔ)詳細(xì)設(shè)計必須遵循概要設(shè)計來進(jìn)行區(qū)別概要設(shè)計里面的數(shù)據(jù)庫設(shè)計應(yīng)該重點在描述數(shù)據(jù)關(guān)系上,說明數(shù)據(jù)的來龍去脈。詳細(xì)設(shè)計里的數(shù)據(jù)庫設(shè)計就應(yīng)該是一份完善的數(shù)據(jù)結(jié)構(gòu)文檔,就是一個包括類型、命名、精度、字段說明、表說明等內(nèi)容的數(shù)據(jù)字典。概要設(shè)計里的功能應(yīng)該是重點在功能描述,詳細(xì)設(shè)計則是重點在描述系統(tǒng)的實現(xiàn)方式,各模塊詳細(xì)說明實現(xiàn)功能所需的類及具體的方法函數(shù),包括涉及到的SQL語句等。軟件工程詳細(xì)設(shè)計的任務(wù)詳細(xì)設(shè)計就是要在總體設(shè)計階段成果的基礎(chǔ)上,考慮如何實現(xiàn)定義的軟件系統(tǒng)。為每個模塊給出足夠詳細(xì)的過程描述,使得在編碼階段可以把這個描述直接翻譯成程序。詳細(xì)設(shè)計的結(jié)果決定了最終的程序代碼質(zhì)量。詳細(xì)設(shè)計的目標(biāo)有兩個:模塊功能的算法在邏輯上要正確算法描述要簡明易懂。軟件工程詳細(xì)設(shè)計的基本任務(wù):為每個模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計。對數(shù)據(jù)庫進(jìn)行設(shè)計,即確定數(shù)據(jù)庫的物理結(jié)構(gòu)。

為每個模塊進(jìn)行詳細(xì)的算法設(shè)計。界面設(shè)計其他設(shè)計:代碼設(shè)計、輸入/輸出格式設(shè)計、人機(jī)對話設(shè)計。編寫詳細(xì)設(shè)計說明書。評審。軟件工程詳細(xì)設(shè)計的方法傳統(tǒng)軟件開發(fā)方法的詳細(xì)設(shè)計主要是用結(jié)構(gòu)化程序設(shè)計法。詳細(xì)設(shè)計的表示工具有圖形工具和語言工具。圖形工具有業(yè)務(wù)流圖、程序流程圖、PAD圖、NS圖。語言工具有偽碼和PDL等。在詳細(xì)設(shè)計階段,要決定各個模塊的實現(xiàn)算法,并精確地表達(dá)這些算法。軟件工程結(jié)構(gòu)化語言結(jié)構(gòu)化語言是介于自然語言和形式化語言之間的一種類自然語言,專門用來描述加工邏輯。它既有自然語言靈活性強(qiáng)、表達(dá)豐富的特點,又有結(jié)構(gòu)化程序的清晰易讀和邏輯嚴(yán)密的特點。

結(jié)構(gòu)化語言語法結(jié)構(gòu)包括內(nèi)外兩層,外層可以有多層,相互嵌套。外層語法比較具體,內(nèi)層語法則比較靈活。外層語法用來描述控制結(jié)構(gòu),通常采用人們已熟知的幾種標(biāo)準(zhǔn)結(jié)構(gòu),如順序、選擇和循環(huán),這些控制結(jié)構(gòu)將加工中的各個操作連接起來。內(nèi)層語法具有以下特點:語態(tài):只有祈使句一種,能明確地表達(dá)“做什么”。詞匯一般用數(shù)據(jù)詞典中定義過的名詞或自定義的詞。動詞避免使用空洞的詞,如handle、process。沒有形容詞、副詞等修飾語。可以用一些常用的運(yùn)算符、關(guān)系符等。結(jié)構(gòu)化語言例子判定表判定表能夠清晰地表示復(fù)雜的條件組合與動作之間的對應(yīng)關(guān)系。判定表的組成:左上部列出所有條件,左下部是所有可能做的動作,右上部是表示各種條件組合的一個矩陣,右下部是和每種條件組合相對應(yīng)的動作。判定表右半部的每列是一條規(guī)則,規(guī)定了與特定的條件組合相對應(yīng)的動作。判定表的優(yōu)缺點:能夠簡潔而又無歧義地描述處理規(guī)則。結(jié)合布爾代數(shù)或卡諾圖可以對判定表進(jìn)行校驗或化簡。不能同時清晰表示順序和重復(fù)等處理特性。條件樁條件條目操作樁操作條目判定樹判定樹本質(zhì)上是和判定表一樣的。當(dāng)數(shù)據(jù)元素的值多于兩個時判定表的簡潔程度也將下降。判定樹是判定表的變形,當(dāng)用戶不易接受判定表這種描述方式時,可以使用判定樹這種形式。判定樹可以清晰的表示復(fù)雜的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系。判定樹是一種圖形表示方式,更易被用戶理解。例子航空公司規(guī)定乘客可以免費(fèi)托運(yùn)的行李小于等于30公斤,若行李重量大于30公斤,則一般艙的國內(nèi)乘客超重部分6元/公斤,頭等艙國內(nèi)乘客4元/公斤,國外乘客相應(yīng)比國內(nèi)乘客多一倍,殘疾乘客比正常乘客少一半。用判定表和判定樹分別表示。123456789國內(nèi)乘客TTTTFFFF頭等艙TFTFTFTF殘疾乘客FFTTFFTT行李重量≤30FFFFFFFF免費(fèi)√(W-30)x2√(W-30)x3√(W-30)x4√√(W-30)x6√√(W-30)x8√(W-30)x12√判定樹結(jié)構(gòu)化程序設(shè)計(SP法)結(jié)構(gòu)化程序設(shè)計是E.W.Dijikstra在1965年提出的。它的主要觀點是采用自頂向下、逐步求精的程序設(shè)計方法;使用三種基本控制結(jié)構(gòu)構(gòu)造程序,任何程序都可由順序、選擇、循環(huán)三種基本控制結(jié)構(gòu)構(gòu)造。結(jié)構(gòu)化程序設(shè)計方法用于詳細(xì)設(shè)計和編程階段,用于指導(dǎo)人們用良好的思想方法開發(fā)出易于理解又正確的程序。任何程序邏輯都可用順序、選擇和循環(huán)三種基本結(jié)構(gòu)及選擇和循環(huán)的擴(kuò)充結(jié)構(gòu)來表示。如圖:AB順序結(jié)構(gòu)ABA選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法的最終目標(biāo)是得出對程序處理過程的描述。這種設(shè)計方法并不明顯地使用軟件結(jié)構(gòu)的概念,模塊是設(shè)計過程的副產(chǎn)品,對于模塊獨立原理也沒有給予應(yīng)有的重視。這種方法最適合于在詳細(xì)設(shè)計階段使用,也就是說,在完成了軟件結(jié)構(gòu)設(shè)計之后,可以使用面向數(shù)據(jù)結(jié)構(gòu)的方法來設(shè)計每個模塊的處理過程。Jackson方法和Warnier方法是最著名的兩個面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法。軟件工程第六章編碼與語言選擇編碼的目的和任務(wù)軟件開發(fā)的最終目的,就是能夠產(chǎn)生能在計算機(jī)上執(zhí)行的程序。在分析階段和設(shè)計階段的求解方案,都要通過某種計算機(jī)語言的表述,使得計算機(jī)能夠執(zhí)行。編碼階段也就是實現(xiàn)階段,就是將軟件需求真正付諸實現(xiàn),產(chǎn)生機(jī)器可運(yùn)行代碼的過程。編程階段主要內(nèi)容包括編程方法及編程語言的確定、程序內(nèi)部文檔的書寫、編程風(fēng)格的討論以及程序效率的考慮等。

編程相對來說是容易的,而且大部分編程工作可由計算機(jī)自動完成,但是要編出質(zhì)量好的程序也不是一件容易的事。希望大家掌握有關(guān)編程方法、編寫程序內(nèi)部文檔;注意編程風(fēng)格及程序的效率。軟件工程編碼的目的,是使用選定的程序設(shè)計語言,把模塊的過程性描述翻譯成為用該語言編寫的源程序。編程階段的任務(wù)是為每個模塊編寫程序。

編碼階段首先遇到的問題是怎樣選擇一種合適的程序設(shè)計語言。然后考慮在軟件工程背景下,怎樣編寫“良好的”程序。一個“良好”的程序應(yīng)該是邏輯上正確又易于閱讀的程序。具有良好可讀性的程序,易于理解、易于維護(hù),而且隱含錯誤的可能性也將大大降低。使程序“簡單”和“清晰”。具體技巧和方法:SP方法進(jìn)行詳細(xì)設(shè)計。程序中包含說明性材料。良好的程序書寫格式。編程風(fēng)格等。軟件工程程序設(shè)計語言范型基于計算機(jī)模型進(jìn)行分類,主要有四種范型:命令式語言、函數(shù)式語言、邏輯式語言與面向?qū)ο笫秸Z言。命令式的語言需要程序員清楚的告訴計算機(jī)的某個具體實現(xiàn),他應(yīng)該如何運(yùn)行,而不會通知他為什么這樣做。命令式語言編寫的程序是站在計算模型實現(xiàn)的角度來看待要解決的計算問題,因此產(chǎn)生的代碼帶有很強(qiáng)的“地域性”,被限定在具體的實現(xiàn)之上。我們常見的編程語言:C,C++,Basic等都是命令式語言。命令式語言還演化成“結(jié)構(gòu)化編程”和“面向?qū)ο缶幊獭眱蓚€階段。

軟件工程結(jié)構(gòu)化編程(SP法)SP方法是提高程序可讀性的關(guān)鍵。提高程序可讀性的關(guān)鍵是使程序結(jié)構(gòu)簡單清晰,SP方法是達(dá)到這一目標(biāo)的根本手段。

SP方法的基本精神是按由頂向下逐步細(xì)化的方式用三種標(biāo)準(zhǔn)控制結(jié)構(gòu)反復(fù)嵌套來構(gòu)造一個程序。

SP方法的優(yōu)點:

產(chǎn)生的程序簡單清晰,它由許多塊組成,每塊只有一個入口和一個出口。這種程序稱為結(jié)構(gòu)化程序,結(jié)構(gòu)化程序易于測試、排錯和修改、易于閱讀、易于驗證。

軟件工程面向?qū)ο蟪绦蛟O(shè)計語言一個語言要稱為面向?qū)ο笳Z言必須支持幾個主要面向?qū)ο蟮母拍?。根?jù)支持程度的不同,通常所說的面向?qū)ο笳Z言可以分成兩類:基于對象的語言,面向?qū)ο蟮恼Z言。基于對象的語言僅支持類和對象,而面向?qū)ο蟮恼Z言支持的概念包括:類與對象、繼承、多態(tài)。面向?qū)ο蟪绦蛟O(shè)計的出發(fā)點之一就是彌補(bǔ)面向過程程序設(shè)計中的一些缺點:對象是程序的基本元素,它將數(shù)據(jù)和操作緊密地連結(jié)在一起,并保護(hù)數(shù)據(jù)不會被外界的函數(shù)意外地改變。軟件工程編碼的風(fēng)格所謂的編碼風(fēng)格,不應(yīng)該把它理解成一種個性化的體現(xiàn),而要把它理解成一種規(guī)范。只有大家都遵循同一種風(fēng)格,同一種規(guī)范,那么,這種習(xí)慣才存在意義。養(yǎng)成良好的編碼風(fēng)格,對于IT大軍的新人來說,意義是格外重大的。它象是一種素質(zhì)的驗證,一種職業(yè)的體現(xiàn)。有良好編碼風(fēng)格的程序員未必是一個合格的程序員,但是沒有良好編碼風(fēng)格的程序員,一定不是一個合格的程序員。從個人的角度來講,養(yǎng)成良好的編碼風(fēng)格,也就是養(yǎng)成良好的編程習(xí)慣,這不僅能減少不必要的錯誤發(fā)生,加快個人的工作效率,還有助于交流,有助于學(xué)習(xí)。從企業(yè)的角度來講,旗下的每個員工都能夠養(yǎng)成良好(統(tǒng)一)的編碼風(fēng)格,能有助于同時與同事之間的溝通與交流,加快項目的開發(fā)進(jìn)度,減少維護(hù)時所帶來的壓力,進(jìn)而提高企業(yè)的效益。軟件工程第七章面向?qū)ο蠓椒嫦驅(qū)ο蟮幕靖拍蠲嫦驅(qū)ο?ObjectOriented,OO)是當(dāng)前計算機(jī)界關(guān)心的重點,它是90年代軟件開發(fā)方法的主流。面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計和軟件開發(fā),擴(kuò)展到很寬的范圍。如數(shù)據(jù)庫系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、CAD技術(shù)、人工智能等領(lǐng)域。傳統(tǒng)開發(fā)方法存在問題軟件重用性差軟件可維護(hù)性差開發(fā)出的軟件不能滿足用戶需要面向?qū)ο蟪绦蛟O(shè)計與傳統(tǒng)的思想剛好相反:傳統(tǒng)的程序設(shè)計主張將程序看作一系列函數(shù)的集合,或者直接就是一系列對電腦下達(dá)的指令。面向?qū)ο蟪绦蛟O(shè)計中的每一個對象都應(yīng)該能夠接受數(shù)據(jù)、處理數(shù)據(jù)并將數(shù)據(jù)傳達(dá)給其它對象,因此它們都可以被看作一個小型的“機(jī)器”,或者說是負(fù)有責(zé)任的角色。軟件工程假如軟件能直接表現(xiàn)人求解問題的思維路徑(即求解問題的方法),那么軟件不僅容易被人理解,而且易于維護(hù)和修改,從而會保證軟件的可靠性和可維護(hù)性,并能提高公共問題域中的軟件模塊和模塊重用的可靠性。面向?qū)ο蟮臋C(jī)能和機(jī)制恰好可以使得按照人們通常的思維方式來建立問題域的模型,設(shè)計出盡可能自然地表現(xiàn)求解方法的軟件。面向?qū)ο蟮幕靖拍畎ǎ簩ο蟆㈩?、消息等軟件工程對象對象是人們要進(jìn)行研究的任何事物,從一本書到一家圖書館,單個的整數(shù)到整數(shù)列龐大的數(shù)據(jù)庫、極其復(fù)雜的自動化工廠、航天飛機(jī)都可看作對象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計劃或事件。

對象的狀態(tài)和行為。對象具有狀態(tài),一個對象用數(shù)據(jù)值來描述它的狀態(tài)。對象還有操作,用于改變對象的狀態(tài),對象及其操作就是對象的行為。對象實現(xiàn)了數(shù)據(jù)和操作的結(jié)合,使數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中。軟件工程類類是對象的模板。即類是對一組有相同數(shù)據(jù)和相同操作的對象的定義,一個類所包含的方法和數(shù)據(jù)描述一組對象的共同屬性和行為。類是在對象之上的抽象,對象則是類的具體化,是類的實例。類具有屬性,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性。類具有操作,它是對象的行為的抽象,用操作名和實現(xiàn)該操作的方法來描述。類可有其子類,也可有其它類,形成類層次結(jié)構(gòu)。軟件工程消息對象之間進(jìn)行通信的結(jié)構(gòu)叫做消息。在對象的操作中,當(dāng)一個消息發(fā)送給某個對象時,消息包含接收對象去執(zhí)行某種操作的信息。發(fā)送一條消息至少要包括說明接受消息的對象名、發(fā)送給該對象的消息名(即對象名、方法名)。一般還要對參數(shù)加以說明,參數(shù)可以是認(rèn)識該消息的對象所知道的變量名,或者是所有對象都知道的全局變量名。消息是對象之間進(jìn)行通信的一種規(guī)格說明。一般它由三部分組成:接收消息的對象、消息名及實際變元。軟件工程面向?qū)ο箝_發(fā)方法的特點抽象性。抽象性是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對象抽象成類。一個類就是這樣一種抽象,它反映了與應(yīng)用有關(guān)的重要性質(zhì),而忽略其他一些無關(guān)內(nèi)容。任何類的劃分都是主觀的,但必須與具體的應(yīng)用有關(guān)。對象唯一性。每個對象都有自身唯一的標(biāo)識,通過這種標(biāo)識,可找到相應(yīng)的對象。在對象的整個生命期中,它的標(biāo)識都不改變,不同的對象不能有相同的標(biāo)識。軟件工程繼承性繼承性是子類自動共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。在定義和實現(xiàn)一個類的時候,可以在一個已經(jīng)存在的類的基礎(chǔ)之上來進(jìn)行,把這個已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新的內(nèi)容。繼承性是面向?qū)ο蟪绦蛟O(shè)計語言不同于其它語言的最重要的特點,是其他語言所沒有的。在類層次中,子類只繼承一個父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為單重繼承。在類層次中,子類繼承了多個父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為多重繼承。在軟件開發(fā)中,類的繼承性使所建立的軟件具有開放性、可擴(kuò)充性,這是信息組織與分類的行之有效的方法,它簡化了對象、類的創(chuàng)建工作量,增加了代碼的可重用性。采用繼承性,提供了類的規(guī)范的等級結(jié)構(gòu)。通過類的繼承關(guān)系,使公共的特性能夠共享,提高了軟件的重用性。軟件工程封裝性(信息隱藏)。封裝性是保證軟件部件具有優(yōu)良的模塊性的基礎(chǔ)。面向?qū)ο蟮念愂欠庋b良好的模塊,類定義將其說明(用戶可見的外部接口)與實現(xiàn)(用戶不可見的內(nèi)部實現(xiàn))顯式地分開,其內(nèi)部實現(xiàn)按其具體定義的作用域提供保護(hù)。對象是封裝的最基本單位。封裝防止了程序相互依賴性而帶來的變動影響。面向?qū)ο蟮姆庋b比傳統(tǒng)語言的封裝更為清晰、更為有力。軟件工程OO方法特點和優(yōu)缺點特點利用特定軟件直接從對象客體的描述到軟件結(jié)構(gòu)的轉(zhuǎn)換。解決了傳統(tǒng)結(jié)構(gòu)化方法中客觀世界描述工具與軟件結(jié)構(gòu)的不一致性。減少了從系統(tǒng)分析、設(shè)計到軟件模塊結(jié)構(gòu)之間的多次轉(zhuǎn)換映射的繁雜過程。OO方法優(yōu)缺點優(yōu)點:

是一種全新的系統(tǒng)分析設(shè)計方法(對象、類、結(jié)構(gòu)屬性、方法)。

適用于各類信息系統(tǒng)的開發(fā)。

實現(xiàn)了對客觀世界描述到軟件結(jié)構(gòu)的直接轉(zhuǎn)換,大大減少后續(xù)軟件開發(fā)量。

開發(fā)工作的重用性、繼承性高,降低重復(fù)工作量。

縮短了開發(fā)周期。

缺點:

需要一定的軟件支持環(huán)境。

不太適宜大型的MIS開發(fā),若缺乏整體系統(tǒng)設(shè)計劃分,易造成系統(tǒng)結(jié)構(gòu)不合理、各部分關(guān)系失調(diào)等問題。

只能在現(xiàn)有業(yè)務(wù)基礎(chǔ)上進(jìn)行分類整理,不能從科學(xué)管理角度進(jìn)行理順和優(yōu)化。

初學(xué)者不易接受、難學(xué)。軟件工程第8章統(tǒng)一建模語言UML統(tǒng)一建模語言簡介發(fā)展歷史統(tǒng)一建模語言(UML是UnifiedModelingLanguage的縮寫)是用來對軟件密集系統(tǒng)進(jìn)行可視化建模的一種語言。UML為面向?qū)ο箝_發(fā)系統(tǒng)的產(chǎn)品進(jìn)行說明、可視化、和編制文檔的一種標(biāo)準(zhǔn)語言。是一種面向?qū)ο蟮慕UZ言,它是運(yùn)用統(tǒng)一的、標(biāo)準(zhǔn)化的標(biāo)記和定義實現(xiàn)對軟件系統(tǒng)進(jìn)行面向?qū)ο蟮拿枋龊徒?。UML展現(xiàn)了一系列最佳工程實踐,這些最佳實踐在對大規(guī)模,復(fù)雜系統(tǒng)進(jìn)行建模方面,特別是在軟件架構(gòu)層次已經(jīng)被驗證有效。是非專利的第三代建模和規(guī)約語言。

軟件工程UML融合了Booch、OMT和OOSE方法中的基本概念,而且這些基本概念與其他面向?qū)ο蠹夹g(shù)中的基本概念大多相同,因而,UML必然成為這些方法以及其他方法的使用者樂于采用的一種簡單一致的建模語言。UML不僅僅是上述方法的簡單匯合,而是在這些方法的基礎(chǔ)上廣泛征求意見,集眾家之長,幾經(jīng)修改而完成的,UML擴(kuò)展了現(xiàn)有方法的應(yīng)用范圍。UML是標(biāo)準(zhǔn)的建模語言,而不是標(biāo)準(zhǔn)的開發(fā)過程。盡管UML的應(yīng)用必然以系統(tǒng)的開發(fā)過程為背景,但由于不同的組織和不同的應(yīng)用領(lǐng)域,需要采取不同的開發(fā)過程。軟件工程UML的目標(biāo)之一就是為開發(fā)團(tuán)隊提供標(biāo)準(zhǔn)通用的設(shè)計語言來開發(fā)和構(gòu)建計算機(jī)應(yīng)用。UML提出了一套IT專業(yè)人員期待多年的統(tǒng)一的標(biāo)準(zhǔn)建模符號。通過使用UML,這些人員能夠閱讀和交流系統(tǒng)架構(gòu)和設(shè)計規(guī)劃--就像建筑工人多年來所使用的建筑設(shè)計圖一樣。UML成為"標(biāo)準(zhǔn)"建模語言的原因之一在于,它與程序設(shè)計語言無關(guān)。而且,UML符號集只是一種語言而不是一種方法學(xué)。這點很重要,因為語言與方法學(xué)不同,它可以在不做任何更改的情況下很容易地適應(yīng)任何公司的業(yè)務(wù)運(yùn)作方式。軟件工程UML是用來描述模型的,它用模型來描述系統(tǒng)的結(jié)構(gòu)或靜態(tài)特征以及行為或動態(tài)特征,它從不同的視角為系統(tǒng)的架構(gòu)建模,形成系統(tǒng)的不同視圖view包括:

用例圖(Usecasediagrams)類圖(Classdiagrams)序列圖(Sequencediagrams)

狀態(tài)圖(Statechartdiagrams)合作圖(Collaborationdiagrams)活動圖(Activitydiagrams)構(gòu)件圖(Componentdiagrams)部署圖(Deploymentdiagrams)軟件工程幾個模型元素:關(guān)聯(lián)(association)是模型元素間的一種語義聯(lián)系,它是對具有共同的結(jié)構(gòu)特性、行為特性、關(guān)系和語義的鏈(link)的描述。(不同對象或類之間的結(jié)構(gòu)化關(guān)系)表示對象之間的聯(lián)系。在類圖中,關(guān)聯(lián)用一條把類連接在一起的實線表示。比如:學(xué)生與課程之間就是通過選課關(guān)系進(jìn)行關(guān)聯(lián)軟件工程聚合(aggregation)表示兩個類之間是“ispartof”關(guān)系,即整體與部分的關(guān)系。用橫線加空心菱形表示,菱形部分對應(yīng)整體一端。比如:學(xué)生是班級中的一部分軟件工程組合:表示整體與部分的有一關(guān)系,用一條實線加實心菱形來表示;它也是關(guān)聯(lián)關(guān)系的一種,但它是比聚合關(guān)系更強(qiáng)的關(guān)系.組合關(guān)系要求聚合關(guān)系中代表整體的對象要負(fù)責(zé)代表個體/部分的對象的整個生命周期;組合關(guān)系不能共享;在組合關(guān)系中,如果代表整體的對象被銷毀或破壞,那么代表個體/部分的對象也一定會被銷毀或破壞,而在聚合關(guān)系中,代表個體/部分的對象則有可能被多個代表整體的對象所共享,而不一定會隨著某個代表整體的對象被銷毀或破壞而被銷毀或破壞;

軟件工程依賴:表示一個元素以某種方式依賴于另一個元素,用一條虛線加箭頭來表示;依賴關(guān)系僅僅描述了類與類之間的一種使用與被使用的關(guān)系。

軟件工程泛

溫馨提示

  • 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

提交評論