軟件工程??己喆痤}資料_第1頁
軟件工程常考簡答題資料_第2頁
軟件工程??己喆痤}資料_第3頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、三水哥嘔心瀝血之作,只為與你相約中南緒論1、什么是軟件工程?軟件工程和計算機(jī)科學(xué)有何區(qū)別? 答:軟件工程 是以計算機(jī)科學(xué)理論及其他相關(guān)學(xué)科的理論為指導(dǎo),采用工程化的概念、 原理、技術(shù)和方法進(jìn)行軟件的開發(fā)和維護(hù),把經(jīng)過時間證明是正確的管理措施和當(dāng)前能 夠得到的最好的技術(shù)、方法相結(jié)合,以期用較少的代價獲取高質(zhì)量的軟件。計算機(jī)科學(xué) 側(cè)重于理論研究,其成果可應(yīng)用于軟件工程,而軟件工程則強(qiáng)調(diào)如何有 效的建造一個軟件系統(tǒng)。2、什么是軟件 ?答: 計算機(jī)軟件 是與計算機(jī)系統(tǒng)操作有關(guān)的 程序、規(guī)程、規(guī)則 及任何與之有關(guān)的 文檔及數(shù)據(jù) ;3、什么是軟件危機(jī)?分析其產(chǎn)生的原因與擺脫危機(jī)的方法,你認(rèn)為現(xiàn)在已經(jīng)擺脫軟

2、件危機(jī) 了嗎?請說明理由。軟件危機(jī) 是指在計算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。主要是 兩個問題:( 1)如何開發(fā)軟件,怎樣滿足對軟件的日益增長的需求;(2如何維護(hù)數(shù)量不斷膨脹的已有軟件;軟件危機(jī)的出現(xiàn),究其原因 ,一方面是由軟件本身的特點(diǎn)引起的,如軟件越來越復(fù) 雜,軟件故障難于檢測,工作量難以估計;另一方面則是因為軟件開發(fā)和維護(hù)方法不當(dāng) 所造成的,如軟件的個體化特征太強(qiáng)等。為了擺脫軟件危機(jī)所造成的困境,提出軟件工程的概念,其主要思路是:要把人類 長期以來從事各種工程項目所積累起來的行之有效的原理,概念,技術(shù)和方法,特別是 人類從事計算機(jī)硬件研究和開發(fā)的經(jīng)驗教訓(xùn),應(yīng)用到軟件的開發(fā)

3、和維護(hù)中來。我認(rèn)為我國現(xiàn)在還未完全擺脫軟件危機(jī),因為隨著經(jīng)濟(jì)發(fā)展,各行各業(yè)對軟件人才 的需求不斷擴(kuò)大,由于我國的軟件人才缺口依舊很大,造成了某些行業(yè)內(nèi)軟件開發(fā)進(jìn)度 難以預(yù)測, 軟件開發(fā)成本難以控制, 用戶對產(chǎn)品功能難以滿足, 軟件產(chǎn)品質(zhì)量無法保證, 軟件產(chǎn)品難以維護(hù),軟件缺少適當(dāng)?shù)奈臋n資料。4、軟件產(chǎn)品的特性是什么? 軟件是一種邏輯產(chǎn)品,具有無形性;軟件產(chǎn)品的生產(chǎn)主要是研制;軟件不存在磨損 和老化問題,但存在退化問題;軟件產(chǎn)品的生產(chǎn)主要是腦力勞動;軟件產(chǎn)品生產(chǎn)成本昂 貴,目前生產(chǎn)方式還未擺脫手工生產(chǎn)方式;軟件具有“復(fù)雜性” ,其開發(fā)和運(yùn)行常受到 計算機(jī)系統(tǒng)的限制。5、軟件發(fā)展有幾個階段?各有何

4、特征? 程序設(shè)計階段 硬件特征:價格貴、存儲容量小、運(yùn)行可靠性差。 軟件特征:只有程序、程序設(shè)計概念,不重視程序設(shè)計方法。 程序系統(tǒng)階段。 硬件特征:速度、容量及工作可靠性有明顯提高,價格降低,銷售有爆炸性增長。 軟件特征:程序員數(shù)量猛增,開發(fā)人員素質(zhì)低。 軟件工程階段。 硬件特征:向超高速、大容量、微型化及網(wǎng)絡(luò)化方向發(fā)展。 軟件特征:開發(fā)技術(shù)有很大進(jìn)步, 但未獲得突破性進(jìn)展,軟件價格不斷上升,未完全 擺脫軟件危機(jī)。三水哥嘔心瀝血之作,只為與你相約中南6、試簡要敘述文檔在軟件工程中的作用。在軟件工程中,文檔的作用是:(1) 提高軟件開發(fā)過程的能見度;(2) 記錄開發(fā)過程的有關(guān)信息便于使用與維護(hù)

