軟件工程的基本概念_第1頁(yè)
軟件工程的基本概念_第2頁(yè)
軟件工程的基本概念_第3頁(yè)
軟件工程的基本概念_第4頁(yè)
軟件工程的基本概念_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 軟件工程的根本概念 軟件工程是指導(dǎo)軟件開(kāi)發(fā)、運(yùn)行、維護(hù)的系統(tǒng)方法。軟件工程是強(qiáng)調(diào)使用生存周期方法 和各種結(jié)構(gòu)分析及設(shè)計(jì)技術(shù)。這些方法和技術(shù)適用于軟件生存周期的各個(gè)階段。 所謂軟件生 存周期,是指一項(xiàng)軟件從構(gòu)思起, 從經(jīng)過(guò)開(kāi)發(fā)成功投入使用, 到停止使用或被另一項(xiàng)軟件代 替的全過(guò)程。 軟件工程采用的生存周期方法就是從時(shí)間角度對(duì)軟件開(kāi)發(fā)的維護(hù)的復(fù)雜問(wèn)題進(jìn)行分解, 把軟件生存的漫長(zhǎng)周期依次劃分為假設(shè)干階段, 每個(gè)階段有相對(duì)獨(dú)立的任務(wù),然后逐步完成每 個(gè)階段的任務(wù)。采用軟件工程方法開(kāi)發(fā)軟件時(shí), 從對(duì)任務(wù)的抽象邏輯分析開(kāi)始, 一個(gè)階段一 個(gè)階段地進(jìn)行開(kāi)發(fā)。前一個(gè)階段任務(wù)的完成是下一階段開(kāi)始進(jìn)行的前提和根

2、底, 而后一階段 任務(wù)的完成使得肖一階段提出的結(jié)果更加具體化。 每一階段的開(kāi)始和結(jié)束都有嚴(yán)格標(biāo)準(zhǔn), 文 檔中階段通信的工具,是階段銜接的紐帶。概括起來(lái),軟件工程的根本思想是: (1) 軟件開(kāi)發(fā)劃分為假設(shè)干個(gè)階段,每個(gè)階段的任務(wù)相對(duì)獨(dú)立和簡(jiǎn)單。 (2) 完成各階段任務(wù)是使用系統(tǒng)化技術(shù)和方法論。 (3) 適時(shí)地建立里程碑,從技術(shù)和管理兩方面加以嚴(yán)格審查。 (4) 在軟件的整個(gè)生存周期中編制完整的文檔。 根據(jù)中華人民共和國(guó)國(guó)家標(biāo)準(zhǔn) GB8567-88計(jì)算機(jī)軟件產(chǎn)品開(kāi)發(fā)文件編制指南?規(guī)定, 軟件生存周期可以分為六個(gè)階段:可行性研究與方案階段,需求分析階段, 設(shè)計(jì)階段、實(shí)現(xiàn) 階段、測(cè)試階段和運(yùn)行與維護(hù)階

3、段。其中: 可行性研究與方案階段,主要確定軟件的開(kāi)發(fā)目標(biāo)和總體的要求,進(jìn)行可行性分析、投 資一效益分析,制定開(kāi)發(fā)方案。 需求分析階段,重點(diǎn)對(duì)被設(shè)計(jì)的軟件進(jìn)行系統(tǒng)分析,確定對(duì)軟件的各項(xiàng)功能,性能需求 和設(shè)計(jì)約束,確定對(duì)文檔編制的要求。 設(shè)計(jì)階段,根據(jù)軟件需求提出多個(gè)設(shè)計(jì),分析每個(gè)設(shè)計(jì)能履行的功能并進(jìn)行相互比擬, 最后確定一個(gè)設(shè)計(jì), 包括軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。當(dāng)軟件比擬 復(fù)雜的情況下,設(shè)計(jì)階段可分成概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)步驟。 實(shí)現(xiàn)階段,要完成源程序的編碼、編譯(或匯編)和排錯(cuò)調(diào)試,得出無(wú)語(yǔ)法錯(cuò)誤的程序 清單。 測(cè)試階段,對(duì)提出的程序全面進(jìn)行測(cè)試,檢查審定已編制出的文檔。

