專利名稱:用于對(duì)軟件開發(fā)服務(wù)征求建議的系統(tǒng)以及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于開發(fā)以及分送軟件的基于計(jì)算機(jī)的方法以及系統(tǒng),更具體來講,涉及簡化軟件的分布式開發(fā)的方法以及系統(tǒng)。
背景信息在美國以及其他地方中,計(jì)算機(jī)已經(jīng)變成人們?nèi)粘I畹囊徊糠郑@包括在工作方面以及個(gè)人努力方面。這是因?yàn)橥ㄓ糜?jì)算機(jī)可以被編程來運(yùn)行各種軟件程序,每種軟件程序均提供不同的處理以及連網(wǎng)功能。計(jì)算機(jī)程序設(shè)計(jì)員開發(fā)計(jì)算機(jī)代碼。一些公司雇用大量的計(jì)算機(jī)程序設(shè)計(jì)員基于公司的利益來開發(fā)代碼。
一個(gè)方法是雇用大量的程序員并且“在內(nèi)部”開發(fā)軟件。雖然這樣提供了對(duì)程序設(shè)計(jì)人員團(tuán)隊(duì)的重要控制,但是尋找、雇用以及維護(hù)這個(gè)團(tuán)隊(duì)的花費(fèi)上是相當(dāng)高的。此外,當(dāng)個(gè)體程序員離開公司時(shí),還可能丟失大部分技術(shù)以及工業(yè)知識(shí)。作為選擇,許多公司把他們的編程工作“轉(zhuǎn)移”給咨詢公司或者合同雇員。這種方法減輕了公司管理個(gè)體雇員的負(fù)擔(dān),然而工作的質(zhì)量經(jīng)常受到質(zhì)疑,并且集成來自于很多外部供應(yīng)商的工作的難題十分明顯。
發(fā)明內(nèi)容
需要一種方式來進(jìn)行組織以便獲得高質(zhì)量的軟件,而不需要維護(hù)較大的、永久的軟件開發(fā)組織。已經(jīng)提出的用于改善軟件開發(fā)的技術(shù)是代碼重新使用以及基于組件的設(shè)計(jì)。但是即使組織采用這種技術(shù),他們?nèi)孕枰勒湛沙惺艿姆绞将@得高質(zhì)量組件。
總體上,本發(fā)明涉及激勵(lì)分布式軟件開發(fā)人員小組,他們彼此互不相關(guān),以便參與高質(zhì)量軟件的分布式開發(fā)。通常,開發(fā)人員的激勵(lì)可通過財(cái)政以及競賽獎(jiǎng)勵(lì)來產(chǎn)生。所述開發(fā)人員的獨(dú)立性允許強(qiáng)制執(zhí)行嚴(yán)格的設(shè)計(jì)以及質(zhì)量分析,這也將產(chǎn)生很高質(zhì)量(例如企業(yè)質(zhì)量)的軟件。
在一個(gè)方面中,產(chǎn)品管理者將軟件程序的規(guī)范傳達(dá)給開發(fā)人員小組,所述開發(fā)人員可以是軟件體系結(jié)構(gòu)設(shè)計(jì)師、設(shè)計(jì)者、編碼員等等。產(chǎn)品管理者響應(yīng)傳達(dá)的規(guī)范接收一個(gè)或多個(gè)提交內(nèi)容。每個(gè)提交內(nèi)容至少部分基于所述提交內(nèi)容滿足傳達(dá)的規(guī)范的程度來被評(píng)分。響應(yīng)于所述得分,選擇其中一個(gè)提交內(nèi)容,用于包括在軟件存儲(chǔ)庫中以便分送至公眾??梢詫⒊陝诜峙浣o提交了所述存儲(chǔ)庫中包括的設(shè)計(jì)或者代碼的開發(fā)人員。應(yīng)該理解的是,所述軟件程序可以是任何種類的程序,例如包括但不限于組件、類、庫、應(yīng)用或者上述內(nèi)容的一個(gè)或多個(gè)的某些組合或者集合。
各種實(shí)施例可以包括一個(gè)或多個(gè)以下特征。分配給開發(fā)人員的評(píng)級(jí)可以由在一個(gè)或多個(gè)編碼競賽中開發(fā)人員的成績而來,其中所述競賽也可以保持聯(lián)機(jī)。分配給開發(fā)人員的評(píng)級(jí)可以由開發(fā)人員在前提交的軟件程序設(shè)計(jì)而來。分配給開發(fā)人員的評(píng)級(jí)可以由開發(fā)人員在前提交的軟件程序而來。發(fā)送給所述開發(fā)人員的規(guī)范可以用于設(shè)計(jì)軟件程序。發(fā)送給所述開發(fā)人員的規(guī)范可以用于開發(fā)軟件程序。所述軟件程序可以是軟件組件。所述軟件程序可以是軟件應(yīng)用、一個(gè)或多個(gè)軟件組件的組合或者軟件模塊之一。為開發(fā)人員得出的評(píng)級(jí)可用于確定應(yīng)該接收規(guī)范的程序員子集。開發(fā)人員評(píng)級(jí)的存在可以確定是否將所述開發(fā)人員包括在應(yīng)該接收規(guī)范的程序員子集中。所述開發(fā)人員可以提交軟件程序的設(shè)計(jì)。所述開發(fā)人員可以提交軟件程序的計(jì)算機(jī)代碼。所述開發(fā)人員可以是軟件設(shè)計(jì)師。所述開發(fā)人員可以是軟件程序員。提交內(nèi)容的得分可以基于由不同于提交該提交內(nèi)容的開發(fā)人員的開發(fā)人員評(píng)審的提交內(nèi)容來推導(dǎo)??梢曰诮邮盏淖钚〉梅謥磉x擇所述提交內(nèi)容以便包括到所述軟件存儲(chǔ)庫中。所述軟件存儲(chǔ)庫中包括的提交內(nèi)容可以被保證在不同于用于原始提交內(nèi)容的計(jì)算環(huán)境的計(jì)算環(huán)境中操作。
總的來說,本發(fā)明的另一個(gè)方面涉及補(bǔ)償進(jìn)行設(shè)計(jì)或者開發(fā)軟件程序的開發(fā)人員。一種方法包括征求多個(gè)開發(fā)人員對(duì)軟件程序的提交內(nèi)容,響應(yīng)所述征求接收至少一個(gè)軟件程序,為所接收到的響應(yīng)評(píng)分,基于所述得分選擇軟件程序以便分送至公眾,分送所述程序至公眾,并且分配一部分通過分送程序獲得的收益給開發(fā)人員,其中所述開發(fā)人員提交了所選的程序設(shè)計(jì)或者代碼。
實(shí)施例可以包括一個(gè)或多個(gè)以下特征。在征求開發(fā)人員之前,給所述開發(fā)人員評(píng)級(jí)。開發(fā)人員可以基于他們?cè)诼?lián)機(jī)編碼競賽中的成績來評(píng)級(jí)。所述開發(fā)人員可以基于他們對(duì)軟件程序設(shè)計(jì)的在前提交內(nèi)容來評(píng)級(jí)。所述開發(fā)人員可以基于他們?cè)谇疤峤坏能浖绦騺碓u(píng)級(jí)。所述軟件程序可以是軟件組件。所述軟件程序可以是軟件應(yīng)用、軟件組件的組合或者軟件模塊。相反,或者例外,可以至少部分基于他們的評(píng)級(jí)或者依照其具有的評(píng)級(jí)來征求程序員。來自于程序分送的收入的分配可以至少部分基于開發(fā)人員的評(píng)級(jí)來進(jìn)行。來自于程序分送的收入分配可以至少部分基于開發(fā)人員開發(fā)軟件程序所花費(fèi)的小時(shí)數(shù)目和/或基于開發(fā)人員參加的工作比例來進(jìn)行。來自于程序分送的收入分配可以至少部分基于軟件程序被分送的次數(shù)和/或人員來進(jìn)行。
在又一個(gè)方面中,本發(fā)明涉及用于實(shí)現(xiàn)上述方法的系統(tǒng)。例如,用于簡化軟件程序分布式開發(fā)的系統(tǒng)包括評(píng)級(jí)引擎,用于對(duì)軟件開發(fā)人員的技能進(jìn)行評(píng)級(jí);以及服務(wù)器,用于向已經(jīng)預(yù)先由評(píng)級(jí)引擎評(píng)級(jí)的開發(fā)人員傳達(dá)軟件規(guī)范。所述系統(tǒng)還包括服務(wù)器,用于當(dāng)開發(fā)人員提交軟件程序時(shí)接收它們,以及用于為提交的軟件程序評(píng)分的模塊。
在本發(fā)明此方面的一個(gè)實(shí)施例中,所述系統(tǒng)還可以包括評(píng)審模塊,用于允許開發(fā)人員評(píng)審由其他開發(fā)人員提交的提交內(nèi)容和/或由評(píng)審委員會(huì)產(chǎn)生的評(píng)分卡。所述系統(tǒng)還可以包括存儲(chǔ)庫,用于存儲(chǔ)所述軟件程序以及所有相關(guān)聯(lián)的設(shè)計(jì)文檔。所述存儲(chǔ)庫可以包括聯(lián)機(jī)陳列室,用于顯示所述程序,并且還可以包括使用提交的軟件程序構(gòu)造的樣品應(yīng)用。所述存儲(chǔ)庫還可以包括用于向公眾演示軟件程序功能的模塊。
在本發(fā)明的另一個(gè)實(shí)施例中,所述系統(tǒng)還可以包括計(jì)算模塊,用于在已經(jīng)預(yù)先提交了軟件程序的程序員當(dāng)中分配收益。所述收入分配可至少部分基于程序員的評(píng)級(jí)。收入分配可以至少部分基于程序員設(shè)計(jì)或者開發(fā)軟件程序所花費(fèi)的小時(shí)數(shù)目。所述收入分配例如可以至少部分基于軟件程序被分送的次數(shù)和/或人員來進(jìn)行。
根據(jù)以下附圖、詳細(xì)說明以及權(quán)利要求書,本發(fā)明的其他方面以及優(yōu)點(diǎn)將變得更明顯,所有這些內(nèi)容僅僅是通過舉例來說明本發(fā)明的原理。
附圖簡述在所述附圖中,遍及不同的視圖,相同的參考標(biāo)記通常涉及相同的部分。此外,所述附圖不必是按比例縮放的,而是當(dāng)舉例說明本發(fā)明的原理時(shí),通常將重點(diǎn)突出。
圖1是依照本發(fā)明的具有服務(wù)器的分布式軟件開發(fā)系統(tǒng)的實(shí)施例框圖。
圖2是依照本發(fā)明的分布式軟件開發(fā)小組的一個(gè)實(shí)施例的框圖。
圖3是依照本發(fā)明的分布式軟件開發(fā)小組的第二實(shí)施例的框圖。
圖4是依照本發(fā)明的當(dāng)開發(fā)軟件程序時(shí)由有效的軟件開發(fā)小組執(zhí)行的步驟的實(shí)施例流程圖。
圖5依照本發(fā)明由有效的軟件開發(fā)小組的成員執(zhí)行的步驟的實(shí)施例的流程圖。
圖6由軟件設(shè)計(jì)的有效成員執(zhí)行的圖5步驟的實(shí)施例的更加詳細(xì)的流程圖。
圖7由軟件程序設(shè)計(jì)小組的有效成員執(zhí)行的圖5步驟的實(shí)施例的更加詳細(xì)的流程圖。
圖8是依照本發(fā)明用于簡化軟件程序的開發(fā)和/或區(qū)別的圖1服務(wù)器的實(shí)施例的更加詳細(xì)的框圖。
圖9是依照本發(fā)明用于簡化規(guī)范的傳遞和以及提交內(nèi)容的接收和評(píng)分的圖1服務(wù)器的實(shí)施例的更詳細(xì)框圖。
圖10是依照本發(fā)明的軟件目錄的實(shí)施例框圖。
圖11是依照本發(fā)明的與第一公司以及第二公司通信的軟件目錄系統(tǒng)的實(shí)施例的框圖。
圖12是依照本發(fā)明的舉例說明修改軟件組件的軟件目錄系統(tǒng)的實(shí)施例的框圖。
圖13是依照本發(fā)明的補(bǔ)償數(shù)據(jù)結(jié)構(gòu)的實(shí)施例框圖。
圖14是依照本發(fā)明舉例說明用于分布式軟件開發(fā)小組的基于酬勞的補(bǔ)償結(jié)構(gòu)的實(shí)施例的表。
圖15是依照本發(fā)明舉例說明用于分布式軟件開發(fā)小組的基于酬勞的補(bǔ)償結(jié)構(gòu)的另一個(gè)實(shí)施例的表。
圖16是依照本發(fā)明舉例說明由服務(wù)器支持的滑動(dòng)比例酬勞補(bǔ)償結(jié)構(gòu)的實(shí)施例的線性圖表。
詳細(xì)說明參照?qǐng)D1,在一個(gè)實(shí)施例中,分布式軟件開發(fā)系統(tǒng)101包括至少一個(gè)服務(wù)器104,以及至少一個(gè)客戶端108,108’,108”,通稱為108。如圖所示,所述分布式軟件開發(fā)系統(tǒng)101包括三個(gè)客戶端108,108’,108”,但是這只是為了舉例說明的目的,并且其意指可以存在任何數(shù)量的客戶端108。所述客戶端108最好作為在個(gè)人計(jì)算機(jī)(例如具有INTEL處理器或者APPLE MACINTOSH的PC)上運(yùn)行的軟件來實(shí)現(xiàn),所述個(gè)人計(jì)算機(jī)能夠運(yùn)行這種操作系統(tǒng),諸如來自于Redmond,Washington的微軟公司MICROSOFT WINDOWS系列的操作系統(tǒng),來自于California,Cupertino的Apple Computer的MACINTOSH操作系統(tǒng),以及各種的UNIX操作系統(tǒng),諸如來自于SUN MICROSYSTEMS的SUN SOLARIS以及來自于NorthCarolina(以及其他),Durham的RED HAT公司的GNU/Linux。所述客戶端108還可以在這種硬件上實(shí)現(xiàn),所述硬件諸如智能或無智能終端、網(wǎng)絡(luò)計(jì)算機(jī)、無線電設(shè)備、信息設(shè)備、工作站、小型計(jì)算機(jī)、大型計(jì)算機(jī)或者其他計(jì)算裝置,將其作為通用計(jì)算機(jī)或者專用硬件裝置來操作,以便在分布式軟件開發(fā)系統(tǒng)101中充當(dāng)客戶端108來單獨(dú)使用。
通常,在一些實(shí)施例中,客戶端108可以由軟件開發(fā)人員來操作,并且可以由參與軟件開發(fā)的軟件開發(fā)人員使用。客戶端108還可以由所述軟件開發(fā)人員開發(fā)的軟件的客戶來操作。在各種實(shí)施例中,客戶端計(jì)算機(jī)108包括瀏覽器116、客戶端軟件120或者兩個(gè)都包括。所述瀏覽器116允許客戶端108依照網(wǎng)頁請(qǐng)求來請(qǐng)求網(wǎng)頁(例如從所述服務(wù)器104)。網(wǎng)頁的例子是包括計(jì)算機(jī)可執(zhí)行的或者可翻譯的信息、圖形、音響、文本和/或視頻的數(shù)據(jù)文件,其可以被顯示、執(zhí)行、播放、處理、流送和/或存儲(chǔ),并且可以包含到其他網(wǎng)頁的鏈路或者指針。在一個(gè)實(shí)施例中,客戶端108的用戶從所述服務(wù)器104人工地請(qǐng)求網(wǎng)頁。作為選擇,客戶端108自動(dòng)地利用所述瀏覽器116進(jìn)行請(qǐng)求??梢陨虡I(yè)可得的瀏覽器軟件116的例子是由Washington,Redmond的微軟公司提供的INTERNET EXPLORER,以及由California,Mountain View的NetscapeCommunications公司提供的NETSCAPE NAVIGATOR。
在一些實(shí)施例中,所述客戶端108還包括客戶端軟件120。所述客戶端軟件120向客戶端108提供允許軟件開發(fā)人員參與編碼競賽的功能。所述客戶端軟件120可以依照各種形式實(shí)現(xiàn),例如,它可以是下載到客戶端108并且結(jié)合所述瀏覽器116運(yùn)行的Java小程序,或者所述客戶端軟件120可以是獨(dú)立應(yīng)用的形式,依照諸如Java的多平臺(tái)語言或者依照本地處理器可執(zhí)行代碼來實(shí)現(xiàn)。在一個(gè)實(shí)施例中,如果在所述客戶端108上執(zhí)行,那么客戶端軟件120打開網(wǎng)絡(luò)連接,以便經(jīng)由通信網(wǎng)絡(luò)112連接到服務(wù)器104,并且經(jīng)由該連接與服務(wù)器104通信。所述客戶端軟件120以及瀏覽器116可以是單個(gè)客戶端-服務(wù)器接口124的一部分;例如,所述客戶端軟件可以作為瀏覽器116的“插件程序”來實(shí)現(xiàn)。
通信網(wǎng)絡(luò)112連接客戶端108與服務(wù)器104。所述通信可以經(jīng)由任何介質(zhì)進(jìn)行,諸如標(biāo)準(zhǔn)電話線、LAN或者WAN鏈路(例如,T1、T3、56kb、X.25)、寬帶連接(ISDN、幀中繼(Frame Relay)、ATM)、無線鏈路等等。優(yōu)選的是,所述網(wǎng)絡(luò)112可以支持TCP/IP協(xié)議通信,以及由瀏覽器116進(jìn)行的HTTP/HTTPS請(qǐng)求,并且客戶端軟件120和服務(wù)器104之間的連接可以經(jīng)由這種TCP/IP網(wǎng)絡(luò)進(jìn)行通信。然而,所述網(wǎng)絡(luò)的類型不是限制性的,任何適當(dāng)?shù)木W(wǎng)絡(luò)都可以使用??梢猿洚?dāng)通信網(wǎng)絡(luò)112的網(wǎng)絡(luò)的典型實(shí)例包括無線或者有線的基于以太網(wǎng)的內(nèi)聯(lián)網(wǎng)、局域或者廣域網(wǎng)(LAN或者WAN),和/或通稱為互聯(lián)網(wǎng)的全球通信網(wǎng),這些網(wǎng)絡(luò)可以適應(yīng)許多不同的通信介質(zhì)和協(xié)議。
服務(wù)器104與客戶端108交互。所述服務(wù)器104最好在一個(gè)或多個(gè)服務(wù)器類計(jì)算機(jī)上實(shí)現(xiàn),所述計(jì)算機(jī)具有足夠的存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器和處理能力,并且可以運(yùn)行服務(wù)器類操作系統(tǒng)(例如SUN Solaris、GNU/Linux、MICROSOFT WINDOWS NT)。根據(jù)裝置的容量和用戶數(shù)目以及用戶的規(guī)模,還可以使用不同于此處描述的其他類型的系統(tǒng)硬件和軟件。例如,所述服務(wù)器104可以屬于服務(wù)器場或者服務(wù)器網(wǎng)絡(luò)的一部分,其是一個(gè)或多個(gè)服務(wù)器的邏輯組。作為另一個(gè)例子,可以存在多個(gè)服務(wù)器104,其可以彼此關(guān)聯(lián)或者彼此連接,或者多個(gè)服務(wù)器可以獨(dú)立地操作,但是共享數(shù)據(jù)。在進(jìn)一步的實(shí)施例中,并且作為具有代表性的大規(guī)模系統(tǒng),應(yīng)用軟件可以依照組件來實(shí)現(xiàn),依照在不同的服務(wù)器計(jì)算機(jī)上、在相同的服務(wù)器上運(yùn)行的不同組件,或者某些組合。
所述服務(wù)器104可以包括競賽服務(wù)器,如Lydon等人申請(qǐng)的序號(hào)為10/041,393、題為“Systems and Methods for Coding Competitions”的一并待決的美國專利申請(qǐng)中所描述的那樣。
在一個(gè)實(shí)施例中,所述服務(wù)器104使有效的開發(fā)小組能夠進(jìn)行軟件程序的分布式軟件開發(fā)。所述軟件程序可以是任何種類的機(jī)器命令,例如包括但不限于組件、類、庫、應(yīng)用、小程序、邏輯表、數(shù)據(jù)塊或者這些內(nèi)容的任意一個(gè)或多個(gè)的一個(gè)或多個(gè)任意組合或集合。在一個(gè)實(shí)施例中,所述軟件程序可以是軟件組件。通常,軟件組件是可以作為應(yīng)用的可重用構(gòu)建單元的功能性軟件模塊。正如幾個(gè)例子,軟件組件包括但不局限于以下這種組件,諸如圖形用戶界面、小型利息計(jì)算器、數(shù)據(jù)庫管理器的界面、保險(xiǎn)統(tǒng)計(jì)表計(jì)算、DNA檢索函數(shù)、為了機(jī)器制造零件的目的制造數(shù)字控制機(jī)床的接口、公共/私人密鑰加密算法以及用于登錄并且與主機(jī)應(yīng)用通信的函數(shù)(例如,保險(xiǎn)調(diào)節(jié)以及銷售點(diǎn)(POS)產(chǎn)品跟蹤)。在一些實(shí)施例中,為了需要的服務(wù)這些組件相互通信(例如經(jīng)由通信網(wǎng)絡(luò)112)。組件的特殊例子是JavaBean,其是依照J(rèn)ava程序設(shè)計(jì)語言編寫的組件。組件還可以依照任何其他語言編寫,包括但不限于VisualBasic、C++、Java、以及C#”。
在一個(gè)實(shí)施例中,所述軟件程序可以是應(yīng)用。在一些實(shí)施例中,應(yīng)用可以由一個(gè)或多個(gè)軟件組件組成。在一個(gè)實(shí)施例中,所述軟件應(yīng)用由使用如下所述的方法預(yù)先開發(fā)的軟件組件組成。在一些實(shí)施例中,所述應(yīng)用包括完全新的軟件程序。在一些實(shí)施例中,所述應(yīng)用包括新的軟件程序以及預(yù)先開發(fā)的軟件組件的組合。
參照?qǐng)D2,軟件開發(fā)小組可用于開發(fā)軟件組件。在一個(gè)實(shí)施例中,所述軟件開發(fā)小組200包括產(chǎn)品管理者202。產(chǎn)品管理者202是組件開發(fā)和部署組件的管理者。所述產(chǎn)品管理者202可以執(zhí)行市場調(diào)查以便識(shí)別可能對(duì)市場有用的組件。例如,所述產(chǎn)品管理者202可以執(zhí)行對(duì)工業(yè)的研究,以便確定公司是否找到具有確定特征的有用組件,并且規(guī)定這種組件的需求。所述產(chǎn)品管理者202還可以規(guī)定(但不限于)諸如項(xiàng)目花費(fèi)、項(xiàng)目安排以及項(xiàng)目風(fēng)險(xiǎn)的項(xiàng)。在一個(gè)實(shí)施例中,所述產(chǎn)品管理者202為所述項(xiàng)目創(chuàng)建項(xiàng)目計(jì)劃,其可以包括估計(jì)的項(xiàng)目花費(fèi)、進(jìn)度、描述范圍的需求文檔以及項(xiàng)目風(fēng)險(xiǎn)。
設(shè)計(jì)師(也稱為“設(shè)計(jì)者”)208設(shè)計(jì)所述軟件組件。設(shè)計(jì)師208最好是充當(dāng)一個(gè)或多個(gè)其他組員204,212,216的指導(dǎo)者并且與他們進(jìn)行協(xié)作的資深開發(fā)人員,以便設(shè)計(jì)組件的體系結(jié)構(gòu)。設(shè)計(jì)師208還可以創(chuàng)建用于滿足由產(chǎn)品管理者202例如在需求文檔中、或者通過與產(chǎn)品管理者202的其他通信而提出的組件需求的測試用例。所述設(shè)計(jì)師208最好以最大化軟件組件的潛在重用的方式來設(shè)計(jì)所述組件。因此所述設(shè)計(jì)師208可以例如基于但不局限于有效的接口數(shù)目、所述組件與其他組件的兼容性以及組件的每個(gè)設(shè)計(jì)的執(zhí)行速度來設(shè)計(jì)軟件組件。
然后,一個(gè)或多個(gè)QA開發(fā)人員216,216’(通稱為216)為所述組件開發(fā)測試計(jì)劃。測試計(jì)劃可以包括正常以及極限輸入以便模擬生產(chǎn)以及壓力。在一個(gè)實(shí)施例中,QA開發(fā)人員216使用由產(chǎn)品管理者202編寫的需求規(guī)范以及由設(shè)計(jì)師208編寫的設(shè)計(jì)規(guī)范來開發(fā)測試計(jì)劃。QA開發(fā)人員216試圖識(shí)別所述規(guī)范中的潛在的問題區(qū)域,并且朝向一個(gè)或多個(gè)那些區(qū)域來修補(bǔ)QA測試。此外,所述QA開發(fā)人員216可以與其他組員通信以便改善或者討論測試計(jì)劃。一旦完成,可以由所述設(shè)計(jì)師208和/或產(chǎn)品管理者202來評(píng)審測試計(jì)劃,以便驗(yàn)證測試計(jì)劃將充分地測試組件需求。
然后,一個(gè)或多個(gè)開發(fā)人員222,222’(通稱為222)開發(fā)組件以符合規(guī)范描述的需求。在一個(gè)實(shí)施例中,所述開發(fā)人員222向設(shè)計(jì)師208提交對(duì)象模型,諸如依照統(tǒng)一建模語言(UML)的模型。一旦設(shè)計(jì)師208批準(zhǔn)所述對(duì)象模型,開發(fā)人員222就開發(fā)代碼以實(shí)現(xiàn)組件。所述開發(fā)人員使用測試計(jì)劃來確定實(shí)現(xiàn)的代碼滿足所述需求。當(dāng)所述開發(fā)人員222完成所述代碼,設(shè)計(jì)師208和/或產(chǎn)品管理者202評(píng)審所述代碼。在一個(gè)實(shí)施例中,所述設(shè)計(jì)師208評(píng)審所述編碼,例如但不局限于確定功能、風(fēng)格、編碼標(biāo)準(zhǔn)的遵守、性能以及穩(wěn)定性。
一旦所述組件被開發(fā),依照測試計(jì)劃所述QA開發(fā)人員216測試完成的組件,并且驗(yàn)證它是可接受的。
雖然圖中所示的軟件開發(fā)小組200包括一個(gè)產(chǎn)品管理者202、一個(gè)設(shè)計(jì)師208、兩個(gè)QA開發(fā)人員216,216’以及兩個(gè)開發(fā)人員222,222’,但是應(yīng)該理解的是,這只是示例性的目的,并且開發(fā)人員222和QA開發(fā)人員216的數(shù)目將取決于特定的項(xiàng)目。還應(yīng)該理解的是,軟件開發(fā)小組200的一個(gè)或多個(gè)成員可以操作一個(gè)或多個(gè)客戶端108,并且經(jīng)由通信網(wǎng)絡(luò)112與服務(wù)器104通信,如圖1所示。
在一些實(shí)施例中,所述軟件開發(fā)小組200由彼此沒有關(guān)系的開發(fā)人員組成。例如,所述開發(fā)人員222未必是已知的(或者如果他們相互認(rèn)識(shí),那么將非常熟悉)QA開發(fā)人員216或者產(chǎn)品管理者202。此特殊的實(shí)施例的優(yōu)勢之一是開發(fā)人員更加情愿參與由其他人開發(fā)的軟件設(shè)計(jì)或者組件的無偏見同等評(píng)審。此外,在一些實(shí)施例中,評(píng)審過程可以是保持不記名的,以便開發(fā)人員不知道他們?cè)u(píng)審的是誰的工作。開發(fā)小組200的評(píng)審工作遵守嚴(yán)格的開發(fā)過程,并以這樣的方式極大地增強(qiáng)最終產(chǎn)品的質(zhì)量。在一個(gè)實(shí)施例中,同等評(píng)審過程依照駐留在服務(wù)器104上的開發(fā)環(huán)境來實(shí)現(xiàn)。在另一個(gè)實(shí)施例中,例如可是使用其他類型的開發(fā)環(huán)境,所述同等評(píng)審可以使用個(gè)體開發(fā)人員的計(jì)算機(jī)來執(zhí)行。
現(xiàn)在參照?qǐng)D3,在圖2實(shí)施例的變化中,產(chǎn)品管理者302主持開發(fā)小組300,其由分布式開發(fā)人員組(此處使用以包括設(shè)計(jì)者、設(shè)計(jì)評(píng)審者、開發(fā)人員、開發(fā)評(píng)審者等等)組成。例如,所述設(shè)計(jì)者以及開發(fā)人員可以是專致力于合作計(jì)算機(jī)程序編制和分布式軟件開發(fā)的組織或者集體的成員。在一個(gè)實(shí)施例中,所述產(chǎn)品管理者302簡化這種開發(fā)人員組當(dāng)中的初始討論,所述組可以包括潛在的或者實(shí)際的開發(fā)小組成員300。所述討論可以是一種協(xié)作,用于識(shí)別待開發(fā)的新的或者要改善的軟件組件的需求。在一些實(shí)施例中,所述討論在聯(lián)機(jī)論壇中進(jìn)行,所述論壇可以由開發(fā)集體中的開發(fā)人員訪問。在一個(gè)實(shí)施例中,通過從滿足其他標(biāo)準(zhǔn)并且參與這種討論的那些人中選擇用于構(gòu)建/設(shè)計(jì)304和開發(fā)310委員會(huì)的參與方,以此來鼓勵(lì)參與這種論壇。
開發(fā)人員312可以請(qǐng)求加入開發(fā)小組300,所述產(chǎn)品管理者302可以要求開發(fā)人員312加入開發(fā)小組300,或者它們的某些組合。在一些實(shí)施例中,產(chǎn)品管理者302通過向提供了質(zhì)量提交內(nèi)容的開發(fā)人員312提供現(xiàn)金補(bǔ)償或者獎(jiǎng)品,來創(chuàng)建對(duì)參與所述開發(fā)小組的開發(fā)人員312的激勵(lì)。在一些實(shí)施例中,所述產(chǎn)品管理者302通過鼓勵(lì)開發(fā)人員312之間的競賽來向參與的開發(fā)人員312創(chuàng)建激勵(lì)。例如,在一些實(shí)施例中,所述開發(fā)人員312通過參與確定的開發(fā)小組來接受增加的評(píng)級(jí)。
所述開發(fā)小組300包括體系結(jié)構(gòu)評(píng)審委員會(huì)304。所述體系結(jié)構(gòu)評(píng)審委員會(huì)304包括一個(gè)或多個(gè)開發(fā)人員312,用于評(píng)審來自于軟件設(shè)計(jì)師328的設(shè)計(jì)提交內(nèi)容。所述體系結(jié)構(gòu)評(píng)審委員會(huì)最好具有少量(例如小于十個(gè))的成員,例如三個(gè)成員,但是也可以是任意的數(shù)量。通常,所述評(píng)審委員會(huì)只為一個(gè)或者少數(shù)相關(guān)項(xiàng)目形成。在一些實(shí)施例中,評(píng)審委員會(huì)可以形成更長的時(shí)間,但是在工作人員的變化也是可能可以幫助保持質(zhì)量的。
優(yōu)選的是,通過所述產(chǎn)品管理者302、體系結(jié)構(gòu)評(píng)審委員會(huì)304、或別的方式將體系結(jié)構(gòu)評(píng)審委員會(huì)成員之一選擇為主要評(píng)審委員會(huì)成員308。如果委員會(huì)304被設(shè)立了更長時(shí)間,那么通常來說,為每個(gè)組件或者組件的相關(guān)組分配主要評(píng)審委員會(huì)成員308,但是主要評(píng)審委員會(huì)成員308也可以對(duì)該委員會(huì)304評(píng)審的所有組件是同一個(gè),這取決于成員的有效性和技能。所述主要評(píng)審委員會(huì)成員308負(fù)責(zé)協(xié)調(diào)和管理委員會(huì)304的活動(dòng)。
在一個(gè)實(shí)施例中,通過所述產(chǎn)品管理者302請(qǐng)求滿足特定規(guī)范的組件設(shè)計(jì)提交內(nèi)容,并且通過所述體系結(jié)構(gòu)評(píng)審委員會(huì)304判斷設(shè)計(jì)者328給出的設(shè)計(jì)提交內(nèi)容。所述主要評(píng)審委員會(huì)成員308在體系結(jié)構(gòu)評(píng)審委員會(huì)304的其他成員評(píng)審他們以前,篩選所述設(shè)計(jì)提交內(nèi)容,以便允許其余的評(píng)審委員會(huì)只判斷最佳提交內(nèi)容。在一些實(shí)施例中,所述篩選過程包括基于它們滿足規(guī)范中略述的需求的程度來為所述提交內(nèi)容評(píng)分。在一些實(shí)施例中,使用評(píng)分卡文檔化得分,其可以是文件、電子數(shù)據(jù)表、聯(lián)機(jī)表格、數(shù)據(jù)庫或者其他電子文件。
在一個(gè)實(shí)施例中,所述主要評(píng)審委員會(huì)成員308通知體系結(jié)構(gòu)評(píng)審委員會(huì)304一個(gè)或多個(gè)提交內(nèi)容已經(jīng)通過了篩選過程,并且所述體系結(jié)構(gòu)評(píng)審委員會(huì)304評(píng)審所述設(shè)計(jì)提交內(nèi)容。在一些實(shí)施例中,所述體系結(jié)構(gòu)評(píng)審委員會(huì)304基于規(guī)范中文檔化的需求來評(píng)審提交內(nèi)容。在一些實(shí)施例中,所述體系結(jié)構(gòu)評(píng)審委員會(huì)304為所述提交內(nèi)容評(píng)分。在一些實(shí)施例中,使用評(píng)分卡文檔化得分,其可以是文件、電子數(shù)據(jù)表、聯(lián)機(jī)表格、數(shù)據(jù)庫或者其他電子文件。
在一些實(shí)施例中,來自于所述主要評(píng)審委員會(huì)成員308以及體系結(jié)構(gòu)評(píng)審委員會(huì)304的其他成員的得分和評(píng)審被合并為最終評(píng)審和得分。在一些實(shí)施例中,所述合并可以包括編譯一個(gè)或多個(gè)文檔中包含的信息。這種合并可以通過主要評(píng)審委員會(huì)成員308、體系結(jié)構(gòu)評(píng)審委員會(huì)304的其他成員來執(zhí)行,或者在一個(gè)示范性的實(shí)施例中,使用駐留在服務(wù)器104(圖1)上的基于計(jì)算機(jī)的系統(tǒng)來執(zhí)行所述合并。在一些實(shí)施例中,所述產(chǎn)品管理者302解決體系結(jié)構(gòu)評(píng)審委員會(huì)304之間的差異或者異議。
在一個(gè)實(shí)施例中,將具有最高組合得分的設(shè)計(jì)選為將用于實(shí)現(xiàn)的成功設(shè)計(jì)。將獎(jiǎng)金和/或認(rèn)可給予所述設(shè)計(jì)者。在一個(gè)實(shí)施例中,對(duì)設(shè)計(jì)者的一部分支付被扣留,直到開發(fā)評(píng)審結(jié)束。例如,所述設(shè)計(jì)者可以在設(shè)計(jì)評(píng)審結(jié)束收到75%的支付,并且在開發(fā)評(píng)審之后被支付25%。還可以對(duì)其他人提交的設(shè)計(jì)進(jìn)行獎(jiǎng)勵(lì)和/或認(rèn)可。
在一些實(shí)施例中,除評(píng)審所述提交內(nèi)容以外,體系結(jié)構(gòu)評(píng)審委員會(huì)304還可以識(shí)別對(duì)規(guī)范的有用修改或者應(yīng)該包括到所述設(shè)計(jì)中的設(shè)計(jì)。所述主要評(píng)審委員會(huì)成員308文檔化附加需求,并且將此信息傳達(dá)給提交設(shè)計(jì)的設(shè)計(jì)者328。在一個(gè)實(shí)施例中,所述主要評(píng)審委員會(huì)成員308合并來自于評(píng)審委員會(huì)304的評(píng)論。設(shè)計(jì)者328可以更新所述設(shè)計(jì)并且重新提交它以供所述體系結(jié)構(gòu)評(píng)審委員會(huì)304評(píng)審。此過程可以重復(fù),直到主要評(píng)審委員會(huì)成員308相信所述設(shè)計(jì)已經(jīng)滿足所有必要的需求。
一旦所述體系結(jié)構(gòu)評(píng)審委員會(huì)304確認(rèn)設(shè)計(jì)已經(jīng)足以闡明規(guī)范的需求,所述主要評(píng)審委員會(huì)成員308就通知產(chǎn)品管理者302這種設(shè)計(jì)已經(jīng)通過了設(shè)計(jì)評(píng)審過程。所述產(chǎn)品管理者302因此能使用所述設(shè)計(jì)來征求對(duì)滿足規(guī)范的設(shè)計(jì)的軟件組件的提交內(nèi)容。例如,所述產(chǎn)品管理者302可以對(duì)網(wǎng)絡(luò)站點(diǎn)或者郵件名單的實(shí)現(xiàn)進(jìn)行有效的設(shè)計(jì)。所述產(chǎn)品管理者302依照所述設(shè)計(jì)請(qǐng)求實(shí)現(xiàn)的組件。
所述開發(fā)小組300還包括開發(fā)評(píng)審委員會(huì)310,其類似于所述體系結(jié)構(gòu)評(píng)審委員會(huì)304。所述開發(fā)評(píng)審委員會(huì)可以在完成并且選擇所述設(shè)計(jì)時(shí)馬上形成,或者可以在不同的時(shí)間選出,例如在形成體系結(jié)構(gòu)評(píng)審委員會(huì)304的時(shí)候。開發(fā)評(píng)審委員會(huì)310的成員資格可以與設(shè)計(jì)評(píng)審委員會(huì)304的相同,或者與其相重疊,不過根據(jù)質(zhì)量維護(hù)觀點(diǎn)來看,這未必是合乎需要的。在一些實(shí)施例中,不選擇所述開發(fā)評(píng)審委員會(huì)310,直到接收到對(duì)開發(fā)項(xiàng)目的提交內(nèi)容。
所述開發(fā)評(píng)審委員會(huì)310包括一個(gè)或多個(gè)開發(fā)人員312,用于評(píng)審來自于軟件程序員322的開發(fā)提交內(nèi)容。所述開發(fā)評(píng)審委員會(huì)310最好具有少量(例如小于十個(gè))的成員,例如三個(gè)成員,但是也可以是任意的數(shù)量。通常,所述開發(fā)評(píng)審委員會(huì)310只為一個(gè)或者少數(shù)相關(guān)項(xiàng)目而形成。在一些實(shí)施例中,評(píng)審委員會(huì)可以被形成更長時(shí)間,但是在工作人員方面的變化(以及評(píng)審委員會(huì)的繼續(xù)競賽)可以幫助維持質(zhì)量。
優(yōu)選的是,通過所述產(chǎn)品管理者302、開發(fā)評(píng)審委員會(huì)310、或其他方式將開發(fā)評(píng)審委員會(huì)310成員之一選擇為主要開發(fā)評(píng)審委員會(huì)成員316。如果委員會(huì)310被設(shè)立了更長時(shí)間,那么通常來說,將開發(fā)委員會(huì)成員310被指派為主要開發(fā)評(píng)審委員會(huì)成員316,并且為每個(gè)組件或者組件的相關(guān)組指派開發(fā)委員會(huì)成員310,但是所述主要開發(fā)評(píng)審委員會(huì)成員316也可以對(duì)于該委員會(huì)310評(píng)審的所有組件相同,這取決于成員的有效性和技能。所述主要開發(fā)評(píng)審委員會(huì)成員316負(fù)責(zé)協(xié)調(diào)和管理委員會(huì)310的活動(dòng)。
在一個(gè)實(shí)施例中,所述主要開發(fā)評(píng)審委員會(huì)成員316在由開發(fā)評(píng)審委員會(huì)310的其他成員評(píng)審提交內(nèi)容以前篩選提交的組件。在一些實(shí)施例中,所述篩選過程包括基于它們滿足設(shè)計(jì)規(guī)范中略述的需求的程度來為所述提交內(nèi)容評(píng)分。在一些實(shí)施例中,使用評(píng)分卡文檔化所述得分。所述評(píng)分卡可以是一文件、電子數(shù)據(jù)表、聯(lián)機(jī)表格、數(shù)據(jù)庫或者其他電子文件。
在一個(gè)實(shí)施例中,所述主要開發(fā)評(píng)審委員會(huì)成員316通知其他開發(fā)評(píng)審委員會(huì)成員310一個(gè)或多個(gè)提交內(nèi)容已經(jīng)通過了所述篩選過程。在一個(gè)實(shí)施例中,開發(fā)評(píng)審委員會(huì)310的成員評(píng)審提交的組件。在一些實(shí)施例中,所述主要開發(fā)評(píng)審委員會(huì)成員316基于在如上所述的設(shè)計(jì)文件中文檔化的詳細(xì)需要來評(píng)審所述提交內(nèi)容。在一些實(shí)施例中,所述開發(fā)評(píng)審委員會(huì)310為所述提交內(nèi)容評(píng)分。在一些實(shí)施例中,使用評(píng)分卡文檔化所。所述評(píng)分卡可以是一文件、電子數(shù)據(jù)表、聯(lián)機(jī)表格、數(shù)據(jù)庫或者其他電子文件。
在一些實(shí)施例中,所述得分可以基于所述組件在一個(gè)或更多測試?yán)械膱?zhí)行情況。在一些實(shí)施例中,測試?yán)梢园ㄓ糜诖_定當(dāng)組件具有有效輸入數(shù)據(jù)時(shí)接收的結(jié)果的準(zhǔn)確性的測試。在一些實(shí)施例中,測試?yán)梢园ㄓ糜诖_定當(dāng)裝備有無效輸入數(shù)據(jù)時(shí)所述組件是否表現(xiàn)正確的測試。在一些實(shí)施例中,測試?yán)梢园ㄓ糜诖_定所述組件如何響應(yīng)大量輸入數(shù)據(jù)的測試。
在一些實(shí)施例中,來自于所述主要開發(fā)評(píng)審委員會(huì)成員316以及所述開發(fā)評(píng)審委員會(huì)310的得分和評(píng)審被合并為最終評(píng)審。在一些實(shí)施例中,所述合并可以包括編譯一個(gè)或多個(gè)文檔中包含的信息。在一個(gè)實(shí)施例中,所述產(chǎn)品管理者302合并所述信息。在一些實(shí)施例中,所述主要開發(fā)評(píng)審委員會(huì)成員316合并所述信息。在一個(gè)示范性的實(shí)施例中,所述合并使用計(jì)算機(jī)程序來執(zhí)行,其也可以駐留在服務(wù)器104上。在一些實(shí)施例中,所述產(chǎn)品管理者302解決開發(fā)評(píng)審委員會(huì)成員310之間的差異或者異議。
一旦所述開發(fā)評(píng)審委員會(huì)310確認(rèn)實(shí)現(xiàn)的組件滿足所述規(guī)范的需求,并且具有足夠的質(zhì)量,那么主要開發(fā)評(píng)審委員會(huì)成員316通知所述產(chǎn)品管理者302所述組件已經(jīng)完成開發(fā)評(píng)審過程。在一個(gè)實(shí)施例中,將具有最高組合得分的實(shí)現(xiàn)方式選為將使用的成功組件。將獎(jiǎng)金和/或其它認(rèn)可給予所述程序員。還可以對(duì)亞軍進(jìn)行獎(jiǎng)勵(lì)和/或認(rèn)可。成功組件因此能被歸入軟件存儲(chǔ)庫,以便由其他程序員訪問和使用。如下文將進(jìn)一步討論的,在設(shè)計(jì)和實(shí)現(xiàn)所述組件過程中的參與方可以作為使用開發(fā)組件的收益的百分比來支付與他們的貢獻(xiàn)相當(dāng)?shù)牧俊?br>
在一些實(shí)施例中,開發(fā)評(píng)審委員會(huì)310的成員可以識(shí)別對(duì)組件中應(yīng)該包括的實(shí)現(xiàn)方式的修改。所述主要開發(fā)評(píng)審委員會(huì)成員316文檔化所述附加需求,以便程序員322可以更新和重新提交。此過程可以重復(fù)直到所述主要開發(fā)評(píng)審委員會(huì)成員316相信所述組件被完成。
還參照?qǐng)D4,在一個(gè)實(shí)施例中,所述產(chǎn)品管理者302確定開發(fā)項(xiàng)目的范圍(步驟408),如上所述。所述項(xiàng)目經(jīng)理302(可能與設(shè)計(jì)師308配合)生成組件、多個(gè)組件、或者將開發(fā)的應(yīng)用、以及開發(fā)時(shí)間安排和預(yù)算的規(guī)范(步驟412)。
在一個(gè)實(shí)施例中,所述產(chǎn)品管理者302主持合作論壇以便確定潛在的開發(fā)項(xiàng)目的范圍。在一些實(shí)施例中,所述信息可以是對(duì)新的軟件組件的思想,并且在一些實(shí)施例中,所述信息可以是對(duì)現(xiàn)存的軟件組件的附加需求。在一些實(shí)施例中,所述信息可以是對(duì)由預(yù)先開發(fā)的軟件組件組合組成的軟件應(yīng)用的思想。所述合作論壇可以包括開發(fā)人員、顧客、預(yù)期的顧客、或者對(duì)開發(fā)軟件組件感興趣的其他人。在一個(gè)實(shí)施例中,所述合作論壇是一種聯(lián)機(jī)論壇,其中參與方可以發(fā)送思想、詢問、建議或者其他信息。在一些實(shí)施例中,只有論壇成員的子集可以向論壇發(fā)送建議。一旦所述產(chǎn)品管理者302確定收集了所述軟件組件的必要需求,所述產(chǎn)品管理者302就可以創(chuàng)建組件的需求規(guī)范。所述產(chǎn)品管理者302在那個(gè)時(shí)候可以選擇性地終止所述合作論壇。
在一個(gè)實(shí)施例中,所述規(guī)范定義了商業(yè)計(jì)劃、穩(wěn)定的硬件和/或軟件平臺(tái)、或者其他體系結(jié)構(gòu)約束。例如,所述規(guī)范可以定義網(wǎng)絡(luò)裝置、服務(wù)器以及通用的基礎(chǔ)結(jié)構(gòu),以便支持項(xiàng)目和產(chǎn)品的開發(fā)和生產(chǎn)。所述規(guī)范還可以識(shí)別組件必須依照其進(jìn)行編制的語言,軟件組件的功能概述、邊界約束、效率需求、計(jì)算機(jī)平臺(tái)需求、接口要求、性能標(biāo)準(zhǔn)、測試?yán)枨蠛?或組件的文件需求。在一些實(shí)施例中,所述規(guī)范可以包括將支付給提交最佳設(shè)計(jì)的設(shè)計(jì)者的適量貨幣。
一旦完成所述規(guī)范,所述產(chǎn)品管理者302向其他組員傳達(dá)所述規(guī)范(步驟416)。此傳達(dá)可以經(jīng)由通信網(wǎng)絡(luò)112(圖1)進(jìn)行,諸如經(jīng)由電子郵件消息來執(zhí)行,在瀏覽器116可訪問的網(wǎng)頁上經(jīng)由新聞組、傳真或者其他通信方式來發(fā)送。所述產(chǎn)品管理者302可以與設(shè)計(jì)師208和/或任何其他組員212,216通信,以便獲得對(duì)所述規(guī)范的評(píng)價(jià)和/或建議。在一個(gè)實(shí)施例中,所述產(chǎn)品管理者302向開發(fā)評(píng)審委員會(huì)310的一個(gè)或多個(gè)成員傳達(dá)所述規(guī)范。在一個(gè)實(shí)施例中,所述開發(fā)評(píng)審委員會(huì)310依照如上所述的方法選擇所述主要開發(fā)評(píng)審委員會(huì)成員316。所述開發(fā)評(píng)審委員會(huì)還可以評(píng)審(并且在一些實(shí)施例中選擇)主要開發(fā)評(píng)審委員會(huì)成員316的工作。所述主要開發(fā)評(píng)審委員會(huì)成員316然后開發(fā)對(duì)組件的測試計(jì)劃(步驟420),如上所述。所述程序員322然后開發(fā)用于滿足由所述規(guī)范描述的所有需求的組件(步驟424)。一旦開發(fā)了所述組件,主要開發(fā)評(píng)審委員會(huì)成員316就測試完成的組件(步驟428)。如果所述軟件組件通過主要開發(fā)評(píng)審委員會(huì)成員316的測試(并且在一些實(shí)施例中是主要設(shè)計(jì)師評(píng)審委員會(huì)成員308和/或產(chǎn)品管理者302),那么將所述組件添加到組件目錄(步驟432)。
在一個(gè)實(shí)施例中,所述產(chǎn)品管理者302可以證明組件可以在多個(gè)計(jì)算環(huán)境中操作(步驟436),其中所述計(jì)算環(huán)境可以包括硬件平臺(tái)、操作系統(tǒng)、應(yīng)用服務(wù)器、連網(wǎng)協(xié)議、數(shù)據(jù)庫管理系統(tǒng)等等的變化或者組合。例如,讓開發(fā)的軟件組件在運(yùn)行WINDOWS 2000 Server的基于Intel的PC上操作、并且證明SQLServer數(shù)據(jù)庫可以在具有Oracle數(shù)據(jù)庫的SUN Solaris服務(wù)器上操作,這是十分有益的。所述證明可以由作為證明庫一部分的評(píng)級(jí)開發(fā)成員來進(jìn)行。所述證明庫能訪問服務(wù)器104,以便在多個(gè)平臺(tái)組合上測試組件。在一些實(shí)施例中,所述證明庫包括被選擇以便證明組件的開發(fā)人員,并且對(duì)于每個(gè)完成了的證明將給予他們額定金額的補(bǔ)償。所選擇的開發(fā)人員可以是用于開發(fā)的開發(fā)人員或者其他開發(fā)人員。
在一個(gè)實(shí)施例中,所述主要體系結(jié)構(gòu)評(píng)審委員會(huì)成員308測試組件的功能,并且評(píng)審由所述開發(fā)小組200產(chǎn)生的可交付的內(nèi)容,諸如源代碼以及文檔。此外,如果所述組件足以通過設(shè)計(jì)師的測試,那么所述主要體系結(jié)構(gòu)評(píng)審委員會(huì)成員308可以向產(chǎn)品管理者302傳達(dá)最后審批。所述產(chǎn)品管理者302還可以在批準(zhǔn)它們進(jìn)入組件目錄以前獨(dú)自驗(yàn)證可交付的內(nèi)容。在一些實(shí)施例中,所述組件可以由不同于提交組件的開發(fā)人員的開發(fā)人員來評(píng)審。
此外,在一些實(shí)施例中,所述組件基于組件在各種測試中執(zhí)行的好壞來進(jìn)行評(píng)分,其中所述各種測試是開發(fā)小組300應(yīng)用于所述組件的。例如,所述產(chǎn)品管理者302可以使用服務(wù)器104(圖1)來使組件經(jīng)歷一個(gè)或多個(gè)將開發(fā)小組300每個(gè)成員的貢獻(xiàn)作為目標(biāo)的測試,。使用此目標(biāo)測試的結(jié)果,所述產(chǎn)品管理者302(例如使用服務(wù)器104)可以獲得每個(gè)組員的組件開發(fā)得分,其因此能用來確定這種組員是否將用于后續(xù)組件開發(fā)項(xiàng)目。組員的評(píng)級(jí)是這樣一種過程,其包括但是不局限于組件的性能、按期遞送、任務(wù)完成以及可交付的有效性。
然后所述開發(fā)小組300可以確定如果所述組件的評(píng)分未曾達(dá)到上面預(yù)定的分值,那么不將所述組件添加到組件目錄。在一個(gè)實(shí)施例中,如果不添加所述組件,那么開發(fā)小組300的成員(例如開發(fā)人員322)在組件上所作的工作而得到補(bǔ)償不會(huì)象組件獲得較高得分那樣高。補(bǔ)償例如可以是以下形式現(xiàn)金補(bǔ)償、假期、有形對(duì)象、無形的對(duì)象或者其任意的組合。
參照?qǐng)D5,開發(fā)人員依照他們?cè)诰幋a競賽中的成績、他們?cè)谠O(shè)計(jì)、測試或者編碼組件中的成績、以及其它可能的因素,有選擇性地被評(píng)級(jí)(步驟508)。所述產(chǎn)品管理者302向開發(fā)人員傳達(dá)規(guī)范(步驟512)。在一些實(shí)施例中,所述產(chǎn)品管理者302只向具有評(píng)級(jí)的開發(fā)人員傳達(dá)所述規(guī)范,或者向評(píng)級(jí)值超過預(yù)定最小值的開發(fā)人員傳達(dá)。
開發(fā)人員響應(yīng)所述規(guī)范創(chuàng)建設(shè)計(jì)或者組件,并且提交那些設(shè)計(jì)或者組件給產(chǎn)品管理者302、主要體系結(jié)構(gòu)評(píng)審委員會(huì)成員308或者主要開發(fā)評(píng)審委員會(huì)成員316以供評(píng)審(步驟516)。
每個(gè)提交內(nèi)容因此能基于質(zhì)量標(biāo)準(zhǔn)被評(píng)分,所述質(zhì)量標(biāo)準(zhǔn)例如但不局限于功能、風(fēng)格、編碼標(biāo)準(zhǔn)的遵守、性能以及穩(wěn)定性(步驟520)。一旦評(píng)估了每個(gè)提交內(nèi)容,就將一個(gè)提交內(nèi)容選為成功提交內(nèi)容(步驟524)。然后所述產(chǎn)品管理者302使用如下所述的任何方法分配一部分收入給創(chuàng)作成功提交內(nèi)容的開發(fā)人員(步驟528)。
參照?qǐng)D6,在一個(gè)特殊的實(shí)施例中,產(chǎn)品管理者302進(jìn)行市場調(diào)查(步驟602)以便確定對(duì)特定軟件組件的需要?;谘芯拷Y(jié)果,所述產(chǎn)品管理者302規(guī)定軟件組件的設(shè)計(jì)要求(步驟604)。
所述產(chǎn)品管理者302識(shí)別(其可以包括選擇)體系結(jié)構(gòu)評(píng)審委員會(huì)304的成員(步驟606),并且向體系結(jié)構(gòu)評(píng)審委員會(huì)304提供所述規(guī)范(步驟608)。在一個(gè)實(shí)施例中,所述產(chǎn)品管理者302將所述規(guī)范置于網(wǎng)絡(luò)服務(wù)器上,以便可以由體系結(jié)構(gòu)評(píng)審委員會(huì)304訪問。
所述體系結(jié)構(gòu)評(píng)審委員會(huì)304可以是早已確定的,作為持久體系結(jié)構(gòu)評(píng)審委員會(huì)304,或者所述體系結(jié)構(gòu)評(píng)審委員會(huì)304成員可以被識(shí)別為此特定組件的體系結(jié)構(gòu)評(píng)審委員會(huì)304成員。在一個(gè)實(shí)施例中,所述體系結(jié)構(gòu)評(píng)審委員會(huì)304成員由產(chǎn)品管理者302通過他們的專業(yè)技術(shù)、他們的評(píng)級(jí)以及他們參與此能力所表示的意愿的一個(gè)或多個(gè)來選擇。在一個(gè)實(shí)施例中,所述體系結(jié)構(gòu)評(píng)審委員會(huì)304成員因?yàn)樗麄冊(cè)谠u(píng)審委員會(huì)304中的參與而獲得補(bǔ)償。
在一個(gè)實(shí)施例中,所述體系結(jié)構(gòu)評(píng)審委員會(huì)304對(duì)公眾成員開放。在另一個(gè)實(shí)施例中,所述體系結(jié)構(gòu)評(píng)審委員會(huì)304限于已經(jīng)參與至少一個(gè)設(shè)計(jì)或者編碼競賽,并且基于他們的競賽成績被選擇性地預(yù)先鑒定的軟件設(shè)計(jì)師(步驟610)。在另一個(gè)實(shí)施例中,只有一個(gè)或多個(gè)競賽中出色的設(shè)計(jì)者才有參與體系結(jié)構(gòu)評(píng)審委員會(huì)304的資格。
例如,一系列競賽可用于從大量競賽者中識(shí)別出色的開發(fā)人員。作為選擇,可以要求體系結(jié)構(gòu)評(píng)審委員會(huì)304成員周期地具有在此過程中選擇的組件。一旦所述產(chǎn)品管理者302提供所述體系結(jié)構(gòu)評(píng)審委員會(huì)成員對(duì)所述規(guī)范的訪問,委員會(huì)成員304就評(píng)審所述規(guī)范以便理解所述設(shè)計(jì)要求(步驟612)。所述委員會(huì)成員304可以請(qǐng)求澄清或者修正規(guī)范,并且所述產(chǎn)品管理者302可以響應(yīng)。以這種方式,所述評(píng)審委員會(huì)成員304確信他們理解他們將評(píng)估的組件的需求。
當(dāng)所述體系結(jié)構(gòu)評(píng)審委員會(huì)304已經(jīng)評(píng)審了設(shè)計(jì)需求規(guī)范時(shí),將所述需求提供給設(shè)計(jì)者。在一些實(shí)施例中,在被授權(quán)訪問所述設(shè)計(jì)規(guī)范之前,軟件設(shè)計(jì)師308,308′以及308”(通稱為308)如上所述基于評(píng)級(jí)、技能或者其他標(biāo)準(zhǔn)被預(yù)先鑒定。所述產(chǎn)品管理者302或者體系結(jié)構(gòu)評(píng)審委員會(huì)304的成員賦予滿足預(yù)先鑒定要求的設(shè)計(jì)者對(duì)規(guī)范的訪問權(quán)。在一些實(shí)施例中,訪問可以通過網(wǎng)頁(其可以要求對(duì)訪問的認(rèn)證)、通過電子郵件或者其他技術(shù)來授權(quán)。所述設(shè)計(jì)者308可以評(píng)審所述規(guī)范(步驟616,616’以及616”)以及開發(fā)設(shè)計(jì)(步驟618,618’以及618”)。當(dāng)設(shè)計(jì)者308已經(jīng)完成了他的或者她的設(shè)計(jì)時(shí),設(shè)計(jì)者308向體系結(jié)構(gòu)評(píng)審委員會(huì)304提交所述設(shè)計(jì)(步驟620,620’以及620”)。
所述設(shè)計(jì)可以采用多個(gè)形式,這取決于指定的組件。通常,組件的規(guī)范將包括設(shè)計(jì)需求。在一個(gè)實(shí)施例中,所述設(shè)計(jì)包括類圖,其可以依照統(tǒng)一建模語言(UML),例如使用Poseideon Computer Aided SoftwareEngineering(CASE)工具來開發(fā),所述工具可以從德國的Gentleware AGof Hamburg購買到。所述設(shè)計(jì)還包括使用用例圖以及順序圖。所述設(shè)計(jì)還包括編寫用于描述所述設(shè)計(jì)的組件設(shè)計(jì)規(guī)范、所要求的算法列表以及用于設(shè)計(jì)中類的分類存根。所述設(shè)計(jì)還包括可用于測試程序的功能測試。在這種實(shí)施例之一中,所述功能測試是與測試基礎(chǔ)結(jié)構(gòu)的JUnit兼容的測試。JUnit是用于測試Java軟件的開放式源軟件,其可以從www.sourceforge.net中獲得。
所述體系結(jié)構(gòu)評(píng)審委員會(huì)304評(píng)審接收到的設(shè)計(jì)(步驟622)。在一個(gè)實(shí)施例中,此評(píng)審包括由主要評(píng)審者進(jìn)行的第一篩選評(píng)審,然后通過評(píng)審委員會(huì)的其他成員進(jìn)行進(jìn)一步評(píng)審。第一篩選評(píng)審確定包括設(shè)計(jì)所要求的元素(例如,類、用例以及順序圖、組件規(guī)范、所要求的算法、分類存根以及功能測試)。
篩選評(píng)審還可以確定完整的呈現(xiàn)了這些元素。例如就類圖而言,并且依照特定的類定義,篩選評(píng)審可以確定下述內(nèi)容的一項(xiàng)或所有(1)所述類定義提供類用途的描述性概述,(2)子程序包以及被創(chuàng)建以便區(qū)分功能,(3)類范圍匹配類用途,(4)存在程序設(shè)計(jì)技術(shù)的正確并且有效的使用,諸如繼承以及抽象,(5)正確地使用接口,(6)為所述組件定義適當(dāng)?shù)臉?gòu)造函數(shù),以及(7)適當(dāng)?shù)厥褂妙愋揎?,諸如最后的、靜態(tài)的。就變量定義而言,所述篩選評(píng)審例如還可以確定(1)正確定義變量作用域,(2)為效率和靈活性之間的平衡適當(dāng)?shù)囟x類型分配,以及(3)將所有變量定義具有初始值。此外,例如就方法定義而言,所述篩選評(píng)審可以確定(1)正確定義范圍,異常被適當(dāng)?shù)夭僮鞑⑶沂褂茫_地使用修飾,使用返回值類型,正確地定義方法參數(shù),以及按照需求規(guī)范中申明的應(yīng)用編程接口(API)是有效的。
所述篩選評(píng)審例如還可以驗(yàn)證在所述設(shè)計(jì)中所有公共方法存在的用例圖,并且驗(yàn)證每個(gè)用例存在的順序圖。就測試?yán)?,所述篩選評(píng)審例如還可以驗(yàn)證提供給每個(gè)順序圖的功能測試?yán)约膀?yàn)證它們好像是適合于那些圖。
在一個(gè)實(shí)施例中,所述初始篩選將條目的數(shù)目減少到評(píng)審委員會(huì)用于評(píng)審的可管理的數(shù)目,諸如5個(gè)條目。
所述體系結(jié)構(gòu)評(píng)審委員會(huì)評(píng)估所述設(shè)計(jì)以便確定他們是否符合所述規(guī)范(步驟624)。在進(jìn)行初始篩選的實(shí)施例中,評(píng)審委員會(huì)的成員均執(zhí)行評(píng)審以便評(píng)估提交內(nèi)容。
在一些實(shí)施例中,例如基于設(shè)計(jì)的質(zhì)量以及它符合規(guī)范中說明的需求的好壞,所述體系結(jié)構(gòu)評(píng)審委員會(huì)304可以計(jì)算提交內(nèi)容的得分。例如,評(píng)審委員會(huì)成員將確定是否可以進(jìn)行以下操作并且到何種程度(1)所述設(shè)計(jì)解決了在功能說明中詳細(xì)描述的需求,(2)所述設(shè)計(jì)有效地使用所有需求的技術(shù)(例如,語言、所要求的組件等等),(3)所述設(shè)計(jì)結(jié)合有效的標(biāo)準(zhǔn)設(shè)計(jì)模式以及方法論,(4)所述設(shè)計(jì)平衡設(shè)計(jì)模式的使用以及所期望組件用途的原理,(5)除了最初打算的用途,所述設(shè)計(jì)解決結(jié)合附加功能以及特征。
在一些實(shí)施例中,每個(gè)體系結(jié)構(gòu)評(píng)審委員會(huì)成員還嚴(yán)格地評(píng)估設(shè)計(jì)元素的程度。例如,就類圖而言,具體來講,例如就類定義而言,所述體系結(jié)構(gòu)評(píng)審委員會(huì)成員評(píng)估所述類圖是否精確地并且徹底地描述了所要求的組件元素。所述委員會(huì)成員還評(píng)估所述設(shè)計(jì)是否適當(dāng)?shù)馁x予所期望的組件用途以及吞吐量需求。就變量定義而言,所述委員會(huì)成員評(píng)估變量類型是否適合于所期望的組件用途,并且確定所使用的變量是否滿足最小值和最大值參數(shù)。就方法定義而言,所述委員會(huì)成員評(píng)估以下內(nèi)容的程度(1)定義的方法正確陳述在所述需求規(guī)范中定義的API需求,(2)所述方法提供對(duì)定義變量的訪問以及正確封裝,以及(3)所述異常定義是預(yù)期的異常的詳表。所述委員會(huì)成員還可以評(píng)估(1)是否很好地定義了類關(guān)系,(2)用例表是否徹底地描述了類用途,(3)所述順序圖是否徹底地描述了類之間的順序交互,(4)所述組件規(guī)范是否向待實(shí)現(xiàn)的此設(shè)計(jì)提供了足夠的信息,是否詳細(xì)描述了對(duì)于所定義的方法應(yīng)該如何處理非法參數(shù),并且是否詳細(xì)描述了所定義方法拋出的異常,以及(5)那些測試?yán)欠駨氐椎夭⑶揖_地闡明組件功能。所述委員會(huì)成員因此能給每個(gè)條目指定總體得分。
例如,所述體系結(jié)構(gòu)評(píng)審委員會(huì)304成員可以使用圖1的服務(wù)器104來向其他委員會(huì)成員錄制和傳達(dá)他們的組件設(shè)計(jì)評(píng)估。在一個(gè)實(shí)施例中,所述委員會(huì)成員使用在線的評(píng)估表格來評(píng)估每個(gè)組件。所述委員會(huì)成員的評(píng)估因此能被識(shí)別,并且接到由委員會(huì)成員評(píng)級(jí)的組件。
在一個(gè)實(shí)施例中,所述體系結(jié)構(gòu)評(píng)審委員會(huì)304成員還可以使用圖1的服務(wù)器104來使設(shè)計(jì)經(jīng)歷一個(gè)或多個(gè)測試,所述一個(gè)或多個(gè)測試把規(guī)范中定義的個(gè)體需求作為目標(biāo)。使用這些目標(biāo)測試結(jié)果,體系結(jié)構(gòu)評(píng)審委員會(huì)304的成員(例如使用服務(wù)器104)可以獲得每個(gè)提交內(nèi)容的設(shè)計(jì)得分?;谔峤粌?nèi)容的評(píng)估,所述體系結(jié)構(gòu)評(píng)審委員會(huì)304選擇一個(gè)設(shè)計(jì)作為成功提交內(nèi)容(步驟626)。
在一些情況下,基于由評(píng)審者識(shí)別的附加思想和問題,需要對(duì)設(shè)計(jì)進(jìn)行修改,即使所述設(shè)計(jì)具有很高的得分。在一個(gè)實(shí)施例中,所述體系結(jié)構(gòu)評(píng)審委員會(huì)304將所述設(shè)計(jì)送回給提交了成功設(shè)計(jì)的設(shè)計(jì)者308,以及修改建議、對(duì)確定修改的明確指示或者其他命令等等。在一些實(shí)施例中,所述主要體系結(jié)構(gòu)評(píng)審委員會(huì)成員進(jìn)行修改。所述設(shè)計(jì)者308將所述改變并入設(shè)計(jì)(步驟628),并且向體系結(jié)構(gòu)評(píng)審委員會(huì)304重新提交所述設(shè)計(jì)(步驟630)。然后所述體系結(jié)構(gòu)評(píng)審委員會(huì)304執(zhí)行所述設(shè)計(jì)的最終質(zhì)量控制評(píng)審(步驟632),并且向產(chǎn)品管理者302發(fā)送設(shè)計(jì)。所述產(chǎn)品管理者302因此能基于所述成功設(shè)計(jì)來使用該設(shè)計(jì)征求開發(fā)軟件組件(步驟634),例如參照?qǐng)D7進(jìn)一步說明的那樣。所述產(chǎn)品管理者302還可以支付成功設(shè)計(jì)者308報(bào)酬,所述報(bào)酬或者是一般的收費(fèi),或者使用如下所述的方法。
參照?qǐng)D7,軟件設(shè)計(jì)一旦是有效的,例如通過使用圖6的方法或其他,那么所述設(shè)計(jì)可用于簡化軟件組件的開發(fā)。
所述產(chǎn)品管理者302識(shí)別開發(fā)評(píng)審委員會(huì)310的成員(步驟702)。此可選擇性地包括為所述組件在前或者當(dāng)前選擇的開發(fā)評(píng)審委員會(huì)。所述產(chǎn)品管理者302將所述設(shè)計(jì)提供給開發(fā)評(píng)審委員會(huì)310(步驟704)。在一個(gè)實(shí)施例中,所述產(chǎn)品管理者302將所述設(shè)計(jì)置于網(wǎng)絡(luò)服務(wù)器上,以便可以由開發(fā)評(píng)審委員會(huì)訪問。
所述開發(fā)評(píng)審委員會(huì)310可以早已作為持久開發(fā)評(píng)審委員會(huì)310被確定,或者所述開發(fā)評(píng)審委員會(huì)310成員可以作為特定組件或者組件組的開發(fā)評(píng)審委員會(huì)成員被識(shí)別。在一個(gè)實(shí)施例中,所述開發(fā)評(píng)審委員會(huì)10成員由產(chǎn)品管理者302根據(jù)他們的專業(yè)技術(shù)、他們的評(píng)級(jí)以及他們參與此能力所表示的意愿的來選擇。在一個(gè)實(shí)施例中,所述開發(fā)評(píng)審委員會(huì)成員在將所述軟件組件提交之后被選擇,以便給予所有開發(fā)人員提交組件的時(shí)機(jī)。在一個(gè)實(shí)施例中,所述開發(fā)評(píng)審委員會(huì)310成員因?yàn)樗麄冊(cè)谠u(píng)審委員會(huì)310中的參與而獲得補(bǔ)償。此補(bǔ)償可以是認(rèn)可的形式,一般費(fèi)用或者按小時(shí)的費(fèi)用,或者是由組件產(chǎn)生的收益的百分比。
在一個(gè)實(shí)施例中,所述開發(fā)評(píng)審委員會(huì)310對(duì)公眾成員開放。在另一個(gè)實(shí)施例中,所述開發(fā)評(píng)審委員會(huì)310限于已經(jīng)參與至少一個(gè)設(shè)計(jì)或者編碼競賽的軟件開發(fā)人員,并且基于他們的競賽成績被選擇性地預(yù)先鑒定(步驟710)。在另一個(gè)實(shí)施例中,只有一個(gè)或多個(gè)競賽中出色的開發(fā)人員才有參與開發(fā)評(píng)審委員會(huì)310的資格。
例如,一系列競賽可用于從大量競賽者中識(shí)別出色的開發(fā)人員。作為選擇,開發(fā)評(píng)審委員會(huì)310成員可以被要求最近已經(jīng)提交了一個(gè)或多個(gè)成功組件或者設(shè)計(jì)。一旦所述產(chǎn)品管理者302授權(quán)所述開發(fā)評(píng)審委員會(huì)310對(duì)所述規(guī)范的訪問,委員會(huì)成員就評(píng)審所述規(guī)范以便理解所述開發(fā)要求,如上所述(步驟708)。所述開發(fā)評(píng)審委員會(huì)成員310可以請(qǐng)求澄清或者修正規(guī)范,并且所述產(chǎn)品管理者302可以響應(yīng)。以這種方式,所述開發(fā)評(píng)審委員會(huì)310可確信他們將評(píng)估的組件的需求。
在一些實(shí)施例中,在被授權(quán)訪問所述設(shè)計(jì)之前,所述軟件開發(fā)人員(也稱為程序員)314,314’和314”(通稱為314)也被預(yù)先鑒定(步驟710、710’以及710”),這與如上所述的委員會(huì)成員相似(例如評(píng)級(jí)等等)或者不同。然后所述產(chǎn)品管理者302或者開發(fā)評(píng)審委員會(huì)310的成員授權(quán)那些滿足預(yù)先鑒定要求的開發(fā)人員對(duì)設(shè)計(jì)的訪問權(quán)。在一些實(shí)施例中,所述訪問可以通過以下方式被授權(quán),所述方式為開發(fā)人員314輸入密碼,開發(fā)人員314操縱用于檢驗(yàn)開發(fā)人員資格的特定網(wǎng)頁,產(chǎn)品管理者302將所述規(guī)范利用電子郵件發(fā)送給開發(fā)人員314,或者其他類似手段。
一旦授權(quán)對(duì)規(guī)范進(jìn)行訪問,所述開發(fā)人員314因此能評(píng)審所述規(guī)范(步驟712,712’以及712”),并且開始開發(fā)與發(fā)送的設(shè)計(jì)一致的軟件組件(步驟714,714’以及714”)。一旦開發(fā)人員314已經(jīng)完成開發(fā)他們的軟件組件,所述開發(fā)人員314就向開發(fā)評(píng)審委員會(huì)310提交所述組件(步驟716,716以及716”)。
在一些實(shí)施例中,所述組件歷經(jīng)同等評(píng)審過程。所述同等評(píng)審過程允許開發(fā)人員測試并且評(píng)審由其他開發(fā)人員開發(fā)的組件。例如,開發(fā)人員314可以創(chuàng)建軟件組件,并且在提交之前,開發(fā)人員314”可以使所述組件經(jīng)歷一個(gè)或多個(gè)測試以便確定組件的質(zhì)量。如上所述,所述開發(fā)人員314,314’以及314”通常具有最小值,或者彼此沒有優(yōu)先的關(guān)系。在一個(gè)示范性的實(shí)施例中,所述開發(fā)人員使用在線的綽號(hào)而不是他們的真實(shí)身份。因?yàn)樗鼋M件歷經(jīng)此獨(dú)立的并且不記名的同等評(píng)審過程,所以提交的組件質(zhì)量將會(huì)很好。
所提交的組件可以采用多個(gè)形式,這取決于規(guī)定的組件。通常,組件的規(guī)范將包括開發(fā)組件的需求。在一個(gè)實(shí)施例中,開發(fā)的組件包括源代碼,其可以依照J(rèn)ava程序設(shè)計(jì)語言來編寫,例如使用來自于California,Santa Clara的Sun Microsystems的Java 2 MicroEdition(J2ME)開發(fā)平臺(tái)。所述組件還包括單元測試?yán)?,并且相?duì)于測試?yán)涗洺晒ξ臋n化的執(zhí)行過程。所述組件還包括文檔。在這種實(shí)施例之一中,所述文件一致于Javadoc類型文檔。所述組件還包括使用指南。
所述開發(fā)評(píng)審委員會(huì)310評(píng)審接收到的組件(步驟718)。在一個(gè)實(shí)施例中,此評(píng)審包括由主要評(píng)審者進(jìn)行的第一篩選評(píng)審,然后通過開發(fā)評(píng)審委員會(huì)310的其他成員進(jìn)行進(jìn)一步評(píng)審。第一篩選評(píng)審確定設(shè)計(jì)所要求的元素被包括并且是起作用的(例如,源代碼、單元測試?yán)?、文件、記錄文件以及使用指?。
篩選評(píng)審還可以確定這些元素是完整的。例如就源代碼而言,所述篩選評(píng)審可以確定以下項(xiàng)的任意或者所有(1)明顯地注解所有公共方法;(2)包括所需要的標(biāo)記諸如“@_author”、“@_param”、“@_returm”、“@_throws”以及“@_version”;(3)填充版權(quán)標(biāo)記;(4)所述源代碼跟隨Java語言的標(biāo)準(zhǔn)編碼約定,諸如由Sun Microsystems出版的那些;(5)將4個(gè)空格縮格用于代替tab縮格;以及(6)在所述類圖中找到的所有類、方法以及變量定義被精確地依照源代碼表示。所述開發(fā)篩選評(píng)審例如還可以驗(yàn)證存在于所述設(shè)計(jì)中所有公共方法的單元測試?yán)?,并且每個(gè)單元測試由一種測試程序正確地識(shí)別。
在一個(gè)實(shí)施例中,所述初始開發(fā)篩選過程將條目的數(shù)目減少到開發(fā)評(píng)審委員會(huì)310評(píng)審的可管理數(shù)目,諸如5個(gè)條目。
所述開發(fā)評(píng)審委員會(huì)310評(píng)估組件以便確定它們是否符合所述設(shè)計(jì)(步驟720)。在進(jìn)行初始篩選的實(shí)施例中,評(píng)審委員會(huì)的成員均執(zhí)行評(píng)審以便評(píng)估所提交的組件。
所述開發(fā)評(píng)審者相對(duì)于所述設(shè)計(jì)評(píng)估組件編碼。在一個(gè)實(shí)施例中,例如就所述組件而言,所述評(píng)審者評(píng)估以下內(nèi)容的程度(1)所述實(shí)現(xiàn)闡明在組件設(shè)計(jì)文檔中詳細(xì)描述的功能;(2)所述實(shí)現(xiàn)正確使用所有要求的技術(shù)(例如語言、所需要的組件等等)以及程序包;(3)所述實(shí)現(xiàn)正確地實(shí)現(xiàn)所要求的算法;(4)所述實(shí)現(xiàn)已經(jīng)依照設(shè)計(jì)中的定義正確實(shí)現(xiàn)(而非修改)公共應(yīng)用編程接口(API),沒有附加公共分類、方法或者變量。
例如就類定義而言,所述評(píng)審者評(píng)估按照設(shè)計(jì)文件中的定義實(shí)現(xiàn)的分類的程度(例如包括修飾、類型以及命名規(guī)則)并且評(píng)估所定義的分類是否被實(shí)現(xiàn)。例如就變量定義以及方法定義而言,所述評(píng)審者評(píng)估所有變量以及方法按照設(shè)計(jì)文件中的定義來實(shí)現(xiàn)的程度(例如包括修改量、類型以及命名規(guī)則)。例如就關(guān)系而言,所述評(píng)審者評(píng)估所述實(shí)現(xiàn)正確映射分類關(guān)系的程度。
所述評(píng)審者還可以通過執(zhí)行代碼評(píng)審來進(jìn)一步評(píng)估所述編碼。例如,所述評(píng)審者可以確定在實(shí)現(xiàn)中定義的對(duì)象類型是所期望用途的最佳選擇的程度,例如是否本應(yīng)代替數(shù)組類型而使用向量類型。所述評(píng)審者可以確定存在任何不必要的循環(huán)、或者粗略的對(duì)象實(shí)例化或者變量分配的程度。例如就測試?yán)?,所述評(píng)審者可以確定以下內(nèi)容的程度(1)所述單元測試?yán)龔氐椎販y試所有方法以及構(gòu)造函數(shù);(2)所述單元測試?yán)_地使用安裝和卸載方法以便配置測試環(huán)境;(3)用于單元測試?yán)奈募嬖谟谥付夸浿校?4)在測試完成之后,單元測試?yán)龥]有在文件系統(tǒng)上留下臨時(shí)文件。
所述評(píng)審者甚至可以通過進(jìn)行準(zhǔn)確性、故障以及壓力測試來進(jìn)一步評(píng)估所述編碼。準(zhǔn)確性測試可以當(dāng)提供有效輸入時(shí)測試輸出結(jié)果的準(zhǔn)確性。準(zhǔn)確性測試還可以確認(rèn)配置數(shù)據(jù)。故障測試用于當(dāng)所述組件具有無效輸入時(shí)測試校正故障行為,所述無效輸入諸如錯(cuò)誤的數(shù)據(jù)以及不正確的使用。壓力測試用于測試組件大量操作的能力,但是將其作為吞吐量的性能來測試這種特征。失效的測試被歸入組件的評(píng)估,例如作為得分減少。每個(gè)評(píng)審者因此能根據(jù)此評(píng)估為組件分配總體得分。
在一個(gè)實(shí)施例中,所述開發(fā)評(píng)審委員會(huì)成員310可以使用圖1的服務(wù)器104來使所述設(shè)計(jì)經(jīng)歷一個(gè)或多個(gè)測試,所述一個(gè)或多個(gè)測試?yán)绨言O(shè)計(jì)中定義的個(gè)體需求作為目標(biāo)。使用這些目標(biāo)測試的結(jié)果,開發(fā)評(píng)審委員會(huì)的成員(例如使用服務(wù)器104)可以獲得每個(gè)提交內(nèi)容的總得分。
例如,所述開發(fā)評(píng)審委員會(huì)成員310可以使用圖1的服務(wù)器104來向其他委員會(huì)成員錄制和傳達(dá)他們的組件設(shè)計(jì)評(píng)估。在一個(gè)實(shí)施例中,所述委員會(huì)成員使用在線的評(píng)估表格來評(píng)估每個(gè)組件。所述委員會(huì)成員的評(píng)估因此能被識(shí)別,并且組件自動(dòng)地被接收的委員會(huì)成員得分評(píng)級(jí)。基于提交內(nèi)容的評(píng)估,所述開發(fā)評(píng)審委員會(huì)310選擇一個(gè)設(shè)計(jì)作為成功提交內(nèi)容(步驟722)。
在一些情況下,對(duì)于成功組件可能需要修改。在這些情況下,所述開發(fā)評(píng)審委員會(huì)310將所述組件送回給提交了成功組件的組件開發(fā)人員314,以及修改建議、對(duì)確定修改的明確指示或者其他命令等等。所述開發(fā)人員314將一些或者所有改變并入組件(步驟724),并且向開發(fā)評(píng)審委員會(huì)310重新提交組件(步驟726)。所述開發(fā)評(píng)審委員會(huì)310因此能執(zhí)行組件的最終質(zhì)量控制評(píng)審(步驟728),并且向產(chǎn)品管理者302發(fā)送所述組件。所述產(chǎn)品管理者302因此能在組件目錄中包括所述組件,如下所述,并且進(jìn)行有效組件的分送(步驟730)。所述產(chǎn)品管理者302還可以給予成功開發(fā)人員314報(bào)酬,這可以使用如下所述的任一項(xiàng)方法(步驟732)。
參照?qǐng)D8,所述服務(wù)器104可以包括多個(gè)模塊,用于簡化組件的開發(fā)和/或區(qū)別。例如,組件開發(fā)子系統(tǒng)800可以簡化如上所述的開發(fā)過程。所述組件開發(fā)子系統(tǒng)800利用開發(fā)小組200簡化組件開發(fā),并且與許多不同的模塊通信,以便實(shí)現(xiàn)分布小組開發(fā)過程。
在一個(gè)實(shí)施例中,并且如以下更加詳細(xì)所描述的,所述服務(wù)器104可以包括組件目錄804。所述組件目錄804存儲(chǔ)由開發(fā)小組200開發(fā)的組件。在一個(gè)實(shí)施例中,所述組件目錄804向潛在的買方提供與有效組件有關(guān)的信息的目錄或者指南。例如,在選擇特殊的組件以前,服務(wù)器104的顧客可以瀏覽組件目錄804的指南以及與組件目錄804中每個(gè)組件有關(guān)的信息。一旦所述服務(wù)器104(或者組件目錄804的管理員)接收所需要的費(fèi)用支付或者組件的授權(quán)信息,所述服務(wù)器104就經(jīng)由通信網(wǎng)絡(luò)112下載所述組件至客戶端108。以下將參照?qǐng)D10進(jìn)一步描述所述組件目錄。
所述服務(wù)器104還包括通信工具808。在一個(gè)實(shí)施例中,所述通信工具808是用于簡化開發(fā)小組200的組員204,208,212,216之間通信的工具。通信工具808的例子包括但是不局限于能夠在組員204,208,212,216之間實(shí)時(shí)通信(例如閑談)的模塊、新聞組、在線會(huì)議以及文檔合作工具。
此外,所述服務(wù)器104還可以包括組件孵化器812。所述組件孵化器812是能夠使用戶提交組件建議或者組件的修改的模塊,其可以稍后作為市場調(diào)查的基礎(chǔ)。
所述服務(wù)器104可以包括需求設(shè)計(jì)子系統(tǒng)816。所述需求設(shè)計(jì)子系統(tǒng)816使所述產(chǎn)品管理者204以及設(shè)計(jì)師208能瀏覽和評(píng)價(jià)需求規(guī)范。在進(jìn)一步的實(shí)施例中,所述需求設(shè)計(jì)子系統(tǒng)816使產(chǎn)品管理者204以及設(shè)計(jì)師208能創(chuàng)建、編輯、下載、上載和/或批準(zhǔn)規(guī)范中的需求(例如,經(jīng)由通信網(wǎng)絡(luò)112)。在一個(gè)實(shí)施例中,所述需求設(shè)計(jì)系統(tǒng)可以共享并且操縱UML中的模型。
所述服務(wù)器104另外包括開發(fā)傳送子系統(tǒng)820。所述開發(fā)傳送子系統(tǒng)820使所述服務(wù)器104或者產(chǎn)品管理者204能與潛在的開發(fā)小組成員通信,以便促進(jìn)開發(fā)項(xiàng)目并且開發(fā)有助于形成組件目錄的貢獻(xiàn)者社團(tuán)。在一個(gè)實(shí)施例中,所述開發(fā)傳送子系統(tǒng)820向潛在的開發(fā)小組成員顯示廣告。在一個(gè)實(shí)施例中,所述廣告使用文本、圖形、視頻和/或音響來描述項(xiàng)目。所述廣告還可以描述在所述開發(fā)小組200中有效的職位。通信技術(shù)的例子包括但不限于在服務(wù)器的網(wǎng)絡(luò)站點(diǎn)上發(fā)送這些廣告,顯示有關(guān)所述項(xiàng)目的統(tǒng)計(jì)量(例如,給開發(fā)小組成員的計(jì)劃酬勞報(bào)酬、參與此項(xiàng)目的開發(fā)小組成員、每周有效的開發(fā)小時(shí))。此外,在一個(gè)實(shí)施例中,所述開發(fā)傳送子系統(tǒng)820接受與開發(fā)項(xiàng)目相關(guān)聯(lián)的查詢。在進(jìn)一步的實(shí)施例中,開發(fā)傳送子系統(tǒng)820建議競賽成員基數(shù)的成員形成處理查詢的開發(fā)小組。所述開發(fā)傳送子系統(tǒng)820例如可以分析編碼競賽成員基數(shù)的每個(gè)成員的評(píng)級(jí),在前開發(fā)項(xiàng)目的在前貢獻(xiàn),在前組件開發(fā)項(xiàng)目的貢獻(xiàn)質(zhì)量(例如,基于在完成組件時(shí)給予每個(gè)開發(fā)小組成員204,208,212,216的得分,如上所述),以及當(dāng)推薦競賽成員基數(shù)的成員作為開發(fā)小組200的一部分時(shí)的當(dāng)前有效潛在組員。所述產(chǎn)品管理者204可以或者不可以是剛才描述的廣告職位。
所述服務(wù)器104還包括管理子系統(tǒng)824。所述管理子系統(tǒng)824是用于向開發(fā)小組成員(例如開發(fā)人員212、QA開發(fā)人員216)分配收益的模塊。在一個(gè)實(shí)施例中,開發(fā)小組成員在組件許可或者組件拷貝出售上賺得酬勞。在進(jìn)一步的實(shí)施例中,所述管理子系統(tǒng)824使所述產(chǎn)品管理者204以及設(shè)計(jì)師208能瀏覽項(xiàng)目的查詢,并且基于來自于所述服務(wù)器104(即開發(fā)傳送子系統(tǒng)820)的推薦來選擇項(xiàng)目組。所述管理子系統(tǒng)824還可以跟蹤開發(fā)小組200生產(chǎn)的可交付產(chǎn)品(例如,源代碼、文檔以及方案),和/或能夠在開發(fā)組件之后對(duì)開發(fā)小組成員204,208,212,216進(jìn)行評(píng)審。所述管理子系統(tǒng)824還可以掃描開發(fā)小組成員信息,諸如但不局限于歷史、編碼競賽評(píng)級(jí)以及在先的工作經(jīng)歷。在一些實(shí)施例中,所述管理子系統(tǒng)824可以例如經(jīng)由圖形用戶界面向產(chǎn)品管理者204和/或設(shè)計(jì)師208顯示所述開發(fā)小組成員信息。
所述服務(wù)器104還包括軟件設(shè)計(jì)子系統(tǒng)828。所述軟件設(shè)計(jì)子系統(tǒng)828能夠使組員204,208,212,216之間彼此合作。更具體地說并且在一個(gè)實(shí)施例中,所述軟件設(shè)計(jì)子系統(tǒng)828使組員204,208,212,216能瀏覽設(shè)計(jì)文件和/或評(píng)論所述設(shè)計(jì)文件,所述設(shè)計(jì)文件諸如對(duì)象圖(例如,類圖以及用例圖等等)。在另一個(gè)實(shí)施例中,所述軟件設(shè)計(jì)子系統(tǒng)828使開發(fā)小組成員204,208,212,216能經(jīng)由通信網(wǎng)絡(luò)112創(chuàng)建、下載、上載和/或編輯設(shè)計(jì)文檔和/或體系結(jié)構(gòu)文檔。
此外,所述服務(wù)器還包括組件開發(fā)環(huán)境(CDE)832。所述CDE 832使組員204,208,212,216以及組件的潛在買方能通過將組件鏈接在一起來創(chuàng)建應(yīng)用。在一個(gè)實(shí)施例中,所述CDE 832是一種基于網(wǎng)頁的應(yīng)用(例如,小程序或者插件程序應(yīng)用)。在另外的實(shí)施例中,所述CDE 832被歸入所述客戶端軟件120。所述CDE 832還能夠?qū)⒔M件從如下所述的測試組件的QA應(yīng)用轉(zhuǎn)換為集成模塊(也如下所述),以便創(chuàng)建較大組件或者應(yīng)用。所述CDE 832還能夠?qū)ⅹ?dú)立的組件從QA移動(dòng)至生產(chǎn),和/或?qū)?yīng)用或者較大組件移動(dòng)到生產(chǎn)。所述CDE 832可以另外并入商業(yè)可得的集成開發(fā)環(huán)境(IDE)軟件。
所述服務(wù)器104另外包括質(zhì)量保證(QA)應(yīng)用836。所述QA應(yīng)用836能夠測試所有應(yīng)用和/或組件。在一個(gè)實(shí)施例中,所述QA應(yīng)用836執(zhí)行由QA開發(fā)人員216開發(fā)的測試?yán)4送?,所述QA應(yīng)用836可以對(duì)組件或者應(yīng)用執(zhí)行自動(dòng)測試,以便可以驗(yàn)證和/或測量存儲(chǔ)器利用率、線程利用率、諸如I/O利用率以及處理器負(fù)載之類的機(jī)器統(tǒng)計(jì)量。另外,所述QA應(yīng)用836可以通過性能、設(shè)計(jì)和/或功能為所述組件評(píng)分。此外,所述QA應(yīng)用836可以是用于同時(shí)測試多個(gè)組件的檢測設(shè)備。
在一個(gè)實(shí)施例中,所述服務(wù)器104可以包括封裝應(yīng)用840。所述封裝應(yīng)用840在可下載的文件(例如.ZIP文件、Java Archive(.JAR文件)或者動(dòng)態(tài)鏈接庫(.DLL)文件)中封裝可交付的內(nèi)容(例如,源文件、可執(zhí)行的文件、文檔和/或支持材料(例如XML,DDL))。在一個(gè)實(shí)施例中,當(dāng)顧客從所述組件目錄購買組件時(shí),所述封裝應(yīng)用840將這些可交付內(nèi)容封裝到可下載的文件中。所述封裝應(yīng)用840然后下載所述文件至客戶端108。
所述服務(wù)器104還包括組件陳列室844。所述組件陳列室844通過提供與所述組件有關(guān)的信息來同意組件的許可(和/或拷貝出售)以及使用。所述組件陳列室844還可以提供例如但不局限于表明組件用途、表明研究實(shí)例、提供相關(guān)組件以及應(yīng)用列表以及提供與標(biāo)價(jià)和/或許可有關(guān)的信息的能力。
雖然如上依照獨(dú)立的子系統(tǒng)以及模塊進(jìn)行了描述,但是這僅僅是為了舉例說明的目的,作為選擇,這些子系統(tǒng)以及模塊可以合并為一個(gè)或多個(gè)模塊或者子系統(tǒng)。例如,在另一個(gè)實(shí)施例中,所述組件開發(fā)模塊800可以執(zhí)行如上所述的許多功能。此外,如上所述的一個(gè)或多個(gè)子系統(tǒng)可以位于遠(yuǎn)離其他模塊的地方(例如,在服務(wù)器場中的另一個(gè)服務(wù)器104上執(zhí)行)。
參照?qǐng)D9,所述開發(fā)傳送子系統(tǒng)820包括網(wǎng)絡(luò)服務(wù)器902。所述產(chǎn)品管理者204可以使用網(wǎng)絡(luò)服務(wù)器902來向軟件小組200發(fā)送設(shè)計(jì)或者分送的規(guī)范。所述服務(wù)器104還包括評(píng)級(jí)引擎904。在一個(gè)實(shí)施例中,所述評(píng)級(jí)引擎904為一個(gè)或多個(gè)編碼競賽中的每個(gè)參與方計(jì)算評(píng)級(jí)。在其他實(shí)施例中,所述評(píng)級(jí)引擎可以基于各個(gè)成員對(duì)項(xiàng)目的貢獻(xiàn)來計(jì)算項(xiàng)目組200的成員評(píng)級(jí)。所述服務(wù)器104還包括接收模塊906。在一個(gè)實(shí)施例中,所述接收模塊906接收由項(xiàng)目組200的成員提交給開發(fā)傳送子系統(tǒng)820的計(jì)算機(jī)軟件設(shè)計(jì)。作為選擇,所述接收模塊906簡化從開發(fā)人員212的提交內(nèi)容的接收,所述開發(fā)人員212競爭開發(fā)小組200中的職位。所述服務(wù)器104還包括評(píng)分模塊908。在一個(gè)實(shí)施例中,所述體系結(jié)構(gòu)評(píng)審委員會(huì)304使用所述評(píng)分模塊908來評(píng)估由軟件設(shè)計(jì)師308提交的多個(gè)軟件設(shè)計(jì)。另外,所述開發(fā)評(píng)審委員會(huì)310可以使用評(píng)分模塊908來評(píng)估由程序員314提交的多個(gè)軟件組件。所述服務(wù)器104還包括評(píng)審模塊910。另外,開發(fā)人員可以使用評(píng)審模塊910來評(píng)審來自于其他開發(fā)人員的提交內(nèi)容。在一個(gè)實(shí)施例中,所述網(wǎng)絡(luò)服務(wù)器902、評(píng)級(jí)引擎904、接收模塊906、評(píng)分模塊908以及評(píng)審模塊都駐留在所述服務(wù)器104上。作為選擇,所述網(wǎng)絡(luò)服務(wù)器902、評(píng)級(jí)引擎904、接收模塊906、評(píng)分模塊908以及評(píng)審模塊910可以駐留在其他服務(wù)器或者遠(yuǎn)程設(shè)備上。
參照?qǐng)D10,所述組件目錄804包括組件存儲(chǔ)庫1004。所述組件存儲(chǔ)庫1004是用于服務(wù)器104可以公布以及賣給買方的那些組件的集中存儲(chǔ)器。在一個(gè)實(shí)施例中,將所述組件目錄804存儲(chǔ)在服務(wù)器104上。作為選擇,所述組件目錄804可以存儲(chǔ)在另一個(gè)服務(wù)器或者遠(yuǎn)程存儲(chǔ)裝置上(例如,數(shù)據(jù)庫服務(wù)器)。在一些實(shí)施例中,所述組件存儲(chǔ)庫1004向希望購買組件或者其信息的潛在買方提供用戶接口,通常,所述用戶接口生成由買方使用以便與所述服務(wù)器104通信的客戶端軟件120或者瀏覽器116的代碼。
所述組件目錄804另外包括信息模塊1008。所述信息模塊1008向所述組件存儲(chǔ)庫1004提供與所述組件有關(guān)的信息。例如,所述信息模塊1008可以提供或者包括列出服務(wù)器104支持組件的表,服務(wù)器104存儲(chǔ)在所述組件存儲(chǔ)庫1004中。此外,所述信息模塊1008還可以向組件存儲(chǔ)庫1004提供每個(gè)組件的文檔,諸如但不局限于組件的存儲(chǔ)器需求、效率、在QA測試中接收的得分以及開發(fā)小組200的成員。在一個(gè)實(shí)施例中,所述信息模塊1008與所述組件存儲(chǔ)庫1004通信,以便向所述組件存儲(chǔ)庫1004提供組件信息,以便例如使?jié)撛诘馁I方在選擇期間可以瀏覽組件信息(例如性能)。
所述組件目錄804還包括更新跟蹤模塊1012。所述更新跟蹤模塊1012確保組件存儲(chǔ)庫包含組件的最新版本。在一個(gè)實(shí)施例中,當(dāng)確定對(duì)顧客預(yù)先購買的組件進(jìn)行修改時(shí),所述組件目錄804接收改變。所述更新跟蹤模塊1012確保修改的組件被存儲(chǔ)在所述組件存儲(chǔ)庫1004中。在一些實(shí)施例中,所述更新跟蹤模塊1012警告產(chǎn)品管理者204或者設(shè)計(jì)師208所述修改。在又一實(shí)施例中,為了更加有效的更新,所述更新跟蹤模塊1012只將組件修改部分發(fā)送到組件存儲(chǔ)庫1004。在進(jìn)一步的實(shí)施例中,如果修改了組件,那么所述更新跟蹤模塊1012將消息發(fā)送給已經(jīng)預(yù)先購買了組件在前版本的所有顧客,以便通知顧客可以獲得新的版本,以及此版本和在前版本之間的不同。
所述組件目錄804另外包括從屬跟蹤模塊1016。所述從屬跟蹤模塊1016跟蹤在應(yīng)用中鏈接在一起的組件之間的從屬關(guān)系。例如,組件買方從服務(wù)器104購買組件A。組件A是由組件B、C和D組成的較大組件。如果組件C隨后被修改,那么在一個(gè)實(shí)施例中,所述服務(wù)器104通知所述買方組件C已經(jīng)修改,并且組件C與組件A失去依賴關(guān)系。然而,所述買方對(duì)組件A感興趣。如果所述買方只更新組件C,那么買方的組件A不可以操作,除非買方下載更新的組件B和D。所述從屬跟蹤模塊1016是用于跟蹤這種從屬關(guān)系的模塊。在一些實(shí)施例中,所述從屬跟蹤模塊1016通知顧客有關(guān)從屬關(guān)系。
所述組件目錄804還包括集成模塊1020。在一個(gè)實(shí)施例中,所述集成模塊1020集成組件目錄804中的組件以便形成較大組件或者應(yīng)用。例如,所述產(chǎn)品管理者204可以確定存在對(duì)特殊的組件A的需要。如果所述產(chǎn)品管理者204認(rèn)識(shí)到在組件目錄204中不存在組件A,但是認(rèn)識(shí)到存在也許能使用其他組件創(chuàng)建組件A的那些其他組件,那么產(chǎn)品管理者204可以計(jì)劃項(xiàng)目以便創(chuàng)建組件A。在一個(gè)實(shí)施例中,所述集成模塊1020便于將多個(gè)組件集成為一個(gè)較大的組件。
例如并且參照?qǐng)D11,組件目錄系統(tǒng)1100包括操作第一客戶端108的第一公司1104以及操作第二客戶端108’的第二公司1108。所述公司1104,1108經(jīng)由通信網(wǎng)絡(luò)112與所述服務(wù)器104通信。所述服務(wù)器104包括組件目錄804,并且所述組件目錄804包括更新跟蹤模塊1012。雖然沒有舉例說明,每個(gè)客戶端108,108’都包括各自的瀏覽器116,116’,所述服務(wù)器104包括如在圖8中所述的模塊(例如組件陳列室844),并且所述組件目錄804包括如上在圖10中所述的模塊(例如信息模塊1008)。
在一個(gè)實(shí)施例中,所述服務(wù)器104分別向第一以及第二公司1104,1108發(fā)送遠(yuǎn)程上載跟蹤模塊1112,1112’(通稱為1112)。當(dāng)公司1104,1108修改存儲(chǔ)在組件目錄804中的組件時(shí),每個(gè)遠(yuǎn)程上載跟蹤模塊1112與上載跟蹤模塊1012通信。另外,所述遠(yuǎn)程上載跟蹤模塊1112還使公司(例如1104,1108)能將他們的組件添加到組件目錄804,由此使所述組件對(duì)于其他公司可用。在一些實(shí)施例中,所述遠(yuǎn)程上載跟蹤模塊1112可以依照各種形式來實(shí)現(xiàn),例如,它可以是下載到客戶端108并且結(jié)合所述瀏覽器116和/或客戶端軟件120運(yùn)行的Java小程序,或者所述遠(yuǎn)程上載跟蹤模塊1112可以是獨(dú)立應(yīng)用的形式,依照諸如Java的多平臺(tái)語言或者依照本地處理器可執(zhí)行代碼來實(shí)現(xiàn)。此外,所述遠(yuǎn)程上載跟蹤模塊1112可以作為客戶端軟件120來實(shí)現(xiàn)。
在一個(gè)實(shí)施例中,第一公司1104產(chǎn)生組件1116的第一版本。在一個(gè)實(shí)施例中,所述遠(yuǎn)程上載跟蹤模塊1112然后自動(dòng)地將所述組件1116經(jīng)由通信網(wǎng)絡(luò)112發(fā)送到服務(wù)器104(例如,上載跟蹤模塊1012),以便添加到組件目錄804中。作為選擇,如果第一公司1108希望提交組件到組件目錄804,并且由此使所述組件對(duì)于其他公司可利用(例如第二公司1108),那么所述遠(yuǎn)程上載跟蹤模塊1112查詢第一公司1108(例如第一公司1104的雇員)。例如,所述遠(yuǎn)程上載跟蹤模塊1112經(jīng)由對(duì)話框查詢第一公司1104(例如,在所述瀏覽器116或者客戶端軟件120上顯示)。如果第一公司1104同意所述查詢(例如,從用于將組件1116添加到組件目錄804的會(huì)話中選擇YES),那么所述遠(yuǎn)程更新跟蹤模塊1112向所述服務(wù)器104發(fā)送組件1116,如箭頭1120所示。在一個(gè)實(shí)施例中,所述遠(yuǎn)程上載跟蹤模塊1112具有選項(xiàng)(例如復(fù)選框),以便將完成的組件發(fā)送到服務(wù)器104。一旦選擇了所述選項(xiàng),那么遠(yuǎn)程上載跟蹤模塊1112不查詢第一公司1104,而是自動(dòng)地將完成的組件發(fā)送到服務(wù)器104,并且如此這樣執(zhí)行,直到未選擇選項(xiàng)。另外,雖然朝向第一公司1104修改,但是所述描述還適用于第二公司1108。在另一個(gè)實(shí)施例中,諸如酬勞談判、工作確定等等的其他功能可以在將第三方組件添加到組件目錄804以前進(jìn)行。
在一個(gè)實(shí)施例中,所述上載組件在添加到組件目錄804之前經(jīng)歷此處所述的QA過程。在一個(gè)實(shí)施例中,當(dāng)接收組件1116的第一版本時(shí),所述服務(wù)器104使組件1116經(jīng)歷圖4中如上所述的一個(gè)或多個(gè)步驟。例如,所述服務(wù)器104在沒有對(duì)組件執(zhí)行QA測試時(shí),不添加組件1116到組件目錄804中(步驟428)。在另外的實(shí)施例中,所述服務(wù)器104不添加所述組件1116到組件目錄804,直到設(shè)計(jì)師208向所述產(chǎn)品管理者204提供最后批準(zhǔn)。由此,如果組件1116的版本1不滿足設(shè)計(jì)師208(和/或產(chǎn)品管理者204)的嚴(yán)格編碼標(biāo)準(zhǔn)需求,那么不將所述組件1116添加到組件目錄408。在進(jìn)一步的實(shí)施例中,所述服務(wù)器104通知第一公司1104所述組件1116不滿足組件目錄804條目中所要求的標(biāo)準(zhǔn)。所述服務(wù)器104可以另外提供第一公司1104在組件1116中發(fā)現(xiàn)的問題。
如果所述組件1116滿足服務(wù)器的需求,并且因此被添加到所述組件目錄804,那么服務(wù)器104因此能在組件目錄804中顯示組件1116,以便潛在的購買。由此,如果第二公司1108瀏覽組件目錄804(例如,經(jīng)由組件陳列室844),那么第二公司1108可以購買所述組件1116的版本1。在出售之后,所述服務(wù)器104隨后發(fā)送所述組件1116到第二公司1108,以箭頭1124說明。在一個(gè)實(shí)施例中,第一公司1104可以因?yàn)榻M件版本1的任何出售而得以補(bǔ)償。
參照?qǐng)D12,在一個(gè)實(shí)施例中,第二公司1108購買組件的版本1,并且隨后修改所述組件1116,依照修改箭頭1128示出。例如,修改被改進(jìn)(例如效率增加、減小內(nèi)存需求)、刪除(例如不必要的步驟或者特征)以及向所述組件1116的添加(例如,免費(fèi)贈(zèng)送的特征或功能)。修改的另一個(gè)例子是組件1116到另一個(gè)組件(例如較大組件)中的集成。響應(yīng)所述修改,組件1116的版本1例如變成組件1116’的版本1.1。在一個(gè)實(shí)施例中,所述遠(yuǎn)程更新跟蹤模塊1112將消息發(fā)送到服務(wù)器104,用于聲明第二公司1108已經(jīng)修改了組件1116。在進(jìn)一步的實(shí)施例中,所述遠(yuǎn)程更新跟蹤模塊1112然后向服務(wù)器104發(fā)送(或者例如查詢以及發(fā)送)修改的版本1.1,如箭頭1132所示。當(dāng)收到組件1116’的版本1.1時(shí),所述服務(wù)器104和/或開發(fā)小組成員通過執(zhí)行圖4中示出的步驟來確定修改的組件1116’是否可以添加到組件目錄804。在一個(gè)實(shí)施例中,當(dāng)組件1116’的版本1.1.添加到組件目錄804中時(shí),版本1.1.替換組件1116的版本1。作為選擇,組件1116’的版本1.1被作為另一個(gè)組件添加到組件目錄804中。組件1116’的版本1.1的置換或者添加可以取決于相對(duì)于組件版本1的改變量。此外,所述更新跟蹤模塊1012可以通知預(yù)先購買組件1116的版本1的每個(gè)顧客更新方案1.1已經(jīng)添加到所述組件目錄804。其他模塊1008,1016,1020還可以通知顧客例如有關(guān)附加從屬關(guān)系以及可得到的信息。另外,在一些實(shí)施例中,第二公司1108因?yàn)樵S可/出售組件1116’的第二版本的拷貝而得以補(bǔ)償。
在一個(gè)實(shí)施例中,對(duì)軟件產(chǎn)品(例如組件或者軟件應(yīng)用)起作用的開發(fā)小組(例如208,212,216)的成員,因?yàn)樗麄儗?duì)產(chǎn)品起的作用而獲得報(bào)酬。雖然優(yōu)選的是軟件組件,但是由分布式軟件開發(fā)系統(tǒng)101開發(fā)的產(chǎn)品可以是任何軟件應(yīng)用或者知識(shí)產(chǎn)權(quán)類型。在一個(gè)實(shí)施例中,并且如對(duì)于圖8所述內(nèi)容,服務(wù)器104的開發(fā)傳送子系統(tǒng)820發(fā)送項(xiàng)目清單以及項(xiàng)目清單中的項(xiàng)目描述,諸如在廣告中。所述廣告或者發(fā)送例如可以包括每個(gè)開發(fā)小組成員的貢獻(xiàn),開發(fā)小組成員因?yàn)閷?duì)所述項(xiàng)目所起的作用而接收的費(fèi)用以及整個(gè)開發(fā)小組的總體貢獻(xiàn)。
在一個(gè)實(shí)施例中,開發(fā)小組的成員基于他們對(duì)產(chǎn)品的貢獻(xiàn)以及通過許可或者出售產(chǎn)品的拷貝而賺得的收益來接收酬勞。服務(wù)器104的所述管理子系統(tǒng)824(上述參照?qǐng)D8所描述的)跟蹤具體特征來確定將給予開發(fā)小組成員的酬勞數(shù)額。在這種實(shí)施例之一中,所述費(fèi)用是對(duì)酬勞的預(yù)付款,這意味著在預(yù)付款足數(shù)之前不支付酬勞。
在一個(gè)實(shí)施例中,并且參照?qǐng)D13,所述服務(wù)器104(例如所述管理子系統(tǒng)824)跟蹤項(xiàng)目和/或每個(gè)開發(fā)小組成員的總收益1304、開發(fā)小組成員貢獻(xiàn)1308、開發(fā)小組成員酬勞百分比1310、酬勞庫百分比1311、酬勞庫1312以及酬勞1316。
在一個(gè)實(shí)施例中,所述貢獻(xiàn)1308是在開發(fā)工作前面規(guī)定的預(yù)定的量。在另一個(gè)實(shí)施例中,每個(gè)成員的貢獻(xiàn)1308通過時(shí)間量、技能水平(由在前得分、競賽評(píng)級(jí)、經(jīng)驗(yàn)或者組合確定)或者開發(fā)小組成員工作程度來確定。在另一個(gè)實(shí)施例中,所述貢獻(xiàn)1308通過開發(fā)小組成員貢獻(xiàn)的有用性來確定。期望的開發(fā)小組成員(例如208,212,216)成比例的貢獻(xiàn)是開發(fā)小組成員的酬勞百分比1310。在一個(gè)實(shí)施例中,所述開發(fā)小組成員的酬勞百分比1310通過按照被期望以便由所有開發(fā)小組成員來開發(fā)可交付內(nèi)容(例如,組件以及相關(guān)文件)的總工作貢獻(xiàn),來劃分為被期望以便由開發(fā)小組成員需要來實(shí)現(xiàn)她的任務(wù)的總工作貢獻(xiàn)1308來確定。如果改變了所述組件,諸如升級(jí)或者另外修改,那么可以將開發(fā)小組成員的酬勞百分比1310因所述修改的版本而進(jìn)行調(diào)整,以便反映新的貢獻(xiàn)劃分。
在一個(gè)實(shí)施例中,為產(chǎn)品選擇酬勞庫百分比1311。所述酬勞庫百分比1311是總收益1304的百分比(例如每年、每季度或者每月的收益),所述百分比將被保留給特許使用金1316,該獎(jiǎng)金將給予對(duì)所述產(chǎn)品起作用的開發(fā)小組。在一個(gè)實(shí)施例中,每個(gè)產(chǎn)品的預(yù)期酬勞庫百分比1311在有效規(guī)范文檔中被提出。在一些實(shí)施例中,所述酬勞庫百分比1311可以取決于其他事務(wù)因素,諸如時(shí)間或者產(chǎn)品的流行。然后,所述酬勞庫1312是產(chǎn)品的部分收益1304,其中所述產(chǎn)品依照特許使用金1316將分送到開發(fā)所述產(chǎn)品的開發(fā)小組成員。在一個(gè)實(shí)施例中,所述酬勞庫1312通過將酬勞庫百分比1311乘以總收益1304來進(jìn)行確定,其中所述總收益是預(yù)定時(shí)間周期期間通過產(chǎn)品的出售或許可而收到的。
所述管理子系統(tǒng)824跟蹤數(shù)據(jù)結(jié)構(gòu)1324中的信息。在一個(gè)實(shí)施例中,存在過剩產(chǎn)品,其存儲(chǔ)在所述組件目錄804中。此外,已經(jīng)致力于或者正在致力于一個(gè)或多個(gè)項(xiàng)目的人數(shù)是相當(dāng)大的。為了跟蹤用于精確確定每個(gè)開發(fā)小組成員對(duì)產(chǎn)品的貢獻(xiàn)1308的補(bǔ)償?shù)男畔?,采用了服?wù)器104的所述管理子系統(tǒng)824。
在一些實(shí)施例中,所述服務(wù)器104跟蹤并且存儲(chǔ)滑動(dòng)比例酬勞1320,這基于這樣一種選擇,其中當(dāng)他們同意對(duì)項(xiàng)目的作用時(shí),開發(fā)小組成員可以確定組員的初始補(bǔ)償報(bào)酬量(例如設(shè)定費(fèi)用)。以下根據(jù)圖16更詳細(xì)地描述所述滑動(dòng)比例酬勞1320。在一個(gè)實(shí)施例中,所述管理子系統(tǒng)824在補(bǔ)償數(shù)據(jù)結(jié)構(gòu)1324中存儲(chǔ)此信息1304、1308、1312、1316、1320。所述數(shù)據(jù)結(jié)構(gòu)1324例如可以存儲(chǔ)在服務(wù)器的存儲(chǔ)器中,或者存儲(chǔ)在外存儲(chǔ)器中和/或永久性存儲(chǔ)器中。
例如并且參照?qǐng)D14,酬勞補(bǔ)償表1400包括三個(gè)開發(fā)小組成員1404,即成員1、成員2以及成員3,他們都是開發(fā)小組的貢獻(xiàn)者。例如,成員1可以是設(shè)計(jì)師208,成員2可以是開發(fā)人員212,并且成員3可以是質(zhì)量保證(QA)開發(fā)人員216。依照此實(shí)施例,成員1的貢獻(xiàn)1308是100小時(shí),成員2的貢獻(xiàn)1308是200小時(shí),并且成員3的貢獻(xiàn)1308是300小時(shí)。在此例子中,每個(gè)成員(例如成員1、成員2、成員3)的貢獻(xiàn)1308可以通過每個(gè)成員需要的小時(shí)的期望值來確定(如通過產(chǎn)品管理者204確定)。在其他實(shí)施例中,所述貢獻(xiàn)1308例如可以通過花費(fèi)的小時(shí)實(shí)際數(shù)目、編寫或者測試的設(shè)計(jì)的模型或者代碼的實(shí)際金額等等來進(jìn)行確定。
在此例子中,開發(fā)小組的貢獻(xiàn)1308的總數(shù)1410是600小時(shí)。所述開發(fā)小組成員酬勞百分比1310是被總貢獻(xiàn)除的每個(gè)成員貢獻(xiàn)1308。在此例子中,總貢獻(xiàn)是(100+200+300)=600小時(shí)。然后,所述開發(fā)小組成員酬勞百分比1310對(duì)于成員1(100/600)=17%;對(duì)于成員2(200/600)=33%;并且對(duì)于成員3(300/600)=50%。
在此例子中,總收益1304是$20,000。此產(chǎn)品的酬勞庫百分比1311是5%。所述酬勞庫1312因此是($20,000×5%=)$1,000。由此,每個(gè)開發(fā)小組成員1404賺得的酬勞1316是酬勞庫1312的他們的酬勞百分比1310。具體來講,成員1接收($1,000×17%=)$170,成員2接收($1,000×33%=)$330,而成員3接收($1000×50%=)$500。在一些實(shí)施例中,當(dāng)接收產(chǎn)品的附加收入時(shí),這些特許使用金1324往往依照類似方式進(jìn)行提取。
參照?qǐng)D15,在繼續(xù)的例子中,通過三個(gè)組員1404生產(chǎn)的產(chǎn)品被修改并且更新為另一個(gè)版本。新版本可以是圖11中描述的組件1116的版本1.1,或者集成到另一個(gè)產(chǎn)品中。所述附加工作通過組員1504執(zhí)行(例如,成員4以及成員5),并且還通過成員3,而不是成員2以及成員1來執(zhí)行。所述酬勞被調(diào)節(jié)以便將新的開發(fā)小組成員的貢獻(xiàn)包括在酬勞1316的確定中。在此例子中,成員4的貢獻(xiàn)是50小時(shí),而成員5的貢獻(xiàn)也是50小時(shí)。由此,因?yàn)閮蓚€(gè)附加成員1504的貢獻(xiàn),貢獻(xiàn)量總數(shù)1410增加到750小時(shí)。所述開發(fā)小組成員酬勞百分比1310是被總貢獻(xiàn)除的每個(gè)成員(成員1、成員2、成員3、成員4、成員5)的貢獻(xiàn)。
那么所述開發(fā)小組成員酬勞百分比1310是對(duì)于成員1(100/750)=13.33%;對(duì)于成員2(200/750)=26.66%;對(duì)于成員3(350/750)=46.66%;對(duì)于成員4(507750)=6.66%,而對(duì)于成員5(50/750)=6.66%。
此外,在此例子中,修改產(chǎn)品生成的總收益1304是$30,000。此產(chǎn)品的酬勞庫百分比1311是5%。所述酬勞庫1312因此是($30,000×5%=)$1500。每個(gè)開發(fā)小組成員1508接收酬勞庫1312的他們的酬勞百分比1310成員1接收($1500×13.33%=)$200。成員2接收($1500×26.66%=)$400。成員3接收($1500×46.66%=)$700,這高于前述的酬勞1316,所述酬勞1316是在成員3的附加貢獻(xiàn)1308以前、成員3已經(jīng)預(yù)先接收到的。在一些實(shí)施例中,當(dāng)接收產(chǎn)品的附加收入時(shí),這些特許使用金1316往往依照類似方式進(jìn)行提取。
還參照?qǐng)D16,在一些實(shí)施例中,所述開發(fā)小組成員可以通過調(diào)節(jié)他們的滑動(dòng)比例酬勞1320來調(diào)節(jié)他們接收(作為酬勞1316)的收益量。具體來講,所述服務(wù)器104(例如產(chǎn)品管理者204)可以實(shí)現(xiàn)滑動(dòng)比例1606,其使組員能選擇設(shè)定費(fèi)用1608的數(shù)額以及開發(fā)小組成員酬勞百分比1310的數(shù)額,以便開發(fā)小組成員可以接受產(chǎn)品成功的或多或少的風(fēng)險(xiǎn)。增加的費(fèi)用1608將導(dǎo)致酬勞減少,反之亦然,并且因此減少了收到的酬勞1316。由此,所述組員選擇的費(fèi)用1608數(shù)額對(duì)應(yīng)于酬勞選擇1612?;瑒?dòng)比例1606的端點(diǎn)是設(shè)定費(fèi)用1608以及開發(fā)小組成員酬勞百分比1310的最大值,它們是所述組員可以因?yàn)樗麄儗?duì)項(xiàng)目的貢獻(xiàn)1308而得到的。在示出的滑動(dòng)比例1606中,設(shè)定費(fèi)用1608的值在滑動(dòng)比例1606的上半部表示,并且開發(fā)小組成員酬勞百分比1310在滑動(dòng)比例1606的下半部表示。在一個(gè)實(shí)施例中,當(dāng)請(qǐng)求費(fèi)用時(shí),潛在的組員酬勞因?yàn)樵O(shè)定費(fèi)用的選擇而被調(diào)節(jié)。為了確定滑動(dòng)比例酬勞1320,這往往替換由組員接收到的酬勞1316,服務(wù)器104依照酬勞庫1312并且依照由組員進(jìn)行的酬勞選擇1612來成倍增加組員的開發(fā)小組成員酬勞百分比1310。由此,滑動(dòng)比例酬勞1320將是總收益1304乘以所述酬勞庫百分比1311乘以開發(fā)小組成員酬勞百分比1310乘以酬勞選擇百分比1612。
使用在圖16中舉例說明的例子,根據(jù)圖15的成員2、成員3以及成員5,如果成員2在設(shè)定費(fèi)用1608中選擇接收其100%的補(bǔ)償,那么成員2將在其他可應(yīng)用方面得到0%的酬勞。由此,因?yàn)槌蓡T2選擇所有其酬勞作為設(shè)定費(fèi)用1608,所以成員2具有新的滑動(dòng)比例酬勞1320(26.66%×1500×0%=)零,其替換圖15中所示的酬勞1316。
在此例子中,成員3選擇最高酬勞選擇1612(例如100%)。因此,成員3的滑動(dòng)比例酬勞1320是(46.66%×1500×100%=)$700。在另一個(gè)實(shí)施例中,成員5選擇得到50%的可能費(fèi)用1608以及50%的酬勞1316。由此,成員5的滑動(dòng)比例酬勞1320是(6.66%×1500×50%=)$50。
在一個(gè)實(shí)施例中,設(shè)定費(fèi)用1608的量直接涉及開發(fā)小組成員酬勞百分比1310的減少。由此,在設(shè)定費(fèi)用1608中增加20%可以減少開發(fā)小組成員酬勞百分比1310 20%。在其他實(shí)施例中,在設(shè)定費(fèi)用1608方面的變化不直接與開發(fā)小組成員酬勞百分比1310方面的變化相關(guān)。例如,服務(wù)器104可以將常量次數(shù)與費(fèi)用1608方面的增加相乘,以便即使費(fèi)用1608方面的輕微增加相當(dāng)于開發(fā)小組成員酬勞百分比1310方面的較大增加,以便為期望風(fēng)險(xiǎn)而調(diào)節(jié)它。作為選擇,服務(wù)器104可以指定一個(gè)常量,根據(jù)設(shè)定費(fèi)用1608的方面的變化、將反比關(guān)系應(yīng)用于開發(fā)小組成員酬勞百分比1310方面的變化。此外,在設(shè)定費(fèi)用1608和開發(fā)小組成員酬勞百分比1310之間可以存在任何關(guān)系。由此,所述服務(wù)器104可以將一個(gè)或多個(gè)數(shù)學(xué)函數(shù)應(yīng)用于確定相對(duì)于其他變量變化的一個(gè)變量的變化。
在一個(gè)實(shí)施例中,所述開發(fā)小組成員酬勞百分比1310和酬勞庫百分比1311(例如前述的兩個(gè)例子中的5%)對(duì)于每個(gè)有效產(chǎn)品可以是不同的,并且均隨時(shí)易受服務(wù)器104向上的或者向下的調(diào)整。在進(jìn)一步的實(shí)施例中,所述產(chǎn)品管理者204和/或所述設(shè)計(jì)師208可以改變這些百分比1310、1311。
此外,在一個(gè)實(shí)施例中,可以在支出以前測量收益(例如總收額)。在另一個(gè)實(shí)施例中,可以在支出之后確定收益(例如,凈收益、傭金等等)。
在一個(gè)示范性的實(shí)施例中,所述分布式軟件開發(fā)系統(tǒng)101在生命技術(shù)產(chǎn)業(yè)中被采用。第一生物技術(shù)公司開發(fā)一種新的分子集合,以下稱為集合A、B和C,并且相信一個(gè)或多個(gè)所述分子可以有效預(yù)防特殊的疾病,以下稱為疾病X。然而,所述生物技術(shù)公司沒有蛋白質(zhì)數(shù)據(jù),所述蛋白質(zhì)數(shù)據(jù)用于確定分子A、B和/或C是否有效預(yù)防疾病X。在一個(gè)實(shí)施例中,所述產(chǎn)品管理者204研究所述產(chǎn)業(yè),并且隨后開發(fā)小組將用于為每個(gè)分子特征建模的軟件組件添加到組件目錄804。在一些實(shí)施例中,所述開發(fā)小組還創(chuàng)建用于為疾病、諸如疾病X建模的一個(gè)或多個(gè)組件。所述生物技術(shù)公司可以瀏覽組件目錄804中的組件,并且確定使用一個(gè)或多個(gè)組件例如來構(gòu)建分子間相互作用的模型,并且確定分子對(duì)特殊疾病的有效性。在一些實(shí)施例中,所述服務(wù)器104生產(chǎn)用于提供有關(guān)特殊基因或者分子的數(shù)據(jù)的數(shù)據(jù)倉庫的組件。在一個(gè)實(shí)施例中,所述生物技術(shù)公司使用組件從生物技術(shù)機(jī)器中讀出數(shù)據(jù),所述生物技術(shù)機(jī)器用于讀取細(xì)胞和/或基因的數(shù)據(jù)。所述組件還可以存儲(chǔ)從生物技術(shù)機(jī)器讀出的數(shù)據(jù)。
總的來說,在一個(gè)方面中,本發(fā)明涉及一種用于確定協(xié)作開發(fā)產(chǎn)品的第一貢獻(xiàn)者的酬勞的方法,所述產(chǎn)品通過第一貢獻(xiàn)者以及至少一個(gè)其他貢獻(xiàn)者開發(fā)。所述方法包括接收表示每個(gè)第一貢獻(xiàn)者以及至少一個(gè)其他貢獻(xiàn)者的每個(gè)、對(duì)協(xié)作開發(fā)的產(chǎn)品作出貢獻(xiàn)的值。所述方法包括通過對(duì)所接收的值求和來計(jì)算貢獻(xiàn)者以及至少一個(gè)其他貢獻(xiàn)者作出的總貢獻(xiàn)。所述方法包括基于所確定的第一貢獻(xiàn)者的貢獻(xiàn)價(jià)值與所計(jì)算的總貢獻(xiàn)的比值,確定第一開發(fā)人員的開發(fā)人員酬勞百分比。所述方法包括從協(xié)作開發(fā)的產(chǎn)品獲得的收益中,為協(xié)作開發(fā)的產(chǎn)品分配酬勞庫;并且通過將酬勞庫與開發(fā)人員酬勞百分比相乘來確定第一貢獻(xiàn)者的酬勞數(shù)額。
在一個(gè)實(shí)施例中,分配酬勞庫包括為協(xié)作開發(fā)的產(chǎn)品規(guī)定酬勞庫百分比,并且將協(xié)作開發(fā)的產(chǎn)品獲得的收益乘以酬勞庫百分比。在各種實(shí)施例中,得到的收益可以是在減少支出以前或者以后的收益。
雖然此處參照軟件進(jìn)行了描述,并且對(duì)于當(dāng)根據(jù)軟件組件實(shí)現(xiàn)時(shí)有用,但是協(xié)作開發(fā)的產(chǎn)品可以是用于具體實(shí)現(xiàn)知識(shí)產(chǎn)權(quán)的任何種類的有形或無形對(duì)象。在一個(gè)實(shí)施例中,所述產(chǎn)品包括至少一個(gè)計(jì)算機(jī)軟件組件。在這種實(shí)施例之一中,所述產(chǎn)品包括由至少一個(gè)計(jì)算機(jī)軟件組件組成的計(jì)算機(jī)應(yīng)用程序。在其他實(shí)施例中,所述產(chǎn)品包括集成電路設(shè)計(jì)以及計(jì)算機(jī)硬件裝置的至少一個(gè)。在一個(gè)實(shí)施例中,所述貢獻(xiàn)是產(chǎn)品管理、設(shè)計(jì)、體系結(jié)構(gòu)、編碼以及質(zhì)量保證測試的至少一個(gè)。
在一個(gè)實(shí)施例中,所述接收步驟包括從系統(tǒng)管理員、鍵盤輸入或者數(shù)據(jù)存儲(chǔ)器(例如硬盤,存儲(chǔ)器)以及軟件對(duì)象的至少一個(gè)中接收。在一個(gè)實(shí)施例中,所述方法通過計(jì)算機(jī)至少部分地響應(yīng)協(xié)作開發(fā)工作的貢獻(xiàn)者貢獻(xiàn)價(jià)值的輸入來執(zhí)行。在一個(gè)實(shí)施例中,表示貢獻(xiàn)的值是基于規(guī)定貢獻(xiàn)所需工作的估計(jì)的預(yù)定值。在另一個(gè)實(shí)施例中,表示貢獻(xiàn)的值是基于實(shí)際貢獻(xiàn)的測量(例如代碼行、花費(fèi)小時(shí))。在各種實(shí)施例中,所述方法的步驟可以用于后續(xù)或者修改產(chǎn)品,其中所述產(chǎn)品包括附加貢獻(xiàn)者的貢獻(xiàn)。在這種情況下表示貢獻(xiàn)的值可以是原始產(chǎn)品的貢獻(xiàn)或者是對(duì)隨后的或者修改的產(chǎn)品的貢獻(xiàn)。
總的來說,在另一個(gè)方面中,本發(fā)明涉及一種系統(tǒng),用于執(zhí)行許多貢獻(xiàn)者以及許多產(chǎn)品的方法步驟。所述系統(tǒng)使用此處所述的信息以及技術(shù),以便能夠跟蹤與這些產(chǎn)品以及開發(fā)人員相關(guān)聯(lián)的信息,以便依照貢獻(xiàn)者的酬勞分配收益??偟膩碚f,在另一個(gè)方面中,本發(fā)明涉及一種系統(tǒng),用于簡化分布式組件的開發(fā),包括組件目錄、分送的開發(fā)環(huán)境以及酬勞計(jì)算系統(tǒng)。
總的來說,在另一個(gè)方面中,本發(fā)明涉及一種組件目錄系統(tǒng),其包括本地組件存儲(chǔ)器,用于存儲(chǔ)組件以及與所述組件相關(guān)的信息;用戶界面模塊,用于提供與組件有關(guān)的信息;更新跟蹤模塊,用于跟蹤對(duì)組件的更新;從屬跟蹤模塊,用于跟蹤組件從屬關(guān)系;以及集成模塊,用于識(shí)別可以集成的組件。在一個(gè)實(shí)施例中,所述系統(tǒng)還包括遠(yuǎn)程模塊,用于提供與存儲(chǔ)在遠(yuǎn)程系統(tǒng)上的組件有關(guān)的信息,并且使所述組件可為組件目錄的用戶所獲得,就好像他們都包含在本地組件存儲(chǔ)器中似的。
權(quán)利要求
1.一種用于簡化軟件程序的分布式開發(fā)的方法,包括(a)提供對(duì)多個(gè)開發(fā)人員的技能評(píng)級(jí);(b)向多個(gè)開發(fā)人員的子集傳達(dá)軟件程序的規(guī)范;(c)響應(yīng)傳達(dá)的規(guī)范來接收至少一個(gè)提交內(nèi)容;(d)推導(dǎo)出至少一個(gè)提交內(nèi)容的得分;并且(e)基于推導(dǎo)的得分、選擇至少一個(gè)提交內(nèi)容之一用以包含在軟件存儲(chǔ)庫中。
2.如權(quán)利要求1所述的方法,其中所述評(píng)級(jí)基于編碼競賽的結(jié)果。
3.如權(quán)利要求2所述的方法,其中所述編碼競賽是聯(lián)機(jī)編碼競賽。
4.如權(quán)利要求1所述的方法,其中所述評(píng)級(jí)基于在前提交的設(shè)計(jì)軟件程序。
5.如權(quán)利要求1所述的方法,其中所述評(píng)級(jí)基于在前提交的軟件程序。
6.如權(quán)利要求1所述的方法,其中所述規(guī)范用于軟件程序的設(shè)計(jì)。
7.如權(quán)利要求1所述的方法,其中所述規(guī)范用于軟件程序的開發(fā)。
8.如權(quán)利要求1所述的方法,其中所述軟件程序是軟件組件。
9.如權(quán)利要求1所述的方法,其中所述軟件程序可以是一個(gè)或多個(gè)軟件組件、軟件應(yīng)用、軟件組件的組合或者軟件模塊。
10.如權(quán)利要求1所述的方法,其中多個(gè)開發(fā)人員的子集是基于開發(fā)人員的技能評(píng)級(jí)來確定的。
11.如權(quán)利要求10所述的方法,其中多個(gè)開發(fā)人員的子集是基于開發(fā)人員具有的評(píng)級(jí)來確定的。
12.如權(quán)利要求1所述的方法,其中所述提交內(nèi)容是對(duì)軟件程序的設(shè)計(jì)。
13.如權(quán)利要求1所述的方法,其中所述提交內(nèi)容是軟件程序的計(jì)算機(jī)代碼。
14.如權(quán)利要求1所述的方法,其中所述開發(fā)人員是軟件設(shè)計(jì)師。
15.如權(quán)利要求1所述的方法,其中所述開發(fā)人員是軟件程序員。
16.如權(quán)利要求1所述的方法,其中推導(dǎo)至少一個(gè)提交內(nèi)容得分的步驟還包括由不同于提交所述提交內(nèi)容的開發(fā)人員的開發(fā)人員來評(píng)審所述提交內(nèi)容。
17.如權(quán)利要求1所述的方法,其中所述提交內(nèi)容必須接收一個(gè)選擇的最小得分,以便包含在軟件存儲(chǔ)庫中。
18.如權(quán)利要求1所述的方法,其中所述軟件存儲(chǔ)庫中包括的提交內(nèi)容可以被保證在不同于用于原始提交內(nèi)容的計(jì)算環(huán)境的計(jì)算環(huán)境中操作。
19.一種用于補(bǔ)償軟件開發(fā)人員的方法,包括(a)征求多個(gè)開發(fā)人員對(duì)計(jì)算機(jī)軟件程序的提交內(nèi)容;(b)從多個(gè)開發(fā)人員的至少一個(gè)中接收提交內(nèi)容;(c)推導(dǎo)每個(gè)提交內(nèi)容的得分;(d)基于分配給所述提交內(nèi)容的得分、選擇提交內(nèi)容的子集來包含在存儲(chǔ)庫中,以便分送給公眾;(e)響應(yīng)所選擇的提交內(nèi)容、將根據(jù)分送至少一個(gè)軟件程序的一部分收入分配給多個(gè)開發(fā)人員的至少一個(gè)。
20.如權(quán)利要求19所述的方法,還包括在步驟a)之前,對(duì)所述軟件開發(fā)人員評(píng)級(jí)。
21.如權(quán)利要求20所述的方法,其中所述軟件開發(fā)人員基于他們?cè)诼?lián)機(jī)編碼競賽中的成績來評(píng)級(jí)。
22.如權(quán)利要求20所述的方法,其中所述軟件開發(fā)人員基于在前提交的設(shè)計(jì)軟件程序來被評(píng)級(jí)。
23.如權(quán)利要求20所述的方法,其中所述軟件開發(fā)人員基于在前提交的軟件程序來被評(píng)級(jí)。
24.如權(quán)利要求19所述的方法,其中所述軟件程序是軟件組件。
25.如權(quán)利要求19所述的方法,其中所述軟件程序可以是一個(gè)或多個(gè)軟件應(yīng)用、軟件組件的組合或者軟件模塊。
26.如權(quán)利要求19所述的方法,其中所述開發(fā)人員至少部分基于他們的評(píng)級(jí)來被征求。
27.如權(quán)利要求26所述的方法,其中所述開發(fā)人員基于所述開發(fā)人員具有的評(píng)級(jí)來被征求。
28.如權(quán)利要求19所述的方法,其中選擇提交內(nèi)容子集的步驟還包括將一個(gè)提交內(nèi)容識(shí)別成功的提交內(nèi)容。
29.如權(quán)利要求19所述的方法,其中所述收入至少部分基于開發(fā)人員的評(píng)級(jí)來分配。
30.如權(quán)利要求19所述的方法,其中所述收入至少部分基于多個(gè)開發(fā)人員的至少一個(gè)花費(fèi)在編碼軟件程序的小時(shí)數(shù)目來分配。
31.如權(quán)利要求19所述的方法,其中所述收入至少部分基于分送所述軟件程序的次數(shù)來分配。
32.一種用于簡化軟件程序的分布式開發(fā)的系統(tǒng),包括評(píng)級(jí)引擎,用于對(duì)軟件開發(fā)人員的技能評(píng)級(jí);服務(wù)器,用于向多個(gè)開發(fā)人員傳達(dá)規(guī)范,所述開發(fā)人員已經(jīng)預(yù)先在編碼競賽中被評(píng)級(jí);接收模塊,用于接收由開發(fā)人員開發(fā)的軟件程序;以及評(píng)分模塊,用于評(píng)估接收到的軟件程序。
33.如權(quán)利要求32所述的系統(tǒng),還包括評(píng)審模塊,用于允許開發(fā)人員評(píng)審由其他開發(fā)人員提交的提交內(nèi)容。
34.如權(quán)利要求32所述的系統(tǒng),還包括存儲(chǔ)庫,用于存儲(chǔ)評(píng)估的軟件程序。
35.如權(quán)利要求34所述的系統(tǒng),還包括聯(lián)機(jī)陳列室,用于顯示存儲(chǔ)在存儲(chǔ)庫中的軟件程序。
36.如權(quán)利要求34所述的系統(tǒng),還包括樣品應(yīng)用,至少部分根據(jù)存儲(chǔ)在存儲(chǔ)庫中的軟件程序來構(gòu)造。
37.如權(quán)利要求34所述的系統(tǒng),還包括演示模塊,用于演示存儲(chǔ)在所述存儲(chǔ)庫中的軟件程序的特征。
38.如權(quán)利要求32所述的系統(tǒng),還包括計(jì)算模塊,用于在開發(fā)小組之中分配收益。
39.如權(quán)利要求38所述的系統(tǒng),其中所述計(jì)算模塊至少部分基于開發(fā)人員的評(píng)級(jí)來分配收入。
40.如權(quán)利要求38所述的系統(tǒng),其中所述計(jì)算模塊至少部分基于多個(gè)開發(fā)人員的至少一個(gè)花費(fèi)在編碼軟件程序的小時(shí)數(shù)目來分配收入。
41.如權(quán)利要求38所述的系統(tǒng),其中所述計(jì)算模塊至少部分基于所述軟件組件被分送的次數(shù)來分配收入。
全文摘要
本發(fā)明涉及一種用于開發(fā)軟件的方法和系統(tǒng)。在一個(gè)實(shí)施例中,所述方法用于簡化軟件組件的分布式開發(fā),包括提供對(duì)開發(fā)人員的技能評(píng)級(jí),向開發(fā)人員的子集傳達(dá)軟件程序的規(guī)范,從開發(fā)人員那里來接收提交內(nèi)容,為所述提交內(nèi)容評(píng)分,并且選擇一個(gè)提交內(nèi)容包含在軟件存儲(chǔ)庫中。在另一個(gè)實(shí)施例中,用于補(bǔ)償軟件開發(fā)人員的方法包括征求軟件開發(fā)人員對(duì)計(jì)算機(jī)軟件程序的提交內(nèi)容;響應(yīng)所述提交內(nèi)容從開發(fā)人員那里接收軟件組件,評(píng)估所接收的軟件組件,選擇將潛在分送給公眾的一個(gè)或多個(gè)提交內(nèi)容,并且將來自于所述分送的收入分配給開發(fā)人員。
文檔編號(hào)G06Q10/00GK1679034SQ03813237
公開日2005年10月5日 申請(qǐng)日期2003年4月7日 優(yōu)先權(quán)日2002年4月8日
發(fā)明者J·M·休斯 申請(qǐng)人:托普科德公司