電大軟件工程簡答題參考_第1頁
電大軟件工程簡答題參考_第2頁
電大軟件工程簡答題參考_第3頁
電大軟件工程簡答題參考_第4頁
電大軟件工程簡答題參考_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上3、軟件工程為什么要強(qiáng)調(diào)規(guī)范化和文檔化?答案:軟件工程強(qiáng)調(diào)規(guī)范化和文檔化。規(guī)范化的目的是使眾多的開發(fā)者遵守相同的規(guī)范,使軟件生產(chǎn)擺脫個(gè)人生產(chǎn)方式,進(jìn)入標(biāo)準(zhǔn)化、工程化的生產(chǎn)方式。文檔化是將軟件的設(shè)計(jì)思想、設(shè)計(jì)過程和實(shí)現(xiàn)過程完整地記錄下來,以便于后人的使用和維護(hù),在開發(fā)過程中各類相關(guān)人員借助于文檔進(jìn)行交流和溝通。另外,在開發(fā)過程中產(chǎn)生的各類文檔使得軟件的生產(chǎn)過程由不可見變?yōu)榭梢?,便于管理者對軟件生產(chǎn)進(jìn)度和開發(fā)過程進(jìn)行管理。在用戶最終驗(yàn)收時(shí)可以通過對提交的文檔進(jìn)行技術(shù)審查和管理審查,保證軟件的質(zhì)量。8、請畫圖說明軟件工程的層次化結(jié)構(gòu),并詳細(xì)分析中間兩層的內(nèi)容。軟件工程的內(nèi)容

2、具有層次化結(jié)構(gòu),最底層是質(zhì)量保證層,中間是過程層和方法層,最上層是工具層。見圖:其中過程層定義了一組關(guān)鍵過程域,目的是保證軟件開發(fā)過程的規(guī)范性和可控性。方法層提供了軟件開發(fā)的各種方法,包括如何進(jìn)行軟件需求分析和設(shè)計(jì),如何實(shí)現(xiàn)設(shè)計(jì),如何測試和維護(hù)等方法。15、請給出軟件工程七條基本原理中的任意三條基本原理。原理1用分階段的生命周期計(jì)劃嚴(yán)格管理 原理2堅(jiān)持進(jìn)行階段評審原理3實(shí)行嚴(yán)格的產(chǎn)品控制原理4采用現(xiàn)代程序設(shè)計(jì)技術(shù)原理5結(jié)果應(yīng)能清楚地審查原理6開發(fā)小組的人員應(yīng)該少而精原理7承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性1. 軟件工程的主要目標(biāo)是什么?軟件工程旨在開發(fā)滿足用戶需要、及時(shí)交付、不超過預(yù)算和無故障的

3、軟件,其主要目標(biāo)如下:1實(shí)現(xiàn)預(yù)期的軟件功能,達(dá)到較好的軟件性能,滿足用戶的需求。2增強(qiáng)軟件過程的可見性和可控性,保證軟件的質(zhì)量。3提高所開發(fā)軟件的可維護(hù)性,降低維護(hù)費(fèi)用。4提高軟件開發(fā)生產(chǎn)率,及時(shí)交付使用。5合理預(yù)算開發(fā)成本,付出較低的開發(fā)費(fèi)用。2. 簡述軟件過程模型答:1)軟件過程是人們開發(fā)和維護(hù)軟件及相關(guān)產(chǎn)品的活動、方法、實(shí)踐和改進(jìn)的集合。它明確定義軟件過程中所執(zhí)行的活動及其順序,確定沒一個(gè)活動內(nèi)容和步驟,定義每個(gè)角色和職責(zé)。(2)軟件工程將軟件開發(fā)和維護(hù)的過程概況為8個(gè)大的活動:問題定義、可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、系統(tǒng)測試和運(yùn)行維護(hù)。1試從軟件的特點(diǎn)出發(fā)分析軟件危機(jī)