4、 運(yùn)行和維護(hù)階段,軟件將在運(yùn)行使用中不斷地被維護(hù),根據(jù)新提出的需求進(jìn)行必要而且 可能的擴(kuò)充和刪改。 總之,采用軟件工程可以大提高軟件開(kāi)發(fā)的成功率, 軟件的質(zhì)量和生產(chǎn)率也會(huì)明顯提高。 一、可行性研究與方案 軟件開(kāi)發(fā)之初必須要搞清楚解決的問(wèn)題是什么,因此,進(jìn)行可行性研究與方案是軟件 開(kāi)發(fā)的第一步。 明確軟件開(kāi)發(fā)目標(biāo)、研究軟件能否實(shí)現(xiàn)、提出開(kāi)發(fā)方案就是可行性研究與方案的目的 和任務(wù)。 1.主要任務(wù) 首先確切地定義用戶要求解決的問(wèn)題,也就是問(wèn)題的性質(zhì)、軟件的目標(biāo)和總的要求,然 后是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。 具體就就是,在澄清了問(wèn)題 定義之后,要導(dǎo)出系統(tǒng)的邏輯模型, 從此出發(fā)

5、探索假設(shè)干種解決方法。 對(duì)每種解決方法都要認(rèn) 真仔細(xì)研究三個(gè)可行性: (1) 技術(shù)可行性,即答復(fù)現(xiàn)有技術(shù)條件能否完成軟件。 (2) 經(jīng)濟(jì)合理性,即答復(fù)軟件的本錢(qián)與效益相比是否合算。 (3) 實(shí)施可行性,即答復(fù)軟件在實(shí)際使用時(shí)是否可行得通。 所以說(shuō),可行性研究與方案階段要解決的關(guān)鍵在于對(duì)今后的行為提出建議; 如果問(wèn)題沒(méi) 有可行的解,立刻停止軟件開(kāi)發(fā),以免造成更大的浪費(fèi); 如果問(wèn)題值得一解,那么要推薦一個(gè) 較好的解決方案,并為今后的工作制定一個(gè)初步的方案。 2. 根本步驟 (1) 對(duì)用戶需求和現(xiàn)實(shí)環(huán)境進(jìn)行調(diào)查。分析人員要訪問(wèn)有關(guān)用戶,仔細(xì)閱讀和分析有 關(guān)材料,認(rèn)真傾聽(tīng)理解用戶口頭提出的需求, 從而

6、確定問(wèn)題的性質(zhì)、軟件的目標(biāo)和規(guī)模。在 復(fù)查確認(rèn)的根底上,確保要解決的問(wèn)題即用戶要求解決的問(wèn)題。 (2) 提出解決方法。要對(duì)現(xiàn)有系統(tǒng)進(jìn)行認(rèn)真研究,根據(jù)用戶需求導(dǎo)出新系統(tǒng)的高層邏 輯模型。一般用數(shù)據(jù)流圖和數(shù)據(jù)字典表示。然后把新系統(tǒng)的邏輯模型與用戶重新交換意見(jiàn), 復(fù)查問(wèn)題定義、工程規(guī)模和目標(biāo)。從建議的邏輯模型出發(fā), 提出假設(shè)干個(gè)較高層次的物理解法 供比擬和選擇,提出書(shū)面材料。 (3) 進(jìn)行可行性研究。根據(jù)書(shū)面材料和有關(guān)資料對(duì)欲開(kāi)發(fā)的軟件從經(jīng)濟(jì)、技術(shù)和實(shí)施 等方面進(jìn)行可行性研究,寫(xiě)出可行性研究報(bào)告。 (4) 評(píng)審。根據(jù)可行性研究結(jié)果,評(píng)審和審批決定軟件工程是否繼續(xù)。假設(shè)工程可行, 那么制訂初步的軟件開(kāi)

