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

下載本文檔

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

文檔簡介

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

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

3、著經(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ì)算機(jī)系統(tǒng)的限制。5、軟件發(fā)展有幾個階段?各有何特征? 程序設(shè)計(jì)階段硬件特征:價格貴、存儲容量小、運(yùn)行可靠性差

4、。軟件特征:只有程序、程序設(shè)計(jì)概念,不重視程序設(shè)計(jì)方法。 程序系統(tǒng)階段。硬件特征:速度、容量及工作可靠性有明顯提高,價格降低,銷售有爆炸性增長。軟件特征:程序員數(shù)量猛增,開發(fā)人員素質(zhì)低。 軟件工程階段。硬件特征:向超高速、大容量、微型化及網(wǎng)絡(luò)化方向發(fā)展。軟件特征:開發(fā)技術(shù)有很大進(jìn)步,但未獲得突破性進(jìn)展,軟件價格不斷上升,未完全擺脫軟件危機(jī)。6、試簡要敘述文檔在軟件工程中的作用。在軟件工程中,文檔的作用是:(1)提高軟件開發(fā)過程的能見度;(2)記錄開發(fā)過程的有關(guān)信息便于使用與維護(hù);(3)作為開發(fā)人員階段工作成果和結(jié)束標(biāo)志;(4)提高開發(fā)效率;(5)提供軟件運(yùn)行、維護(hù)和培訓(xùn)有關(guān)資料;(6)便于用戶

5、了解軟件功能、性能。7、簡述一個成熟的軟件機(jī)構(gòu)應(yīng)具有的特點(diǎn)建立了機(jī)構(gòu)級的軟件開發(fā)與維護(hù)過程。軟件人員對其有較好的理解。一切活動均遵循過程的要求進(jìn)行,做到工作步驟有次序,且有章可循;軟件過程必要時可做改進(jìn),但 需在經(jīng)過小型實(shí)驗(yàn)和成本效益分析的基礎(chǔ)上進(jìn)行;軟件產(chǎn)品的質(zhì)量和客戶對軟件產(chǎn)品的滿意程度不是由開發(fā)人員,而是由負(fù)責(zé)質(zhì)量保證的經(jīng)理負(fù)責(zé)監(jiān)控;項(xiàng)目進(jìn)度和預(yù)算是根據(jù)以往項(xiàng)目取得的實(shí)踐經(jīng)驗(yàn)確定,因而比較符合實(shí)際情況。8軟件生存周期中的軟件開發(fā)過程由哪幾個階段組成?各階段的任務(wù)是什么?答:以瀑布模型為例主要包括六個階段: 可行性研究,確定系統(tǒng)的目標(biāo)與規(guī)模,分析項(xiàng)目的可行性 需求分析與規(guī)格說明,明確系統(tǒng)的

6、規(guī)格與要求 設(shè)計(jì),包括概要設(shè)計(jì)與詳細(xì)設(shè)計(jì) 編程,用程序語音實(shí)現(xiàn)每個模塊的功能 測試,發(fā)現(xiàn)并改正錯誤運(yùn)行與維護(hù)9、瀑布模型相關(guān)概念。瀑布模型的基本概念以及特點(diǎn)。瀑布模型的缺陷有哪些?瀑布模型規(guī)定了各項(xiàng)軟件工程活動,包括需求分析、規(guī)格說明、設(shè)計(jì)、編碼、測試 和維護(hù),并規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級而下。瀑布模型的特點(diǎn) 是:階段間具有順序性和依賴性;清楚區(qū)分邏輯設(shè)計(jì)和物理設(shè)計(jì), 盡可能推遲程序的物理實(shí)現(xiàn);每個階段都必須完成規(guī)定的文檔,且每階段結(jié)束前需要對 完成的文檔進(jìn)行評審。缺陷:完全地、精確地刻畫復(fù)雜應(yīng)用問題的用戶需求是不可能的。(2)需求分析和軟件實(shí)現(xiàn)是不可分割的。(

7、3)用戶和開發(fā)人員都難于理解形式的、不可執(zhí)行的需求規(guī)格 說明。(4)傳統(tǒng)的開發(fā)策略沒有為用戶參與關(guān)鍵的開發(fā)決策提供便利。(5)目標(biāo)軟件的適應(yīng)能力不強(qiáng)(6)瀑布模型并不適合于軟件項(xiàng)目管理10、螺旋模型相關(guān)概念。(1 )簡述螺旋模型的基本開發(fā)過程。螺旋模型哪些優(yōu)點(diǎn)?螺旋模型的基本思想是使用原型及其他方法來盡量降低風(fēng)險??梢岳斫鉃樵诳焖僭湍P偷拿總€階段之前都增加了風(fēng)險分析?;鹃_發(fā)過程:(1)需求定義。利用前面介紹的需求分析技術(shù)理解應(yīng)用領(lǐng)域,獲取初步的用戶需求,制定項(xiàng)目開發(fā)計(jì)劃。(2)風(fēng)險分析。根據(jù)初始需求或改進(jìn)意見評審可選用的方案,給出消除或減少風(fēng)險的途徑。(3)工程實(shí)現(xiàn)。利用前一節(jié)介紹的快速原