5、;(3) 作為開發(fā)人員階段工作成果和結(jié)束標(biāo)志;( 4)提高開發(fā)效率;(5)提供軟件運(yùn)行、維護(hù)和培訓(xùn)有關(guān)資料;(6)便于用戶了解軟件功能、性能。7、簡述一個成熟的軟件機(jī)構(gòu)應(yīng)具有的特點(diǎn)建立了機(jī)構(gòu)級的軟件開發(fā)與維護(hù)過程。 軟件人員對其有較好的理解。 一切活動均遵 循過程的要求進(jìn)行,做到工作步驟有次序,且有章可循;軟件過程必要時可做改進(jìn),但 需在經(jīng)過小型實驗和成本效益分析的基礎(chǔ)上進(jìn)行; 軟件產(chǎn)品的質(zhì)量和客戶對軟件產(chǎn)品的 滿意程度不是由開發(fā)人員, 而是由負(fù)責(zé)質(zhì)量保證的經(jīng)理負(fù)責(zé)監(jiān)控; 項目進(jìn)度和預(yù)算是根 據(jù)以往項目取得的實踐經(jīng)驗確定,因而比較符合實際情況。8、軟件生存周期中的軟件開發(fā)過程由哪幾個階段組成?

6、各階段的任務(wù)是什么? 答:以瀑布模型為例主要包括六個階段:可行性研究,確定系統(tǒng)的目標(biāo)與規(guī)模,分析項目的可行性 需求分析與規(guī)格說明,明確系統(tǒng)的規(guī)格與要求設(shè)計,包括概要設(shè)計與詳細(xì)設(shè)計 編程,用程序語音實現(xiàn)每個模塊的功能 測試,發(fā)現(xiàn)并改正錯誤 運(yùn)行與維護(hù)9、瀑布模型相關(guān)概念。瀑布模型的基本概念以及特點(diǎn)。瀑布模型的缺陷有哪些?瀑布模型 規(guī)定了各項軟件工程活動,包括需求分析、規(guī)格說明、設(shè)計、編碼、測試 和維護(hù),并規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級而下。瀑布模型的特點(diǎn) 是:階段間具有順序性和依賴性;清楚區(qū)分邏輯設(shè)計和物理設(shè)計, 盡可能推遲程序的物理實現(xiàn);每個階段都必須完成規(guī)定的文檔

7、,且每階段結(jié)束前需要對 完成的文檔進(jìn)行評審。缺陷:(1)完全地、 精確地刻畫復(fù)雜應(yīng)用問題的用戶需求是不可能的。(2)需求分析和軟件實現(xiàn)是不可分割的。 (3)用戶和開發(fā)人員都難于理解形式的、不可執(zhí)行的需求規(guī)格 說明。 (4)傳統(tǒng)的開發(fā)策略沒有為用戶參與關(guān)鍵的開發(fā)決策提供便利。(5)目標(biāo)軟件的適應(yīng)能力不強(qiáng)( 6)瀑布模型并不適合于軟件項目管理10、螺旋模型相關(guān)概念。(1) 簡述螺旋模型的基本開發(fā)過程。螺旋模型哪些優(yōu)點(diǎn)? 螺旋模型的基本思想 是使用原型及其他方法來盡量降低風(fēng)險。 可以理解為在快速原 型模型的每個階段之前都增加了風(fēng)險分析?;鹃_發(fā)過程 :(1) 需求定義。利用前面介紹的需求分析技術(shù)理解

8、應(yīng)用領(lǐng)域,獲取初 步的用戶需求,制定項目開發(fā)計劃。 (2)風(fēng)險分析。根據(jù)初始需求或改進(jìn)意見評審可選用 的方案,給出消除或減少風(fēng)險的途徑。(3)工程實現(xiàn)。利用前一節(jié)介紹的快速原型構(gòu)造方法針對已知的用戶需求生成快速原型。(4)評審。 將原型提交用戶使用并征詢用戶改進(jìn)意見。上述過程將不斷迭代,直至給出用戶滿意的目標(biāo)軟件產(chǎn)品。優(yōu)點(diǎn) :(1)螺旋模型支持用戶需求的動態(tài)變化。 (2)螺旋模型中, 需求分析和軟件實現(xiàn) 是互相依賴、緊密聯(lián)系的軟件開發(fā)活動。(3)原型作為形式的可執(zhí)行的需求規(guī)格說明,既易于為用戶和開發(fā)人員共同理解, 又可作為后續(xù)開發(fā)的基礎(chǔ)。 (4)為用戶參與軟件開發(fā)的三水哥嘔心瀝血之作,只為與你

9、相約中南所有關(guān)鍵決策提供了方便。 (5)有助于提高目標(biāo)軟件的適應(yīng)能力 (6)為項目管理人員及時調(diào) 整管理決策提供了便利,從而降低了軟件開發(fā)風(fēng)險。2)為何螺旋模型主要適合開發(fā)人員和用戶為同一個組織機(jī)構(gòu)成員的軟件項目的開發(fā)?因為如果開發(fā)人員和用戶屬于不同的組織機(jī)構(gòu), 則一般在正式的軟件開發(fā)之前均需要簽 訂合同, 所有的風(fēng)險分析均必須在簽訂合同之前完成。 但螺旋模型需要在軟件開發(fā)的每一個 階段都進(jìn)行風(fēng)險分析, 當(dāng)重要風(fēng)險不能解決時, 項目應(yīng)該終止。 由此螺旋模型可能因為風(fēng)險 使得合同在完成之前就終止, 從而導(dǎo)致法律訴訟。 故螺旋模型不適合開發(fā)人員和用戶屬于不 同組織機(jī)構(gòu)的情況。11、快速原型模型相關(guān)