7、發(fā)方案。 3. 主要要求 (1) 實(shí)施可行性切不可忽略,技術(shù)上、經(jīng)濟(jì)上可行, 但實(shí)施不可行的軟件同樣行不通。 (2) 進(jìn)行本錢(qián)/效益分析要提供幾種可供選擇的解答,要有確切的數(shù)據(jù)和估算方法,避 免主觀臆斷。 (3) 軟件開(kāi)發(fā)方案中要有明確的、可檢查的標(biāo)志。要提交齊全的、可驗(yàn)證的文檔。包 括: 可行性研究報(bào)告; 初步的軟件開(kāi)發(fā)方案。 總之,可行性研究與方案的關(guān)鍵在于保證軟件開(kāi)發(fā)人員和用戶目標(biāo)一致的前 提下,提交供審查批準(zhǔn)的行動(dòng)方案。 二、需求分析 需求分析也叫要求分析,指在準(zhǔn)確地解決“軟件必須實(shí)現(xiàn)什么的問(wèn)題。 1.主要任務(wù) (1) 確定對(duì)軟件的綜合需求 包括四方面的需求: 功能需求,即要?jiǎng)澐殖鲕浖?/p>

8、必須完成的一切功能。 性能需求,包括需要的存儲(chǔ)容量、平安性、響應(yīng)時(shí)間等。 運(yùn)行需求,主要是對(duì)軟件運(yùn)行時(shí)所處環(huán)境的要求。如支持軟件運(yùn)行的系 統(tǒng)軟件是什么;采用什么數(shù)據(jù)庫(kù)管理系統(tǒng);需要什么樣的外存儲(chǔ)器和數(shù)據(jù)通信接口等。 將來(lái)可能提出的需求,即列出那些雖然眼下不屬于系統(tǒng)開(kāi)發(fā)范疇,但將 來(lái)可能會(huì)提出來(lái)的需求,以便在設(shè)計(jì)過(guò)程中考慮將來(lái)的擴(kuò)充和修改。 (2) 分析軟件的數(shù)據(jù)需求 任何一個(gè)軟件本質(zhì)上都是信息處理系統(tǒng), 軟件必須處理的信息和軟件應(yīng)該產(chǎn)生的信息在 很大程度上決定著軟件的面貌, 對(duì)軟件設(shè)計(jì)影響深遠(yuǎn)。 因此,分析軟件的數(shù)據(jù)需求就成為需 求分析階段的重要任務(wù)之一。 軟件中的數(shù)據(jù)分析要建立在對(duì)軟件功能理

9、解的根底上,借助圖形工具進(jìn)行。 對(duì)于要長(zhǎng)期保存的數(shù)據(jù)分析,一般要分四個(gè)階段進(jìn)行: 對(duì)數(shù)據(jù)元素進(jìn)行分組并且標(biāo)準(zhǔn)化,即把軟件將要處理的數(shù)據(jù)元素分組歸 并成假設(shè)干個(gè)實(shí)體, 建立起標(biāo)準(zhǔn)化的關(guān)系。 畫(huà)出實(shí)體關(guān)系圖,來(lái)描述不同實(shí)體之間的關(guān)系。 事務(wù)分析,包括劃分事務(wù)的入口點(diǎn),確定為了滿足事務(wù)的數(shù)據(jù)需求所需 要的實(shí)體聯(lián)系數(shù)目、實(shí)體間的事務(wù)流以及需要的訪問(wèn)類型等等。 建立數(shù)據(jù)模型,來(lái)說(shuō)明事務(wù)的類型、具體的通路、重要的加載和周期等。 (3) 推到出軟件的邏輯模型 一般用數(shù)據(jù)流圖、數(shù)據(jù)字典和主要的處理算法來(lái)表示這個(gè)邏輯模型。 (4) 修正軟件開(kāi)發(fā)方案 即把分析過(guò)程中得到的更深入具體的了解,在可行性研究與方案階段制