4、產(chǎn)生的原因。答案 :1軟件是一種邏輯實(shí)體,具有抽象性,無法看到軟件本身的形態(tài),必須通過觀察、分析、思考和判斷才能了解它的功能和性能。2軟件對硬件和環(huán)境有著不同程度的依賴性,這導(dǎo)致了軟件升級和移植的問題。計(jì)算機(jī)硬件和支撐環(huán)境不斷升級,為了適應(yīng)運(yùn)行環(huán)境的變化,軟件也需要不斷維護(hù),并且維護(hù)的成本通常比開發(fā)成本高許多。3軟件生產(chǎn)至今尚未擺脫手工方式,軟件開發(fā)的手工行為造就了一個(gè)致命的問題,就是為應(yīng)用“量身訂做”軟件。長期以來,軟件給人的感覺是修改幾條指令很簡單,客戶總是強(qiáng)調(diào)軟件要適應(yīng)自己的業(yè)務(wù)需求。因此,軟件產(chǎn)品大多是為客戶“訂做”的,通用性差。4軟件涉及人類社會的各行各業(yè),常常涉及一些行業(yè)知識,這對

5、軟件工程師提出了很高的要求。5軟件是與文學(xué)藝術(shù)作品相似的精神作品,與體力勞動相比,精神活動過程的特點(diǎn)是“不可見性”,這大大增加了組織管理上的困難。2、面向?qū)ο蟮姆治鐾ǔR⑷齻€(gè)模型,請問三個(gè)模型的作用?1)功能模型:表達(dá)系統(tǒng)的詳細(xì)需求,為軟件的進(jìn)一步分析和設(shè)計(jì)打下基礎(chǔ)。在面向?qū)ο蠓椒ㄖ?,由用例圖和場景描述組成。2)對象模型:表示靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)“數(shù)據(jù)”性質(zhì)。描述現(xiàn)實(shí)世界中實(shí)體的對象以及它們之間的關(guān)系,表示目標(biāo)系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu)。3)動態(tài)模型:描述系統(tǒng)的動態(tài)結(jié)構(gòu)和對象之間的交互,表示瞬時(shí)的、行為化的系統(tǒng)的“控制”特性。5、請說明對象模型的作用是什么?對象模型:表示靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)“數(shù)據(jù)

6、”性質(zhì)。描述現(xiàn)實(shí)世界中實(shí)體的對象以及它們之間的關(guān)系,表示目標(biāo)系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu)。在面向?qū)ο蠓椒ㄖ?,類圖是構(gòu)建對象模型的核心工具。6、請說明IPO圖的作用,并給出一個(gè)IPO圖的模板。數(shù)據(jù)流程圖中的處理本應(yīng)該放在數(shù)據(jù)字典中進(jìn)行定義,但是由于處理與數(shù)據(jù)是有一定區(qū)別的兩類事物,它們各自有獨(dú)立的描述格式,因此在實(shí)際項(xiàng)目中通常將處理說明用IPO圖標(biāo)描述。下面是項(xiàng)目中常用的處理說明模板:系統(tǒng)名稱: 作者: 處理編號: 日期: 輸入?yún)?shù)說明: 輸出參數(shù)說明:處理說明:局部數(shù)據(jù)元素:備注:6簡述模塊獨(dú)立性,內(nèi)聚與耦合。答: 模塊獨(dú)立性, 是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能, 而和軟件系統(tǒng)中其它的