10、概念。(1)快速原型技術(shù)的基本思想是什么?快速原型模型有幾種?各有何特點(diǎn)?基本思想 :花費(fèi)少量代價建立一個可運(yùn)行的系統(tǒng), 使用戶及早獲得學(xué)習(xí)的機(jī)會, 最終提 高軟件質(zhì)量。根據(jù)原型的不同作用,有 三類原型模型 :探索型原型 。這種類型的原型模型是把原型用于開發(fā)的需求分析階段,目的是要弄清 用戶的需求, 確定所期望的特性, 并探索各種方案的可行性。 它主要針對開發(fā)目標(biāo)模糊, 用戶與開發(fā)著對項目都缺乏經(jīng)驗的情況,通過對原型的開發(fā)來明確用戶的需求。實驗型原型 。這種原型主要用于設(shè)計階段,考核實現(xiàn)方案是否合適,能否實現(xiàn),對于 一個大型系統(tǒng),若對設(shè)計方案心中沒有把握時,可通過這種原型來證實設(shè)計方案的正確

11、性。演化型原型 。這種原型主要用于及早向用戶提交一個原型系統(tǒng),該原型系統(tǒng)或者包含 系統(tǒng)的框或者包含系統(tǒng)的主要功能。在得到用戶的認(rèn)可后,將原型系統(tǒng)不斷擴(kuò)充演變?yōu)?最終的軟件系統(tǒng),它將原型的思路擴(kuò)展到軟件開發(fā)的全過程。(2)快速開發(fā)原型的途徑有哪些?廢棄型:快速建立需求規(guī)格原型; 追加型:快速建立漸進(jìn)原型法采用循環(huán)漸進(jìn); 步驟:快速分析、構(gòu)造原型、運(yùn)行和評價原型、修改與改進(jìn)12、比較常用軟件工程過程模型(瀑布模型,快速原型化模型,快速應(yīng)用開發(fā)模型,漸增 模型,螺旋模型)的優(yōu)缺點(diǎn)。指出各自適用的情況。瀑布模型 :優(yōu)點(diǎn) :包括強(qiáng)制性的分階段的方法,要求每一階段都必須提供相應(yīng)的文 檔,因此開發(fā)過程便于管

12、理和控制。瀑布模型是一種文檔驅(qū)動的模型,開發(fā)過程中產(chǎn)生 的需求規(guī)格說明書文檔,設(shè)計文檔,代碼文檔,以及其他文檔如數(shù)據(jù)庫手冊,用戶手冊 和操作文檔等, 對于軟件使用和維護(hù)是非常必要的。缺點(diǎn) :該模型將本來非線性的軟件開發(fā)過程,人為地加以線性化,開發(fā)的產(chǎn)品只有交付使用時才能和用戶見面,用戶的反 饋意見只能從需求分析開始從頭修改,加大了軟件開發(fā)的工作量??焖僭突P?:優(yōu)點(diǎn) :能夠開發(fā)出真正滿足用戶需要的軟件。 缺點(diǎn) :若采用原 型作為最終產(chǎn)品,不利于軟件維護(hù)工作。快速應(yīng)用開發(fā)模型 :優(yōu)點(diǎn):能夠快速地完成整個信息系統(tǒng)的開發(fā)。缺點(diǎn) :對于大的項目, 為建立適當(dāng)數(shù)目的 RAD開發(fā)小組可能需要大量的人力

13、資源; 同時, RAD要求開發(fā)人員和用戶雙方在短期內(nèi)對完成整個系統(tǒng)的開發(fā)達(dá)成協(xié)議,如果任何一方做不到的話,使用 RAD 進(jìn)行開發(fā)則不可避免地會失敗。漸增模型 :優(yōu)點(diǎn) :每一輪都可以向用戶分發(fā)布一個高質(zhì)量的可操作的版本,用戶不 需要等到最終軟件產(chǎn)品被開發(fā)出來就可以使用軟件的部分功能。 由于軟件產(chǎn)品不是突然 一次性提交給用戶使用的,用戶可以比較容易接受,并且容易提出中肯的意見。這種方 式不要求非常大的初始資金投入。 缺點(diǎn) :要求下一輪新增的功能應(yīng)能夠無縫地集成三水哥嘔心瀝血之作,只為與你相約中南到下一輪系統(tǒng)中去,可能這一點(diǎn)并不容易做到。如果整體結(jié)構(gòu)設(shè)計不當(dāng),可能會導(dǎo)致整 個軟件的結(jié)構(gòu)變壞。螺旋模型

14、 :優(yōu)點(diǎn) :它強(qiáng)調(diào)可替換性和強(qiáng)約束性,使得螺旋模型支持對現(xiàn)有軟件的 復(fù)用,并且支持始終把軟件質(zhì)量看作一個目標(biāo)。開發(fā)和維護(hù)被視為同樣的方式。 缺點(diǎn) :主要適合于內(nèi)部開發(fā)。只適合于規(guī)模比較大的系統(tǒng)的開發(fā)。 它是風(fēng)險驅(qū)動的,只 有當(dāng)項目組的成員擅長于進(jìn)行風(fēng)險分析時,才有理由采用螺旋模型??尚行匝芯?、可行性研究報告的主要內(nèi)容有哪些?一個可行性研究報告的主要內(nèi)容如下:(1)引言 :說明編寫本文檔的目的;項目的名稱、背景;本文檔用到的專門術(shù)語和參考 資料。( 2)可行性研究前提 :說明開發(fā)項目的功能、性能和基本要求;達(dá)到的目標(biāo);各種限制 條件;可行性研究方法和決定可行性的主要因素。( 3)對現(xiàn)有系統(tǒng)的分

