計算機二級考試復習軟件工程基礎_第1頁
計算機二級考試復習軟件工程基礎_第2頁
計算機二級考試復習軟件工程基礎_第3頁
計算機二級考試復習軟件工程基礎_第4頁
計算機二級考試復習軟件工程基礎_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第3章 軟件工程基礎經(jīng)過對部分考生的調查以及對近年真題的總結分析,筆試部分經(jīng)??疾榈氖擒浖芷凇④浖O計的基本原理,軟件測試的目的、軟件調試的基本概念,讀者應對此部分進行重點學習。詳細重點學習知識點:1軟件的概念、軟件生命周期的概念及各階段所包含的活動2概要設計與詳細設計的概念、模塊獨立性及其度量的標準、詳細設計常用的工具3軟件測試的目的、軟件測試的4個步驟、4軟件調試的任務 3.1軟件工程基本概念考點1 軟件定義與軟件特點考試鏈接:考點1在筆試考試中,是一個經(jīng)常考查的內容,考核的幾率為70%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為識記內容,讀者應該識記軟件的定義,特點及其分類。軟

2、件指的是計算機系統(tǒng)中與硬件相互依存的另一部分,包括程序、數(shù)據(jù)和相關文檔的完整集合。程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設計語言描述的、適合計算機執(zhí)行的指令序列。數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結構。文檔是與程序的開發(fā)、維護和使用有關的圖文資料??梢?,軟件由兩部分組成:(1)機器可執(zhí)行的程序和數(shù)據(jù);(2)機器不可執(zhí)行的,與軟件開發(fā)、運行、維護、使用等有關的文檔。軟件的特點:(1)軟件是邏輯實體,而不是物理實體,具有抽象性;(2)沒有明顯的制作過程,可進行大量的復制;(3)使用期間不存在磨損、老化問題;(4)軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性;(5)軟件復雜性高,成本昂貴;(6)軟件開

3、發(fā)涉及諸多社會因素。根據(jù)應用目標的不同,軟件可分應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。 小提示:應用軟件是為解決特定領域的應用而開發(fā)的軟件;系統(tǒng)軟件是計算機管理自身資源,提高計算機使用效率并為計算機用戶提供各種服務的軟件;支撐軟件是介于兩者之間,協(xié)助用戶開發(fā)軟件的工具性軟件。考點2 軟件工程過程與軟件生命周期考試鏈接:考點2在筆試考試中,在筆試考試中出現(xiàn)的幾率為30%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為識記內容,讀者應該識記軟件生命周期 的定義,主要活動階段及其任務。軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。一般包括可行性分析研究與需求分析、設計、實

4、現(xiàn)、測試、交付使用以及維護等活動,如圖31所示。圖31軟件生命周期還可以將軟件生命周期分為如上圖所示的軟件定義、軟件開發(fā)和軟件運行維護3個階段。生命周期的主要活動階段是:可行性研究與計劃制定、需求分析、軟件設計、軟件實施、軟件測試及運行與維護。3.2結構化設計方法考點3 軟件設計的基本概念考試鏈接:考點3在筆試考試中,是一個經(jīng)??疾榈膬热?,考核中幾率為70%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為重點掌握內容,讀者應該識記模塊獨立性中的耦合性和內聚性。誤區(qū)警示:在程序結構中,各模塊的內聚性越強,則耦合性越弱。軟件設計應盡量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,

5、有利于提高模塊的獨立性。1軟件設計的基礎從技術觀點上看,軟件設計包括軟件結構設計、數(shù)據(jù)設計、接口設計、過程設計。(1)結構設計定義軟件系統(tǒng)各主要部件之間的關系;(2)數(shù)據(jù)設計將分析時創(chuàng)建的模型轉化為數(shù)據(jù)結構的定義;(3)接口設計是描述軟件內部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信;(4)過程設計則是把系統(tǒng)結構部件轉換為軟件的過程性描述。從工程管理角度來看,軟件設計分兩步完成:概要設計和詳細設計。(1)概要設計將軟件需求轉化為軟件體系結構、確定系統(tǒng)級接口、全局數(shù)據(jù)結構或數(shù)據(jù)庫模式;(2)詳細設計確立每個模塊的實現(xiàn)算法和局部數(shù)據(jù)結構,用適當方法表示算法和數(shù)據(jù)結構的細節(jié)。2軟件設計的基本原理(

6、1)抽象:軟件設計中考慮模塊化解決方案時,可以定出多個抽象級別。抽象的層次從概要設計到詳細設計逐步降低。(2)模塊化:模塊是指把一個待開發(fā)的軟件分解成若干小的簡單的部分。模塊化是指解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。(3)信息隱蔽:信息隱蔽是指在一個模塊內包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。(4)模塊獨立性:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。模塊的獨立程度是評價設計好壞的重要度量標準。衡量軟件的模塊獨立性使用耦合性和內聚性兩個定性的度量標準。內聚性是信息隱蔽和局部化概念的自然擴展

