文章編號:1962-5913(2008)13-0103-03
摘要:為了解決計算機軟件專業學生理論學習與實際軟件開發活動脫節的問題,我院以學生公寓宿舍管理系統開發項目為背景,設計了一個小組開發過程的實踐訓練課,通過該過程訓練,使學生能理論聯系實際,具備從事實際軟件項目開發的能力。本文介紹了我院的具體實踐經驗。
關鍵詞:PSP;TSPi;UML;軟件開發;軟件工程
中圖分類號:TPG642文獻標識碼:A
1引言
1.1實踐訓練的目的
在現有計算機軟件專業本科教育中,缺少一種系統的實驗實踐方法,讓學生綜合運用所學計算機理論知識,以適應實際軟件開發項目的需要,其結果是學生走向社會,沒有成熟的開發方法和經驗,需要大量摸索。為解決該問題,我們通過一個學生公寓宿舍管理系統項目,進行小組軟件開發過程方法實踐訓練,使學生掌握數據結構、算法設計、數據庫、軟件工程、程序設計語言等學科的知識和軟件開發的文檔國標,從而能夠融入到軟件開發項目小組工作中或帶領軟件開發小組工作。
1.2 實踐訓練的題目選擇
學生在大學期間都住校,對公寓宿舍的管理很清楚,對需求容易理解,容易做出需求分析,這是我們選擇開發學生公寓宿舍管理系統作為實踐訓練題目的原因。當然也可以選擇職工工資管理系統、學生成績管理系統作為訓練題目,業務需求盡量清晰簡單,而且系統不要太復雜。
1.3實踐訓練所需資料
(1) 教材
人民郵電出版社的《個體軟件過程》和《小組軟件開發過程》。《個體軟件過程》強調了項目的成功,首先建立在個體成員基本素養的基礎上,培養學生按時高效地生產出高質量的軟件產品并可對其工作質量進行預測的能力,提供工程師測量和改進工作方法的框架。《小組軟件開發過程》有助于學生把課本上學習的軟件工程理論轉變成實際開發工程中可操作的過程,重點在于告訴學生一種小組方法,角色分工,每個人在項目中如何承擔自己的崗位職責和積極協助其他成員完成工作,不斷地通過軟件開發工作取得個人進步和小組進步。只有通過個體開發工程師素養的提高和小組開發過程能力的不斷增強,才能實現組織級的CMM級別躍遷。
(2) 軟件工具
利用TSPi EXCEL制作項目計劃和追蹤項目進展,統計工作量,提高效率。利用VISIO制作用戶需求文檔和設計。
1.4實踐訓練評分標準
(1) 小組主要技術文檔是否齊全:30%。
(2) 小組開發過程執行情況:50%,包含項目手冊完整性、過程數據收集與按時提交情況、周例會組織與效果、計劃實際完成情況。
(3) 小組開發過程項目總結報告:20%。
過去實驗課,我們總是對每個學生單獨評分,現在以小組為單位進行訓練,小組每個成員的成績都要和小組項目總成績掛鉤,小組成績占30%,個人角色占70%。即使個人做得很好,但如果小組成績不好,也直接影響到個人成績。讓大家明白,小組項目的成敗與每個成員密切相關,正象一個足球隊一樣,需要全體隊員的相互配合,取得小組的勝利才是最關鍵的。
2實踐訓練重點內容
2.1個體軟件過程訓練
(1) 文檔規模估計方法
進行規模估計是軟件開發人員最基本的素養,掌握規模估計的方法才能對個人開發工作效率、進度有一個估算。文檔(需求、設計、使用說明書、標準制定)規模按文檔頁計算,界面設計以界面個數計算,分別用分鐘/頁、分鐘/個、分鐘/行作為開發文檔、界面、程序行的效率計量單位。先積累規模實驗數據,以后以此計算個人效率。實際項目開發效率的估算按單個練習時效率的30%計算即可。復雜程序或以前沒有做過的效率估算要估得更低一些,循序漸進,估算越來越準確,且不可操之過急、目標太高。
(2) 個人承諾管理的方法
通過具體事例讓學生明白,軟件開發本身有許多不確定性,沒有完全相同的案例可以說明我們能按時完成開發工作。因此,將承諾建立在個人實際工作能力的量化指標上,進行時間任務的計劃管理是十分必要的。一般來說,只要是認真工作,沒有被別的工作打擾,計劃一旦落后,不要指望靠加班完成,需要調整計劃,及時與對方溝通協商。
建立實際工作時間日志、程序開發時間表、缺陷管理日志等,認真對待PSP項目計劃與總結表,是掌握個人開發技能狀況的重要手段,也是兌現承諾的可靠依據。
2.2小組角色組成與分工
根據每個學生的個人愛好、性格、專長,知識結構,安排個人在項目中扮演不同的角色,承擔不同的職責,迅速掌握角色工作。
小組成員由項目經理、計劃經理、開發經理、質量經理、技術支持經理組成,計劃經理可以由項目經理兼任。項目組學生由4~5人組成。小組成員之間的關系參見圖1,角色職責參見表1。

