軟件工程常考簡答題_第1頁
軟件工程常考簡答題_第2頁
軟件工程常考簡答題_第3頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、緒論1什么是軟件工程?軟件工程和計算機科學有何區別?答:軟件工程是以計算機科學理論及其他相關學科的理論為指導,采用工程化的概念、 原理、技術和方法進行軟件的開發和維護,把經過時間證明是正確的管理措施和當前能 夠得到的最好的技術、方法相結合,以期用較少的代價獲取高質量的軟件。計算機科學 側重于理論研究,其成果可應用于軟件工程,而軟件工程則強調如何有 效的建造一個軟件系統。2、什么是軟件?答:計算機軟件 是與計算機系統操作有關的 程序、規程、規則 及任何與之有關的 文檔及數據;3、什么是軟件危機?分析其產生的原因與擺脫危機的方法,你認為現在已經擺脫軟件危機 了嗎?請說明理由。軟件危機是指在計算機軟

2、件的開發和維護過程中所遇到的一系列嚴重問題。主要是 兩個問題:(1)如何開發軟件,怎樣滿足對軟件的日益增長的需求;(2如何維護數量不斷膨脹的已有軟件;軟件危機的出現,究其原因,一方面是由軟件本身的特點引起的,如軟件越來越復 雜,軟件故障難于檢測,工作量難以估計;另一方面則是因為軟件開發和維護方法不當 所造成的,如軟件的個體化特征太強等。為了擺脫軟件危機所造成的困境,提出軟件工程的概念,其主要思路是:要把人類 長期以來從事各種工程項目所積累起來的行之有效的原理,概念,技術和方法,特別是 人類從事計算機硬件研究和開發的經驗教訓,應用到軟件的開發和維護中來。我認為我國現在還未完全擺脫軟件危機,因為隨

3、著經濟發展,各行各業對軟件人才 的需求不斷擴大,由于我國的軟件人才缺口依舊很大,造成了某些行業內軟件開發進度 難以預測,軟件開發成本難以控制, 用戶對產品功能難以滿足, 軟件產品質量無法保證, 軟件產品難以維護,軟件缺少適當的文檔資料。4、軟件產品的特性是什么?軟件是一種邏輯產品,具有無形性;軟件產品的生產主要是研制;軟件不存在磨損 和老化問題,但存在退化問題;軟件產品的生產主要是腦力勞動;軟件產品生產成本昂 貴,目前生產方式還未擺脫手工生產方式;軟件具有“復雜性”,其開發和運行常受到計算機系統的限制。5、軟件發展有幾個階段?各有何特征? 程序設計階段硬件特征:價格貴、存儲容量小、運行可靠性差

4、。軟件特征:只有程序、程序設計概念,不重視程序設計方法。 程序系統階段。硬件特征:速度、容量及工作可靠性有明顯提高,價格降低,銷售有爆炸性增長。軟件特征:程序員數量猛增,開發人員素質低。 軟件工程階段。硬件特征:向超高速、大容量、微型化及網絡化方向發展。軟件特征:開發技術有很大進步,但未獲得突破性進展,軟件價格不斷上升,未完全擺脫軟件危機。6、試簡要敘述文檔在軟件工程中的作用。在軟件工程中,文檔的作用是:(1)提高軟件開發過程的能見度;(2)記錄開發過程的有關信息便于使用與維護;(3)作為開發人員階段工作成果和結束標志;(4)提高開發效率;(5)提供軟件運行、維護和培訓有關資料;(6)便于用戶

5、了解軟件功能、性能。7、簡述一個成熟的軟件機構應具有的特點建立了機構級的軟件開發與維護過程。軟件人員對其有較好的理解。一切活動均遵循過程的要求進行,做到工作步驟有次序,且有章可循;軟件過程必要時可做改進,但 需在經過小型實驗和成本效益分析的基礎上進行;軟件產品的質量和客戶對軟件產品的滿意程度不是由開發人員,而是由負責質量保證的經理負責監控;項目進度和預算是根據以往項目取得的實踐經驗確定,因而比較符合實際情況。8、軟件生存周期中的軟件開發過程由哪幾個階段組成?各階段的任務是什么?答:以瀑布模型為例主要包括六個階段: 可行性研究,確定系統的目標與規模,分析項目的可行性 需求分析與規格說明,明確系統

6、的規格與要求 設計,包括概要設計與詳細設計 編程,用程序語音實現每個模塊的功能 測試,發現并改正錯誤運行與維護9、瀑布模型相關概念。瀑布模型的基本概念以及特點。瀑布模型的缺陷有哪些?瀑布模型規定了各項軟件工程活動,包括需求分析、規格說明、設計、編碼、測試 和維護,并規定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級而下。瀑布模型的特點 是:階段間具有順序性和依賴性;清楚區分邏輯設計和物理設計, 盡可能推遲程序的物理實現;每個階段都必須完成規定的文檔,且每階段結束前需要對 完成的文檔進行評審。缺陷:(1)完全地、精確地刻畫復雜應用問題的用戶需求是不可能的。(2)需求分析和軟件實現是不可分

7、割的。(3)用戶和開發人員都難于理解形式的、不可執行的需求規 格說明。(4)傳統的開發策略沒有為用戶參與關鍵的開發決策提供便利。(5)目標軟件的適應能力不強(6)瀑布模型并不適合于軟件項目管理10、螺旋模型相關概念。(1 )簡述螺旋模型的基本開發過程。螺旋模型哪些優點?螺旋模型的基本思想是使用原型及其他方法來盡量降低風險。可以理解為在快速原型模型的每個階段之前都增加了風險分析。基本開發過程:(1)需求定義。利用前面介紹的需求分析技術理解應用領域,獲取 初步的用戶需求,制定項目開發計劃。(2)風險分析。根據初始需求或改進意見評審可選用的方案,給出消除或減少風險的途徑。(3)工程實現。利用前一節介

8、紹的快速原型構造方法針對已知的用戶需求生成快速原型。(4)評審。將原型提交用戶使用并征詢用戶改進意見。上述過程將不斷迭代,直至給出用戶滿意的目標軟件產品。優點:(1)螺旋模型支持用戶需求的動態變化。(2)螺旋模型中,需求分析和軟件實現是互相依賴、緊密聯系的軟件開發活動。(3)原型作為形式的可執行的需求規格說明,既易于為用戶和開發人員共同理解,又可作為后續開發的基礎。(4)為用戶參與軟件開發的所有關鍵決策提供了方便。(5)有助于提高目標軟件的適應能力 (6)為項目管理人員及時調整管理決策提供了便利,從而降低了軟件開發風險。(2)為何螺旋模型主要適合開發人員和用戶為同一個組織機構成員的軟件項目的開

9、發? 因為如果開發人員和用戶屬于不同的組織機構,則一般在正式的軟件開發之前均需要簽訂合同,所有的風險分析均必須在簽訂合同之前完成。但螺旋模型需要在軟件開發的每一個階段都進行風險分析,當重要風險不能解決時,項目應該終止。由此螺旋模型可能因為風險 使得合同在完成之前就終止,從而導致法律訴訟。 故螺旋模型不適合開發人員和用戶屬于不同組織機構的情況。11、快速原型模型相關概念。(1)快速原型技術的基本思想是什么?快速原型模型有幾種?各有何特點?基本思想:花費少量代價建立一個可運行的系統,使用戶及早獲得學習的機會,最終提高軟件質量。根據原型的不同作用,有 三類原型模型:探索型原型。這種類型的原型模型是把

10、原型用于開發的需求分析階段,目的是要弄清 用戶的需求,確定所期望的特性,并探索各種方案的可行性。 它主要針對開發目標模糊, 用戶與開發著對項目都缺乏經驗的情況,通過對原型的開發來明確用戶的需求。實驗型原型。這種原型主要用于設計階段,考核實現方案是否合適,能否實現,對于 一個大型系統,若對設計方案心中沒有把握時,可通過這種原型來證實設計方案的正確 性。演化型原型。這種原型主要用于及早向用戶提交一個原型系統,該原型系統或者包含 系統的框或者包含系統的主要功能。在得到用戶的認可后,將原型系統不斷擴充演變為 最終的軟件系統,它將原型的思路擴展到軟件開發的全過程。(2 )快速開發原型的途徑有哪些?廢棄型

11、:快速建立需求規格原型;追加型:快速建立漸進原型法采用循環漸進;步驟:快速分析、構造原型、運行和評價原型、修改與改進12、比較常用軟件工程過程模型(瀑布模型,快速原型化模型,快速應用開發模型,漸增 模型,螺旋模型)的優缺點。指出各自適用的情況。瀑布模型:優點:包括強制性的分階段的方法,要求每一階段都必須提供相應的文 檔,因此開發過程便于管理和控制。瀑布模型是一種文檔驅動的模型,開發過程中產生 的需求規格說明書文檔,設計文檔,代碼文檔,以及其他文檔如數據庫手冊,用戶手冊 和操作文檔等,對于軟件使用和維護是非常必要的。缺點:該模型將本來非線性的軟件開發過程,人為地加以線性化,開發的產品只有交付使用

12、時才能和用戶見面,用戶的 反饋意見只能從需求分析開始從頭修改,加大了軟件開發的工作量。快速原型化模型:優點:能夠開發出真正滿足用戶需要的軟件。缺點:若采用原型作為最終產品,不利于軟件維護工作。快速應用開發模型:優點:能夠快速地完成整個信息系統的開發。缺點:對于大的項目,為建立適當數目的 RAD開發小組可能需要大量的人力資源;同時,RAC要求開發人員和用戶雙方在短期內對完成整個系統的開發達成協議,如果任何一方做不到的 話,使用RAD進行開發則不可避免地會失敗。漸增模型:優點:每一輪都可以向用戶分發布一個高質量的可操作的版本,用戶不需要等到最終軟件產品被開發出來就可以使用軟件的部分功能。由于軟件產

13、品不是突然一次性提交給用戶使用的,用戶可以比較容易接受,并且容易提出中肯的意見。這種方 式不要求非常大的初始資金投入。缺點:要求下一輪新增的功能應能夠無縫地集成到下一輪系統中去,可能這一點并不容易做到。如果整體結構設計不當,可能會導致整 個軟件的結構變壞。螺旋模型:優點:它強調可替換性和強約束性,使得螺旋模型支持對現有軟件的復用,并且支持始終把軟件質量看作一個目標。開發和維護被視為同樣的方式。缺點:主要適合于內部開發。只適合于規模比較大的系統的開發。它是風險驅動的,只有當項目組的成員擅長于進行風險分析時,才有理由采用螺旋模型。可行性研究1可行性研究報告的主要內容有哪些?一個可行性研究報告的主要

14、內容如下:(1)引言:說明編寫本文檔的目的;項目的名稱、背景;本文檔用到的專門術語和參考 資料。(2)可行性研究前提:說明開發項目的功能、性能和基本要求;達到的目標;各種限制 條件;可行性研究方法和決定可行性的主要因素。(3) 對現有系統的分析:說明現有系統的處理流程和數據流程;工作負荷;各項費用支 出;所需要各類專業技術人員的數量;所需要各種設備;現有系統存在什么問題。(4) 所建議系統的技術可行性分析 :所建議系統的簡要說明; 處理流程和數據流程; 與 現有的系統比較的優越性;采用所建議系統對用戶的影響;對各種設備、現有軟件、開發環境、運行環境的影響;對經費支出的影響;對技術可行性的評價。

15、(5) 所建議系統的經濟可行性分析 :說明所建議系統的各種支出,各種效益;收益投資 比;投資回收周期。(6)社會因素可行性分析:說明法律因素,對合同責任、侵犯專利權、侵犯版權等問題 的分析;說明用戶使用可行性,是否滿足用戶行政管理、工作制度、人員素質的要求。(7)其他可供選擇方案:逐一說明其他可供選擇的方案,并說明未被推薦的理由。(8) 結論意見:說明項目是否能開發; 還需要什么條件才能開發;對項目目標有什么變 動等。2、可行性研究的概念?目標?基本內容?步驟?3、成本分析方法?4、系統流程圖與數據流圖的概念與區別?需求分析1、需求分析的概念?需求收集的方式?2、數據流建模的相關概念。3、如何

16、畫分層數據流圖總的原則 是:至頂而下,逐層分解(畫分層數據流圖):比較復雜的系統不能畫在一張紙上逐層分解的畫法可以控制每一層的復雜度。頂層:將整個系統作為一個加工,描述系統邊界(輸入與輸出。)中間層:表示某個加工分解為一組子加工,其中的子加工還需進一 步分解。底層:由不再進行分解的基本加工組成。4、常用的軟件需求分析的方法有哪些?結構化分析方法(SA、面向對象分析方法(00A、功能分解法、信息建模法5、簡述需求分析工作可以分成哪四個方面?軟件需求分析有哪三個基本原則?需求分析階段分成四個方面:對問題的識別、分析與綜合、制定規格說明和評審。三個基本原則:必須能夠表達和理解問題的數據域和功能域;必

17、須按自頂向下、逐步分解的方式對問題進行分解和不斷細化;要給出系統的邏輯視圖和物理視圖。6、試舉例說明什么是功能性需求,什么是非功能性需求?為何非功能性需求往往比功能性 需求還要重要?功能性需求就是軟件要實現的功能需求分析。非功能性需求,是指軟件產品為滿足用戶業務需求而必須具有且除功能需求以外的特 性。軟件產品的非功能性需求包括系統的性能、可靠性、可用性、可維護性、有效性和可移 植性等。重要性:將非功能性需求的各項特點舉例展開即可。7、在需求分析和設計階段建立原型的好處有哪些?在需求分析和設計階段建立原型的好處有:(1)增進開發人員和用戶對系統需求的一致理解,明確軟件需求,尤其是功能含糊的 需求

18、。(2)原型提供了一種有力的學習手段,能夠使用戶盡早接觸系統。(3)原型可以用來識別或化解風險。(4)原型有的可以原封不動地成為產品,有的略加修改就可以成為最終系統的一個組 成部分,這樣有利于建成最終系統。8、IDEFO功能建模相關概念。9、IDEF0方法有什么特點?IDEF0 方法的特點是:(1)采用方框和箭頭等簡單的圖形符號描述系統的活動和數據流,描述活動所受到的 約束條件及實現機制,清楚地反映了系統的功能。(2)采用嚴格的自頂向下、逐層分解的方式建立系統功能模型。頂層確定系統范圍,采用抽象原則,然后有控制的逐步展開有關活動的細節,符合SA方法的分析策略。同時,IDEF0規定每張圖至少有

19、3個、最多有6個方框,上界6保證采用層次性描述復雜問題的可 理解性,下界3保證分解有意義。10、IDEF1X建模相關概念。11、需求規格說明的概念。概要設計1、概要設計中相關的概念。2、軟件設計階段的任務與目標是什么?任務:將分析階段獲得的需求說明轉換為計算機中可實現的系統;即:軟件體系結構的設計、用戶界面的設計、數據結構的設計、算法的設計。目標:構造一個高內聚低耦合的軟件模型。3、軟件設計的準則是什么?(1)、軟件結構的準則:頂部寬度小,中部寬度最大,底部寬度次之;在結構 頂部有較高的扇出數,在底部有較高的扇入數。(2)、模塊化準則:將系統劃分成若干模塊,每個模塊完成一個子功能,把這 些模塊

20、集中起來組成一個整體,以滿足所要求的整個系統的功能。(3)、軟件獨立性準則:開發具有功能專一,模塊之間無過多相互作用的模塊。4、模塊內聯系與模塊間聯系有哪些種類?模塊間的聯系分類法:按耦合度女口:內容耦合:一個模塊直接引用另一模塊的內部信息模塊內的聯系方法:按內聚度依次展開5、照“降低塊間聯系,提高塊內聯系”的設計總則對模塊進行修改,具體從哪些方面進行 改進?答:1)盡可能建立功能模塊;2)消除重復功能;3 )模塊的作用范圍與控制范圍, 即當作用范圍為控制范圍的子集時,才能獲得較低的塊間聯系;4)模塊的大小適當;5)模塊的扇入扇出數不宜太多。6、 衡量模塊獨立性的兩個定性標準是什么(2分)?這

