北大計(jì)算機(jī)專業(yè)-軟件工程期末串講與例題分析2.ppt_第1頁
北大計(jì)算機(jī)專業(yè)-軟件工程期末串講與例題分析2.ppt_第2頁
北大計(jì)算機(jī)專業(yè)-軟件工程期末串講與例題分析2.ppt_第3頁
北大計(jì)算機(jī)專業(yè)-軟件工程期末串講與例題分析2.ppt_第4頁
北大計(jì)算機(jī)專業(yè)-軟件工程期末串講與例題分析2.ppt_第5頁
已閱讀5頁,還剩131頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、邢承杰 北京大學(xué)計(jì)算中心管理信息中心 E-mail: ,軟件工程課程期末串講與例題分析,說明,制作此文檔目的是明確復(fù)習(xí)重點(diǎn),解析復(fù)習(xí)提綱中的難點(diǎn),減輕復(fù)習(xí)備考的負(fù)擔(dān);提供一些復(fù)習(xí)題供大家鞏固基礎(chǔ)知識(shí)和熟悉考試題型。 文檔中給出的例題要會(huì)做并能夠舉一反三。,考試范圍,1. 軟件工程概論2. 可行性分析與軟件計(jì)劃 3. 軟件需求分析 4. 軟件結(jié)構(gòu)設(shè)計(jì) 5. 數(shù)據(jù)驅(qū)動(dòng)的軟件設(shè)計(jì)方法 6. 面向?qū)ο蟮能浖O(shè)計(jì)方法 7. 詳細(xì)設(shè)計(jì)8. 編碼設(shè)計(jì) 9. 軟件測(cè)試10.軟件維護(hù) 12.軟件項(xiàng)目管理 其中第1章到第10章為教材內(nèi)容,第12章為附加內(nèi)容。本次考試重點(diǎn)是第1,3,6,9章。,考試形式,閉卷考試,

2、滿分100分 時(shí)間:120分鐘,試題分布,章節(jié)分?jǐn)?shù) 17 24 36 412 52 6 21 712 85 921 104 12 6,考試題型,填空題(20%) 選擇題(30%) 判斷題(10%) 簡答題(20%) 綜合題(20%),第一章 軟件工程概論 (重點(diǎn)),軟件工程時(shí)代的特征 軟件危機(jī)概念,軟件危機(jī)的表現(xiàn) 軟件工程概念 瀑布模型,軟件工程時(shí)代的特征(70年代80年代),計(jì)算機(jī)硬件從集成電路發(fā)展到大規(guī)模集成電路,主機(jī)芯片的產(chǎn)生,將計(jì)算機(jī)的主要部件集中在一個(gè)小芯片上。計(jì)算機(jī)走出機(jī)房,有了個(gè)人電腦。 軟件無論從數(shù)量到質(zhì)量都無法滿足發(fā)展的需要,早期的錯(cuò)誤觀念和做法嚴(yán)重的阻礙了軟件的發(fā)展。196

3、8年,北大西洋公約組織的計(jì)算機(jī)專家提出并使用了“軟件工程”這一術(shù)語,即按工程化的方法進(jìn)行軟件開發(fā)。誕生了軟件工程這門新興的科學(xué)。 這一階段圍繞軟件工程的目標(biāo)和內(nèi)容,與之相應(yīng)的理論、技術(shù)及方法相繼建立,軟件開發(fā)過程的規(guī)范化,工程化為軟件的產(chǎn)業(yè)化奠定了堅(jiān)實(shí)的基礎(chǔ)。 軟件=程序+數(shù)據(jù)文檔,第一章 例1,簡答題:什么是軟件工程? 答:軟件工程是研究如何將完善的科學(xué)與工程原理,先進(jìn)高效的管理技術(shù)以及完整規(guī)范的設(shè)計(jì)方法應(yīng)用于經(jīng)濟(jì)的開發(fā)既可靠、又能在實(shí)際計(jì)算機(jī)上有效運(yùn)行的軟件的一門工程學(xué)科。 本題考察最基本概念。,第一章 例2,瀑布模型將軟件生命周期劃分為計(jì)劃、開發(fā)和運(yùn)行三個(gè)時(shí)期。在下述工作中,屬于軟件計(jì)劃

4、時(shí)期的內(nèi)容是_。 (1)需求分析 (2)可行性分析 (3)結(jié)構(gòu)設(shè)計(jì) A 只有(2)B (1)和(2) C (1)和(3) D 都是 答案:A 生命周期每個(gè)時(shí)期完成什么工作都需要掌握。,第一章 相關(guān)例題,相關(guān)例題 什么是軟件?它包括哪幾部分? 什么是軟件危機(jī)?危機(jī)的主要表現(xiàn)是什么? 瀑布模型包含哪幾個(gè)時(shí)期,每個(gè)時(shí)期包含哪幾個(gè)階段?,第一章 相關(guān)例題,相關(guān)例題 什么是軟件危機(jī)?危機(jī)的主要表現(xiàn)是什么? 就是軟件在開發(fā)過程中存在的一系列嚴(yán)重問題的總稱 .軟件的復(fù)雜性不斷提高,對(duì)軟件開發(fā)的成本和進(jìn)度難于估計(jì)。 .軟件質(zhì)量不高,潛在差錯(cuò)的危害。 .缺乏完整、正確的文檔,維護(hù)極困難,難于移植以至于不得不重復(fù)

5、開發(fā)類似的軟件。 .軟件成本在計(jì)算機(jī)系統(tǒng)中總成本所占的比例逐年增高。 .軟件生產(chǎn)率的提高遠(yuǎn)跟不上需求的增長。,瀑布模型對(duì)生命周期的劃分,瀑布模型把軟件生存周期劃分為計(jì)劃、開發(fā)、運(yùn)行/維護(hù)三個(gè)時(shí)期,每個(gè)時(shí)期又劃分為若干階段。 如瀑布一樣奔流不息,拾階而下,故此得名。,第二章 可行性分析與軟件計(jì)劃,可行性分析的內(nèi)容 經(jīng)濟(jì)、技術(shù)、操作、法律 軟件計(jì)劃的內(nèi)容 范圍定義、資源計(jì)劃、成本估算、進(jìn)度安排 軟件成本估算 成本估算計(jì)量單位,代碼行數(shù),人年/月/日 成本估算方法,靜態(tài)單變量,COCOMO,第二章 例1,簡答題:可行性分析包含哪些內(nèi)容,它們的含義是什么? 答: .經(jīng)濟(jì)上可行性:論證系統(tǒng)有沒有經(jīng)濟(jì)效益

