文章編號:1672-5913(2011)23-0039-05 中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A
摘 要:為提高軟件項(xiàng)目管理課程的教學(xué)質(zhì)量,本文分析該課程教學(xué)活動(dòng)中存在的主要問題。針對該門課程的特點(diǎn)和要求,提出改進(jìn)教與學(xué)的方式,運(yùn)用基于案例的教學(xué)法,給出貫穿整個(gè)教學(xué)過程的完整案例。同時(shí),針對重點(diǎn)內(nèi)容,結(jié)合輔助工具軟件,加強(qiáng)實(shí)例的可操作性,提高學(xué)生的實(shí)踐能力,為教學(xué)工作者提供一定的參考。
關(guān)鍵詞:案例教學(xué);軟件項(xiàng)目管理;教學(xué)方法
1 研究背景
軟件項(xiàng)目開發(fā)的高失敗率說明個(gè)人單獨(dú)的軟件開發(fā)方式已不能適應(yīng)軟件發(fā)展的需要[1-2]。軟件項(xiàng)目管理直接影響軟件成本、進(jìn)度、質(zhì)量。國內(nèi)許多院校[3]和培訓(xùn)機(jī)構(gòu)[4]紛紛開設(shè)軟件項(xiàng)目管理課程,同時(shí)國際計(jì)算機(jī)教育課程體系不同分支中都開設(shè)此課程[5],它逐漸發(fā)展成為計(jì)算機(jī)專業(yè)的一門重要課程。
軟件項(xiàng)目管理是軟件工程和項(xiàng)目管理的交叉學(xué)科,是項(xiàng)目管理的原理和方法在工程領(lǐng)域的應(yīng)用。但是,軟件項(xiàng)目與一般的項(xiàng)目不同,有它的特殊性,主要表現(xiàn)在軟件產(chǎn)品的抽象性。由此決定軟件項(xiàng)目管理的特點(diǎn)是難度大、實(shí)踐性強(qiáng),也直接影響本門課程的教學(xué)。
縱觀我校開設(shè)的軟件項(xiàng)目管理教學(xué)活動(dòng),我們發(fā)現(xiàn)該門課程的教學(xué)活動(dòng)主要存在兩個(gè)問題。
1) 對課程和角色存在認(rèn)識誤區(qū)。
軟件項(xiàng)目管理課程具有自身的特點(diǎn),學(xué)生感覺到該課程與所學(xué)的專業(yè)方向和未來從事的職業(yè)相關(guān)性不強(qiáng),認(rèn)為該課程屬于管理類課程,呈現(xiàn)出理論性強(qiáng)的特點(diǎn)。學(xué)生對自身的角色認(rèn)識不清,普遍認(rèn)為自己是編程開發(fā)人員,不做管理工作,該門課程與己無關(guān),影響課程學(xué)習(xí)的積極性,學(xué)習(xí)態(tài)度消極,被動(dòng)學(xué)習(xí),喪失學(xué)習(xí)興趣。
2) 缺乏軟件開發(fā)經(jīng)驗(yàn)。
該門課程是在學(xué)生學(xué)習(xí)軟件工程、程序設(shè)計(jì)語言課程的基礎(chǔ)上開設(shè)的一門專業(yè)課程。在學(xué)習(xí)之前,要求學(xué)生有一定的軟件開發(fā)經(jīng)驗(yàn)。熟悉一個(gè)軟件產(chǎn)品開發(fā)、設(shè)計(jì)的整個(gè)環(huán)節(jié),才能有效地實(shí)施對這一過程的管理。而目前的情況是,學(xué)生最多自己做過一個(gè)課程設(shè)計(jì)的軟件編程,沒有接觸大型軟件項(xiàng)目開發(fā)的經(jīng)驗(yàn),更談不上對大型項(xiàng)目開發(fā)與管理的經(jīng)驗(yàn)。
針對上述問題,本文提出基于案例的軟件項(xiàng)目管理課程教學(xué)法,在對重點(diǎn)內(nèi)容理解方面加強(qiáng)實(shí)踐環(huán)節(jié)。一是對課程理論性強(qiáng)、學(xué)生認(rèn)識誤區(qū)問題,正確引導(dǎo),提高認(rèn)識,對重點(diǎn)內(nèi)容增加可操作性,激發(fā)學(xué)生的主動(dòng)學(xué)習(xí)能力;二是對課程的實(shí)踐性強(qiáng)、學(xué)生缺少開發(fā)經(jīng)驗(yàn)問題,采用案例教學(xué)法,通過對已有案例的講解,在了解軟件開發(fā)全過程的基礎(chǔ)上獲取開發(fā)經(jīng)驗(yàn),熟練常用軟件項(xiàng)目管理輔助工具的使用。
2 正確認(rèn)識軟件項(xiàng)目管理課程
首先,在課程開始前,教師介紹軟件項(xiàng)目管理課程的核心內(nèi)容,依據(jù)2004計(jì)算機(jī)工程本科教學(xué)課程指南中的介紹[6],主要內(nèi)容包括團(tuán)隊(duì)管理、項(xiàng)目進(jìn)度計(jì)劃、軟件度量和評估技術(shù)、風(fēng)險(xiǎn)分析、軟件質(zhì)量保證、軟件配置管理和項(xiàng)目管理工具等7部分。目的是通過參與團(tuán)隊(duì)項(xiàng)目,說明團(tuán)隊(duì)建設(shè)和團(tuán)隊(duì)管理的基本內(nèi)容,做好軟件項(xiàng)目計(jì)劃中各項(xiàng)準(zhǔn)備工作,包括項(xiàng)目規(guī)模和成本的估算、進(jìn)度、資源分配、配置控制、變更管理和項(xiàng)目風(fēng)險(xiǎn)識別與管理,對比和比較用于保證軟件產(chǎn)品質(zhì)量的不同方法和技術(shù)。
其次,根據(jù)現(xiàn)階段我校生源情況,分析當(dāng)代大學(xué)生的學(xué)習(xí)現(xiàn)狀,培養(yǎng)學(xué)生對該門課程的興趣。根據(jù)課程的學(xué)習(xí)內(nèi)容與特點(diǎn),建立項(xiàng)目小組責(zé)任制,每組6人,由學(xué)生自由組合,每人重點(diǎn)負(fù)責(zé)項(xiàng)目管理中的一部分,同時(shí)協(xié)調(diào)關(guān)系,培養(yǎng)團(tuán)隊(duì)合作精神。詳細(xì)說明項(xiàng)目管理中的七部分內(nèi)容與每個(gè)人軟件開發(fā)過程中的需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、代碼實(shí)現(xiàn)、測試與維護(hù)的關(guān)系,使學(xué)生充分認(rèn)識到課程的實(shí)用性和重要性,提高對該課程的學(xué)習(xí)興趣。
3 軟件項(xiàng)目管理課程中的案例教學(xué)法
案例(case),也被稱為個(gè)案、個(gè)例、事例或?qū)嵗?,最早屬于醫(yī)學(xué)領(lǐng)域,后來被廣泛運(yùn)用于法學(xué)、軍事學(xué)、教育學(xué)、管理學(xué)等學(xué)科。案例教學(xué)法(case method),在國外也稱為個(gè)案研究,即case study,是為了培養(yǎng)和提高學(xué)習(xí)者知識能力的一種教學(xué)方法,是將已經(jīng)發(fā)生或?qū)砜赡馨l(fā)生的問題作為個(gè)案形式,讓學(xué)習(xí)者去分析和研究,提出各種解決問題的方案,從而提高學(xué)習(xí)者解決實(shí)際問題能力的一種教學(xué)方法。19世紀(jì)70年代,該教學(xué)法由美國哈佛大學(xué)法學(xué)院院長蘭德爾(C.C.langclell 1826—1906)[7]首創(chuàng)。他編著的《合同法案例》是世界上第一本案例教學(xué)法的教科書。目前,作為一種新型的教學(xué)方法,案例教學(xué)法遍及美國以及其他國家。我國的案例教學(xué)始于20年前,對我國高校教育思想和教學(xué)方法的全面改革有著重要啟示和推動(dòng)作用。
案例教學(xué)法以學(xué)生作為案例教學(xué)過程的主體,教師組織課堂、引導(dǎo)討論、布置任務(wù)、創(chuàng)造場景,調(diào)動(dòng)學(xué)生積極性,提高學(xué)生能力。案例教學(xué)有利于把軟件項(xiàng)目管理課程與社會實(shí)踐密切聯(lián)系起來,使理論與實(shí)際相結(jié)合,體現(xiàn)學(xué)以致用的思想。
根據(jù)該門課程的特點(diǎn),我們在教學(xué)設(shè)計(jì)中,以ACIC項(xiàng)目中基于Web的網(wǎng)上開戶和賬戶跟蹤業(yè)務(wù)為例,從項(xiàng)目規(guī)劃、項(xiàng)目執(zhí)行和項(xiàng)目收尾三個(gè)階段講解軟件項(xiàng)目管理的基本理論和方法。
在項(xiàng)目規(guī)劃階段,我們從項(xiàng)目規(guī)劃基礎(chǔ)結(jié)構(gòu)、過程規(guī)劃、工作量估計(jì)和進(jìn)度計(jì)劃、質(zhì)量規(guī)劃、風(fēng)險(xiǎn)管理、計(jì)劃的度量和跟蹤、項(xiàng)目管理計(jì)劃和配置管理等關(guān)鍵的規(guī)劃任務(wù)入手,通過ACIC項(xiàng)目的規(guī)劃報(bào)告,讓學(xué)生將這些抽象的管理內(nèi)容具體到一個(gè)實(shí)際的開發(fā)項(xiàng)目中。通過問題評審的方式進(jìn)行案例教學(xué),即給出問題和解決問題的方案,讓學(xué)生去討論與評價(jià)各種方案的優(yōu)劣,充分調(diào)動(dòng)了學(xué)生的思維積極性,對評價(jià)出的好方案給予肯定和引導(dǎo)。例如,對于項(xiàng)目中的工作量估計(jì)這一節(jié)的內(nèi)容,我們給出兩種方法:自底向上和自頂向下的估計(jì)方法。在討論的時(shí)候,學(xué)生發(fā)現(xiàn)這兩種方法都忽略不同任務(wù)單元之間的協(xié)調(diào)工作量,由此想到,面向?qū)ο蟮姆治龇ㄖ?,每個(gè)用例都是由不同單元任務(wù)集成的,這樣就包含了不同單元任務(wù)集成時(shí)的協(xié)調(diào)工作量。這個(gè)例子改變了傳統(tǒng)的理論灌輸式教學(xué)方法,讓學(xué)生從后臺到前臺扮演主角,通過多方位的互動(dòng)交流集思廣益,激發(fā)學(xué)生的學(xué)習(xí)主動(dòng)性。
在項(xiàng)目的執(zhí)行階段,包括執(zhí)行項(xiàng)目計(jì)劃、跟蹤項(xiàng)目的狀態(tài),對項(xiàng)目過程進(jìn)行跟蹤和控制,這是軟件項(xiàng)目管理過程中歷時(shí)最長的階段。但是,學(xué)生由于缺少實(shí)踐機(jī)會,對這一過程沒有感性認(rèn)識,因此,在教學(xué)過程中,ACIC項(xiàng)目中具體的實(shí)例講解幫助學(xué)生理解執(zhí)行階段,使學(xué)生學(xué)會應(yīng)用給出的方法解決實(shí)際問題。例如,對里程碑分析一節(jié)中,在講解實(shí)際與計(jì)劃工作量的進(jìn)度分析、質(zhì)量監(jiān)督和風(fēng)險(xiǎn)監(jiān)督的基礎(chǔ)上,通過ACIC項(xiàng)目的里程碑分析報(bào)告和故障因果分析報(bào)告具體化實(shí)例[8-9],學(xué)生不僅在整個(gè)項(xiàng)目開發(fā)中認(rèn)識里程碑分析報(bào)告的重要性,學(xué)會制作里程碑分析報(bào)告,如表1所示,而且還運(yùn)用項(xiàng)目管理的里程碑分析思想,針對自己的開發(fā)工作進(jìn)行階段性的分析。
軟件項(xiàng)目收尾是對項(xiàng)目執(zhí)行進(jìn)行總結(jié),完成事后分析,揭示問題所在和出現(xiàn)問題的原因??偨Y(jié)項(xiàng)目開發(fā)中的經(jīng)驗(yàn)和教訓(xùn),是一個(gè)經(jīng)驗(yàn)積累的過程。針對這部分內(nèi)容,分析課程中的案例在執(zhí)行中存在的問題,給出一般項(xiàng)目收尾分析報(bào)告中的主要要素,并對本課程中給出的案例寫出ACIC項(xiàng)目收尾分析報(bào)告。
通過ACIC項(xiàng)目三個(gè)階段的具體化,學(xué)生對于軟件項(xiàng)目管理課程的學(xué)習(xí)有一個(gè)整體的概念,有利于提高分析問題和處理實(shí)際問題的能力,提高創(chuàng)新思維能力,加強(qiáng)多元化思維和團(tuán)隊(duì)協(xié)作精神,發(fā)揮集體智慧,增強(qiáng)處理復(fù)雜事件的應(yīng)變能力。
4 軟件項(xiàng)目管理工具的學(xué)習(xí)
在基于案例的軟件項(xiàng)目管理課程的教學(xué)基礎(chǔ)上,教師對案例的分析增加可操作性、可實(shí)踐性,為學(xué)生提供一套切實(shí)可行的實(shí)驗(yàn)工具,提高學(xué)生對軟件項(xiàng)目管理課程學(xué)習(xí)內(nèi)容的應(yīng)用。
項(xiàng)目管理軟件具有成本預(yù)算、成本控制、進(jìn)度計(jì)劃安排、資源分配、項(xiàng)目信息分發(fā)、項(xiàng)目數(shù)據(jù)的導(dǎo)入和導(dǎo)出、多個(gè)項(xiàng)目和子項(xiàng)目的處理、報(bào)表制作、工作分析結(jié)構(gòu)創(chuàng)建、計(jì)劃跟蹤等功能。這些工具可以幫助項(xiàng)目管理者完成管理工作。根據(jù)教學(xué)內(nèi)容的不同,教師在全面介紹IBM Rational項(xiàng)目管理工具包的基礎(chǔ)上,根據(jù)項(xiàng)目管理的不同階段,介紹并提供不同的管理工具,提高學(xué)生對工具的操作、使用與了解能力。
首先,介紹IBM Rational項(xiàng)目管理工具包。在系統(tǒng)需求分析階段,利用需求管理平臺RequisitePro進(jìn)行需求分析,在系統(tǒng)分析階段給出Rational Software Modeler工具,用于業(yè)務(wù)和用例建模,理解業(yè)務(wù)需求,清晰地定義軟件需求。在系統(tǒng)總體設(shè)計(jì)階段,使用可視化建模技術(shù)和架構(gòu)設(shè)計(jì)工具Rational Software Architect來構(gòu)建軟件系統(tǒng)架構(gòu),在代碼編寫過程中,使用Rational Application Developer工具加快軟件編碼工作,使用Rational PurifyPlus工具進(jìn)行單元測試。在測試階段,使用Rational Functional Tester進(jìn)行回歸測試,使用Rational Manual Tester提高手工測試的效率,使用TestManager進(jìn)行測試管理。在軟件項(xiàng)目進(jìn)行的全過程中,使用ClearQuest實(shí)現(xiàn)變更管理,使用ClearCaseLT進(jìn)行配置管理,Rational Performance Tester檢驗(yàn)系統(tǒng)能達(dá)到預(yù)定的性能指標(biāo),Tivoli Configuration Manager快速準(zhǔn)確地安裝部署發(fā)布的軟件產(chǎn)品,Tivoli Monitoring工具用來監(jiān)控生產(chǎn)系統(tǒng)的運(yùn)營狀況,及時(shí)發(fā)現(xiàn)問題。
其次,介紹其他相關(guān)的項(xiàng)目管理工具,如Micro- softProject制定計(jì)劃日程表,WBS Chart Pro分解項(xiàng)目任務(wù),估算項(xiàng)目規(guī)模,MS Word制定項(xiàng)目開發(fā)計(jì)劃,Excel制作日報(bào)、周報(bào)、增值分析圖表和風(fēng)險(xiǎn)管理,MindManager進(jìn)行項(xiàng)目組結(jié)構(gòu)管理,PowerPoint制作項(xiàng)目階段報(bào)告,QQ、MSN和Skype幫助項(xiàng)目組內(nèi)外部交流與溝通。
最后,從軟件項(xiàng)目開發(fā)人員的不同角色建議使用不同的管理工具。項(xiàng)目經(jīng)理是領(lǐng)導(dǎo)整個(gè)項(xiàng)目團(tuán)隊(duì)完成項(xiàng)目開發(fā)的領(lǐng)導(dǎo)者,利用團(tuán)隊(duì)協(xié)作平臺TUP(Team Unifying Platform)來增強(qiáng)團(tuán)隊(duì)成員之間的溝通協(xié)作,包括統(tǒng)一的軟件開發(fā)方法RUP、需求管理平臺RequisitePro、測試管理平臺TestManager、變更管理工具ClearQuest和配置管理平臺ClearCaseLT。系統(tǒng)分析員采用業(yè)務(wù)和用例建模方法以及建模工具Rational Software Modeler與業(yè)務(wù)部門進(jìn)行更為有效的溝通,更好地理解業(yè)務(wù)需求,更加清晰地定義軟件需求。架構(gòu)設(shè)計(jì)師基于軟件需求并利用可視化建模技術(shù)和架構(gòu)設(shè)計(jì)工具Rational Software Architect來搭建軟件系統(tǒng)架構(gòu)。開發(fā)人員利用Rational Application Developer來加快軟件編碼工作,并結(jié)合單元測試工具 Rational PurifyPlus 來保證代碼模塊的質(zhì)量。測試人員通過自動(dòng)化的回歸測試工具Rational Functional Tester來保證測試的完備性并提高測試效率,Rational Manual Tester則可以幫助提高手工測試的效率。另外,利用Rational Performance Tester來檢驗(yàn)系統(tǒng)是否能達(dá)到預(yù)定的性能指標(biāo)。部署人員利用Tivoli Configuration Manager快速準(zhǔn)確地部署軟件產(chǎn)品,維護(hù)人員通過Tivoli Monitoring工具監(jiān)控軟件的運(yùn)行狀況。在軟件項(xiàng)目開發(fā)過程中,為不同人員提供不同的管理工具,達(dá)到提高軟件開發(fā)效率、保證軟件產(chǎn)品質(zhì)量的目的。
在教學(xué)中,針對軟件開發(fā)過程中各個(gè)階段運(yùn)用不同的輔助管理工具,教師對重點(diǎn)內(nèi)容,如成本預(yù)算中的COCOMO三種模型和Putnam模型,給出免費(fèi)工具Costar 7.0[10],依據(jù)COCOMO II模型計(jì)算上述案例中項(xiàng)目的持續(xù)時(shí)間、人員水平和成本,提高學(xué)生對軟件項(xiàng)目開發(fā)過程中具體內(nèi)容的感性認(rèn)識,增加學(xué)習(xí)的興趣。
5 結(jié)語
通過上述教學(xué)方法的改革,學(xué)生畢業(yè)進(jìn)入工作單位參與項(xiàng)目的過程中,能夠快速適應(yīng)團(tuán)隊(duì)開發(fā),認(rèn)清自身角色,準(zhǔn)確定位。然而,隨著計(jì)算機(jī)科學(xué)技術(shù)發(fā)展的日新月異,軟件項(xiàng)目管理這門課程越來越呈現(xiàn)出內(nèi)容廣泛、實(shí)踐性強(qiáng)、新技術(shù)和新方法多等特點(diǎn)。同時(shí),作為軟件工程課程的后續(xù)課程,其教學(xué)面臨著新的挑戰(zhàn),特別是軟件技術(shù)與開發(fā)手段的不斷更新。因此,課程內(nèi)容也要隨之調(diào)整,要不斷引入新的軟件項(xiàng)目管理方法,追蹤業(yè)界新方法、新手段,建立新案例、新工具,為進(jìn)一步拓寬學(xué)生未來的發(fā)展奠定良好的基礎(chǔ)。
參考文獻(xiàn):
[1] 朱全敏. 軟件項(xiàng)目管理綜述[EB/OL].(2003-08-06)[2010-10-10]. http://www.e-works.net.cn/ewkArticles/Category 112/Article15074.htm.
[2]