2022年軟件工程導(dǎo)論知識點概要_第1頁
2022年軟件工程導(dǎo)論知識點概要_第2頁
2022年軟件工程導(dǎo)論知識點概要_第3頁
2022年軟件工程導(dǎo)論知識點概要_第4頁
2022年軟件工程導(dǎo)論知識點概要_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

2、發(fā)、使用和維護(hù)、廢棄要經(jīng)歷一個漫長的生命周期 )各自為陣無方法學(xué) (應(yīng)要組織良好、管理嚴(yán)密、各類人員協(xié)作共同完成的工程項目)1.2軟件工程定義軟件工程是應(yīng)用計算機科學(xué)、數(shù)學(xué)、心理學(xué)及管理科學(xué)等原理開發(fā)軟件的工程。它借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本和提高效率為目的。軟件工程包括技術(shù)和管理兩方面的內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工程學(xué)科。軟件工程的特性:1. 軟件工程關(guān)注于大型程序的構(gòu)造(傳統(tǒng)的程序設(shè)計技術(shù)和工具是支持小型程序設(shè)計的)2. 軟件工程的中心課題是控制復(fù)雜性(問題分解)精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 1 頁,共

3、 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 1 頁,共 25 頁 - - - - - - - - -3. 軟件經(jīng)常變化(考慮將來要發(fā)生的變化)4. 開發(fā)軟件的效率非常重要(尋求更好、更有效的工具)5. 和諧地合作是開發(fā)軟件的關(guān)鍵(運用標(biāo)準(zhǔn)和規(guī)程)6. 軟件必須有效地支持它的用戶(軟件要服務(wù)于用戶)7. 在軟件工程領(lǐng)域中通常是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品軟件工程的 7 條基本原理1.用分階段的生命周期計劃嚴(yán)格管理2.堅持進(jìn)行階段評審3.實行嚴(yán)格的產(chǎn)品控制4.采用現(xiàn)代程序設(shè)計技術(shù)

4、5.結(jié)果應(yīng)能清楚地審查6.開發(fā)小組的人員應(yīng)該少而精7.承認(rèn)不斷改進(jìn)軟件工程實踐的必要性軟件工程方法學(xué)通常把在軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為方法學(xué) (methodology),也稱為范型 (paradigm)。目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。軟件工程方法學(xué)包含3 個要素:方法、工具和過程。1.3軟件生命周期每階段的基本任務(wù) : 1. 問題定義2. 可行性研究3. 需求分析4. 總體設(shè)計5. 詳細(xì)設(shè)計6. 編碼和單元測試7. 綜合測試8. 軟件維護(hù)精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 2

5、頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 2 頁,共 25 頁 - - - - - - - - -1.4軟件過程軟件過程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作步驟。通常包括四種基本的過程活動:()軟件規(guī)格說明; ()軟件開發(fā);()軟件確認(rèn);()軟件演進(jìn)軟件過程模型 : 軟件開發(fā)程模型是軟件開發(fā)全部過程、活動和任務(wù)的結(jié)構(gòu)框架。它能直觀表達(dá)軟件開發(fā)全過程,明確規(guī)定要完成的主要活動、任務(wù)和開發(fā)策略。幾種典型的模型:瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉

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

7、種文檔驅(qū)動的模型。3、瀑布模型適合于用戶需求明確、完整、無重大變化的軟件項目開發(fā) !問題:1、不適應(yīng)需求經(jīng)常發(fā)生變更的環(huán)境:在項目的開發(fā)過程精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 3 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 3 頁,共 25 頁 - - - - - - - - -中,變更可能會引起混亂。所以,有人形象地把采用線性模型進(jìn)行商業(yè)軟件工程稱之為 “在沙灘上蓋樓房”。 (適合于用戶需求明確、完整、無重大變化的軟件項目開發(fā))2、線性順

8、序模型每一步的工作都必須以前一階段的輸出為輸入,這種特征會導(dǎo)致工作中發(fā)生“阻塞”狀態(tài)。3、由于瀑布模型幾乎完全依賴于書面的規(guī)格說明,很可能導(dǎo)致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需要。4、是一種整體開發(fā)模型,程序的物理實現(xiàn)集中在開發(fā)階段的后期,用戶在最后才能看到自己的產(chǎn)品。在可運行的軟件產(chǎn)品交付給用戶之前, 用戶只能通過文檔來了解產(chǎn)品是什么樣的??焖僭湍P停?rapid prototype model)步驟:第一步進(jìn)行試驗開發(fā),得出產(chǎn)品的“原型” ,其目的在于弄清軟件需求并探索可行性; 第二步在原型的基礎(chǔ)上開發(fā)出較為滿意的軟件產(chǎn)品。該模型克服了瀑布模型的部分缺陷, 減少了軟件需求不明確給開