6、或社會(huì)效益?多長時(shí)間能回收成本? .技術(shù)上可行性:實(shí)現(xiàn)新系統(tǒng)需要哪些技術(shù),現(xiàn)有技術(shù)能否解決,難點(diǎn)?建議采用的技術(shù)先進(jìn)程度怎樣?新技術(shù)的應(yīng)用是否存在風(fēng)險(xiǎn)?是否能夠找到勝任該系統(tǒng)的熟練的技術(shù)人員?等等 .操作上可行性:系統(tǒng)的操作方式在用戶所在的組織內(nèi)是否可行,特別是對(duì)原有系統(tǒng)擴(kuò)展會(huì)不會(huì)引起矛盾。 .法律上可行性:會(huì)不會(huì)引起侵權(quán)、會(huì)不會(huì)引起其他的社會(huì)問題。,第二章 相關(guān)例題,相關(guān)例題 軟件計(jì)劃階段包括的內(nèi)容是什么? 范圍定義、資源計(jì)劃、成本估算、進(jìn)度安排 成本估算計(jì)量單位包括哪些?成本估算方法有哪些? 成本估算計(jì)量單位,代碼行數(shù),人年/月/日 成本估算方法,靜態(tài)單變量,COCOMO,2.3.2估算中

7、的計(jì)量單位,代碼行數(shù) 軟件是代碼行的集合。 一個(gè)軟件的代碼行總數(shù)是軟件成本估算中的基本數(shù)據(jù)。 開發(fā)工作量 開發(fā)工作量是指完成一項(xiàng)開發(fā)任務(wù)所需要的計(jì)量單位, 軟件工程中用于計(jì)量開發(fā)工作量的單位主要有“人-月”,“人-年”,“人-日”。 如:某個(gè)項(xiàng)目需5人-月的工作量,它表示該項(xiàng)目的開發(fā)工作量實(shí)際為5每個(gè)程序員一個(gè)月應(yīng)完成的“標(biāo)準(zhǔn)勞動(dòng)量”。,常規(guī)的成本估算技術(shù) 代碼行估算法(LOC) 功能點(diǎn)估算法(FP) 運(yùn)用估算模型進(jìn)行成本估算(完全經(jīng)驗(yàn)) 靜態(tài)單變量模型 COCOMO模型 動(dòng)態(tài)多變量模型 使用自動(dòng)估算工具進(jìn)行估算 利用軟件工具進(jìn)行自動(dòng)估算。須長期搜集大量的歷史資料、數(shù)據(jù)和建立良好的數(shù)據(jù)庫管理系

8、統(tǒng)。,2.3.3 成本估算方法(技術(shù)),第三章 需求分析(重點(diǎn)),需求分析的任務(wù) 結(jié)構(gòu)化分析方法的三種描述手段 數(shù)據(jù)流圖,掌握數(shù)據(jù)流圖中的基本符號(hào),要求給出一個(gè)需求能夠畫出多層數(shù)據(jù)流圖 數(shù)據(jù)字典的定義,數(shù)據(jù)字典包括條目(數(shù)據(jù)元素,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)流和數(shù)據(jù)文件) 加工說明,掌握描述加工說明的三種方法。 原型化方法的產(chǎn)生和概念,原型化方法的優(yōu)缺點(diǎn),第三章 例1,結(jié)構(gòu)化分析方法的三種描述手段是_,_,加工說明;加工說明使用的三種描述工具是_,_, _。 答:數(shù)據(jù)流圖,數(shù)據(jù)字典,加工說明;結(jié)構(gòu)化語言,判定樹和判定表來表示。 掌握數(shù)據(jù)流圖的,數(shù)據(jù)字典和加工說明的基本概念。,(分層)數(shù)據(jù)流圖(Data Fl

9、ow Diagram,簡稱DFD) 是一種描述數(shù)據(jù)在系統(tǒng)中流動(dòng)的圖形工具。它可用于描述系統(tǒng)功能的分解過程,即描述軟件系統(tǒng)的功能組成部分及各部分之間的聯(lián)系。 數(shù)據(jù)詞典(Data Dictionary) 是對(duì)數(shù)據(jù)流圖中所有的數(shù)據(jù)元素、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)文件、數(shù)據(jù)流等的格式與內(nèi)容進(jìn)行定義的數(shù)據(jù)集合。 加工說明 加工說明的內(nèi)容是描述系統(tǒng)中每一個(gè)基本處理的基本條件、數(shù)據(jù)來源及處理邏輯、優(yōu)先級(jí)、執(zhí)行頻率、出錯(cuò)處理等所有細(xì)節(jié)。,掌握數(shù)據(jù)流圖的,數(shù)據(jù)字典和加工說明的基本概念。,第三章 例2,綜合題:給出一個(gè)簡單的需求,要求大家使用結(jié)構(gòu)化方法進(jìn)行分析,只要求畫出數(shù)據(jù)流圖,不要求數(shù)據(jù)字典和加工說明。,用戶需求: 某學(xué)

10、校需要開發(fā)一套基于Web的研究生招生管理系統(tǒng),用戶需求如下: 考生可以登錄系統(tǒng)提交報(bào)名信息,報(bào)名信息經(jīng)過格式確認(rèn)存入數(shù)據(jù)庫;信息提交成功后能夠網(wǎng)上在線支付報(bào)名費(fèi)并記錄交費(fèi)信息;交費(fèi)成功的考生可以打印報(bào)名表。 各院系教務(wù)員能夠查看和審核考生提交的報(bào)名信息,確定信息是否準(zhǔn)確有效,最后給出審核是否通過的標(biāo)志。教務(wù)員還能夠打印報(bào)名考生清單。 招生辦公室管理員能夠查詢有效的報(bào)名考生信息和打印統(tǒng)計(jì)報(bào)表;能夠生成報(bào)名考生數(shù)據(jù)文件上報(bào)到上級(jí)單位(教育部)。 題目要求: 請(qǐng)用SA方法對(duì)它進(jìn)行分析,畫出分層數(shù)據(jù)流圖。(只要求數(shù)據(jù)流圖,不要求數(shù)據(jù)字典和加工說明),第三章 例2,SA方法的課堂練習(xí)網(wǎng)上招生系統(tǒng),頂層數(shù)

11、據(jù)流圖,數(shù)據(jù)源點(diǎn)/目的點(diǎn),數(shù)據(jù)文件,數(shù)據(jù)加工,名詞,動(dòng)詞、動(dòng)名詞,數(shù)據(jù)流出/入,SA方法的課堂練習(xí)網(wǎng)上招生系統(tǒng),一層數(shù)據(jù)流圖,SA方法的課堂練習(xí)網(wǎng)上招生系統(tǒng),二層數(shù)據(jù)流圖(考生),SA方法的課堂練習(xí)網(wǎng)上招生系統(tǒng),二層數(shù)據(jù)流圖(教務(wù)員),SA方法的課堂練習(xí)網(wǎng)上招生系統(tǒng),二層數(shù)據(jù)流圖(管理員),SA方法的課堂練習(xí)網(wǎng)上招生系統(tǒng),軟件結(jié)構(gòu)圖(上層),SA方法的課堂練習(xí)網(wǎng)上招生系統(tǒng),軟件結(jié)構(gòu)圖(學(xué)生),學(xué)生功能 控制,格式確認(rèn),存入數(shù)據(jù)庫,讀取用戶 登錄信息,打印報(bào)名表,交報(bào)名費(fèi),讀取報(bào)名費(fèi),第三章 相關(guān)例題,相關(guān)例題 簡答題:原型化方法的基本原理是什么?為什么會(huì)產(chǎn)生原型化方法,什么類型的系統(tǒng)適合使用原