10、定的開(kāi)發(fā)方案中 修正。 (5) 快速產(chǎn)生軟件原型 即在較短的時(shí)間內(nèi)將軟件雛形呈現(xiàn)在用戶面前,使用戶可以獲得關(guān)于未來(lái)的軟件的更直 接具體的概念,從而能夠更準(zhǔn)確地提出需求。 2. 根本步驟 既然軟件本質(zhì)上是信息處理系統(tǒng), 即將輸入數(shù)據(jù)經(jīng)過(guò)處理轉(zhuǎn)變?yōu)檩敵鲂畔⒌倪^(guò)程, 而數(shù) 據(jù)又決定了需要的處理和算法,因此需求分析的著眼點(diǎn)就是數(shù)據(jù)。 (1) 調(diào)查開(kāi)發(fā)軟件的環(huán)境,進(jìn)一步明確用戶需求。首先搞清輸出數(shù)據(jù)是由哪些元素組 成的,然后沿?cái)?shù)據(jù)流圖從輸出端往輸入端回溯,得出輸入數(shù)據(jù)元素,初步明確有關(guān)算法,交 由用戶仔細(xì)進(jìn)行復(fù)查。 (2) 細(xì)化數(shù)據(jù)流圖。通過(guò)功能分解可以完成數(shù)據(jù)流圖的細(xì)化,即把數(shù)據(jù)流圖擴(kuò)展到更 低的層次

11、,之后得到一組新的數(shù)據(jù)流圖,不同的元素之間的關(guān)系變得更清楚了。 (3) 編制文檔。經(jīng)過(guò)分析確定了軟件具有的功能和性能,定義了軟件中的數(shù)據(jù)并簡(jiǎn)略 描述了處理的算法,這時(shí)首要任務(wù)是編制一份完整、 一致、精確且簡(jiǎn)明易懂的軟件需求說(shuō)明 書(shū),此外還要修正開(kāi)發(fā)方案行等。 (4) 嚴(yán)格履行審查手續(xù)。分析結(jié)果產(chǎn)生后,要成立審查小組對(duì)分析結(jié)果進(jìn)行審查,待 審查通過(guò),鑒定認(rèn)可之后,方可進(jìn)行下階段工作。 3. 主要要求 (1) 需求分析階段的工作,主要由分析員承當(dāng),用戶一方應(yīng)派負(fù)責(zé)人代表參加。而分 析員通常由研制方業(yè)務(wù)資歷較高的人擔(dān)任, 他處在用戶和設(shè)計(jì)人員之間,溝通彼此的認(rèn)識(shí)和 見(jiàn)解。經(jīng)過(guò)充分分析,確定下來(lái)的軟件

12、需求應(yīng)該在所編寫(xiě)的軟件需求說(shuō)明書(shū)中確切地闡述出 來(lái)。 (2) 需求分析要以運(yùn)行環(huán)境為根底,需求說(shuō)明書(shū)要經(jīng)過(guò)用戶確認(rèn)。 (3) 要交付需求說(shuō)明書(shū)和軟件開(kāi)發(fā)方案等文檔。 需求分析是軟件生存周期中的一個(gè)重要階段。 軟件的功能和性能、軟件需求的運(yùn)行環(huán)境 都在這階段確定下來(lái)。分析的重點(diǎn)是數(shù)據(jù)流,需求分析結(jié)果的正確性決定軟件開(kāi)發(fā)能否成功。 三、軟件設(shè)計(jì) 經(jīng)過(guò)需求分析階段的工作,建立了由數(shù)據(jù)流圖、數(shù)據(jù)字典和一組算法描述所定義的軟件 系統(tǒng)邏輯模型,軟件必須做什么已經(jīng)清楚了, 下來(lái)就要進(jìn)行設(shè)計(jì)階段解決“怎樣做的問(wèn)題 了。 1.主要任務(wù) 對(duì)于較大規(guī)模的軟件,設(shè)計(jì)階段也往往再細(xì)分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。 概要