8、型構(gòu)造方法針對已知的用戶需求生成快速原型。(4)評審。將原型提交用戶使用并征詢用戶改進(jìn)意見。上述過程將不斷迭代,直至給出用戶滿意的目標(biāo)軟件產(chǎn)品。優(yōu)點(diǎn):(1)螺旋模型支持用戶需求的動態(tài)變化。(2)螺旋模型中,需求分析和軟件實(shí)現(xiàn)是互相依賴、緊密聯(lián)系的軟件開發(fā)活動。(3)原型作為形式的可執(zhí)行的需求規(guī)格說明,既易于為用戶和開發(fā)人員共同理解,又可作為后續(xù)開發(fā)的基礎(chǔ)。(4)為用戶參與軟件開發(fā)的所有關(guān)鍵決策提供了方便。(5)有助于提高目標(biāo)軟件的適應(yīng)能力(6)為項(xiàng)目管理人員及時調(diào)整管理決策提供了便利,從而降低了軟件開發(fā)風(fēng)險。(2)為何螺旋模型主要適合開發(fā)人員和用戶為同一個組織機(jī)構(gòu)成員的軟件項(xiàng)目的開發(fā)?因?yàn)槿绻?/p>

9、開發(fā)人員和用戶屬于不同的組織機(jī)構(gòu),則一般在正式的軟件開發(fā)之前均需要簽訂合同,所有的風(fēng)險分析均必須在簽訂合同之前完成。但螺旋模型需要在軟件開發(fā)的每一個階段都進(jìn)行風(fēng)險分析,當(dāng)重要風(fēng)險不能解決時,項(xiàng)目應(yīng)該終止。由此螺旋模型可能因?yàn)轱L(fēng)險 使得合同在完成之前就終止,從而導(dǎo)致法律訴訟。 故螺旋模型不適合開發(fā)人員和用戶屬于不同組織機(jī)構(gòu)的情況。11、快速原型模型相關(guān)概念。(1)快速原型技術(shù)的基本思想是什么?快速原型模型有幾種?各有何特點(diǎn)?基本思想:花費(fèi)少量代價建立一個可運(yùn)行的系統(tǒng),使用戶及早獲得學(xué)習(xí)的機(jī)會,最終提高軟件質(zhì)量。根據(jù)原型的不同作用,有 三類原型模型:探索型原型。這種類型的原型模型是把原型用于開發(fā)的

10、需求分析階段,目的是要弄清 用戶的需求,確定所期望的特性,并探索各種方案的可行性。 它主要針對開發(fā)目標(biāo)模糊, 用戶與開發(fā)著對項(xiàng)目都缺乏經(jīng)驗(yàn)的情況,通過對原型的開發(fā)來明確用戶的需求。實(shí)驗(yàn)型原型。這種原型主要用于設(shè)計(jì)階段,考核實(shí)現(xiàn)方案是否合適,能否實(shí)現(xiàn),對于 一個大型系統(tǒng),若對設(shè)計(jì)方案心中沒有把握時,可通過這種原型來證實(shí)設(shè)計(jì)方案的正確 性。演化型原型。這種原型主要用于及早向用戶提交一個原型系統(tǒng),該原型系統(tǒng)或者包含 系統(tǒng)的框或者包含系統(tǒng)的主要功能。在得到用戶的認(rèn)可后,將原型系統(tǒng)不斷擴(kuò)充演變?yōu)?最終的軟件系統(tǒng),它將原型的思路擴(kuò)展到軟件開發(fā)的全過程。(2 )快速開發(fā)原型的途徑有哪些?廢棄型:快速建立需求

