軟件工程重點知識復(fù)習_資料集錦_第1頁
軟件工程重點知識復(fù)習_資料集錦_第2頁
軟件工程重點知識復(fù)習_資料集錦_第3頁
軟件工程重點知識復(fù)習_資料集錦_第4頁
軟件工程重點知識復(fù)習_資料集錦_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章 軟件工程概述1軟件產(chǎn)品的特性是什么?產(chǎn)品特性: 是一種邏輯產(chǎn)品,與物質(zhì)產(chǎn)品有很大的區(qū)別。軟件產(chǎn)品的生產(chǎn)主要是研制,生產(chǎn)成本主要在開發(fā)和研制,開發(fā)研制完成后,通過復(fù)制就產(chǎn)生了大量軟件產(chǎn)品。軟件產(chǎn)品不會用壞,不存在磨損,消耗。 生產(chǎn)主要是腦力勞動,還末完全擺脫手工開發(fā)方式,大部分產(chǎn)品是定做的開發(fā)軟件的費用不斷增加,致使生產(chǎn)成本相當昂貴。2軟件生產(chǎn)有幾個階段?各有何特征?程序設(shè)計時代:這個階段生產(chǎn)方式是個體勞動,使用的生產(chǎn)工具是機器語言,匯編語言。程序系統(tǒng)時代:這個階段生產(chǎn)方式是小集團合作生產(chǎn),使用的生產(chǎn)工具是高級語言,開發(fā)方法仍依靠個人技巧,但開始提出結(jié)構(gòu)化方法。軟件工程時代:這個階段生產(chǎn)

2、方式是工程化的生產(chǎn),使用數(shù)據(jù)庫開發(fā)工具開發(fā)環(huán)境網(wǎng)絡(luò)分布式面向?qū)ο蠹夹g(shù)來開發(fā)軟件。3什么是軟件危機?主要表現(xiàn)在哪些方面?軟件開發(fā)技術(shù)的進步未能滿足發(fā)展的要求。在軟件開發(fā)中遇到的問題找不到解決的辦法,問題積累起來,形態(tài)尖銳的矛盾,導(dǎo)致了軟件危機。表現(xiàn)方面: (1) 用戶對開發(fā)出的軟件很難滿意。(2) 軟件產(chǎn)品的質(zhì)量往往靠不住。 (3) 一般軟件很難維護。 (4) 軟件生產(chǎn)效率很低。 (5) 軟件開發(fā)成本越來越大。 (6) 軟件成本與開發(fā)進度難以估計。(7)軟件技術(shù)的發(fā)展遠遠滿足不了計算機應(yīng)用的普及與深入的需要。4什么是軟件工程?它目標和內(nèi)容是什么?軟件工程:就是用科學的知識工程和技術(shù)原理來定義,開

3、發(fā),維護軟件的一門學科。軟件工程的目標:付出較低開發(fā)成本;達到要求的功能;取得較好的性能;開發(fā)的軟件易于移植;只需較低的維護費用;能按時完成開發(fā)任務(wù),及時交付使用;開發(fā)的軟件可靠性高。軟件工程的內(nèi)容:研究內(nèi)容包括開發(fā)技術(shù)和開發(fā)管理兩個方面。開發(fā)技術(shù)主要研究:軟件開發(fā)方法,開發(fā)過程,開發(fā)工具和環(huán)境。開發(fā)管理主要研究:軟件管理學,軟件經(jīng)濟學,軟件心理學。5軟件工程面臨的問題是什么?軟件工程需要解決的問題:軟件的費用,可靠性,可維護性,軟件生產(chǎn)率和軟件的重用。6什么是軟件生存周期?它有哪幾個活動?軟件生存周期:一個軟件從提出開發(fā)要求開始直到該軟件報廢為止的整個時期。包括:可行性分析和項目開發(fā)計劃,需

4、求分析,概要設(shè)計,詳細設(shè)計,編碼,測試,維護。7什么是軟件生存周期模型?有哪些主要模型?生存周期模型:描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。對軟件開發(fā)提供強有力的支持,為開發(fā)過程中的活動提供統(tǒng)一的政策保證,為參與開發(fā)的人員提供幫助和指導(dǎo),是軟件生存周期模型化技術(shù)的基礎(chǔ),也是建立軟件開發(fā)環(huán)境的核心。主要有:瀑布模型,增量模型,螺旋模型,噴泉模型,基于知識的模型,變換模型。8什么是軟件開發(fā)方法?有哪些主要方法?使用早已定義好的技術(shù)集及符號表示習慣來組織軟件生產(chǎn)的過程。通過使用成功的軟件開發(fā)方法,在規(guī)定的投資和時間內(nèi),開發(fā)出符合用戶需求的高質(zhì)量的軟件。軟件開發(fā)方法是克服軟件危機的重要方面之一,對

5、軟件工程及軟件包產(chǎn)業(yè)的發(fā)展起了不可估量的作用。主要有:結(jié)構(gòu)化方法,JACKSON方法,維也納開發(fā)方法VDM,面向?qū)ο箝_發(fā)方法。9、軟件工程方法學包含3個要素分別是什么?分別是:方法、工具和過程。 方法是完成軟件開發(fā)的各項任務(wù)的技術(shù)方法,回答“怎樣做”的問題; 工具是為運用方法而提供的自動的或半自動的軟件工程支撐環(huán)境; 過程是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作步驟。10、什么是軟件過程?為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,規(guī)定了完成各項任務(wù)的工作步驟。在完成開發(fā)任務(wù)時必須進行一些開發(fā)活動,并且使用適當?shù)馁Y源,在過程結(jié)束時將把輸入轉(zhuǎn)化為輸出。1

