MILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">隨著計算機應用的飛速發展,軟件的復雜程度不斷提高,源代碼的規模越來越大,軟件開發過程越來越不容易被控制。在長期的研究與實踐中,人們越來越深刻地認識到,建立簡明、準確的表示模型是把握復雜系統的關鍵。為了更好地理解軟件開發過程的特性,以及跟蹤、控制和改進軟件產品的開發過程,就必須對這一開發過程模型化。
模型是對事物的一種抽象,人們常常在正式建造實物之前,首先建立一個簡化的模型,以便更透徹地了解它的本質,抓住問題的要害。在模型中,先要剔除那些與問題無關的非本質的東西,從而使模型與真實的實體相比更加簡單明了、易于把握?偟膩碚f,使用模型可以使人們從全局上把握系統的全貌及其相關部件之間的關系,可以防止人們過早地陷入各個模塊的細節。
經過軟件領域的專家和學者不斷努力,科學、切合實際的各種軟件過程模型不斷被
推出,它們來源于實踐,是用戶的需求和軟件開發技術拭同促進的結果。目前主要有以
下模型:
·瀑布模型
·原型模型
·快速應用開發fRAD)模型
·螺旋模型
·增量模型和迭代模型
·構件組裝模型
·并發模型
瀑布模型在1 2 1小節簡單介紹過,它反映了軟件工程的基本思想。當今的軟件業,競爭非常激烈,節奏明顯加快,瀑布模型的應用越來越少。相反,由于認識到軟件開發過程
中和用戶溝通困難性,那些提高開發效率、速度以及產品后期不斷改進等完善的模型越來越受到重視,如原型模型、RAD模型和螺旋模型等。
1原型模型
需求分析是在軟件開發的最前端,也就說明它對后期的影響最大,所以我們說,軟件需求分析很重要,要想成功開發一個軟件產品,首先要做好需求分析.但另一方面,在需求分析時,往往很難做到徹底弄清楚用戶對產品的各項具體的要求。由于大多數使用或將要使用計算機產品的用戶,不是計算機方面的專業人員,甚至對計算機一點都不了解,所以對計算機能做哪些事情、不能做哪些事情、善于做哪些事情、不善于做哪些事情等都不清楚,只能給出軟件的一般性功能或目標要求,不能提出具體的要求,也不能給出規范的、科學的、詳細的輸入和輸出需求。有時候,一套軟件系統的應用,需要相應的管理體系相適應,而在新的管理體系建立之前,許多東西是幣確定的,但軟件系統耍先行,開始其試驗階段。在這些情況下,原型模型可能足最好的選擇。
原型模型的指導思想就是,在進行了基本需求分析之后,快速開發出產品的原型,然后基于這個原理,就比較容易吲客戶溝通、交流,更好地了解客戶需求,不斷修改這個原型,到了雙方認可的程度,再做詳細地分析、設計和編程,最終開發出令客戶滿意的產品。
一般步驟如下:
(1)先定義軟件的總體目標,根據已知的需求來規劃出可實現的區域。
(2)然后是“快速設計”,集中于系統的總體框架、基本功能和直觀的輸入方式和輸出
格式等。
(3)有了原型,使客戶對系統實現哪些具體功能、功能實現到什么程度有更好的理解.開發者可以邊開發邊評估,不斷細化軟件的需求,逐步調整原型使其滿足客戶的要求。這形成一個迭代的過程。
即使開始建立的原型過丁簡單或性能很差,難以使用,但為下一次建立適用的模型積累了經驗,而浪費的成本、時間有限。原型模型的優點是使用戶能夠感受到實際的系統,使開發者能夠快速地構造出系統的框架。其缺點足產品的先天性不足,因為開發者常常需要做實現上的折中,可能采用不合適的操作系統或程序設計語言,以使原型能夠盡快工作。
2 RAD模型
RAD(rap applic舭ion deveIopment)模型,即快速應用開發模犁。由于其模型構圖形似字母。rv”,故也稱v模型,是屬于線性順序一類的軟件開發模型。它通過使用基于構件的開發方法來縮短產品開發的周期,提高開發的速度。RAD模型實現的前提是能做好需求分析,并且項目范圍明確,這點正好和原型模型相反。RAD模型包含如下幾個開發階段。
(1)業務建模:、IL務活動中的信息流被模型化。通過回答以下問題來實現:什么信息驅動業務流程?生成什么信息?誰生成該信息?該信息流往何處?誰處理它?
(2)數據建模:業務建模階段定義的一部分信息流被細化t形成一系列支持該業務所需的數據對象。標識出每個對象的屬性,并定義這些對象間的關系 I
(3)處理建模:數據建模階段定義的數據對象變換成要完成一個業務功能所需的信息流。創建處理描述以便增加、修改、刪除或獲取某個數據對象。 I
(4)應用生成:RAD過程小是采用傳統的第三代程序設計語言來創建軟件,而是使用4GL技術或軟件自動化生成輔助工具,復用已有的程序構件(如果叫能的話)或是創建可復用的構件(如果需要的話)。
(5)測試及反復:因為RAD過程強調復用,許多程序構件已經是測試過的,這減少了測試時間。但新構件必須測試,所有接口也必須測到。
RAD過程模型如圖l一2所示。很顯然,加在一個RAD項H E的時間約束需要有“一
個可伸縮的范圍”。如果一個商業應用能夠被模塊化。使得其中每…個主要功能均可以在到3個月時間內完成(使用上述的方法),它就是RAD的一個候選件。每一個主要功能可由一個單獨的RAD組來實現,最后集成起來形成一個整體。
RAD模型進有一種改進型t將“編碼”從v寧型的頂點移到左側,和單元測試對應從而構成水平的對應關系。下面通過水平和垂直對應關系的比較.使用戶能更清楚、全面地了解軟件開發過程的特性。
從水平對應關系看
左邊是設計和分析,右邊是驗證和測試。右邊是對左邊結果的檢驗,即對設計和分析的結果進行測試,以確認是否滿足用戶的需求。如:
· 需求分析和功能設計對應驗收測試,說明在做需求分析、產品功能設計的同時,測試人員就可以閱讀、審查需求分析的結果,從而了解產品的設計特性、用戶的真正需求,可以準備用例(use case)。
· 當系統設計人員在做系統設計時,測試人員可以了解系統是如何實現的,基于什么樣的平臺,這樣可以事先準備系統的測試環境,包括硬件和第三方軟件的采購。因為這些準備工作,實際上要很長時間才能完成。
· 在做詳細設計時,測試人員就可以準備測試用例(kst case,以有效地發現軟件缺陷的最小測試執行單元。洋見2 5 2小節和第14章)。
· 一面編程,一面進行單元測試,是一種很有效的辦法,使我們可以盡快找出程序中的錯誤。充分的單元測試町以大幅度提高程序質量、減少成本。
文章來源于領測軟件測試網 http://www.kjueaiud.com/