11、規(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ā)過程便于管理和控制。瀑布模型是一種文檔驅(qū)動的模型,開發(fā)過程中產(chǎn)生 的需求規(guī)格說明書文檔,設(shè)計(jì)文檔,代碼文檔,以及其他文檔如數(shù)據(jù)庫手冊,用戶手冊 和操作文檔等,對于軟件使用和維護(hù)是非常必要的。缺點(diǎn):該模型將本來非線性的軟件開發(fā)過程,人為地加以線性化,開發(fā)的產(chǎn)品只有交付使用時才能和用戶見

12、面,用戶的反 饋意見只能從需求分析開始從頭修改,加大了軟件開發(fā)的工作量。快速原型化模型:優(yōu)點(diǎn):能夠開發(fā)出真正滿足用戶需要的軟件。缺點(diǎn):若采用原型作為最終產(chǎn)品,不利于軟件維護(hù)工作。快速應(yīng)用開發(fā)模型:優(yōu)點(diǎn):能夠快速地完成整個信息系統(tǒng)的開發(fā)。缺點(diǎn):對于大的項(xiàng)目,為建立適當(dāng)數(shù)目的 RAD開發(fā)小組可能需要大量的人力資源;同時,RAD要求開發(fā)人員和用戶雙方在短期內(nèi)對完成整個系統(tǒng)的開發(fā)達(dá)成協(xié)議,如果任何一方做不到的話,使用RAD進(jìn)行開發(fā)則不可避免地會失敗。漸增模型:優(yōu)點(diǎn):每一輪都可以向用戶分發(fā)布一個高質(zhì)量的可操作的版本,用戶不需要等到最終軟件產(chǎn)品被開發(fā)出來就可以使用軟件的部分功能。由于軟件產(chǎn)品不是突然一次性

13、提交給用戶使用的,用戶可以比較容易接受,并且容易提出中肯的意見。這種方 式不要求非常大的初始資金投入。缺點(diǎn):要求下一輪新增的功能應(yīng)能夠無縫地集成 到下一輪系統(tǒng)中去,可能這一點(diǎn)并不容易做到。如果整體結(jié)構(gòu)設(shè)計(jì)不當(dāng),可能會導(dǎo)致整 個軟件的結(jié)構(gòu)變壞。螺旋模型:優(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)項(xiàng)目組的成員擅長于進(jìn)行風(fēng)險分析時,才有理由采用螺旋模型??尚行匝芯?可行性研究報告的主要內(nèi)容有哪些?一個可行性研究報告的主要內(nèi)容如下:(1

14、)引言:說明編寫本文檔的目的;項(xiàng)目的名稱、背景;本文檔用到的專門術(shù)語和參考 資料。(2)可行性研究前提:說明開發(fā)項(xiàng)目的功能、性能和基本要求;達(dá)到的目標(biāo);各種限制 條件;可行性研究方法和決定可行性的主要因素。(3) 對現(xiàn)有系統(tǒng)的分析:說明現(xiàn)有系統(tǒng)的處理流程和數(shù)據(jù)流程;工作負(fù)荷;各項(xiàng)費(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)

15、濟(jì)可行性分析:說明所建議系統(tǒng)的各種支出,各種效益;收益投 資比;投資回收周期。(6)社會因素可行性分析:說明法律因素,對合同責(zé)任、侵犯專利權(quán)、侵犯版權(quán)等問題 的分析;說明用戶使用可行性,是否滿足用戶行政管理、工作制度、人員素質(zhì)的要求。(7)其他可供選擇方案:逐一說明其他可供選擇的方案,并說明未被推薦的理由。(8) 結(jié)論意見:說明項(xiàng)目是否能開發(fā); 還需要什么條件才能開發(fā);對項(xiàng)目目標(biāo)有什么變 動等。2、可行性研究的概念?目標(biāo)?基本內(nèi)容?步驟?3、成本分析方法?4、系統(tǒng)流程圖與數(shù)據(jù)流圖的概念與區(qū)別?需求分析1、需求分析的概念?需求收集的方式?2、數(shù)據(jù)流建模的相關(guān)概念。3、如何畫分層數(shù)據(jù)流圖總的原則