15、析 :說明現(xiàn)有系統(tǒng)的處理流程和數(shù)據(jù)流程; 工作負(fù)荷; 各項費(fèi)用支 出;所需要各類專業(yè)技術(shù)人員的數(shù)量;所需要各種設(shè)備;現(xiàn)有系統(tǒng)存在什么問題。( 4) 所建議系統(tǒng)的技術(shù)可行性分析 :所建議系統(tǒng)的簡要說明;處理流程和數(shù)據(jù)流程; 與現(xiàn)有的系統(tǒng)比較的優(yōu)越性;采用所建議系統(tǒng)對用戶的影響; 對各種設(shè)備、 現(xiàn)有軟件、 開發(fā) 環(huán)境、運(yùn)行環(huán)境的影響;對經(jīng)費(fèi)支出的影響;對技術(shù)可行性的評價。( 5) 所建議系統(tǒng)的經(jīng)濟(jì)可行性分析 :說明所建議系統(tǒng)的各種支出,各種效益;收益投 資比;投資回收周期。( 6)社會因素可行性分析 :說明法律因素,對合同責(zé)任、侵犯專利權(quán)、侵犯版權(quán)等問題 的分析;說明用戶使用可行性,是否滿足用戶行

16、政管理、工作制度、人員素質(zhì)的要求。( 7) 其他可供選擇方案 :逐一說明其他可供選擇的方案,并說明未被推薦的理由。( 8)結(jié)論意見 :說明項目是否能開發(fā); 還需要什么條件才能開發(fā);對項目目標(biāo)有什么變 動等。2、可行性研究的概念?目標(biāo)?基本內(nèi)容?步驟?3、成本分析方法?4、系統(tǒng)流程圖與數(shù)據(jù)流圖的概念與區(qū)別?需求分析1、需求分析的概念?需求收集的方式?2、數(shù)據(jù)流建模的相關(guān)概念。3、如何畫分層數(shù)據(jù)流圖總的原則 是:至頂而下,逐層分解(畫分層數(shù)據(jù)流圖) :比較復(fù)雜的系統(tǒng)不能畫在一張 紙上 逐層分解的畫法可以控制每一層的復(fù)雜度。 頂層 :將整個系統(tǒng)作為一個加工,描述系 統(tǒng)邊界(輸入與輸出。 ) 中間層

17、:表示某個加工分解為一組子加工,其中的子加工還需進(jìn)一 步分解。 底層 :由不再進(jìn)行分解的基本加工組成。4、常用的軟件需求分析的方法有哪些?結(jié)構(gòu)化分析方法( SA)、面向?qū)ο蠓治龇椒ǎ?OOA)、功能分解法、信息建模法三水哥嘔心瀝血之作,只為與你相約中南5、簡述需求分析工作可以分成哪四個方面?軟件需求分析有哪三個基本原則?需求分析階段分成 四個方面 :對問題的識別、分析與綜合、制定規(guī)格說明和評審。 三個基本原則 :必須能夠表達(dá)和理解問題的數(shù)據(jù)域和功能域; 必須按自頂向下、 逐步分解的方 式對問題進(jìn)行分解和不斷細(xì)化;要給出系統(tǒng)的邏輯視圖和物理視圖。6、試舉例說明什么是功能性需求,什么是非功能性需求

18、?為何非功能性需求往往比功能性 需求還要重要?功能性需求 就是軟件要實現(xiàn)的功能需求分析。非功能性需求 ,是指軟件產(chǎn)品為滿足用戶業(yè)務(wù)需求而必須具有且除功能需求以外的特 性。軟件產(chǎn)品的非功能性需求包括系統(tǒng)的性能、可靠性、可用性、可維護(hù)性、有效性和可移 植性等。重要性 :將非功能性需求的各項特點(diǎn)舉例展開即可。7、在需求分析和設(shè)計階段建立原型的好處有哪些? 在需求分析和設(shè)計階段建立原型的好處有:(1)增進(jìn)開發(fā)人員和用戶對系統(tǒng)需求的一致理解,明確軟件需求,尤其是功能含糊的需求。(2)原型提供了一種有力的學(xué)習(xí)手段,能夠使用戶盡早接觸系統(tǒng)。(3)原型可以用來識別或化解風(fēng)險。(4)原型有的可以原封不動地成為產(chǎn)

19、品,有的略加修改就可以成為最終系統(tǒng)的一個組 成部分,這樣有利于建成最終系統(tǒng)。8、IDEF0 功能建模相關(guān)概念。9、IDEF0 方法有什么特點(diǎn)?IDEF0方法的特點(diǎn)是: (1)采用方框和箭頭等簡單的圖形符號描述系統(tǒng)的活動和數(shù)據(jù)流,描述活動所受到的 約束條件及實現(xiàn)機(jī)制,清楚地反映了系統(tǒng)的功能。(2)采用嚴(yán)格的自頂向下、逐層分解的方式建立系統(tǒng)功能模型。頂層確定系統(tǒng)范圍, 采用抽象原則,然后有控制的逐步展開有關(guān)活動的細(xì)節(jié),符合SA方法的分析策略。同時,IDEF0規(guī)定每張圖至少有 3 個、最多有 6 個方框,上界 6保證采用層次性描述復(fù)雜問題的可 理解性,下界 3 保證分解有意義。10、IDEF1X建模