9、發(fā)工作帶來的風(fēng)險。前提 :(1)是用戶必須積極參與原型的建造, 建造原型僅僅是為了定義需求,之后就必須被全部拋棄(至少是部分拋棄 ),實際的軟件必須在充分考慮到軟件質(zhì)量和可維護(hù)性之后才被開發(fā)。從這個意義上說,原型模型又往往被稱為“ 拋棄原型模型 ” 。(2)是必須有快速開發(fā)工具可供使用。增量模型 (incremental model) 是一種漸進(jìn)地開發(fā)逐步完善的軟件版本的模型,該模型一般首先開發(fā)產(chǎn)品的基本部,然后再逐步開發(fā)產(chǎn)品的附加部分。整個軟件產(chǎn)品被分解成許多個增量構(gòu)件。每個構(gòu)件由多個相互作用的功能模塊構(gòu)成,并能夠完成特定的功能。該增量模型表明:必須在開始實現(xiàn)各個構(gòu)件之前就全部完成需求分析、

10、規(guī)格說明和概要設(shè)計,因此風(fēng)險較小。優(yōu)點:是十分有用的一種模型。在克服瀑布模型缺點、減少由于軟件需求不明確而給開發(fā)工作帶來風(fēng)險方面,確有顯著的效果;縮短產(chǎn)品提交時間都能夠起到良好的作用。精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 4 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 4 頁,共 25 頁 - - - - - - - - -困難:1、在把每個新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時,必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。此外,必須把軟件的體系結(jié)構(gòu)設(shè)計

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

12、進(jìn)行風(fēng)險分析的費用接近整個項目的經(jīng)費預(yù)算,則風(fēng)險分析是不可行的。噴泉模型 (fountain model) 特點:噴泉模型的各階段均采用了 “對象”這一統(tǒng)一范式,整個過程看起來像噴泉從噴出到落下再噴出的周而復(fù)始過程產(chǎn)生的光滑水柱,體現(xiàn)了軟件創(chuàng)建所固有的迭代和無間隙的特征。適合場合:噴泉模型主要用于面向?qū)ο蟮能浖椖浚浖哪硞€部分通常被重復(fù)多次, 相關(guān)對象在每次迭代中隨之加入漸進(jìn)的軟件成分。rational統(tǒng)一軟件開發(fā)過程rup軟件開發(fā)生命周期是一個二維的軟件開發(fā)模型。橫軸代表時間,體現(xiàn)生命周期特征;縱軸代表工作流,體現(xiàn)了開發(fā)過程的靜態(tài)結(jié)構(gòu)。rup 中的軟件生命周期在時間上被分解為四個順序的階

13、段:初始、細(xì)化、構(gòu)造和移交。 每個階段圍繞著9 個核心工作流分別精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 5 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 5 頁,共 25 頁 - - - - - - - - -迭代。適合場合:可開發(fā)或大或小、分布在各個領(lǐng)域的項目,表明了 rup 的多功能性和廣泛適應(yīng)性。適合于需求不穩(wěn)定、不全面的軟件項目開發(fā)。1.5小結(jié)軟件 =程序+數(shù)據(jù)+文檔軟件危機 : 原因,現(xiàn)象,辦法 (軟件工程學(xué) )軟件工程 :指導(dǎo)計算機軟

14、件開發(fā)和維護(hù)的一門工程科學(xué)軟件工程 3 個要素:方法、工具和過程。軟件生命周期 :定義,開發(fā),運行維護(hù)軟件過程 : 瀑布模型,快速原型模型、增量模型、螺旋模型、噴泉模型、 rup等2.1 可行性研究目的:用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。2.2 可行性研究的主要內(nèi)容(1) 技術(shù)可行性(2) 經(jīng)濟(jì)可行性(3) 操作可行性(4) 法律可行性(5) 社會可行性2.3 數(shù)據(jù)流圖1、一種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換。2、它只是描繪數(shù)據(jù)在軟件中流動和被處理的邏輯過程,是精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - -

15、 - 第 6 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 6 頁,共 25 頁 - - - - - - - - -系統(tǒng)邏輯功能的圖形表示。3、 設(shè)計數(shù)據(jù)流圖時只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮怎樣具體地實現(xiàn)這些功能。畫數(shù)據(jù)流圖的方法:1、自頂向下,逐步求精2、先畫頂層dfd ,描繪系統(tǒng)的整體邏輯概貌;頂層流圖僅包含一個加工, 它代表被開發(fā)系統(tǒng)。 它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)所輸出數(shù)據(jù)。3、其次畫中間層流圖:對上層父圖的處理的細(xì)化,形成子圖。底層流圖是指其加工不需要在

16、做分解的數(shù)據(jù)流圖,它處在最底層。注意:數(shù)據(jù)流圖應(yīng)該分層,并且在把功能級數(shù)據(jù)流圖細(xì)化后得到的處理超過9 個時,應(yīng)該采用畫分圖的辦法。 當(dāng)把一個處理分解為一系列處理時, 分解前和分解后的輸入輸出數(shù)據(jù)流必須相同!數(shù)據(jù)流圖用途:1、畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。2、分析員把他對現(xiàn)有系統(tǒng)的認(rèn)識或?qū)δ繕?biāo)系統(tǒng)的設(shè)想用數(shù)精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 7 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 7 頁,共 25 頁 - - - -

17、 - - - - -據(jù)流圖描繪出來,供有關(guān)人員審查確認(rèn)。3、由于在數(shù)據(jù)流圖中通常僅僅使用4 種基本符號,而且不包含任何有關(guān)物理實現(xiàn)的細(xì)節(jié),因此,絕大多數(shù)用戶都可以理解和評價它。4、數(shù)據(jù)流圖著重描繪系統(tǒng)所完成的功能,其另一個主要用途是作為輔助物理系統(tǒng)的分析和設(shè)計的工具。2.4 小結(jié)1、可行性研究的任務(wù) : 技術(shù), 經(jīng)濟(jì),社會2、可行性研究過程 : 8 步驟3、數(shù)據(jù)流圖 : 源點或終點,處理,數(shù)據(jù)存儲和數(shù)據(jù)流4、數(shù)據(jù)字典 : 是分析階段的工具,包括流,元素,存儲,處理 4 類元素組成。5、成本/效益分析: 從經(jīng)濟(jì)角度判斷是否繼續(xù)投資于這項工程的主要依據(jù)。3.1 需求分析的具體任務(wù)確定對系統(tǒng)的綜合要

18、求:1、功能需求2、性能需求3、可靠性和可用性需求4、出錯處理需求5、接口需求6、約束7、 逆向需求8、將來可能提出的要求分析系統(tǒng)的數(shù)據(jù)要求 : 建立數(shù)據(jù)模型, 用圖形化的工具描述數(shù)據(jù)結(jié)構(gòu) (如層次方框圖和 warnier 圖) 。導(dǎo)出系統(tǒng)的邏輯模型數(shù)據(jù)流圖、實體聯(lián)系圖、狀態(tài)轉(zhuǎn)換圖、數(shù)據(jù)字典等。修正系統(tǒng)開發(fā)計劃:精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 8 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 8 頁,共 25 頁 - - - - - -

19、- - -由分析過程準(zhǔn)確地估計系統(tǒng)的成本和進(jìn)度,修正以前制定的開發(fā)計劃。3.2 與用戶溝通獲取需求的方法1、訪談2、面向數(shù)據(jù)流自頂向下逐步求精3、簡易的應(yīng)用規(guī)格說明技術(shù)4、快速建立軟件原型(它應(yīng)該實現(xiàn)用戶看得見的功能,原型要具有快速并容易修改的特點)3.3 數(shù)據(jù)規(guī)范化規(guī)范化的目的是:1、消除數(shù)據(jù)冗余,即消除表格中數(shù)據(jù)的重復(fù);2、消除多義性,使關(guān)系中的屬性含義清楚、單一;3、使關(guān)系的“概念”單一化,讓每個數(shù)據(jù)項只是一個簡單的數(shù)或字符串,而不是一個組項或重復(fù)組;4、方便操作。使數(shù)據(jù)的插入、刪除與修改操作可行并方便;5、使關(guān)系模式更靈活,易于實現(xiàn)接近自然語言的查詢方式。3.4 狀態(tài)轉(zhuǎn)換圖 (狀態(tài)圖

20、) 通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。狀 態(tài)1、狀態(tài)規(guī)定了系統(tǒng)對事件的響應(yīng)方式。2、系統(tǒng)對事件的響應(yīng),既可以是做一個(或一系列 )動作,也可以是僅僅改變系統(tǒng)本身的狀態(tài),還可以是既改變狀態(tài)又做動作。3、可分為:初態(tài) (初始狀態(tài) );終態(tài) (最終狀態(tài) );中間狀態(tài)4、 一張狀態(tài)圖中只能有一個初態(tài), 而終態(tài)則可以有 0 至多個。事 件事件就是引起系統(tǒng)做動作或( 和)轉(zhuǎn)換狀態(tài)的控制信息。符 號精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 9 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f -