7、。一個模塊的內聚性越強則該模塊的模塊獨立性越強。一個模塊與其他模塊的耦合性越強則該模塊的模塊獨立性越弱。內聚性是度量一個模塊功能強度的一個相對指標。內聚是從功能角度來衡量模塊的聯(lián)系,它描述的是模塊內的功能聯(lián)系。內聚有如下種類,它們之間的內聚度由弱到強排列:偶然內聚、邏輯內聚、時間內聚、過程內聚、通信內聚、順序內聚、功能內聚。耦合性是模塊之間互相連接的緊密程度的度量。耦合性取決于各個模塊之間接口的復雜度、調用方式以及哪些信息通過接口。耦合可以分為下列幾種,它們之間的耦合度由高到低排列:內容耦合、公共耦合、外部耦合、控制耦合、標記耦合、數(shù)據(jù)耦合、非直接耦合。在程序結構中,各模塊的內聚性越強,則耦合

8、性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。 小提示:上面僅是對耦合機制進行的一個分類??梢娨粋€模塊與其他模塊的耦合性越強則該模塊獨立性越弱。原則上講,模塊化設計總是希望模塊之間的耦合表現(xiàn)為非直接耦合方式。但是,由于問題所固有的復雜性和結構化設計的原則,非直接耦合是不存在的。考點4 詳細設計考試鏈接:考點4在筆試考試中,在筆試考試中出現(xiàn)的幾率為30%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為識記內容,讀者應該識記過程設計包括哪些常用工具。詳細設計的任務是為軟件結構圖中的每個模塊確定實現(xiàn)算法和局部數(shù)據(jù)結構,用某

9、種選定的表達表示工具算法和數(shù)據(jù)結構的細節(jié)。詳細過程設計的常用工具有:(1)圖形工具:程序流程圖,N-S,PAD,HIPO。(2)表格工具:判定表。(3)語言工具:PDL(偽碼)。程序流程圖的5種控制結構:順序型、選擇型、先判斷重復型、后判斷重復型和多分支選擇型。 方框圖中僅含5種基本的控制結構,即順序型、選擇型、多分支選擇型、WHILE重復型和UNTIL重復型。PAD圖表示5種基本控制結構,即順序型、選擇型、多分支選擇型、WHILE重復型和UNTIL重復型。過程設計語言(PDL)也稱為結構化的語言和偽碼,它是一種混合語言,采用英語的詞匯和結構化程序設計語言,類似編程語言。PDL可以由編程語言轉

10、換得到,也可以是專門為過程描述而設計的。 疑難解答:程序流程圖,N-S圖,PAD圖的控制結構的異同點是什么?相同點是三種圖都有順序結構,選擇結構和多分支選擇,并且N-S圖和PAD圖還有相同的WHILE重復型、UNTIL重復型;不同點是程序流程圖沒有WHILE重復型、UNTIL重復型而有后判斷重復型和先判斷重復型。3.3軟件測試考點5 軟件測試的目的考試鏈接:考點5在筆試考試中,是一個經(jīng)常考查的內容,在筆試考試中出現(xiàn)的幾率為70%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為理解內容,讀者應該理解測試是為了發(fā)現(xiàn)錯誤。軟件測試是在軟件投入運行前對軟件需求、設計、編碼的最后審核。其工作量、成本占總