20、相關(guān)概念。11、需求規(guī)格說明的概念。概要設(shè)計1、概要設(shè)計中相關(guān)的概念。2、軟件設(shè)計階段的任務(wù)與目標(biāo)是什么?任務(wù) :將分析階段獲得的需求說明轉(zhuǎn)換為計算機(jī)中可實現(xiàn)的系統(tǒng); 即:軟件體系結(jié)構(gòu)的 設(shè)計、用戶界面的設(shè)計、數(shù)據(jù)結(jié)構(gòu)的設(shè)計、算法的設(shè)計。目標(biāo) :構(gòu)造一個高內(nèi)聚低耦合的軟件模型。3、軟件設(shè)計的準(zhǔn)則是什么?( 1)、軟件結(jié)構(gòu)的準(zhǔn)則 :頂部寬度小,中部寬度最大,底部寬度次之;在結(jié)構(gòu) 頂部有較高的扇出數(shù),在底部有較高的扇入數(shù)。( 2)、模塊化準(zhǔn)則 :將系統(tǒng)劃分成若干模塊,每個模塊完成一個子功能,把這 些模塊集中起來組成一個整體,以滿足所要求的整個系統(tǒng)的功能。( 3)、軟件獨(dú)立性準(zhǔn)則 :開發(fā)具有功能專一

21、,模塊之間無過多相互作用的模塊。三水哥嘔心瀝血之作,只為與你相約中南4、模塊內(nèi)聯(lián)系與模塊間聯(lián)系有哪些種類?模塊間 的聯(lián)系分類法:按耦合度 如:內(nèi)容耦合:一個模塊直接引用另一模塊的內(nèi)部信息 模塊內(nèi) 的聯(lián)系方法:按內(nèi)聚度依次展開5、照“降低塊間聯(lián)系,提高塊內(nèi)聯(lián)系”的設(shè)計總則對模塊進(jìn)行修改,具體從哪些方面進(jìn)行 改進(jìn)?答: 1) 盡可能建立功能模塊; 2) 消除重復(fù)功能; 3)模塊的作用范圍與控制范圍, 即當(dāng)作用范圍為控制范圍的子集時,才能獲得較低的塊間聯(lián)系;4)模塊的大小適當(dāng); 5)模塊的扇入扇出數(shù)不宜太多。6、衡量模塊獨(dú)立性的兩個定性標(biāo)準(zhǔn)是什么 ( 2分)?這兩個標(biāo)準(zhǔn)的定義分別是什么 ( 2分)?

22、 在我們的軟件設(shè)計中,關(guān)于模塊獨(dú)立性我們追求的目標(biāo)是什么(1分)?衡量模塊獨(dú)立性的兩個 定性標(biāo)準(zhǔn) 是內(nèi)聚和耦合( 2 分)。耦合 是指對一個軟件結(jié)構(gòu)內(nèi)不 同模塊彼此之間互相依賴 (連接) 的緊密程度; 而內(nèi)聚 則標(biāo)志一個模塊內(nèi)部各個元素彼此結(jié) 合的緊密程度。 (2 分)。在我們的軟件設(shè)計中,關(guān)于模塊獨(dú)立性我們追求的目標(biāo)是緊密內(nèi)聚松散耦合 ( 1 分)。詳細(xì)設(shè)計1、詳細(xì)設(shè)計的目標(biāo)與任務(wù)。2、詳細(xì)設(shè)計的圖形描述工具,及各自的概念和優(yōu)缺點(diǎn)。3、Jackson 方法的概念。4、程序規(guī)格說明。5、層次圖(即軟件結(jié)構(gòu)圖)和層次方框圖(即Jakson 圖)有何區(qū)別?相同 :形式類似。不同 : 1,層次圖描繪

23、軟件的層次結(jié)構(gòu) .層層次方框圖描繪的是數(shù)據(jù)結(jié)構(gòu)。2, 層次圖的方框表示模塊或子模塊。層次方框圖的方框表示數(shù)據(jù)結(jié)構(gòu)整體或其子集。3, 層次圖的連線表示調(diào)用關(guān)系,層次方框圖表示組成關(guān)系。 層次圖主要用來描繪軟件的層次結(jié)構(gòu),矩形框代表一個模塊,矩形框之間的連線表示 模塊之間的調(diào)用關(guān)系, 常與 IPO圖一起形成 HIPO 圖。層次方框圖主要描述系統(tǒng)的組成關(guān)系, 一般自用域需求分析。軟件測試1、軟件測試的概念、目的。2、軟件測試對象應(yīng)包括哪些內(nèi)容?軟件測試并不等于程序代碼測試, 其應(yīng)該貫穿于軟件定義與開發(fā)的整個期間。 因此, 需 求分析、概要設(shè)計以及程序編碼等各階段所得的文檔,包括需求規(guī)格說明、概要設(shè)計