6、1、瀑布模型的特點及優(yōu)點?特點: (1)各個階段的順序性和依賴性; (2)劃分邏輯設(shè)計與物理設(shè)計,盡可能推遲程序的物理實現(xiàn); (3)每個階段必須完成規(guī)定的文檔,對其中問題通過復(fù)審及早發(fā)現(xiàn),及早解決。優(yōu)點: 可強迫開發(fā)人員采用規(guī)范的方法(例如,結(jié)構(gòu)化技術(shù)); 嚴格地規(guī)定了每個階段必須提交的文檔; 要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細驗證。12、螺旋模型的優(yōu)點? 對可選方案和約束條件的強調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個重要目標; 減少了過多測試(浪費資金)或測試不足(產(chǎn)品故障多)所帶來的風險; 在螺旋模型中維護只是模型的另一個周期,在維護和開發(fā)之間并沒

7、有本質(zhì)區(qū)別。螺旋模型主要適用于內(nèi)部開發(fā)的大規(guī)模軟件項目。項目越大,風險也越大,因此,進行風險分析的必要性也越大。此外,只有內(nèi)部開發(fā)的項目,才能在風險過大時方便地中止項目。13、快速原型的分類、特點及使用策略?分類:探索型、實驗型、進化型 特點:盡快向用戶提供一個可在計算機上運行的目標系統(tǒng)的模型,以便使用戶和開發(fā)者在目標系統(tǒng)應(yīng)該“做什么”這個問題上盡可能快地達成共識。 快速原型應(yīng)該具備的第一個特點是“快速”; 快速原型應(yīng)該具備的第二個特點是“容易修改”。原型的“修改試用反饋”過程可能重復(fù)多遍。使用策略:廢棄策略和追加策略。14、軟件工程的目標?付出較低開發(fā)成本;達到要求的功能;取得較好的性能;開

8、發(fā)的軟件易于移植;只需較低的維護費用;能按時完成開發(fā)任務(wù),及時交付使用;開發(fā)的軟件可靠性高。15、軟件開發(fā)技術(shù)主要研究內(nèi)容?軟件開發(fā)方法,開發(fā)過程,開發(fā)工具和環(huán)境。16、軟件開發(fā)管理主要研究內(nèi)容?軟件管理學,軟件經(jīng)濟學,軟件心理學。17、快速原型開發(fā)的步驟?快速開發(fā)、需求、構(gòu)造原形、原形、運行原形、評價原形、修改意見。18、某計算機系統(tǒng)投入使用后、 5年內(nèi)每年可節(jié)省人民幣 2O0O元,假設(shè)系統(tǒng)的投資額為5000元,年利率為 12。試計算投資回收期和純收入。第二章 可行性研究1、可行性研究的任務(wù)是什么?可行研究的任務(wù):首先需要進行概要的分析研究,初步確定項目的規(guī)模,目標,約束和限制。分析員再進行

9、簡要的需求分析,抽象出項目的邏輯結(jié)構(gòu),建立邏輯模型。從邏輯模型出發(fā),經(jīng)過壓縮的設(shè)計,探索出若干種可供選擇的解決方法,對每種解決方法都要研究它的可行性。主要從四個方面考慮:.技術(shù)可行性:一般要考慮的情況包括 開發(fā)的風險即設(shè)計出的系統(tǒng)能否達到要求的功能和性能;資源的有效性;相關(guān)技術(shù)的發(fā)展是否支持;.經(jīng)濟可行性:進行開發(fā)成本的估算以及了解取得效益的評估,確定要開發(fā)的項目是否值得投資。.法律可行性:要開發(fā)的項目是否存在任何侵權(quán)問題。(4).管理可行性:運行方式在用戶組織內(nèi)是否可行,現(xiàn)有管理制度人員素質(zhì)操作方式是否可行。2、可行性研究有哪些步驟?.確定項目規(guī)模和目標;.研究正在運行的系統(tǒng);收集研究分析現(xiàn)

10、有系統(tǒng)的文檔資料,實地考察系統(tǒng)訪問有關(guān)人員,然后描繪現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖。.建立新系統(tǒng)的高層邏輯模型;使用數(shù)據(jù)流圖和數(shù)據(jù)字典描述數(shù)據(jù)在系統(tǒng)中的流動和處理情況。 .導(dǎo)出和評價各種方案;導(dǎo)出若干較高層次的物理解決方法,根據(jù)技術(shù)可行性經(jīng)濟可行性社會可行性進行評估,得到可行的解決方法。.推薦可行方案;進行成本效益分析,決定該項目是否值得開發(fā),若值得開發(fā)那么解決方案是什么,并且說明該方案可行的原因和理由。.編寫可行性研究報告;將上述可行性過程的結(jié)果寫成相應(yīng)文檔,即可行性研究報告。3、可行性研究過程包括哪些?1. 復(fù)查系統(tǒng)規(guī)模和目標2. 研究目前正在使用的系統(tǒng)3. 導(dǎo)出新系統(tǒng)的高層邏輯模型4. 進一步