21、- - - - - - - - - - - - - 第 9 頁,共 25 頁 - - - - - - - - -1、初態(tài)用實心圓表示,終態(tài)用一對同心圓(內(nèi)圓為實心圓 ) 表示2、中間狀態(tài)用圓角矩形表示,分成上、中、下3 個部分。3、活動表的語法格式:事件名(參數(shù)表)/動作表達(dá)式(1)“事件名”可以是任何事件的名稱。在活動表中經(jīng)常使用下述 3 種標(biāo)準(zhǔn)事件: entry ,exit和 do。(2) entry事件指定進(jìn)入該狀態(tài)的動作,exit事件指定退出該狀態(tài)的動作,而do 事件則指定在該狀態(tài)下的動作。需要時可以為事件指定參數(shù)表。(3) 動作表達(dá)式描述應(yīng)做的具體動作。4、事件表達(dá)式的語法:事件說明

22、 守衛(wèi)條件 / 動作表達(dá)式(1) 事件說明:事件名(參數(shù)表)(2) 動作表達(dá)式:當(dāng)狀態(tài)轉(zhuǎn)換開始時執(zhí)行該表達(dá)式。(3) 守衛(wèi)條件是一個布爾表達(dá)式,如果既有事件說明又有守衛(wèi)條件,則當(dāng)事件發(fā)生且守衛(wèi)條件為真是狀態(tài)轉(zhuǎn)換才發(fā)生,如果只有守衛(wèi)條件沒有事件說明,則守衛(wèi)條件為真時, 發(fā)生狀態(tài)轉(zhuǎn)換。5.1 設(shè)計過程1. 設(shè)想供選擇的方案; 2. 選取合理的方案; 3. 推薦最佳方案;4. 功能分解; 5. 設(shè)計軟件結(jié)構(gòu); 6. 設(shè)計數(shù)據(jù)庫; 7. 制定測試計劃; 8. 書寫文檔; 9. 審查和復(fù)審精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 10 頁,共 25 頁

23、- - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 10 頁,共 25 頁 - - - - - - - - -5.2 設(shè)計原理模塊化1、把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能, 這些模塊集成起來構(gòu)成一個整體,可以完成指定的功能以滿足用戶的需求。2、模塊是由邊界元素限定的相鄰程序元素的序列,而且有一個總體標(biāo)識符代表它。模塊是構(gòu)成程序的基本構(gòu)件。3、過程、函數(shù)、子程序和宏等,都可作為模塊。4、面向?qū)ο蠓椒▽W(xué)中的對象是模塊,對象內(nèi)的方法(或稱為服務(wù))也是模塊。模塊化的好處 :1、可以降低軟件開發(fā)的難度;

24、2、可以使程序結(jié)構(gòu)清晰,增加易讀性和易修改性;3、模塊化還有利于提高代碼的可重用性及團(tuán)隊合作開發(fā)大型軟件的可行性。抽象抽象是人類在解決復(fù)雜問題時經(jīng)常采用的一種思維方式,它是指將現(xiàn)實世界中具有共性的一類事物的相似的、本質(zhì)的方面集中概括起來,而暫時忽略它們之間的細(xì)節(jié)差異。 結(jié)構(gòu)化程序中自頂向下、逐步求精的模塊劃分思想正是人類思維中運用抽象方法解決復(fù)雜問題的體現(xiàn)。逐步求精定義:為了能集中精力解決主要問題而盡量推遲對問題細(xì)節(jié)的考慮。好處:1、降低了軟件開發(fā)中每個階段的工作難度;2、簡化了軟件的設(shè)計和實現(xiàn)過程;3、有助于提高軟件的可讀性、可測試性和可維護(hù)性;4、 在程序設(shè)計中運用抽象的方法還能夠提高代碼

25、的可重用性。信息隱藏和局部化1、信息隱藏:設(shè)計和確定模塊,使得一個模塊內(nèi)包含的信精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 11 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 11 頁,共 25 頁 - - - - - - - - -息(過程和數(shù)據(jù) )對于不需要這些信息的模塊來說,是不能訪問的。目的:主要是為了提高模塊的獨立性,減少將一個模塊中的錯誤擴(kuò)散到其他模塊的機會。 模塊之間的信息傳遞只能通過合法的調(diào)用接口來實現(xiàn)。 信息隱蔽對提高軟件的可讀性和