12、型化方法? 簡答題:需求分析的任務(wù)是什么?,3.3.1原型方法的產(chǎn)生,傳統(tǒng)瀑布模型的核心內(nèi)容是,將軟件生存期劃分為軟件計(jì)劃、需求分析、軟件設(shè)計(jì)、編碼、測(cè)試和運(yùn)行維護(hù)等階段,并強(qiáng)調(diào)了必須在軟件的設(shè)計(jì)、編碼之前對(duì)需求信息實(shí)施嚴(yán)格的定義,還要編寫完整、正確的需求分析規(guī)格說明書。 但是,實(shí)踐表明,對(duì)一些軟件系統(tǒng)來說,尤其是大型數(shù)據(jù)處理系統(tǒng),在系統(tǒng)開發(fā)的早期,要想得到一個(gè)完整、準(zhǔn)確的需求信息不是一件容易的事。 一方面,用戶在開發(fā)早期往往只對(duì)系統(tǒng)有一個(gè)模糊的想法,很難完全、準(zhǔn)確地表達(dá)對(duì)系統(tǒng)的需求,而軟件開發(fā)人員對(duì)問題領(lǐng)域的了解也還不夠。雖然經(jīng)過一段時(shí)間的分析和討論,雙方也許能形成一份較好的需求規(guī)格說明。但

13、很難期望這份說明能將系統(tǒng)方方面面的需求描述得完整、準(zhǔn)確、有效,與最終開發(fā)的系統(tǒng)相符,并由此達(dá)到各方人員對(duì)系統(tǒng)的相同理解。 另一方面,隨著開發(fā)工作的深入進(jìn)行,開發(fā)者可能會(huì)遇到一些實(shí)際困難,需要改變需求來擺脫困境;用戶也可能會(huì)產(chǎn)生新的需求,或者環(huán)境變化了,要求系統(tǒng)也能隨之變化。雖然傳統(tǒng)的軟件生存期管理可以通過加強(qiáng)評(píng)審和確認(rèn)、全面測(cè)試,甚至通過維護(hù)階段來緩解上述問題,但還不能從根本上解決這些問題。 為了解決這些問題,近年來形成了所謂快速原型開發(fā)方法。,3.3.2原型的定義,在軟件開發(fā)活動(dòng)中,原型是軟件的一個(gè)早期可運(yùn)行的版本,它實(shí)現(xiàn)了最終系統(tǒng)的部分重要特性(而不是所有特性)。特別是與硬件生產(chǎn)相比較,我

14、們需要的原型必須成本低、時(shí)間短,因此,把這種原型開發(fā)叫做快速原型開發(fā)。 在需求分析的早期,在獲得了有關(guān)系統(tǒng)的一些基本需求信息后,使用原型方法快速構(gòu)造一個(gè)系統(tǒng)原型,它滿足了用戶的基本要求。用戶在使用原型系統(tǒng)的過程中得到親身感受和受到啟發(fā),然后能夠進(jìn)一步確定需求的細(xì)節(jié),不斷適應(yīng)需求的改變,從而提高了最終產(chǎn)品的質(zhì)量。,對(duì)原型化分析方法的理解,原型化方法雖然是在分析階段的方法和技術(shù)中提出的,但是我們更多的將其看作是幫助分析人員更完整、更精確的獲取用戶的需求信息的工具。它并不是真正意義上的需求分析方法。 需求信息進(jìn)行分析與綜合的時(shí)候,結(jié)構(gòu)化的分析方法是最適合的。因此,原型化分析方法與結(jié)構(gòu)化分析方法并不是

15、并列的。原型化分析只是一種輔助手段。,3.1.1需求分析的任務(wù),1、對(duì)問題的識(shí)別和理解需求獲取 是一個(gè)調(diào)查研究的過程 分析人員需要具有較高的技能 2、對(duì)需求信息的分析和綜合需求規(guī)約 充分理解需求,包括功能、性能和數(shù)據(jù)需求 采用需求分析方法 3、編制“需求規(guī)格說明書” 需求規(guī)格說明書使用的語言 書寫要求 4、需求分析的復(fù)審,第四章 軟件結(jié)構(gòu)設(shè)計(jì),結(jié)構(gòu)設(shè)計(jì)的任務(wù) 模塊獨(dú)立性概念 耦合與內(nèi)聚的概念,耦合與內(nèi)聚的種類,耦合內(nèi)聚與模塊獨(dú)立性的關(guān)系 變換型結(jié)構(gòu)與事務(wù)型結(jié)構(gòu)的組成特點(diǎn) 結(jié)構(gòu)化設(shè)計(jì)方法 描述工具SC軟件結(jié)構(gòu)圖 變換型結(jié)構(gòu)的數(shù)據(jù)流圖轉(zhuǎn)化為軟件結(jié)構(gòu)圖,第四章 例1,面向數(shù)據(jù)流的軟件設(shè)計(jì)方法,一般將

16、數(shù)據(jù)流圖分成兩種類型,一種稱為_,另一種稱為_。 答:變換型,事務(wù)型 理解變換型數(shù)據(jù)流圖的特點(diǎn)和事務(wù)型數(shù)據(jù)流圖的特點(diǎn)。,變換型結(jié)構(gòu),變換型結(jié)構(gòu)的特點(diǎn)是:在系統(tǒng)的數(shù)據(jù)流圖中,呈現(xiàn)出明確的輸入、變換處理和輸出三個(gè)部分的結(jié)構(gòu)特征。 數(shù)據(jù)流圖中可明確劃分的這三個(gè)部分分別稱為邏輯輸入、變換處理和邏輯輸出。 絕大多數(shù)的軟件系統(tǒng)均表現(xiàn)出變換型結(jié)構(gòu)的特征。,事務(wù)型結(jié)構(gòu),什么叫事務(wù)?事務(wù)就是觸發(fā)或啟動(dòng)一串動(dòng)作的任何數(shù)據(jù),控制信號(hào)等。事務(wù)也是由信息組成,亦看作數(shù)據(jù)流。 事務(wù)型結(jié)構(gòu)的數(shù)據(jù)流圖呈現(xiàn)如下的結(jié)構(gòu)特征:有一個(gè)加工,它將數(shù)據(jù)流分離成若干個(gè)不同的輸出流,從而形成若干種不同事務(wù)處理活動(dòng)的路徑,并允許系統(tǒng)擇一處理。