7、模塊的接口是簡單的。一般采用兩個(gè)準(zhǔn)則度量模塊獨(dú)立性。即模塊間耦合和模塊內(nèi)聚。耦合是模塊之間的互相連接的緊密程度的度量。 內(nèi)聚是模塊功能強(qiáng)度(一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度)的度量。模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)是高內(nèi)聚低耦合的模塊。6衡量模塊獨(dú)立性的兩個(gè)標(biāo)準(zhǔn)是什么?它們各表示什么含義?答:(1)兩個(gè)定性的度量標(biāo)準(zhǔn):耦合與內(nèi)聚性。(2)耦合性:也稱塊間聯(lián)系。指軟件系統(tǒng)結(jié)構(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強(qiáng),模塊的獨(dú)立性則越差。(3)內(nèi)聚性:也稱塊內(nèi)聯(lián)系。指模塊的功能強(qiáng)度的度量,即一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量。模塊內(nèi)元素聯(lián)系越緊密,內(nèi)聚性越高

8、。7、什么是耦合?什么是內(nèi)聚?在軟件設(shè)計(jì)中應(yīng)該保持模塊的獨(dú)立性原則。反映模塊獨(dú)立性的有兩個(gè)標(biāo)準(zhǔn):內(nèi)聚和耦合。內(nèi)聚衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度;耦合衡量模塊之間彼此依賴的程度。軟件設(shè)計(jì)時(shí)追求高內(nèi)聚、低耦合。9、請說明快速原型化模型的基本思想。在需求分析的同時(shí),以比較小的代價(jià)快速建立一個(gè)能夠反映用戶主要需求的原型系統(tǒng)。用戶在原型系統(tǒng)上可以進(jìn)行基本操作,并且提出改進(jìn)意見,分析人員根據(jù)用戶的意見完善原型,然后再由用戶評價(jià),提出建議,如此往復(fù),直到開發(fā)的原型系統(tǒng)滿足了用戶的需求為止?;诳焖僭突P偷拈_發(fā)過程基本上是線性的,從創(chuàng)建系統(tǒng)原型到系統(tǒng)運(yùn)行,期間沒有反饋環(huán)。這是由于開發(fā)人員是在原

9、型的基礎(chǔ)上進(jìn)行系統(tǒng)分析和設(shè)計(jì),而原型已經(jīng)通過了用戶和開發(fā)組的審查,在設(shè)計(jì)階段由于有原型作設(shè)計(jì)參考,所以設(shè)計(jì)的結(jié)果正確率比較高。10、請舉例說明用例之間的包含關(guān)系和擴(kuò)展關(guān)系的區(qū)別?包含關(guān)系用于構(gòu)造多個(gè)用例共同的活動。例如,在ATM系統(tǒng)中,取錢、查詢、更改密碼等功能都需要驗(yàn)證用戶密碼。這種情況下應(yīng)該將密碼驗(yàn)證功能獨(dú)立出來,便于復(fù)用、減少冗余。一個(gè)用例擴(kuò)展另一個(gè)用例的功能,例如,在圖書館信息管理系統(tǒng)中,讀者還書時(shí),系統(tǒng)檢查所還圖書是否有預(yù)訂記錄,如果有則執(zhí)行“通知”用例。9.簡述在項(xiàng)目開發(fā)時(shí)選擇程序設(shè)計(jì)語言的主要考慮的因素。答:1編程人員的水平和編程經(jīng)歷;2待開發(fā)的軟件類型;3算法和計(jì)算復(fù)雜性;4數(shù)

10、據(jù)結(jié)構(gòu)的復(fù)雜性;5軟件的開發(fā)成本和時(shí)間要求;6軟件可移植性要求;7可用的軟件工具。11、軟件設(shè)計(jì)中的抽象是什么意思?所謂抽象就是將事務(wù)的相似方面集中和概括起來,暫時(shí)忽略它們之間的差異?;蛘哒f,抽象就是抽出事務(wù)的本質(zhì)特性而暫時(shí)不考慮它們的細(xì)節(jié).9. 活動圖與狀態(tài)圖的區(qū)別?答:(1)描述的重點(diǎn)不同:活動圖描述的是從活動到活動的控制流;狀態(tài)圖描述的是對象的狀態(tài)及狀態(tài)之間的轉(zhuǎn)移。(2)使用的場合不同:在分析用例、理解涉及多個(gè)用例的工作流、處理多線程應(yīng)用等情況下,一般使用活動圖;在顯示一個(gè)對象在其生命周期內(nèi)的行為時(shí),一般使用狀態(tài)圖。7等價(jià)分類法的基本思想是什么?答:根據(jù)程序的輸入特性,將程序的定義域劃分

11、為有限個(gè)等價(jià)區(qū)段“等價(jià)類”,從等價(jià)類中選擇出的用例具有“代表性”,即測試某個(gè)等價(jià)類的代表值就等價(jià)于對這一類其他值的測試。如果某個(gè)等價(jià)類的一個(gè)輸入數(shù)據(jù)(代表值)測試中查出了錯(cuò)誤,說明該類中其他測試用例也會有錯(cuò)誤。13 試分析結(jié)構(gòu)化方法存在的主要問題是什么?答1結(jié)構(gòu)化方法分析和設(shè)計(jì)階段所應(yīng)用的模型之間存在鴻溝。分析階段的主要模型是數(shù)據(jù)流程圖,設(shè)計(jì)階段的主要模型是軟件模塊結(jié)構(gòu)圖,數(shù)據(jù)流程圖和軟件模塊結(jié)構(gòu)圖之間需要進(jìn)行轉(zhuǎn)換。不同的人轉(zhuǎn)換出的模塊圖可能不同,有很大的隨意性。2需求分析的細(xì)化程度沒有標(biāo)準(zhǔn),只能憑借分析人員的經(jīng)驗(yàn)自己把握;需求分析的過程是在一種瀑布形式,當(dāng)需求變更時(shí),功能變化就會導(dǎo)致軟件模塊

12、結(jié)構(gòu)發(fā)生變化,造成了軟件結(jié)構(gòu)不穩(wěn)定。3結(jié)構(gòu)化程序設(shè)計(jì)將數(shù)據(jù)定義與處理數(shù)據(jù)的過程相分離,不利于軟件復(fù)用。4結(jié)構(gòu)化方法設(shè)計(jì)的軟件結(jié)構(gòu)不穩(wěn)定,缺乏靈活性,可維護(hù)性差。14、請說明判定表的作用及其結(jié)構(gòu)。判定表是結(jié)構(gòu)花設(shè)計(jì)的工具,用于描述多重條件的處理。分為4各部分:條件列表、條件組合、操作列表、特定條件下的操作組合。16、結(jié)構(gòu)化程序設(shè)計(jì)的特征是什么?結(jié)構(gòu)化程序設(shè)計(jì)的特征如下:程序模塊只有一個(gè)入口和一個(gè)出口、程序中只包含順序、條件和循環(huán)三種控制結(jié)構(gòu)。3. 簡述結(jié)構(gòu)化分析的主要步驟答:(1)根據(jù)用戶的需求畫出初始的數(shù)據(jù)流程圖,寫出數(shù)據(jù)字典和初始的加工處理說明(IPO圖),實(shí)體關(guān)系圖。(2)以初始數(shù)據(jù)流程圖

13、為基礎(chǔ),從數(shù)據(jù)流程圖的輸出端開始回溯。在對數(shù)據(jù)流程圖進(jìn)行回溯的過程中可能會發(fā)現(xiàn)丟失的處理和數(shù)據(jù),應(yīng)將數(shù)據(jù)流程圖補(bǔ)充完善。(3)對軟件性能指標(biāo)、接口定義、設(shè)計(jì)和實(shí)現(xiàn)的約束條件等逐一進(jìn)行分析。(4)系統(tǒng)分析人員與用戶一起對需求分析的結(jié)果進(jìn)行復(fù)查。(5)根據(jù)細(xì)化的需求修訂開發(fā)計(jì)劃。(6)編寫需求規(guī)格說明書和初始的用戶手冊,測試人員開始編寫功能測試用的測試數(shù)據(jù)。什么是軟件危機(jī)?軟件危機(jī)表現(xiàn)在哪幾個(gè)方面?(1)軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中,所遇到的一系列嚴(yán)重問題。(2)典型表現(xiàn): l 開發(fā)費(fèi)用和進(jìn)度難以估算和控制,大大超過預(yù)期的資金和規(guī)定日期;l 軟件需求分析不夠充分,用戶不滿意“已經(jīng)完成

14、”的軟件系統(tǒng)。l 軟件質(zhì)量難于保證;l 軟件維護(hù)困難;l 通常沒有保留適當(dāng)?shù)奈臋n資料l 開發(fā)成本逐年上升;l 軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢2軟件需求可以分為業(yè)務(wù)需求、用戶需求、功能需求和非功能需求,請分析功能需求和非功能需求的區(qū)別?答:(1)功能需求定義了軟件開發(fā)人員必須實(shí)現(xiàn)的軟件功能。用戶從他們完成任務(wù)的角度對軟件提出了用戶需求,這些需求通常是凌亂的、非系統(tǒng)化的、有冗余的,開發(fā)人員不能據(jù)此編寫程序。軟件分析人員要充分理解用戶需求,將用戶需求整理成軟件功能需求。開發(fā)人員根據(jù)功能需求進(jìn)行軟件設(shè)計(jì)和編碼。 (2)非功能需求是對功能需求的補(bǔ)充,可以分兩類。一類對用