21、兩個標準的定義分別是什么(2分)?在我們的軟件設計中,關于模塊獨立性我們追求的目標是什么(1分)?衡量模塊獨立性的兩個 定性標準 是內聚和耦合(2分)。耦合是指對一個軟件結構內不 同模塊彼此之間互相依賴 (連接)的緊密程度;而內聚則標志一個模塊內部各個元素彼此結 合的緊密程度。(2分)。在我們的軟件設計中,關于模塊獨立性我們追求的目標是緊密內聚松散耦合(1分)。詳細設計1、詳細設計的目標與任務。2、詳細設計的圖形描述工具,及各自的概念和優缺點。3、Jacks。n方法的概念。4、程序規格說明。5、層次圖(即軟件結構圖)和層次方框圖(即 Jakson圖)有何區別?相同:形式類似。不同:1,層次圖描

22、繪軟件的層次結構.層層次方框圖描繪的是數據結構。2, 層次圖的方框表示模塊或子模塊。層次方框圖的方框表示數據結構整體或其子集。3, 層次圖的連線表示調用關系,層次方框圖表示組成關系。層次圖主要用來描繪軟件的層次結構,矩形框代表一個模塊,矩形框之間的連線表示 模塊之間的調用關系, 常與IPO圖一起形成HIPO圖。層次方框圖主要描述系統的組成關系, 一般自用域需求分析。軟件測試1、軟件測試的概念、目的。2、軟件測試對象應包括哪些內容?軟件測試并不等于程序代碼測試,其應該貫穿于軟件定義與開發的整個期間。因此,需求分析、概要設計以及程序編碼等各階段所得的文檔,包括需求規格說明、概要設計說明、 詳細設計

