朱克敵
文章編號:1672-5913(2009)02-0106-02
摘 要:軟件工程是一門理論性較深、涉及面較廣、工程性較強(qiáng)的計(jì)算機(jī)主干專業(yè)課。本文針對該課程特點(diǎn),結(jié)合軟件企業(yè)中的典型工作任務(wù)過程以及作者在教學(xué)中的實(shí)踐,探索了在教學(xué)中如何利用情境教學(xué)進(jìn)行教學(xué)的新思路,形成了一個(gè)探索性的情境教學(xué)模式。
關(guān)鍵詞:軟件工程;項(xiàng)目管理;情境教學(xué)
中圖分類號:G642
文獻(xiàn)標(biāo)識碼:B
1引言
隨著近年來國際軟件外包產(chǎn)業(yè)的重新分工和我國產(chǎn)業(yè)經(jīng)濟(jì)結(jié)構(gòu)的戰(zhàn)略調(diào)整,我國軟件產(chǎn)業(yè)對計(jì)算機(jī)軟件類人才的需要也發(fā)生了很大的結(jié)構(gòu)性變化,為了適應(yīng)社會(huì)對人才需求,培養(yǎng)社會(huì)需要的應(yīng)用型人才,各大專院校對計(jì)算機(jī)專業(yè)及相關(guān)專業(yè)的課程設(shè)置也在不斷地進(jìn)行調(diào)整,目前“軟件工程”這門課程已逐漸成為了計(jì)算機(jī)主干專業(yè)課。
“軟件工程”這門課是軟件工程專業(yè)中核心課程之一,它具有理論深、涉及面廣、實(shí)踐性強(qiáng)等特點(diǎn),是一門涉及計(jì)算機(jī)科學(xué)、數(shù)學(xué)、經(jīng)濟(jì)學(xué)、法學(xué)、管理學(xué)、心理學(xué)等多學(xué)科的綜合性學(xué)科,是一門比較難教、難學(xué)的重要課程。那么,如何根據(jù)課程特點(diǎn)并應(yīng)用情境教學(xué)于這門課中,使學(xué)生能夠在情境和模仿中理解軟件工程過程和相應(yīng)管理的真正含義,這是本文要論述的中心。
2課程特點(diǎn)及存在的問題
為了適應(yīng)社會(huì)對高等教育的新需求,我國各大專院校都在不斷探索新的教學(xué)模式,國家也成立了許多示范性院校,各個(gè)示范性院校都在尋求各種教改,例如教學(xué)體制、國際合作、教材建設(shè)、課程改革、實(shí)踐教學(xué)、項(xiàng)目教學(xué)、情境教學(xué)等等,并已取得了很多成果。就目前而言,各個(gè)學(xué)校的教師在課程教學(xué)中,對項(xiàng)目教學(xué)和情境教學(xué)都作過許多探索并投入了很大的關(guān)注,但還存在著一些問題。
(1) 注重“軟件工程技術(shù)”,輕視“軟件工程管理”,在授課過程中往往把它們孤立分裂開進(jìn)行講解,即在前期花費(fèi)大量的學(xué)時(shí)講授軟件工程技術(shù)理論,僅僅在最后才花費(fèi)一兩次課進(jìn)行軟件管理技術(shù)的講解。
(2) 由于教師參與大型軟件設(shè)計(jì)、開發(fā)的機(jī)會(huì)較少、實(shí)踐經(jīng)驗(yàn)有限,所以在講授課程過程中,對管理在軟件過程中的應(yīng)用理解不足,也容易出現(xiàn)重技術(shù)輕管理的現(xiàn)象。
(3) 在課堂教學(xué)中每章孤立式地使用了一些案例教學(xué),內(nèi)容講授不連貫,使學(xué)生對軟件工程的各個(gè)過程的理解比較零散,過程整體性不鮮明。
(4) 現(xiàn)在的呆板授課方式,往往容易使學(xué)生只知道應(yīng)該做什么,卻不知道怎樣去做,這樣就會(huì)使學(xué)生對理論內(nèi)容理解不深、記憶不強(qiáng)。
(5) 模仿是初學(xué)者迅速成長的必經(jīng)之路,而現(xiàn)在的教材中出現(xiàn)的文檔說明許多都不實(shí)用,在實(shí)際工作中幾乎不適用。
我們曾經(jīng)對參加過社會(huì)培訓(xùn)機(jī)構(gòu)培訓(xùn)過的計(jì)算機(jī)應(yīng)屆畢業(yè)生作過調(diào)查,反饋的意見讓我們真正理解了軟件工程與項(xiàng)目管理的關(guān)系以及它們在項(xiàng)目開發(fā)中的重要作用和意義。
如何才能在教學(xué)環(huán)節(jié)上解決這一問題,情境教學(xué)是一個(gè)好的教學(xué)方法。在情境教學(xué)中我們應(yīng)該關(guān)注如下一些要點(diǎn):
(1) 情境是與實(shí)際工作任務(wù)緊密相連的,情境中的活動(dòng)內(nèi)容不應(yīng)該僅僅是一個(gè)案例,而應(yīng)該是一個(gè)貫穿整體的過程活動(dòng),每一個(gè)情境都應(yīng)該是另一個(gè)情境的前驅(qū)或后繼。
(2) 參與情境中的角色要分明,責(zé)任要清晰,并且要有一定的連續(xù)性。
(3) 情境中的角色不僅要擔(dān)當(dāng)一定的任務(wù),同時(shí)一定要有最終的工作成果。
(4) 對每個(gè)情境中的角色都要有最終的評價(jià)。
(5) 情境來源于實(shí)際,由于學(xué)生還沒有機(jī)會(huì)參與社會(huì),項(xiàng)目經(jīng)驗(yàn)機(jī)會(huì)很少,所以在情境中的角色往往是茫然的,不知所措的,所以,我們應(yīng)該在情境中設(shè)計(jì)一些技巧、模版,讓學(xué)生能夠模仿,這樣可以加快進(jìn)入角色,舉一反三。
本文就是在充分考慮該課程的特點(diǎn),結(jié)合作者多年教學(xué)和工程實(shí)踐經(jīng)驗(yàn),在課程教學(xué)方面作一些嘗試和探索。
3教學(xué)中的實(shí)踐方法
我們在教學(xué)過程中充分考慮到教材中的每個(gè)章節(jié)內(nèi)容在實(shí)際軟件企業(yè)中的工作任務(wù)情境,再結(jié)合軟件工程課程的特點(diǎn),盡量把理論授課內(nèi)容穿插到教學(xué)情境中,在課堂上和課后作業(yè)教學(xué)中探索性采取了如下一些方法:
(1) 首先由相關(guān)教師組成一個(gè)“情境教學(xué)研究”小組,與軟件企業(yè)充分交流,根據(jù)軟件生命周期過程的工作任務(wù)共同研究開發(fā)若干“教學(xué)情境”。
(2) 把軟件工程的設(shè)計(jì)開發(fā)內(nèi)容和項(xiàng)目管理過程內(nèi)容有機(jī)地結(jié)合并互相穿插起來。
例如把項(xiàng)目計(jì)劃、項(xiàng)目監(jiān)督和控制、驗(yàn)證、確認(rèn)、配置管理、質(zhì)量和分析等都貫穿于授課的整個(gè)軟件生命周期的每個(gè)階段中。
(3) 把學(xué)生分成6人一個(gè)小組,每個(gè)人都負(fù)有一定的角色和給定的責(zé)任,角色在整個(gè)學(xué)期中要進(jìn)行互換。
小組分配原則:
●學(xué)習(xí)成績好的和學(xué)習(xí)成績不好的要盡量搭配在一個(gè)小組中。
●由于動(dòng)手能力不同,盡量把男生和女生進(jìn)行合理比例搭配組成小組。
●為了方便在一起討論問題,盡量把在同一個(gè)寢室的學(xué)生組成在一個(gè)小組中。
●由于很多文檔都需要用業(yè)余時(shí)間完成,所以要盡量把擁有個(gè)人計(jì)算機(jī)的和沒有計(jì)算機(jī)的搭配在一個(gè)小組。
角色分配:
PM:老師、LD:小組長、SE:軟件工程師、PG:程序員、CM:配置管理員、QA:質(zhì)量管理員
(4) 要求明確每個(gè)角色的責(zé)任和工作范圍
PM:有任課教師擔(dān)當(dāng),負(fù)責(zé)管理全班所有項(xiàng)目的進(jìn)度和完成質(zhì)量,協(xié)調(diào)項(xiàng)目組之間出現(xiàn)的問題。
LD:對本項(xiàng)目小組進(jìn)行任務(wù)分配和全面管理,并向PM負(fù)責(zé)。
SE:負(fù)責(zé)組織項(xiàng)目組成員進(jìn)行項(xiàng)目分析、設(shè)計(jì)、開發(fā)、測試等工作。
PG:進(jìn)行部分程序框架的編制。
CM:配置控制和管理
QA:質(zhì)量控制管理
(5) 工作會(huì)議記錄
目的是監(jiān)督和控制學(xué)生完成老師布置的每章任務(wù),同時(shí),讓學(xué)生體會(huì)和感覺開發(fā)小組氛圍,培養(yǎng)團(tuán)隊(duì)合作的精神。要求每個(gè)項(xiàng)目小組每周都要根據(jù)本周老師授課內(nèi)容召開一次小組會(huì)議,并寫出會(huì)議記錄。會(huì)議記錄內(nèi)容要求包括:
●本周課程內(nèi)容和任務(wù)的討論。
●上次會(huì)議任務(wù)的工作結(jié)果匯報(bào)。
●本次會(huì)議討論的議題和結(jié)論。
●沒有結(jié)論的問題保留等。
(6) 根據(jù)課程授課進(jìn)展,要求每個(gè)項(xiàng)目小組在每個(gè)章節(jié)或每個(gè)階段都要選擇性地寫出成果文檔。例如立項(xiàng)申請書、可行性分析報(bào)告、項(xiàng)目開發(fā)計(jì)劃、項(xiàng)目開發(fā)計(jì)劃、項(xiàng)目開發(fā)體制圖、整體項(xiàng)目進(jìn)度表、用戶需求調(diào)查表、需求規(guī)格說明書、需求變更跟蹤票、概要設(shè)計(jì)說明書、數(shù)據(jù)庫設(shè)計(jì)書、畫面設(shè)計(jì)、項(xiàng)目畫面遷移圖、詳細(xì)設(shè)計(jì)說明書、程序設(shè)計(jì)、代碼規(guī)范、測試計(jì)劃書、單體測試式樣書、結(jié)合測試式樣書、系統(tǒng)測試式樣書、QA一覽表、軟件維護(hù)手冊、用戶操作手冊、項(xiàng)目開發(fā)總結(jié)報(bào)告等。
(7) 課堂上適度地增加情境教學(xué)
針對每章授課內(nèi)容設(shè)計(jì)一個(gè)或兩個(gè)教學(xué)情境,分別由課堂活動(dòng)和課后活動(dòng)組成。老師在講完整章理論內(nèi)容之后,最后把全部內(nèi)容穿插起來帶領(lǐng)學(xué)生進(jìn)行一次情境教學(xué)活動(dòng)。情境活動(dòng)有老師組織,某個(gè)小組進(jìn)行活動(dòng)發(fā)表,其他小組進(jìn)行評審。在整個(gè)學(xué)期中每個(gè)小組都會(huì)有機(jī)會(huì)擔(dān)當(dāng)情境活動(dòng)者。例如我們設(shè)計(jì)了如下一些情境活動(dòng):
●軟件計(jì)劃階段:可行性分析討論情境活動(dòng)
●需求分析階段:需求獲取和分析情境活動(dòng)
●基本設(shè)計(jì)階段:基本設(shè)計(jì)評審情境活動(dòng)
●詳細(xì)設(shè)計(jì)階段:詳細(xì)設(shè)計(jì)評審情境活動(dòng)
●代碼制造階段:代碼規(guī)范性討論情境活動(dòng)
●軟件測試階段:測試計(jì)劃和內(nèi)容評審情境活動(dòng)
●其他一些情境:小組會(huì)議情境、項(xiàng)目計(jì)劃制定、風(fēng)險(xiǎn)評估情境、配置管理情境等。
(8) 規(guī)范文檔模板
學(xué)生只學(xué)習(xí)了理論,往往對于如何撰寫各種成果表格和文檔都比較茫然,所以便于學(xué)生模仿,我們結(jié)合軟件企業(yè)資料抽象構(gòu)建了一些關(guān)鍵性的模版供學(xué)生模仿,這樣可以使學(xué)生盡快理解實(shí)際過程中的應(yīng)用關(guān)鍵點(diǎn)。模板類型包括表格、圖形、文檔等各種形式。
(9) 增加一周的課程實(shí)訓(xùn)
把平時(shí)在松散環(huán)境下完成的項(xiàng)目設(shè)計(jì)、開發(fā),測試、管理等教學(xué)內(nèi)容再次以團(tuán)隊(duì)合作形式集中進(jìn)行項(xiàng)目整體情境活動(dòng)實(shí)訓(xùn),其中要求把管理活動(dòng)和軟件工程相結(jié)合最終形成實(shí)訓(xùn)報(bào)告。
(10) 條件允許的情況下,組織學(xué)生到軟件企業(yè)進(jìn)行參觀,了解和體驗(yàn)軟件企業(yè)的工作環(huán)境和工作氛圍,激發(fā)學(xué)生畢業(yè)以后繼續(xù)從事計(jì)算機(jī)軟件行業(yè)的熱情和信心。到企業(yè)進(jìn)行參觀時(shí),一定要避免走馬觀花式的參觀,要請企業(yè)資深經(jīng)理或一線企業(yè)員工進(jìn)行企業(yè)介紹和講解。講解內(nèi)容組應(yīng)包括:
●軟件企業(yè)管理和文化。
●軟件企業(yè)對應(yīng)聘員工的要求。
●IT職業(yè)道德教育。
●計(jì)算機(jī)行業(yè)的發(fā)展的美好前景。
●計(jì)算機(jī)行業(yè)的最新前沿技術(shù)。
●對同學(xué)們的殷切希望和要求等。
(11) 每個(gè)小組進(jìn)行內(nèi)部評價(jià)
要求每個(gè)小組長對每個(gè)組員在本學(xué)期中參與小組活動(dòng)情況進(jìn)行評價(jià),每個(gè)評價(jià)點(diǎn)10分,一共為100分。老師對每個(gè)小組長工作情況進(jìn)行評價(jià),最終作為期末成績評價(jià)依據(jù)。評價(jià)標(biāo)準(zhǔn)如下:
態(tài)度與協(xié)作:積極性情況、團(tuán)隊(duì)合作情況、執(zhí)行力情況,小組會(huì)議出勤情況
參考文獻(xiàn)
[1] 趙曉東. 比較教學(xué)法與工程機(jī)械教學(xué)[J]. 中國職業(yè)技術(shù)教育,2006,(19): 47-48.
[2] 李運(yùn)模. 比較教學(xué)法論略[J]. 中南民族學(xué)院學(xué)報(bào)(人文社會(huì)科學(xué)版),2000,20(3):125-127.
[3] Marco Cantù. Mastering Borland Delphi 2005[M]. USA: SYBEX Inc., 2005.
[4] 劉藝. Delphi面向?qū)ο缶幊趟枷隱M]. 北京:機(jī)械工業(yè)出版社,2003.
[5] Bruce Eckel. Thinking in C++, 2nd Ed., Volume 1[M]. USA: Prentice Hall PTR, 2000.
[6] Andrew Troelsen. Pro C# 2008 and the .NET 3.5 Platform, 4th Ed[M]. USA: Apress, 2007.
Application of Comparative Teaching Method in Difficult Concepts Teaching of Polymorphism in Delphi
QI Lai-bin, FENG Xi-ye, JIANG Hai-yan, DU Lin
(Dept. of Computer Science and Technology, Shandong Institute of Education, Jinan 250013, China)
Abstract:Comparative teaching method is the effective method to surmount emphases and difficulties in teaching. This paper introduced the teaching practice of authors utilizing comparative teaching method to resolve difficult concepts that include override, overload and hide.
Key word:comparative teaching method; polymorphism; override; overload; hide; Delphi