圖1 項目組角色關系
表1 小組角色職責

2.3小組人員和諧工作的方法
以小組周例會溝通交流、目標管理、流程化管理,激勵組員為完成目標而工作,不斷取得進步。因開發實習工作時間集中,我們把周會議定為2天一次會議,養成及時溝通,使遇到的問題及時得以解決,同時把小組合作的意識培養起來。強調軟件開發的質量、功能范圍、進度三要素的管理方法,把目標管理與過程管理結合起來。
2.4多周期開發方法
學生們在軟件工程中學習了一些開發過程模型,最簡單的過程模型是瀑布模型,但瀑布模型要求一次把階段文檔都做好,而在實際開發中往往很難達到,且瀑布模型也沒有組織過程模型,可操作性差。TSPi多周期過程模型有組織過程模型,即使由于訓練時間短,不能進行多個周期開發,也可以通過把任務分配在多個周期中,分清主次功能和項目風險,把主要功能和高風險部分放在周期1中,提高項目的成功率。見圖2。

2.5軟件質量標準
學生對軟件質量的理解更多地停留在軟件是否能使用上,沒有軟件性能指標是否達標的概念,更沒有開發過程質量的概念。通過提供過程質量標準,質管經理監控小組在開發過程中是否達到過程質量標準,使學生掌握過程質量的相關知識,加深認識個體質量的重要性,不斷提高個人的開發能力。每個過程都有入口和出口標準,沒有達到入口標準的不能進行下一步,沒有通過出口標準的,該過程不能結束。
2.6項目總結
我們過去參與企業軟件開發活動比較多,項目總結往往留于形式。或者項目出現問題,非要找出責任人,總結會上項目組人員相互指責,最后不歡而散的情況較多,不利于今后的項目開發工作。該實習訓練強調過程總結,不把問題留到最后。每個過程階段的總結,重點強調要對角色不對人,肯定成績,發現角色不足,使小組成員在開發項目訓練中得到進步,建立學習型組織。
3實踐訓練具體步驟
實踐訓練的具體步驟如表2所示:
表2 實踐訓練的具體步驟

注:每個工作日8小時。
每個步驟都是一個實驗實踐項目,每個項目都有開始和結束條件,而且要求在安排的工作日內要完成指定的項目。即使完不成,通過開周例會總結分析原因,改進工作。通過這種把開發工作劃分成一個個小項目,培養了學生如何做項目任務分解、如何完成任務,要求有許多過程文檔,使學生真正理解軟件=算法+數據結構+文檔。
4實踐總結
學生通過該過程訓練,明顯感到實際開發過程和做作業有很大不同,開發訓練內容規范、過程可操作性強,把課堂所學書本知識一下串了起來,同時又學習了許多新知識,學生知道了如何組織實際軟件開發項目了。這種模式非常值得推廣。
參考文獻
[1] Watts S.Humphrey著. 韓丹,袁昱譯. 小組軟件開發過程[M]. 北京:人民郵電出版社,2000.
[2] Watts S.Humphrey著. 吳超英,車向東譯. 個體軟件過程[M]. 北京:人民郵電出版社,2001.
[3] 陳宏剛,林斌,凌小寧.軟件開發的科學與藝術[M]. 北京:電子工業出版社,2002.
[4] 郭瑞軍譯. ASP2.0數據庫開發實例[M]. 北京:電子出版社,2006.
[5] 姚淑珍,李虎譯. UML和模式應用[M]. 北京:電子工業出版社,2002.