17、 事務(wù)型結(jié)構(gòu)由至少一條接收路徑,一個(gè)事務(wù)中心和若干條動(dòng)作路徑組成。其示意圖如下:,第四章 例2,如何理解模塊獨(dú)立性,用什么標(biāo)準(zhǔn)來衡量模塊獨(dú)立性。 答:所謂模塊獨(dú)立性是指模塊完成它自身規(guī)定的功能而與系統(tǒng)中其它的模塊保持一定的相對(duì)獨(dú)立。模塊的獨(dú)立性可以使用內(nèi)聚和耦合這兩個(gè)定性的指標(biāo)來度量。,第四章 例3,給出數(shù)據(jù)流圖,轉(zhuǎn)化為軟件結(jié)構(gòu)圖,上層模塊的說明,軟件結(jié)構(gòu)最頂層的主控模塊Cm 作用是協(xié)調(diào)控制下屬模塊的工作。 輸入控制模塊Ca 作用是協(xié)調(diào)物理輸入數(shù)據(jù)的接收及轉(zhuǎn)換為邏輯輸入的過程。 變換中心控制模塊Ct 作用是協(xié)調(diào)內(nèi)部數(shù)據(jù)的處理流程并產(chǎn)生邏輯輸出。 輸出控制模塊Ce 協(xié)調(diào)邏輯輸出信息轉(zhuǎn)換為物理輸出

18、信息的產(chǎn)生過程。,例3(續(xù)),Ct,例3(續(xù)2),第四章 相關(guān)例題,相關(guān)例題: 什么叫做耦合,耦合有哪幾種類型,幾種類型間的耦合強(qiáng)弱關(guān)系? 什么叫做內(nèi)聚,內(nèi)聚有哪幾種類型,類型間的內(nèi)聚強(qiáng)弱關(guān)系? 耦合、內(nèi)聚與模塊獨(dú)立性的關(guān)系?,1、耦合,耦合是度量一個(gè)軟件結(jié)構(gòu)中模塊之間聯(lián)系程度強(qiáng)弱的一個(gè)指標(biāo)。模塊之間的聯(lián)系實(shí)質(zhì)上就是接口信息的復(fù)雜程度。 模塊間的耦合類型可分為如下 6 種: 軟件設(shè)計(jì)追求的目標(biāo)之一就是構(gòu)造耦合程度較低的系統(tǒng)結(jié)構(gòu)。 結(jié)構(gòu)設(shè)計(jì)中應(yīng)該遵循的原則是:優(yōu)先使用數(shù)據(jù)耦合,盡量少用控制耦合,限制公共實(shí)體耦合的范圍,禁用內(nèi)容耦合。,2、內(nèi)聚,指模塊內(nèi)部各軟件元素之間結(jié)合的緊密程度。 緊密程度高

19、的模塊,內(nèi)聚就高,模塊的獨(dú)立性就好。內(nèi)聚是信息隱藏和局部化概念運(yùn)用的自然結(jié)果。 模塊的內(nèi)聚分為七種類型: 一個(gè)模塊的內(nèi)聚程度越高,說明模塊內(nèi)功能的集中度更好,模塊劃分合理。 如果出現(xiàn)一個(gè)模塊同時(shí)滿足幾種內(nèi)聚的定義,此時(shí)應(yīng)取較低內(nèi)聚度作為模塊的內(nèi)聚。 結(jié)構(gòu)設(shè)計(jì)中應(yīng)該遵循的原則是:軟件設(shè)計(jì)時(shí)應(yīng)該力求構(gòu)造高內(nèi)聚的模塊,適當(dāng)構(gòu)造中等程度的內(nèi)聚模塊,最好不要出現(xiàn)低內(nèi)聚的模塊。,3、內(nèi)聚、耦合和模塊獨(dú)立性的關(guān)系,模塊內(nèi)的內(nèi)聚性強(qiáng),模塊的獨(dú)立性越強(qiáng);模塊間的耦合性強(qiáng),模塊的獨(dú)立性越弱。因此,選擇的原則是高內(nèi)聚,低耦合。 內(nèi)聚和耦合是一個(gè)問題的兩種不同度量。耦合弱,模塊間的關(guān)聯(lián)度小,對(duì)于每個(gè)模塊而言,其內(nèi)聚性

20、能就好,反之亦然。 由于軟件的復(fù)雜性,使得模塊間不可能沒有關(guān)聯(lián),全部單一功能的模塊也是不可能的。 例如:“初始化”是時(shí)間內(nèi)聚,屬低內(nèi)聚,為方便經(jīng)常做?!霸L問公共區(qū)”是公共耦合,屬強(qiáng)耦合,但使用公共語句也會(huì)給程序帶來方便,所以有時(shí)也用。,第五章 數(shù)據(jù)驅(qū)動(dòng)的軟件設(shè)計(jì)方法,數(shù)據(jù)驅(qū)動(dòng)的軟件設(shè)計(jì)方法的核心思想 其核心思想是以輸入/輸出數(shù)據(jù)結(jié)構(gòu)以及內(nèi)部存儲(chǔ)信息的結(jié)構(gòu)作為設(shè)計(jì)的出發(fā)點(diǎn),按照特定的變換規(guī)則,逐步將數(shù)據(jù)結(jié)構(gòu)的描述變換為對(duì)軟件結(jié)構(gòu)的描述。 Jackson方法 雖然程序中實(shí)際使用的數(shù)據(jù)結(jié)構(gòu)繁多,但是它們的基本數(shù)據(jù)元素之間的邏輯關(guān)系卻只有順序、選擇和重復(fù)三類。Jackson方法中把這三類基本邏輯關(guān)系表

21、示成三種基本的層次結(jié)構(gòu),并用Jackson圖給出表示。,第六章 面向?qū)ο蟮能浖_發(fā)技術(shù)(重點(diǎn)),面向?qū)ο蟮幕靖拍?,包括,面向?qū)ο?,?duì)象,類,封裝,繼承,消息,多態(tài)。重點(diǎn)掌握對(duì)象、類和繼承的概念 面向?qū)ο蠓椒ǖ奶攸c(diǎn)。比結(jié)構(gòu)化方法好在哪里 UML統(tǒng)一建模語言 能夠使用用例圖對(duì)系統(tǒng)進(jìn)行需求建模 能夠使用類圖構(gòu)造系統(tǒng)的分析類類圖,第六章 例1,簡答題:什么是對(duì)象,什么是面向?qū)ο螅?答: 對(duì)象是各種客觀實(shí)體的抽象,是由一組屬性和對(duì)這組屬性進(jìn)行操作的一組服務(wù)結(jié)合在一起所構(gòu)成的獨(dú)立實(shí)體。 面向?qū)ο缶褪沁\(yùn)用對(duì)象、類、繼承、封裝、消息、結(jié)構(gòu)與連接等面向?qū)ο蟮母拍顚?duì)問題進(jìn)行分析、求解的系統(tǒng)開發(fā)技術(shù) 面向?qū)ο髮?duì)象

