《軟件工程——理論與實(shí)踐》重點(diǎn)問答題(共4頁)_第1頁
《軟件工程——理論與實(shí)踐》重點(diǎn)問答題(共4頁)_第2頁
《軟件工程——理論與實(shí)踐》重點(diǎn)問答題(共4頁)_第3頁
《軟件工程——理論與實(shí)踐》重點(diǎn)問答題(共4頁)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 軟件工程理論與實(shí)踐(第2 版)習(xí)題答案 簡答題 1. 什么是軟件危機(jī)?其產(chǎn)生的原因是什么? 答:“軟件危機(jī)”(Software Crisis)的出現(xiàn)是由于軟件的規(guī)模越來越大,復(fù)雜度不斷增加,軟件需求量增大。而軟件開發(fā)過程是一種高密集度的腦力勞動(dòng),軟件開發(fā)的模式及技術(shù)不能適應(yīng)軟件發(fā)展的需要。致使大量質(zhì)量低劣的軟件涌向市場,有的花費(fèi)大量人力、財(cái)力,而在開發(fā)過程中就夭折。 軟件危機(jī)主要表現(xiàn)在兩個(gè)方面: (1) 軟件產(chǎn)品質(zhì)量低劣,甚至開發(fā)過程就夭折。 (2) 軟件生產(chǎn)率低,不能滿足需要。 2. 有哪些主要的軟件開發(fā)方法? 答:主要的軟件開發(fā)方法有:結(jié)構(gòu)化開發(fā)方法、原型化開發(fā)

2、方法和面向?qū)ο蟮拈_發(fā)方法。 3. 軟件生存周期各階段的主要任務(wù)是什么? 答:軟件生存周期按瀑布模型分為 6 個(gè)階段: 可行性研究與計(jì)劃(確定系統(tǒng)的目標(biāo)和規(guī)模,分析項(xiàng)目的可行性); 需求分析與規(guī)格說明(明確系統(tǒng)的規(guī)格和要求); 設(shè)計(jì)(包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),將系統(tǒng)分解為模塊); 編程(用程序語言實(shí)現(xiàn)每個(gè)模塊,簡單容易); 測試(發(fā)現(xiàn)并改正錯(cuò)誤,分為模塊測試、集成測試和系統(tǒng)聯(lián)調(diào)三級(jí)); 運(yùn)行維護(hù)(擴(kuò)充功能、糾錯(cuò)等)。 4. 原型化方法的核心是什么?它具有哪些特點(diǎn)? 答:原型化方法的核心是,花費(fèi)少量代價(jià)建立一個(gè)可運(yùn)行的系統(tǒng),使用戶及早獲得學(xué)習(xí)的機(jī)會(huì)。 強(qiáng)調(diào)軟件開發(fā)人員與用戶的不斷交互,通過原型的演進(jìn)

3、不斷適應(yīng)用戶任務(wù)改變的需求。它是一個(gè)循環(huán)的模型。速成原型法按以下步驟循環(huán)執(zhí)行: 快速分析。 構(gòu)造原型。 運(yùn)行和評(píng)價(jià)原型。 修改與改進(jìn)。 5簡述抽取需求的主要方法,并比較它們的特點(diǎn)。 面談法。這是一種重要而直接簡單,隨時(shí)可使用的發(fā)現(xiàn)和獲取需求的方法。面談的對象主要有用戶和領(lǐng)域?qū)<遥号c用戶面談主要了解和提取需求,與領(lǐng)域?qū)<颐嬲?,是一個(gè)對領(lǐng)域知識(shí)的學(xué)習(xí)和轉(zhuǎn)換過程。使用該方法時(shí)應(yīng)注意面談前要充分準(zhǔn)備,面談后認(rèn)真分析總結(jié),同時(shí)注意掌握面談的人際交流技巧,才能取得好的效果。 問卷法調(diào)查法。通過采用向用戶發(fā)問卷調(diào)查表的方式,達(dá)到徹底弄清項(xiàng)目需求的一種需求獲取方法。這是一種從多個(gè)用戶處收集需求信息的有效方式,

