版權(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)擺脫軟件危機(jī)了嗎?請說明理由
2、。 軟件危機(jī)是指在計算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。主要是 兩個問題:(1)如何開發(fā)軟件,怎樣滿足對軟件的日益增長的需求;(2如何維護(hù)數(shù)量不斷膨脹的已有軟件; 軟件危機(jī)的出現(xiàn),究其原因,一方面是由軟件本身的特點(diǎn)引起的,如軟件越來越復(fù)雜,軟件故障難于檢測,工作量難以估計;另一方面則是因?yàn)檐浖_發(fā)和維護(hù)方法不當(dāng)所造成的,如軟件的個體化特征太強(qiáng)等。 為了擺脫軟件危機(jī)所造成的困境,提出軟件工程的概念,其主要思路是:要把人類長期以來從事各種工程項(xiàng)目所積累起來的行之有效的原理,概念,技術(shù)和方法,特別是人類從事計算機(jī)硬件研究和開發(fā)的經(jīng)驗(yàn)教訓(xùn),應(yīng)用到軟件的開發(fā)和維護(hù)中來。 我認(rèn)為我國現(xiàn)在還未
3、完全擺脫軟件危機(jī),因?yàn)殡S著經(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ā)展有幾個階段?各有何特征?程序設(shè)計階段 硬件特征:價格貴、存儲容量小、
4、運(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ù); (3)作為開發(fā)人員階段工作成果和結(jié)束標(biāo)志;(4)提高開發(fā)效率;(5)提供軟件運(yùn)行、維護(hù)和培訓(xùn)有
5、關(guān)資料;(6)便于用戶了解軟件功能、性能。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)目的可行性 需求分
6、析與規(guī)格說明,明確系統(tǒng)的規(guī)格與要求 設(shè)計,包括概要設(shè)計與詳細(xì)設(shè)計 編程,用程序語音實(shí)現(xiàn)每個模塊的功能 測試,發(fā)現(xiàn)并改正錯誤 運(yùn)行與維護(hù)9、 瀑布模型相關(guān)概念。 瀑布模型的基本概念以及特點(diǎn)。瀑布模型的缺陷有哪些?瀑布模型規(guī)定了各項(xiàng)軟件工程活動,包括需求分析、規(guī)格說明、設(shè)計、編碼、測試和維護(hù),并規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級而下。瀑布模型的特點(diǎn)是:階段間具有順序性和依賴性;清楚區(qū)分邏輯設(shè)計和物理設(shè)計,盡可能推遲程序的物理實(shí)現(xiàn);每個階段都必須完成規(guī)定的文檔,且每階段結(jié)束前需要對完成的文檔進(jìn)行評審。 缺陷:(1)完全地、精確地刻畫復(fù)雜應(yīng)用問題的用戶需求是不可能的。(2)需求
7、分析和軟件實(shí)現(xiàn)是不可分割的。(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)險。可以理解為在快速原型模型的每個階段之前都增加了風(fēng)險分析。基本開發(fā)過程:(1)需求定義。利用前面介紹的需求分析技術(shù)理解應(yīng)用領(lǐng)域,獲取初步的用戶需求,制定項(xiàng)目開發(fā)計劃。(2)風(fēng)險分析。根據(jù)初始需求或改進(jìn)意見評審可選用的方案,給出消除或減少風(fēng)險的途徑。(3)工
8、程實(shí)現(xiàn)。利用前一節(jié)介紹的快速原型構(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ī)
9、構(gòu)成員的軟件項(xiàng)目的開發(fā)? 因?yàn)槿绻_發(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ù)原型的不同作用,有三類原型模型:探索型原型。
10、這種類型的原型模型是把原型用于開發(fā)的需求分析階段,目的是要弄清用戶的需求,確定所期望的特性,并探索各種方案的可行性。它主要針對開發(fā)目標(biāo)模糊,用戶與開發(fā)著對項(xiàng)目都缺乏經(jīng)驗(yàn)的情況,通過對原型的開發(fā)來明確用戶的需求。實(shí)驗(yàn)型原型。這種原型主要用于設(shè)計階段,考核實(shí)現(xiàn)方案是否合適,能否實(shí)現(xiàn),對于一個大型系統(tǒng),若對設(shè)計方案心中沒有把握時,可通過這種原型來證實(shí)設(shè)計方案的正確性。演化型原型。這種原型主要用于及早向用戶提交一個原型系統(tǒng),該原型系統(tǒng)或者包含系統(tǒng)的框或者包含系統(tǒng)的主要功能。在得到用戶的認(rèn)可后,將原型系統(tǒng)不斷擴(kuò)充演變?yōu)樽罱K的軟件系統(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è)計文檔,代碼文檔,以及其他文檔如數(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ā)出來就可以使用軟件的部分功能
13、。由于軟件產(chǎn)品不是突然一次性提交給用戶使用的,用戶可以比較容易接受,并且容易提出中肯的意見。這種方式不要求非常大的初始資金投入。 缺點(diǎn):要求下一輪新增的功能應(yīng)能夠無縫地集成到下一輪系統(tǒng)中去,可能這一點(diǎn)并不容易做到。如果整體結(jié)構(gòu)設(shè)計不當(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)容有哪些? 一個
14、可行性研究報告的主要內(nèi)容如下: (1)引言:說明編寫本文檔的目的;項(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ù)可行
15、性的評價。 (5)所建議系統(tǒng)的經(jīng)濟(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、
16、如何畫分層數(shù)據(jù)流圖 總的原則是:至頂而下,逐層分解(畫分層數(shù)據(jù)流圖):比較復(fù)雜的系統(tǒng)不能畫在一張紙上 逐層分解的畫法可以控制每一層的復(fù)雜度。頂層:將整個系統(tǒng)作為一個加工,描述系統(tǒng)邊界(輸入與輸出。)中間層:表示某個加工分解為一組子加工,其中的子加工還需進(jìn)一步分解。底層:由不再進(jìn)行分解的基本加工組成。4、常用的軟件需求分析的方法有哪些? 結(jié)構(gòu)化分析方法(SA)、面向?qū)ο蠓治龇椒ǎ∣OA)、功能分解法、信息建模法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è)計階段建立原型的好處有哪些?在需求分析和設(shè)計階段建立原型的好處有:(1)增進(jìn)開發(fā)人員和用戶對系統(tǒng)需求的一致理解,明確軟件需求,尤其是功能含
18、糊的需求。(2)原型提供了一種有力的學(xué)習(xí)手段,能夠使用戶盡早接觸系統(tǒng)。(3)原型可以用來識別或化解風(fēng)險。(4)原型有的可以原封不動地成為產(chǎn)品,有的略加修改就可以成為最終系統(tǒng)的一個組成部分,這樣有利于建成最終系統(tǒng)。8、IDEF0功能建模相關(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ī)定每張圖至少
19、有3個、最多有6個方框,上界6保證采用層次性描述復(fù)雜問題的可理解性,下界3保證分解有意義。 10、IDEF1X建模相關(guān)概念。11、需求規(guī)格說明的概念。概要設(shè)計1、概要設(shè)計中相關(guān)的概念。2、軟件設(shè)計階段的任務(wù)與目標(biāo)是什么?任務(wù):將分析階段獲得的需求說明轉(zhuǎn)換為計算機(jī)中可實(shí)現(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)劃分成若干模塊,每個模塊完成一個子功能,把這些模塊集
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ì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)
21、準(zhǔn)的定義分別是什么(2分)?在我們的軟件設(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,層次圖描繪軟
22、件的層次結(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è)計說明、詳細(xì)設(shè)計規(guī)格說明以及源
23、程序代碼都應(yīng)成為軟件測試的對象。3、白盒測試的概念及相關(guān)技術(shù)。4、黑盒測試的概念及相關(guān)技術(shù)。5、等價分類法相關(guān)概念。 (1)等價分類法的基本思想是什么? 根據(jù)程序的輸入特性,將程序的定義域劃分為有限個等價區(qū)段 “等價類”,從等價類中選擇出的用例具有“代表性”,即測試某個等價類的代表值就等價于對這一類其它值的測試。如果某個等價類的一個輸入數(shù)據(jù)(代表值)測試中查出了錯誤,也即是該等價類中的其它值也會查出同樣的錯誤。 (2)等價類劃分方法中,劃分好等價類后設(shè)計測試用例的步驟是什么? 1) 為每個等價類編號;2) 使一個測試用例盡可能覆蓋多個有效等價類; 3)特別要注意:一個測試用例只能覆蓋一個無效等
24、價類; 6、軟件測試為何需要盡早和不斷地進(jìn)行?軟件測試不應(yīng)僅僅作為一個獨(dú)立的軟件開發(fā)階段,而應(yīng)貫穿到軟件開發(fā)的各個階段中。通過各階段的評審,在早期把錯誤解決,以減少錯誤放大效應(yīng),這樣不僅可以提高軟件質(zhì)量,而且也是降低軟件成本的一個重要措施。由此,軟件測試應(yīng)該盡早和不斷地進(jìn)行。 7、一般,驅(qū)動模塊比樁模塊容易設(shè)計,為什么? 因?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è)計顯然比樁模塊容易。8、什么是測試和測試? 測試是在開發(fā)機(jī)構(gòu)的監(jiān)督下,由個別用戶在確認(rèn)測試階段后期對軟件進(jìn)行測試,目的是評價軟件的FLURPS(功能、局域化、可使用性、可靠性、性能和支持性),注重界面和特色。測試是由支持軟件預(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ī)運(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è)計的最小邏輯單元,單元的劃分在面向過程的結(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ù)結(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è)計審查;單元測試;集成測試;確認(rèn)測試;系統(tǒng)測試;驗(yàn)收測試。14、分析比較面向?qū)ο蟮能浖y試與傳統(tǒng)的軟件測試的異
29、同。 解:傳統(tǒng)的單元測試的對象是軟件設(shè)計的最小單位模塊。當(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è)計模型,此外,測試的焦點(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è)計文檔的加以限制;修改文檔資料所產(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è)計語言 (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è)計評審、審計和測試等具體手段來保證質(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è)計的優(yōu)點(diǎn)是什么?如何在編碼中使用這種方法?答:易于閱讀,易于驗(yàn)證。程序設(shè)計自頂向下,逐步求精2、SP 法的自頂向下,逐步求精方法的優(yōu)點(diǎn)有哪些?答:此法符合人們解決復(fù)雜問題的普遍規(guī)律,可提高軟件開發(fā)的成功率和
34、生產(chǎn)率;而且用先全局后局部、先整體后細(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è)計一個軟件時,可復(fù)用的代碼量最大。3、簡述結(jié)構(gòu)化程序設(shè)計方法的基本特點(diǎn)。(5分)1)是盡可能少用goto語句的程序設(shè)計方法;2)每個代碼塊都單入單出;3)使用控制結(jié)構(gòu):
35、順序、選擇和循環(huán)Do_UNTIL和Do_CASE;4)自頂向下逐步求精。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è)計有哪些優(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)化方法是一
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024商鋪?zhàn)赓U合同擔(dān)保與租賃保證金監(jiān)管服務(wù)協(xié)議3篇
- 2024版定制家具設(shè)計與售后維護(hù)服務(wù)合同范本
- 2024年廣告攝影項(xiàng)目合作協(xié)議3篇
- 2024年度私人房屋修建工程合同電子信息交換合同2篇
- 2024版二零二四年度醫(yī)療廢物處理藥品采購合同2篇
- 2024年度雙方自愿協(xié)議離婚合同范本詳細(xì)版樣式參考6篇
- 2024年度企業(yè)人力資源管理與員工培訓(xùn)評估合同3篇
- 2024年版授權(quán)委托書模板2篇
- 2024年標(biāo)準(zhǔn)居間服務(wù)協(xié)議模板一
- 2024年度文化產(chǎn)業(yè)發(fā)展投資理財擔(dān)保協(xié)議范本3篇
- 電大信息技術(shù)應(yīng)用終結(jié)性作業(yè)
- GB/T 9115-2010對焊鋼制管法蘭
- GB/T 20721-2006自動導(dǎo)引車通用技術(shù)條件
- GB/T 15256-2014硫化橡膠或熱塑性橡膠低溫脆性的測定(多試樣法)
- 結(jié)核菌素(PPD)試驗(yàn)詳解課件
- 皖醫(yī)大內(nèi)科學(xué)習(xí)題及答案
- 醫(yī)療機(jī)構(gòu)工作人員廉潔從業(yè)九項(xiàng)準(zhǔn)則培訓(xùn)考核試題附答案
- 幼兒園中班數(shù)學(xué):《水果列車》 課件
- 光伏電站危險及有害因素辨識
- 辦公用品請購單
- 花卉分類與識別
評論
0/150
提交評論