【摘要】本文就如何建立一個支持網(wǎng)絡(luò)軟件協(xié)同開發(fā)活動的環(huán)境和信息系統(tǒng),如何在此系統(tǒng)中進行任務(wù)劃分和協(xié)同管理等方面展開了討論,提出了協(xié)同活動管理中對象性、關(guān)系性和任務(wù)性這3個方面的分析模型,并進行了較為深入的設(shè)計和討論,它以軟件組件對象為核心描述了對象模型;以“最后離開者關(guān)門原則”討論了關(guān)系模型;以任務(wù)劃分方法分析了任務(wù)模型。
【關(guān)鍵詞】協(xié)同開發(fā)管理對象性關(guān)系性任務(wù)性
軟件開發(fā)活動的網(wǎng)絡(luò)化、分布化、共享化、協(xié)同化是信息時代發(fā)展的必然趨勢。作為新興的信息化應(yīng)用軟件,協(xié)同軟件受到越來越多的學(xué)者和用戶關(guān)注。20世紀80年代中期,國外就已經(jīng)有功能相對單一的商品化工作流系統(tǒng)問世,這可以看做早期協(xié)同軟件的雛形。協(xié)同軟件是指那些以團隊協(xié)作為目標(biāo)的協(xié)作軟件工具,主要包括群組協(xié)作管理,如:工作流管理、項目管理等等;各種通信軟件,如E-Mail、即時通信、VOIP等。作為協(xié)同軟件開發(fā)的管理者,要想保證系統(tǒng)工作順利有效的進行,就應(yīng)該從協(xié)同管理的軟件組件對象性,協(xié)同開發(fā)的關(guān)系性和協(xié)同管理的任務(wù)性等三方面進行分析、建立、管理、控制、協(xié)同開發(fā)工作。
一、協(xié)同管理的軟件組件對象模型
1.1概念
協(xié)同管理系統(tǒng)作為一種信息管理系統(tǒng),除了具有一般信息管理系統(tǒng)的功能外,它還具有對協(xié)同信息的表述、存儲、提取、查詢和瀏覽等功能。
整體是由部分組成,協(xié)同管理軟件同樣如此,協(xié)同管理系統(tǒng)由多個局部系統(tǒng)組成。局部系統(tǒng)是協(xié)同管理系統(tǒng)的對象實例,本身是一個對象,同時它又是組件對象實例,被其他對象管理。
1.2組件對象的關(guān)聯(lián)和創(chuàng)建
協(xié)同管理系統(tǒng)中管理的各對象之間存在著復(fù)雜的關(guān)聯(lián),以下是對其關(guān)聯(lián)情況的概括描述:
(1)<數(shù)據(jù)庫>::=<對象集>
(2)<對象集>::=<原子對象>/<結(jié)構(gòu)>
(3)<結(jié)構(gòu)>::=<名稱><層次><頭對象>[<對象集>/<鏈集>]
(4)<頭對象>::=<對象集>
(5)<鏈集>::=<空>/<鏈>/<鏈集>
(6)<鏈>::=(<對象集名>,<對象集名>)
在以上的描述中,我們可以將數(shù)據(jù)庫系統(tǒng)看成是一個獨立創(chuàng)建的包含了大量軟件組件對象的對象庫。
對于軟件組件對象的創(chuàng)建,一般來說有兩種創(chuàng)建方式,一種是由部分到整體的創(chuàng)建方式,就是先創(chuàng)建一個具體的軟件組件對象,然后由這個已創(chuàng)建好的軟件組件對象再創(chuàng)建出更多的組件對象,進而形成一個大的應(yīng)用軟件系統(tǒng)。另一種是由整體到部分的創(chuàng)建方式,即先創(chuàng)建一個軟件組件系統(tǒng)框架,管理者根據(jù)需要創(chuàng)建許多的模塊,并給出設(shè)計要求,具體的內(nèi)部結(jié)構(gòu)由開發(fā)者自主決定。開發(fā)者創(chuàng)建好的軟件組件對象對其他開發(fā)者和用戶都是開放的,每個開發(fā)者或用戶都可以根據(jù)自己的需要及興趣檢出任意一個組件對象,也可以對其進行修改變動,將改動后的組件對象再存回數(shù)據(jù)庫中。
二、協(xié)同開發(fā)的關(guān)系模型
2.1自發(fā)組成的協(xié)作組
在一個開放的信息環(huán)境中,協(xié)作組的成員并不是一成不變的,可以事先確定,也可以隨時加入,那么如何來管理整個協(xié)作組呢?本模型采用了“誰最后離開誰關(guān)門”的方式。舉例說明:有A,B,C,D四人,他們分別提取了同一個目標(biāo)對象,這樣他們四人就組成了一個協(xié)作組,在此協(xié)作組中的這四人彼此是可見的,如果他們對所提取的同一對象完成改動工作的順序是A→D→B→C,那么先完成改動工作的人要將他所完成改動后的內(nèi)容和要求發(fā)送給其他未完成改動的人,最后的完成改動工作的開發(fā)者來實現(xiàn)改動的合并任務(wù),并且需要按照版本模型的規(guī)則將完成改動的內(nèi)容存回數(shù)據(jù)庫中。在該協(xié)作組中,每個協(xié)作組中的成員在接收到其他成員的改動內(nèi)容后都要將自己的改動與之合并,之后發(fā)送給其他成員,發(fā)送完畢后,該成員可以退出協(xié)作組,也可以留在協(xié)作組中作一些輔助性的工作。在該協(xié)作組中,只有最后完成改動工作的人可以將改動結(jié)果送入數(shù)據(jù)庫,否則他所做的改動就會被覆蓋。
2.2協(xié)同信息表
協(xié)同信息表為管理協(xié)作帶來了方便,在數(shù)據(jù)庫中的每個組件對象,都需要有一個協(xié)同信息表L(oi),根據(jù)開發(fā)者的加入和退出情況,該協(xié)同信息表的內(nèi)容會添加或者刪除一個表項。作為協(xié)作組的成員,他可以同時提取多個對象,這時他就成為了多個協(xié)作組的成員。因此在工作時,為了避免造成數(shù)據(jù)不一致現(xiàn)象的發(fā)生,不僅要考慮單個組員在不同組中的工作狀態(tài),還要考慮到不同組之間的協(xié)作情況和相互影響。
考慮一個協(xié)同數(shù)據(jù)庫由幾大功能模塊構(gòu)成,這些模塊形成系統(tǒng)的幾大特性,每一個特性可能都有若干候選選項。不同的選擇組合使系統(tǒng)的功能會發(fā)生變化,從這些意義上講協(xié)同數(shù)據(jù)庫可以表示為
SDB= P1,P2,…,Pm
針對組個O1,O2,O3,O4,就產(chǎn)生了3個協(xié)作組。
若所有被提取的對象Oi,Oj,…之間都沒有關(guān)聯(lián)和依賴,或者有依賴和關(guān)聯(lián)的對象Oi,Oj,…總是同屬于一個協(xié)作組,那么問題就變得簡單了。
第一種情況使協(xié)作者可以簡單地完成對象的接收合并或傳送到其他協(xié)作者工作區(qū);第二種情況(如圖1)若只有對象O1,O2有關(guān)聯(lián),它們與其他對象無關(guān)系,O3,O2盡管是被兩個協(xié)作組提取修改,但是它們是在兩個協(xié)作組中同時被提取的,因此,響應(yīng)的開發(fā)者也可以像第一種情況一樣去對它們進行處理。
對于一個復(fù)合任務(wù)的劃分可以有兩種方法,一種方法是按照開發(fā)者成員數(shù)量劃分,即有幾個人就劃分成幾個子任務(wù)。另一種方法是按照子系統(tǒng)的結(jié)構(gòu)劃分,也就是根據(jù)所要完成的復(fù)合任務(wù)的模塊進行的劃分,設(shè)該讀訪集中有N個模塊,那么每個R都是一個子任務(wù)的開始點,這種劃分方法也是軟件工程中最常見的劃分方法。
任務(wù)劃分會對分析結(jié)果產(chǎn)生影響,當(dāng)兩個讀操作集重疊時不會產(chǎn)生影響,但當(dāng)一個讀操作集與一個寫操作集重疊時,一個子任務(wù)會對另一個子任務(wù)產(chǎn)生影響,當(dāng)兩個寫操作集重疊時,兩個子任務(wù)有可能會對同一個組件進行改動,波及覆時,會使兩個子任務(wù)間產(chǎn)生影響。通過對任務(wù)劃分的分析和細化從而使一個復(fù)合任務(wù)內(nèi)部的各個子任務(wù)間的的相互依賴關(guān)系盡可能的減少是提高效率,改善工作質(zhì)量的最好方法。通過影響分析方法可能改善協(xié)同工作的計劃和調(diào)度,影響分析方法也可以改善軟件模塊劃分。復(fù)合任務(wù)經(jīng)過初始的任務(wù)劃分,產(chǎn)生了若干個工作命令,每個開發(fā)者接收到屬于自己的工作命令,建立了一個子任務(wù)網(wǎng),在子任務(wù)讀寫集之間重疊的開發(fā)者屬于同一個協(xié)作組。
3.2任務(wù)調(diào)度
任務(wù)劃分完成后,復(fù)合任務(wù)的管理員或協(xié)調(diào)系統(tǒng)會進一步對子任務(wù)進行調(diào)度。一個復(fù)合任務(wù)被劃分成若干個原子任務(wù),為了完成整個復(fù)合任務(wù),管理員會對分散于各個場地的子任務(wù)進行調(diào)度,這種調(diào)度和實施的過程叫做事務(wù)處理。
參考文獻
[1]趙逢禹.軟件協(xié)同設(shè)計[M].北京:清華大學(xué)出版社,2010
[2]張海藩.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社,2012
[3]姜坤.基于動態(tài)工作流的網(wǎng)絡(luò)協(xié)同辦公系統(tǒng)建模方法研究[J].科技通報,2012.8
[4]劉鋼.異地合作設(shè)計服務(wù)研究與實現(xiàn)[D],西安:西安交通大學(xué),2011
[5]丁建軍,楊岳,羅意平.基于工作流管理的遠程協(xié)同設(shè)計系統(tǒng)研究[J],制造業(yè)自動化,2011,26(3):21-25.