11、定義問題5. 導(dǎo)出和評價供選擇的解法6. 推薦行動方針7. 草擬開發(fā)計劃8. 書寫文檔提交審查4、什么是數(shù)據(jù)流圖?其作用是什么?數(shù)據(jù)流圖(DFD):以圖形的方式描述數(shù)據(jù)在系統(tǒng)中流動和處理的邏輯過程。只反映系統(tǒng)必須完成的邏輯功能,是一種功能模型。5、什么是數(shù)據(jù)字典?其作用是什么?共有哪些條目? 數(shù)據(jù)字典(DD)用來定義數(shù)據(jù)庫流圖中的各個成分的具體含義。有以下四類條目:數(shù)據(jù)流,數(shù)據(jù)項,數(shù)據(jù)存儲,基本加工。6、成本-效益分析可用哪些指標進行度量?.投資回收率:通常把建立系統(tǒng)若干年后能取得的收益折算成現(xiàn)在的價值和開發(fā)系統(tǒng)所需的費用進行比較得出投資回收率。.投資回收期:就是使累計的經(jīng)濟效益等于最初的投資

12、費用所需的時間。.純收入:整個生存周期之內(nèi)的累計經(jīng)濟效益(折成現(xiàn)在值)與投資之差。7、某圖書管理系統(tǒng)有以下功能: 借書:輸入讀者借書證。系統(tǒng)首先檢查借書證是否有效,若有效,對于第一次借書的讀者,在借書證上建立檔案。否則,查閱借書文件,檢查該讀者所借圖書是否超過10本,若已達10,拒借,末達10本,辦理借書(檢查庫存,修改庫存目錄并將讀者借書情況錄入借書文件。) 還書:從借書文件中讀出與讀者有關(guān)的記錄,查閱所借日期,如超期(3個月)作罰款處理。否則,修改庫存目錄與借書文件。 查詢:通過借書文件,庫存目錄文件查詢讀者情況圖書借閱及庫存情況,打印統(tǒng)計表。 解:8、某銀行的計算機儲蓄系統(tǒng)功能是:將儲戶

13、的存戶填寫的存款單或存款單輸入系統(tǒng),如果是存款,系統(tǒng)記錄存款人姓名住址存款類型存款日期利率等信息,并打印出存款單給儲戶;如果是取款,系統(tǒng)計算清單給儲戶。請用DFD,IDEF0描繪該功能的需求,并建立相應(yīng)數(shù)據(jù)字典。 9、一個考務(wù)處理系統(tǒng)的要求如下,試畫出該系統(tǒng)的數(shù)據(jù)流圖。(1) 對考生送來的報名表進行檢查;(2) 對合格的報名表編好準考證號碼后將準考證送給考生,并將匯總后的考生名單送給閱卷站;(3) 對閱卷站送來的成績表進行檢查,并根據(jù)考試中心指定的合格標準審定合格者;(4) 填寫考生通知單(內(nèi)容包含考試成績及合格不合格標志),送給考生;(5) 按地區(qū)、年齡、文化程度、職業(yè)、考試級別等進行成績分

14、類統(tǒng)計及試題難度分析,產(chǎn)生統(tǒng)計分析表。(1)頂層數(shù)據(jù)流圖 (2) 第1層數(shù)據(jù)流圖(3) 第2層數(shù)據(jù)流圖 加工1子圖:加工2子圖:10、系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具,表達的是數(shù)據(jù)在系統(tǒng)各部件之間流動的情況,11、原型化方法主要用于解決什么問題?試說明這種方法的主要優(yōu)缺點。原型化方法主要用于解決在產(chǎn)品開發(fā)的早期階段需求不確定的問題,用戶、經(jīng)理和其他非技術(shù)項目風險承擔者發(fā)現(xiàn)在確定和開發(fā)產(chǎn)品時,原型可以使他們的想象更具體化。 這種方法的主要優(yōu)點如下:(1)明確并完善需求 原型作為一種需求工具,它初步實現(xiàn)所理解的系統(tǒng)的一部分,用戶對原型的評價可以指出需求中的許多問題。(2) 探索設(shè)計選擇方案

15、 原型作為一種設(shè)計工具,可以探索不同的用戶界面技術(shù),使系統(tǒng)達到最佳的可用性,并且可以評價可能的技術(shù)方案。(3)發(fā)展為最終的產(chǎn)品 原型作為一種構(gòu)造工具,是產(chǎn)品最初子集的完整功能實現(xiàn),通過一系列小規(guī)模的開發(fā)循環(huán),你可以完成整個產(chǎn)品的開發(fā)。(4)這種方法的主要缺點包括:(1) 用戶看到一個正在運行的原型便以為產(chǎn)品即將完成,他們會要求不再進行產(chǎn)品重建,而只是對原型進行一些修改就交付。由于原型沒有考慮軟件的總體質(zhì)量和可維護性,交付原型往往造成欲速則不達的情況。(2) 開發(fā)人員為了快速構(gòu)造原型,可能會采用不合適的操作系統(tǒng)或程序設(shè)計語言,也可能使用一些效率低的算法。在一段時間的開發(fā)之后,他們往往已經(jīng)習慣了這