16、是:至頂而下,逐層分解(畫分層數(shù)據(jù)流圖):比較復(fù)雜的系統(tǒng)不能畫在一張紙上逐層分解的畫法可以控制每一層的復(fù)雜度。頂層:將整個系統(tǒng)作為一個加工,描述系統(tǒng)邊界(輸入與輸出。)中間層:表示某個加工分解為一組子加工,其中的子加工還需進(jìn)一 步分解。底層:由不再進(jìn)行分解的基本加工組成。4、常用的軟件需求分析的方法有哪些?結(jié)構(gòu)化分析方法(SA)、面向?qū)ο蠓治龇椒ǎ?0A)、功能分解法、信息建模法5、簡述需求分析工作可以分成哪四個方面?軟件需求分析有哪三個基本原則?需求分析階段分成四個方面:對問題的識別、分析與綜合、制定規(guī)格說明和評審。三個基本原則:必須能夠表達(dá)和理解問題的數(shù)據(jù)域和功能域; 必須按自頂向下、逐步

17、分解的方 式對問題進(jìn)行分解和不斷細(xì)化;要給出系統(tǒng)的邏輯視圖和物理視圖。6、試舉例說明什么是功能性需求,什么是非功能性需求?為何非功能性需求往往比功能性 需求還要重要?功能性需求就是軟件要實(shí)現(xiàn)的功能需求分析。非功能性需求,是指軟件產(chǎn)品為滿足用戶業(yè)務(wù)需求而必須具有且除功能需求以外的特 性。軟件產(chǎn)品的非功能性需求包括系統(tǒng)的性能、可靠性、可用性、可維護(hù)性、有效性和可移 植性等。重要性:將非功能性需求的各項(xiàng)特點(diǎn)舉例展開即可。7、在需求分析和設(shè)計(jì)階段建立原型的好處有哪些?在需求分析和設(shè)計(jì)階段建立原型的好處有:(1)增進(jìn)開發(fā)人員和用戶對系統(tǒng)需求的一致理解,明確軟件需求,尤其是功能含糊的 需求。(2)原型提供

18、了一種有力的學(xué)習(xí)手段,能夠使用戶盡早接觸系統(tǒng)。(3)原型可以用來識別或化解風(fēng)險。(4)原型有的可以原封不動地成為產(chǎn)品,有的略加修改就可以成為最終系統(tǒng)的一個組 成部分,這樣有利于建成最終系統(tǒng)。8、IDEFO功能建模相關(guān)概念。9、IDEF0方法有什么特點(diǎn)?IDEF0方法的特點(diǎn)是:(1)采用方框和箭頭等簡單的圖形符號描述系統(tǒng)的活動和數(shù)據(jù)流,描述活動所受到的 約束條件及實(shí)現(xiàn)機(jī)制,清楚地反映了系統(tǒng)的功能。(2)采用嚴(yán)格的自頂向下、逐層分解的方式建立系統(tǒng)功能模型。頂層確定系統(tǒng)范圍,采用抽象原則,然后有控制的逐步展開有關(guān)活動的細(xì)節(jié),符合SA方法的分析策略。同時,IDEF0規(guī)定每張圖至少有 3個、最多有6個方

19、框,上界6保證采用層次性描述復(fù)雜問題的可 理解性,下界3保證分解有意義。10、IDEF1X建模相關(guān)概念。11、需求規(guī)格說明的概念。概要設(shè)計(jì)1、概要設(shè)計(jì)中相關(guān)的概念。2、軟件設(shè)計(jì)階段的任務(wù)與目標(biāo)是什么?任務(wù):將分析階段獲得的需求說明轉(zhuǎn)換為計(jì)算機(jī)中可實(shí)現(xiàn)的系統(tǒng);即:軟件體系結(jié)構(gòu)的設(shè)計(jì)、用戶界面的設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)、算法的設(shè)計(jì)。目標(biāo):構(gòu)造一個高內(nèi)聚低耦合的軟件模型。3、軟件設(shè)計(jì)的準(zhǔn)則是什么?(1)、軟件結(jié)構(gòu)的準(zhǔn)則:頂部寬度小,中部寬度最大,底部寬度次之;在結(jié)構(gòu) 頂部有較高的扇出數(shù),在底部有較高的扇入數(shù)。(2)、模塊化準(zhǔn)則:將系統(tǒng)劃分成若干模塊,每個模塊完成一個子功能,把這 些模塊集中起來組成一個整