4、是對面談法的補(bǔ)充。 會(huì)議討論法。所謂會(huì)議討論法,是指開發(fā)方和用戶方召開若干次需求討論會(huì)議,達(dá)到徹底弄清項(xiàng)目需求的一種需求獲取方法。這種方法適合于開發(fā)方不清楚項(xiàng)目需求的情況。 原型法。對于某些試驗(yàn)性、探索性的項(xiàng)目,更是難于得到一個(gè)準(zhǔn)確、無二義性的需求。而原型化方法 (Prototyping Method)是獲取這一類項(xiàng)目需求的有效方法。 面向用例的方法。分析建立“用例”的過程,也就是提取需求的過程。 在實(shí)際應(yīng)用中,常常將以上方法進(jìn)行綜合應(yīng)用。 6. 如何畫分層數(shù)據(jù)流圖?有哪些基本原則? 答:總的原則是:至頂而下,逐層分解(畫分層數(shù)據(jù)流圖)。逐層分解的畫法可以控制每一層的復(fù)雜度。 頂層:將整個(gè)系統(tǒng)

5、作為一個(gè)加工,描述系統(tǒng)邊界(輸入與輸出)。 中間層:將某個(gè)加工分解為一組子加工,其中的子加工還需進(jìn)一步分解。 底層:由不再進(jìn)行分解的基本加工組成。畫分層數(shù)據(jù)流圖的基本原則有: 數(shù)據(jù)守恒與數(shù)據(jù)封閉原則。 加工分解的原則。 子圖與父圖“平衡”的原則。 合理使用文件的原則。 7. 胖客戶模型和瘦客戶模型的區(qū)別是什么?它們分別被應(yīng)用在什么樣的場合? 答:在胖客戶模型中,客戶端應(yīng)用負(fù)責(zé)用戶界面和應(yīng)用邏輯部分,因此它的工作比較繁重。一般的數(shù)據(jù)庫應(yīng)用都是屬于這種結(jié)構(gòu)。而與此相反,在瘦客戶模型中,服務(wù)器負(fù)責(zé)了更多的工作,而客戶端的工作就變得非常單純。瀏覽器/Web服務(wù)器結(jié)構(gòu)就屬于瘦客戶結(jié)構(gòu),而且常被稱為B/S

6、 (Browser/Server)結(jié)構(gòu)。 8.模塊分解的最終目的是什么? 答:模塊分解的目的是將系統(tǒng)“分而治之”,以降低問題的復(fù)雜性,使軟件結(jié)構(gòu)清晰,易閱讀、易理解,易于測試和調(diào)試,因而也有助于提高軟件的可靠性。 9. 模塊分解應(yīng)該遵循什么樣的標(biāo)準(zhǔn)? 答:按照“降低塊間聯(lián)系,提高塊內(nèi)聯(lián)系”的設(shè)計(jì)總則對模塊進(jìn)行分解。具體從以下方面考慮: (1) 盡可能建立功能模塊; (2) 消除重復(fù)功能; (3) 模塊的作用范圍與控制范圍,即當(dāng)作用范圍為控制范圍的子集時(shí),才能獲得較低的塊間聯(lián)系; (4) 模塊的大小適當(dāng); (5) 模塊的扇入/扇出數(shù)不宜太多。 也可以用軟件獨(dú)立性的兩個(gè)定性指標(biāo)來度量模塊分解的標(biāo)準(zhǔn)

7、: 一是耦合性。用于描述模塊之間聯(lián)系的緊密程度。從三個(gè)方面衡量塊間聯(lián)系大小:方式 (直接或間接)類型(數(shù)據(jù)型、控制型、混合型)數(shù)量(數(shù)量越大,塊間聯(lián)系越緊密。 二是內(nèi)聚性。用于描述模塊內(nèi)部聯(lián)系的緊密程度。它是從功能的角度來度量模塊內(nèi)的聯(lián)系。 顯然,塊內(nèi)聯(lián)系愈緊,即內(nèi)聚性愈強(qiáng),模塊獨(dú)立性愈好。功能型模塊獨(dú)立性最好。 10比較面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法的特點(diǎn),說明為什么面向?qū)ο蠓椒ū冉Y(jié)構(gòu)化方法更加優(yōu)越。 答:結(jié)構(gòu)化方法是以數(shù)據(jù)流和數(shù)據(jù)封閉性為基礎(chǔ)的,由 SA、SD 和 SP 三部分構(gòu)成。該方法: 無法實(shí)現(xiàn)從問題空間到解空間的直接映射。開發(fā)方法求解過程是先對應(yīng)用領(lǐng)域(問題空間)進(jìn)行分析,建立起問題空間