13、設(shè) 計(jì)的主要任務(wù)就是根據(jù)軟件需求說(shuō)明, 建立目標(biāo)系統(tǒng)的總體結(jié)構(gòu)和模塊間的關(guān)系, 定義各功 能模塊的接口、控制接口,設(shè)計(jì)全局?jǐn)?shù)據(jù)庫(kù) /數(shù)據(jù)結(jié)構(gòu),規(guī)定設(shè)計(jì)限制,制訂測(cè)試方案;詳 細(xì)設(shè)計(jì)的主要任務(wù)是對(duì)概要設(shè)計(jì)中產(chǎn)生的功能模塊進(jìn)行過(guò)程描述,設(shè)計(jì)功能模塊的內(nèi)部細(xì) 節(jié),包括算法和數(shù)據(jù)結(jié)構(gòu),為編寫(xiě)源代碼提供必要的說(shuō)明。對(duì)于小規(guī)模的軟件,那么要一次設(shè) 計(jì)到底。 應(yīng)該說(shuō),經(jīng)過(guò)概要設(shè)計(jì)后產(chǎn)生的程序、文件、 數(shù)據(jù)庫(kù)、處理過(guò)程和文檔等物理元素仍處 于“黑盒子狀態(tài),經(jīng)過(guò)詳細(xì)設(shè)計(jì)之后,那么得到目標(biāo)系統(tǒng)的精確描述,軟件系統(tǒng)的“藍(lán)圖 就根本呈現(xiàn)出來(lái)了。 2. 根本步驟 (1) 建立目標(biāo)系統(tǒng)的總體結(jié)構(gòu)。從軟件需求出發(fā),對(duì)于大規(guī)

14、模軟件系統(tǒng),可以分解劃 分為假設(shè)干子系統(tǒng),然后為每個(gè)子系統(tǒng)定義功能模塊及各功能模塊間的關(guān)系, 并描述各子系統(tǒng) 的接口界面;對(duì)于小規(guī)模軟件系統(tǒng), 那么可按軟件需求直接定義目標(biāo)系統(tǒng)的功能模塊及模塊間 的關(guān)系。對(duì)各功能模塊要給出功能描述,數(shù)據(jù)接口描述,外部文件及全局?jǐn)?shù)據(jù)定義。 (2) 數(shù)據(jù)庫(kù)設(shè)計(jì)。針對(duì)數(shù)據(jù)需求進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),經(jīng)歷模式設(shè)計(jì)、子模塊設(shè)計(jì)、完整 性和平安性設(shè)計(jì)、優(yōu)化等四個(gè)步驟。 (3) 模塊設(shè)計(jì)。將概要設(shè)計(jì)產(chǎn)生的構(gòu)成軟件系統(tǒng)的各個(gè)功能模塊逐步細(xì)化,形成假設(shè)干 個(gè)程序模塊(可編程模塊)。采用某種詳細(xì)設(shè)計(jì)表示方法對(duì)各個(gè)程序模塊進(jìn)行過(guò)程描述,確 定各程序模塊之間的詳細(xì)接口信息,擬定模塊測(cè)試方案。

15、 (4) 制定測(cè)試方案。在軟件設(shè)計(jì)中就考慮測(cè)試問(wèn)題,能促使提高軟件可測(cè)試性。 (5) 編制文檔并進(jìn)行審查。要編制完整的文檔,并對(duì)軟件設(shè)計(jì)結(jié)果進(jìn)行嚴(yán)格的技術(shù)審 查,審查通過(guò)后,有關(guān)人員要簽字認(rèn)可。 3. 主要要求 (1) 在設(shè)計(jì)目標(biāo)系統(tǒng)的整體結(jié)構(gòu)時(shí),應(yīng)力爭(zhēng)使其具有好的形態(tài),各功能模塊間要相對(duì) 獨(dú)立,降低模塊接口的復(fù)雜性。 (2) 模塊設(shè)計(jì)要盡可能按結(jié)構(gòu)化程序設(shè)計(jì)原那么進(jìn)行。要詳細(xì)地規(guī)定各程序模塊之間的 接口,包括參數(shù)的形式和傳送方式、上下層調(diào)用關(guān)系等,確定模塊內(nèi)的算法及數(shù)據(jù)結(jié)構(gòu)。 (3) 要交付齊全、可驗(yàn)證的文檔,包括: 概要設(shè)計(jì)說(shuō)明書(shū); 詳細(xì)設(shè)計(jì)說(shuō)明書(shū); 數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū); 模塊開(kāi)發(fā)卷宗; 測(cè)

