




已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章 軟件工程概述一什么是軟件?1.滿足功能要求和性能的指令或計(jì)算機(jī)程序集合;2.處理信息的數(shù)據(jù)結(jié)構(gòu);3.描述程序功能以及程序如何操作和使用所要求的文檔;軟件的特點(diǎn):軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體,因而它具有抽象性。軟件是通過人們的智力活動(dòng),把知識(shí)與技術(shù)轉(zhuǎn)換成信息的一種產(chǎn)品,是在研制、開發(fā)中被創(chuàng)造出來的在軟件運(yùn)行和使用的期間,沒有硬件那樣的機(jī)械磨損、老化問題軟件的開發(fā)和運(yùn)行經(jīng)常受到計(jì)算機(jī)系統(tǒng)的限制,對(duì)計(jì)算機(jī)系統(tǒng)有著不同程度的依賴性軟件的開發(fā)至今尚未完全擺脫手工的開發(fā)方式軟件的開發(fā)費(fèi)用越來越高,成本相當(dāng)昂貴。二軟件危機(jī)以及產(chǎn)生軟件危機(jī)的原因1.軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)迅速普及的趨勢(shì)。軟件產(chǎn)品“供不應(yīng)求”。2.軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。3.軟件開發(fā)人員和用戶之間的信息交流往往很不充分,用戶對(duì)“已完成的”的軟件系統(tǒng)不滿足的現(xiàn)象經(jīng)常發(fā)生。4.軟件產(chǎn)品的質(zhì)量不容易保證。5.軟件產(chǎn)品常常是不可維護(hù)的。6.軟件產(chǎn)品的重用性差,同樣的軟件多次重復(fù)開發(fā)。7.軟件通常沒有適當(dāng)?shù)奈臋n資料。產(chǎn)生軟件危機(jī)的原因可歸結(jié)為兩個(gè)重要的方面:軟件生產(chǎn)本身存在的復(fù)雜性;軟件開發(fā)所使用的方法和技術(shù)。三、軟件危機(jī)1、軟件危機(jī)定義:軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。2、軟件危機(jī)的兩個(gè)主要問題:如何開發(fā)軟件,以滿足對(duì)軟件日益增長(zhǎng)的需求;如何維護(hù)數(shù)量不斷膨脹的已有軟件。3、軟件危機(jī)的典型表現(xiàn):(1) 對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。(2) 用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。(3) 軟件產(chǎn)品的質(zhì)量往往靠不住。(4) 軟件常常是不可維護(hù)的。(5) 軟件通常沒有適當(dāng)?shù)奈臋n資料。(6) 軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。(7) 軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)。軟件工程1、軟件工程定義:軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地、高效的開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。軟件工程準(zhǔn)則可以概括為7條基本原則:用分階段的生命周期計(jì)劃嚴(yán)格管理;堅(jiān)持進(jìn)行階段評(píng)審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)應(yīng)能清楚地審查結(jié)果合理安排軟件開發(fā)小組的人員承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性3、軟件工程方法學(xué)三要素:方法、工具和過程4、軟件生命周期(概念、三時(shí)期,八階段)軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)(也稱為軟件維護(hù))3個(gè)時(shí)期組成。軟件定義時(shí)期通常進(jìn)一步劃分成3個(gè)階段,即問題定義、可行性研究和需求分析。軟件開發(fā)時(shí)期分為4階段:總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、綜合測(cè)試 五、軟件開發(fā)模型:軟件開發(fā)模型是跨越整個(gè)軟件生存周期的系統(tǒng)開發(fā)、運(yùn)作、維護(hù)實(shí)施的全部工作和任務(wù)的結(jié)構(gòu)框架。1)瀑布模型瀑布模型即生存周期模型,由B.M.Boehm提出,是軟件工程的基礎(chǔ)模型。其核心思想是按工序?qū)栴}化簡(jiǎn),將功能的實(shí)現(xiàn)與設(shè)計(jì)分開,便于分工協(xié)作。采用結(jié)構(gòu)化的分析與設(shè)計(jì)方法,將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開。 特點(diǎn) 階段的順序性和依賴性(規(guī)范化) 推遲實(shí)現(xiàn)的觀點(diǎn)(系統(tǒng)化) 質(zhì)量保證(階段評(píng)審)l 存在問題 不適合需求模糊的系統(tǒng)(需求的迷糊性和不確定性)適用于操作系統(tǒng)、編譯系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)等系統(tǒng)軟件的開發(fā) 快速原型模型: 所謂快速原型是快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集??焖僭湍P偷牡谝徊绞强焖俳⒁粋€(gè)能反映用戶主要需求的原型系統(tǒng),讓用戶在計(jì)算機(jī)上試用它,通過實(shí)踐來了解目標(biāo)系統(tǒng)的概貌 3)增量模型:是瀑布模型的順序特征與快速原型法德迭代特征相結(jié)合的產(chǎn)物。這種模型把軟件看成一系列相互聯(lián)系的增量,在看法過程的各次迭代中,每次完成其中的一個(gè)增量。4)噴泉模型5)微軟過程 六、思考你認(rèn)為“軟件就是程序”這一個(gè)觀點(diǎn)正確嗎?如果不正確,請(qǐng)批駁之。1. 請(qǐng)從以下幾個(gè)方面結(jié)合自己的經(jīng)驗(yàn)實(shí)例加以論述。軟件就是程序的觀點(diǎn)是不正確的,因?yàn)檐浖扔诔绦蚣游臋n加數(shù)據(jù)。(1) 文檔是軟件的一個(gè)非常重要的組成部分,在軟件的開發(fā)過程中起著非常重要的作用。(2) 在軟件開發(fā)的每一個(gè)階段都應(yīng)有相應(yīng)的文檔。它是開發(fā)人員與用戶以及開發(fā)人員與項(xiàng)目管理人員之間交流的媒介(3) 文檔是軟件在不同階段的表現(xiàn)形式。(4) 程序與文檔必須一致,文檔才有價(jià)值。(5) 文檔質(zhì)量直接決定軟件質(zhì)量的高低。(6) 文檔也是軟件測(cè)試和維護(hù)的依據(jù)。在沒有文檔或文檔不全的情況下對(duì)大型軟件進(jìn)行測(cè)試與維護(hù)是不可思議的事情。(7) 文檔是軟件可重用的依據(jù)。2、有人說:軟件開發(fā)時(shí),一個(gè)錯(cuò)誤發(fā)現(xiàn)得越晚,為改正它所付出的代價(jià)就越大。對(duì)否?請(qǐng)解釋你的回答。 答:對(duì), 第二章 可行性研究 重點(diǎn)掌握的內(nèi)容:可行性研究的系統(tǒng)流程圖一般內(nèi)容:可行性研究的任務(wù)和步驟,成本效益分析一、可行使研究:1、 可行性研究的任務(wù):是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。一般來說,應(yīng)從經(jīng)濟(jì)可行性、技術(shù)可行性、運(yùn)行可行性、法律可行性和開發(fā)方案等方面研究可行性 可行性研究的目的:在明確了所要研究問題定義之后,分析員應(yīng)該在明確目標(biāo)系統(tǒng)所有限制和約束的前提下,去確定該問題是否值得去解決。(或就是用最小代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。)2、 可行性研究過程:1) 復(fù)查系統(tǒng)規(guī)模和目標(biāo)2) 研究目前正在使用的系統(tǒng)3) 導(dǎo)出新系統(tǒng)的高層邏輯模型4) 進(jìn)一步定義問題5) 導(dǎo)出和評(píng)價(jià)供選擇的解法6) 推薦行動(dòng)方針7) 草擬開發(fā)計(jì)劃8) 書寫文檔提交審查3、系統(tǒng)流程圖的定義和作用:可行性研究對(duì)現(xiàn)有系統(tǒng)做概括的物理模型描述,如用圖形工具表示則更加直觀簡(jiǎn)潔。系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具,它的基本思想是用圖形符號(hào)以黑盒子形式描繪系統(tǒng)里面的每個(gè)部件(程序、文件、數(shù)據(jù)庫(kù)、表格、人工過程等)。系統(tǒng)流程圖表達(dá)的是部件的信息流程,而不是對(duì)信息進(jìn)行加工處理的控制過程。在可行性研究過程中,利用系統(tǒng)流程圖來描述所建議系統(tǒng)的物理模型。 4、數(shù)據(jù)流程圖的定義和作用:數(shù)據(jù)流程圖有兩個(gè)特征:抽象性和概括性。l 抽象性指的是數(shù)據(jù)流程圖把具體的組織機(jī)構(gòu)、工作場(chǎng)所、物質(zhì)流都去掉,只剩下信息和數(shù)據(jù)存儲(chǔ)、流動(dòng)、使用以及加工情況。l 概括性則是指數(shù)據(jù)流程圖把系統(tǒng)對(duì)各種業(yè)務(wù)的處理過程聯(lián)系起來考慮,形成一個(gè)總體5、數(shù)據(jù)流程圖的組成元素?cái)?shù)據(jù)流圖可以用來抽象地表示系統(tǒng)或軟件。它從信息傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過程,同時(shí)可以按自頂向下、逐步分解的方法表示內(nèi)容不斷增加的數(shù)據(jù)流和功能細(xì)節(jié)。因此,數(shù)據(jù)流圖既提供了功能建模的機(jī)制,也提供了信息流建模的機(jī)制,從而可以建立起系統(tǒng)或軟件的功能模型。6、數(shù)據(jù)流程圖的組成:外部實(shí)體(外部實(shí)體是指系統(tǒng)之外的人或單位,它們和本系統(tǒng)有信息傳遞關(guān)系)數(shù)據(jù)流,處理、數(shù)據(jù)存儲(chǔ)。如何繪制數(shù)據(jù)流程圖(1)識(shí)別系統(tǒng)的輸入和輸出,畫出頂層圖(2)畫系統(tǒng)內(nèi)部的數(shù)據(jù)流、加工與文件,畫出一級(jí)細(xì)化圖(3)加工的進(jìn)一步分解,畫出二級(jí)細(xì)化圖(4)其它注意事項(xiàng)7、數(shù)據(jù)流程圖的注意點(diǎn)1)每個(gè)處理都必須有流入的數(shù)據(jù)流和流出的數(shù)據(jù)流,如果沒有,是錯(cuò)誤的。(數(shù)據(jù)守恒) 2)每個(gè)數(shù)據(jù)存儲(chǔ)應(yīng)該有流入的數(shù)據(jù)流和流出的數(shù)據(jù)流,如果缺了一種,是Warning的;缺兩種就錯(cuò)了。 3)、數(shù)據(jù)流只能在處理與處理、數(shù)據(jù)存儲(chǔ)或者外部實(shí)體之間流動(dòng)。、數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)存儲(chǔ)、外部實(shí)提到外部實(shí)體、外部實(shí)提到數(shù)據(jù)存儲(chǔ)之間的數(shù)據(jù)流都是錯(cuò)誤的。 4)、 一個(gè)處理可以細(xì)分成多個(gè)子處理,分成若干個(gè)層次(均勻分解) 5)、良好命名系統(tǒng)流程圖與數(shù)據(jù)流程圖有什么區(qū)別?答:1)系統(tǒng)流程圖描述系統(tǒng)物理模型的工具,數(shù)據(jù)流程圖描述系統(tǒng)邏輯模型的工具。2)系統(tǒng)流程圖從系統(tǒng)功能的角度抽象的描述系統(tǒng)的各個(gè)部分及其相互之間信息流動(dòng)的情況。3)數(shù)據(jù)流程圖從數(shù)據(jù)傳送和加工的角度抽象的描述信息在系統(tǒng)中的流動(dòng)和數(shù)據(jù)處理的工作狀況。三、數(shù)據(jù)流圖:!1、組成符號(hào):4中基本圖形符號(hào)正方形、圓角矩形、開口矩形2、數(shù)據(jù)流圖的基本要點(diǎn)是描繪“做什么”,而不是考慮“怎么做”。3、一套分層的的數(shù)據(jù)流圖由頂層、底層、和中間層組成。4、畫分層數(shù)據(jù)流圖基本原則與注意事項(xiàng):a.自外向內(nèi),自頂向下,逐層細(xì)化,完善求精。b.保持父圖與子圖的平衡。也就是說,父圖中某加工的輸入數(shù)據(jù)流中的數(shù)據(jù)必須與它的子圖的輸入數(shù)據(jù)流在數(shù)量和名字上相同。c.保持?jǐn)?shù)據(jù)守恒。也就是說,一個(gè)加工所有輸出數(shù)據(jù)流中的數(shù)據(jù)必須能從該加工的輸入數(shù)據(jù)流中直接獲得,或者是通過該加工能產(chǎn)生的數(shù)據(jù)。d.加工細(xì)節(jié)隱藏。根據(jù)抽象原則,在畫父圖時(shí),只需畫出加工和加工之間的關(guān)系,而不必畫出各個(gè)加工內(nèi)部的細(xì)節(jié)。e.簡(jiǎn)化加工間關(guān)系。在數(shù)據(jù)流圖中,加工間的數(shù)據(jù)流越少,各加工就越相對(duì)獨(dú)立,所以應(yīng)盡量減少加工間輸入輸出數(shù)據(jù)流的數(shù)目。f.均勻分解。應(yīng)該使一個(gè)數(shù)據(jù)流中的各個(gè)加工分解層次大致相同。g.適當(dāng)?shù)貫閿?shù)據(jù)流、加工、文件、源/宿命名,名字應(yīng)反映該成分的實(shí)際意義,避免空洞的名字。h.忽略枝節(jié)。應(yīng)集中精力于主要的數(shù)據(jù)流,而暫不考慮一些例外情況、出錯(cuò)處理等枝節(jié)性問題。i.表現(xiàn)的是數(shù)據(jù)流而不是控制流。j.每個(gè)加工必須既有輸入數(shù)據(jù)流,又有輸出數(shù)據(jù)流.在整套數(shù)據(jù)流圖中,每個(gè)文件必須既有讀文件的數(shù)據(jù)流又有寫文件的數(shù)據(jù)流,但在某一張子圖中可能只有讀沒有寫或者只有寫沒有讀。小結(jié):一個(gè)軟件系統(tǒng),其數(shù)據(jù)流圖往往有多層。如果父圖有N個(gè)加工(Process),則父圖允許有0N張子圖,但是每張子圖只能對(duì)應(yīng)一張父圖。在一張DFD圖中,任意兩個(gè)加工之間可以有0條或多條名字互不相同的數(shù)據(jù)流;在畫數(shù)據(jù)流圖時(shí),應(yīng)該注意父圖和子圖的平衡,即父圖中某加工的輸入輸出數(shù)據(jù)流必須與其輸入輸出流在數(shù)量和名字上相同。DFD信息流大致可分為兩類:交換流和事務(wù)流。9、數(shù)據(jù)字典1) 數(shù)據(jù)字典是在數(shù)據(jù)流程圖的基礎(chǔ)上,對(duì)數(shù)據(jù)流程圖中的各個(gè)元素進(jìn)行詳細(xì)的定義與描述,起到對(duì)數(shù)據(jù)流程圖進(jìn)行補(bǔ)充說明的作用。 2) 數(shù)據(jù)字典的內(nèi)容包括:數(shù)據(jù)流、數(shù)據(jù)流分量(即數(shù)據(jù)元素)、數(shù)據(jù)存貯、處理邏輯和外部實(shí)體。 3).數(shù)據(jù)字典的作用是什么?對(duì)用戶來講,數(shù)據(jù)字典為他們提供了數(shù)據(jù)的明確定義;對(duì)系統(tǒng)分析員來講,數(shù)據(jù)字典幫助他們比較容易修改已建立的系統(tǒng)邏輯模型。數(shù)據(jù)字典的實(shí)現(xiàn):P4910、成本效益分析:成本/效益分析的目的是要從經(jīng)濟(jì)角度分析開發(fā)一個(gè)特定的新系統(tǒng)是否可行,從而幫助使用部門負(fù)責(zé)人正確地做出是否投資與這項(xiàng)開發(fā)工程的決定。幾種度量效益的方法:貨幣的時(shí)間價(jià)值、投資回收期、純收入 第三章 需求分析 一、重點(diǎn)掌握的內(nèi)容那: 需求分析的方法和面向數(shù)據(jù)流的分析方法二、一般掌握的內(nèi)容:需求分析的任務(wù)和原則三知識(shí)點(diǎn): 1、為什么要做需求分析可行性分析研究階段已經(jīng)粗略的描述了用戶的需求,甚至還提出了一些可行的方案,但是,許多細(xì)節(jié)被忽略了,在最終目標(biāo)系統(tǒng)中是不能忽略、遺漏任何一個(gè)微小細(xì)節(jié)的,所以,可行性研究不能代替需求分析。 2、需求分析的方法:需求分析方法由對(duì)軟件的數(shù)據(jù)域和功能域的系統(tǒng)分析過程及其表示方法組成,它定義了表示系統(tǒng)邏輯視圖和物理視圖的方式,大多數(shù)的需求分析方法是由數(shù)據(jù)驅(qū)動(dòng)的,也就是說,這些方法提供了一種表示數(shù)據(jù)域的機(jī)制,分析員根據(jù)這種表示,確定軟件功能及其特性,最終建立一個(gè)待開發(fā)軟件的抽象模型,即目標(biāo)系統(tǒng)的邏輯模型。3、需求分析的任務(wù):它的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問題。需求分析所要做的工作是深入描述軟件的共能和性能,確定軟件設(shè)計(jì)的限制和軟件同其它系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其它有效性需求。需求分析的任務(wù)不是確定系統(tǒng)如何完成它的工作,而是確定系統(tǒng)必須完成哪些工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。其實(shí)現(xiàn)步驟如下圖所示:一般說來需求分析階段的任務(wù)包括下述幾方面:1) 確定對(duì)系統(tǒng)的綜合需求對(duì)系統(tǒng)的綜合需求主要有:系統(tǒng)功能需求、系統(tǒng)性能需求、可靠性和可用性需求、錯(cuò)處理需求、接口需求、約束、逆向需求、將來可能提出的需求:2) 分析系統(tǒng)的數(shù)據(jù)需求 就是在理解當(dāng)前系統(tǒng)“怎樣做”的基礎(chǔ)上,抽取其“做什么”的本質(zhì),明確目標(biāo)系統(tǒng)要“做什么”,可以導(dǎo)出系統(tǒng)的詳細(xì)的邏輯模型。具體做法:首先確定目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)的邏輯差別;然后將變化部分看作是新的處理步驟,對(duì)功能圖(一般為數(shù)據(jù)流圖)及對(duì)象圖進(jìn)行調(diào)整;最后有外及里對(duì)變化的部分進(jìn)行分析,推斷其結(jié)構(gòu),獲得目標(biāo)系統(tǒng)的邏輯模型。通常用數(shù)據(jù)流圖、數(shù)字字典和主要的處理算法描述這個(gè)邏輯模型。3) 導(dǎo)出系統(tǒng)的邏輯模型4) 修正系統(tǒng)開發(fā)計(jì)劃在經(jīng)過需求分析階段的工作,分析員對(duì)目標(biāo)系統(tǒng)有了更深入更具體的認(rèn)識(shí),因此可以對(duì)系統(tǒng)的成本和進(jìn)度做出更準(zhǔn)確地估計(jì),在此基礎(chǔ)上應(yīng)該對(duì)開發(fā)計(jì)劃進(jìn)行修正。5)開發(fā)原型系統(tǒng):使用原型系統(tǒng)的主要目的是,使用戶通過實(shí)踐獲得關(guān)于未來的系統(tǒng)將怎樣為他們工作的更直接更具體的概念,從而可以更準(zhǔn)確地提出他們的要求。4、需求分析的步驟:1)調(diào)查研究 2)分析與綜合 3)書寫文檔 4)需求分析評(píng)審 5、需求分析的原則:1)、必須能夠表達(dá)和理解問題的數(shù)據(jù)域和功能域2)、按自頂向下、逐層分解問題3)、要給出系統(tǒng)的邏輯視圖和物理視圖6、軟件需求的驗(yàn)證: 需求分析階段的工作結(jié)果是開發(fā)軟件系統(tǒng)的重要基礎(chǔ),大量統(tǒng)計(jì)數(shù)字表明,軟件系統(tǒng)中15%的錯(cuò)誤起源于錯(cuò)誤的需求。為了提高軟件質(zhì)量,確保軟件開發(fā)成功,降低軟件開發(fā)成本,一旦對(duì)目標(biāo)系統(tǒng)提出一組要求之后,必須嚴(yán)格驗(yàn)證這些需求的正確性。一般說來,應(yīng)該從下述4個(gè)方面進(jìn)行驗(yàn)證:(1) 一致性所有需求必須是一致的,任何一條需求不能和其他需求互相矛盾。 (2) 完整性需求必須是完整的,規(guī)格說明書應(yīng)該包括用戶需要的每一個(gè)功能或性能。 (3) 現(xiàn)實(shí)性指定的需求應(yīng)該是用現(xiàn)有的硬件技術(shù)和軟件技術(shù)基本上可以實(shí)現(xiàn)的。對(duì)硬件技術(shù)的進(jìn)步可以做些預(yù)測(cè),對(duì)軟件技術(shù)的進(jìn)步則很難做出預(yù)測(cè),只能從現(xiàn)有技術(shù)水平出發(fā)判斷需求的現(xiàn)實(shí)性。 (4) 有效性必須證明需求是正確有效的,確實(shí)能解決用戶面對(duì)的問題。7、 狀態(tài)轉(zhuǎn)換圖(!):指明了作為外部事件結(jié)果的系統(tǒng)行為。為此,狀態(tài)轉(zhuǎn)換圖描繪了系統(tǒng)的各種行為模式(稱為“狀態(tài)”)和在不同狀態(tài)間轉(zhuǎn)換的方式。狀態(tài)轉(zhuǎn)換圖是行為建模的基礎(chǔ)。思考:利用DFD圖進(jìn)行需求分析:在結(jié)構(gòu)化分析方法中,用以表達(dá)系統(tǒng)內(nèi)數(shù)據(jù)的運(yùn)動(dòng)情況的工具有( A )。供選擇的答案: A. 數(shù)據(jù)流圖 B. 數(shù)據(jù)詞典 C. 結(jié)構(gòu)化英語 D. 判定表與判定樹在結(jié)構(gòu)化分析方法中用狀態(tài)遷移圖表達(dá)系統(tǒng)或?qū)ο蟮男袨椤T跔顟B(tài)遷移圖中,由一個(gè)狀態(tài)和一個(gè)事件所決定的下一狀態(tài)可能會(huì)有( A )個(gè)。供選擇的答案: A. 1 B. 2 C. 多個(gè) D. 不確定 五、總體設(shè)計(jì)(概要設(shè)計(jì))重點(diǎn)掌握的內(nèi)容:概要設(shè)計(jì)的過程和方法一般掌握的內(nèi)容:概要設(shè)計(jì)的文檔和評(píng)審考核知識(shí)點(diǎn):一、總體設(shè)計(jì):1、總體設(shè)計(jì)的目的:總體設(shè)計(jì)的基本目的就是回答“概括地說,系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”這個(gè)問題,因此,總體設(shè)計(jì)又稱為概要設(shè)計(jì)或初步設(shè)計(jì)。1、面向結(jié)構(gòu)設(shè)計(jì)(SD)2、面向?qū)ο笤O(shè)計(jì)(OOD)2、總體設(shè)計(jì)的任務(wù):1)系統(tǒng)分析員審查軟件計(jì)劃、軟件需求分析提供的文檔、提出最佳推薦方案,用系統(tǒng)流程圖,組成物理元素清單,成本效益分析,系統(tǒng)的進(jìn)度計(jì)劃,供專家沈頂峰,審定后進(jìn)入設(shè)計(jì)2)去頂模塊結(jié)構(gòu),劃分功能模塊,將軟件功能需求分配給所劃分的最小單元模塊。確定模塊之間的聯(lián)系,確定數(shù)據(jù)結(jié)構(gòu)、文件結(jié)構(gòu)、數(shù)據(jù)庫(kù)模式,確定測(cè)試方法與策略。3)編寫概要設(shè)計(jì)說明書,用戶手冊(cè),測(cè)試計(jì)劃,選用相關(guān)的軟件工具來描述軟件結(jié)構(gòu),結(jié)構(gòu)圖是經(jīng)常使用的軟件描述工具。選擇分解功能與劃分模塊的設(shè)計(jì)原則,例如模塊劃分獨(dú)立性原則,信息隱蔽原則等3、總體設(shè)計(jì)過程通常由兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計(jì)階段,確定軟件結(jié)構(gòu)。4、典型的總體設(shè)計(jì)過程包括下述9個(gè)步驟:1)、設(shè)想功選擇的方案2)、選取合理的方案3)、推薦最佳方案4)、功能分解5)、設(shè)計(jì)軟件6)、設(shè)計(jì)數(shù)據(jù)庫(kù)7)制定測(cè)試計(jì)劃8)、書寫文檔:系統(tǒng)說明、用戶手冊(cè)、測(cè)試計(jì)劃、詳細(xì)的實(shí)現(xiàn)計(jì)劃、數(shù)據(jù)庫(kù)設(shè)計(jì)結(jié)果;9)、審查和復(fù)審二、設(shè)計(jì)原理分析(模塊化,在模塊化程序設(shè)計(jì)中,按功能劃分模塊的原則是,模塊化和軟件成本關(guān)系):模塊具有輸入和輸出(參數(shù)傳遞)、功能、內(nèi)部數(shù)據(jù)結(jié)構(gòu)(局部變量)和程序代碼四個(gè)特性1、模塊化:就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求.2、模塊化的根據(jù):把復(fù)雜的問題分解成許多容易解決的小問題,原來的問題也就容易解決了.模塊化和軟件成本關(guān)系:根據(jù)總成本曲線,每個(gè)程序都相應(yīng)地有一個(gè)最適當(dāng)?shù)哪K數(shù)目M,使得系統(tǒng)的開發(fā)成本最小.3、模塊設(shè)計(jì)的準(zhǔn)則: (1) 改進(jìn)軟件結(jié)構(gòu), 提高模塊獨(dú)立性:在對(duì)初步模塊進(jìn)行合并、分解和移動(dòng)的分析、精化過程中力求提高模塊的內(nèi)聚,降低藕合。 (2) 模塊大小要適中:大約50行語句的代碼,過大的模塊應(yīng)分解以提高理解性和可維護(hù)性;過小的模塊,合并到上級(jí)模塊中。(3) 軟件結(jié)構(gòu)圖的深度、寬度、扇入和扇出要適當(dāng)。一般模塊的調(diào)用個(gè)數(shù)不要超過5個(gè)。 (4) 盡量降低模塊接口的復(fù)雜程度; (5) 設(shè)計(jì)單入口、單出口的模塊。 (6) 模塊的作用域應(yīng)在控制域之內(nèi)。4、抽象的概念:抽出事務(wù)的本質(zhì)特性而暫時(shí)不考慮它們的細(xì)節(jié).5、 信息隱蔽:模塊中所包括的信息不允許其它不需這些信息的模塊調(diào)用信息局部化:是把一些關(guān)系密切的軟件元素物理地放得彼此靠近6、 什么是模塊獨(dú)立性?答:模塊獨(dú)立性概括了把軟件劃分為模塊時(shí)要遵守的準(zhǔn)則,也是判斷模塊構(gòu)造是不是合理的標(biāo)準(zhǔn)。7、 模塊獨(dú)立性:是軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體子功能,而和軟件系統(tǒng)中的 其它的模塊接口是簡(jiǎn)單的。模塊獨(dú)立的概念是模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果。8、 為什么模塊的獨(dú)立性很重要?答:1)有效的模塊化的軟件比較容易開發(fā)出來2)獨(dú)立的模塊比較容易測(cè)試和維護(hù)??傊?,模塊獨(dú)立是好設(shè)計(jì)的關(guān)鍵,而設(shè)計(jì)又是決定軟件質(zhì)量的關(guān)鍵環(huán)節(jié)。9、 衡量模塊獨(dú)立的兩個(gè)標(biāo)準(zhǔn)是什么?它們各表示什么含義? 答:衡量模塊的獨(dú)立性的標(biāo)準(zhǔn)是兩個(gè)定性的度量標(biāo)準(zhǔn):耦合性和內(nèi)聚性。 (1)耦合性。也稱塊間聯(lián)系。指軟件系統(tǒng)結(jié)構(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強(qiáng),模塊的獨(dú)立性則越差。模塊間耦合高低取決于模塊間接口的復(fù)雜性、調(diào)用的方式及傳遞的信息。 (2)內(nèi)聚性。又稱塊內(nèi)聯(lián)系。指模塊的功能強(qiáng)度的度量,即一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量。若一個(gè)模塊內(nèi)各元素(語句之間、程序段之間)聯(lián)系得越緊密,則它的內(nèi)聚性就越高。 耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),將軟件系統(tǒng)劃分模塊時(shí),盡量做到高內(nèi)聚低耦合,提高模塊的獨(dú)立性,為設(shè)計(jì)高質(zhì)量的軟件結(jié)構(gòu)奠定基礎(chǔ)。 模塊的高內(nèi)聚、低耦合的原則稱為模塊獨(dú)立原則,也稱為模塊設(shè)計(jì)的原則。10、啟發(fā)規(guī)則:1) 改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性2) 模塊規(guī)模應(yīng)該適中3) 深度、寬度、扇出、和扇入都應(yīng)適當(dāng) 深度表示軟件結(jié)構(gòu)中控制的層數(shù),它往往能粗略地標(biāo)志一個(gè)系統(tǒng)的大小和復(fù)雜程度。 寬度是軟件結(jié)構(gòu)內(nèi)同一個(gè)層次上的模塊總數(shù)的最大值;一般來說,寬度越大系統(tǒng)越復(fù)雜。對(duì)寬度影響最大的因素是模塊的扇出。 一個(gè)模塊的扇入是指直接調(diào)用該模塊的上級(jí)模塊的個(gè)數(shù)。一個(gè)模塊的扇出是指該模塊直接調(diào)用的下級(jí)模塊的個(gè)數(shù)。設(shè)計(jì)原則:低扇出、高扇入。 4) 模塊的作用域應(yīng)該在控制域內(nèi)5) 力爭(zhēng)降低模塊接口的復(fù)雜程度6) 設(shè)計(jì)單入口和單出口的模塊7) 模塊功能應(yīng)該可以預(yù)測(cè)三、概要設(shè)計(jì)的方法:1、面向數(shù)據(jù)流的設(shè)計(jì)方法把信息流映射成軟件結(jié)構(gòu),信息流的類型決定了映射的方法。面向數(shù)據(jù)流的設(shè)計(jì)要解決的任務(wù),就是上述需求分析的基礎(chǔ)上,將DFD圖映射為軟件系統(tǒng)的結(jié)構(gòu)。2、數(shù)據(jù)流圖的類型:交換型結(jié)構(gòu)和事務(wù)型結(jié)構(gòu)交換型結(jié)構(gòu):由3部分組成,傳入路徑,變換中心,輸出路徑系統(tǒng)的傳入流經(jīng)過變換中心的處理,變換為系統(tǒng)的傳出流。 事務(wù)型結(jié)構(gòu):有至少一條接受路徑,一個(gè)事務(wù)中心與若干條動(dòng)作路徑組成。當(dāng)外部信息沿著接受路徑進(jìn)入系統(tǒng)后,經(jīng)過事務(wù)中心獲得某個(gè)特定值,就能據(jù)此啟動(dòng)某一條動(dòng)作路徑的操作。四、結(jié)構(gòu)化設(shè)計(jì)1、結(jié)構(gòu)化設(shè)計(jì)方法:是一種面向數(shù)據(jù)流的設(shè)計(jì)方法,中心任務(wù)就是把用DFD圖表示的系統(tǒng)分析模型轉(zhuǎn)換為軟件結(jié)構(gòu)的設(shè)計(jì)模型,確定軟件的體系結(jié)構(gòu)域接口。 2、結(jié)構(gòu)化方法的步驟:1)復(fù)審DFD圖,必要時(shí)刻再次進(jìn)行修改或細(xì)化:2)鑒別DFD圖所表示的軟件系統(tǒng)的結(jié)構(gòu)特征,確定它所代表的軟件結(jié)構(gòu)是屬于變換型還是事務(wù)型。3)按照SD方法規(guī)定的一組規(guī)則,吧DFD圖轉(zhuǎn)換為初始的SC圖。變換型DFD圖初始SC圖事務(wù)型DFD圖初始SC圖3、結(jié)構(gòu)設(shè)計(jì)的優(yōu)化規(guī)則: 1)對(duì)模塊分割、合并和變動(dòng)調(diào)用關(guān)系的指導(dǎo)規(guī)則:以提高模塊獨(dú)立性為首要標(biāo)準(zhǔn),除此之外,適當(dāng)考慮模塊的大小。 2)保持高扇 / 入低扇出原則 3)作用域 / 控制域規(guī)則: 作用域不要超出控制域的范圍; 軟件系統(tǒng)的判定,其位置離受它控制的模塊越近越好。 六、 詳細(xì)設(shè)計(jì)重點(diǎn)掌握的內(nèi)容:詳細(xì)設(shè)計(jì)的任務(wù)和方法一般掌握的內(nèi)容:詳細(xì)設(shè)計(jì)的原則和詳細(xì)設(shè)計(jì)的規(guī)格與評(píng)審考核知識(shí)點(diǎn):一、詳細(xì)設(shè)計(jì)1、 詳細(xì)設(shè)計(jì)目的:對(duì)模塊的算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(設(shè)計(jì)出的處理過程應(yīng)該盡可能簡(jiǎn)明易懂)。 2、 詳細(xì)設(shè)計(jì)的任務(wù):詳細(xì)設(shè)計(jì)就是在概要設(shè)計(jì)的結(jié)果的基礎(chǔ)上,考慮“怎樣實(shí)現(xiàn)”這個(gè)軟件系統(tǒng),直到對(duì)系統(tǒng)中個(gè)的每個(gè)模塊給出足夠詳細(xì)的過程描述,主要任務(wù)如下:編寫軟件的“詳細(xì)設(shè)計(jì)說明書”.軟件人員要完成的工作:(1) 為每一個(gè)模塊確定采用的算法, 選擇某種適當(dāng)?shù)墓ぞ弑磉_(dá)算法的過程,寫出模塊的詳細(xì)過程描述.(2) 確定每一模塊使用的數(shù)據(jù)結(jié)構(gòu).(3) 確定模塊結(jié)構(gòu)的細(xì)節(jié),包括對(duì)系統(tǒng)外部的接口和用戶界面,對(duì)系統(tǒng)內(nèi)部其它模塊的接口,以及關(guān)于模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細(xì)節(jié).(4) 為每一個(gè)模塊設(shè)計(jì)出一組測(cè)試用例,以便在編碼階段對(duì)模塊代碼(即程序)進(jìn)行預(yù)定的測(cè)試.模塊的測(cè)試用例是軟件測(cè)試計(jì)劃的重要組成部分,通常包括輸入數(shù)據(jù),期望輸出等內(nèi)容。3、詳細(xì)設(shè)計(jì)的原則:過程描述是否易于理解、復(fù)審和維護(hù),進(jìn)而過程描述能夠自然裝換成代碼,并保證詳細(xì)設(shè)計(jì)與代碼完全一致。4、詳細(xì)設(shè)計(jì)的描述工具應(yīng)具備什么功能?答:無論哪類描述工具不僅要具有描述設(shè)計(jì)過程,如控制流程、處理功能、數(shù)據(jù)組織及其它方面的細(xì)節(jié)的能力,而且在編碼階段能夠直接將它翻譯為用程序設(shè)計(jì)語言書寫的源程序。 二、結(jié)構(gòu)化程序設(shè)計(jì)4、結(jié)構(gòu)程序設(shè)計(jì):如果一個(gè)程序的代碼塊僅僅通過順序、選擇和循環(huán)這3種進(jìn)本控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口,則稱這個(gè)程序是結(jié)構(gòu)化的。5.結(jié)構(gòu)化程序設(shè)計(jì)的基本原則:在詳細(xì)設(shè)計(jì)中所有模塊都使用單入口、單出口的順序、選擇、循環(huán)三種基本控制結(jié)構(gòu). 四、過程設(shè)計(jì)1、描述程序處理過程的工具稱為過程設(shè)計(jì)工具,它們可以分為圖形、表格和語言3類。2、詳細(xì)設(shè)計(jì)的方法:程序流程圖、N-S圖、PAD圖 程序流程圖:程序流程圖又稱之為程序框圖,它是軟件開發(fā)者最熟悉的一種算法表達(dá)工具。它獨(dú)立于任何一種程序設(shè)計(jì)語言,比較直觀和清晰地描述過程的控制流程,易于學(xué)習(xí)掌握。在流程圖中只能使用下述的五種基本控制結(jié)構(gòu)。1)順序型、2)選擇型、3)while型 4)Until型循環(huán) 5)多情況型選擇N-S圖:規(guī)定了五種基本圖形構(gòu)件:1)順序型、2)選擇型、3)while重復(fù)型 4)Until重復(fù)型循環(huán) 5)多分支選擇型PAD圖:它是用結(jié)構(gòu)化程序設(shè)計(jì)思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具。PAD圖也設(shè)置了五種基本控制結(jié)構(gòu)的圖示,并允許遞歸使用。 判定表:能夠清晰地表示復(fù)雜的條件組合與應(yīng)該做的動(dòng)作之間的關(guān)系。 判定樹的優(yōu)點(diǎn):它的形式簡(jiǎn)單到不需要任何說明,一眼就可以看出其含義,因此易于掌握和使用。 過程設(shè)計(jì)語言(PDL)也稱偽碼,它是正文形式表示數(shù)據(jù)和處理過程的設(shè)計(jì)工具。4.比較面向數(shù)據(jù)流和面向數(shù)據(jù)結(jié)構(gòu)兩類設(shè)計(jì)方法的異同?相同點(diǎn):(1) 遵守結(jié)構(gòu)程序設(shè)計(jì)“由頂向下”逐步細(xì)化的原則,并以其為共同的基礎(chǔ);(2) 均服從“程序結(jié)構(gòu)必須適應(yīng)問題結(jié)構(gòu)”的基本原則,各自擁有從問題結(jié)構(gòu)(包括數(shù)據(jù)結(jié)構(gòu))導(dǎo)出程序結(jié)構(gòu)的一組映射規(guī)則。不同點(diǎn):(1) 面向數(shù)據(jù)流的設(shè)計(jì)以數(shù)據(jù)流圖為基礎(chǔ),在分析階段用DFD表示軟件的邏輯模型,在設(shè)計(jì)階段按數(shù)據(jù)流類型,將數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu)。面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)以數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ),從問題的數(shù)據(jù)結(jié)構(gòu)出發(fā)導(dǎo)出它的程序結(jié)構(gòu)。(2) 面向數(shù)據(jù)流的設(shè)計(jì)的最終目標(biāo)是軟件的最終SC圖,面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)的最終目標(biāo)是程序的過程性描述。 過程設(shè)計(jì)的原則和方法:1) 清晰第一的設(shè)計(jì)風(fēng)格:大多數(shù)情況下,應(yīng)該優(yōu)先考慮程序的清晰度,把效率的考慮放在第二位。(除少數(shù)使用特別頻繁,或者實(shí)時(shí)程序)2) 結(jié)構(gòu)化的控制結(jié)構(gòu):所有的模塊都只使用單入口單出口的3種基本循環(huán)結(jié)構(gòu)順序、選擇、循環(huán)3) Goto語句不應(yīng)濫用,但也不必完全禁止4) 逐步細(xì)化實(shí)現(xiàn)方法。五、 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法(Jackson方法和Warnier方法)1、 Jackson設(shè)計(jì)方法:Jackson方法是最著名的面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,而不是面向數(shù)據(jù)流的設(shè)計(jì)方法。它是以信息驅(qū)動(dòng)的,是將信息轉(zhuǎn)換成軟件的程序結(jié)構(gòu)2、Jackson方法的基本步驟是:(1)分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)果,并用Jackson圖描繪這些數(shù)據(jù)結(jié)構(gòu).(2)找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。(3)從描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描繪程序結(jié)構(gòu)的Jackson圖(4)列出所有操作和條件(包括分支條件和循環(huán)結(jié)束條件),并且把他們分配到程序結(jié)構(gòu)圖的適當(dāng)位置(5)用偽代碼表示程序 3、比較Jackson方法和LCP方法的異同? 答:Jackson與LCP設(shè)計(jì)方法都是以數(shù)據(jù)結(jié)構(gòu)為出發(fā)點(diǎn),以程序的過程描述為最終目標(biāo),設(shè)計(jì)步驟基本相似。它們的主要差別是:(1)使用不同的表達(dá)工具,其中LCP方法中的表達(dá)工具Warnier圖比Jackson設(shè)計(jì)方法中的表達(dá)工具Jackson圖有更大的通用性;(2)Jackson方法的步驟和指導(dǎo)原則有一定的靈活性,而LCP設(shè)計(jì)方法則更加嚴(yán)密。 第七章、實(shí)現(xiàn)重點(diǎn)掌握的內(nèi)容:程序設(shè)計(jì)的語言的特點(diǎn)、編程風(fēng)格、程序效率和編碼安全考核知識(shí)點(diǎn):1、實(shí)現(xiàn)定義: 通常把編碼和測(cè)試統(tǒng)稱為實(shí)現(xiàn)一、編碼:1、所謂編碼就是把軟件設(shè)計(jì)結(jié)果翻譯成用某種程序設(shè)計(jì)語言書寫的程序。2、 編碼的任務(wù)?答:使用選定的程序設(shè)計(jì)語言,把模塊的過程性描述翻譯為用語言書寫的源程序(源代碼)。3、程序設(shè)計(jì)的特點(diǎn):程序設(shè)計(jì)語言是人魚計(jì)算機(jī)交流的媒介。軟件工程師應(yīng)該了解程序設(shè)計(jì)語言各方面的特點(diǎn),以及這些特點(diǎn)對(duì)軟件質(zhì)量的影響,以便在需要為一個(gè)特定的開發(fā)項(xiàng)目選擇語言時(shí),能作出合理的技術(shù)抉擇。其特點(diǎn)表現(xiàn)為九方面:(1) 名字說明:程序中使用對(duì)象的名字,能為編譯程序所檢查和識(shí)別;(2) 類型說明:定義對(duì)象的類型,確定該對(duì)象的使用方式;(3) 初始化:為變量提供適當(dāng)?shù)某跏贾祷蛴上到y(tǒng)給變量賦一特殊的表明未初始化的值;(4) 對(duì)象的局部性:程序中真正需要的那部分才能訪問的對(duì)象;(5) 程序模塊:控制程序?qū)ο蟮拿郑?6) 循環(huán)控制結(jié)構(gòu):如FOR語句、WHILE-DO語句、REPEAT-UNTIL語句等;(7) 分支控制結(jié)構(gòu):如IF語句、CASE語句等;(8) 異常處理:為程序運(yùn)行過程中發(fā)生的錯(cuò)誤和意外事件提供檢測(cè)和處理上的幫助;(9) 獨(dú)立編譯:能分別編譯各個(gè)程序單元。4、編碼風(fēng)格: 編碼風(fēng)格又稱程序設(shè)計(jì)風(fēng)格或編程風(fēng)格,實(shí)際上指編程的原則。表現(xiàn)為五個(gè)方面:源程序文檔化:符號(hào)名的命名、程序的注釋、標(biāo)準(zhǔn)的書寫格式數(shù)據(jù)說明:數(shù)據(jù)說明的次序應(yīng)當(dāng)規(guī)范化。使數(shù)據(jù)屬性容易查找,也有利于測(cè)試,排錯(cuò)和維護(hù)語句結(jié)構(gòu):語句結(jié)構(gòu)力求簡(jiǎn)單、直接,不能為了片面追求效率而使語句復(fù)雜化,可以從以下幾點(diǎn)注意:使用標(biāo)準(zhǔn)的控制結(jié)構(gòu)、盡可能使用庫(kù)函數(shù)、程序編寫首先應(yīng)該考慮清晰性、注意使用goto語句輸入/輸出:輸入/輸出地方式和格式應(yīng)當(dāng)盡可能做到對(duì)用戶友善,盡可能方便用戶的使用。效率: 程序效率:程序效率是指程序的執(zhí)行速度及程序占用的存儲(chǔ)空間。影響程序效率的因素是多方面的。二、軟件測(cè)試:1、軟件測(cè)試定義: 為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程2、軟件測(cè)試目標(biāo): 測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程3、軟件測(cè)試的準(zhǔn)則: 1)所有測(cè)試都應(yīng)該能夠追溯到用戶需求2)應(yīng)該遠(yuǎn)在測(cè)試開始之前就制定出測(cè)試計(jì)劃3)把Pareto原理應(yīng)用到軟件測(cè)試中4)應(yīng)該從“小規(guī)?!睖y(cè)試開始,并逐步進(jìn)行“大規(guī)?!睖y(cè)試5)窮舉測(cè)試是不可能的。6)為了達(dá)到最佳的測(cè)試效果,應(yīng)該由獨(dú)立的第三方從事測(cè)試工作。 4、軟件測(cè)試方法: 第一種方法是黑盒測(cè)試(功能測(cè)試),第二種方法是白盒測(cè)試(結(jié)構(gòu)測(cè)試)黑盒測(cè)試:如果已經(jīng)知道了產(chǎn)品應(yīng)該具有的功能,可以通過測(cè)試來檢驗(yàn)是否每個(gè)功能都能正常使用。白盒測(cè)試:如果知道產(chǎn)品內(nèi)部工作過程,可以通過測(cè)試來檢驗(yàn)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行。 5、軟件測(cè)試步驟: 1)單元測(cè)試(模塊測(cè)試) 2).子系統(tǒng)測(cè)試3). 系統(tǒng)測(cè)試 4). 驗(yàn)收測(cè)試(確認(rèn)測(cè)試)5.) 平行運(yùn)行6、測(cè)試階段的信息流:1)軟件配置,包括需求說明書、設(shè)計(jì)說明書和原程序清單測(cè)試配置,包括測(cè)試計(jì)劃和測(cè)試方案(輸入數(shù)據(jù)、輸出數(shù)據(jù)和檢測(cè)功能)三、單元測(cè)試1、單元測(cè)試(Unit testing )也稱為模塊測(cè)試或結(jié)構(gòu)測(cè)試,通??煞旁诰幊屉A段(實(shí)現(xiàn)階段),主要采用邏輯覆蓋技術(shù),由程序員對(duì)自己編寫的模塊自行測(cè)試,檢查模塊是否能實(shí)現(xiàn)了詳細(xì)設(shè)計(jì)說明書中規(guī)定的功能和算法。2、單元測(cè)試主要發(fā)現(xiàn)編程和詳細(xì)設(shè)計(jì)中產(chǎn)生的錯(cuò)誤。3、測(cè)試一個(gè)模塊時(shí)需要為該模塊編寫一個(gè)驅(qū)動(dòng)模塊和若干個(gè)樁(stub)模塊。頂層模塊測(cè)試時(shí)不需要驅(qū)動(dòng)模塊,底層模塊測(cè)試時(shí)不需要樁模塊。4、 在進(jìn)行單元測(cè)試時(shí),常用的方法是白盒測(cè)試(采用邏輯覆蓋的測(cè)試技術(shù)),輔之以黑盒測(cè)試。5、可從以下5方面對(duì)模塊進(jìn)行測(cè)試:1)模塊接口:參數(shù)的數(shù)目、次序、屬性或單位系統(tǒng)與變?cè)欠褚恢?;是否修改了只作輸入用的變?cè)?;全局變量的定義和用法在各個(gè)模塊中是否一致。2)局部數(shù)據(jù)結(jié)構(gòu)3)重要執(zhí)行通路4)出錯(cuò)處理通路5)邊界條件:邊界測(cè)試是單元測(cè)試中最后的也可能是最重要的任務(wù)。 四、非漸增式測(cè)試與漸增式測(cè)試有什么區(qū)別?漸增式測(cè)試如何組裝模塊? 非漸增式測(cè)試與漸增式測(cè)試的測(cè)試方法有以下區(qū)別:非漸增式測(cè)試方法把單元測(cè)試和集成測(cè)試分成兩個(gè)不同的階段,前一階段完成模塊的單元測(cè)試,后一階段完成集成測(cè)試。而漸增式測(cè)試往往把單元測(cè)試與集成測(cè)試和在一起,同時(shí)完成。非漸增式需要更多的工作量,因?yàn)槊總€(gè)模塊都需要驅(qū)動(dòng)模塊和樁模塊,而漸增式利用已測(cè)試過的模塊作為驅(qū)動(dòng)模塊或樁模塊,因此工作量較少。漸增式可以較早的發(fā)現(xiàn)接口之間的錯(cuò)誤,非漸增式最后組裝是才發(fā)現(xiàn)。漸增式有利于排錯(cuò),發(fā)生錯(cuò)誤往往和最近加進(jìn)來的模塊有關(guān),而非漸增式發(fā)現(xiàn)接口錯(cuò)誤推遲到最后,很難判斷是哪一部分接口出錯(cuò)。漸增式比較徹底,已測(cè)試的模塊和新的模塊再測(cè)試。漸增式占用的時(shí)間較多,但非漸增式須更多的驅(qū)動(dòng)模塊、樁模塊也占用一些時(shí)間。非漸增式開始可并行測(cè)試所有模塊,能充分利用人力,對(duì)測(cè)試大型軟件很有意義。漸增式測(cè)試有以下兩種不同的組裝模塊的方法:自頂向下組合。該方法只需編寫樁模塊,其步驟是從頂層模塊開始,沿被測(cè)程序的軟件結(jié)構(gòu)圖的控制路徑逐步向下測(cè)試,從而把各個(gè)模塊都結(jié)合起來,它又有兩種組合策略:深度有先策略:先從軟件結(jié)構(gòu)中選擇一條主控制路徑,把該路徑上的模塊一個(gè)個(gè)結(jié)合進(jìn)來進(jìn)行測(cè)試,以便完成一個(gè)特定的子功能,接著再結(jié)合其它需要優(yōu)先考慮的路徑。寬度有先策略:逐層結(jié)合直接下屬的所有模塊。自低向上結(jié)合。該方法僅需編寫驅(qū)動(dòng)模塊。其步驟為:把底層模塊組合成實(shí)現(xiàn)一個(gè)個(gè)特定子功能的族。為每一個(gè)族編寫一個(gè)驅(qū)動(dòng)模塊,以協(xié)調(diào)測(cè)試用例的輸入和測(cè)試結(jié)果的輸出。對(duì)模塊族進(jìn)行測(cè)試。按軟件結(jié)構(gòu)圖依次向上擴(kuò)展,用實(shí)際模塊替換驅(qū)動(dòng)模塊,形成一個(gè)個(gè)更大的族。重復(fù)至步,直至軟件系統(tǒng)全部測(cè)試完畢。 五、集成測(cè)試: 1、集成測(cè)試(integration testing)也稱為組裝測(cè)試,在單元測(cè)試的基礎(chǔ)之上,把所有的模塊組裝成一個(gè)系統(tǒng)進(jìn)行測(cè)試。主要測(cè)試設(shè)計(jì)階段產(chǎn)生的錯(cuò)誤,集成測(cè)試計(jì)劃應(yīng)該在概要設(shè)計(jì)階段制定。2、非漸增式集成測(cè)試首先將每個(gè)模塊分別進(jìn)行單元測(cè)試,再把所有的模塊組裝成一個(gè)完整的系統(tǒng)進(jìn)行測(cè)試。目前在進(jìn)行集成測(cè)試時(shí)已普遍采用漸增式集成。3、漸增式集成測(cè)試又可以分為自頂向下集成和自底向上集成。自頂向下集成先測(cè)試上層模塊,再測(cè)試下層模塊,由于測(cè)試下層模塊時(shí)上層模塊已經(jīng)測(cè)試過,所以不必要另外編寫驅(qū)動(dòng)模塊。自底向上集成,先測(cè)試下層模塊,再測(cè)試上層模塊。頂層模塊測(cè)試時(shí)不需要驅(qū)動(dòng)模塊,底層模塊測(cè)試時(shí)不需要樁模塊。軟件的集成測(cè)試最好由不屬于該軟件開發(fā)組的軟件設(shè)計(jì)人員承擔(dān),以提高集成測(cè)試的效果。六、確認(rèn)測(cè)試(驗(yàn)收測(cè)試) 1) 確認(rèn)測(cè)試的目標(biāo)是驗(yàn)證軟件的有效性2) 在系統(tǒng)驗(yàn)收測(cè)試中,驗(yàn)證測(cè)試是在模擬的環(huán)境中進(jìn)行強(qiáng)度測(cè)試的基礎(chǔ)上進(jìn)行,主要依據(jù)軟件需求說明書檢測(cè)軟件的功能,性能及其他特征是否與用戶的要求一致,而確認(rèn)測(cè)試是在一個(gè)實(shí)際環(huán)境中使用真實(shí)數(shù)據(jù)運(yùn)行系統(tǒng)。3) 確認(rèn)測(cè)試計(jì)劃應(yīng)該在需求分析階段制定。4) Alpha測(cè)試由用戶在開發(fā)者的場(chǎng)所進(jìn)行,并且在開發(fā)者的指導(dǎo)下進(jìn)行測(cè)試。開發(fā)者負(fù)責(zé)紀(jì)錄發(fā)現(xiàn)的錯(cuò)誤和使用中遇到的問題,也就是說Alpha測(cè)試是在受控的環(huán)境中進(jìn)行的。5) Beta測(cè)試是在一個(gè)或多個(gè)用戶的現(xiàn)場(chǎng)由該軟件的最終用戶實(shí)施的,開發(fā)者通常不在現(xiàn)場(chǎng),用戶負(fù)責(zé)記錄發(fā)現(xiàn)的錯(cuò)誤和使用中遇到的問題并把這些問題報(bào)告給開發(fā)者。也就是說,Beta測(cè)試是在受控的環(huán)境中進(jìn)行的。經(jīng)過確認(rèn)測(cè)試之后的軟件通常就可以交付使用了。七、測(cè)試技術(shù):1、白盒測(cè)試技術(shù): 白盒測(cè)試時(shí)將程序看作是一個(gè)透明的盒子,也就是說測(cè)試人員完全了解程序的內(nèi)部結(jié)構(gòu)和處理過程。所以測(cè)試時(shí)按照程序內(nèi)部的邏輯測(cè)試程序、檢驗(yàn)程序中的每條通路是否都能按預(yù)定的要求正確工作。白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試。白盒測(cè)試多用于單元測(cè)試階段。邏輯覆蓋是主要的白盒測(cè)試技術(shù)。白盒測(cè)試時(shí),確定測(cè)試數(shù)據(jù)應(yīng)根據(jù)程序的內(nèi)部邏輯和指定的覆蓋方式。采用一下幾種邏輯覆蓋標(biāo)準(zhǔn):語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋 滿足條件組合覆蓋測(cè)試用例,也一定滿足判定條件覆蓋。因此,條件組合覆蓋是上述五種覆蓋標(biāo)準(zhǔn)中最強(qiáng)的一種。2、黑盒測(cè)試技術(shù): 黑盒測(cè)試時(shí)完全不考慮程序內(nèi)部的結(jié)構(gòu)和處理過程,只按照規(guī)格說明書的規(guī)定來檢查程序是否符合它的功能要求。黑盒測(cè)試是在程序接口進(jìn)行的測(cè)試,又稱為功能測(cè)試。常用的黑盒測(cè)試技術(shù)包括等價(jià)類劃分,邊值分析、錯(cuò)誤推測(cè)和因果圖等。其中等價(jià)類劃分和邊界值分析法方法最常用。如果兩者結(jié)合使用,更有可能發(fā)現(xiàn)軟件中的錯(cuò)誤。 系統(tǒng)測(cè)試:一般的系統(tǒng)測(cè)試除了確認(rèn)測(cè)試外還要做如下幾個(gè)方面的系統(tǒng)測(cè)試1) 恢復(fù)測(cè)試:通過系統(tǒng)的修復(fù)能力,檢測(cè)重新初始化,數(shù)據(jù)恢復(fù),重新啟動(dòng),檢驗(yàn)點(diǎn)設(shè)置機(jī)構(gòu)是否正確,以及人工干預(yù)的平均恢復(fù)時(shí)間是否在允許范圍內(nèi)。2) 安全測(cè)試:設(shè)計(jì)測(cè)試用例,突破軟件安全保護(hù)的機(jī)構(gòu)安全保密措施,檢驗(yàn)系統(tǒng)是否安全保密的漏洞。3) 強(qiáng)度測(cè)試:性能測(cè)試:設(shè)計(jì)測(cè)試用例并記錄軟件運(yùn)行性能,與性能要求比較,看是否達(dá)到性能要求規(guī)格。這項(xiàng)測(cè)試常常與強(qiáng)度測(cè)試項(xiàng)結(jié)合進(jìn)行。 第八章:維護(hù)1、 軟件維護(hù)的定義:所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程。2、軟件維護(hù)分為一下幾類: 1)改正性維護(hù):糾正開發(fā)期間未發(fā)現(xiàn)的遺留錯(cuò)誤,即在程序使用期間發(fā)現(xiàn)的程序錯(cuò)誤進(jìn)行診斷和改正的過程;2)適應(yīng)性維護(hù):是為了和變化的環(huán)境適當(dāng)?shù)嘏渲枚M(jìn)行的修改軟件的活動(dòng),是既必要又經(jīng)常的維護(hù)活動(dòng)。是軟件適應(yīng)新的運(yùn)行環(huán)境而進(jìn)行的工作;3)完善性維護(hù):滿足用戶在使用過程中提出增加新的功能或修改已有功能,以滿足用戶日益增長(zhǎng)的需要而進(jìn)行的工作; 該維護(hù)活動(dòng)通常占軟件維護(hù)工作的大部分;3、 4)預(yù)防性維護(hù):為了改善未來的可維護(hù)性或可靠性而修改軟件的工作。 用于維護(hù)工作的勞動(dòng)可以分成生產(chǎn)性活動(dòng)(如:分析評(píng)價(jià),修改設(shè)計(jì)和編寫程序代碼)和非生產(chǎn)性活動(dòng)(如:理解程序代碼的功能,解釋數(shù)據(jù)結(jié)構(gòu)、接口特點(diǎn)和性能限度)。4、 軟件維護(hù)過程本質(zhì)上是修改和壓縮了的軟件定義和開發(fā)過程,而且事實(shí)上遠(yuǎn)在提出一項(xiàng)維護(hù)要求之前,與軟件維護(hù)有關(guān)的工作已經(jīng)開始了。5、 軟件維護(hù)過程:1)維護(hù)組織;2)維護(hù)報(bào)告;3)維護(hù)的事務(wù)流(維護(hù)事務(wù)流中最后一件事件是復(fù)審)。P193圖8-1 ;4)保存維護(hù)記錄;5)評(píng)價(jià)維護(hù)活動(dòng)6、 決定軟件的可維護(hù)性的因素:1)可理解性;2)可測(cè)試性;3)可修改性;4)可移植性;5)可重用性;7、 軟件再工程過程:1)存庫(kù)目錄分析;2)文檔重構(gòu);3)逆向工程;4)代碼重構(gòu);5)數(shù)據(jù)重構(gòu);6)正向工程8、 為什么軟件難維護(hù)?答:因?yàn)榻Y(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)差別巨大;維護(hù)的代價(jià)高昂;維護(hù)的問題很多. 第九章 面向?qū)ο蠓椒▽W(xué)引論1、為什么提出面向?qū)ο蟮姆椒ǎ弘S著大型軟件系統(tǒng)的出現(xiàn),在中小型軟件系統(tǒng)取得成功的傳統(tǒng)的軟件工程方法面臨巨大的危機(jī): 1、軟件生產(chǎn)率無法滿足市場(chǎng)需求 2、軟件復(fù)用率不高 3、軟件維護(hù)困難 4、軟件往往不能真正滿足用戶需求2、面向?qū)ο蟮幕靖拍?對(duì)象是由描述該對(duì)象屬性的數(shù)據(jù)以及可以對(duì)這些數(shù)據(jù)施加的所有操作封裝在一起構(gòu)成的統(tǒng)一體. 一、面向?qū)ο蠓椒ǖ某霭l(fā)點(diǎn)和基本原則:是盡可能模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認(rèn)識(shí)世界解決問題的方法與過程,也就是使描述問題的問題空間(也稱問題域)與現(xiàn)實(shí)解法的解空間(也稱求解域)在結(jié)構(gòu)上盡可能一致。二、面向?qū)ο蠓椒ň哂幸韵滤狞c(diǎn)要素: 1)、認(rèn)為客觀世界是有各種對(duì)象組成的,任何事物都是對(duì)象,復(fù)雜的對(duì)象可以有比較簡(jiǎn)單的對(duì)象以某種方式組合而成。按照這種觀點(diǎn),可以認(rèn)為整個(gè)世界就是一個(gè)最復(fù)雜的對(duì)象。2)、把所有對(duì)象方法都劃分成各種對(duì)象類,每個(gè)對(duì)象都定義了一組數(shù)據(jù)和一組方法。數(shù)據(jù)用于表示對(duì)象的靜態(tài)屬性,是對(duì)象的狀態(tài)信息。因此,每當(dāng)建立該對(duì)象類的一個(gè)新實(shí)例時(shí),就按照類中隊(duì)數(shù)據(jù)的定義為這個(gè)新對(duì)象生成一組專用的數(shù)據(jù),以便描述該對(duì)象獨(dú)特的屬性值。3)、按照父類(或稱為派生類)與父類(或稱為基類)的關(guān)系,把若干個(gè)對(duì)象類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱為類等級(jí)).4)、對(duì)象彼此之間僅能通過傳遞信息相互聯(lián)系。三、面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn): 1)與人類習(xí)慣的思維方法一致2)穩(wěn)定性好3)可重用性好4)交易開發(fā)大型軟件產(chǎn)品5)可維護(hù)性好2、 由于以下因素的存在,使得用面向?qū)ο蠓椒ㄋ_發(fā)的軟件可維護(hù)性好:1)、面向?qū)ο蟮能浖€(wěn)定性比較好2)、面向?qū)ο蟮能浖容^容易修改3)、面向?qū)ο蟮能浖容^容易理解4)、易于測(cè)試和調(diào)試四、概念: 1)、對(duì)象:它是封裝了數(shù)據(jù)結(jié)構(gòu)及可以施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作的封裝體,這個(gè)封裝體有可以唯一地標(biāo)識(shí)它的名字,而且向外界提供一組服務(wù)(即公有的操作)。 對(duì)象的特點(diǎn):以數(shù)據(jù)為中心;對(duì)象是主動(dòng)的;實(shí)現(xiàn)了數(shù)據(jù)封裝;本質(zhì)上具有并行性;模塊獨(dú)立性好2)類:用于表示某些對(duì)象的共同特征(屬性和操作),對(duì)象是類的實(shí)例。 (類是支持繼承的抽象數(shù)據(jù)類型)3)實(shí)例:就是由某個(gè)特定的類所描述的一個(gè)具體的對(duì)象。4)消息:消息傳遞時(shí)對(duì)象與外界相互關(guān)系的唯一途徑。對(duì)象可以向其它對(duì)象發(fā)送消息以請(qǐng)求服務(wù),也可以響應(yīng)其他對(duì)象傳來的消息,完成自身固有的某些操作,從而服務(wù)于其他對(duì)象。 一個(gè)消息有3部分組成: 接收消息的對(duì)象;消息選擇符(也稱消息名);零個(gè)或多個(gè)變?cè)?)方法:方法就是對(duì)象所能執(zhí)行的操作,也就是類中所定義的服務(wù)。方法描述了對(duì)象執(zhí)行操作的算法,響應(yīng)消息的方法。6)屬性:屬性就是類中定義的數(shù)據(jù),它是對(duì)客觀世界實(shí)體所具有的性質(zhì)的抽象。7)封裝:封裝也就是信息隱藏,通過封裝對(duì)外界隱藏了對(duì)象的實(shí)現(xiàn)細(xì)節(jié)。 對(duì)象具有封裝性的條件:有一個(gè)清晰的邊界;有確定的接口(即協(xié)議);受保護(hù)的內(nèi)部實(shí)現(xiàn)。8)繼承:是現(xiàn)實(shí)世界中遺傳關(guān)系的直接模擬。可用來表示類之間的內(nèi)在聯(lián)系以及對(duì)屬性和操作的共享。子類可以沿用父類的某些特征,同時(shí)子類也可以具有自己獨(dú)立的屬性和特征。9)多態(tài)性:10)重載: 函數(shù)重載是指在同一作用域內(nèi)的若干個(gè)參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字; 運(yùn)算符重載是指同一個(gè)運(yùn)算符可以施加不同類型的操作數(shù)上面。五、 面向?qū)ο蠼#海?、 模型定義:模型,就是為了理解事物而對(duì)事物作出的一種抽象,是對(duì)事物的一種無歧義的書面描述。2、 對(duì)象模型(描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對(duì)象模型):對(duì)象模型表示靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)的“數(shù)據(jù)”性質(zhì)。它是對(duì)模擬客觀
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)廢棄物處理技術(shù)探索
- 工業(yè)大數(shù)據(jù)驅(qū)動(dòng)制造業(yè)升級(jí)的引擎
- 工業(yè)安全管理的智能化發(fā)展
- 工業(yè)機(jī)器人技術(shù)及其優(yōu)勢(shì)
- 工業(yè)機(jī)器人技術(shù)的現(xiàn)狀與趨勢(shì)
- 工業(yè)污染防治技術(shù)與設(shè)備介紹
- 工業(yè)自動(dòng)化中的質(zhì)量控制與檢測(cè)技術(shù)
- 工業(yè)級(jí)機(jī)房設(shè)計(jì)與環(huán)境控制技術(shù)
- 工業(yè)自動(dòng)化與智能工藝技術(shù)發(fā)展
- 工業(yè)遺址保護(hù)與城市空間的整合
- 壓實(shí)瀝青混合料密度 表干法 自動(dòng)計(jì)算
- 中建三局商務(wù)策劃與簽證索賠
- 旅游管理專業(yè)申報(bào)匯報(bào)
- 軍隊(duì)院校招收普通高中畢業(yè)生面試表
- 電力有限公司檢修公司B級(jí)檢修基地建設(shè)項(xiàng)目可行性研究報(bào)告
- 氣象學(xué)與氣候?qū)W電子教材
- 神木市小保當(dāng)二號(hào)煤礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 中國(guó)玉石及玉文化鑒賞知到章節(jié)答案智慧樹2023年同濟(jì)大學(xué)
- 家庭園藝營(yíng)養(yǎng)土產(chǎn)品技術(shù)標(biāo)準(zhǔn)2022
- 美容院入股協(xié)議書
- 淺談歌曲《小路》的情感表達(dá)
評(píng)論
0/150
提交評(píng)論