軟件工程參考答案

1. 什么是軟件工程?它目標和內(nèi)容是什么?
軟件工程就是用科學的知識和技術原理來定義,開發(fā),維護軟件的一門學科。
軟件工程目標:付出較低開發(fā)成本;達到要求的功能;取得較好的性能;開發(fā)的軟件易于移植;只需較低的維護費用;能按時完成開發(fā)任務,及時交付使用;開發(fā)的軟件可靠性高。 軟件工程內(nèi)容:包括開發(fā)技術和開發(fā)管理兩個方面。
2. 軟件開發(fā)中有哪幾種過程模型?哪些適用于面向?qū)ο蟮能浖_發(fā)?
軟件開發(fā)中常見的軟件過程模型有瀑布模型、原型模型、螺旋模型、噴泉模型、統(tǒng)一軟件過程等。 其中噴泉模型、統(tǒng)一軟件過程適用于面向?qū)ο蟮能浖_發(fā)。
3.好的編程風格應遵循哪些規(guī)則
節(jié)簡化 模塊化 簡單化 文檔化**
4. 簡述軟件概要設計的基本任務
設計軟件系統(tǒng)結(jié)構(gòu) 進行數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫的設計 編寫概要設計的文檔 評審**
5. 一個PDL的原型,它可以建立在任意一個通用的結(jié)構(gòu)化程序設計語言之上。其基本成分包括:子程序定義和其它那些內(nèi)容?
界面描述 數(shù)據(jù)說明 塊結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu)
6. 衡量模塊獨立性的兩個標準是什么?各表示什么含義?
內(nèi)聚和耦合。 內(nèi)聚:又稱為塊內(nèi)聯(lián)系,指模塊內(nèi)部各成分之間相互關聯(lián)的程
度,以高內(nèi)聚為設計目標。
耦合:也稱塊間聯(lián)系,模塊之間相互聯(lián)系程度的度量,聯(lián)系越緊密,耦合性越強,獨
立性越差,以低耦合為設計目標。

7. 簡述需求分析階段的基本任務。
⑴問題識別 ⑵分析與綜合,導出軟件的邏輯模型 ⑶編寫文檔
8. 單元測試有哪些內(nèi)容?
(1)模塊接口
(2)局部數(shù)據(jù)結(jié)構(gòu)
(3)重要的執(zhí)行路徑
(4)錯誤處理測試
(5)邊界條件
9. 軟件測試中按照錯誤的性質(zhì)和范圍進行分類可分為:“功能錯誤”及其它哪些錯誤?

  1. 系統(tǒng)錯誤 2) 算法錯誤 3) 數(shù)據(jù)錯誤 4) 代碼錯誤

10. 請簡述黑盒測試和白盒測試有何區(qū)別,黑盒測試有哪些常用方法?
黑盒測試和白盒測試的區(qū)別:前者基于功能,后者基于結(jié)構(gòu);
黑盒測試常用方法有:邊界值、等價類、因果圖、錯誤推測法等。

11. CMM全稱是什么?分為哪幾個級別?
. CMM全稱是軟件能力成熟度模型; 從無序到有序的進化分成5個級別,分別為: 初始級 ,可重復級 ,已定義級 ,已管理 ,優(yōu)化管理級

12. 軟件生命周期劃分為哪幾個階段?
軟件生命周期分為三個時期八個階段:軟件定義:問題定義、可行性研究;
軟件開發(fā):需求分析、概要設計、詳細設計、編碼、測試;
軟件運行:軟件維護

13. 簡述軟件工程面臨的問題。
面臨的主要問題:①軟件費用 ②軟件可靠性 ③軟件維護 ④軟件生產(chǎn)率 ⑤軟件重用

14. 簡述容錯技術的四種主要手段,并解釋。
(1)結(jié)構(gòu)冗余:包括靜態(tài)冗余、動態(tài)冗余和混合冗余。
(2)信息冗余:為檢測或糾正信息在運算或傳輸中的錯誤,須外加一部分信息。
(3)時間冗余:指重復執(zhí)行指令或程序來消除瞬時錯誤帶來的影響。
(4)冗余附加技術:指為實現(xiàn)上述冗余技術所需的資源和技術。