16、些選擇,于是便在系統(tǒng)中參雜了這些不理想的選擇。 第三章 需求分析 1、什么是需求分析?需求分析階段的基本任務(wù)是什么? 需求分析:開發(fā)人員準確地理解用戶的要求,進行細致的調(diào)查分析,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)換到相應(yīng)的需求規(guī)格說明的過程。 基本任務(wù): 問題識別:雙方確定對問題的綜合需求,這些需求包括功能需求,性能需求,環(huán)境需求,用戶界面需求。 分析與綜合,導(dǎo)出軟件的邏輯模型 。編寫文檔:包括編寫需求規(guī)格說明書,初步用戶使用手冊,確認測試計劃,修改完善軟件開發(fā)計劃 。2、什么是結(jié)構(gòu)分析方法?該方法使用什么描述工具? 結(jié)構(gòu)化分析:簡稱SA,面向數(shù)據(jù)流進行數(shù)據(jù)分析的方法。

17、采用自頂向下逐層分解的分析策略。頂層抽象地描述整個系統(tǒng),底層具體地畫出系統(tǒng)工程的每個細節(jié)。中間層則是從抽象到具體的過渡。使用數(shù)據(jù)流圖,數(shù)據(jù)字典,作為描述工具,使用結(jié)構(gòu)化語言,判定表,判定樹描述加工邏輯。3、結(jié)構(gòu)化分析方法通過哪些步驟來實現(xiàn)? 了解當前系統(tǒng)的工作流程,獲得當前系統(tǒng)的物理模型。 抽象出當前系統(tǒng)的邏輯模型。 建立目標系統(tǒng)的邏輯模型。 作進一步補充和優(yōu)化。4、E-R圖中包含哪幾種種基本成分?實體(即數(shù)據(jù)對象)、關(guān)系和屬性5、聯(lián)系可分為哪幾種類型?一對一聯(lián)系(11),一對多聯(lián)系(1N),多對多聯(lián)系(MN)6、為何要進行數(shù)據(jù)結(jié)構(gòu)規(guī)范化?為減少數(shù)據(jù)冗余,避免出現(xiàn)插入異?;騽h除異常,簡化修改數(shù)

18、據(jù)的過程。7、第一范式每個屬性值都必須是原子值,即僅僅是一個簡單值而不含內(nèi)部結(jié)構(gòu)。8、第二范式滿足第一范式條件,而且每個非關(guān)鍵字屬性都由整個關(guān)鍵字決定(而不是由關(guān)鍵字的一部分來決定),消除了非關(guān)鍵字屬性對關(guān)鍵字屬性的部分依賴。9、第三范式符合第二范式的條件,每個非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一個非關(guān)鍵字屬性不能僅僅是對另一個非關(guān)鍵字屬性的進一步描述(即一個非關(guān)鍵字屬性值不依賴于另一個非關(guān)鍵字屬性值),消除了非關(guān)鍵字屬性對關(guān)鍵字屬性的傳遞依賴。10、S-L-C(SNO,SDEPT,SLOC,CNO,G),這里SNO表示學號,SDEPT表示系名,SLOC表示樓號,CNO表示課程號,G表示成績。

19、 函數(shù)依賴有: (SNO,CNO)G; SDEPTSLOC; SNOSDEPT,對關(guān)系進行規(guī)范化,達到三范式要求。(1)SC(SNO,CNO,G)和 (2)S-D(SNO,SDEPT,) (3) S-L(SDEPT ,SLOC)11、狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖(簡稱為狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。提供了行為建模機制。12、層次方框圖層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。樹形結(jié)構(gòu)的頂層是一個單獨的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個數(shù)據(jù)的子集,最底層的各個框代表組成這個數(shù)據(jù)的實際數(shù)據(jù)元素(不能再分割的元素)。13、IPO

20、圖IPO圖是輸入、處理、輸出圖的簡稱,能夠方便地描繪輸入數(shù)據(jù)、對數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。14、從哪些方面驗證軟件需求的正確性(1) 一致性所有需求必須是一致的,任何一條需求不能和其他需求互相矛盾。(2) 完整性需求必須是完整的,規(guī)格說明書應(yīng)該包括用戶需要的每一個功能或性能。(3) 現(xiàn)實性指定的需求應(yīng)該是用現(xiàn)有的硬件技術(shù)和軟件技術(shù)基本上可以實現(xiàn)的。對硬件技術(shù)的進步可以做些預(yù)測,對軟件技術(shù)的進步則很難做出預(yù)測,只能從現(xiàn)有技術(shù)水平出發(fā)判斷需求的現(xiàn)實性。(4) 有效性必須證明需求是正確有效的,確實能解決用戶面對的問題。第四章 總體設(shè)計1、什么是總體設(shè)計?總體設(shè)計的任務(wù)是什么?總體設(shè)計又稱為概要

21、設(shè)計或初步設(shè)計。確定系統(tǒng)功能是實現(xiàn)?;救蝿?wù)是:建立軟件系統(tǒng)結(jié)構(gòu)(劃分模塊、定義模塊功能、模塊間的調(diào)用關(guān)系、定義模塊的接口、評價模塊的質(zhì)量)、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫的設(shè)計(數(shù)據(jù)結(jié)構(gòu)設(shè)計、概念設(shè)計、邏輯設(shè)計、物理設(shè)計)、編寫概要設(shè)計文檔(概要設(shè)計說明書、用戶手冊、數(shù)據(jù)庫設(shè)計說明書、修訂測試計劃)。2、總體設(shè)計分為哪兩個階段?系統(tǒng)設(shè)計階段,確定系統(tǒng)的具體實現(xiàn)方案;結(jié)構(gòu)設(shè)計階段,確定軟件結(jié)構(gòu)。3、總體設(shè)計過程包括幾個步驟?1. 設(shè)想供選擇的方案2. 選取合理的方案3. 推薦最佳方案4. 功能分解5. 設(shè)計軟件結(jié)構(gòu)6. 設(shè)計數(shù)據(jù)庫7. 制定測試計劃8. 書寫文檔9. 審查和復(fù)審4、模塊化是把程序劃分成獨立命