24、說明、 詳細(xì)設(shè)計規(guī)格說明以及源程序代碼都應(yīng)成為軟件測試的對象。3、白盒測試的概念及相關(guān)技術(shù)。4、黑盒測試的概念及相關(guān)技術(shù)。5、等價分類法相關(guān)概念。(1)等價分類法的基本思想是什么? 根據(jù)程序的輸入特性, 將程序的定義域劃分為有限個等價區(qū)段 “等價類”,從等價類 中選擇出的用例具有“代表性” ,即測試某個等價類的代表值就等價于對這一類其它值的測 試。如果某個等價類的一個輸入數(shù)據(jù) (代表值)測試中查出了錯誤,也即是該等價類中的其 它值也會查出同樣的錯誤。三水哥嘔心瀝血之作,只為與你相約中南( 2)等價類劃分方法中,劃分好等價類后設(shè)計測試用例的步驟是什么?1)為每個等價類編號; 2) 使一個測試用例

25、盡可能覆蓋多個有效等價類;3)特別要注意 :一個測試用例只能覆蓋一個無效等價類;6、軟件測試為何需要盡早和不斷地進(jìn)行?軟件測試不應(yīng)僅僅作為一個獨(dú)立的軟件開發(fā)階段,而應(yīng)貫穿到軟件開發(fā)的各個階段中。 通過各階段的評審, 在早期把錯誤解決, 以減少錯誤放大效應(yīng), 這樣不僅可以提高軟件質(zhì)量, 而且也是降低軟件成本的一個重要措施。由此,軟件測試應(yīng)該盡早和不斷地進(jìn)行。7、一般,驅(qū)動模塊比樁模塊容易設(shè)計,為什么?因為 驅(qū)動模塊 是模擬主程序或者調(diào)用模塊的功能, 處于被測試模塊的上層, 所以驅(qū)動模 塊只需要模擬向被測模塊傳遞數(shù)據(jù), 接收、打印從被測模塊返回的數(shù)據(jù)的功能, 較容易實現(xiàn)。 而樁模塊 用于模擬那些由

26、被測模塊所調(diào)用的下屬模塊的功能,由于下屬模塊往往不只一個, 也不只一層, 由于模塊接口的復(fù)雜性, 樁模塊很難模擬各下層模塊之間的調(diào)用關(guān)系, 同時為 了模擬下層模塊的不同功能,需要編寫多個樁模塊,而這些樁模塊所模擬的功能是否正確, 也很難進(jìn)行驗證。因此,驅(qū)動模塊的設(shè)計顯然比樁模塊容易。8、什么是 測試和 測試?測試 是在開發(fā)機(jī)構(gòu)的監(jiān)督下, 由個別用戶在確認(rèn)測試階段后期對軟件進(jìn)行測試, 目的 是評價軟件的 FLURPS(功能、局域化、可使用性、可靠性、性能和支持性),注重界面和特色。 測試 是由支持軟件預(yù)發(fā)行的客戶對 FLURPS 進(jìn)行測試,主要目的是測試系統(tǒng)的可支持 性。9、漸增式與非漸增式各有

27、何優(yōu)、缺點(diǎn)?為什么通常采用漸增式?非漸增式 是將所有的模塊一次連接起來, 簡單、 易行、節(jié)省機(jī)時, 但測試過程難于排錯, 發(fā)現(xiàn)錯誤也很難定位, 測試效率低; 漸增式 是將模塊一個一個的連入系統(tǒng), 每連入一個模塊, 都要對新系統(tǒng)進(jìn)行測試。 這種組裝測試相比于非漸增式容易查出錯誤, 并及時定位, 有利于 查出模塊接口部分的錯誤,因此測試效率高。故通常采用漸增式測試方法。10、什么是動態(tài)測試?為何靜態(tài)測試方法往往比動態(tài)測試方法效率高?動態(tài)測試 是通過運(yùn)行軟件來檢驗其動態(tài)行為和運(yùn)行結(jié)果的正確性。動態(tài)測試 是實際運(yùn)行被測程序,輸入相應(yīng)的測試用例,判定執(zhí)行結(jié)果是否符合要求,從 而檢驗程序的正確性、可靠性和

28、有效性。靜態(tài)測試 是對被測程序進(jìn)行特性分析的一些方法的總稱, 這種方法的主要特性是不利用 計算機(jī)運(yùn)行被測試的程序, 而是采用其他手段達(dá)到檢測的目的 。因而在代碼產(chǎn)生之前便可對 各種文檔進(jìn)行測試,其效率當(dāng)然高于動態(tài)測試。11、單元測試與集成測試相關(guān)概念。(1)請簡述單元測試的主要內(nèi)容? 模塊接口測試、局部數(shù)據(jù)結(jié)構(gòu)測試、路徑測試、錯誤處理測試、邊界測試( 2)在單元測試中,所謂單元是如何劃分的? 單元測試的對象通常是軟件設(shè)計的最小邏輯單元,單元的劃分在面向過程的結(jié)構(gòu)化 程序中一般是函數(shù)或子過程,在面向?qū)ο蟮某绦蛑锌梢允穷惢蝾惖某蓡T函數(shù)。(3)如果開發(fā)時間緊迫,是否可以跳過單元測試而直接進(jìn)行集成測試

