趙 杉 劉 強(qiáng)
【摘 要】“軟件工程”是一門理論性突出、涵蓋廣泛、工程性強(qiáng)的計(jì)算機(jī)專業(yè)課。本文主要針對(duì)這門課程的特點(diǎn),分析“軟件工程”這門課程在教學(xué)過程中存在的問題及難點(diǎn),結(jié)合目前軟件企業(yè)的工作流程及作者在教學(xué)過程的采用的辦法,探索在“軟件工程”教學(xué)過程中采用的新思路、新方法,從而形成一套比較成熟的教學(xué)模式。該教學(xué)模式,主要是結(jié)合大型模擬項(xiàng)目,按照企業(yè)的管理規(guī)范,讓學(xué)生對(duì)“軟件工程”的經(jīng)典理論有了更加直觀和深刻的認(rèn)識(shí)。
【關(guān)鍵詞】軟件工程;工作流程;教學(xué)模式
1.“軟件工程”課程概述
隨著計(jì)算機(jī)產(chǎn)業(yè)的迅猛發(fā)展,我國的軟件行業(yè)對(duì)計(jì)算機(jī)人才的需求也在不斷地變化,為了適應(yīng)社會(huì)的需求,培養(yǎng)應(yīng)用型人才稱為各高校的重中之重。因此各高校在計(jì)算機(jī)專業(yè)課程的設(shè)置上,進(jìn)行了相應(yīng)的調(diào)整。同時(shí),對(duì)課程的教學(xué)內(nèi)容及教學(xué)方法都有不同程度的改革和創(chuàng)新。其中“軟件工程”這門課當(dāng)中的很多理論和方法,在實(shí)際的項(xiàng)目開發(fā)過程中起著至關(guān)重要的作用。那么如何讓“軟件工程”這門課程更好地與企業(yè)實(shí)際項(xiàng)目需要相結(jié)合,就是目前我們必須要解決的問題。
“軟件工程”這門課程是計(jì)算機(jī)科學(xué)技術(shù)和軟件工程專業(yè)的核心課程,包含了軟件開發(fā)技術(shù)、過程和管理等很多方面的內(nèi)容,是一門理論和實(shí)踐并重的專業(yè)課程。它具有理論性突出、涵蓋廣泛、工程性強(qiáng)等特點(diǎn),是一門包含范圍廣泛的綜合性學(xué)科,是一門難教、難學(xué)的重要課程。我要論述的核心內(nèi)容,就是如何讓學(xué)生通過模擬的項(xiàng)目開發(fā),結(jié)合討論課教學(xué)方法及配套的教學(xué)過程管理,通過項(xiàng)目實(shí)踐對(duì)枯燥的理論和方法加以理解和運(yùn)用,并使用這些理論和方法來指導(dǎo)我們的項(xiàng)目實(shí)踐,最終達(dá)到比較理想的教學(xué)效果。
2.分析“軟件工程”課程中存在的問題
為了適應(yīng)社會(huì)的需求,各高校都在不斷探索研究新的教學(xué)模式及方法,例如課程改革、實(shí)踐教學(xué)、項(xiàng)目驅(qū)動(dòng)教學(xué)、情景教學(xué)等等?!败浖こ獭边@門課程采用項(xiàng)目驅(qū)動(dòng)或情景教學(xué)還存在一些問題。
1)對(duì)“軟件工程”人才培養(yǎng)模式與最終目標(biāo)認(rèn)識(shí)存在很大偏差。各高校培養(yǎng)的大部分學(xué)生屬于中等及偏下的技術(shù)人員,而企業(yè)需要的是中上或高端的技術(shù)人員,顯然與企業(yè)實(shí)際需求嚴(yán)重不符。
2)教學(xué)內(nèi)容與學(xué)生的實(shí)際情況嚴(yán)重不匹配。新的“軟件工程”開發(fā)方法與技術(shù)受限于本科階段學(xué)生的實(shí)踐經(jīng)驗(yàn)和知識(shí)結(jié)構(gòu)的不足,絕大多數(shù)開發(fā)方法及技術(shù)很難在教學(xué)過程中展開及執(zhí)行。
3)教學(xué)安排也可能會(huì)存在一些問題。每個(gè)高校的實(shí)際情況不同,教學(xué)安排也會(huì)有所不同??赡軙?huì)出現(xiàn)“軟件工程”這門課程與其他專業(yè)課程銜接不好等不良的情況發(fā)生。所以關(guān)于“軟件工程”這門課程的先導(dǎo)課有哪些、哪些課程可以并行都需要課程安排的時(shí)候認(rèn)真仔細(xì)考慮。
4)很多時(shí)候我們忽略了文檔編寫的環(huán)節(jié),并沒有真正意識(shí)到文檔在軟件生命周期中的重大作用。
5)“軟件工程”這門課程對(duì)應(yīng)的教材多種多樣,但很多教材當(dāng)中的案例與目前軟件行業(yè)的實(shí)際需要不同步,很多都過時(shí)且不實(shí)用。我們需要的是理論及案例都應(yīng)該圍繞現(xiàn)實(shí)需求的同步教材。
6)多數(shù)學(xué)生對(duì)課程認(rèn)識(shí)不清,認(rèn)為“軟件工程”是一門理論性強(qiáng)的課程,單純死記硬背來進(jìn)行學(xué)習(xí)。
7)由于實(shí)踐經(jīng)驗(yàn)嚴(yán)重不足,學(xué)生面對(duì)抽象理論無法做到理論聯(lián)系實(shí)際,容易感到枯燥乏味,很難產(chǎn)生興趣,進(jìn)而無法達(dá)到理想的教學(xué)效果。
8)傳統(tǒng)的教師講學(xué)生聽的教學(xué)方法,學(xué)生參與度不高,使學(xué)生在學(xué)習(xí)過程中缺少主動(dòng)性,甚至是出現(xiàn)了很多出工不出力的情況。
9)單一的教學(xué)手段不能滿足學(xué)生團(tuán)隊(duì)溝通與個(gè)性化學(xué)習(xí)的需要。
3.根據(jù)“軟件工程”課程存在的問題,調(diào)整“軟件工程”課程的教學(xué)方法
傳統(tǒng)的灌輸式的教學(xué)方式是無法滿足“軟件工程”這門課程的教學(xué)要求的,改革的關(guān)鍵是讓各個(gè)教學(xué)環(huán)節(jié)與過程動(dòng)起來。我們從教學(xué)、實(shí)驗(yàn)、考核和輔導(dǎo)上進(jìn)行全面的改革和創(chuàng)新,具體的方法如下:
1)以實(shí)際的項(xiàng)目提高學(xué)生學(xué)習(xí)的積極性和主動(dòng)性。為了避免上課只是講解空洞的理論,而忽略了實(shí)踐,課程采用大型項(xiàng)目實(shí)驗(yàn)?zāi)M真實(shí)環(huán)境,讓學(xué)生得到更感性的認(rèn)識(shí)。并在實(shí)驗(yàn)過程中,教師人為的制造各種障礙,讓學(xué)生在挫折中真實(shí)地體驗(yàn)前人的經(jīng)驗(yàn)教訓(xùn)。為此,在教學(xué)過程中把學(xué)生分成若干開發(fā)小組,每個(gè)小組由不同技術(shù)類型、不同特長的學(xué)生組成。比如每個(gè)團(tuán)隊(duì)需要至少一名組長,要求具有凝聚力,能指揮動(dòng)組員;至少需要一名技術(shù)過硬的組員,負(fù)責(zé)相應(yīng)的代碼開發(fā)工作;至少一名寫作能力突出的組員,負(fù)責(zé)書寫編輯各種文檔;至少一名能說會(huì)道的組員,負(fù)責(zé)對(duì)外交流等等。這樣既可以優(yōu)勢(shì)互補(bǔ),也可以利用競(jìng)爭(zhēng)機(jī)制,激發(fā)學(xué)生學(xué)習(xí)的動(dòng)力。結(jié)合課程的進(jìn)度,每次課安排相應(yīng)的任務(wù),要求每個(gè)項(xiàng)目小組在每個(gè)章節(jié)或每個(gè)階段都要選擇性地寫出成果文檔。例如立項(xiàng)申請(qǐ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ī)范、測(cè)試計(jì)劃書、單體測(cè)試式樣書、結(jié)合測(cè)試式樣書、系統(tǒng)測(cè)試式樣書、QA一覽表、軟件維護(hù)手冊(cè)、用戶操作手冊(cè)、項(xiàng)目開發(fā)總結(jié)報(bào)告等。在實(shí)踐中體會(huì)軟件開發(fā)的過程。在開發(fā)過程中,教師扮演著客戶的角色,與學(xué)生進(jìn)行模擬的需求分析;小組定期討論,小組之間互相借鑒學(xué)習(xí);每個(gè)小組定期提交書面的報(bào)告;文檔格式內(nèi)容都有嚴(yán)格的要求。在此基礎(chǔ)上,共同開發(fā)一個(gè)完整的系統(tǒng)。反之,如果教師把所有的事情理順,并安排妥當(dāng),那么,學(xué)生一是缺少動(dòng)力,二是學(xué)到的東西也少。就是要他們?cè)趯?shí)際動(dòng)手的過程中有切膚感受。
2)改革考核方式,以“學(xué)分激勵(lì)法”提高學(xué)生學(xué)習(xí)的積極主動(dòng)性。由于是模擬的項(xiàng)目,沒有經(jīng)費(fèi)支持,但是教師手里有學(xué)生比較在乎的分?jǐn)?shù),因此誕生了“學(xué)分激勵(lì)法”。所謂“學(xué)分激勵(lì)法”就是在每個(gè)階段驗(yàn)收的時(shí)候,按照每個(gè)小組完成的情況,給出相應(yīng)的分?jǐn)?shù),組長再按照小組成員的完成情況把這個(gè)學(xué)分打給相應(yīng)的學(xué)生,組長只能得到組員的平均分。組長會(huì)受到教師的監(jiān)督,在期末根據(jù)完成情況,對(duì)組長單獨(dú)獎(jiǎng)勵(lì)或者懲罰。這種辦法解決了,一個(gè)教師負(fù)責(zé)很多學(xué)生,無法全面了解每個(gè)學(xué)生學(xué)習(xí)工作情況的問題。教師只需要管理幾個(gè)學(xué)生團(tuán)隊(duì)的負(fù)責(zé)人,團(tuán)隊(duì)內(nèi)部全部交由該負(fù)責(zé)人全權(quán)負(fù)責(zé),包括任務(wù)的分配及驗(yàn)收,大大地提高了工作效率。
3)合理配備小組成員。一個(gè)項(xiàng)目最后能否成功,團(tuán)隊(duì)的配備有時(shí)起到了決定性的作用。小組的分配原則:
①學(xué)習(xí)成績好的和學(xué)習(xí)成績不好的要盡量搭配在一個(gè)小組中。
②由于動(dòng)手能力不同,盡量把男生和女生進(jìn)行合理比例搭配組成小組。
③為了方便在一起討論問題,盡量把在同一個(gè)寢室的學(xué)生組成在一個(gè)小組中。
④由于很多文檔都需要用業(yè)余時(shí)間完成,所以要盡量把擁有個(gè)人計(jì)算機(jī)的和沒有計(jì)算機(jī)的搭配在一個(gè)小組。
⑤每個(gè)團(tuán)隊(duì)要有一名具有領(lǐng)導(dǎo)才能的學(xué)生擔(dān)任組長一職。
⑥要有至少一名技術(shù)能力過關(guān)的學(xué)生擔(dān)任技術(shù)指導(dǎo)。
⑦要有至少一名口才出眾的學(xué)生擔(dān)任講解員。
⑧要有至少一名文字表達(dá)清晰的學(xué)生擔(dān)任文檔書寫編輯工作。
通過以上原則建立起來的團(tuán)隊(duì)才有戰(zhàn)斗力、凝聚力,才有可能最終完成項(xiàng)目及相應(yīng)教學(xué)的各個(gè)環(huán)節(jié)。團(tuán)隊(duì)的組成,并不是一成不變,根據(jù)需要,可做出相應(yīng)的調(diào)節(jié)。
4)改革考試形式。為了避免學(xué)生死記硬背、不求甚解的現(xiàn)象,本課程加大實(shí)驗(yàn)環(huán)節(jié)及討論環(huán)節(jié)在期末成績中所占的比例,將平時(shí)成績比例提高到50%。期末考試采用開卷的方式,考試內(nèi)容更注重實(shí)際應(yīng)用的能力,減少空洞理論的比例。避免學(xué)生采用考前突擊、死記硬背等辦法,就可以拿高分的情況,讓平時(shí)努力好學(xué)、積極參加討論并在團(tuán)隊(duì)中表現(xiàn)突出的學(xué)生可以得到比較高的分?jǐn)?shù)。
5)教師資源整合。充分利用系上教師資源,在課程的不同環(huán)節(jié),請(qǐng)相關(guān)領(lǐng)域的優(yōu)秀教師進(jìn)行講解,實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ)。比如測(cè)試階段,在大型項(xiàng)目中,測(cè)試是很重要的一個(gè)環(huán)節(jié),我們可以利用系上測(cè)試方向的教師,給學(xué)生進(jìn)行現(xiàn)場(chǎng)指導(dǎo)。力求在測(cè)試方面達(dá)到一定的高度。目前我系各個(gè)方向教師配備都比較齊全,師資力量較雄厚,為實(shí)現(xiàn)教師資源整合利用提供了強(qiáng)大的支持。
6)改革教學(xué)方法。在課程中,大力推進(jìn)教學(xué)改革,目的是使學(xué)生變被動(dòng)學(xué)習(xí)為主動(dòng)自學(xué)。采用的具體辦法是定期開展討論課,加大討論課在教學(xué)環(huán)節(jié)中所占的比重。教師采用精講的辦法,把更多的時(shí)間和精力放在指導(dǎo)學(xué)生實(shí)踐和了解學(xué)生學(xué)習(xí)情況上。結(jié)合課程內(nèi)容,把每學(xué)期討論課的安排提前告知各學(xué)生團(tuán)隊(duì)。對(duì)于每個(gè)團(tuán)隊(duì)在解決實(shí)際問題過程中遇到的困難,鼓勵(lì)學(xué)生去圖書館或者網(wǎng)上查閱資料,從而養(yǎng)成獨(dú)立思考及解決問題的能力。在討論課的形式上,目前采用學(xué)生團(tuán)隊(duì)討論學(xué)習(xí)后,把學(xué)習(xí)成果制作成相應(yīng)的PPT,在講臺(tái)上跟大家交流,并回答坐在臺(tái)下的教師及其它學(xué)生團(tuán)隊(duì)提出的問題的方式。因此,除了課堂上的教學(xué)時(shí)間以外,學(xué)生還需要課下花更多的時(shí)間去準(zhǔn)備,而不是簡單地在課堂上聽聽了事。除此之外,制定了詳細(xì)的評(píng)分細(xì)則,著重考察學(xué)生對(duì)理論知識(shí)的理解程度、思維的邏輯性、完整性及語言表達(dá)是否流利清晰,對(duì)于積極提出問題的團(tuán)隊(duì)加分鼓勵(lì),反之則扣分懲罰。
4.結(jié)束語
本文結(jié)合了“軟件工程”的特點(diǎn)及存在的問題,具體闡述了在實(shí)際的教學(xué)中采用什么辦法解決,并提出了創(chuàng)新性的“學(xué)分激勵(lì)法”。實(shí)踐證明,我系開展的“軟件工程”教學(xué)改革是成功的。通過新的教學(xué)方法、教學(xué)實(shí)踐、項(xiàng)目團(tuán)隊(duì)的管理方式及考核方式的改革,使學(xué)生投入到軟件項(xiàng)目開發(fā)的實(shí)踐當(dāng)中去,激發(fā)了學(xué)生的創(chuàng)造潛能,提高了學(xué)生的動(dòng)手能力、自主學(xué)習(xí)能力等等??赡苓@些方法尚存不足,還希望與各位講授“軟件工程”這門課程的教師多多交流與學(xué)習(xí)。
參考文獻(xiàn):
[1] 郭寧. 軟件工程實(shí)用教程[M]. 北京:人民郵電出版社.2006.
[2] 趙曉東. 比較教學(xué)法與工程機(jī)械教學(xué)[J]. 中國職業(yè)技術(shù)教育.2006.
[3] 張海蕭.軟件工程導(dǎo)論[M].北京.清華大學(xué)出版社.2008.