22、名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構(gòu)成一個整體,可以完成指定的功能滿足用戶的需求。5、模塊化的優(yōu)點 (1)模塊化使軟件容易測試和調(diào)試,因而有助于提高軟件的可靠性。 (2)模塊化也有助于軟件開發(fā)工程的組織管理。6、抽象就是抽出事物的本質(zhì)特性而暫時不考慮它們的細節(jié)。7、抽象化包括哪些?過程的抽象 、數(shù)據(jù)抽象。8、模塊的獨立程度的定性標準度量是什么?好的模塊應(yīng)滿足什么標準?內(nèi)聚和耦合;高內(nèi)聚低耦合。9、什么耦合?模塊間的耦合有哪些?指衡量不同模塊彼此間互相依賴(連接)的緊密程度;有非直接耦合、標記耦合、數(shù)據(jù)耦合 、控制耦合 、外部耦合、公共耦合和內(nèi)容耦合 。10、非直接

23、耦合如果兩個模塊之間沒有直接關(guān)系,它們之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實現(xiàn)的,這就是非直接耦合。這種耦合的模塊獨立性最強。11、標記耦合如果一組模塊通過參數(shù)表傳遞記錄信息,就是標記耦合。這個記錄是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡單變量。12、數(shù)據(jù)耦合如果一個模塊訪問另一個模塊時,彼此之間是通過簡單數(shù)據(jù)參數(shù) (不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量) 來交換輸入、輸出信息的,則稱這種耦合為數(shù)據(jù)耦合。13、控制耦合如果一個模塊通過傳送開關(guān)、標志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。14、外部耦合一組模塊都訪問同一全局簡單變量而不是同一全局數(shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞

24、該全局變量的信息,則稱之為外部耦合。15、公共耦合若一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局數(shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。16、內(nèi)容耦合如果發(fā)生下列情形,兩個模塊之間就發(fā)生了內(nèi)容耦合 (1) 一個模塊直接訪問另一個模塊的內(nèi)部數(shù)據(jù); (2) 一個模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)部; (3) 兩個模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語言中); (4) 一個模塊有多個入口。17、內(nèi)聚衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度。功能內(nèi)聚 ,信息內(nèi)聚 ,通信內(nèi)聚 ,過程內(nèi)聚,時間內(nèi)聚,邏輯內(nèi)聚,巧合內(nèi)聚。19、功能內(nèi)聚 一個模塊中各個

25、部分都是完成某一具體功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成一項具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。則稱該模塊為功能內(nèi)聚模塊。20、信息內(nèi)聚 這種模塊完成多個功能,各個功能都在同一數(shù)據(jù)結(jié)構(gòu)上操作,每一項功能有一個唯一的入口點。這個模塊將根據(jù)不同的要求,確定該執(zhí)行哪一個功能。由于這個模塊的所有功能都是基于同一個數(shù)據(jù)結(jié)構(gòu)(符號表),因此,它是一個信息內(nèi)聚的模塊。21、通信內(nèi)聚 如果一個模塊內(nèi)各功能部分都使用了相同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出數(shù)據(jù),則稱之為通信內(nèi)聚模塊。通常,通信內(nèi)聚模塊是通過數(shù)據(jù)流圖來定義的。22、過程內(nèi)聚使用流程圖做為工具設(shè)計程序時,把流程圖中的某一部分

26、劃出組成模塊,就得到過程內(nèi)聚模塊。例如,把流程圖中的循環(huán)部分、判定部分、計算部分分成三個模塊,這三個模塊都是過程內(nèi)聚模塊。23、時間內(nèi)聚時間內(nèi)聚又稱為經(jīng)典內(nèi)聚。這種模塊大多為多功能模塊,但模塊的各個功能的執(zhí)行與時間有關(guān),通常要求所有功能必須在同一時間段內(nèi)執(zhí)行。例如初始化模塊和終止模塊。24、邏輯內(nèi)聚這種模塊把幾種 相關(guān)的功能組合在一起,每次被調(diào)用時,由傳送給模塊的判定參 數(shù)來確定該模塊應(yīng)執(zhí)行哪一種功能。25、巧合內(nèi)聚巧合內(nèi)聚又稱為偶然內(nèi)聚。當模塊內(nèi)各部分之間沒有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)系也很松散,則稱這種模塊為巧合內(nèi)聚模塊,它是內(nèi)聚程度最低的模塊。26、扇出是一個模塊直接控制(調(diào)用)的模塊