29、? 不可以。因為沒有經(jīng)過單元測試的模塊會遺留大量的缺陷到集成測試階段,而在集成測試階段對這些缺陷定位困難, 導(dǎo)致后續(xù)工作展開困難, 修復(fù)缺陷成本成指數(shù)級增長。(4)集成測試也叫組裝測試又叫聯(lián)合測試,為何要進(jìn)行集成測試?在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求(如根據(jù)結(jié)構(gòu)圖組裝成為子系統(tǒng) 或系統(tǒng),進(jìn)行集成測試。 實踐表明, 一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接 起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來, 影響功能的實現(xiàn)。三水哥嘔心瀝血之作,只為與你相約中南12、如果沒有軟件規(guī)格說明或需求文檔,可以進(jìn)行動態(tài)黑盒測試嗎?為什么? 答:不行。因為黑盒測試是基

30、于軟件規(guī)格說明的測試。13、軟件測試階段如何劃分?答:軟件測試的階段劃分為: 規(guī)格說明書審查; 系統(tǒng)和程序設(shè)計審查; 單元測試; 集成測試; 確認(rèn)測試;系統(tǒng)測試;驗收測試。14、分析比較面向?qū)ο蟮能浖y試與傳統(tǒng)的軟件測試的異同。解:傳統(tǒng)的單元測試 的對象是軟件設(shè)計的最小單位模塊。 當(dāng)考慮面向?qū)ο筌浖r, 單元 的概念發(fā)生了變化, 此時最小的可測試單位是封裝的類或?qū)ο螅?而不再是個體的模塊。 傳統(tǒng) 單元測試主要關(guān)注模塊的算法實現(xiàn)和模塊接口間數(shù)據(jù)的傳遞, 而面向?qū)ο蟮膯卧獪y試主要考 察封裝在一個類中的方法和類的狀態(tài)行為。面向?qū)ο筌浖?沒有層次的控制結(jié)構(gòu), 因此傳統(tǒng)的自頂向下和自底向上集成策略就不再

31、 適合,它主要有以下兩種集成策略: 基于類間協(xié)作關(guān)系的橫向測試;基于類間繼承關(guān)系的 縱向測試。 系統(tǒng)測試一般不考慮內(nèi)部結(jié)構(gòu)和中間結(jié)果, 因此面向?qū)ο筌浖到y(tǒng)測試與傳統(tǒng) 的系統(tǒng)測試差別不大。面向?qū)ο筌浖y試 的整體目標(biāo)和傳統(tǒng)軟件測試的目標(biāo)是一致的, 即以最小的工作量發(fā) 現(xiàn)盡可能多的錯誤, 但是面向?qū)ο鬁y試的策略和戰(zhàn)術(shù)有很大不同。 測試的視角擴(kuò)大到包括復(fù) 審分析和設(shè)計模型,此外,測試的焦點(diǎn)從過程構(gòu)件(模塊 )移向了類。軟件維護(hù)1、軟件維護(hù)的概念、目的、維護(hù)類型。2、軟件維護(hù)衍生的一些相關(guān)技術(shù)。3、為什么要進(jìn)行軟件維護(hù)?軟件維護(hù)是指軟件系統(tǒng)交付使用以后, 為了改正錯誤或滿足新的需求而修改軟件的過程。

32、 一個中等規(guī)模的軟件, 如果其開發(fā)過程需要一年時間, 則它投入使用后, 其運(yùn)行的時間可能 持續(xù)五到十年。在這個維護(hù)階段,人們不僅需要著手解決開發(fā)階段尚未解決的問題,同時, 還需解決維護(hù)過程本身產(chǎn)生的問題。維護(hù)階段的的時間大約占整個軟件生命周期的67%。因此,我們應(yīng)充分認(rèn)識到軟件維護(hù)的重要性。4、怎樣防止維護(hù)的副作用?修改代碼所產(chǎn)生的副作用 一般可以在回歸測試過程進(jìn)行查明和糾正; 修改軟件所帶來 的副作用 可以通過完善的設(shè)計文檔的加以限制; 修改文檔資料所產(chǎn)生的副作用 可以在軟件 系統(tǒng)交付使用之前,對整個軟件配置進(jìn)行復(fù)審,將能大大減少。5、提高軟件可維護(hù)性的方法有哪些?(1)建立明確的軟件質(zhì)量目

33、標(biāo)與優(yōu)先級。(2)使用提高軟件質(zhì)量的技術(shù)與工具(如模塊化)(3)進(jìn)行明確的質(zhì)量保證審查(4)選擇可維護(hù)性好的程序設(shè)計語言(5)改進(jìn)程序文檔(6)開發(fā)時考慮到維護(hù)三水哥嘔心瀝血之作,只為與你相約中南軟件質(zhì)量1、軟件質(zhì)量保證應(yīng)做好以下幾方面的工作:(1) 采用技術(shù)手段和工具 。質(zhì)量保證活動要貫徹開發(fā)過程始終, 必須采用技術(shù)手段和工具, 尤其是使用軟件開發(fā)環(huán)境來進(jìn)行軟件開發(fā)。 ( 2) 組織正式技術(shù)評審 。在軟件開發(fā)的每一個階段結(jié)束時, 都要組織正式的技術(shù)評審。 國家標(biāo)準(zhǔn) 要求單位必須采用審查、文檔評審、設(shè)計評審、審計和測試等具體手段來保證質(zhì)量。( 3)加強(qiáng)軟件測試 。軟件測試是質(zhì)量保證的重要手段,