23、規格說明以及源程序代碼都應成為軟件測試的對象。3、白盒測試的概念及相關技術。4、黑盒測試的概念及相關技術。5、等價分類法相關概念。(1)等價分類法的基本思想是什么?根據程序的輸入特性, 將程序的定義域劃分為有限個等價區段一“等價類”,從等價類中選擇出的用例具有“代表性”,即測試某個等價類的代表值就等價于對這一類其它值的測 試。如果某個等價類的一個輸入數據(代表值)測試中查出了錯誤,也即是該等價類中的其它值也會查出同樣的錯誤。(2) 等價類劃分方法中,劃分好等價類后設計測試用例的步驟是什么?1) 為每個等價類編號;2)使一個測試用例盡可能覆蓋多個有效等價類;3)特別要注意:一個測試用例只能覆蓋一

24、個無效等價類;6、軟件測試為何需要盡早和不斷地進行?軟件測試不應僅僅作為一個獨立的軟件開發階段,而應貫穿到軟件開發的各個階段中。通過各階段的評審,在早期把錯誤解決,以減少錯誤放大效應, 這樣不僅可以提高軟件質量, 而且也是降低軟件成本的一個重要措施。由此,軟件測試應該盡早和不斷地進行。7、一般,驅動模塊比樁模塊容易設計,為什么?因為驅動模塊是模擬主程序或者調用模塊的功能,處于被測試模塊的上層,所以驅動模塊只需要模擬向被測模塊傳遞數據,接收、打印從被測模塊返回的數據的功能,較容易實現。而樁模塊用于模擬那些由被測模塊所調用的下屬模塊的功能,由于下屬模塊往往不只一個, 也不只一層,由于模塊接口的復雜