11、工作量、總成本的40%以上,而且具有較高的組織管理和技術難度。(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;(2)一個好的測試用例是能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤的用例;(3)一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。考點6 軟件測試的實施考試鏈接:考點6在筆試考試中出現(xiàn)的幾率為30%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為識記內容,讀者應該識記軟件測試過程的4個步驟,單元測試的兩種測試方式。軟件測試過程分4個步驟,即單元測試、集成測試、驗收測試和系統(tǒng)測試。單元測試是對軟件設計的最小單位-模塊(程序單元)進行正確性檢驗測試。單元測試的技術可以采用靜態(tài)分析和動態(tài)測試。集成測試是測試和組

12、裝軟件的過程,主要目的是發(fā)現(xiàn)與接口有關的錯誤,主要依據(jù)是概要設計說明書。集成測試所設計的內容包括:軟件單元的接口測試、全局數(shù)據(jù)結構測試、邊界條件和非法輸入的測試等。集成測試時將模塊組裝成程序,通常采用兩種方式:非增量方式組裝和增量方式組裝。確認測試的任務是驗證軟件的功能和性能,以及其他特性是否滿足了需求規(guī)格說明中確定的各種需求,包括軟件配置是否完全、正確。確認測試的實施首先運用黑盒測試方法,對軟件進行有效性測試,即驗證被測軟件是否滿足需求規(guī)格說明確認的標準。系統(tǒng)測試是通過測試確認軟件,作為整個基于計算機系統(tǒng)的一個元素,與計算機硬件、外設、支撐軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素組合在一起,在實際運行

13、(使用)環(huán)境下對計算機系統(tǒng)進行一系列的集成測試和確認測試。系統(tǒng)測試的具體實施一般包括:功能測試、性能測試、操作測試、配置測試、外部接口測試、安全性測試等。3.4軟件的調試考點7 軟件調試的基本概念考試鏈接:考點7在筆試考試中,是一個經(jīng)??疾榈膬热?,在筆試考試中出現(xiàn)的幾率為70%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為重點識記內容,讀者應該識記軟件調試的概念。誤區(qū)警示:程序經(jīng)調試改錯后還應進行再測試,因為經(jīng)調試后有可能產(chǎn)生新的錯誤,而且測試是貫穿生命周期的整個過程。在對程序進行了成功的測試之后將進入程序調試(通常稱Debug,即排錯)。程序的調試任務是診斷和改正程序中的錯誤。調試主要在開

14、發(fā)階段進行。程序調試活動由兩部分組成,一是根據(jù)錯誤的跡象確定程序中錯誤的確切性質、原因和位置;二是對程序進行修改,排除這個錯誤。程序調試的基本步驟:(1)錯誤定位。從錯誤的外部表現(xiàn)形式入手,研究有關部分的程序,確定程序中出錯位置,找出錯誤的內在原因;(2)修改設計和代碼,以排除錯誤;(3)進行回歸測試,防止引進新的錯誤。調試原則可以從以下兩個方面考慮:(1)確定錯誤的性質和位置時的注意事項分析思考與錯誤征兆有關的信息;避開死胡同;只把調試工具當作輔助手段來使用;避免用試探法,最多只能把它當作最后手段。(2)修改錯誤原則在出現(xiàn)錯誤的地方,很可能有別的錯誤;修改錯誤的一個常見失誤是只修改了這個錯誤

15、的征兆或這個錯誤的表現(xiàn),而沒有修改錯誤本身;注意修正一個錯誤的同時有可能會引入新的錯誤;修改錯誤的過程將迫使人們暫時回到程序設計階段;修改源代碼程序,不要改變目標代碼。 疑難解答:軟件測試與軟件調試有何不同?軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤,而軟件調試的任務是診斷和改正程序中的錯誤。軟件測試貫穿整個軟件生命周期,調試主要在開發(fā)階段。3.5 例題詳解一、選擇題【例1】對軟件的特點,下面描述正確的是_。(考點1)A)軟件是一種物理實體B)軟件在運行使用期間不存在老化問題C)軟件開發(fā)、運行對計算機沒有依賴性,不受計算機系統(tǒng)的限制D)軟件的生產(chǎn)有一個明顯的制作過程解析:軟件在運行期間不會因為介質的