15. 以G.J.Myers的觀點,簡述對軟件測試的目的。
(1)為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;
(2)一個好的用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤的測試。
(3)一個成功的測試是發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤的測試。

16. 就程序設計語言的工程特性而言,對程序編碼有哪些要求?
就程序設計語言的工程特性而言,對程序編碼有如下要求:可移植性 、開發(fā)工具的可利用性 、軟件的可重用性 、可維護性
17. 模塊的內(nèi)聚性包括哪些類型?
模塊的內(nèi)聚性包括:偶然內(nèi)聚 、邏輯內(nèi)聚 、時間內(nèi)聚 、通信內(nèi)聚 、順序內(nèi)聚 、功能內(nèi)聚 。
18. 簡述結(jié)構(gòu)化程序設計方法的基本要點。
. (1)采用自頂向下,逐步求精的程序設計方法; (2)使用三種基本控制結(jié)構(gòu)構(gòu)造
程序,分別是順序,選擇和循環(huán) ; (3)采用主程序員組的組織形式。

19. 簡述文檔在軟件工程中的作用。
1)提高軟件開發(fā)過程的能見度 (2)提高開發(fā)效率 (3)作為開發(fā)人員階段工作成果和結(jié)束標志 (4)記錄開發(fā)過程的有關信息便于使用與維護; (5)提供軟件運行、維護和培訓有關資料; (6)便于用戶了解軟件功能、性能。
20. 簡述提高可維護性的方法。
. (1)建立明確的軟件質(zhì)量目標 (2)利用先進的軟件開發(fā)技術和工具 (3)建
立明確的質(zhì)量保證工作 (4)選擇可維護的程序設計語言 (5)改進程序文檔

21. 軟件工程面臨的主要問題有哪些?
. 軟件費用 、軟件可靠性 、軟件可維護 、軟件生產(chǎn)率 、軟件重
用 。

22. 軟件配置管理的作用及其主要目標是什么?
軟件配置管理用于整個軟件工程過程。 其目的是協(xié)調(diào)整個軟件的開發(fā),使得混亂減少到最小程度,使得變更所產(chǎn)生的錯誤達到最小并最有效地提高生產(chǎn)率。 它的主要目標是:標識變更、控制變更、確保變更的正確實現(xiàn)、報告有關變更。

23. 簡述結(jié)構(gòu)化分析步驟。
(1)了解當前系統(tǒng)的工作流程,獲得當前系統(tǒng)的物理模型; (2)抽象出當前系統(tǒng)的邏輯模型; (3)建立目標系統(tǒng)的邏輯模型; (4)作進一步補充和優(yōu)化。

24. 軟件工程的原則有抽象、信息隱藏、模塊化和其他那些內(nèi)容?
(1)局部化;(2)一致性; (3)完全性; (4)可驗證性

25. 常用的軟件項目的估算方法主要有哪4種?
1)自頂向下的估算方法 2)自底向上的估算方法 3)差別估算法 4)根據(jù)經(jīng)驗估算公式

26.軟件生存周期包括哪幾個活動?
. 軟件生存周期包括:可行性分析和項目開發(fā)計劃 ,需求分析 ,概要設計
,詳細設計 ,編碼 ,測試,維護 。

27. 人機界面設計過程可分為創(chuàng)建系統(tǒng)功能的外部模型;確定為完成此系統(tǒng)功能人和計算機應分別完成的任務及另外哪4個步驟?
1)考慮界面設計中的典型問題 2)借助CASE工具構(gòu)造界面原型
3)實現(xiàn)設計模型 4)評估界面質(zhì)量

28. 軟件測試過程一般可劃分為哪幾個主要階段?
單元測試 集成測試 驗收測試 系統(tǒng)測試