25、性, 樁模塊很難模擬各下層模塊之間的調用關系,同時為了模擬下層模塊的不同功能,需要編寫多個樁模塊,而這些樁模塊所模擬的功能是否正確, 也很難進行驗證。因此,驅動模塊的設計顯然比樁模塊容易。8、什么是a測試和B測試?a測試是在開發機構的監督下, 由個別用戶在確認測試階段后期對軟件進行測試,目的是評價軟件的FLURPS(功能、局域化、可使用性、可靠性、性能和支持性),注重界面和特色。B測試是由支持軟件預發行的客戶對 FLURPS進行測試,主要目的是測試系統的可支持 性。9、漸增式與非漸增式各有何優、缺點?為什么通常采用漸增式?非漸增式是將所有的模塊一次連接起來,簡單、易行、節省機時,但測試過程難于

26、排錯,發現錯誤也很難定位,測試效率低;漸增式是將模塊一個一個的連入系統,每連入一個模塊,都要對新系統進行測試。這種組裝測試相比于非漸增式容易查出錯誤,并及時定位,有利于查出模塊接口部分的錯誤,因此測試效率高。故通常采用漸增式測試方法。10、什么是動態測試?為何靜態測試方法往往比動態測試方法效率高?動態測試是通過運行軟件來檢驗其動態行為和運行結果的正確性。動態測試是實際運行被測程序,輸入相應的測試用例,判定執行結果是否符合要求,從 而檢驗程序的正確性、可靠性和有效性。靜態測試是對被測程序進行特性分析的一些方法的總稱,這種方法的主要特性是不利用計算機運行被測試的程序, 而是采用其他手段達到檢測的目

