文章編號(hào):1962-5913(2008)13-0103-03
摘要:為了解決計(jì)算機(jī)軟件專業(yè)學(xué)生理論學(xué)習(xí)與實(shí)際軟件開發(fā)活動(dòng)脫節(jié)的問(wèn)題,我院以學(xué)生公寓宿舍管理系統(tǒng)開發(fā)項(xiàng)目為背景,設(shè)計(jì)了一個(gè)小組開發(fā)過(guò)程的實(shí)踐訓(xùn)練課,通過(guò)該過(guò)程訓(xùn)練,使學(xué)生能理論聯(lián)系實(shí)際,具備從事實(shí)際軟件項(xiàng)目開發(fā)的能力。本文介紹了我院的具體實(shí)踐經(jīng)驗(yàn)。
關(guān)鍵詞:PSP;TSPi;UML;軟件開發(fā);軟件工程
中圖分類號(hào):TPG642文獻(xiàn)標(biāo)識(shí)碼:A
1引言
1.1實(shí)踐訓(xùn)練的目的
在現(xiàn)有計(jì)算機(jī)軟件專業(yè)本科教育中,缺少一種系統(tǒng)的實(shí)驗(yàn)實(shí)踐方法,讓學(xué)生綜合運(yùn)用所學(xué)計(jì)算機(jī)理論知識(shí),以適應(yīng)實(shí)際軟件開發(fā)項(xiàng)目的需要,其結(jié)果是學(xué)生走向社會(huì),沒(méi)有成熟的開發(fā)方法和經(jīng)驗(yàn),需要大量摸索。為解決該問(wèn)題,我們通過(guò)一個(gè)學(xué)生公寓宿舍管理系統(tǒng)項(xiàng)目,進(jìn)行小組軟件開發(fā)過(guò)程方法實(shí)踐訓(xùn)練,使學(xué)生掌握數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計(jì)、數(shù)據(jù)庫(kù)、軟件工程、程序設(shè)計(jì)語(yǔ)言等學(xué)科的知識(shí)和軟件開發(fā)的文檔國(guó)標(biāo),從而能夠融入到軟件開發(fā)項(xiàng)目小組工作中或帶領(lǐng)軟件開發(fā)小組工作。
1.2 實(shí)踐訓(xùn)練的題目選擇
學(xué)生在大學(xué)期間都住校,對(duì)公寓宿舍的管理很清楚,對(duì)需求容易理解,容易做出需求分析,這是我們選擇開發(fā)學(xué)生公寓宿舍管理系統(tǒng)作為實(shí)踐訓(xùn)練題目的原因。當(dāng)然也可以選擇職工工資管理系統(tǒng)、學(xué)生成績(jī)管理系統(tǒng)作為訓(xùn)練題目,業(yè)務(wù)需求盡量清晰簡(jiǎn)單,而且系統(tǒng)不要太復(fù)雜。
1.3實(shí)踐訓(xùn)練所需資料
(1) 教材
人民郵電出版社的《個(gè)體軟件過(guò)程》和《小組軟件開發(fā)過(guò)程》?!秱€(gè)體軟件過(guò)程》強(qiáng)調(diào)了項(xiàng)目的成功,首先建立在個(gè)體成員基本素養(yǎng)的基礎(chǔ)上,培養(yǎng)學(xué)生按時(shí)高效地生產(chǎn)出高質(zhì)量的軟件產(chǎn)品并可對(duì)其工作質(zhì)量進(jìn)行預(yù)測(cè)的能力,提供工程師測(cè)量和改進(jìn)工作方法的框架。《小組軟件開發(fā)過(guò)程》有助于學(xué)生把課本上學(xué)習(xí)的軟件工程理論轉(zhuǎn)變成實(shí)際開發(fā)工程中可操作的過(guò)程,重點(diǎn)在于告訴學(xué)生一種小組方法,角色分工,每個(gè)人在項(xiàng)目中如何承擔(dān)自己的崗位職責(zé)和積極協(xié)助其他成員完成工作,不斷地通過(guò)軟件開發(fā)工作取得個(gè)人進(jìn)步和小組進(jìn)步。只有通過(guò)個(gè)體開發(fā)工程師素養(yǎng)的提高和小組開發(fā)過(guò)程能力的不斷增強(qiáng),才能實(shí)現(xiàn)組織級(jí)的CMM級(jí)別躍遷。
(2) 軟件工具
利用TSPi EXCEL制作項(xiàng)目計(jì)劃和追蹤項(xiàng)目進(jìn)展,統(tǒng)計(jì)工作量,提高效率。利用VISIO制作用戶需求文檔和設(shè)計(jì)。
1.4實(shí)踐訓(xùn)練評(píng)分標(biāo)準(zhǔn)
(1) 小組主要技術(shù)文檔是否齊全:30%。
(2) 小組開發(fā)過(guò)程執(zhí)行情況:50%,包含項(xiàng)目手冊(cè)完整性、過(guò)程數(shù)據(jù)收集與按時(shí)提交情況、周例會(huì)組織與效果、計(jì)劃實(shí)際完成情況。
(3) 小組開發(fā)過(guò)程項(xiàng)目總結(jié)報(bào)告:20%。
過(guò)去實(shí)驗(yàn)課,我們總是對(duì)每個(gè)學(xué)生單獨(dú)評(píng)分,現(xiàn)在以小組為單位進(jìn)行訓(xùn)練,小組每個(gè)成員的成績(jī)都要和小組項(xiàng)目總成績(jī)掛鉤,小組成績(jī)占30%,個(gè)人角色占70%。即使個(gè)人做得很好,但如果小組成績(jī)不好,也直接影響到個(gè)人成績(jī)。讓大家明白,小組項(xiàng)目的成敗與每個(gè)成員密切相關(guān),正象一個(gè)足球隊(duì)一樣,需要全體隊(duì)員的相互配合,取得小組的勝利才是最關(guān)鍵的。
2實(shí)踐訓(xùn)練重點(diǎn)內(nèi)容
2.1個(gè)體軟件過(guò)程訓(xùn)練
(1) 文檔規(guī)模估計(jì)方法
進(jìn)行規(guī)模估計(jì)是軟件開發(fā)人員最基本的素養(yǎng),掌握規(guī)模估計(jì)的方法才能對(duì)個(gè)人開發(fā)工作效率、進(jìn)度有一個(gè)估算。文檔(需求、設(shè)計(jì)、使用說(shuō)明書、標(biāo)準(zhǔn)制定)規(guī)模按文檔頁(yè)計(jì)算,界面設(shè)計(jì)以界面?zhèn)€數(shù)計(jì)算,分別用分鐘/頁(yè)、分鐘/個(gè)、分鐘/行作為開發(fā)文檔、界面、程序行的效率計(jì)量單位。先積累規(guī)模實(shí)驗(yàn)數(shù)據(jù),以后以此計(jì)算個(gè)人效率。實(shí)際項(xiàng)目開發(fā)效率的估算按單個(gè)練習(xí)時(shí)效率的30%計(jì)算即可。復(fù)雜程序或以前沒(méi)有做過(guò)的效率估算要估得更低一些,循序漸進(jìn),估算越來(lái)越準(zhǔn)確,且不可操之過(guò)急、目標(biāo)太高。
(2) 個(gè)人承諾管理的方法
通過(guò)具體事例讓學(xué)生明白,軟件開發(fā)本身有許多不確定性,沒(méi)有完全相同的案例可以說(shuō)明我們能按時(shí)完成開發(fā)工作。因此,將承諾建立在個(gè)人實(shí)際工作能力的量化指標(biāo)上,進(jìn)行時(shí)間任務(wù)的計(jì)劃管理是十分必要的。一般來(lái)說(shuō),只要是認(rèn)真工作,沒(méi)有被別的工作打擾,計(jì)劃一旦落后,不要指望靠加班完成,需要調(diào)整計(jì)劃,及時(shí)與對(duì)方溝通協(xié)商。
建立實(shí)際工作時(shí)間日志、程序開發(fā)時(shí)間表、缺陷管理日志等,認(rèn)真對(duì)待PSP項(xiàng)目計(jì)劃與總結(jié)表,是掌握個(gè)人開發(fā)技能狀況的重要手段,也是兌現(xiàn)承諾的可靠依據(jù)。
2.2小組角色組成與分工
根據(jù)每個(gè)學(xué)生的個(gè)人愛好、性格、專長(zhǎng),知識(shí)結(jié)構(gòu),安排個(gè)人在項(xiàng)目中扮演不同的角色,承擔(dān)不同的職責(zé),迅速掌握角色工作。
小組成員由項(xiàng)目經(jīng)理、計(jì)劃經(jīng)理、開發(fā)經(jīng)理、質(zhì)量經(jīng)理、技術(shù)支持經(jīng)理組成,計(jì)劃經(jīng)理可以由項(xiàng)目經(jīng)理兼任。項(xiàng)目組學(xué)生由4~5人組成。小組成員之間的關(guān)系參見圖1,角色職責(zé)參見表1。
圖1 項(xiàng)目組角色關(guān)系
表1 小組角色職責(zé)
2.3小組人員和諧工作的方法
以小組周例會(huì)溝通交流、目標(biāo)管理、流程化管理,激勵(lì)組員為完成目標(biāo)而工作,不斷取得進(jìn)步。因開發(fā)實(shí)習(xí)工作時(shí)間集中,我們把周會(huì)議定為2天一次會(huì)議,養(yǎng)成及時(shí)溝通,使遇到的問(wèn)題及時(shí)得以解決,同時(shí)把小組合作的意識(shí)培養(yǎng)起來(lái)。強(qiáng)調(diào)軟件開發(fā)的質(zhì)量、功能范圍、進(jìn)度三要素的管理方法,把目標(biāo)管理與過(guò)程管理結(jié)合起來(lái)。
2.4多周期開發(fā)方法
學(xué)生們?cè)谲浖こ讨袑W(xué)習(xí)了一些開發(fā)過(guò)程模型,最簡(jiǎn)單的過(guò)程模型是瀑布模型,但瀑布模型要求一次把階段文檔都做好,而在實(shí)際開發(fā)中往往很難達(dá)到,且瀑布模型也沒(méi)有組織過(guò)程模型,可操作性差。TSPi多周期過(guò)程模型有組織過(guò)程模型,即使由于訓(xùn)練時(shí)間短,不能進(jìn)行多個(gè)周期開發(fā),也可以通過(guò)把任務(wù)分配在多個(gè)周期中,分清主次功能和項(xiàng)目風(fēng)險(xiǎn),把主要功能和高風(fēng)險(xiǎn)部分放在周期1中,提高項(xiàng)目的成功率。見圖2。
2.5軟件質(zhì)量標(biāo)準(zhǔn)
學(xué)生對(duì)軟件質(zhì)量的理解更多地停留在軟件是否能使用上,沒(méi)有軟件性能指標(biāo)是否達(dá)標(biāo)的概念,更沒(méi)有開發(fā)過(guò)程質(zhì)量的概念。通過(guò)提供過(guò)程質(zhì)量標(biāo)準(zhǔn),質(zhì)管經(jīng)理監(jiān)控小組在開發(fā)過(guò)程中是否達(dá)到過(guò)程質(zhì)量標(biāo)準(zhǔn),使學(xué)生掌握過(guò)程質(zhì)量的相關(guān)知識(shí),加深認(rèn)識(shí)個(gè)體質(zhì)量的重要性,不斷提高個(gè)人的開發(fā)能力。每個(gè)過(guò)程都有入口和出口標(biāo)準(zhǔn),沒(méi)有達(dá)到入口標(biāo)準(zhǔn)的不能進(jìn)行下一步,沒(méi)有通過(guò)出口標(biāo)準(zhǔn)的,該過(guò)程不能結(jié)束。
2.6項(xiàng)目總結(jié)
我們過(guò)去參與企業(yè)軟件開發(fā)活動(dòng)比較多,項(xiàng)目總結(jié)往往留于形式?;蛘唔?xiàng)目出現(xiàn)問(wèn)題,非要找出責(zé)任人,總結(jié)會(huì)上項(xiàng)目組人員相互指責(zé),最后不歡而散的情況較多,不利于今后的項(xiàng)目開發(fā)工作。該實(shí)習(xí)訓(xùn)練強(qiáng)調(diào)過(guò)程總結(jié),不把問(wèn)題留到最后。每個(gè)過(guò)程階段的總結(jié),重點(diǎn)強(qiáng)調(diào)要對(duì)角色不對(duì)人,肯定成績(jī),發(fā)現(xiàn)角色不足,使小組成員在開發(fā)項(xiàng)目訓(xùn)練中得到進(jìn)步,建立學(xué)習(xí)型組織。
3實(shí)踐訓(xùn)練具體步驟
實(shí)踐訓(xùn)練的具體步驟如表2所示:
表2 實(shí)踐訓(xùn)練的具體步驟
注:每個(gè)工作日8小時(shí)。
每個(gè)步驟都是一個(gè)實(shí)驗(yàn)實(shí)踐項(xiàng)目,每個(gè)項(xiàng)目都有開始和結(jié)束條件,而且要求在安排的工作日內(nèi)要完成指定的項(xiàng)目。即使完不成,通過(guò)開周例會(huì)總結(jié)分析原因,改進(jìn)工作。通過(guò)這種把開發(fā)工作劃分成一個(gè)個(gè)小項(xiàng)目,培養(yǎng)了學(xué)生如何做項(xiàng)目任務(wù)分解、如何完成任務(wù),要求有許多過(guò)程文檔,使學(xué)生真正理解軟件=算法+數(shù)據(jù)結(jié)構(gòu)+文檔。
4實(shí)踐總結(jié)
學(xué)生通過(guò)該過(guò)程訓(xùn)練,明顯感到實(shí)際開發(fā)過(guò)程和做作業(yè)有很大不同,開發(fā)訓(xùn)練內(nèi)容規(guī)范、過(guò)程可操作性強(qiáng),把課堂所學(xué)書本知識(shí)一下串了起來(lái),同時(shí)又學(xué)習(xí)了許多新知識(shí),學(xué)生知道了如何組織實(shí)際軟件開發(fā)項(xiàng)目了。這種模式非常值得推廣。
參考文獻(xiàn)
[1] Watts S.Humphrey著. 韓丹,袁昱譯. 小組軟件開發(fā)過(guò)程[M]. 北京:人民郵電出版社,2000.
[2] Watts S.Humphrey著. 吳超英,車向東譯. 個(gè)體軟件過(guò)程[M]. 北京:人民郵電出版社,2001.
[3] 陳宏剛,林斌,凌小寧.軟件開發(fā)的科學(xué)與藝術(shù)[M]. 北京:電子工業(yè)出版社,2002.
[4] 郭瑞軍譯. ASP2.0數(shù)據(jù)庫(kù)開發(fā)實(shí)例[M]. 北京:電子出版社,2006.
[5] 姚淑珍,李虎譯. UML和模式應(yīng)用[M]. 北京:電子工業(yè)出版社,2002.