20、體,以滿足所要求的整個系統(tǒng)的功能。(3)、軟件獨(dú)立性準(zhǔn)則:開發(fā)具有功能專一,模塊之間無過多相互作用的模塊。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ì)總則對模塊進(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)的定義分別

21、是什么(2分)?在我們的軟件設(shè)計(jì)中,關(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è)計(jì)中,關(guān)于模塊獨(dú)立性我們追求的目標(biāo)是緊密內(nèi)聚松散耦合(1分)。詳細(xì)設(shè)計(jì)1、詳細(xì)設(shè)計(jì)的目標(biāo)與任務(wù)。2、詳細(xì)設(shè)計(jì)的圖形描述工具,及各自的概念和優(yōu)缺點(diǎn)。3、Jacks。n方法的概念。4、程序規(guī)格說明。5、層次圖(即軟件結(jié)構(gòu)圖)和層次方框圖(即 Jakson圖)有何區(qū)別?相同:形式類似。不同:1,層次圖描繪軟件的層次結(jié)構(gòu)

22、層層次方框圖描繪的是數(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è)計(jì)以及程序編碼等各階段所得的文檔,包括需求規(guī)格說明、概要設(shè)計(jì)說明、 詳細(xì)設(shè)計(jì)規(guī)格說明以及源程序

23、代碼都應(yīng)成為軟件測試的對象。3、白盒測試的概念及相關(guān)技術(shù)。4、黑盒測試的概念及相關(guān)技術(shù)。5、等價分類法相關(guān)概念。(1)等價分類法的基本思想是什么?根據(jù)程序的輸入特性, 將程序的定義域劃分為有限個等價區(qū)段一“等價類”,從等價類中選擇出的用例具有“代表性”,即測試某個等價類的代表值就等價于對這一類其它值的測 試。如果某個等價類的一個輸入數(shù)據(jù)(代表值)測試中查出了錯誤,也即是該等價類中的其它值也會查出同樣的錯誤。(2) 等價類劃分方法中,劃分好等價類后設(shè)計(jì)測試用例的步驟是什么?1)為每個等價類編號;2)使一個測試用例盡可能覆蓋多個有效等價類;3)特別要注意:一個測試用例只能覆蓋一個無效等價類;6、軟

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

25、各下層模塊之間的調(diào)用關(guān)系,同時為了模擬下層模塊的不同功能,需要編寫多個樁模塊,而這些樁模塊所模擬的功能是否正確, 也很難進(jìn)行驗(yàn)證。因此,驅(qū)動模塊的設(shè)計(jì)顯然比樁模塊容易。8、什么是a測試和3測試?a測試是在開發(fā)機(jī)構(gòu)的監(jiān)督下, 由個別用戶在確認(rèn)測試階段后期對軟件進(jìn)行測試,目的是評價軟件的FLURPS(功能、局域化、可使用性、可靠性、性能和支持性),注重界面和特色。3測試是由支持軟件預(yù)發(fā)行的客戶對 FLURPS進(jìn)行測試,主要目的是測試系統(tǒng)的可支持 性。9、漸增式與非漸增式各有何優(yōu)、缺點(diǎn)?為什么通常采用漸增式?非漸增式是將所有的模塊一次連接起來,簡單、易行、節(jié)省機(jī)時,但測試過程難于排錯,發(fā)現(xiàn)錯誤也很難