8、的邏輯模型,再通過一系列復(fù)雜的轉(zhuǎn)換和算法,構(gòu)造計(jì)算機(jī)系統(tǒng),獲得解空間。 無法實(shí)現(xiàn)高效的軟件復(fù)用。結(jié)構(gòu)化方法是面向過程的,將數(shù)據(jù)和處理過程(操作)分離,不僅增加了軟件開發(fā)的難度,也難于支持軟件復(fù)用。 開發(fā)方法難以實(shí)現(xiàn)從分析到設(shè)計(jì)的直接過渡,從 SA 到SD 要經(jīng)過一系列復(fù)雜的變換。 而面向?qū)ο蟮姆椒ㄒ詫ο鬄楹诵?,?qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不是算法,盡量用符合人類認(rèn)識(shí)世界的思維方式來漸進(jìn)地分析、解決問題。 使問題空間與解空間具有一致性,便于對軟件開發(fā)過程所有階段進(jìn)行綜合考慮,能有效地降低軟件開發(fā)的復(fù)雜度,提高軟件質(zhì)量。 軟件開發(fā)各個(gè)階段有機(jī)集成,有利于系統(tǒng)的穩(wěn)定性。 具有良好的重用性。面向?qū)ο蟮募?/p>

9、術(shù)在利用可重用的軟件成分構(gòu)造新軟件系統(tǒng)上具有很大的靈活性,由于對象所具有的封裝性和信息隱蔽,使得對象的內(nèi)部實(shí)現(xiàn)與外界隔離,具有較強(qiáng)的獨(dú)立性。繼承性本身就是一種重用機(jī)制。 綜上,顯然面向?qū)ο蠓椒ū冉Y(jié)構(gòu)化方法更加優(yōu)越。 11 OOA 概念模型由 5 個(gè)層次組成,請簡述這 5 個(gè)層次。 答:OOA 概念模型的 5 個(gè)層次分別是: (1) 發(fā)現(xiàn)類及對象。描述如何發(fā)現(xiàn)類及對象。從應(yīng)用領(lǐng)域開始識(shí)別類及對象,形成整 個(gè)應(yīng)用的基礎(chǔ),然后,據(jù)此分析系統(tǒng)的責(zé)任。 (2) 識(shí)別結(jié)構(gòu)。該階段分為兩個(gè)步驟。第一,識(shí)別“一般特殊”結(jié)構(gòu),該結(jié)構(gòu)捕獲了識(shí)別出的類的層次結(jié)構(gòu);第二,識(shí)別“整體部分”結(jié)構(gòu),該結(jié)構(gòu)用來表示一個(gè)對象如

10、何成為另一個(gè)對象的一部分,以及多個(gè)對象如何組裝成更大的對象。 (3) 定義屬性。其中包括定義類的實(shí)例(對象)之間的實(shí)例連接。 (4) 定義服務(wù)。其中包括定義對象之間的消息連接。 (5) 定義主題。主題由一組類及對象組成,用于將類及對象模型劃分為更大的單位,以便于理解。 12面向?qū)ο笤O(shè)計(jì)的主要任務(wù)是什么? 答:面向?qū)ο蟮脑O(shè)計(jì)(Object-Oriented Design,OOD)是面向?qū)ο箝_發(fā)方法(OOSD)的核心階段。是在OOA 的基礎(chǔ)上解決系統(tǒng)“如何做”的問題。主要任務(wù)包括: 系統(tǒng)設(shè)計(jì) 系統(tǒng)設(shè)計(jì)的任務(wù)包括:將分析模型中緊密相關(guān)的類劃分為若干子系統(tǒng)(也稱為主題),子系統(tǒng)應(yīng)該具有良好的接口,子系

