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