- 相關推薦
2015公共基礎知識復習資料(4)
第三章 軟件工程基礎
經(jīng)過對部分考生的調(diào)查以及對近年真題的總結分析,筆試部分經(jīng)常考查的是軟件生命周期、軟件設計的基本原理,軟件測試的目的、軟件調(diào)試的基本概念,讀者應對此部分進行重點學習。
詳細重點學習知識點:
1.軟件的概念、軟件生命周期的概念及各階段所包含的活動
2.概要設計與詳細設計的概念、模塊獨立性及其度量的標準、詳細設計常用的工具
3.軟件測試的目的、軟件測試的4個步驟、
4.軟件調(diào)試的任務
3.1軟件工程基本概念
考點1 軟件定義與軟件特點
考試鏈接:
考點1在筆試考試中,是一個經(jīng)?疾榈膬(nèi)容,考核的幾率為70%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為識記內(nèi)容,讀者應該識記軟件的定義,特點及其分類。
軟件指的是計算機系統(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)軟件開發(fā)涉及諸多社會因素。
根據(jù)應用目標的不同,軟件可分應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。
小提示:應用軟件是為解決特定領域的應用而開發(fā)的軟件;系統(tǒng)軟件是計算機管理自身資源,提高計算機使用效率并為計算機用戶提供各種服務的軟件;支撐軟件是介于兩者之間,協(xié)助用戶開發(fā)軟件的工具性軟件。
考點2 軟件工程過程與軟件生命周期
考試鏈接:
考點2在筆試考試中,在筆試考試中出現(xiàn)的幾率為30%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為識記內(nèi)容,讀者應該識記軟件生命周期 的定義,主要活動階段及其任務。
軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。一般包括可行性分析研究與需求分析、設計、實現(xiàn)、測試、交付使用以及維護等活動,如圖3-1所示。
圖3-1軟件生命周期
還可以將軟件生命周期分為如上圖所示的軟件定義、軟件開發(fā)和軟件運行維護3個階段。
生命周期的主要活動階段是:可行性研究與計劃制定、需求分析、軟件設計、軟件實施、軟件測試及運行與維護。
3.2結構化設計方法
考點3 軟件設計的基本概念
考試鏈接:
考點3在筆試考試中,是一個經(jīng)常考查的內(nèi)容,考核中幾率為70%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為重點掌握內(nèi)容,讀者應該識記模塊獨立性中的耦合性和內(nèi)聚性。
誤區(qū)警示:
在程序結構中,各模塊的內(nèi)聚性越強,則耦合性越弱。軟件設計應盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。
1.軟件設計的基礎
從技術觀點上看,軟件設計包括軟件結構設計、數(shù)據(jù)設計、接口設計、過程設計。
(1)結構設計定義軟件系統(tǒng)各主要部件之間的關系;
(2)數(shù)據(jù)設計將分析時創(chuàng)建的模型轉化為數(shù)據(jù)結構的定義;
(3)接口設計是描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信;
(4)過程設計則是把系統(tǒng)結構部件轉換為軟件的過程性描述。
從工程管理角度來看,軟件設計分兩步完成:概要設計和詳細設計。
(1)概要設計將軟件需求轉化為軟件體系結構、確定系統(tǒng)級接口、全局數(shù)據(jù)結構或數(shù)據(jù)庫模式;
(2)詳細設計確立每個模塊的實現(xiàn)算法和局部數(shù)據(jù)結構,用適當方法表示算法和數(shù)據(jù)結構的細節(jié)。
2.軟件設計的基本原理
(1)抽象:軟件設計中考慮模塊化解決方案時,可以定出多個抽象級別。抽象的層次從概要設計到詳細設計逐步降低。
(2)模塊化:模塊是指把一個待開發(fā)的軟件分解成若干小的簡單的部分。模塊化是指解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。
(3)信息隱蔽:信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。
(4)模塊獨立性:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。模塊的獨立程度是評價設計好壞的重要度量標準。衡量軟件的模塊獨立性使用耦合性和內(nèi)聚性兩個定性的度量標準。內(nèi)聚性是信息隱蔽和局部化概念的自然擴展。一個模塊的內(nèi)聚性越強則該模塊的模塊獨立性越強。一個模塊與其他模塊的耦合性越強則該模塊的模塊獨立性越弱。
內(nèi)聚性是度量一個模塊功能強度的一個相對指標。內(nèi)聚是從功能角度來衡量模塊的聯(lián)系,它描述的是模塊內(nèi)的功能聯(lián)系。內(nèi)聚有如下種類,它們之間的內(nèi)聚度由弱到強排列:偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚、功能內(nèi)聚。
耦合性是模塊之間互相連接的緊密程度的度量。耦合性取決于各個模塊之間接口的復雜度、調(diào)用方式以及哪些信息通過接口。耦合可以分為下列幾種,它們之間的耦合度由高到低排列:內(nèi)容耦合、公共耦合、外部耦合、控制耦合、標記耦合、數(shù)據(jù)耦合、非直接耦合。
在程序結構中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。
小提示:上面僅是對耦合機制進行的一個分類?梢娨粋模塊與其他模塊的耦合性越強則該模塊獨立性越弱。原則上講,模塊化設計總是希望模塊之間的耦合表現(xiàn)為非直接耦合方式。但是,由于問題所固有的復雜性和結構化設計的原則,非直接耦合是不存在的。
考點4 詳細設計
考試鏈接:
考點4在筆試考試中,在筆試考試中出現(xiàn)的幾率為30%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為識記內(nèi)容,讀者應該識記過程設計包括哪些常用工具。
詳細設計的任務是為軟件結構圖中的每個模塊確定實現(xiàn)算法和局部數(shù)據(jù)結構,用某種選定的表達表示工具算法和數(shù)據(jù)結構的細節(jié)。
詳細過程設計的常用工具有:
(1)圖形工具:程序流程圖,N-S,PAD,HIPO。
(2)表格工具:判定表。
(3)語言工具:PDL(偽碼)。
程序流程圖的5種控制結構:順序型、選擇型、先判斷重復型、后判斷重復型和多分支選擇型。
方框圖中僅含5種基本的控制結構,即順序型、選擇型、多分支選擇型、WHILE重復型和UNTIL重復型。
PAD圖表示5種基本控制結構,即順序型、選擇型、多分支選擇型、WHILE重復型和UNTIL重復型。
過程設計語言(PDL)也稱為結構化的語言和偽碼,它是一種混合語言,采用英語的詞匯和結構化程序設計語言,類似編程語言。
PDL可以由編程語言轉換得到,也可以是專門為過程描述而設計的。
疑難解答:程序流程圖,N-S圖,PAD圖的控制結構的異同點是什么?
相同點是三種圖都有順序結構,選擇結構和多分支選擇,并且N-S圖和PAD圖還有相同的WHILE重復型、UNTIL重復型;不同點是程序流程圖沒有WHILE重復型、UNTIL重復型而有后判斷重復型和先判斷重復型。
3.3軟件測試
考點5 軟件測試的目的
考試鏈接:
考點5在筆試考試中,是一個經(jīng)常考查的內(nèi)容,在筆試考試中出現(xiàn)的幾率為70%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為理解內(nèi)容,讀者應該理解測試是為了發(fā)現(xiàn)錯誤。
軟件測試是在軟件投入運行前對軟件需求、設計、編碼的最后審核。其工作量、成本占總工作量、總成本的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分,此考點為識記內(nèi)容,讀者應該識記軟件測試過程的4個步驟,單元測試的兩種測試方式。
軟件測試過程分4個步驟,即單元測試、集成測試、驗收測試和系統(tǒng)測試。
單元測試是對軟件設計的最小單位--模塊(程序單元)進行正確性檢驗測試。單元測試的技術可以采用靜態(tài)分析和動態(tài)測試。
集成測試是測試和組裝軟件的過程,主要目的是發(fā)現(xiàn)與接口有關的錯誤,主要依據(jù)是概要設計說明書。集成測試所設計的內(nèi)容包括:軟件單元的接口測試、全局數(shù)據(jù)結構測試、邊界條件和非法輸入的測試等。集成測試時將模塊組裝成程序,通常采用兩種方式:非增量方式組裝和增量方式組裝。
確認測試的任務是驗證軟件的功能和性能,以及其他特性是否滿足了需求規(guī)格說明中確定的各種需求,包括軟件配置是否完全、正確。確認測試的實施首先運用黑盒測試方法,對軟件進行有效性測試,即驗證被測軟件是否滿足需求規(guī)格說明確認的標準。
系統(tǒng)測試是通過測試確認軟件,作為整個基于計算機系統(tǒng)的一個元素,與計算機硬件、外設、支撐軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素組合在一起,在實際運行(使用)環(huán)境下對計算機系統(tǒng)進行一系列的集成測試和確認測試。
系統(tǒng)測試的具體實施一般包括:功能測試、性能測試、操作測試、配置測試、外部接口測試、安全性測試等。
3.4軟件的調(diào)試
考點7 軟件調(diào)試的基本概念
考試鏈接:
考點7在筆試考試中,是一個經(jīng)常考查的內(nèi)容,在筆試考試中出現(xiàn)的幾率為70%,主要是以選擇題的形式出現(xiàn),分值為2分,此考點為重點識記內(nèi)容,讀者應該識記軟件調(diào)試的概念。
誤區(qū)警示:
程序經(jīng)調(diào)試改錯后還應進行再測試,因為經(jīng)調(diào)試后有可能產(chǎn)生新的錯誤,而且測試是貫穿生命周期的整個過程。
在對程序進行了成功的測試之后將進入程序調(diào)試(通常稱Debug,即排錯)。程序的調(diào)試任務是診斷和改正程序中的錯誤。調(diào)試主要在開發(fā)階段進行。
程序調(diào)試活動由兩部分組成,一是根據(jù)錯誤的跡象確定程序中錯誤的確切性質、原因和位置;二是對程序進行修改,排除這個錯誤。程序調(diào)試的基本步驟:
(1)錯誤定位。從錯誤的外部表現(xiàn)形式入手,研究有關部分的程序,確定程序中出錯位置,找出錯誤的內(nèi)在原因;
(2)修改設計和代碼,以排除錯誤;
(3)進行回歸測試,防止引進新的錯誤。
調(diào)試原則可以從以下兩個方面考慮:
(1)確定錯誤的性質和位置時的注意事項
分析思考與錯誤征兆有關的信息;避開死胡同;只把調(diào)試工具當作輔助手段來使用;避免用試探法,最多只能把它當作最后手段。
(2)修改錯誤原則
在出現(xiàn)錯誤的地方,很可能有別的錯誤;修改錯誤的一個常見失誤是只修改了這個錯誤的征兆或這個錯誤的表現(xiàn),而沒有修改錯誤本身;注意修正一個錯誤的同時有可能會引入新的錯誤;修改錯誤的過程將迫使人們暫時回到程序設計階段;修改源代碼程序,不要改變目標代碼。
疑難解答:軟件測試與軟件調(diào)試有何不同?
軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤,而軟件調(diào)試的任務是診斷和改正程序中的錯誤。軟件測試貫穿整個軟件生命周期,調(diào)試主要在開發(fā)階段。
3.5 例題詳解
一、選擇題
【例1】對軟件的特點,下面描述正確的是_______。(考點1)
A)軟件是一種物理實體
B)軟件在運行使用期間不存在老化問題
C)軟件開發(fā)、運行對計算機沒有依賴性,不受計算機系統(tǒng)的限制
D)軟件的生產(chǎn)有一個明顯的制作過程
解析:軟件在運行期間不會因為介質的磨損而老化,只可能因為適應硬件環(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ù)、過程的設計。結構設計是定義系統(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)測試
解析:檢查對測試實施各階段的了解,集成測試時要進行接口測試、全局數(shù)據(jù)結構測試、邊界條件測試和非法輸入的測試等,所以正確答案是B)。
答案:B)
【例6】程序調(diào)試的主要任務是_______。(考點7)
A)檢查錯誤 B)改正錯誤
C)發(fā)現(xiàn)錯誤 D)以上都不是
解析:程序的調(diào)試任務是診斷和改正程序中的錯誤。調(diào)試主要在開發(fā)階段進行。
答案:B)
【例7】以下哪些不是程序調(diào)試的基本步驟?_______(考點7)
A)分析錯誤原因 B)錯誤定位
C)修改設計代碼以排除錯誤 D)回歸測試,防止引入新錯誤
解析:程序調(diào)試的基本步驟:
(1)錯誤定位。從錯誤的外部表現(xiàn)形式入手,研究有關部分的程序,確定程序中出錯位置,找出錯誤的內(nèi)在原因。
(2)修改設計和代碼,以排除錯誤。
(3)進行回歸測試,防止引進新的錯誤。
答案:A)
【例8】在修改錯誤時應遵循的原則有_______。(考點7)
A)注意修改錯誤本身而不僅僅是錯誤的征兆和表現(xiàn)
B)修改錯誤的是源代碼而不是目標代碼
C)遵循在程序設計過程中的各種方法和原則
D)以上3個都是
解析:修改錯誤原則:
(1)在出現(xiàn)錯誤的地方,很可能有別的錯誤;
(2)修改錯誤的一個常見失誤是只修改了這個錯誤的征兆或這個錯誤的表現(xiàn),而沒有修改錯誤本身;
(3)注意修正一個錯誤的同時有可能會引入新的錯誤;
(4)修改錯誤的過程將迫使人們暫時回到程序設計階段;
(5)修改源代碼程序,不要改變目標代碼。
答案:D)
二、填空題
【例1】軟件設計是軟件工程的重要階段,是一個把軟件需求轉換為_______的過程。(考點3)
解析:軟件設計是軟件工程的重要階段,是一個把軟件需求轉換為軟件表示的過程。其基本目標是用比較抽象概括的方式確定目標系統(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ù)流向和數(shù)據(jù)加工。其中,用箭頭表示數(shù)據(jù)流向,用圓或者橢圓表示數(shù)據(jù)加工,用雙杠表示數(shù)據(jù)存儲,用方框來表示數(shù)據(jù)源點和終點。
答案:數(shù)據(jù)存儲
http://www.fuchuonang.cn/【公共基礎知識復習資料4】相關文章:
2015公共基礎知識復習資料(5)09-25
2015公共基礎知識復習資料(6)09-25
計算機公共基礎知識09-03
電氣工程師公共基礎知識強化試題07-20
計算機二級公共基礎知識模擬試題07-28
2017計算機二級公共基礎知識模擬試題07-28
2017計算機二級公共基礎知識練習試題07-28