11、統(tǒng)中的類相互協(xié)作;標(biāo)識(shí)問題本身的并發(fā)性,將各子系統(tǒng)分配給處理器,建立子系統(tǒng)之間的通信。 對象設(shè)計(jì),通過對象的認(rèn)定和對象層次結(jié)構(gòu)的組織,確定解空間中應(yīng)存在的對象和對象層次結(jié)構(gòu),并確定外部接口和主要的數(shù)據(jù)結(jié)構(gòu)。 設(shè)計(jì)優(yōu)化 對設(shè)計(jì)進(jìn)行優(yōu)化,主要涉及提高效率的技術(shù)和建立良好的繼承結(jié)構(gòu)的方法。 13. 在分析和設(shè)計(jì)階段都需要建立類圖,試說明分析類圖與設(shè)計(jì)類圖的主要區(qū)別是什么。 答:在軟件開發(fā)的不同階段都使用類圖,但這些類圖表示了不同層次的抽象。在需求分析階段,類圖是研究領(lǐng)域的概念;在設(shè)計(jì)階段,類圖重點(diǎn)描述類與類之間的接口。 由于分析類圖主要描述應(yīng)用領(lǐng)域中的概念,它們的類可以從這些概念中得出,或者說分析類

12、圖中的類是從需求中獲取的。 設(shè)計(jì)類圖描述軟件的接口部分,而不是軟件的實(shí)現(xiàn)部分。面向?qū)ο箝_發(fā)方法非常重視區(qū)別接口與實(shí)現(xiàn)之間的差異,可以用一個(gè)類型(Type)描述一個(gè)接口,這個(gè)接口可能因?yàn)閷?shí)現(xiàn)環(huán)境、運(yùn)行特性或者用戶的不同而具有多種實(shí)現(xiàn)方式。設(shè)計(jì)類圖更易于開發(fā)者之間的相互理解和交流。設(shè)計(jì)類圖通常是在分析類圖的基礎(chǔ)上進(jìn)行細(xì)化和改進(jìn)的。 14.軟件測試與其他軟件開發(fā)活動(dòng)相比具有什么樣的特點(diǎn)? 答:軟件測試的目標(biāo)在于,以最小的工作量和成本,盡可能多地發(fā)現(xiàn)軟件系統(tǒng)中存在的各種錯(cuò)誤和缺陷,以確保軟件系統(tǒng)的正確性和可靠性。其主要特點(diǎn)是: 軟件測試的開銷大。按照Boehm 的統(tǒng)計(jì),軟件測試的開銷大約占總成本的30

13、%50%。 不能進(jìn)行“窮舉”測試。只有將所有可能的情況都測試到,才有可能檢查出所有的錯(cuò)誤,但這是不可能的。 軟件測試難度大。既然不能進(jìn)行 “窮舉”測試,又要查出盡可能多的錯(cuò)誤,隨著軟件的規(guī)模和復(fù)雜度不斷增加,軟件測試工作的難度越來越大。 測試也是一種開發(fā)活動(dòng),但鑒于軟件測試的以上特點(diǎn),它比其他軟件開發(fā)活動(dòng)更加復(fù)雜、困難和重要,且無論怎樣強(qiáng)調(diào)它的重要性都不過分。 15.軟件測試通常包含哪幾個(gè)基本步驟? 答:軟件測試通常應(yīng)該對需求、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼實(shí)現(xiàn)各個(gè)階段所獲得的開發(fā)產(chǎn)品進(jìn)行測試,軟件測試應(yīng)該貫穿于整個(gè)軟件開發(fā)的全過程。 軟件測試過程按測試的先后次序可分為以下步驟進(jìn)行:單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試,最后進(jìn)行驗(yàn)收測試。 單元測試。完成每個(gè)模塊的測試,盡可能發(fā)現(xiàn)模塊內(nèi)部的錯(cuò)誤。單元測試主要采用白盒測試法。 集成測試。把已測試過的模塊按照一定順序組裝起來,構(gòu)成軟件系統(tǒng)。主要采用黑盒測試法。但對發(fā)現(xiàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論