26、可維護(hù)性都是非常重要的。2、局部化:是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。如模塊中的局部數(shù)據(jù)元素是局部化的一個例子。3、局部化和信息隱藏概念是密切相關(guān)的,局部化有助于信息隱藏模塊獨立模塊的獨立性是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他模塊的接口是簡單的。1、耦合:不同模塊之間互連程度的度量。2、內(nèi)聚:模塊功能強度的度量。3、模塊獨立是模塊化、抽象、信息隱藏和局部化概念的直接結(jié)果。3、優(yōu)點:比較容易開發(fā)出有效模塊化(即具有獨立的模塊 )的軟件;獨立的模塊比較容易測試和維護(hù)。4、耦合:(1) 數(shù)據(jù)耦合: 若兩個模塊之間僅通過模塊參數(shù)交換信息,且交換的信息全部

27、為簡單數(shù)據(jù),則稱這種耦合為數(shù)據(jù)耦合。 耦合性最低。(2) 控制耦合: 若模塊之間交換的信息中包含有控制信息(盡管有時控制信息是以數(shù)據(jù)的形式出現(xiàn)的),則稱這種耦合為控制耦合。控制耦合是中等程度的耦合, 它會增加程序的復(fù)雜性。(3) 特征耦合: 當(dāng)把整個數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞而被調(diào)用的模塊只需要使用其中一部分?jǐn)?shù)據(jù)元素。(4) 公共環(huán)境耦合: 若兩個或多個模塊通過引用公共數(shù)據(jù)相互聯(lián)系。(5) 內(nèi)容耦合: 一個模塊訪問另一個模塊的內(nèi)部數(shù)據(jù);一個模塊不通過正常入口而轉(zhuǎn)到另一個模塊的內(nèi)部;兩個模塊有一部分程序代碼重疊;一個模塊有多個入口(這意味著一個模塊有幾種功能 )。精品學(xué)習(xí)資料 可選擇p d f - -

28、 - - - - - - - - - - - - 第 12 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 12 頁,共 25 頁 - - - - - - - - -(6) 盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。5、內(nèi)聚:低內(nèi)聚:偶然內(nèi)聚,邏輯內(nèi)聚,時間內(nèi)聚中內(nèi)聚:過程內(nèi)聚,通信內(nèi)聚高內(nèi)聚:順序內(nèi)聚,功能內(nèi)聚6、高內(nèi)聚,低耦合6.1 結(jié)構(gòu)程序設(shè)計1、結(jié)構(gòu)程序設(shè)計技術(shù):是實現(xiàn)質(zhì)量要求的基本保證,是詳細(xì)設(shè)計的邏輯基礎(chǔ)。2、結(jié)構(gòu)程序設(shè)計定義: 一個程序的代碼塊

29、僅僅通過順序、選擇和循環(huán)這三種基本的控制結(jié)構(gòu)進(jìn)行連接;并且每個代碼塊只有一個入口和一個出口。-3、只用三種基本的控制結(jié)構(gòu)(順序,選擇,循環(huán))就能實現(xiàn)任何單入口單出口的程序。從而實現(xiàn)結(jié)構(gòu)程序設(shè)計。4、三種基本結(jié)構(gòu)的共同特點:(1) 只有一個入口;(2) 只有一個出口;(3) 結(jié)構(gòu)內(nèi)的每一部分都有機會被執(zhí)行到;(4) 結(jié)構(gòu)內(nèi)不存在“死循環(huán)”(無終止的循環(huán) )。5、結(jié)構(gòu)程序設(shè)計的特點:(1) 由三種基本結(jié)構(gòu)順序組成的,可以解決任何復(fù)雜的問題。(2) 程序內(nèi)不存在無規(guī)律的轉(zhuǎn)向,只在基本結(jié)構(gòu)內(nèi)才允許存在分支和向前或向后的跳轉(zhuǎn)。6.2 過程設(shè)計的工具(1)過程設(shè)計是設(shè)計模塊的詳細(xì)步驟(算法),是詳細(xì)設(shè)計階