22、類繼承消息結(jié)構(gòu)與連接,第六章 例2,什么是UML? 答:UML是Unified Modeling Language統(tǒng)一建模語言的縮寫,統(tǒng)一建模語言是軟件系統(tǒng)建模的表示工具。 本題考核UML基本概念。UML和C語言、Java語言等不同,它不是程序設(shè)計(jì)語言,而是用面向?qū)ο蠓椒▽?duì)系統(tǒng)進(jìn)行分析設(shè)計(jì)的表示工具,類似與數(shù)據(jù)流圖和軟件結(jié)構(gòu)圖。,第六章 相關(guān)例題,相關(guān)例題 簡答題:簡述繼承的概念? 簡答題:什么叫做封裝? 什么是泛化關(guān)系?什么是聚集關(guān)系?,2. 類,類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對(duì)象的集合。 類的定義包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作。 實(shí)例:類中的每個(gè)對(duì)象都稱為該類的一個(gè)實(shí)例。

23、對(duì)象的數(shù)量和種類很多,但它們之間卻存在著某種共性的東西。我們把共性的東西抽象出來定義成類。在一個(gè)類中,每個(gè)對(duì)象都是類的實(shí)例,它們都可使用類中提供的函數(shù)。 類與對(duì)象的關(guān)系,就如同程序設(shè)計(jì)語言中類型與該類型的變量的關(guān)系一樣。,3. 封裝,封裝是一種數(shù)據(jù)組織的方式。在面向?qū)ο蟮母拍钪?,封裝是一條重要的原則,其含義是為了實(shí)現(xiàn)信息隱藏而把對(duì)象的全部屬性和服務(wù)的實(shí)現(xiàn)過程結(jié)合成一個(gè)獨(dú)立的實(shí)體(對(duì)象),即:盡量隱藏對(duì)象的內(nèi)部細(xì)節(jié)。 封裝的特點(diǎn): 有一個(gè)清楚的邊界,封裝的基本單位是對(duì)象。 有一個(gè)接口。這個(gè)接口描述該對(duì)象與其他對(duì)象的相互作用。 受保護(hù)的內(nèi)部的實(shí)現(xiàn)。對(duì)象的外部不能直接存取對(duì)象的屬性。,4. 繼承Ge

24、neralization,繼承是使用已存在的定義做為基礎(chǔ)建立新定義的技術(shù)。 新類的定義可以是既存類所聲明的數(shù)據(jù)和新類所增加的聲明的組合。新類復(fù)用既存類的定義,而不要求修改既存類。即:在已定義類(稱為父類)的基礎(chǔ)上,創(chuàng)建一個(gè)新類,新類除了定義自己新的屬性和服務(wù)以外,它還從父類繼承了其全部屬性和服務(wù)。 既存類可當(dāng)做基類(父類)來引用,則新類相應(yīng)地可當(dāng)做派生類(子類)來引用。 只有一個(gè)父類 單繼承 有多個(gè)父類 多繼承,對(duì)象類之間的泛化關(guān)系,泛化關(guān)系是對(duì)象之間,因繼承而組成的分類層次結(jié)構(gòu),又稱為對(duì)象的分類結(jié)構(gòu)。泛化關(guān)系體現(xiàn)一般與特殊的關(guān)系。 基類(一般類)描述了對(duì)象的一般屬性,而派生類則描述了對(duì)象的特

25、殊屬性。派生類對(duì)象繼承了在基類中定義的全部屬性和服務(wù)。 下圖是表示分類關(guān)系的圖形符號(hào)。圖中上部是一個(gè)基類,下面是若干個(gè)具體的派生類。,泛化關(guān)系的圖示,對(duì)象之間的聚集關(guān)系,一個(gè)對(duì)象是另一個(gè)對(duì)象的組成部分,并且對(duì)象間不存在有傳遞性繼承關(guān)系,對(duì)象間的這種關(guān)系稱為聚集關(guān)系。如飛機(jī)是由機(jī)頭、機(jī)身和機(jī)翼組成。 聚集關(guān)系體現(xiàn)的時(shí)整體與部分的關(guān)系。 下圖是表示組成關(guān)系的圖形符號(hào)。圖中上方是一個(gè)整體對(duì)象,下方是構(gòu)成該整體對(duì)象的若干個(gè)部分對(duì)象,它們之間用箭頭指向標(biāo)記連接,箭頭方向表示組成關(guān)系的方向。,聚集關(guān)系圖示,第六章 例3,綜合題:給出一個(gè)簡單的需求,要求大家使用UML建立需求模型和分析模型 注意:此題用于區(qū)

26、分同學(xué)的能力,因此不提供具體的例題,請(qǐng)參考第六章可見PPT,第72頁的酒店預(yù)定系統(tǒng)的例子??荚囍灰蟮谝徊叫枨螳@取和第二步需求分析。,面向?qū)ο蠓治鲈O(shè)計(jì)實(shí)例旅店預(yù)訂系統(tǒng),業(yè)務(wù)背景陳述 1. 研究對(duì)象 某旅店 2. 業(yè)務(wù)現(xiàn)狀 1)該旅店可對(duì)外開放50個(gè)雙人間和20個(gè)單人間,房間費(fèi)用視情況按季節(jié)調(diào)整,但周一到周五提供半價(jià)(周末全價(jià))折扣 2)旅客可以直接入住房間(如果有空房),也可提前預(yù)訂;入住和預(yù)訂都需要登記個(gè)人信息 3)旅客提前預(yù)訂房間時(shí),需提交一定的訂金;入住時(shí)間24小時(shí)之外的旅客可以取消預(yù)訂,并退回所有訂金,24小時(shí)以內(nèi)不退還訂金 4)退房時(shí)繳納全部的住宿費(fèi)用 5)服務(wù)員每月為經(jīng)理提供房間的