27、數(shù)目。27、扇入一個模塊的扇入表明有多少個上級模塊直接調(diào)用它。28、模塊的作用域定義為受該模塊內(nèi)一個判定影響的所有模塊的集合。29、模塊的控制域是這個模塊本身以及所有直接或間接從屬于它的模塊的集合。30、模塊化的優(yōu)點。 模塊化使軟件容易測試和調(diào)試,因而有助于提高軟件的可靠性,提高軟件的可修改性。 模塊化也有助于軟件開發(fā)工程的組織管理。31、逐步求精、分層過程與抽象等概念之間的相互關(guān)系如何?“自頂向下,逐步求精”是Niklaus Wirth提出的設(shè)計策略:即將軟件的體系結(jié)構(gòu)按自頂向下方式,對各個層次的過程細節(jié)和數(shù)據(jù)細節(jié)逐層細化,直到用程序設(shè)計語言的語句能夠?qū)崿F(xiàn)為止,從而最后確立整個的體系結(jié)構(gòu)。這

28、樣的結(jié)構(gòu)實際就是一個模塊的分層結(jié)構(gòu),即分層的過程。在實施時,采用抽象化的方法,自頂向下,給出不同的抽象層次。在最高的抽象層次上,可以使用問題所處環(huán)境的語言概括地描述問題的解法。而在較低的抽象層次上,則采用過程化的方法。在描述問題的解法時,我們可以配合使用面向問題的術(shù)語和面向現(xiàn)實的術(shù)語。但最后在最低的抽象層次上,應(yīng)使用能夠直接實現(xiàn)的方式來描述這個解法。32、什么是軟件結(jié)構(gòu)圖?簡述軟件結(jié)構(gòu)設(shè)計優(yōu)化準則。軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個系統(tǒng)的功能實現(xiàn),即將來程序的控制體系。準則:高內(nèi)聚低耦合、作用范圍在控制范圍內(nèi)、軟件的深度、寬度、扇入、扇出適當、模塊大小適中、接口簡單清晰易懂。33、什么是模塊的

29、控制范圍和作用范圍?他們的關(guān)系如何?控制范圍:是模塊本身和它的下屬模塊的集合。作用范圍:模塊中的一個判定影響的所有模塊的集合。作用范圍應(yīng)該在控制范圍內(nèi)。33、什么是變換流?什么是事物流?變換流由輸入、變換(或處理)、輸出三部分組成。事物流某個加工將它的輸入流分離成許多發(fā)散的數(shù)據(jù)流,形成許多加工路徑,并根據(jù)輸入選擇其中一個路徑來執(zhí)行。34、試述變換分析事物分析設(shè)計步驟。變換分析設(shè)計步驟:確定變換中心,邏輯輸入和輸出。 設(shè)計軟件結(jié)構(gòu)的頂層和第一層-變換結(jié)構(gòu):頂層的功能是完成所有模塊的控制(名稱應(yīng)是系統(tǒng)名,以體現(xiàn)完成整個系統(tǒng)功能) 第一層至少有三種功能模塊:輸入輸出和變換模塊 設(shè)計中下層模塊,對第一

30、層的模塊自頂向下分解。 輸入模塊由兩部分組成:接收數(shù)據(jù)轉(zhuǎn)換成調(diào)用模塊所需信息。 輸出模塊由兩部分組成:將數(shù)據(jù)轉(zhuǎn)換成下屬模塊所需的形式 發(fā)送數(shù)據(jù)變換模塊:對每個基本加工建立一功能模塊 設(shè)計的優(yōu)化 :輸入部分求精,每個物理輸入設(shè)置專門模塊,以體現(xiàn)系統(tǒng)的外部接口。其它輸入模塊與轉(zhuǎn)換數(shù)據(jù)模塊都很簡單時,可將它們合并。輸出部分求精:每個物理輸出設(shè)置專門模塊,其它也可適當合并。變換部分求精:根據(jù)設(shè)計準則,對模塊適當合并。 事務(wù)分析的設(shè)計步驟:確定事務(wù)中心和加工路徑 設(shè)計頂層(事務(wù)機構(gòu))和第一層 頂層模塊有兩個功能:接收數(shù)據(jù)和根據(jù)事務(wù)類型調(diào)動相應(yīng)處理模塊。 中下層模塊的設(shè)計優(yōu)化工作與變換結(jié)構(gòu)相同。 事務(wù)型軟

31、件結(jié)構(gòu)包括兩部分: 接收分支 發(fā)送分支出 通常包括一調(diào)度模塊,當事務(wù)類型不多時,可與主模塊合并 。35、請將下圖的DFD轉(zhuǎn)換為軟件結(jié)構(gòu)圖。解:第五章 詳細設(shè)計1、 詳細設(shè)計的基本任務(wù)是什么?有那幾種描述方法?設(shè)計模塊的數(shù)據(jù)結(jié)構(gòu)、設(shè)計數(shù)據(jù)庫的物理結(jié)構(gòu)、設(shè)計模塊的詳細算法、其它(代碼設(shè)計、輸入/輸出格式設(shè)計、人機對話設(shè)計)、編寫詳細設(shè)計說明書、評審。程序流程圖、PAD圖、PDL。2、請使用流程圖、PAD圖和PDL語言描述下列程序的算法。(1)在數(shù)據(jù)A(1)A(10)中求最大數(shù)和次大數(shù)。PDL語言描述: GET(a1,a2,.a10) max=a1; max2=a2; FOR i=2 TO 10 I

32、F aimax max2=max; max=ai; ELSE IF aimax2 max2=ai; ENDIF ENDIF ENDFOR PUT(max,max2) END3、輸入三個正整數(shù)作為邊長,判斷該三條邊構(gòu)成的三角形是等邊、等腰還是一般三角形。使用流程圖、PAD圖和PDL語言描述。解:如圖:PDL語言描述如下: GET(a,b,c) IF (a+bc and b+ca and c+ab) IF (a=b) IF (a=c) PUT(等邊三角形) ELSE PUT(等腰三角形) ENDIF ELSE IF(a=c) PUT(等腰三角形) ELSE IF (b=c) PUT(等腰三角形)

