摘要:軟件項目管理是軟件工程教學(xué)中的一個重要組成部分。本文在項目管理理論的基礎(chǔ)上,結(jié)合軟件工程教學(xué)的實際,以電子商務(wù)網(wǎng)站工程建設(shè)為實踐項目,提出了項目驅(qū)動的軟件項目管理教學(xué)思想。軟件工程項目實踐與理論教學(xué)相結(jié)合,培養(yǎng)了學(xué)生團(tuán)隊合作精神和解決實際問題的能力,提高了教學(xué)的質(zhì)量和水平。
關(guān)鍵詞:實踐教學(xué);項目驅(qū)動;軟件項目管理:軟件工程
隨著信息技術(shù)的飛速發(fā)展,軟件產(chǎn)品的規(guī)模也越來越大,復(fù)雜程度越來越高,項目失敗的概率也隨之增長。研究表明,軟件項目失敗的原因主要有兩個:一是錯誤的軟件項目管理;二是應(yīng)用項目的復(fù)雜性。實踐證明錯誤的軟件項目管理是導(dǎo)致軟件項目失控的直接原因。各軟件企業(yè)為了能高效高質(zhì)地開發(fā)軟件產(chǎn)品,都在積極將軟件項目管理引入開發(fā)活動中。然而在“軟件工程”的教學(xué)中,軟件項目管理的教學(xué)效果卻不盡人意。一方面,教材中的案例缺乏完整性、系統(tǒng)性和實用性;另一方面,軟件項目管理的講授方式不是十分合理,學(xué)生重視力度不夠。作者將結(jié)合多年的軟件工程教學(xué)經(jīng)驗,對軟件項目管理的教學(xué)方法進(jìn)行分析和探討。
1軟件項目管理的教學(xué)內(nèi)容及特點分析
軟件項目管理[1]是為了使軟件項目能夠按照預(yù)定的成本、進(jìn)度、質(zhì)量順利完成,而對人員、產(chǎn)品、過程和項目等進(jìn)行分析和管理的活動。軟件項目管理是軟件工程教學(xué)中的重要內(nèi)容,它涉及了軟件項目管理的五個標(biāo)準(zhǔn)化過程組和范圍管理、時間管理、成本管理、質(zhì)量管理、人力資源管理、溝通管理、風(fēng)險管理、采購管理、項目綜合管理九大知識領(lǐng)域,幾乎覆蓋了軟件產(chǎn)品從立項到結(jié)束的整個過程。圖1形象地展示了軟件項目管理與軟件開發(fā)過程在時間上的先后順序。
大多企業(yè)的優(yōu)秀管理者都是具有豐富經(jīng)驗的人員,同樣,軟件項目管理水平的高低偏重于軟件項目管理經(jīng)驗的積累。軟件項目管理的學(xué)習(xí)不僅僅是要掌
圖1軟件項目管理與軟件開發(fā)過程的時序圖
握基本的原理、方法和完成相關(guān)的設(shè)計文檔,更重要的是將理論應(yīng)用于實踐,讓學(xué)生真正理解理論的作用,體驗在實際項目實施中理論知識的具體應(yīng)用場景,培養(yǎng)學(xué)生的軟件項目管理思想。立足于軟件項目管理的教學(xué)目標(biāo)和要求,結(jié)合軟件項目管理自身的特點,分析研究認(rèn)為,項目驅(qū)動的軟件項目管理教學(xué)
方法能夠充分調(diào)動學(xué)生學(xué)習(xí)的積極性,培養(yǎng)學(xué)生動手實踐和主動探索的精神,提高教學(xué)的質(zhì)量和水平。
2項目驅(qū)動的實踐教學(xué)法
項目驅(qū)動教學(xué)法[2]是一種以建構(gòu)主義為理論基礎(chǔ)的教學(xué)方法,它以項目開發(fā)為主線展開教學(xué),整個教學(xué)過程是一種在教師的指導(dǎo)下,以學(xué)生為主體的協(xié)作過程。這種教學(xué)法的主要特點是始終以項目中的任務(wù)展開教學(xué),既注重最終的實踐結(jié)果,又注重完成項目的過程。其中教師的職責(zé)在于使學(xué)習(xí)者置身于探索知識之中,通過具體項目的開發(fā)提供真實的“情境”,即實際項目中需要解決的問題。然后,通過教師的指導(dǎo),學(xué)生之間的討論來解決問題。這種模式旨在把學(xué)生融入任務(wù)完成的過程中,讓學(xué)生積極地學(xué)習(xí),自主進(jìn)行知識的建構(gòu),以培養(yǎng)學(xué)生綜合能力為最終目標(biāo)。
2.1項目驅(qū)動教學(xué)對學(xué)生能力的培養(yǎng)
(1) 培養(yǎng)學(xué)生自主學(xué)習(xí)的能力。項目驅(qū)動教學(xué)法中任務(wù)的設(shè)定真正實現(xiàn)了以學(xué)生為主體的教學(xué)方針,學(xué)生為了完成任務(wù)就會主動去圖書館或相關(guān)的網(wǎng)站查閱信息,從而可以豐富知識,提高自學(xué)能力。
(2) 培養(yǎng)學(xué)生團(tuán)隊合作的能力。把全班學(xué)生分成幾個小組,每組項目的完成情況,影響小組每個成員的評價,因此為了團(tuán)隊的整體利益,小組成員之間就會不可避免地展開討論和爭辯,最終達(dá)成共識,相互協(xié)作完成任務(wù)。
(3) 培養(yǎng)學(xué)生分析問題、解決問題的能力。任務(wù)設(shè)計后,讓學(xué)生自己討論,分析任務(wù),提出問題,充分發(fā)揮了學(xué)生在學(xué)習(xí)過程中的主動性、積極性和創(chuàng)造性。這種分析問題和解決問題的能力同樣可以應(yīng)用到其它的領(lǐng)域。
(4) 培養(yǎng)學(xué)生實踐創(chuàng)新能力。實踐是創(chuàng)新的源泉。對于同一個任務(wù),每個小組采用的解決方案不盡相同。他們可以根據(jù)自己的知識背景和對任務(wù)的認(rèn)識,對任務(wù)的實現(xiàn)方法進(jìn)行大膽的設(shè)計,從而培養(yǎng)學(xué)生的創(chuàng)新思維,提高學(xué)生的創(chuàng)新能力。
總之,項目驅(qū)動的任務(wù)式教學(xué)方法能夠充分發(fā)揮學(xué)生的主觀能動性,全面提高他們的綜合素質(zhì)。
2.2項目驅(qū)動教學(xué)法的操作過程
“項目驅(qū)動”教學(xué)模式是教學(xué)過程中諸要素相互作用而形成相對穩(wěn)定的組織結(jié)構(gòu)和操作程序。 采用“項目驅(qū)動”教學(xué)法,在軟件工程項目實施的每個階段,我們均采用“項目任務(wù)——分析任務(wù)——理論學(xué)習(xí)——完成任務(wù)——評價總結(jié)任務(wù)”的教學(xué)模式。學(xué)生在完成“項目任務(wù)”的操作過程中,發(fā)現(xiàn)問題、解決問題,通過對任務(wù)的剖析,豐富了學(xué)習(xí)的經(jīng)驗、提高了學(xué)生完成任務(wù)的能力。
3教學(xué)實施
從軟件工程的角度講,軟件項目管理過程主要分為七個階段[3]:可行性研究階段、需求分析階段、設(shè)計階段、編碼階段、測試階段、驗收階段和維護(hù)階段。我們在“軟件工程”的教學(xué)過程中,打破以往按教材編排順序講授知識的方式,以軟件項目的管理過程為講授順序,并以一個完整的具體項目實施為依托進(jìn)行“軟件工程”教學(xué)。其中軟件項目管理的教學(xué)內(nèi)容將穿插到軟件生存周期各個階段進(jìn)行講授,各階段將會不可避免地包含相同的管理內(nèi)容,通過學(xué)生重復(fù)學(xué)習(xí)與實踐,可以使其深刻體會軟件項目管理的思想。本校計算機(jī)專業(yè)大三學(xué)生的“軟件工程”課程共54課時,我們按照理論教學(xué)與實踐教學(xué)1:1的比例,先進(jìn)行相關(guān)理論知識的講解,然后進(jìn)行課程實驗的具體實踐,結(jié)合“PetStore電子商務(wù)網(wǎng)站”的建設(shè),讓學(xué)生及時運用所學(xué)內(nèi)容來完成項目任務(wù),通過將軟件項目管理的教學(xué)內(nèi)容貫穿到項目實施的整個過程來實施教學(xué)。
3.1教學(xué)準(zhǔn)備
(1) 設(shè)置項目任務(wù)。在教學(xué)實施前,教師應(yīng)根據(jù)教學(xué)進(jìn)度、教學(xué)目標(biāo)和要求制定教學(xué)計劃,并將PetStore系統(tǒng)建設(shè)分成各個相對獨立的子項目,將相關(guān)的理論知識分散在各個子項目中。學(xué)生應(yīng)根據(jù)教師的安排認(rèn)真閱讀項目要求,查閱相關(guān)資料,對相關(guān)問題進(jìn)行思考分析,并為課堂討論做好準(zhǔn)備。
(2) 建設(shè)團(tuán)隊。我們對學(xué)生按“項目小組”以自由組合的方式建立軟件開發(fā)團(tuán)隊[4],每個團(tuán)隊不得超過6人,各組成員根據(jù)實際項目開發(fā)的過程進(jìn)行分工。項目經(jīng)理由小組成員討論推薦產(chǎn)生,負(fù)責(zé)整個項目的規(guī)劃、實施和控制。系統(tǒng)分析師、軟件測試工程師和開發(fā)工程師通過自我推薦或項目經(jīng)理指定產(chǎn)生。項目中的每項任務(wù)要落實到人且規(guī)定該任務(wù)的起止日期和時間。
(3) 建設(shè)規(guī)范的實驗、實訓(xùn)室。根據(jù)項目驅(qū)動教學(xué)的特點,不僅需要學(xué)生提交書面的階段性文檔,還要通過具體的實踐實現(xiàn)項目任務(wù),提交項目作品。因此規(guī)范化的實驗、實訓(xùn)室成為項目順利完成的保障。
3.2教學(xué)內(nèi)容
我們將從軟件的生存周期著眼,利用階段化的項目管理方法,結(jié)合項目實踐,對工程化生產(chǎn)中的管理工作進(jìn)行講解。對于軟件項目的每一個階段均要做出工作計劃,在階段結(jié)束之后,要對該階段的工作活動進(jìn)行總結(jié)評價,并對后續(xù)階段的時間、人員、資金方面的需求做出估計。下面按軟件項目的開發(fā)階段,以PetStore系統(tǒng)的建設(shè)為例,詳細(xì)介紹軟件工程中軟件項目管理的教學(xué)內(nèi)容及相關(guān)的項目實施任務(wù)。
3.2.1問題定義與可行性研究階段
問題定義與可行性研究階段主要涉及的項目管理教學(xué)內(nèi)容包括:確定項目實施范圍、項目目標(biāo)、評估實施過程中主要的風(fēng)險、制定項目實施的進(jìn)度計劃、成本和預(yù)算計劃、人力資源計劃等。
針對PetStore系統(tǒng)的開發(fā)建設(shè),我們讓老師模擬實際的用戶,學(xué)生在對用戶調(diào)查的基礎(chǔ)上,結(jié)合軟件項目管理理論知識,通過查閱資料、小組成員之間的討論,編寫詳細(xì)的“系統(tǒng)目標(biāo)與范圍的說明書”。按照說明書的內(nèi)容和要求,分析項目可能存在的風(fēng)險,建立“風(fēng)險項目檢查表”。明確系統(tǒng)流程,建立系統(tǒng)邏輯模型,制定不同的解決方案。通過與用戶的溝通,考慮經(jīng)濟(jì)上、技術(shù)上的可行性,比較選擇一個較優(yōu)的解決方案。在任務(wù)完成的過程中,學(xué)生可以真正感受到非文檔所能體現(xiàn)的管理問題,如人力資源管理、溝通管理、風(fēng)險管理等。
3.2.2需求分析階段
本階段將更加全面、準(zhǔn)確地分析PetStore系統(tǒng)的需求,主要涉及的管理工作為需求管理、質(zhì)量管理、溝通管理等。通過與用戶的多次溝通,明確系統(tǒng)可以分為用戶管理、商品管理和維護(hù)庫存數(shù)據(jù)庫三大功能模塊,每個大的功能模塊又可分為若干小模塊,如用戶的注冊模塊、登陸模塊、修改模塊等。為保證PetStore系統(tǒng)的開發(fā)質(zhì)量,需要在此階段制定軟件質(zhì)量標(biāo)準(zhǔn),主要包括功能性、穩(wěn)定性、經(jīng)濟(jì)性、適用性、可靠性、安全性、可維護(hù)性等指標(biāo)。明確系統(tǒng)的各種需求后,編寫“軟件需求規(guī)格說明書”。
3.2.3軟件設(shè)計階段
軟件設(shè)計是一個將需求轉(zhuǎn)變?yōu)檐浖愂?表達(dá))的過程,程序的質(zhì)量主要是由設(shè)計的質(zhì)量來決定。本階段主要包括范圍管理、質(zhì)量管理、時間管理、溝通管理等軟件項目管理方面的內(nèi)容。例如在PetStore系統(tǒng)設(shè)計的過程中,根據(jù)“需求規(guī)格說明書”中需求分析方法,確定所采用的軟件設(shè)計方法及系統(tǒng)數(shù)據(jù)、軟
件框架。軟件設(shè)計階段的任務(wù)主要包括PetStore系統(tǒng)界面設(shè)計、數(shù)據(jù)庫設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計、編寫設(shè)計文檔等。在設(shè)計過程中始終要求按照質(zhì)量標(biāo)準(zhǔn)予以實施,并及時進(jìn)行質(zhì)量評估。學(xué)生完成PetStore系統(tǒng)設(shè)計后,可以邀請用戶或其他小組成員參與設(shè)計復(fù)審。復(fù)審時,設(shè)計人員要提出對設(shè)計方案的詳細(xì)說明,答復(fù)與會者的問題,并記下重要的評審意見。
3.2.4編碼階段
編碼階段涉及的軟件項目管理教學(xué)內(nèi)容主要有風(fēng)險管理、質(zhì)量管理、進(jìn)度控制、成本管理、時間管理、配置管理、項目度量管理等。針對PetStore系統(tǒng),按照設(shè)計文檔的要求,對系統(tǒng)的各個功能子模塊采用自己熟悉的語言進(jìn)行編碼設(shè)計。在PetStore的功能模塊開發(fā)過程中,并不能完全保證項目按照開發(fā)計劃進(jìn)行,為了能使項目進(jìn)度和開發(fā)計劃同步,軟件管理者在項目開始后應(yīng)時刻關(guān)注計劃執(zhí)行情況,隨時進(jìn)行風(fēng)險分析,調(diào)整項目進(jìn)度,使實際進(jìn)度與計劃進(jìn)度保持一致。編碼結(jié)束后,由項目小組的技術(shù)人員對代碼是否按規(guī)范編寫進(jìn)行審核,以保證編碼的質(zhì)量。
3.2.5測試階段
測試階段主要涉及的軟件項目管理教學(xué)內(nèi)容有質(zhì)量控制、配置管理等。針對PetStore系統(tǒng),在編碼階段由項目開發(fā)者實現(xiàn)單元測試,測試階段由獨立于開發(fā)人員的測試人員進(jìn)行“漸增式”的集成測試,最后,對照需求說明書,完成確認(rèn)測試,并編寫相應(yīng)的測試報告文檔。在測試過程中,學(xué)生利用配置管理的CASE工具,可以了解配置管理在軟件開發(fā)中的具體應(yīng)用及其所起到的重要作用。
3.2.6運行和維護(hù)階段
運行和維護(hù)階段的軟件項目管理內(nèi)容主要包括維護(hù)成本估算、配置管理、風(fēng)險管理、維護(hù)管理文檔的編寫。在PetStore系統(tǒng)的維護(hù)中,加強(qiáng)文檔的建設(shè),做到任何事情均有記錄,任何變更均可回朔,利用維護(hù)日志和軟件修改報告記錄維護(hù)過程中的具體實施情況,學(xué)生可以根據(jù)維護(hù)情況參照開發(fā)工作量來估計維護(hù)的費用。此階段還可以讓學(xué)生選擇合適的自動配置管理工具來實施配置管理。
3.3教學(xué)總結(jié)
我們要求學(xué)生按PetStore項目生命周期的開發(fā)階段進(jìn)行階段性項目總結(jié)。每個階段的教學(xué)結(jié)束后,老師給學(xué)生一定的時間來實現(xiàn)PetStore 系統(tǒng)相關(guān)的內(nèi)容,同時要求每個項目小組派一名代表在課堂上對階段性的工作實施過程進(jìn)行講解,讓全班學(xué)生共同討論,相互交流不同的觀點,以期從討論中發(fā)現(xiàn)自己的不足和別人的優(yōu)點,同時也能活躍課堂氣氛,培養(yǎng)學(xué)生主動思考的意識。
在“軟件工程”軟件項目管理的教學(xué)過程中,我們注重的不是具體某一管理技術(shù)的學(xué)習(xí),而是讓學(xué)生深刻體會軟件項目管理的過程,培養(yǎng)學(xué)生軟件項目管
理的思想。
4結(jié)語
實踐表明采用“項目驅(qū)動”的軟件項目管理教學(xué)方式,可以將學(xué)習(xí)置于一個真實的軟件項目開發(fā)環(huán)境中,讓學(xué)生親自動手操作來學(xué)習(xí)“死”的理論,加強(qiáng)理論與實際的聯(lián)系,從而激發(fā)了學(xué)生的創(chuàng)新意識,調(diào)動了其學(xué)習(xí)積極性,培養(yǎng)了學(xué)習(xí)興趣,提高了他們分析問題和解決問題的能力,達(dá)到了教學(xué)目標(biāo)和要求,起到了良好的教學(xué)效果。
參考文獻(xiàn):
[1] 張建成. 周嗚樂. 淺談軟件項目管理[J]. 信息技術(shù)與信息化,2008(5):84-86.
[2] 鄧銳,佘維. 基于篩選機(jī)制的高職軟件技術(shù)專業(yè)項目驅(qū)動教學(xué)探討[J]. 計算機(jī)教育,2008(22):113-114.
[3]Php Metzger,John Boddie. 軟件項目管理—過程控制與人員管理[M]. 北京:電子工業(yè)出版社,2002.
[4] 裴小兵. 基于軟件開發(fā)團(tuán)隊的軟件工程教學(xué)實踐研究[J]. 計算機(jī)教育,2008(2):55-56.
Application of the Thinking of Software Project Management in \"Software Engineering\" Teaching
ZHANG Zhong-lin, WANG Jian-sheng, LAN Li
(School of Electronic and Information Engineering, Lanzhou Jiaotong University, Lanzhou 730070, China)
Abstract: Software Project Management is an important component of the Software Engineering Teaching. On the basis of the project management theory, this paper combine the practice of the software engineering teaching and take the construction of the e-commerce Web site for the practice, putting forward a teaching ideas of a project-driven software management. By combining the practice of software engineering projects with the theory of teaching has cultured the students the spirit of teamwork and the ability to solve practical problems and has improved the quality and level of teaching.
Key words: practice teaching; project-driven; software project management; software engineering
(編輯:姚彥如)