27、預(yù)訂情況和入住情況的詳細(xì)信息 開發(fā)一套旅店預(yù)訂系統(tǒng),1-需求獲取用例建模,用例描述預(yù)定房間,用例描述取消預(yù)定,下一步?,需求,用例,面向?qū)ο?分析設(shè)計(jì),結(jié)構(gòu)化 分析設(shè)計(jì),其它方法,自己的 土方法,系統(tǒng),分析,分析 為了滿足需求模型中所描述的功能,系統(tǒng)內(nèi)部應(yīng)該有什么樣的業(yè)務(wù)核心機(jī)制(做什么?) 分析的目標(biāo)開發(fā)一系列模型,以描述機(jī)軟件核心成分,從而滿足客戶定義的需求:分析模型 包括兩個(gè)層次:構(gòu)架分析和用例分析 包括兩類圖:靜態(tài)結(jié)構(gòu)(包圖、類圖)和動(dòng)態(tài)交互圖(順序圖、協(xié)作圖) 模型元素按照構(gòu)架來組織,各類視圖按照用例實(shí)現(xiàn)來組織,分析階段主要工件,從需求到分析,Analysis workflow,An

28、alysis Class,分析與需求的關(guān)系,分析是建立在需求收集的基礎(chǔ)上 分析模型建立在用例模型的基礎(chǔ)上 用例模型確定了分析模型的結(jié)構(gòu)(通過用例實(shí)現(xiàn)來組織分析模型) 用戶視角理解用戶問題過渡到開發(fā)團(tuán)隊(duì)視角分析用戶問題 與需求一樣,它還是在問題域中 從用戶視角跨入開發(fā)團(tuán)隊(duì)視角 分析與需求獲取在很大程度上重疊,這兩個(gè)活動(dòng)常常相輔相成,為了澄清和找出任何遺漏或歪曲的需求,常常需要在需求之上作一些分析,2-需求分析確定第一次迭代用例圖,選取“預(yù)定房間”和“取消房間”兩個(gè)用例作為第一次迭代用例,2-需求分析構(gòu)架分析,定義備選構(gòu)架,構(gòu)架分析的過程就是定義系統(tǒng)高層組織結(jié)構(gòu)和核心構(gòu)架機(jī)制的過程 1.定義系統(tǒng)高

29、層組織結(jié)構(gòu)備選構(gòu)架 2.確定系統(tǒng)通用構(gòu)架機(jī)制分析機(jī)制,經(jīng)典的三層構(gòu)架,數(shù)據(jù)庫,記錄銷售信息,支付授權(quán),表示層,應(yīng)用邏輯層,存儲(chǔ)層,模型視圖控制器構(gòu)架MVC,模型,即相關(guān)的數(shù)據(jù),它是對(duì)象的內(nèi)在屬性 視圖是模型的外在表現(xiàn)形式,一個(gè)模型可以對(duì)應(yīng)一個(gè)或者多個(gè)視圖,視圖還具有與外界交互的功能 控制器是模型與視圖的聯(lián)系紐帶,控制器提取通過視圖傳輸進(jìn)來的外部信息轉(zhuǎn)化成相應(yīng)事件,然后由對(duì)應(yīng)的控制器對(duì)模型進(jìn)行更新; 相應(yīng)的,模型的更新與修改將通過控制器通知視圖,保持視圖與模型的一致性,MVC備選構(gòu)架示意圖B-C-E,2-需求分析用例分析,用例分析流程 1.完善用例規(guī)約 2.對(duì)每一個(gè)用例實(shí)現(xiàn) 2.1從用例行為中查

30、找類 2.2將用例行為分配給類 2.3構(gòu)造該用例的參與類類圖 3.對(duì)每一個(gè)得到的分析類 3.1說明職責(zé) 3.2說明屬性和關(guān)聯(lián) 3.3限定分析機(jī)制 4.統(tǒng)一分析類,預(yù)定房間用例分析結(jié)果職責(zé)分配,利用順序圖進(jìn)行職責(zé)分配,預(yù)定房間用例分析結(jié)果參與類類圖,從分析到設(shè)計(jì),Design workflow,Analysis Class,軟件設(shè)計(jì)的定義,IEEE 1990:設(shè)計(jì)是體系結(jié)構(gòu)、構(gòu)件、接口、以及系統(tǒng)其它特征定義的過程,軟件設(shè)計(jì)(的結(jié)果)必須 描述系統(tǒng)的體系結(jié)構(gòu)(architecture) 系統(tǒng)如何分解(decompose)和組織(organize)構(gòu)件 描述構(gòu)件間的接口(interface) 描述構(gòu)

31、件(component):必須詳細(xì)到可進(jìn)一步構(gòu)造的程度,3-設(shè)計(jì)系統(tǒng)構(gòu)架設(shè)計(jì),3-設(shè)計(jì)系統(tǒng)構(gòu)件設(shè)計(jì)(設(shè)計(jì)類圖),3-設(shè)計(jì)系統(tǒng)構(gòu)件設(shè)計(jì)(預(yù)定房間用例的順序圖),3-設(shè)計(jì)構(gòu)件圖與部署圖,類圖、對(duì)象圖、包圖元語,類,包,對(duì)象,接口,鏈接(對(duì)象間),依賴關(guān)系,關(guān)聯(lián)關(guān)系,聚合關(guān)系,組合關(guān)系,泛化關(guān)系,實(shí)現(xiàn)關(guān)系,返回靜態(tài)結(jié)構(gòu)圖,第七章 詳細(xì)設(shè)計(jì),程序的三種基本控制結(jié)構(gòu) 順序、選擇和循環(huán)三種基本控制結(jié)構(gòu) 詳細(xì)設(shè)計(jì)工具(程序流程圖與盒圖,PAD圖之間的轉(zhuǎn)化),第七章 例,綜合題:求一組數(shù)的最大數(shù)的算法。請(qǐng)為上述算法畫程序流程圖,并分別轉(zhuǎn)換成NS圖和PAD圖,最后計(jì)算環(huán)域復(fù)雜度。,求一組數(shù)的最大數(shù),盒圖,結(jié)構(gòu)流

32、程圖(盒圖)的圖形符號(hào),結(jié)構(gòu)流程圖(盒圖)的擴(kuò)展符號(hào),從圖中可見,圖形符號(hào)中沒有箭頭,也就不允許控制流隨意的轉(zhuǎn)移。使用結(jié)構(gòu)化流程圖作為詳細(xì)設(shè)計(jì)的表達(dá)工具,不僅可以保證程序是結(jié)構(gòu)化的,還能在程序思維方面培養(yǎng)程序員用結(jié)構(gòu)化的思維方式、分析問題、解決問題的能力。 優(yōu)點(diǎn):無論如何細(xì)化總在一個(gè)框框之中,沒有控制流線的問題。可以培養(yǎng)按結(jié)構(gòu)化方法進(jìn)行設(shè)計(jì)。 缺點(diǎn):當(dāng)算法特別復(fù)雜時(shí),尤其是嵌套的層數(shù)較多時(shí),內(nèi)層方框越來越小,不僅增加了畫圖的難度,還會(huì)影響圖形的清晰度。另外算法的修改不太方便,即使是局部性的變動(dòng),也需要重新畫圖。,求一組數(shù)的最大數(shù),環(huán)域復(fù)雜度121013 等于程序圖中弧所封閉的區(qū)域數(shù)。,PAD圖

