软件工程导论面试常见问题
目錄
- 1.什么是軟件生命周期?
- 2.什么是瀑布模型?軟件工程的瀑布模型有哪幾個階段?他有什么優缺點?它適合哪種用戶?
- 3.什么是模塊?區分模塊的要素是什么?
- 4.什么是模塊化設計?模塊的獨立程度可以由哪兩個定性標準來度量?
- 5.軟件工程中的三大模型是什么?
- 6.什么是模塊間的耦合度?耦合強度的衡量因素有哪些?
- 7.有哪些常用的設計模式?
- 8.CMM共有多少個等級,每個等級分別代表什么?
- 9.什么是軟件工程?
- 10.軟件生命周期劃分為哪幾個階段?
- 11.軟件工程中常見的模型有哪些?
- 12.黑盒測試和白盒測試有什么區別?
- 13.什么是軟件危機?產生的原因有哪些?
- 14.什么是軟件過程?
- 15.軟件工程為什么要測試?
- 16.IPO圖、層次圖、DFD圖的使用階段、作用、描述等。
注:部分題目答案來源于網絡
1.什么是軟件生命周期?
答:軟件生命周期(SDLC,Systems Development Life Cycle,SDLC)是軟件的產生直到報廢或停止使用的生命周期。周期內有問題定義、可行性分析、總體描述、系統設計、編碼、調試和測試、驗收與運行、維護升級到廢棄等階段。
2.什么是瀑布模型?軟件工程的瀑布模型有哪幾個階段?他有什么優缺點?它適合哪種用戶?
(1)瀑布模型是指將軟件生存周期的各項活動規定按固定順序而連接的若干階段工作,形如瀑布流水,最終得到軟件產品。其過程是將上一項活動的輸出作為該項活動的輸入,利用這一輸入實施該項活動應完成的內容,然后對當前活動的工作結果進行驗證,如果驗證通過,則將該結果作為下一項活動的輸入,并且繼續進行下一項活動,否則就返回修改。
(2)計劃階段、開發階段、運行維護階段
計劃階段包括:問題定義,可行性研究,需求分析
開發階段包括:概要設計,詳細設計,軟件實現,軟件測試
運行維護階段包括:運行維護
(3)優缺點如下:
| 1)為項目提供了按階段劃分的檢查點。2)當前一階段完成后,您只需要去關注后續階段。3)可在迭代模型中應用瀑布模型4)它提供了一個模板,這個模板使得分析、設計、編碼、測試和支持的方法可以在該模板下有一個共同的指導。 | 1)各個階段的劃分完全固定,階段之間產生大量的文檔,極大地增加了工作量。2)由于開發模型是線性的,用戶只有等到整個過程的末期才能見到開發成果,從而增加了開發風險。3)通過過多的強制完成日期和里程碑來跟蹤各個項目階段。4)瀑布模型的突出缺點是不適應用戶需求的變化。 |
(4)瀑布模型適合于項目結構比較固定、基本不變化的用戶。
3.什么是模塊?區分模塊的要素是什么?
(1)軟件工程中的模塊是指整個程序中一些相對獨立的程序單元,每個程序單元完成和實現一個相對獨立的軟件功能,通俗點就是一些功能獨立的程序段。
(2)區分模塊的要素是功能、邏輯和狀態。
4.什么是模塊化設計?模塊的獨立程度可以由哪兩個定性標準來度量?
(1)按適當的原則吧軟件劃分為一個個較小相關而又獨立的模塊稱為模塊化設計。
(2)模塊的獨立程度可以由內聚和耦合來度量。
耦合是模塊和模塊之間的,盡量追求低耦合
內聚是模塊內元素之間的,盡量追求低內聚
5.軟件工程中的三大模型是什么?
(1)軟件工程中的三個模型:瀑布模型、增量模型、噴泉模型
(2)瀑布模型:線性順序模型從系統分析開始,逐步經過各個開發階段到軟件開發完畢、交付使用止。每個階段的變換結果是下一個階段的變換的輸入,相鄰的兩個階段具有極其密切的因果關系。該模型以軟件的需求能夠完全被確定為前提,這種模型的特點是“一 瀉千里”、易“下”而幾乎不可能“上”,因此又得名“瀑布模型”。
增量模型:是把待開發的軟件系統模塊化,將每個模塊作為一個增量組件,從而分批次地分析、設計、編碼和測試這些增量組件。運用增量模型的軟件開發過程是遞增式的過程。相對于瀑布模型而言,采用增量模型進行開發,開發人員不需要一次性地把整個軟件產品提交給用戶,而是可以分批次進行提交。
噴泉模型:(fountain model)是一種以用戶需求為動力,以對象為驅動的模型,主要用于描述面向對象的軟件開發過程。該模型認為軟件開發過程自下而上周期的各階段是相互迭代和無間隙的特性。
6.什么是模塊間的耦合度?耦合強度的衡量因素有哪些?
(1)模塊間的耦合性是根據模塊的外部特征提出的,是對軟件系統結構中各模塊間相互聯系緊密程度的一種度量,也稱塊間關系。
耦合度是對于一個軟件結構內不同模塊間相互依賴程度的度量,耦合的強弱取決于模塊間接口的復雜程度,進入或訪問一個模塊的點,以及通過接口的數據。耦合性越高,模塊獨立性越弱。
(2)耦合強度的衡量因素有一下幾點:
①一模塊對另一模塊的調用方式;
②—模塊向另一模塊傳遞的數據量;
③一模塊施加到另一模塊的控制的數量;
④模塊間接口的復雜程度。
7.有哪些常用的設計模式?
(1)創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
(2)結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
(3)行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。
(4)另外兩類:并發型模式和線程池模式。
8.CMM共有多少個等級,每個等級分別代表什么?
答:CMM的英文全稱是Capability Maturity Model,即軟件能力成熟度模型,一共以下有5個等級:
(1)初始級(initial)。工作無序,項目進行過程中常放棄當初的計劃。管理無章法,缺乏健全的管理制度。開發項目成效不穩定,項目成功主要依靠項目負責人的經驗和能力,他一但離去,工作秩序面目全非。
(2)可重復級(Repeatable)。管理制度化,建立了基本的管理制度和規程,管理工作有章可循。 初步實現標準化,開發工作比較好地按標準實施。 變更依法進行,做到基線化,穩定可跟蹤,新項目的計劃和管理基于過去的實踐經驗,具有重復以前成功項目的環境和條件。
(3)已定義級(Defined)。開發過程,包括技術工作和管理工作,均已實現標準化、文檔化。建立了完善的培訓制度和專家評審制度,全部技術活動和管理活動均可控制,對項目進行中的過程、崗位和職責均有共同的理解 。
(4)已管理級(Managed)。產品和過程已建立了定量的質量目標。開發活動中的生產率和質量是可量度的。已建立過程數據庫。已實現項目產品和過程的控制。可預測過程和產品質量趨勢,如預測偏差,實現及時糾正。
(5)優化級(Optimizing)。可集中精力改進過程,采用新技術、新方法。擁有防止出現缺陷、識別薄弱環節以及加以改進的手段。可取得過程有效性的統計數據,并可據進行分析,從而得出最佳方法。
9.什么是軟件工程?
概括地說,軟件工程是指導計算機軟件開發和維護的一門工程學科。采用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考研而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發出高質量的軟件并有效地維護它,這就是軟件工程。
10.軟件生命周期劃分為哪幾個階段?
生命周期劃分為三個時期八個階段:
(1)軟件定義時期:問題定義、可行性研究
(2)軟件開發時期:需求分析、總體設計、詳細設計、編碼和單元測試、綜合測試
(3)軟件運行維護時期:運行維護
11.軟件工程中常見的模型有哪些?
見此文章
12.黑盒測試和白盒測試有什么區別?
(1)黑盒測試法
把程序看作一個黑盒子,完全不考慮程序的內部結構和處理過程。它只檢查程序功能是否能按照規格說明書的規定正常使用,程序是否能適當地接收輸入數據并產生正確的輸出信息,程序運行過程中能否保持外部信息的完整性。黑盒測試又稱為功能測試,包含等價類劃分法、邊界值法、錯誤推測法、因果圖法等。
(2)白盒測試法
是把程序看成裝在一個透明的白盒子里,測試者完全知道程序的結構和處理算法。這種方法按照程序內部的邏輯測試程序,檢測程序中的主要執行通路是否都能按預定要求正確工作。白盒測試又稱為結構測試,包含邏輯覆蓋法和基本路徑測試法。
13.什么是軟件危機?產生的原因有哪些?
軟件開發技術的進步未能滿足發展的要求。在軟件開發中遇到的問題找不到解決的辦法,問題積累起來,形態尖銳的矛盾,導致了軟件危機。
軟件危機產生的原因有:
(1)對軟件開發成本和進度的估計常常很不準確;
(2)用戶對“已完成的”軟件系統不滿意的現象經常發生;
(3)軟件產品的質量往往靠不住;
(4)軟件常常是不可維護的;
(5)軟件通常沒有適當的文檔資料;
(6)軟件成本在計算機系統總成本中所占的比例逐年上升;
(7)軟件開發生產率提高的速度,跟不上計算機應用迅速普及深入的趨勢。
14.什么是軟件過程?
答:軟件過程是指完成高質量的軟件開發過程當中的一系列操作。
15.軟件工程為什么要測試?
軟件工程需要進行測試的原因如下:
一款軟件開發出來并不能保證其穩定性與毫無漏洞,這就需要對軟件進行測試。軟件側測試的目的是找出該軟件的缺陷,暴露程序中的錯誤。
16.IPO圖、層次圖、DFD圖的使用階段、作用、描述等。
查看此文章
總結
以上是生活随笔為你收集整理的软件工程导论面试常见问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: labview
- 下一篇: 计算机应用基础教程学什么,[电脑基础知识