27、的 。因而在代碼產生之前便可對 各種文檔進行測試,其效率當然高于動態測試。11、單元測試與集成測試相關概念。(1 )請簡述單元測試的主要內容?模塊接口測試、局部數據結構測試、路徑測試、錯誤處理測試、邊界測試(2) 在單元測試中,所謂單元是如何劃分的?單元測試的對象通常是軟件設計的最小邏輯單元,單元的劃分在面向過程的結構化程序中一般是函數或子過程,在面向對象的程序中可以是類或類的成員函數。(3) 如果開發時間緊迫,是否可以跳過單元測試而直接進行集成測試?不可以。因為沒有經過單元測試的模塊會遺留大量的缺陷到集成測試階段,而在集成測試階段對這些缺陷定位困難,導致后續工作展開困難,修復缺陷成本成指數級

28、增長。(4 )集成測試也叫組裝測試又叫聯合測試,為何要進行集成測試?在單元測試的基礎上,將所有模塊按照設計要求(如根據結構圖組裝成為子系統或系統,進行集成測試。 實踐表明,一些模塊雖然能夠單獨地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實現。12、如果沒有軟件規格說明或需求文檔,可以進行動態黑盒測試嗎?為什么?答:不行。因為黑盒測試是基于軟件規格說明的測試。13、軟件測試階段如何劃分?答:軟件測試的階段劃分為: 規格說明書審查;系統和程序設計審查; 單元測試;集成測試; 確認測試;系統測試;驗收測試。14、分析比較面向對象的軟件

29、測試與傳統的軟件測試的異同。解:傳統的單元測試的對象是軟件設計的最小單位一一模塊。當考慮面向對象軟件時,單元的概念發生了變化,此時最小的可測試單位是封裝的類或對象,而不再是個體的模塊。傳統單元測試主要關注模塊的算法實現和模塊接口間數據的傳遞,而面向對象的單元測試主要考察封裝在一個類中的方法和類的狀態行為。面向對象軟件沒有層次的控制結構,因此傳統的自頂向下和自底向上集成策略就不再適合,它主要有以下兩種集成策略:基于類間協作關系的橫向測試;基于類間繼承關系的縱向測試。 系統測試一般不考慮內部結構和中間結果,因此面向對象軟件系統測試與傳統的系統測試差別不大。面向對象軟件測試 的整體目標和傳統軟件測試

30、的目標是一致的,即以最小的工作量發現盡可能多的錯誤,但是面向對象測試的策略和戰術有很大不同。 測試的視角擴大到包括復 審分析和設計模型,此外,測試的焦點從過程構件 (模塊)移向了類。軟件維護1、軟件維護的概念、目的、維護類型。2、軟件維護衍生的一些相關技術。3、為什么要進行軟件維護?軟件維護是指軟件系統交付使用以后,為了改正錯誤或滿足新的需求而修改軟件的過程。一個中等規模的軟件, 如果其開發過程需要一年時間,則它投入使用后,其運行的時間可能持續五到十年。在這個維護階段,人們不僅需要著手解決開發階段尚未解決的問題,同時, 還需解決維護過程本身產生的問題。維護階段的的時間大約占整個軟件生命周期的6

31、7%因此,我們應充分認識到軟件維護的重要性。4、怎樣防止維護的副作用?修改代碼所產生的副作用 一般可以在回歸測試過程進行查明和糾正;修改軟件所帶來的副作用 可以通過完善的設計文檔的加以限制; 修改文檔資料所產生的副作用 可以在軟件 系統交付使用之前,對整個軟件配置進行復審,將能大大減少。5、提高軟件可維護性的方法有哪些?(1 )建立明確的軟件質量目標與優先級。(2)使用提高軟件質量的技術與工具(如模塊化)(3)進行明確的質量保證審查(4)選擇可維護性好的程序設計語言(5)改進程序文檔(6)開發時考慮到維護軟件質量1軟件質量保證應做好以下幾方面的工作:(1)采用技術手段和工具。質量保證活動要貫徹

32、開發過程始終,必須采用技術手段和工具,尤其是使用軟件開發環境來進行軟件開發。(2)組織正式技術評審。在軟件開發的每一個階段結束時,都要組織正式的技術評審。國家標準要求單位必須采用審查、文檔評審、設計評審、審計和測試等具體手段來保證質量。(3)加強軟件測試。軟件測試是質量保證的重要手段,因為測試可發現軟件中大多數潛在錯誤。(4)推行軟件工程規范(標準)。用戶可以自己制定軟件工程規范(標準),但標準一旦確認就應貫徹執行。(5)對軟件的變更進行控制。軟件的修改和變更常常會引起潛伏的錯誤,因此必須嚴格控制軟件的修改和變更。(6)對軟件質量進行度量。即對軟件質量進行跟蹤,及時記錄和報告軟件質量情況。2、

33、什么是軟件配置管理?軟件配置管理和軟件維護有何不同?軟件配置管理是在軟件生命周期內管理變化的一組活動,用來:標識變化、控制變化、確保適當地實現了變化、向相關人員報告變化。軟件配置管理和軟件維護 的區別是:軟件配置管理是一組追蹤和控制活動,在軟件項目啟動時就開始,并一直持續到軟件被淘汰后才終止;軟件維護是一組軟件工程活動,發生于 軟件交付給用戶并投入運行之后。面向對象方法和結構化方法1結構化程序設計的優點是什么?如何在編碼中使用這種方法?答:易于閱讀,易于驗證。程序設計自頂向下,逐步求精2、SP法的自頂向下,逐步求精方法的優點有哪些?答:此法符合人們解決復雜問題的普遍規律,可提高軟件開發的成功率

34、和生產率;而且用先全局后局部、先整體后細節、先抽象后具體的逐步求精過程,開發出來的程序具有清晰的層次結構,因此程序容易閱讀和理解,這樣,程序自頂向下,逐步細化,分解成一個樹型結構。因此,在同一層次的節點上做細化工作,相互之間沒有聯系,它們之間的細化工作相互獨立;任何一步發生錯誤,一般只影響它下層的節點,同一層其他節點不受影響; 在以后的測試中,也可以先獨立地一個節點一個節點的做,最后再集成。這樣,程序清晰和模塊化,使得在修改和重新設計一個軟件時,可復用的代碼量最大。3、 簡述結構化程序設計方法的基本特點。(5分)1) .是盡可能少用goto語句的程序設計方法;2) .每個代碼塊都單入單出;3)

35、 .使用控制結構:順序、選擇和循環+Do_UNTIL和 Do_CASE4) .自頂向下逐步求精。4、面向對象方法學包含哪些核心概念?簡述之(1) 對象:對象是現實世界中個體或事物的抽象表示,是其屬性和相關操作的封裝。(2) 類:類表示某些對象在屬性和操作方面的共同特征。(3) 繼承:類之間的繼承關系是現實世界中遺傳關系的模擬,它表示類之間的內在聯系以及對屬性和操作的共享。(4) 聚集:現實世界普遍存在部分一整體關系。(5) 消息:消息傳遞是對象與其外部世界相互關聯的唯一途徑。5、面向對象程序設計有哪些優點?答:并發時間短,效率高,可靠性高,所開發的程序更強壯。由于面向對象編程的可重用性,可以在應用程序中大量采用成熟的類庫,從而縮短了開發時間。 程序更易于維護、更新和升級。繼承和封裝使得應用程序的修改帶來的影響更加局部化。6、面向對象方法和結構化方法有何區別和聯系?答:區別:結構化方法是一種傳統的開發方法,總的指導細想是自頂向下、逐步求精、單入口

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論