16、磨損而老化,只可能因為適應硬件環(huán)境以及需求變化進行修改而引入錯誤,導致失效率升高從而軟件退化,所以本題正確答案為B)。答案:B)【例2】以下哪項是軟件生命周期的主要活動階段?_(考點2)A)需求分析B)軟件開發(fā)C)軟件確認D)軟件演進解析:B)、C)、D)項都是軟件工程過程的基本活動,還有一個是軟件規(guī)格說明。答案:A)【例3】從技術觀點看,軟件設計包括_。(考點3)A)結構設計、數(shù)據(jù)設計、接口設計、程序設計B)結構設計、數(shù)據(jù)設計、接口設計、過程設計C)結構設計、數(shù)據(jù)設計、文檔設計、過程設計D)結構設計、數(shù)據(jù)設計、文檔設計、程序設計解析:技術角度,要進行結構、接口、數(shù)據(jù)、過程的設計。結構設計是定

17、義系統(tǒng)各部件關系,數(shù)據(jù)設計是根據(jù)分析模型轉化數(shù)據(jù)結構,接口設計是描述如何通信,過程設計是把系統(tǒng)結構部件轉化為軟件的過程性描述。答案:B)【例4】以下哪個是軟件測試的目的?_(考點5)A)證明程序沒有錯誤B)演示程序的正確性C)發(fā)現(xiàn)程序中的錯誤D)改正程序中的錯誤解析:關于測試目的的基本知識,IEEE的定義是:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求,或是弄清預期結果與實際結果之間的差別,所以正確答案是C)。答案:C)【例5】以下哪個測試要對接口測試?_。(考點6)A)單元測試B)集成測試C)驗收測試D)系統(tǒng)測試解析:檢查對測試實施各階段的了解,集成測試時

18、要進行接口測試、全局數(shù)據(jù)結構測試、邊界條件測試和非法輸入的測試等,所以正確答案是B)。答案:B)【例6】程序調試的主要任務是_。(考點7)A)檢查錯誤B)改正錯誤C)發(fā)現(xiàn)錯誤D)以上都不是解析:程序的調試任務是診斷和改正程序中的錯誤。調試主要在開發(fā)階段進行。答案:B)【例7】以下哪些不是程序調試的基本步驟?_(考點7)A)分析錯誤原因B)錯誤定位C)修改設計代碼以排除錯誤D)回歸測試,防止引入新錯誤解析:程序調試的基本步驟:(1)錯誤定位。從錯誤的外部表現(xiàn)形式入手,研究有關部分的程序,確定程序中出錯位置,找出錯誤的內在原因。(2)修改設計和代碼,以排除錯誤。(3)進行回歸測試,防止引進新的錯誤

19、。答案:A)【例8】在修改錯誤時應遵循的原則有_。(考點7)A)注意修改錯誤本身而不僅僅是錯誤的征兆和表現(xiàn)B)修改錯誤的是源代碼而不是目標代碼C)遵循在程序設計過程中的各種方法和原則D)以上3個都是解析:修改錯誤原則:(1)在出現(xiàn)錯誤的地方,很可能有別的錯誤;(2)修改錯誤的一個常見失誤是只修改了這個錯誤的征兆或這個錯誤的表現(xiàn),而沒有修改錯誤本身;(3)注意修正一個錯誤的同時有可能會引入新的錯誤;(4)修改錯誤的過程將迫使人們暫時回到程序設計階段;(5)修改源代碼程序,不要改變目標代碼。答案:D)二、填空題【例1】軟件設計是軟件工程的重要階段,是一個把軟件需求轉換為_的過程。(考點3)解析:軟

20、件設計是軟件工程的重要階段,是一個把軟件需求轉換為軟件表示的過程。其基本目標是用比較抽象概括的方式確定目標系統(tǒng)如何完成預定的任務,即軟件設計是確定系統(tǒng)的物理模型。答案:軟件表示【例2】_是指把一個待開發(fā)的軟件分解成若干小的簡單的部分。(考點3)解析:模塊化是指把一個待開發(fā)的軟件分解成若干小的簡單的部分。如高級語言中的過程、函數(shù)、子程序等。每個模塊可以完成一個特定的子功能,各個模塊可以按一定的方法組裝起來成為一個整體,從而實現(xiàn)整個系統(tǒng)的功能。答案:模塊化【例3】數(shù)據(jù)流圖采用4種符號表示_、數(shù)據(jù)源點和終點、數(shù)據(jù)流向和數(shù)據(jù)加工。(考點4)解析:數(shù)據(jù)流圖可以表達軟件系統(tǒng)的數(shù)據(jù)存儲、數(shù)據(jù)源點和終點、數(shù)據(jù)