33、的基本符號(hào),一個(gè)復(fù)雜的例子,流程圖如右圖所示,分別畫出N-S圖和PAD圖,N-S圖,NS圖,PAD圖,7.3.1 程序流程圖,程序流程圖又稱為框圖,是一種用于表達(dá)問題求解過程控制流的有效方法,也是早期使用最廣泛的算法描述方法,也是最容易引起誤解和受到爭議的方法。 優(yōu)點(diǎn):直觀,初學(xué)者很容易掌握。 缺點(diǎn):用箭頭表示控制流向,程序員可以隨意發(fā)揮,不受任何約束,因此可讀性差。 隨著軟件工程規(guī)范的形成,人們主張廢棄這種方法,但由于它歷史悠久,為最廣泛的人所熟悉。至今在許多程序語言的教科書中仍在使用。,程序流程圖的描述符號(hào),表示流程的開始和終止,表示順序執(zhí)行的過程處理,表示分支選擇,表示多分支選擇,表示控

34、制流向,表示數(shù)據(jù),第七章 相關(guān)例題,相關(guān)例題 程序的三種控制結(jié)構(gòu)是_, _和_。 順序、選擇和循環(huán)三種基本控制結(jié)構(gòu),三種基本控制結(jié)構(gòu),兩種擴(kuò)充結(jié)構(gòu),第八章 程序編碼,程序設(shè)計(jì)語言的特性 選擇程序設(shè)計(jì)語言的標(biāo)準(zhǔn),第八章 例,程序設(shè)計(jì)語言的三個(gè)特性分別是_,_,_。 答:工程特性,技術(shù)特性,心理特性。 理解每種特性的含義,尤其是心理特性。 相關(guān)例題 選擇程序設(shè)計(jì)語言的最關(guān)鍵因素是_。,工程特性:語言是程序設(shè)計(jì)的工具,而程序設(shè)計(jì)又是軟件工程中的一項(xiàng)工程活動(dòng)。因此必須用軟件工程的觀點(diǎn)考察一個(gè)程序設(shè)計(jì)語言,并希望語言能夠具備若干工程特性,以滿足軟件開發(fā)項(xiàng)目的需要。 可移植性:支持重用 開發(fā)工具的可利用性

35、:減少源代碼的開發(fā)時(shí)間和提高質(zhì)量 軟件的可重用性:加快開發(fā)速度,提高軟件生產(chǎn)率和軟件質(zhì)量。 可維護(hù)性:應(yīng)便于將設(shè)計(jì)翻譯成代碼,語言本身的自說明性可促進(jìn)軟件的可維護(hù)性,程序設(shè)計(jì)語言特性,技術(shù)特性:就是語言所提供的技術(shù)支持的能力。語言的技術(shù)特性影響到編碼的質(zhì)量。 數(shù)據(jù)結(jié)構(gòu)的表達(dá)能力 執(zhí)行性能和實(shí)時(shí)處理能力 輸入輸出的功能與性能的支持能力 支持程序的結(jié)構(gòu)化,并具備良好的可移植性及容易翻譯的能力 支持可視化,自動(dòng)生成、對(duì)象鏈接、程序復(fù)用的能力,程序設(shè)計(jì)語言特性(續(xù)),心理特性:語言影響人的思維這一特性,稱為語言的心理特性。這些心理特性雖然不能用定量的方法來度量,但還是可以認(rèn)識(shí)到它們?cè)诔绦蛟O(shè)計(jì)語言中的表

36、現(xiàn)形式。 二義性:x=x1/x2*x3,引起程序員對(duì)程序理解的混亂 簡潔性:程序員需要記憶的信息的總量 局部性:一種聯(lián)想機(jī)制,直接支持結(jié)構(gòu)化構(gòu)件 一致性:表示一種語言所使用符號(hào)的兼容程度 線性:線性是程序語言的順序性,它表明了人們習(xí)慣于按邏輯上的線性序列去理解程序,程序設(shè)計(jì)語言特性(續(xù)),程序設(shè)計(jì)語言的選擇,選擇語言的準(zhǔn)則 項(xiàng)目的應(yīng)用領(lǐng)域 科學(xué)、工程計(jì)算:FORTRAN,Pascal,PL1,C 商業(yè)性數(shù)據(jù)處理:COBOL,F(xiàn)OXPRO,SQL,ORACLE 實(shí)時(shí)軟件:匯編語言,Ada(軍事部門) 系統(tǒng)軟件:匯編語言,Ada,C+ Web程序:Java,C# 軟件開發(fā)方法 軟件開發(fā)運(yùn)行環(huán)境 算

37、法和數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性 軟件開發(fā)人員的知識(shí) (6)用戶關(guān)于性能的需求,第九章 軟件測(cè)試(重點(diǎn)),測(cè)試的有關(guān)概念 Myers測(cè)試的目的(3點(diǎn)) 1.測(cè)試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯(cuò)誤; 2.一個(gè)好的測(cè)試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤; 3.一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。 測(cè)試的對(duì)象 白盒測(cè)試的概念 白盒測(cè)試方法(邏輯覆蓋發(fā),基本路徑測(cè)試法) 黑盒測(cè)試的概念 黑盒測(cè)試的方法(等價(jià)分類法、邊界值分析法、錯(cuò)誤猜測(cè)法) 軟件測(cè)試的步驟,軟件測(cè)試的5個(gè)階段。,第九章 例1,白盒測(cè)試技術(shù)的基本原理是什么?構(gòu)造白盒測(cè)試的測(cè)試用例有哪幾種方法? 答:允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息

38、,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。 構(gòu)造測(cè)試用例有邏輯覆蓋法和基本路徑測(cè)試法。,第九章 例2,簡答題:軟件測(cè)試的步驟有哪些?其中哪一步是和系統(tǒng)其它元素聯(lián)合測(cè)試,哪一步需要用戶參與? 答:單元測(cè)試,集成測(cè)試,確認(rèn)測(cè)試,系統(tǒng)測(cè)試,驗(yàn)收測(cè)試 系統(tǒng)測(cè)試,驗(yàn)收測(cè)試 了解各個(gè)測(cè)試階段要完成的內(nèi)容。,9.1.5 測(cè)試與軟件開發(fā)各階段的關(guān)系,第九章 例3,黑盒測(cè)試等價(jià)分類法構(gòu)造測(cè)試用例 有一信用卡,其密碼號(hào)為五位,首位規(guī)定A或B,其他4位規(guī)定為數(shù)字位,請(qǐng)列出二個(gè)有效等價(jià)密碼和四個(gè)無效等價(jià)密