30、段應(yīng)完成的主要工作。(2)過程設(shè)計的工具描述程序處理過程的工具。精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 13 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 13 頁,共 25 頁 - - - - - - - - -程序流程圖的優(yōu)缺點 : 主要優(yōu)點: 對控制流程的描繪很簡明直觀、易于理解, 便于初學(xué)者掌握。主要缺點:(1) 本質(zhì)上不是逐步求精的好工具。 -改進(jìn):pad圖(2) 用箭頭代表控制流,描述程序時可以隨意跳轉(zhuǎn)。 -改進(jìn):n-s圖(3) 不易

31、表示數(shù)據(jù)結(jié)構(gòu)。 -改進(jìn):pad圖(4) 嵌套的條件選擇表示不清。 -改進(jìn):判定樹、判定表精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 14 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 14 頁,共 25 頁 - - - - - - - - -pad圖(問題分析圖)pad圖的特點:(1) 能展現(xiàn)算法的層次結(jié)構(gòu);精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 15 頁,共 25 頁 - - - - - - -

32、- -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 15 頁,共 25 頁 - - - - - - - - -(2) 表示形式直觀易懂;(3) 既可用于表示程序邏輯,又可用于描述數(shù)據(jù)結(jié)構(gòu);(4) 支持自頂向下,逐步求精的過程。判定表當(dāng)算法中包含多重嵌套的條件選擇時,用程序流程圖、盒圖、pad圖等都不易清楚地描述,然而,判定表能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系。判定表的優(yōu)缺點:優(yōu)點:判定表能夠簡潔而無歧義地描述處理規(guī)則??梢詫ε卸ū磉M(jìn)行校驗或化簡。缺點:并不適于作為一種通用的設(shè)計工具,直觀性不夠。判定樹判定樹是用來表達(dá)加工邏輯的一

33、種工具。比判定表更直觀, 是一種常用的系統(tǒng)分析和設(shè)計工具。判定樹的優(yōu)缺點:優(yōu)點:比判定表更直觀。缺點:(1) 不夠簡潔,數(shù)據(jù)元素重復(fù)多次地寫。精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 16 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 16 頁,共 25 頁 - - - - - - - - -(2) 畫判定樹時分枝的次序?qū)啙嵆绦蛴杏绊憽dl程序設(shè)計語言(1) 是一種非形式化、比較靈活的混雜語言。也稱為偽碼。(2) 用于描述模塊內(nèi)部過程的具體算法

34、,以便在開發(fā)人員之間比較精確的進(jìn)行交流。pdl的優(yōu)缺點 :優(yōu)點:(1)可以作為注釋直接插入到源程序中。有利于pdl和源程序保持一致性。(2) pdl編寫方便。(3)可以由自動處理程序?qū)dl生成程序代碼。缺點:(1) 不如圖形工具形象直觀。(2) 描述復(fù)雜的條件組合與動作間的對應(yīng)關(guān)系時,不如判定表清晰簡單。6.5 程序復(fù)雜程度的定量度量mccabe 方法基本原理:根據(jù)程序控制流的復(fù)雜程度定量度量程序的復(fù)雜程度(稱為程序的環(huán)形復(fù)雜度) 。采用“流圖”:僅描繪程序的控制流程,完全不表現(xiàn)對數(shù)據(jù)的具體操作及分支或循環(huán)的具體條件?;静襟E:(1) 將程序流程圖或pdl等映射為流圖。(2) 基于流圖計算環(huán)

35、形復(fù)雜度, 以定量度量程序的復(fù)雜程度。流圖定義:僅僅描繪程序的控制流程基本符號:圓:表示結(jié)點,代表一條或多條語句。箭頭線:邊區(qū)域:由邊和圓圍成的面積基本原則 :精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 17 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 17 頁,共 25 頁 - - - - - - - - -合并原則: 順序處理框和菱形判定框、 順序處理框序列分別合并映射成流圖中的一個結(jié)點。分解原則: 復(fù)合條件分解為若干個簡單條件,每個簡單條件映

36、射成流圖中一個結(jié)點。其他情況下的框映射成流圖中的一個結(jié)點。計算環(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é)點數(shù)。(3) 流圖 g的環(huán)形復(fù)雜度 v(g)=p+1 ,其中, p是流圖中判定結(jié)點的數(shù)目。環(huán)形復(fù)雜度的用途:(1) 可以用于比較兩個算法的優(yōu)劣。對測試難度的一種定量度量。(2) 作為模塊規(guī)模的精確限度。環(huán)形復(fù)雜度高的程序往往是最困難、最容易出問題的程序。 實踐表明, 模塊規(guī)模以 v(g)10 為宜。7.1 軟件測試基礎(chǔ)根本目標(biāo)盡可能多地發(fā)現(xiàn)并排除軟件中潛藏的錯誤,最終把一個高質(zhì)量的