21、流向和數(shù)據(jù)加工。其中,用箭頭表示數(shù)據(jù)流向,用圓或者橢圓表示數(shù)據(jù)加工,用雙杠表示數(shù)據(jù)存儲,用方框來表示數(shù)據(jù)源點和終點。答案:數(shù)據(jù)存儲 1.在結構化方法中,軟件功能分別屬于下列軟件開發(fā)中的()階段。答案:CA)詳細設計B)需求分析C)總體設計D)編程調試2.為了避免流程圖在描述程序邏輯時的不靈活性,提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,通常也把這種圖稱為()。答案:BA)PAD圖B)N-S圖C)結構圖D)數(shù)據(jù)流圖3.下列選項中不屬于軟件生命周期開發(fā)階段任務的是()。答案:CA)軟件測試B)概要設計C)軟件維護D)詳細設計4.信息隱蔽的概念與下述哪一種概念直接相關()。答案:BA)軟件結構定義B)模

22、塊獨立性C)模塊類型劃分D)模塊耦合度5.下列敘述中正確的是()。答案:DA)軟件測試應該由程序開發(fā)者來完成B)程序經(jīng)調試后一般不需要再測試C)軟件維護只包括對程序代碼的維護D)以上三種說法都不對6.數(shù)據(jù)流程圖(DFD圖)是()。答案:CA)軟件概要設計的工具B)軟件詳細設計的工具C)結構化方法的需求分析工具D)面向對象方法的需求分析工具7.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,由一些特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。答案:AA)控制流B)加工C)數(shù)據(jù)流D)源和潭8.下列選項中,不屬于模塊間耦合的是()。答案:CA)數(shù)據(jù)耦合B)標記耦合C)異構耦合D)公共耦

23、合9.在結構化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是()。答案:BA)可行性分析B)需求分析C)詳細設計D)程序編碼10.下面不屬于軟件工程的3個要素的是()。答案:DA)工具B)過程C)方法D)環(huán)境11.軟件生命周期中所花費用最多的階段是()。答案:DA)詳細設計B)軟件編碼C)軟件測試D)軟件維護12.軟件工程的出現(xiàn)是由于()。答案:CA)程序設計方法學的影響B(tài))軟件產(chǎn)業(yè)化的需要C)軟件危機的出現(xiàn)D)計算機的發(fā)展13.下面不屬于軟件設計原則的是()。答案:CA)抽象B)模塊化C)自底向上D)信息隱蔽14.軟件調試的目的是()。答案:BA)發(fā)現(xiàn)錯誤B)改正錯誤C)改善軟件

24、的性能D)驗證軟件的正確性15.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。答案:AA)確認測試B)集成測試C)驗證測試D)驗收測試16.下列描述中正確的是()。答案:CA)軟件工程只是解決軟件項目的管理問題B)軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題C)軟件工程的主要思想是強調在軟件開發(fā)過程中需要應用工程化原則D)軟件工程只是解決軟件開發(fā)中的技術問題17.下列關于軟件測試的描述中正確的是()。答案:CA)軟件測試的目的是證明程序是否正確B)軟件測試的目的是使程序運行結果正確C)軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤D)軟件測試的目的是使程序符合結構化原則18.軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測試數(shù)據(jù)屬于()。答案:DA)硬件資源B)通信資源C)支持軟件D)輔助資源19.下列敘述中正確的是()。答案:AA)軟件交付使用后還需要進行維護B)軟件一旦交付使用就不需要再進行維護C)軟件交付使用后其生命周期就結束D)軟件維護是指修復程序中被破壞的指令20.為了使模塊盡可能獨立,要求()。答案:BA)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強B)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量弱C)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量弱D)模塊的內聚程度要盡量低,且各模

溫馨提示

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

評論

0/150

提交評論