33、ELSE PUT(一般三角形) ENDIF ENDIF ENDIF ELSE PUT (這不是一個三角形) ENDIF4、畫出下面用PDL寫出的程序的PAD圖。WHILE P DO IF A O THEN A1 ELSE A2 ENDIF; S1; IF B0 THEN B1; WHILE C DO S2;S3 ENDWHILE; ELSE B2 ENDIF; B3 ENDWHILE;第六章 編碼與測試1、軟件測試的目的是什么?軟件測試中,應(yīng)注意哪些原則?答:軟件測試的目的是為了發(fā)現(xiàn)軟件的錯誤。軟件測試中應(yīng)注意的原則有:(1)測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的輸出數(shù)據(jù)兩部分組成。這樣便 于對照檢查,

34、做到有的放矢。 (2)測試且例不僅選用合理輸入數(shù)據(jù),還要選擇不合理的輸入數(shù)據(jù)。這樣能更多地發(fā)現(xiàn)錯誤,提高程序的可靠性。對于不合理的輸入數(shù)據(jù),程序應(yīng)拒絕接受,并給出相應(yīng)的提示。 (3)除了檢查程序是否做了它應(yīng)該做的事,還應(yīng)該檢查程序是否做了它不應(yīng)該做的事。 (4)應(yīng)制定測試計劃并嚴格執(zhí)行,排除隨意性。 (5)長期保留測試用例。 (6)對發(fā)現(xiàn)錯誤較多的程序段,應(yīng)進行更深入的測試。 (7)程序員應(yīng)避免測試自己的程序。測試是一種挑剔性的行為,心理狀態(tài)是測試自己程序的障礙。 2、什么是白盒測試法?有哪些覆蓋標準?試對他們的檢錯能力進行比較?答:白盒法測試法把測試對象看作一個打開的盒子,測試人員須了解程序

35、內(nèi)部結(jié)構(gòu)和處理過程,以檢查處理過程的細節(jié)為基礎(chǔ),對程序中盡可能多的邏輯路徑進行測試,檢驗內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否有錯,實際的運行狀態(tài)與預(yù)期的狀態(tài)是否一致。白盒法有下列幾種覆蓋標準: 語句覆蓋:設(shè)計若干個測試用例,運行被測程序,使得每一可執(zhí)行語句至少執(zhí)行一次。 判定覆蓋:設(shè)計若干個測試用例,運行被測程序,使得程序中每個判斷的取真分支和取假分支至少經(jīng)歷一次。 條件覆蓋:設(shè)計若干個測試用例,運行被測程序,使得程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。 判定/條件覆蓋:設(shè)計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷中的每個條件的可能取值至少執(zhí)行一次。 條件組合覆

36、蓋:設(shè)計足夠的測試用例,運行被測程序,使得每個判斷的所有可能的條件取值組合至少執(zhí)行一次。 路徑覆蓋:設(shè)計足夠的測試用例,覆蓋程序中所有可能的路徑。從上到下的覆蓋標準其檢錯能力也從弱到強,其中條件組合發(fā)現(xiàn)錯誤的能力較強,凡滿足其標準的測試用例,也必然滿足前四種覆蓋標準。在實際的邏輯測試中,一般以條件組合覆蓋為主設(shè)計測試用例,然后再補充部分用例來達到路徑覆蓋的測試標準。3、什么是黑盒測試法?采用黑盒技術(shù)測試用例有哪幾種方法?這些方法各有什么特點?答:黑盒測試法把被測試對象看成是一個黑盒子,測試人員完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只在軟件接口處進行測試,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能要

37、求。采用黑盒技術(shù)測試用例的方法有:等價類的劃分、邊界值分析、錯誤推測和因果圖。 等價類的劃分:是將輸入數(shù)據(jù)按有效的或無效的(也稱合理的或不合理的)劃分成若干個等價類,測試每個等價類的代表值就等于對該類其他值的測試。這樣就把漫無邊跡的隨機測試改為有針對性的等價類測試,用少量有代表性的例子代替大量測試目的相同的例子,能有效地提高測試效率。但這個方法的缺點是沒有注意選擇某些高效的、能夠發(fā)現(xiàn)更多錯誤的測試用例。 邊界值分析法:是將測試邊界情況作為重點目標,選取正好等于、剛剛大于和剛剛小于邊界值的測試數(shù)據(jù)。(邊界情況是指輸入等價類和輸入等價類邊界上的情況。)這種方法可以查出更多的錯誤,因為在程序中往往在

38、處理邊界情況時易發(fā)生錯誤。 錯誤推測法:是在測試程序時,人們根據(jù)經(jīng)驗或直覺推測程序中可能存在的錯誤,從而有針對性地編寫檢查這些錯誤的測試用例。 因果圖:能夠有效地檢測輸入條件的各種組合可能會引起的錯誤。它的基本原理是通過畫因果圖,把用自然語言描述的功能說明轉(zhuǎn)換為判定表,最后為判定表的每一列設(shè)計一個測試用例。這幾種方法都不能提供一組完整的測試用例,在實際測試中應(yīng)把各種方法結(jié)合起來使用。綜合策略:就是聯(lián)合使用上述幾種測試方法,盡可能多地發(fā)現(xiàn)程序中的錯誤。4、軟件測試要經(jīng)過哪些步驟?這些測試與軟件開發(fā)各階段之間有什么關(guān)系?答:軟件測試要經(jīng)過的步驟是:單元測試集成測試確認測試系統(tǒng)測試。 單元測試:對源