16、試方案。 總之,軟件設(shè)計(jì)就是把軟件需求轉(zhuǎn)化為軟件的具體設(shè)計(jì)方案的過(guò)程。首先要 根據(jù)軟件需求,采用結(jié)構(gòu)化設(shè)計(jì)技術(shù),導(dǎo)出軟件模塊總體結(jié)構(gòu);其次是使用表格、 流程圖或 文字等方式給出軟件各個(gè)模塊的具體過(guò)程描述。軟件設(shè)計(jì)的結(jié)果是編程實(shí)現(xiàn)的直接依據(jù)。 四、軟件實(shí)現(xiàn) 實(shí)現(xiàn)階段亦即軟件編程或叫軟件編碼階段,是為軟件設(shè)計(jì)階段得出的每個(gè)模塊編寫(xiě)程 序。 1. 主要任務(wù) 就是將詳細(xì)設(shè)計(jì)說(shuō)明轉(zhuǎn)化為所要求的程序設(shè)計(jì)語(yǔ)言或數(shù)據(jù)庫(kù)語(yǔ)言書(shū)定的源程序。 并對(duì)編 制出的源程序進(jìn)行程序單元測(cè)試,驗(yàn)證程序模塊接口與詳細(xì)設(shè)計(jì)說(shuō)明的一致性。 2. 根本步驟 (1) 選擇程序設(shè)計(jì)語(yǔ)言。大量實(shí)踐證明,高級(jí)程序設(shè)計(jì)語(yǔ)言優(yōu)于匯編語(yǔ)言。但選擇何

17、 種高級(jí)程序設(shè)計(jì)語(yǔ)言,有三條實(shí)用標(biāo)準(zhǔn): 高級(jí)程序設(shè)計(jì)語(yǔ)言有本身的特點(diǎn),不同的語(yǔ)言適應(yīng)范圍有所不同。比方 FORTRAN語(yǔ)言更適合科學(xué)計(jì)算; VB、PB、Delph那么更適合輔助管理; C、ADA更適合于系 統(tǒng)和實(shí)時(shí)應(yīng)用;LISP更適合于組合問(wèn)題領(lǐng)域; PROLOG適合于表達(dá)知識(shí)和推理。 環(huán)境因素,如問(wèn)題性質(zhì)。要解決的問(wèn)題是科學(xué)計(jì)算呢,還是實(shí)時(shí)應(yīng)用或 輔助管理?這對(duì)程序設(shè)計(jì)語(yǔ)言選擇有一定要求。 用戶熟悉程度。 (2) 編程。使用所選定的程序設(shè)計(jì)語(yǔ)言對(duì)每個(gè)程序模塊進(jìn)行編程。盡管這 步工作十分具體,難度相對(duì)不大,但也要配齊必要的人力,以確保程序質(zhì)量。程序員要掌握 結(jié)構(gòu)化程序設(shè)計(jì)、編程等技術(shù)方法,注意

18、抓住程序設(shè)計(jì)語(yǔ)言或數(shù)據(jù)庫(kù)操縱語(yǔ)言的特點(diǎn), 精心 考慮程序的結(jié)構(gòu)和文件組織,使編制出的程序易讀、易懂、易維護(hù)、易移植,執(zhí)行效率高。 (3) 進(jìn)行程序單元測(cè)試。按照事先制定的測(cè)試方案產(chǎn)生一批測(cè)試數(shù)據(jù),按 照規(guī)定的方法進(jìn)行程序單元測(cè)試。 (4) 編寫(xiě)完整的文檔。 3.主要要求 (1) 要盡量選擇符合國(guó)家標(biāo)準(zhǔn)的、 適用的程序設(shè)計(jì)語(yǔ)言, 采用結(jié)構(gòu)化的程序設(shè)計(jì)方法。 (2) 為了提高程序的可理解性,要在源程序中參加適當(dāng)?shù)淖⒔狻?(3) 盡量采用增加程序可讀性的排版格式,即程序內(nèi)部的良好文檔資料、有規(guī)律的數(shù) 據(jù)說(shuō)明格式、簡(jiǎn)單清晰的語(yǔ)句構(gòu)造和輸入 /輸出格式等。 (4) 利用適當(dāng)?shù)能浖ぞ咻o助編程,以提高生產(chǎn)