34、 因為測試可發(fā)現(xiàn)軟件中大多數(shù)潛在錯誤。 ( 4) 推行軟件工程規(guī)范 (標(biāo)準(zhǔn))。用戶可以自己制定軟件工程規(guī)范 (標(biāo)準(zhǔn)),但標(biāo)準(zhǔn)一旦確認(rèn)就應(yīng) 貫徹執(zhí)行。( 5)對軟件的變更進(jìn)行控制 。軟件的修改和變更常常會引起潛伏的錯誤, 因此必 須嚴(yán)格控制軟件的修改和變更。 (6)對軟件質(zhì)量進(jìn)行度量 。即對軟件質(zhì)量進(jìn)行跟蹤, 及時記 錄和報告軟件質(zhì)量情況。2 、什么是軟件配置管理?軟件配置管理和軟件維護(hù)有何不同?軟件配置管理 是在軟件生命周期內(nèi)管理變化的一組活動,用來:標(biāo)識變化、控制變化、 確保適當(dāng)?shù)貙崿F(xiàn)了變化、向相關(guān)人員報告變化。軟件配置管理和軟件維護(hù) 的區(qū)別是: 軟件配置管理是一組追蹤和控制活動, 在軟件項

35、目 啟動時就開始, 并一直持續(xù)到軟件被淘汰后才終止;軟件維護(hù)是一組軟件工程活動,發(fā)生于 軟件交付給用戶并投入運(yùn)行之后。三水哥嘔心瀝血之作,只為與你相約中南面向?qū)ο蠓椒ê徒Y(jié)構(gòu)化方法1、結(jié)構(gòu)化程序設(shè)計的優(yōu)點(diǎn)是什么?如何在編碼中使用這種方法? 答:易于閱讀,易于驗證。程序設(shè)計自頂向下,逐步求精2、SP 法的自頂向下,逐步求精方法的優(yōu)點(diǎn)有哪些? 答:此法符合人們解決復(fù)雜問題的普遍規(guī)律, 可提高軟件開發(fā)的成功率和生產(chǎn)率; 而且用先 全局后局部、 先整體后細(xì)節(jié)、 先抽象后具體的逐步求精過程, 開發(fā)出來的程序具有清晰的層 次結(jié)構(gòu), 因此程序容易閱讀和理解, 這樣, 程序自頂向下, 逐步細(xì)化, 分解成一個樹型

36、結(jié)構(gòu)。 因此,在同一層次的節(jié)點(diǎn)上做細(xì)化工作, 相互之間沒有聯(lián)系, 它們之間的細(xì)化工作相互獨(dú)立; 任何一步發(fā)生錯誤, 一般只影響它下層的節(jié)點(diǎn), 同一層其他節(jié)點(diǎn)不受影響; 在以后的測試中, 也可以先獨(dú)立地一個節(jié)點(diǎn)一個節(jié)點(diǎn)的做, 最后再集成。這樣, 程序清晰和模塊化, 使得在修 改和重新設(shè)計一個軟件時,可復(fù)用的代碼量最大。3、簡述結(jié)構(gòu)化程序設(shè)計方法的基本特點(diǎn)。 ( 5分)1)是盡可能少用 goto 語句的程序設(shè)計方法;2) 每個代碼塊都單入單出;3) 使用控制結(jié)構(gòu):順序、選擇和循環(huán) Do_UNTIL和 Do_CASE;4) 自頂向下逐步求精。4、面向?qū)ο蠓椒▽W(xué)包含哪些核心概念?簡述之(1) 對象:對

37、象是現(xiàn)實世界中個體或事物的抽象表示,是其屬性和相關(guān)操作的封裝。(2) 類:類表示某些對象在屬性和操作方面的共同特征。(3) 繼承:類之間的繼承關(guān)系是現(xiàn)實世界中遺傳關(guān)系的模擬,它表示類之間的內(nèi)在聯(lián)系 以及對屬性和操作的共享。(4) 聚集:現(xiàn)實世界普遍存在部分整體關(guān)系。(5) 消息:消息傳遞是對象與其外部世界相互關(guān)聯(lián)的唯一途徑。5、面向?qū)ο蟪绦蛟O(shè)計有哪些優(yōu)點(diǎn)? 答:并發(fā)時間短,效率高,可靠性高,所開發(fā)的程序更強(qiáng)壯。由于面向?qū)ο缶幊痰目芍?用性,可以在應(yīng)用程序中大量采用成熟的類庫, 從而縮短了開發(fā)時間。 程序更易于維護(hù)、 更新和升級。繼承和封裝使得應(yīng)用程序的修改帶來的影響更加局部化。6、面向?qū)ο蠓椒ê徒Y(jié)構(gòu)化方法有何區(qū)別和聯(lián)系?答: 區(qū)別 :結(jié)構(gòu)化方法是一種傳統(tǒng)的開發(fā)方法,總的指導(dǎo)細(xì)想是自頂向下、逐步

溫馨提示

  • 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

提交評論