對于中、小規(guī)模的軟件項(xiàng)目,開發(fā)團(tuán)隊的規(guī)模不是很大。軟件的開發(fā)周期也比較短。在這種情況下,完全照搬RUP并不完全適用。因此,裁剪RUP使其適合中、小型軟件開發(fā)項(xiàng)目是非常有必要的。
圖1:一個復(fù)雜的BUC的實(shí)現(xiàn)方法
Rational統(tǒng)一過程(RUP)是IBM公司的一個軟件過程產(chǎn)品。它幾乎覆蓋了軟件開發(fā)過程中的所有方面。
J2EE技術(shù)提供了一個基于組件的、多層分布式計算平臺。在J2EE的應(yīng)用系統(tǒng)的開發(fā)過程中,由于使用了中間件,開發(fā)人員可以把工作重點(diǎn)放在系統(tǒng)功能的建模、設(shè)計與實(shí)現(xiàn)上。此外,J2EE技術(shù)結(jié)合了軟件設(shè)計中的實(shí)踐(best practices),如以架構(gòu)為中心的軟件體系結(jié)構(gòu)、基于組件的架構(gòu)等等。這一切都對現(xiàn)有的軟件工程過程提出了新的挑戰(zhàn)。所以,裁剪RUP并且使其在J2EE項(xiàng)目中起更大的作用是非常有意義的。
本文講述了如何把RUP應(yīng)用到小型項(xiàng)目團(tuán)隊開發(fā)J2EE應(yīng)用系統(tǒng)的過程中,并且結(jié)合J2EE技術(shù)的特點(diǎn)從項(xiàng)目管理、架構(gòu)設(shè)計、開發(fā)和測試等方面重點(diǎn)闡明了對RUP的裁剪。
項(xiàng)目管理
在RUP中,角色定義了個人或團(tuán)隊的行為和職責(zé),包括分析設(shè)計人員、編程人員、測試人員、項(xiàng)目管理人員和輔助人員,一個人可以同時擔(dān)當(dāng)幾個角色.一個角色也可以由幾個人來共同承擔(dān)。針對J2EE系統(tǒng)的開發(fā)和維護(hù),J2EE規(guī)范中也定義不同的角色,包括J2EE產(chǎn)品供應(yīng)商、應(yīng)用組件供應(yīng)商、發(fā)布人員、系統(tǒng)管理員等等。
在實(shí)際的項(xiàng)目運(yùn)行中.要根據(jù)軟件開發(fā)組織的實(shí)際情況來確定角色的定義和分配。項(xiàng)目經(jīng)理是必不可少的一個角色,通常是一個人來擔(dān)任。項(xiàng)目經(jīng)理代表整個項(xiàng)目與軟件客戶進(jìn)行溝通和協(xié)商,并且制定軟件開發(fā)計劃等等。架構(gòu)師也是一個必須的角色,通常由一名經(jīng)驗(yàn)豐富的軟件開發(fā)人員來擔(dān)任。
在項(xiàng)目運(yùn)行的前期,架構(gòu)師負(fù)責(zé)設(shè)計軟件架構(gòu)和原型系統(tǒng)。在項(xiàng)目運(yùn)行后期,架構(gòu)師可以參與到具體的軟件開發(fā)中。SQA同樣是必不可少的,通常是一名經(jīng)驗(yàn)豐富的軟件開發(fā)人員來擔(dān)任。SQA在整個項(xiàng)目的運(yùn)行過程中負(fù)責(zé)監(jiān)督和改進(jìn)軟件質(zhì)量,包括制定系統(tǒng)測試方案、用戶接受測試方案等等。開發(fā)人員是組成團(tuán)隊的主要力量,負(fù)責(zé)系統(tǒng)的設(shè)計、開發(fā)和測試。如果可能的話,團(tuán)隊中必須設(shè)立業(yè)務(wù)分析員的角色,負(fù)責(zé)商業(yè)建模等,通常由有特定行業(yè)經(jīng)驗(yàn)的人來擔(dān)任。
迭代開發(fā)計劃
RUP的精髓之一迭代式的開發(fā),它是基于Spiral模型翻的。整個軟件開發(fā)周期由很多個迭代組成,其中初始迭代最為重要。其它每個迭代都為了實(shí)現(xiàn)軟件的部分功能。在完成所有迭代后,軟件的所有功能都已實(shí)現(xiàn)并且通過測試。
初始迭代又叫作0迭代,它開始于項(xiàng)目的啟動。結(jié)束于RUP初始階段(inception phase)的完成。初始迭代在整個軟件項(xiàng)目中起著十分重要的作用,這是因?yàn)樵谶@個迭代中,項(xiàng)目團(tuán)隊和客戶必須對軟件項(xiàng)目的范圍、成本、進(jìn)度和應(yīng)用系統(tǒng)的邊界以及功能等達(dá)成一致的理解。
在初始迭代中,最重要的活動有明確項(xiàng)目的范圍、商業(yè)需求和提出至少一個可用的軟件架構(gòu)方案。在明確項(xiàng)目范圍的過程中,項(xiàng)目經(jīng)理就項(xiàng)目的邊界、產(chǎn)品、限制條件等與軟件客戶進(jìn)行協(xié)商,從而達(dá)成一致認(rèn)識。同時,在理解客戶需求的基礎(chǔ)上,項(xiàng)目經(jīng)理或者業(yè)務(wù)分析員以需求說明書和功能說明書的形式把客戶的需求記錄下來。并且和客戶達(dá)成一致理解。在此基礎(chǔ)上,架構(gòu)師提供至少一個合適的軟件架構(gòu)方案,并且完成原型系統(tǒng)。原型系統(tǒng)的目的不但是為了驗(yàn)證技術(shù)上的可行性,而且是為了給客戶一個感性的認(rèn)識,更好地完善對需求的理解。
需求說明書從客戶的角度簡要地描述了系統(tǒng)要具備的功能,它包含了很多商業(yè)用例。通常情況下,需求說明書還不能夠全面地描述整個應(yīng)用系統(tǒng),所以軟件開發(fā)組織還要從不同角度來描述系統(tǒng)的功能和特征,這就是功能說明書。功能說明書中包含了很多系統(tǒng)用例。功能說明書和需求說明書必須征求客戶的意見,直到客戶滿意為止。
迭代計劃是項(xiàng)目計劃的一部分,指如何把要實(shí)現(xiàn)的系統(tǒng)分解成更小的子系統(tǒng)和如何在不同迭代中(除初始迭代之外)劃分子系統(tǒng),從而使每個迭代的目標(biāo)明確,不同迭代之間的依賴關(guān)系達(dá)到最低。通常情況下,從邏輯上看,應(yīng)用系統(tǒng)可以劃分成多個BUC,而每個BUC又可以進(jìn)一步劃分成SUC;因此,可以從BUC的角度出發(fā),根據(jù)相互之間的依賴程度來進(jìn)行劃分,把依賴程度低的BUC劃分到不同的迭代中,從而確定每一個迭代的范圍。一個復(fù)雜的BUC可以把它分解成獨(dú)立的幾個小BUC在幾個迭代中來實(shí)現(xiàn)。
一個應(yīng)用系統(tǒng)也是由很多組件組成的。一個或者幾個組件組合起來可以實(shí)現(xiàn)一個SUC或者一個BUC的要求。在設(shè)計迭代計劃的時候,要考慮到組件之間可能存在的約束關(guān)系?;贘2EE的應(yīng)用系統(tǒng)是基于組件架構(gòu)的,因此,最小化迭代之間的依賴是一個最重要的衡量標(biāo)準(zhǔn)。
采用這種迭代辦法后,每個迭代的范圍限制在一個或者幾個相互獨(dú)立的BUC中。這樣做的好處在于降低需求變化帶來的風(fēng)險。
圖1:一個復(fù)雜的BUC的實(shí)現(xiàn)方法
Rational統(tǒng)一過程(RUP)是IBM公司的一個軟件過程產(chǎn)品。它幾乎覆蓋了軟件開發(fā)過程中的所有方面。
J2EE技術(shù)提供了一個基于組件的、多層分布式計算平臺。在J2EE的應(yīng)用系統(tǒng)的開發(fā)過程中,由于使用了中間件,開發(fā)人員可以把工作重點(diǎn)放在系統(tǒng)功能的建模、設(shè)計與實(shí)現(xiàn)上。此外,J2EE技術(shù)結(jié)合了軟件設(shè)計中的實(shí)踐(best practices),如以架構(gòu)為中心的軟件體系結(jié)構(gòu)、基于組件的架構(gòu)等等。這一切都對現(xiàn)有的軟件工程過程提出了新的挑戰(zhàn)。所以,裁剪RUP并且使其在J2EE項(xiàng)目中起更大的作用是非常有意義的。
本文講述了如何把RUP應(yīng)用到小型項(xiàng)目團(tuán)隊開發(fā)J2EE應(yīng)用系統(tǒng)的過程中,并且結(jié)合J2EE技術(shù)的特點(diǎn)從項(xiàng)目管理、架構(gòu)設(shè)計、開發(fā)和測試等方面重點(diǎn)闡明了對RUP的裁剪。
項(xiàng)目管理
在RUP中,角色定義了個人或團(tuán)隊的行為和職責(zé),包括分析設(shè)計人員、編程人員、測試人員、項(xiàng)目管理人員和輔助人員,一個人可以同時擔(dān)當(dāng)幾個角色.一個角色也可以由幾個人來共同承擔(dān)。針對J2EE系統(tǒng)的開發(fā)和維護(hù),J2EE規(guī)范中也定義不同的角色,包括J2EE產(chǎn)品供應(yīng)商、應(yīng)用組件供應(yīng)商、發(fā)布人員、系統(tǒng)管理員等等。
在實(shí)際的項(xiàng)目運(yùn)行中.要根據(jù)軟件開發(fā)組織的實(shí)際情況來確定角色的定義和分配。項(xiàng)目經(jīng)理是必不可少的一個角色,通常是一個人來擔(dān)任。項(xiàng)目經(jīng)理代表整個項(xiàng)目與軟件客戶進(jìn)行溝通和協(xié)商,并且制定軟件開發(fā)計劃等等。架構(gòu)師也是一個必須的角色,通常由一名經(jīng)驗(yàn)豐富的軟件開發(fā)人員來擔(dān)任。
在項(xiàng)目運(yùn)行的前期,架構(gòu)師負(fù)責(zé)設(shè)計軟件架構(gòu)和原型系統(tǒng)。在項(xiàng)目運(yùn)行后期,架構(gòu)師可以參與到具體的軟件開發(fā)中。SQA同樣是必不可少的,通常是一名經(jīng)驗(yàn)豐富的軟件開發(fā)人員來擔(dān)任。SQA在整個項(xiàng)目的運(yùn)行過程中負(fù)責(zé)監(jiān)督和改進(jìn)軟件質(zhì)量,包括制定系統(tǒng)測試方案、用戶接受測試方案等等。開發(fā)人員是組成團(tuán)隊的主要力量,負(fù)責(zé)系統(tǒng)的設(shè)計、開發(fā)和測試。如果可能的話,團(tuán)隊中必須設(shè)立業(yè)務(wù)分析員的角色,負(fù)責(zé)商業(yè)建模等,通常由有特定行業(yè)經(jīng)驗(yàn)的人來擔(dān)任。
迭代開發(fā)計劃
RUP的精髓之一迭代式的開發(fā),它是基于Spiral模型翻的。整個軟件開發(fā)周期由很多個迭代組成,其中初始迭代最為重要。其它每個迭代都為了實(shí)現(xiàn)軟件的部分功能。在完成所有迭代后,軟件的所有功能都已實(shí)現(xiàn)并且通過測試。
初始迭代又叫作0迭代,它開始于項(xiàng)目的啟動。結(jié)束于RUP初始階段(inception phase)的完成。初始迭代在整個軟件項(xiàng)目中起著十分重要的作用,這是因?yàn)樵谶@個迭代中,項(xiàng)目團(tuán)隊和客戶必須對軟件項(xiàng)目的范圍、成本、進(jìn)度和應(yīng)用系統(tǒng)的邊界以及功能等達(dá)成一致的理解。
在初始迭代中,最重要的活動有明確項(xiàng)目的范圍、商業(yè)需求和提出至少一個可用的軟件架構(gòu)方案。在明確項(xiàng)目范圍的過程中,項(xiàng)目經(jīng)理就項(xiàng)目的邊界、產(chǎn)品、限制條件等與軟件客戶進(jìn)行協(xié)商,從而達(dá)成一致認(rèn)識。同時,在理解客戶需求的基礎(chǔ)上,項(xiàng)目經(jīng)理或者業(yè)務(wù)分析員以需求說明書和功能說明書的形式把客戶的需求記錄下來。并且和客戶達(dá)成一致理解。在此基礎(chǔ)上,架構(gòu)師提供至少一個合適的軟件架構(gòu)方案,并且完成原型系統(tǒng)。原型系統(tǒng)的目的不但是為了驗(yàn)證技術(shù)上的可行性,而且是為了給客戶一個感性的認(rèn)識,更好地完善對需求的理解。
需求說明書從客戶的角度簡要地描述了系統(tǒng)要具備的功能,它包含了很多商業(yè)用例。通常情況下,需求說明書還不能夠全面地描述整個應(yīng)用系統(tǒng),所以軟件開發(fā)組織還要從不同角度來描述系統(tǒng)的功能和特征,這就是功能說明書。功能說明書中包含了很多系統(tǒng)用例。功能說明書和需求說明書必須征求客戶的意見,直到客戶滿意為止。
迭代計劃是項(xiàng)目計劃的一部分,指如何把要實(shí)現(xiàn)的系統(tǒng)分解成更小的子系統(tǒng)和如何在不同迭代中(除初始迭代之外)劃分子系統(tǒng),從而使每個迭代的目標(biāo)明確,不同迭代之間的依賴關(guān)系達(dá)到最低。通常情況下,從邏輯上看,應(yīng)用系統(tǒng)可以劃分成多個BUC,而每個BUC又可以進(jìn)一步劃分成SUC;因此,可以從BUC的角度出發(fā),根據(jù)相互之間的依賴程度來進(jìn)行劃分,把依賴程度低的BUC劃分到不同的迭代中,從而確定每一個迭代的范圍。一個復(fù)雜的BUC可以把它分解成獨(dú)立的幾個小BUC在幾個迭代中來實(shí)現(xiàn)。
一個應(yīng)用系統(tǒng)也是由很多組件組成的。一個或者幾個組件組合起來可以實(shí)現(xiàn)一個SUC或者一個BUC的要求。在設(shè)計迭代計劃的時候,要考慮到組件之間可能存在的約束關(guān)系?;贘2EE的應(yīng)用系統(tǒng)是基于組件架構(gòu)的,因此,最小化迭代之間的依賴是一個最重要的衡量標(biāo)準(zhǔn)。
采用這種迭代辦法后,每個迭代的范圍限制在一個或者幾個相互獨(dú)立的BUC中。這樣做的好處在于降低需求變化帶來的風(fēng)險。

