似乎每家生產(chǎn)軟件開放工具或平臺的供應(yīng)商都宣稱他們的工具或平臺可以用來進行“快速應(yīng)用程序開發(fā)(RAD)”,但是卻很少用證據(jù)來支持這一說法。
什么是 RAD?
除了是一種市場稱謂之外,RAD 還可以用來描述在60到90天之內(nèi)設(shè)計和開發(fā)的應(yīng)用程序。James Martin 于上個世紀(jì)80年代中期在Dupont工作時提出了這個概念。就是在那里他和Scott Shultz 使用一個他們稱之為快速交互性生產(chǎn)原型的方法學(xué)形式化地提出了一個開發(fā)應(yīng)用程序的系統(tǒng),這種原型使用流程圖來設(shè)計程序和應(yīng)用程序。
Martin 被認(rèn)為是計算機輔助設(shè)計之父,并且他最初的成果已經(jīng)成長、增大和擴展為我們目前所知道的設(shè)計準(zhǔn)則 RAD。經(jīng)過多年的發(fā)展,RAD 已經(jīng)成長為包括很多用于定義 RAD 項目的基本原則。
首先,RAD 項目使用原型來刻畫特征。RAD 原型幫助我們快速步入設(shè)計過程并演示應(yīng)用程序的觀感,并減少為確定特性和功能而從用戶那里收集需求的時間。
RAD 的概念是,通過一組來自用戶的基本需求,開發(fā)人員通??梢栽诠ぷ魇噎h(huán)境下快速地構(gòu)建一個原型,用戶可以與這個原型交互并建議特性、功能增強等,而這個原型則作為聯(lián)合需求設(shè)計(JRD,joint requirements planning)或聯(lián)合應(yīng)用程序開發(fā)(JRD,joint application development)過程的一部分。所以任何被吹捧為 RAD 工具的開發(fā)工具或開發(fā)平臺應(yīng)該能夠方便地從一個 JRD 工作室收集用戶需求,并應(yīng)該能夠快速地創(chuàng)建能夠在 JAD 工作室中供用戶查看和修改的應(yīng)用程序原型。
一個好的 RAD 工具還應(yīng)該為開發(fā)人員提供使用基于組件的架構(gòu)來快速添加和刪除特性的工具,而添加和刪除特性要在不須要大量重新編寫代碼的情況下完成。除了在 RAD 項目的過程中更改用戶需求之外,多數(shù)項目是“有時間限制的”,即為項目完成設(shè)置了一個時間期限。在這個時間期限內(nèi)有任何不能交付的特性或功能都應(yīng)該被刪除或推遲到將來的發(fā)布中。
使用 RAD 方法創(chuàng)建應(yīng)用程序的第二個特點是可能同時有很多開發(fā)人員正在同一個應(yīng)用程序上工作,并且這些開發(fā)人員能夠在他們的團隊中扮演很多角色。例如,可能有一個開發(fā)人員已經(jīng)為正在討論的應(yīng)用程序創(chuàng)建了架構(gòu),并設(shè)計了用戶界面和后臺代碼。而同一個資源可能還在被用于開發(fā)成測試計劃,用于測試應(yīng)用程序,書寫文檔,以及最終培訓(xùn)用戶。在更正式的項目中,這些角色可以在多種資源中分配。在一個 RAD 項目中,時間和資源限制通常意味著這些(或更多)角色通常必須由單個開發(fā)人員所擔(dān)任。對于支持 RAD 這一方面的 IDE,它必須適應(yīng)不同的角色;相反,開發(fā)人員必須擔(dān)任和支持這些角色中的一個。
除了支持團隊中的不同角色外,RAD 工具還必須能夠支持使用第三方組件來交付用戶需求。在構(gòu)建與購買的爭論中,開發(fā)人員必須能夠購買他們沒有時間去構(gòu)建或不傾向于自己構(gòu)建的組件。例如,如果一個開發(fā)人員正為一個應(yīng)用程序進行編碼和界面設(shè)計兩種工作,那么他必須能夠集成那些可以減少每個任務(wù)所需時間的組件(比如代碼庫、UI 組件等)。
最后也是最重要的一點是,對使用 RAD 方法創(chuàng)建的應(yīng)用程序的最后檢驗是看這些應(yīng)用程序是否符合特定的商業(yè)用途。在使用嚴(yán)格意義上的軟件開發(fā)周期(SDLC,software development lifecycle)創(chuàng)建應(yīng)用程序的一般階段中,在這個周期中有很多可交付品(deliverable)必須交付,包括正式的訪談、詳細(xì)的設(shè)計文檔、與現(xiàn)有系統(tǒng)審的語義映射、流程文檔等。
在一個 RAD 項目中,在項目結(jié)束時首要的問題是“這個應(yīng)用程序符合它被創(chuàng)建的商業(yè)過程嗎?”如果答案是肯定的,那么項目就被認(rèn)識是成功的。出于這一目的,RAD 工具應(yīng)該提供以下能力,即能夠快速創(chuàng)建能夠解決即將到來的商業(yè)問題的應(yīng)用程序。雖然有一些 SDLC 要素包括在 RAD 項目中,但這不是首要問題。例如,對于一個真正的 RAD 工具,生成過程流圖或數(shù)據(jù)庫方案的能力并不像交付商業(yè)過程所需的功能那么重要。
對五種 RAD 工具的測試
在查看不同的開發(fā)工具和開發(fā)平臺來進行實地測試時,我們分析對比了典型的 RAD 項目元素,包括快速和簡單數(shù)據(jù)錄入窗體,以及綁定到后臺的一個簡單的數(shù)據(jù)庫表。根據(jù) RAD 方法學(xué),我們使用每個工具構(gòu)建了原型,標(biāo)注出一個工具在哪些地方提供效率,哪些地方有待提高。我們還分析了 IDE 對RAD 設(shè)計原則以及所需任務(wù)適應(yīng)性的特性和功能的支持。
Microsoft Visual Studio.NET 2003
Visual Studio.NET 2003 可以用來為 .NET Framework 以多種語言創(chuàng)建 Web 和 Windows 應(yīng)用程序,它支持的語言包括 C#、VB.NET、C++、J# 和其它支持 CLR 兼容的語言,從圖1可以看出。作為 RAD,Visual Studio 的一個最獨特的優(yōu)點就是多語言支持,這一特點使開發(fā)人員能夠構(gòu)建具有由不同語言編寫的組件的應(yīng)用程序,使組織能夠有效利用組織內(nèi)現(xiàn)有的技能。
對于快速創(chuàng)建原型,Visual Studio 的表現(xiàn)也相當(dāng)突出,因為它提供了很多工具和組件,可以用來快速地創(chuàng)建數(shù)據(jù)驅(qū)動的應(yīng)用程序。與 SQL Server 的緊密集成也是一個亮點,雖然需要訪問保存在其它平臺中的信息的開發(fā)人員可能會發(fā)現(xiàn)連接到他們的底層數(shù)據(jù)比較麻煩。
目前很多數(shù)據(jù)庫供應(yīng)商已經(jīng)提供了嵌入到Visual Studio 的工具,包括 Oracle 和 DB2,這樣就使得數(shù)據(jù)庫集成不再麻煩。除數(shù)據(jù)庫支持外,針對Visual Studio 的第三方組件的發(fā)展也很迅速,這樣就使開發(fā)人員能夠購買提供他們所需功能組件,從而節(jié)省時間,也無須再掌握構(gòu)建這種功能的技能。
將Visual Studio 看成 RAD 工具的一個主要缺點是,微軟為工作于一個項目的開發(fā)人員團隊所提供的工具不盡如人意。對于版本和源代碼控制,多數(shù)Visual Studio 開發(fā)人員會使用微軟的 Source Safe,這一工具很難跨多個地點或工作場所使用。此外,Visual Studio 不提供對其它開發(fā)人員角色(架構(gòu)師、測試員等)的很多支持,所以你需要使用微軟其它的工具或第三方工具來滿足這些角色的獨特需要。
微軟最近宣布說它將在Visual Studio 2005 的發(fā)布中捆綁很多新工具,這些工具主要提供給架構(gòu)、單元測試以及團隊開發(fā)使用,但是很顯然目前這個版本和 RAD 項目缺少這些工具,你可能沒有時間去等新版本出來。