19、率和減少程序中的錯(cuò)誤。 (5) 不僅要考慮對(duì)合法的輸入產(chǎn)生測(cè)試用例,而且要對(duì)非法的、非預(yù)期的輸入產(chǎn)生測(cè) 試用例。既要對(duì)正常的處理路徑進(jìn)行測(cè)試, 也要考慮對(duì)出錯(cuò)處理路徑進(jìn)行測(cè)試。 程序模塊的 測(cè)試用例、預(yù)期結(jié)果及測(cè)試結(jié)果應(yīng)存檔保存。 (6) 要提交“模塊開(kāi)發(fā)卷宗。 總結(jié)一下,編程是在軟件設(shè)計(jì)之后進(jìn)行的, 程序質(zhì)量主要由設(shè)計(jì)質(zhì)量決定。 但編程選用 的語(yǔ)言、編程風(fēng)格和途徑對(duì)程序質(zhì)量同樣有較大影響。 五、軟件測(cè)試 任何軟件,在開(kāi)發(fā)的各個(gè)階段,由于會(huì)遇到極其復(fù)雜的情況, 加上開(kāi)發(fā)人員的主觀認(rèn)識(shí) 總不可能那么周密而完美無(wú)缺, 因而會(huì)不可防止地出現(xiàn)錯(cuò)誤。測(cè)試階段就是要找出并排除這 些錯(cuò)誤。 1. 主要任務(wù)

20、所謂測(cè)試就是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程。 由此定義出發(fā),測(cè)試的主要任 務(wù)就是要發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤,提交高質(zhì)量的完全符合用戶需要的軟件。 有人認(rèn)為測(cè)試的目的是為了說(shuō)明程序的正確, 只要隨便找?guī)讉€(gè)數(shù)據(jù),把程序走通就行了。 這種認(rèn)識(shí)不僅不對(duì),而且是非常有害的。因?yàn)檫@可能導(dǎo)致去找那些容易在機(jī)器上通過(guò)的測(cè)試 數(shù)據(jù),致使隱藏的錯(cuò)誤不易被發(fā)現(xiàn)。另一方面,個(gè)別測(cè)試數(shù)據(jù)走得通并不意味著程序里沒(méi)有 問(wèn)題。因此,我們測(cè)試的目的是立足于找錯(cuò)誤,暴露問(wèn)題。 2. 根本步驟 與開(kāi)發(fā)過(guò)程類似,軟件測(cè)試過(guò)程也要分步驟進(jìn)行,每個(gè)步驟在邏輯上是前一個(gè)步驟的繼 續(xù)。大型軟件系統(tǒng)的測(cè)試可分為五個(gè)步驟: (1) 模塊測(cè)試。在

21、軟件設(shè)計(jì)中,每個(gè)模塊要完成一個(gè)子功能,模塊間是相對(duì)獨(dú)立的。 因此,有可能把每個(gè)模塊作為一個(gè)單獨(dú)的實(shí)體來(lái)測(cè)試, 而且通常比擬容易設(shè)計(jì)檢驗(yàn)?zāi)K正確 性的測(cè)試方案。通過(guò)模塊測(cè)試可以發(fā)現(xiàn)編程和設(shè)計(jì)中的錯(cuò)誤, 保證每個(gè)模塊作為一個(gè)單元正 確運(yùn)行。 (2) 子系統(tǒng)測(cè)試。即把經(jīng)過(guò)測(cè)試的模塊裝配在一起形成一個(gè)子系統(tǒng)來(lái)測(cè)試,重點(diǎn)測(cè)試 模塊間的協(xié)調(diào)、通信和模塊的接口。 (3) 系統(tǒng)測(cè)試。即把經(jīng)過(guò)測(cè)試的子系統(tǒng)裝配成一個(gè)完整的軟件系統(tǒng)來(lái)測(cè)試。在此過(guò)程 中不僅要發(fā)現(xiàn)編程和設(shè)計(jì)的錯(cuò)誤, 還要驗(yàn)證整個(gè)軟件系統(tǒng)是否到達(dá)了要求。 如果把模塊測(cè)試 稱為單元測(cè)試的話,那么子系統(tǒng)測(cè)試和系統(tǒng)測(cè)試那么稱為集成測(cè)試。 (4) 驗(yàn)收測(cè)試。驗(yàn)

