生活随笔
收集整理的這篇文章主要介紹了
软件工程复习题库(2)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
填空題:
軟件生存周期一般可分為__問題定義__、可行性研究、_需求分析_____、設計編碼、__測試________、運行與維護階段。按軟件的功能進行劃分,軟件可以劃分為???系統軟件、???支撐軟件 ???????和應用軟件。可行性研究主要集中在以下四個方面?經濟可行性、?技術可行性、法律可行性???和抉擇。用戶界面的 ??可使用性 ??是用戶界面設計最重要的也是最基本的目標。常見的軟件概要設計方法有3大類:以數據流圖為基礎構造模塊結構的_結構化設計方法,以數據結構為基礎構造模塊的__jackson方法_,以對象、類、繼承和通信為基礎的__面向對象設計方法__________。__數據流圖________和__數據字典___共同構成系統的邏輯模型。軟件測試的方法有__分析方法________和___非分析方法_______(即黑盒法)。單元測試一般以___白盒__測試為主,___黑盒______測試為輔。成本估計方法主要有__自底向上估計________、_自頂向下估計_________和算法模型估計三種類型。在信息處理和計算機領域內,一般認為軟件是 _程序____、_文檔____ 和_數據____ 。數據流圖的基本組成部分有 _數據的源點與終點____、 數據流_____、 加工_____、 數據文件_____。數據流圖和數據字典共同構成了系統的 _邏輯____模型,是需求規格說明書的主要組成部分。劃分模塊時盡量做到__高內聚、低耦合______,保持模塊的獨立性,盡量使用公共模塊。?類的實例化是_對象_______。人們常用硬件可靠性的定量度量方法來度量軟件的可靠性和可用性,常用的度量軟件可靠性的兩個指標是_成功地運行的概率_______和_平均故障時間_______。將待開發的軟件細化,分別估算每一個子任務所需要的開發工作量,然后將它們加起來,將得到軟件的總開發量。這種成本估算方法稱為_自底向上_______。如果一個模塊被 n 個模塊調用,其中直接的上級模塊的個數是 m 個( m<=n )那么該模塊的扇入數是 ____N_______ 個。結構化設計以 __數據流圖_________ 為基礎,按一定的步驟映射成軟件結構。軟件的風險分析可包括風險識別、風險預測 ??????和風險駕馭(或風險管理)等3項活動。軟件著作權登記的3種主要類型:(1)著作權登記;(2)著作權延續登記;(3)權利轉移備案登記。軟件工程管理的主要內容有:項目經費管理,軟件質量管理,項目進度管理和人員管理。面向對象分析的目的是對客觀世界的系統進行 ___建模_______________ 。軟件維護工作的生產性活動包括分析評價、修改設計和 ____編寫程序代碼_______ 等。為了使應用軟件適應計算機環境的變化而 ___修改軟件_______________ 的過程稱為適應性維護。一個進行學生成績統計的模塊其功能是先對學生的成績進行累加,然后求平均值,則該模塊的內聚性是 __________順序內聚________ 。投資回收期就是使累計的經濟效益等于 __最初的投資費用______________ 所需的時間。軟件生存周期是指一個軟件從提出開發要求開始直到 __軟件廢棄____為止的整個時期。曾被譽為“程序設計方法的革命”的??結構化???程序設計,使程序設計從主要依賴于程序員個人的自由活動變成為有章可循的一門科學。從結構化程序設計到 面向對象程序設計?,是程序設計方法的又一次飛躍。在單元測試時,需要為被測模塊設計___測試用例_______。
判斷題
在進行總體設計時應加強模塊間的聯系。( ?N ????)系統結構圖是精確表達程序結構的圖形表示法。因此,有時也可以將系統結構圖當作系統流程圖使用。( ????N ?)用黑盒法測試時,測試用例是根據程序內部邏輯設計的。( ???N ?)在程序調試時,找出錯誤的位置和性質比改正該錯誤更難。( ??Y ???)以對象、類、繼承和通信為基礎的面向對象設計方法(OOD)也是常見的軟件概要設計方法之一。( ??Y ???)如果通過軟件測試沒有發現錯誤,則說明軟件是正確的。(???N ??)快速原型模型可以有效地適應用戶需求的動態變化。( ??Y ???)模塊化,信息隱藏,抽象和逐步求精的軟件設計原則有助于得到高內聚,低耦合度的軟件產品。( ????Y ?)集成測試主要由用戶來完成。( ?N ????)軟件危機完全是由于硬件問題引起的。( ??N ???)螺旋模型是在瀑布模型和增量模型的基礎上增加了風險分析活動。(對)數據字典是對數據流圖中的數據流,加工、數據存儲、數據的源和終點進行詳細定義。(錯)
.JAVA語言編譯器是一個CASE工具。(對)。
軟件是指用程序設計語言(如PASCAL ,C,VISUAL BASIC 等)編寫的程序,軟件開發實際上就是編寫程序代碼。(錯)軟件模塊之間的耦合性越弱越好。(對)數據庫設計說明書是一個軟件配置項(對)在面向對象的軟件開發方法中,每個類都存在其相應的對象,類是對象的實例,對象是生成類的模板。(錯)過程描述語言可以用于描述軟件的系統結構。(錯)如果通過軟件測試沒有發現錯誤,則說明軟件是正確的。(錯)快速原型模型可以有效地適應用戶需求的動態變化。(對)模塊化,信息隱藏,抽象和逐步求精的軟件設計原則有助于得到高內聚,低耦合度的軟件產品。(對)集成測試主要由用戶來完成。(錯)確認測試計劃應該在可行性研究階段制定(錯)白盒測試無需考慮模塊內部的執行過程和程序結構,只要了解模塊的功能即可。(錯)軟件概要設計包括軟件系統結構設計以及數據結構和數據庫設計。(對)在可行性研究中最難決斷和最關鍵的問題是經濟可行性。( ╳???)耦合是指一個模塊內各個元素彼此結合的緊密程度。( ╳????)一筆交易、一個動作、甚至操作人員按一個按鈕都可以看做是一次事物。( ??√??)概要設計階段完成的主要文檔是概要設計說明書。( √????)過大的模塊可能是由于分解不充分造成的,即使降低模塊獨立性也必須繼續分解。( ╳?)程序設計語言中應絕對禁止使用GOTO語句。( ?╳???)類是關于對象性質的描述,由方法和數據組成。( √????)隨著軟件技術的發展,人們逐漸認識到編碼不僅要強調效率還要強調清晰。( ?√???)為保證程序的安全,必須做到程序中沒有任何錯誤存在,即容錯。( ╳????)如果把軟件開發所需的資源畫成一個金字塔,人是最基本的資源。( √????)
簡答題
軟件工程的七條基本原理是什么?
用分階段的是的生存周期計劃嚴格管理;堅持進行階段評審;嚴格實施的產品控制;采用現代程序技術;結果應能清楚地審查;開發小組的成員應該少而精;承認不斷改進軟件工程的必要性。
簡述文檔在軟件工程中的作用。
答:
(1) 提高軟件開發過程的能見度
(2) 提高開發效率
(3) 作為開發人員階段工作成果和結束標志
(4) 記錄開發過程的有關信息便于使用與維護;
(5) 提供軟件運行、維護和培訓有關資料;
(6) 便于用戶了解軟件功能、性能。
可行性研究包括哪幾方面的內容?
答:
(1)經濟可行性:是否有經濟效益,多長時間可以收回成本;
(2)技術可行性:現有技術能否實現本系統,現有技術人員能否勝任,開發系統的資源能否滿足;
(3)運行可行性:系統操作在用戶內部行得通嗎?
(4)法律可行性:新系統開發是否會侵犯他人、集體或國家利益,是否違反國家法律。
什么是模塊化?模塊設計的準則?
模塊化是按規定的原則將一個大型軟件劃分為一個個較小的、相對獨立但又相關的模塊。
模塊設計的準則:
(1) 改進軟件結構, 提高模塊獨立性:在對初步模塊進行合并、分解和移動的分析、精化過程中力求提高模塊的內聚,降低藕合。
(2) 模塊大小要適中:大約50行語句的代碼,過大的模塊應分解以提高理解性和可維護性;過小的模塊,合并到上級模塊中。
(3) 軟件結構圖的深度、寬度、扇入和扇出要適當。一般模塊的調用個數不要超過5個。
(4) 盡量降低模塊接口的復雜程度;
(5) 設計單入口、單出口的模塊。
(6) 模塊的作用域應在控制域之內。
什么是模塊獨立性?用什么度量?
答:模塊獨立性概括了把軟件劃分為模塊時要遵守的準則,也是判斷模塊構造是不是合理的標準。獨立性可以從兩個方面來度量:即模塊本身的內聚和模塊之間的耦合。
事務型數據流由哪幾部分組成?
事務型結構由至少一條接受路徑、一個事務中心與若干條動作路徑組成。
何謂軟件生存周期?其可以劃分為幾個時期?每個時期又可分為幾個階段?每個階段的主要任務是什么?
一個軟件從定義到開發、使用和維護,直到最終被棄用,要經歷一個漫長的時期,通常把軟件經歷的這個漫長的時期稱為生存周期。軟件生存期也可以分為三個時期:計劃時期、開發時期和運行時期。軟件生存周期一般可分為以下幾個階段:
問題定義:問題定義階段必須回答的關鍵問題是“要解決的問題是什么?”,正確理解用戶的真正需求。可行性研究:這個階段要回答的關鍵問題是:對于上一個階段所確定的問題“有行得通的解決辦法嗎?” ,可行性研究階段應該導出系統的高層邏輯模型(通常用數據流圖表示),準確地估計系統的成本和效益。需求分析 :需求分析階段的任務,主要是確定目標系統必須具備的功能,得出經用戶確認的系統邏輯模型。根據該系統邏輯模型,準確地回答“為了解決這個問題,目標系統必須做什么”。總體設計:也叫概要設計或初步設計。這個階段必須回答的是“概括地說,應該如何解決這個問題”。總體設計的目標是將需求分析階段定義的系統模型轉換成相應的軟件結構,以規定軟件的形態及各成分間的層次關系、界面及接口要求。詳細設計:詳細設計階段的任務是把解法具體化,也就是回答“應該怎樣具體地實現這個系統”。詳細設計亦即模塊設計。它是在算法設計和結構設計的基礎上,針對每個模塊的功能、接口和算法定義,設計模塊內部的算法過程及程序的邏輯結構,并編寫模塊設計說明。編碼:這個階段的任務,是根據詳細設計的結果,選擇一種適合的程序設計語言,把詳細設計的結果翻譯成程序的源代碼。測試:以便盡早發現程序中的錯誤和缺陷而進行的一個過程,有單元測試、集成測試、確認測試和系統測試4種。運行與維護:通過各種必要的維護措施支持軟件系統能持久地滿足用戶的需要。 ??
什么是軟件危機?軟件危機的表現是什么?其產生的原因是什么?
解:軟件發展第二階段的末期,由于計算機硬件技術的進步,計算機運行速度、容量、可靠性有顯著的提高,生產成本顯著下降,這為計算機的廣泛應用創造了條件。一些復雜的、大型的軟件開發項目提出來了,但是,軟件開發技術的進步一直未能滿足發展的需要。在軟件開發中遇到的問題找不到解決辦法,使問題積累起來,形成了尖銳的矛盾,因而導致了軟件危機。
軟件危機表現在以下四個方面:
(1)經費預算經常突破,完成時間一再拖延。由于缺乏軟件開發的經驗和軟件開發數據的積累,使得開發工作的計劃很難制定。主觀盲目制定計劃,執行起來與實際情況有很大差距,使得開發經費一再突破。由于對工作量估計不足,對開發難度估計不足,進度計劃無法按時完成,開發時間一再拖延。
(2)開發的軟件不能滿足用戶要求。開發初期對用戶的要求了解不夠明確,未能得到明確的表達。開發工作開始后,軟件人員和用戶又未能及時交換意見,使得一些問題不能及時解決,導致開發的軟件不能滿足用戶的要求,因而導致開發失敗。
(3)開發的軟件可維護性差。開發過程中沒有同意的、公認的規范,軟件開發人員按各自的風格工作,各行其是,開發過程無完整、規范的文檔,發現問題后進行雜亂無章的修改。程序結構不好,運行時發現錯誤也很難修改,導致維護性差。
(4)開發的軟件可靠性差。由于在開發過程中,沒有確保軟件質量的體系和措施,在軟件測試時,又沒有嚴格的、充分的、完全的測試,提交給用戶的軟件質量差,在運行中暴露出大量的問題。
造成軟件危機的原因是:
(1)軟件的規模越來越大,結構越來越復雜。(2)軟件開發管理困難而復雜。(3)軟件開發費用不斷增加。(4)軟件開發技術落后。(5)生產方式落后。6)開發工具落后,生產率提高緩慢。
簡述CMM(軟件能力成熟度模型?Capability Maturity Model)5個等級的含義
第一級 基本集 軟件工程是混亂無序的,對工程幾乎沒有定義,成功依靠的是個人的才能和經驗,管理方式屬于反應式
第二級 重復級 ?建立了基本的項目管理來跟蹤進度。費用和功能特征,制定了必要的項目管理,能夠利用以前類似的項目應用取得成功
第三級 確定級 ?已經將軟件管理和過程文檔化,標準化,同時綜合成該組織的標準軟件過程,所有的軟件開發都使用該標準軟件
第四級 管理級 ?收集軟件過程和產品質量的詳細度量,對軟件過程和產品質量有定量的理解和控制。
第五級 優化級 ?軟件過程的量化反饋和新的思想和技術促進過程的不斷改進
需求工程的起始階段,需求工程師的主要工作是?
答:需求工程的起始階段,工程師的主要工作為:
1)建立基本的問題需求(2分)
2)定義最重要的項目約束以及陳述主要的特征和功能(2分)
3)與共利益的各方建立基本的諒解(2分)
繪圖題:
醫院病房監護系統(請畫出頂層數據流圖):
經過初步的需求分析,得到系統功能要求:
1)監視病員的病癥(血壓、體溫、脈搏等)。
2)定時更新病歷。
3)病員出現異常情況時報警。
4)隨機地產生某一病員的病情報告。
教務管理系統(請畫出頂層數據流圖):
??????某校準備開發一個學生成績管理系統。 在該系統中,教務人員錄入學生信息、課程 信息和成績信息,學生可以隨時查詢自己所 選課程的成績。由于學生成績屬于敏感信息,系統必須提供必要的安全措施以防非法存取
總結
以上是生活随笔為你收集整理的软件工程复习题库(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。