39、程序中每一個程序單元進行測試,檢查各個模塊是否正確實現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯誤。該階段涉及編碼和詳細設(shè)計文檔。 集成測試:是為了檢查與設(shè)計相關(guān)的軟件體系結(jié)構(gòu)的有關(guān)問題,也就是檢查概要設(shè)計是否合理有效。 確認測試:主要是檢查已實現(xiàn)的軟件是否滿足需求規(guī)格說明書中確定了的各種需求。 系統(tǒng)測試:是把已確認的軟件與其他系統(tǒng)元素(如硬件、其他支持軟件、數(shù)據(jù)、人工等)結(jié)合在一起進行測試。以確定軟件是否可以支付使用。5、單元測試有哪些內(nèi)容?測試中采用什么方法?答:單元測試主要針對模塊的以下五個基本特征進行測試:(1)模塊接口 (2)局部數(shù)據(jù)結(jié)構(gòu) (3)重要的執(zhí)行路徑 (4)錯誤處理 (5

40、)邊界條件 測試的方法是為被測試模塊編寫驅(qū)動模塊和樁模塊來實現(xiàn)被測試單元的可運行。通過驅(qū)動模塊來模擬被測試模塊的上級調(diào)用模塊,以上級模塊調(diào)用被測模塊的格式驅(qū)動被測模塊,接收被測模塊的測試結(jié)構(gòu)并輸出。樁模塊則用來代替被測試模塊所調(diào)用的模塊。它的作用是返回被測模塊所需的信息。6、什么是集成測試?非漸增式測試與漸增式測試有什么區(qū)別? 漸增式測試如何組裝模塊?答:集成測試是指在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求組裝成一個完整的系統(tǒng)進行的測試。非漸增式測試是指首先對每個模塊分別進行單元測試,再把所有模塊組裝成一個完整的系統(tǒng)進行的測試。而漸增式測試就是逐個把未經(jīng)測試的模塊組裝到已經(jīng)過測試的模塊上去進

41、行集成測試,每加入一個新模塊進行一次集成測試,重復(fù)此過程直到程序組裝完畢。漸增式測試有兩種不同的組裝方法:自頂向下和自底向上結(jié)合。兩者區(qū)別是:(1)非漸增式方法把單元測試和集成測試分成兩個不同的階段,前一階段完成模塊的單元測試,后一階段完成集成測試。而漸增式測試往往把單元測試和集成測試合在一起,同時完成。(2)非漸增式需要更多的工作量,因為每個模塊都需要驅(qū)動模塊和樁模塊,而漸增式利用已測試過的模塊作為驅(qū)動模塊或樁模塊,因此工作量少。(3)漸增式可以較早地發(fā)現(xiàn)接口之間的錯誤,非漸增式最后組裝時才發(fā)現(xiàn)。(4)漸增式有利于排錯,發(fā)生錯誤往往和最近新加入的模塊有關(guān),而非漸增式發(fā)現(xiàn)接口錯誤推遲到最后,很

42、難判斷是哪一部分接口出錯。(5)漸增式比較徹底,已測試的模塊和新的模塊再測試。(6)漸增式點用時間較多,但非漸增式所需更多的驅(qū)動模塊和樁模塊也占用一些時間。(7)非漸增式開始可并行測試所有模塊,能充分利用人力,對測試大型軟件很有意義。7、什么是確認測試?該階段有哪些工作?答:確認測試又稱有效性測試。它的任務(wù)是檢查軟件的功能與性能是否與需求規(guī)格說明書中確定的指標相符合。因而需求說明是確認測試的基礎(chǔ)。確認測試階段有兩項工作:進行確認測試與軟件配置審查。8、調(diào)試的目的是什么?調(diào)試有哪些技術(shù)手段?答:調(diào)試則是在進行了成功的測試之后才開始的工作。調(diào)試的目的是確定錯誤的原因和位置,并改正錯誤,因此調(diào)試也稱為糾錯(Debug)。調(diào)試的技術(shù)手段有簡單的調(diào)試方法、歸納法、演繹法和回溯法等。9、將正確答案的編號填入題目空白處:在白盒測試用例中,有語句覆蓋、條件覆蓋、判定覆蓋、路徑覆蓋等,其中(A)是最強的覆蓋準則。為了對下圖所示的程序進行覆蓋測試,必須適當?shù)剡x取測試數(shù)據(jù)。若X,Y是兩個變量,可供選擇的測試數(shù)據(jù)組共有I,II,III,IV四組(如表中給出),則實現(xiàn)語句覆蓋至少應(yīng)采用的測試數(shù)據(jù)組是(B);實現(xiàn)條件覆蓋至少應(yīng)采用的測試數(shù)據(jù)組是(C);實現(xiàn)路徑覆蓋至少應(yīng)采用的測試數(shù)據(jù)組是(D)或(E)??晒┻x擇的答案:A:(1)語句覆蓋 (2)條件覆蓋 (3)判定覆蓋 (4)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論