26、定位,測試效率低;漸增式是將模塊一個一個的連入系統(tǒng),每連入一個模塊,都要對新系統(tǒng)進(jìn)行測試。這種組裝測試相比于非漸增式容易查出錯誤,并及時定位,有利于查出模塊接口部分的錯誤,因此測試效率高。故通常采用漸增式測試方法。10、什么是動態(tài)測試?為何靜態(tài)測試方法往往比動態(tài)測試方法效率高?動態(tài)測試是通過運(yùn)行軟件來檢驗(yàn)其動態(tài)行為和運(yùn)行結(jié)果的正確性。動態(tài)測試是實(shí)際運(yùn)行被測程序,輸入相應(yīng)的測試用例,判定執(zhí)行結(jié)果是否符合要求,從 而檢驗(yàn)程序的正確性、可靠性和有效性。靜態(tài)測試是對被測程序進(jìn)行特性分析的一些方法的總稱,這種方法的主要特性是不利用計(jì)算機(jī)運(yùn)行被測試的程序, 而是采用其他手段達(dá)到檢測的目的 。因而在代碼產(chǎn)生

27、之前便可對 各種文檔進(jìn)行測試,其效率當(dāng)然高于動態(tài)測試。11、單元測試與集成測試相關(guān)概念。(1 )請簡述單元測試的主要內(nèi)容?模塊接口測試、局部數(shù)據(jù)結(jié)構(gòu)測試、路徑測試、錯誤處理測試、邊界測試(2) 在單元測試中,所謂單元是如何劃分的?單元測試的對象通常是軟件設(shè)計(jì)的最小邏輯單元,單元的劃分在面向過程的結(jié)構(gòu)化程序中一般是函數(shù)或子過程,在面向?qū)ο蟮某绦蛑锌梢允穷惢蝾惖某蓡T函數(shù)。(3) 如果開發(fā)時間緊迫,是否可以跳過單元測試而直接進(jìn)行集成測試?不可以。因?yàn)闆]有經(jīng)過單元測試的模塊會遺留大量的缺陷到集成測試階段,而在集成測試階段對這些缺陷定位困難,導(dǎo)致后續(xù)工作展開困難,修復(fù)缺陷成本成指數(shù)級增長。(4 )集成測

28、試也叫組裝測試又叫聯(lián)合測試,為何要進(jìn)行集成測試?在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求(如根據(jù)結(jié)構(gòu)圖組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測試。 實(shí)踐表明,一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實(shí)現(xiàn)。12、如果沒有軟件規(guī)格說明或需求文檔,可以進(jìn)行動態(tài)黑盒測試嗎?為什么?答:不行。因?yàn)楹诤袦y試是基于軟件規(guī)格說明的測試。13、軟件測試階段如何劃分?答:軟件測試的階段劃分為: 規(guī)格說明書審查;系統(tǒng)和程序設(shè)計(jì)審查; 單元測試;集成測試; 確認(rèn)測試;系統(tǒng)測試;驗(yàn)收測試。14、分析比較面向?qū)ο蟮能浖y試與傳統(tǒng)的軟件測試

29、的異同。解:傳統(tǒng)的單元測試的對象是軟件設(shè)計(jì)的最小單位一一模塊。當(dāng)考慮面向?qū)ο筌浖r,單元的概念發(fā)生了變化,此時最小的可測試單位是封裝的類或?qū)ο?,而不再是個體的模塊。傳統(tǒng)單元測試主要關(guān)注模塊的算法實(shí)現(xiàn)和模塊接口間數(shù)據(jù)的傳遞,而面向?qū)ο蟮膯卧獪y試主要考察封裝在一個類中的方法和類的狀態(tài)行為。面向?qū)ο筌浖]有層次的控制結(jié)構(gòu),因此傳統(tǒng)的自頂向下和自底向上集成策略就不再適合,它主要有以下兩種集成策略:基于類間協(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)是一致的,即以

30、最小的工作量發(fā)現(xiàn)盡可能多的錯誤,但是面向?qū)ο鬁y試的策略和戰(zhàn)術(shù)有很大不同。 測試的視角擴(kuò)大到包括復(fù) 審分析和設(shè)計(jì)模型,此外,測試的焦點(diǎn)從過程構(gòu)件 (模塊)移向了類。軟件維護(hù)1、軟件維護(hù)的概念、目的、維護(hù)類型。2、軟件維護(hù)衍生的一些相關(guān)技術(shù)。3、為什么要進(jìn)行軟件維護(hù)?軟件維護(hù)是指軟件系統(tǒng)交付使用以后,為了改正錯誤或滿足新的需求而修改軟件的過程。一個中等規(guī)模的軟件, 如果其開發(fā)過程需要一年時間,則它投入使用后,其運(yùn)行的時間可能持續(xù)五到十年。在這個維護(hù)階段,人們不僅需要著手解決開發(fā)階段尚未解決的問題,同時, 還需解決維護(hù)過程本身產(chǎn)生的問題。維護(hù)階段的的時間大約占整個軟件生命周期的67%。因此,我們應(yīng)充