37、軟件系統(tǒng)交給用戶使用。軟件測試準(zhǔn)則(1) 所有測試都應(yīng)該能追溯到用戶需求。(2) 應(yīng)該遠(yuǎn)在測試開始之前就制定出測試計劃。(3) 把 pareto 原理應(yīng)用到軟件測試中。 (測試發(fā)現(xiàn)的錯誤中的80% 很可能是由程序中20% 的模塊造成的。)(4) 應(yīng)該從 “ 小規(guī)模” 測試開始,并逐步進(jìn)行 “ 大規(guī)?!?測試(5) 窮舉測試是不可能的。(6) 為了達(dá)到最佳的測試效果,應(yīng)該由獨立的第三方從事測試工作。精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 18 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - -

38、 - - - - - - - - - 第 18 頁,共 25 頁 - - - - - - - - -測試方法測試步驟(1) 模塊測試;(2) 子系統(tǒng)測試;(3) 系統(tǒng)測試;(4) 驗收測試;(5) 平行運行7.2 白盒測試技術(shù)邏輯覆蓋以程序的邏輯結(jié)構(gòu)為基礎(chǔ)設(shè)計測試用例的技術(shù)。(1)語句覆蓋使程序中每個語句至少執(zhí)行一次。(2)判定覆蓋使每個判定的真假分支都至少執(zhí)行一次。(3)條件覆蓋使每個判定的每個條件的可能取值至少執(zhí)行一次。(4)判定/條件覆蓋每個條件的所有可能取值至少執(zhí)行一次;使每個判定的真假分支都至少執(zhí)行一次。(5)條件組合覆蓋所有可能的條件取值組合至少執(zhí)行一次。 滿足條件組合覆蓋的測試數(shù)

39、據(jù), 也一定滿足判定覆蓋、 條件覆蓋和判定/條件覆蓋標(biāo)準(zhǔn)。覆蓋標(biāo)準(zhǔn)相對較強,但是也不意味著所有的路徑都能被執(zhí)行到。精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 19 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 19 頁,共 25 頁 - - - - - - - - -(6)路徑覆蓋使程序中每條可能路徑都至少執(zhí)行一次??刂平Y(jié)構(gòu)測試基本路徑測試(常用)第 1 步:畫出程序流圖第 2 步:計算程序的環(huán)形復(fù)雜度p (表示程序基本路徑集中的獨立路徑數(shù)的上限)第

40、 3 步:確定獨立路徑的基本集合第 4 步:從該基本集合導(dǎo)出測試用例第 5 步:執(zhí)行測試用例第 6 步:寫測試報告條件測試條件成分的類型包括布爾算符、布爾變量、布爾括弧(括住簡單條件或復(fù)合條件) 、關(guān)系算符及算術(shù)表達(dá)式。循環(huán)測試(1)簡單循環(huán);(2)嵌套循環(huán);(3)串接循環(huán)7.3 黑盒測試技術(shù)黑盒測試著重測試軟件功能。黑盒測試并不能取代白盒測試,它是與白盒測試互補的測試方法, 它很可能發(fā)現(xiàn)白盒測試不易發(fā)現(xiàn)精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 20 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - -

41、 - - - - - - - - - - - 第 20 頁,共 25 頁 - - - - - - - - -的其他類型的錯誤。黑盒測試力圖發(fā)現(xiàn)下述類型的錯誤:功能不正確或遺漏了功能;界面錯誤;數(shù)據(jù)結(jié)構(gòu)錯誤或外部數(shù)據(jù)庫訪問錯誤;性能錯誤;初始化和終止錯誤。黑盒測試技術(shù):(1) 等價劃分法:把程序的輸入域劃分成若干個數(shù)據(jù)類,據(jù)數(shù)據(jù)類導(dǎo)出測試用例。(2) 邊界值分析法。 (3) 錯誤推測法。(4) 因果圖法等9.1 面向?qū)ο蟮母拍?)對象對象是封裝了數(shù)據(jù)和行為的通信單位。2)類類是對具有相同數(shù)據(jù)和相同操作的一組對象的定義,即類是對具有相同屬性和行為的對象的描述。3)消息對象之間進(jìn)行通信的構(gòu)造或結(jié)構(gòu)。