39、碼作為一組測(cè)試用例,以便測(cè)試密碼識(shí)別程序。 有效測(cè)試用例: _,_。 無效測(cè)試用例: _,_,_,_。,第九章 例3(續(xù)),有效等價(jià)類 首位為A或B,A1234 25位為數(shù)字,B8888 無效等價(jià)類 首位非字母,12345 首位字母不是A或B,C5700 25位有非數(shù)字,A23F4 密碼長度不等于5位,B12345 此類例題還包括第九章171頁的例子。,第九章 相關(guān)例題,相關(guān)例題 黑盒測(cè)試技術(shù)的基本原理是什么?構(gòu)造黑盒測(cè)試的測(cè)試用例有哪幾種方法? 白盒測(cè)試技術(shù)屬于靜態(tài)測(cè)試還是動(dòng)態(tài)測(cè)試?黑盒測(cè)試技術(shù)屬于靜態(tài)測(cè)試還是動(dòng)態(tài)測(cè)試? 軟件測(cè)試的對(duì)象是什么? 程序和各個(gè)軟件配置項(xiàng)共同組成軟件測(cè)試的對(duì)象。

40、軟件配置:需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)以及程序編碼等各階段所得到的文檔,包括需求規(guī)格說明、概要設(shè)計(jì)規(guī)格說明、詳細(xì)設(shè)計(jì)規(guī)格說明以及源程序等,統(tǒng)稱為軟件配置。 什么樣的測(cè)試是一次成功的測(cè)試? 一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試,9.3.2 黑盒測(cè)試技術(shù)的測(cè)試實(shí)例構(gòu)造方法,黑盒測(cè)試技術(shù)是以程序的功能作為測(cè)試依據(jù)并按功能要求輸入執(zhí)行參數(shù),然后程序執(zhí)行輸出結(jié)果。 黑盒測(cè)試技術(shù)的實(shí)例構(gòu)造方法介紹三種: 1. 等價(jià)分類法 2. 邊界值分析法 3. 錯(cuò)誤猜測(cè)法,靜態(tài)測(cè)試方法,靜態(tài)測(cè)試方法是程序員普遍采用的一種方法,其內(nèi)容是,通過人工模擬軟件系統(tǒng)的執(zhí)行方式,以代碼會(huì)審、走查、辦公室檢查的形式分析或核查

41、系統(tǒng)的功能實(shí)現(xiàn)、編碼過程的正確性。 a)代碼會(huì)審: 錯(cuò)誤檢驗(yàn)表包括:數(shù)據(jù)引用錯(cuò)、說明錯(cuò)、計(jì)算錯(cuò)、接口錯(cuò),這些都是經(jīng)驗(yàn)的積累。 b)走查:將人當(dāng)作機(jī)器,沿程序路徑在“人腦”走一遍。,動(dòng)態(tài)測(cè)試方法,動(dòng)態(tài)測(cè)試方法是通過輸入一組預(yù)先按照一定的測(cè)試準(zhǔn)則構(gòu)造的實(shí)例數(shù)據(jù)來動(dòng)態(tài)運(yùn)行程序,而達(dá)到發(fā)現(xiàn)程序錯(cuò)誤的過程,也稱為機(jī)器測(cè)試。 動(dòng)態(tài)測(cè)試分為結(jié)構(gòu)測(cè)試與功能測(cè)試。分別對(duì)應(yīng)的是白盒測(cè)試和黑盒測(cè)試。,第十章 軟件維護(hù),軟件維護(hù)的4種類型,理解4種類型的概念 可維護(hù)性的定義,第十章 例,軟件維護(hù)的內(nèi)容非常廣泛,可以分為_, _, _和_。 答:改正性維護(hù),適應(yīng)性維護(hù),完善性維護(hù),預(yù)防性維護(hù) 理解每種維護(hù)工作需要完成的

42、內(nèi)容。,10.2.1 改正性維護(hù),改正性維護(hù)是在軟件運(yùn)行中發(fā)生異?;蚬收蠒r(shí)進(jìn)行的維護(hù)。 究其故障產(chǎn)生的原因,可能是開發(fā)過程中某個(gè)環(huán)節(jié)上的隱蔽錯(cuò)誤造成的。由于開發(fā)過程中實(shí)施的軟件測(cè)試工作不徹底、不完全,必然會(huì)有一部分隱藏的錯(cuò)誤被帶到運(yùn)行階段來。這種錯(cuò)誤或障礙常常是由于遇到了從未用過的輸入數(shù)據(jù)組合的情況或發(fā)生在與其他軟件的接口、與硬件的接口處出現(xiàn)的問題。,10.2.2 適應(yīng)性維護(hù),適應(yīng)性維護(hù)是指,為使軟件系統(tǒng)適應(yīng)不斷變化的運(yùn)行環(huán)境而進(jìn)行的修改過程。 隨著計(jì)算機(jī)的飛速發(fā)展,外部環(huán)境(新的硬、軟件配置)或數(shù)據(jù)環(huán)境(數(shù)據(jù)庫、數(shù)據(jù)格式、數(shù)據(jù)輸入/輸出方式、數(shù)據(jù)存儲(chǔ)介質(zhì))可能發(fā)生變化,為了使軟件適應(yīng)這種變化

43、,而去修改軟件的過程叫做適應(yīng)性維護(hù)。,10.2.3完善性維護(hù),完善性維護(hù)是指在軟件的使用過程中,根據(jù)用戶提出的新增系統(tǒng)功能和改善性能的要求而對(duì)軟件進(jìn)行修改或再開發(fā),以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件質(zhì)量的工作。 它是軟件維護(hù)工作最主要的部分。無論應(yīng)用軟件還是系統(tǒng)軟件都要在使用期間不斷改善和加強(qiáng)產(chǎn)品的功能和性能,推出新版本。,10.2.4 預(yù)防性維護(hù),維護(hù)人員不要單純等待用戶提出維護(hù)的請(qǐng)求,而應(yīng)該選擇那些還能使用數(shù)年、目前雖能運(yùn)行,但不久就須作重大修改或加強(qiáng)的軟件,進(jìn)行預(yù)先的維護(hù)。預(yù)防性維護(hù)可以改善軟件的可維護(hù)性,減少今后對(duì)它們維護(hù)時(shí)所需要的工作量。 早期開發(fā)的軟件時(shí)預(yù)防性維護(hù)的重要對(duì)象。這類軟件有一部分仍在使用,但開發(fā)方法陳舊、文檔不齊全。 把今天的方法用于昨天開發(fā)的系統(tǒng),支持明天的需求。,第十章 相關(guān)例題,相關(guān)例題 什么是可維護(hù)性,評(píng)介可維護(hù)性的三個(gè)最重要的指標(biāo)是什么?

溫馨提示

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