29. 原型法模型一般適應哪些場合?
它適合于那些不能預先確切定義需求的軟件系統(tǒng)的開發(fā) ,更適合于那些項目組
成員(包括分析員、設計員、程序員和用戶)不能很好交流或通信有困難的情況
30. 需求分析的任務是什么?
需求分析的任務是確定待開發(fā)的軟件系統(tǒng)“做什么”。 具體任務包括確定軟件系
統(tǒng)的功能需求、性能需求和運行環(huán)境約束,編制軟件需求規(guī)格說明書、軟件系統(tǒng)的驗
收測試準則和初步的用戶手冊。
31. 簡述軟件項目的成本管理。
. 是估算軟件項目的成本 ,作為立項和簽合同的依據(jù)之一 ,并在軟件開發(fā)
過程中按計劃管理經(jīng)費的使用
32. 快速原型技術的基本思想是什么?
在軟件開發(fā)的早期,快速開發(fā)一個目標軟件系統(tǒng)的原型 ,讓用戶對其進行評價
并提出修改意見 ,然后開發(fā)人員根據(jù)用戶的意見對原型進行改進
33. 程序設計語言的有哪些特點?
. 1)一致性 2)二義性 3)緊致性 4)局部性
34. 面向?qū)ο蠼5娜N模型及作用。
(1)對象模型:描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)
(2)動態(tài)模型:描述系統(tǒng)控制結(jié)構(gòu)
(3)功能模型:描述系統(tǒng)功能
35. 軟件設計的基本原理包括哪些內(nèi)容?

36. 總體設計過程除了設想供選擇的方案,選取合理的方案,推薦最佳方案還包括那些內(nèi)容?

37. 耦合性和內(nèi)聚性有幾種類型? 其耦合度、內(nèi)聚強度的順序如何?

38.軟件需求分析的有哪三個基本原則?

39. 簡述可行性研究的主要目的是什么?

40. 試說明傳統(tǒng)"瀑布模型"的主要缺陷及造成缺陷的原因。6. 衡量模塊獨立性的兩個標準是什么?各表示什么含義?

7. 簡述需求分析階段的基本任務。

8. 單元測試有哪些內(nèi)容?

9. 軟件測試中按照錯誤的性質(zhì)和范圍進行分類可分為:“功能錯誤”及其它哪些錯誤?

10. 請簡述黑盒測試和白盒測試有何區(qū)別,黑盒測試有哪些常用方法?

11. CMM全稱是什么?分為哪幾個級別?

12. 軟件生命周期劃分為哪幾個階段?

13. 簡述軟件工程面臨的問題。

14. 簡述容錯技術的四種主要手段,并解釋。

15. 以G.J.Myers的觀點,簡述對軟件測試的目的。

16. 就程序設計語言的工程特性而言,對程序編碼有哪些要求?

17. 模塊的內(nèi)聚性包括哪些類型?

18. 簡述結(jié)構(gòu)化程序設計方法的基本要點。

19. 簡述文檔在軟件工程中的作用。

20. 簡述提高可維護性的方法。

21. 軟件工程面臨的主要問題有哪些?

22. 軟件配置管理的作用及其主要目標是什么?

23. 簡述結(jié)構(gòu)化分析步驟。

24. 軟件工程的原則有抽象、信息隱藏、模塊化和其他那些內(nèi)容?

25. 常用的軟件項目的估算方法主要有哪4種?

26.軟件生存周期包括哪幾個活動?

27. 人機界面設計過程可分為創(chuàng)建系統(tǒng)功能的外部模型;確定為完成此系統(tǒng)功能人和計算機應分別完成的任務及另外哪4個步驟?

28. 軟件測試過程一般可劃分為哪幾個主要階段?

29. 原型法模型一般適應哪些場合?

30. 需求分析的任務是什么?

31. 簡述軟件項目的成本管理。

32. 快速原型技術的基本思想是什么?

33. 程序設計語言的有哪些特點?

34. 面向?qū)ο蠼5娜N模型及作用。

35. 軟件設計的基本原理包括哪些內(nèi)容?

36. 總體設計過程除了設想供選擇的方案,選取合理的方案,推薦最佳方案還包括那些內(nèi)容?

37. 耦合性和內(nèi)聚性有幾種類型? 其耦合度、內(nèi)聚強度的順序如何?

38.軟件需求分析的有哪三個基本原則?

39. 簡述可行性研究的主要目的是什么?

40. 試說明傳統(tǒng)"瀑布模型"的主要缺陷及造成缺陷的原因。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容