22、收測(cè)試是把軟件系統(tǒng)作為單一的實(shí)體進(jìn)行測(cè)試,測(cè)試內(nèi)容與系統(tǒng)測(cè) 試根本類似,但是它是在用戶積極參與下進(jìn)行的, 而且主要使用實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。 這樣就 可驗(yàn)證軟件是否確實(shí)能夠滿足用戶的需要。 (5) 雙軌運(yùn)行。重大的軟件在驗(yàn)收后也不可立刻撤掉原有(手工)系統(tǒng)而投入生產(chǎn)性 運(yùn)行,必須要經(jīng)過(guò)一段時(shí)間的雙軌運(yùn)行考驗(yàn)。 這樣可以使用戶對(duì)軟件更熟悉,驗(yàn)證有關(guān)文檔, 在準(zhǔn)生產(chǎn)環(huán)境中全負(fù)荷測(cè)試并驗(yàn)證軟件,對(duì)所有文件進(jìn)行整理。 3.主要要求 (1) 軟件測(cè)試要建立獨(dú)立的測(cè)試小組進(jìn)行,并邀請(qǐng)用戶一起參加。程序員應(yīng)防止測(cè)試 其本人的程序;程序設(shè)計(jì)單位在條件允許時(shí)應(yīng)防止測(cè)試本單位編制的程序。測(cè)試的評(píng)審者, 可邀請(qǐng)測(cè)試專家

23、或其它人員。 (2) 要對(duì)軟件的輸入/輸出處理進(jìn)行測(cè)試,使其到達(dá)設(shè)計(jì)要求,軟件的容量要留有足夠 的余地。 (3) 測(cè)試前應(yīng)仔細(xì)研究有關(guān)資料,測(cè)試中由程序編制者介紹程序算法,參加者隨時(shí)提 出問(wèn)題,由編制者答復(fù)。對(duì)數(shù)據(jù)引用、數(shù)據(jù)說(shuō)明、計(jì)算、比擬、控制流程、接口、輸入輸出 等逐一檢查測(cè)試。測(cè)試過(guò)程中應(yīng)防止審查者和軟件制作者之間產(chǎn)生對(duì)立情緒。 測(cè)試用的例子 應(yīng)預(yù)先估算輸出結(jié)果,以便比擬。全部預(yù)期結(jié)果、測(cè)試結(jié)果及測(cè)試數(shù)據(jù)應(yīng)存檔保存。 (4) 要交付完整的文檔: 測(cè)試分析報(bào)告; 用戶手冊(cè)和操作手冊(cè); 工程開(kāi)發(fā)總結(jié)報(bào)告。 軟件測(cè)試是保證軟件可靠性的主要手段,此階段的任務(wù)是艱巨而繁重的。測(cè) 試方案、測(cè)試方案和測(cè)試結(jié)果直接影響軟件質(zhì)量和可維護(hù)性,要仔細(xì)記錄和保存。 六、使用和維護(hù) 使用和維護(hù)是軟件生存周期的最后一個(gè)階段, 即在軟件交付使用之后,為了改正錯(cuò)誤或 滿足新的需要而修改軟件的過(guò)程。 1. 主要任務(wù) 首先,要發(fā)現(xiàn)和修改在開(kāi)發(fā)階段產(chǎn)生、在測(cè)試階段又未發(fā)現(xiàn)的錯(cuò)誤,即改正性維護(hù); 其次,要針對(duì)運(yùn)行環(huán)境的變化修改軟件,即適應(yīng)性維護(hù)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論