42、消息分為請求消息和完成消息兩種 ( 由消息模式描述 )。消息模式:發(fā)送對象、接收對象、內(nèi)容4)封裝面向?qū)ο蟮囊粋€重要原則。封裝是指在面向?qū)ο蟮某绦蛑?,把?shù)據(jù)和實現(xiàn)操作的代碼集中起來放在對象內(nèi)部。5)繼承面向?qū)ο竺枋鲱愔g相似性的重要機制,子類自動地共享基類中定義的數(shù)據(jù)和方法的機制。6)多態(tài)性允許每個對象以自己最合適的方式去響應(yīng)共同的消息,從而增強軟件的靈活性和可復(fù)用性。7) 重載函數(shù)重載是指在同一作用域內(nèi)具有多個同名的函數(shù),這些函數(shù)具有若干個不同的參數(shù)特征;運算符重載是指同一個運算符可以施加于不同類型的操作數(shù)上。9.4 對象模型對象模型表示靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)的“數(shù)據(jù)”性質(zhì)。它是對模擬客觀世界

43、實體的對象以及對象彼此間的關(guān)系的映射,描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 21 頁,共 25 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 21 頁,共 25 頁 - - - - - - - - -類圖的基本符號1. 定義類uml 中類的圖形符號為長方形,分成上、中、下3 個區(qū)域(下面兩個區(qū)域可省略) ,分別放類的名字、屬性和服務(wù)。類名應(yīng)該是富于描述性的、簡潔的而且無二義性的。2. 定義屬性uml 描述屬性的語法格式如下: 可見性 屬

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

45、,如果沒有顯式標(biāo)出角色名,則意味著用類名作為角色名。3)限定關(guān)聯(lián):通常用在一對多或多對多的關(guān)聯(lián)關(guān)系中,可以把模型中的重數(shù)從一對多變成一對一,或從多對多簡化成多對一。4)關(guān)聯(lián)類:說明關(guān)聯(lián)的性質(zhì)可能需要一些附加信息。關(guān)聯(lián)類通過一條虛線與關(guān)聯(lián)連接。關(guān)聯(lián)類與一般類一樣, 也有屬性、操作和關(guān)聯(lián)。 關(guān)聯(lián)中的每個連接與關(guān)聯(lián)類的一個對象相聯(lián)系。2. 聚集也稱為聚合,是關(guān)聯(lián)的特例。聚集表示類與類之間的關(guān)系是整體與部分的關(guān)系1)共享聚集:在聚集關(guān)系中處于部分方的對象可同時精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 22 頁,共 25 頁 - - - - - - -

46、- -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 22 頁,共 25 頁 - - - - - - - - -參與多個處于整體方對象的構(gòu)成。 一般聚集和共享聚集的圖示符號,都是在表示關(guān)聯(lián)關(guān)系的直線末端緊挨著整體類的地方畫一個空心菱形。2)組合聚集:如果部分類完全隸屬于整體類,部分與整體共存,整體不存在了部分也會隨之消失(或失去存在價值了) ,則該聚集稱為組合聚集 (簡稱為組成)。組成關(guān)系用實心菱形表示。3. 泛化就是通常所說的繼承關(guān)系,它是通用元素和具體元素之間的一種分類關(guān)系。 具體元素完全擁有通用元素的信息,并且還可以附加一些其他信息。 用一端為

47、空心三角形的連線表示泛化關(guān)系,三角形的頂角緊挨著通用元素。1)普通泛化:普通泛化與繼承基本相同。沒有具體對象的類稱為抽象類。 抽象類通常作為父類, 用于描述其他類 (子類)的公共屬性和行為。 圖示抽象類時, 在類名下方附加一個標(biāo)記值 abstract。2)受限泛化:給泛化關(guān)系附加約束條件,以進(jìn)一步說明該泛化關(guān)系的使用方法或擴(kuò)充方法。3)多重繼承:一個子類可以同時多次繼承同一個上層基類。9.5 動態(tài)模型動態(tài)模型表示瞬時的、行為化的系統(tǒng)的“控制”性質(zhì),它規(guī)定了對象模型中的對象的合法變化序列。9.6 功能模型用例圖一幅用例圖包含的模型元素有系統(tǒng)、 行為者、用例及用例之間的關(guān)系。1)用例:表示系統(tǒng)提供的服務(wù),主要刻畫系統(tǒng)如何被參與者使用。 use case 是 uml中一個非常重要的概念。用例是對一組動作序列的抽象描述, 系統(tǒng)執(zhí)行這些動作序列, 將產(chǎn)生相應(yīng)的結(jié)果。用例也可以理解為參與者為了使用系統(tǒng)提供的某一完整功能而和系統(tǒng)之間發(fā)生的一段對

溫馨提示

  • 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

提交評論