31、分認(rèn)識到軟件維護(hù)的重要性。4、怎樣防止維護(hù)的副作用?修改代碼所產(chǎn)生的副作用 一般可以在回歸測試過程進(jìn)行查明和糾正;修改軟件所帶來的副作用 可以通過完善的設(shè)計(jì)文檔的加以限制; 修改文檔資料所產(chǎn)生的副作用 可以在軟件 系統(tǒng)交付使用之前,對整個軟件配置進(jìn)行復(fù)審,將能大大減少。5、提高軟件可維護(hù)性的方法有哪些?(1 )建立明確的軟件質(zhì)量目標(biāo)與優(yōu)先級。(2)使用提高軟件質(zhì)量的技術(shù)與工具(如模塊化)(3)進(jìn)行明確的質(zhì)量保證審查(4)選擇可維護(hù)性好的程序設(shè)計(jì)語言(5)改進(jìn)程序文檔(6)開發(fā)時考慮到維護(hù)軟件質(zhì)量1軟件質(zhì)量保證應(yīng)做好以下幾方面的工作:(1)采用技術(shù)手段和工具。質(zhì)量保證活動要貫徹開發(fā)過程始終,必須

32、采用技術(shù)手段和工具,尤其是使用軟件開發(fā)環(huán)境來進(jìn)行軟件開發(fā)。(2)組織正式技術(shù)評審。在軟件開發(fā)的每一個階段結(jié)束時,都要組織正式的技術(shù)評審。國家標(biāo)準(zhǔn)要求單位必須采用審查、文檔評審、設(shè)計(jì)評審、審計(jì)和測試等具體手段來保證質(zhì)量。(3)加強(qiáng)軟件測試。軟件測試是質(zhì)量保證的重要手段,因?yàn)闇y試可發(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、什么是軟件配置管理

33、?軟件配置管理和軟件維護(hù)有何不同?軟件配置管理是在軟件生命周期內(nèi)管理變化的一組活動,用來:標(biāo)識變化、控制變化、確保適當(dāng)?shù)貙?shí)現(xiàn)了變化、向相關(guān)人員報告變化。軟件配置管理和軟件維護(hù) 的區(qū)別是:軟件配置管理是一組追蹤和控制活動,在軟件項(xiàng)目啟動時就開始,并一直持續(xù)到軟件被淘汰后才終止;軟件維護(hù)是一組軟件工程活動,發(fā)生于 軟件交付給用戶并投入運(yùn)行之后。面向?qū)ο蠓椒ê徒Y(jié)構(gòu)化方法1結(jié)構(gòu)化程序設(shè)計(jì)的優(yōu)點(diǎn)是什么?如何在編碼中使用這種方法?答:易于閱讀,易于驗(yàn)證。程序設(shè)計(jì)自頂向下,逐步求精2、SP法的自頂向下,逐步求精方法的優(yōu)點(diǎn)有哪些?答:此法符合人們解決復(fù)雜問題的普遍規(guī)律,可提高軟件開發(fā)的成功率和生產(chǎn)率;而且用先

34、全局后局部、先整體后細(xì)節(jié)、先抽象后具體的逐步求精過程,開發(fā)出來的程序具有清晰的層次結(jié)構(gòu),因此程序容易閱讀和理解,這樣,程序自頂向下,逐步細(xì)化,分解成一個樹型結(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è)計(jì)一個軟件時,可復(fù)用的代碼量最大。3、 簡述結(jié)構(gòu)化程序設(shè)計(jì)方法的基本特點(diǎn)。(5分)1) .是盡可能少用goto語句的程序設(shè)計(jì)方法;2) .每個代碼塊都單入單出;3) .使用控制結(jié)構(gòu):

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

溫馨提示

  • 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

提交評論