15、戶來說是最重要的屬性,包括有效性、高效性、靈活性、完整性、互操作性、可靠性、健壯性、可用性。另一類對開發(fā)者來說是很重要的質(zhì)量屬性,包括可維護(hù)性、可移植性、可重用性、可測試性。4什么是軟件?如何評價(jià)軟件的質(zhì)量?答:(1) 軟件是程序以及開發(fā)、使用和維護(hù)程序所需的所有文檔。(2)軟件質(zhì)量從可維護(hù)性、可靠性、可理解性和效率等方面對軟件作較全面的評價(jià)。5. 為了提高軟件的可維護(hù)性,在軟件開發(fā)過程的各個(gè)階段要充分考慮軟件的可維護(hù)性因素。答:(1)在需求分析階段應(yīng)該明確維護(hù)的范圍和責(zé)任,檢查每條需求,分析維護(hù)時(shí)這條需求可能需要的支持,對于那些可能發(fā)生變化的需求要考慮系統(tǒng)的應(yīng)變能力。(2)在設(shè)計(jì)階

16、段應(yīng)該做一些表更實(shí)驗(yàn),檢查系統(tǒng)的可維護(hù)性、靈活性和可移植性,設(shè)計(jì)時(shí)應(yīng)該將今后可能變更的內(nèi)容與其他部分分離出來,并且遵循高內(nèi)聚、低耦合的原則。(3)編碼階段要保持源程序與文檔的一致性、源程序的可理解性和規(guī)范性。(4)在測試階段測試人員應(yīng)該按照需求文檔和設(shè)計(jì)文檔測試軟件的有效性和可用性,收集出錯(cuò)信息并進(jìn)行分類統(tǒng)計(jì),為今后的維護(hù)打下基礎(chǔ)。10設(shè)計(jì)下列偽程序的判定覆蓋測試用例。BEGININPUT(a,b,c,x,y,z,t);IF (a>10) THEN x=10ELSE x=1END IFIF(b>10)AND (t<3) THENy=20 ELSE y=2 END IFIF(c

17、>15) THEN z=30 ELSE z=3 END IFPRINT(x,y,z)END3、讀懂下面的程序,調(diào)整格式,使其更容易理解,并添加注釋。int main()int a10;for (int i =0;i<10;i+)scanf(“%d”,ai);int max=a0,min=a1;for (int j = 0;j<10;j+)max=(max>aj?max:aj);min=(min<aj?min:aj);printf("max= %d",max);printf("min= %d",min);printf(&quo

18、t;n");return 0;5、一個(gè)程序片段如下,請?jiān)O(shè)計(jì)符合判定覆蓋的測試用例。if (a>=5) && (b<0) c=a+b;else c=a-b;if (c>5) | (c<1) printf(“c不在計(jì)算區(qū)域n”)else printf(“%dn”, c);答案 條件:a>=5 b<0a>=5 b0c<11<c<5符合判定覆蓋的測試用例(不唯一):a=5,b=-1,c=4; a=5,b=5,c=0;4. 設(shè)計(jì)下列偽程序的語句覆蓋測試用例。BEGININPUT(A,B,C)IF A>5 THEN

19、 X=10ELSE X=1END IFIF B>10 THEN Y=20ELSE Y=2END IFIF C>15THEN Z=30ELSE Z=3END IF PRINT(X,Y,Z)END答:因?yàn)槊總€(gè)判定表達(dá)式為真或假時(shí)均有賦值語句,為了使每個(gè)語句都至少執(zhí)行一次,總共需要兩組測試數(shù)據(jù),以便使得每個(gè)判定表達(dá)式取值為真或假各一次。下面是實(shí)現(xiàn)語句覆蓋的典型測試用例:(1)使3個(gè)判定表達(dá)式之值全為假輸入:A=1,B=1,C=1預(yù)期的輸出:X=1,Y=2,Z=3 (2)使3個(gè)判定表達(dá)式之值全為真輸入:A=20,B=40,C=60預(yù)期的輸出:X=10,Y=20,Z=3010設(shè)計(jì)下列偽程序的

20、條件組合覆蓋測試用例。BEGININPUT(A,B)IF(A>0) AND (B>0) THEN X=A+BELSE X=A-BENDIF (C>A) OR (D<B) THEN Y=C-DELSE Y=C+DENDPRINT(X,Y)END答:條件組合覆蓋標(biāo)準(zhǔn)為,使得每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。本程序中共有兩個(gè)判定表達(dá)式,每個(gè)判定表達(dá)式中有兩個(gè)簡單條件,因此,總共有8種可能的條件組合,它們是:A>0,B>0A>0,B<=0A<=0,B>0A<=0,B<=0C>A,D<BC>A,D>=BC<=A,D<BC<=A,D>=B 下面的4個(gè)測試用例,可以使上面列出的8種條件組合每種

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論