羅海麗
(內(nèi)蒙古科技大學(xué)信息工程學(xué)院,內(nèi)蒙古包頭014010)
“軟件工程”是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的一門重要的專業(yè)必修課程,它的內(nèi)容主要涉及與軟件開(kāi)發(fā)和維護(hù)相關(guān)的概念、原理和方法,這些概念、原理、方法對(duì)于實(shí)際的軟件開(kāi)發(fā)起重要的指導(dǎo)作用。近幾年軟件工程學(xué)科發(fā)展較快,出現(xiàn)了許多新技術(shù)、新分支?,F(xiàn)有的軟件工程教材種類很多,但所涉及的側(cè)重點(diǎn)各不相同,有必要根據(jù)不同學(xué)校計(jì)算機(jī)專業(yè)的專業(yè)方向及培養(yǎng)目標(biāo),選擇適合的教學(xué)內(nèi)容,以做到有針對(duì)性的教學(xué);“軟件工程”課程內(nèi)容主要涉及與軟件開(kāi)發(fā)維護(hù)相關(guān)的原理和方法,這些內(nèi)容若沒(méi)有軟件開(kāi)發(fā)實(shí)踐做支撐,勢(shì)必顯得空洞乏味。因此有必要從課堂教學(xué)、實(shí)驗(yàn)教學(xué)、實(shí)踐教學(xué)這三個(gè)環(huán)節(jié)入手探索“軟件工程”課程的一種新的教學(xué)模式。這種新的教學(xué)模式通過(guò)案例教學(xué)、實(shí)訓(xùn)式實(shí)驗(yàn)及綜合實(shí)踐相結(jié)合,幫助學(xué)生更好地掌握“軟件工程”課程內(nèi)容,并培養(yǎng)學(xué)生實(shí)際軟件開(kāi)發(fā)的能力。
軟件工程領(lǐng)域的知識(shí)體系如圖1所示。
圖1 軟件工程領(lǐng)域的知識(shí)體系
按照教育部計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)規(guī)范,計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)分為計(jì)算機(jī)科學(xué)、計(jì)算機(jī)工程、軟件工程、信息技術(shù)這四個(gè)專業(yè)方向。不同的專業(yè)方向的特點(diǎn)及培養(yǎng)目標(biāo)不同,因此不同的專業(yè)方向中“軟件工程”課程的內(nèi)容應(yīng)有所不同。
計(jì)算機(jī)科學(xué)方向研究計(jì)算機(jī)和可計(jì)算系統(tǒng)的理論、設(shè)計(jì)、開(kāi)發(fā)技術(shù),著重于理論知識(shí)的教學(xué)和分析問(wèn)題、解決問(wèn)題能力的培養(yǎng),以培養(yǎng)計(jì)算機(jī)科學(xué)研究型人才為目標(biāo)?!败浖こ獭闭n程是該方向的核心課程。該方向中“軟件工程”課程的內(nèi)容應(yīng)包括軟件過(guò)程、軟件過(guò)程的改善、項(xiàng)目管理、軟件分析、軟件設(shè)計(jì)、工具與環(huán)境等知識(shí)。
計(jì)算機(jī)工程方向研究計(jì)算機(jī)系統(tǒng)的理論、設(shè)計(jì)、實(shí)現(xiàn)、開(kāi)發(fā)和應(yīng)用。著重于理論和工程知識(shí)的教學(xué),使學(xué)生掌握較高層次的計(jì)算機(jī)系統(tǒng)的分析、設(shè)計(jì)能力。軟件工程是計(jì)算機(jī)系統(tǒng)工程的重要組成部分,因此“軟件工程”課程是該方向的核心課程。該方向中“軟件工程”課程的內(nèi)容應(yīng)包括軟件過(guò)程、軟件開(kāi)發(fā)的方法與技術(shù)、工具與環(huán)境、軟件生命周期。
軟件工程方向研究如何用系統(tǒng)的、規(guī)范的、可度量的方法開(kāi)發(fā)、維護(hù)軟件。該方向的教學(xué)既重視理論知識(shí)和較高層次分析問(wèn)題、解決問(wèn)題的方法,也重視軟件設(shè)計(jì)和工程實(shí)踐。軟件工程方向的知識(shí)要求幾乎覆蓋了軟件工程領(lǐng)域的知識(shí)體系的全部。該方向只設(shè)一門“軟件工程”課程是不夠的,應(yīng)設(shè)立一系列軟件工程相關(guān)課程。應(yīng)開(kāi)設(shè)“軟件工程導(dǎo)論”課程,用于綜述軟件工程知識(shí)體系及各部分知識(shí);應(yīng)開(kāi)設(shè)“軟件過(guò)程管理”課程,用于講授軟件開(kāi)發(fā)工程、項(xiàng)目管理、軟件質(zhì)量管理、軟件度量等知識(shí);應(yīng)開(kāi)設(shè)“面向?qū)ο筌浖_(kāi)發(fā)方法”課程,用于講授目前應(yīng)用廣泛的面向?qū)ο蟮能浖_(kāi)發(fā)方法及該方法涉及的工具;此外,軟件生命周期中的各重要階段(如需求分析階段,總體設(shè)計(jì)階段,詳細(xì)設(shè)計(jì)階段,編碼階段,測(cè)試階段)均需對(duì)應(yīng)一門獨(dú)立的課程,用于講授該階段的任務(wù)及涉及的工具方法[1]。
信息技術(shù)方向著重培養(yǎng)學(xué)生運(yùn)用信息技術(shù)領(lǐng)域的核心技術(shù)、工具來(lái)構(gòu)造滿足需求的計(jì)算機(jī)應(yīng)用系統(tǒng)的能力,即培養(yǎng)應(yīng)用型人才。這一方向中的“軟件工程”課程內(nèi)容的選擇應(yīng)更具有實(shí)用性?!败浖こ獭闭n程內(nèi)容應(yīng)包括軟件生命周期、軟件開(kāi)發(fā)方法與技術(shù)、軟件開(kāi)發(fā)過(guò)程中涉及的重要工具與環(huán)境。
在計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的四個(gè)專業(yè)方向中“軟件工程”課程都是重要的專業(yè)必修課,該課程的教學(xué)效果直接影響到專業(yè)的發(fā)展,因此有必要從課堂教學(xué)、實(shí)驗(yàn)教學(xué)、實(shí)踐教學(xué)這三個(gè)環(huán)節(jié)入手探索“軟件工程”課程的一種新的教學(xué)模式。
“軟件工程”課程主要內(nèi)容涉及指導(dǎo)軟件開(kāi)發(fā)的原理、方法、工具。若脫離了軟件開(kāi)發(fā)實(shí)踐,這些原理、方法、工具會(huì)變得枯燥、難懂。在“軟件工程”課程教學(xué)中引入案例輔助教學(xué)能有效地提高教學(xué)質(zhì)量。課程中的每個(gè)重要知識(shí)點(diǎn)都應(yīng)配備若干相關(guān)案例。在整個(gè)課程的教學(xué)中應(yīng)有1到2個(gè)貫穿始終的綜合案例。綜合案例應(yīng)為一個(gè)較為實(shí)際的軟件系統(tǒng)的開(kāi)發(fā)過(guò)程,包括問(wèn)題定義、可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試。綜合案例中應(yīng)包含各開(kāi)發(fā)階段中涉及的任務(wù)、技術(shù)、方法及工具。學(xué)生應(yīng)在課余時(shí)間認(rèn)真閱讀案例,并進(jìn)行分析,老師同步在課堂上講授案例,然后學(xué)生在實(shí)驗(yàn)課中,按照案例中的步驟重視案例中的系統(tǒng)開(kāi)發(fā)過(guò)程,最后總結(jié)歸納[2]。
實(shí)訓(xùn)式實(shí)驗(yàn)是通過(guò)實(shí)例演示及模擬、課堂練習(xí)、課后作業(yè)這三個(gè)環(huán)節(jié)使學(xué)生通過(guò)實(shí)驗(yàn)訓(xùn)練很好地掌握相關(guān)技術(shù)及方法。實(shí)訓(xùn)式實(shí)驗(yàn)包含如下三個(gè)環(huán)節(jié):
(1)實(shí)例演示及模擬
每個(gè)實(shí)驗(yàn),教師應(yīng)先講解實(shí)驗(yàn)步驟及要求。之后教師講解并演示一個(gè)案例,在此過(guò)程中學(xué)生同步模擬每個(gè)實(shí)驗(yàn)步驟。教師做一步,學(xué)生跟一步,若有學(xué)生出現(xiàn)問(wèn)題,教師及實(shí)驗(yàn)員應(yīng)及時(shí)輔導(dǎo)使其能跟上大家的進(jìn)度。
(2)課堂練習(xí)
案例講解演示之后,教師應(yīng)布置1到2個(gè)類似練習(xí)題,學(xué)生參照前面所講解的案例,按步驟完成這些練習(xí)。學(xué)生練習(xí)過(guò)程中教師應(yīng)全程指導(dǎo),實(shí)驗(yàn)課結(jié)束時(shí)學(xué)生應(yīng)將實(shí)驗(yàn)結(jié)果以電子郵件形式發(fā)給教師,并書(shū)寫(xiě)實(shí)驗(yàn)報(bào)告。
(3)課后作業(yè)
實(shí)驗(yàn)課結(jié)束時(shí),教師應(yīng)布置一個(gè)相關(guān)作業(yè),學(xué)生在課下參照教師講解的實(shí)例及課堂練習(xí)完成作業(yè),以鞏固相關(guān)知識(shí)。
“軟件工程”課程的教學(xué)中應(yīng)注重綜合實(shí)踐環(huán)節(jié)的建設(shè)。綜合實(shí)踐環(huán)節(jié)包括以下三個(gè)方面:
(1)“軟件工程”課程設(shè)計(jì)
“軟件工程”課程應(yīng)設(shè)置兩周左右的課程設(shè)計(jì)。課程設(shè)計(jì)的目標(biāo)是讓學(xué)生體驗(yàn)軟件開(kāi)發(fā)的全過(guò)程,且學(xué)會(huì)與他人合作,培養(yǎng)團(tuán)隊(duì)精神。課程設(shè)計(jì)過(guò)程中,學(xué)生分成若干小組,每個(gè)小組選擇一個(gè)項(xiàng)目,該項(xiàng)目的規(guī)模應(yīng)與課程綜合案例的規(guī)模類似。每個(gè)小組應(yīng)完成項(xiàng)目的問(wèn)題定義、可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)這些階段。各個(gè)小組由組長(zhǎng)負(fù)責(zé)組織、分工、控制進(jìn)度等,對(duì)小組成員的最終課程設(shè)計(jì)成績(jī)有一定的分?jǐn)?shù)浮動(dòng)調(diào)整權(quán);組長(zhǎng)帶領(lǐng)全組順利完成任務(wù),總評(píng)可加一定分?jǐn)?shù)。小組完成項(xiàng)目之后,應(yīng)提交項(xiàng)目開(kāi)發(fā)各階段文檔及課程設(shè)計(jì)報(bào)告。
(2)與其它課程的課程設(shè)計(jì)相結(jié)合
計(jì)算機(jī)專業(yè)的很多課程(如數(shù)據(jù)庫(kù)原理、信息系統(tǒng)開(kāi)發(fā)、數(shù)據(jù)結(jié)構(gòu)、C語(yǔ)言等)的課程設(shè)計(jì)都與軟件開(kāi)發(fā)相關(guān),可將這些課程的課程設(shè)計(jì)作為“軟件工程”課程的輔助課程設(shè)計(jì)。在這些相關(guān)課程的課程設(shè)計(jì)中,可通過(guò)恰當(dāng)?shù)剡x擇設(shè)計(jì)題目,將軟件工程的原理、方法、工具應(yīng)用于這些課程設(shè)計(jì)中,使學(xué)生體會(huì)到軟件工程方法與各種軟件開(kāi)發(fā)的關(guān)系。
(3)與畢業(yè)設(shè)計(jì)相結(jié)合
計(jì)算機(jī)專業(yè)的畢業(yè)設(shè)計(jì)主要是進(jìn)行實(shí)際的軟件開(kāi)發(fā)。目前畢業(yè)設(shè)計(jì)中學(xué)生一般面臨全新的題目,設(shè)計(jì)過(guò)程中學(xué)生既要分析研究系統(tǒng)又要熟悉開(kāi)發(fā)工具,這樣很多學(xué)生會(huì)覺(jué)得頭緒太多,忙不過(guò)來(lái),最終不能完成一個(gè)理想的系統(tǒng)。鑒于此可將畢業(yè)設(shè)計(jì)作為“軟件工程”課程設(shè)計(jì)的延續(xù),延用課程設(shè)計(jì)中的分組,每個(gè)小組延用課程設(shè)計(jì)中的題目。由于課程設(shè)計(jì)時(shí)間較短,課程設(shè)計(jì)時(shí)各小組只進(jìn)行了粗略并且簡(jiǎn)化的項(xiàng)目開(kāi)發(fā),在畢業(yè)設(shè)計(jì)的半年中,各小組可在課程設(shè)計(jì)的基礎(chǔ)上進(jìn)一步完善擴(kuò)充已有成果,按照軟件工程的步驟最終得到比較理想的系統(tǒng)。
“軟件工程”課程應(yīng)根據(jù)不同學(xué)校的專業(yè)方向及培養(yǎng)目標(biāo)合理地選擇教學(xué)內(nèi)容,這樣才能做到重點(diǎn)突出;“軟件工程”課程的教學(xué)中應(yīng)通過(guò)案例教學(xué)、實(shí)訓(xùn)式實(shí)驗(yàn)及綜合實(shí)踐相結(jié)合,幫助學(xué)生掌握“軟件工程”課程內(nèi)容,并培養(yǎng)學(xué)生實(shí)際軟件開(kāi)發(fā)能力。
[1] 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)規(guī)范起草小組.計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)(軟件工程方向)規(guī)范與專業(yè)建設(shè)研究報(bào)告[M].北京:高等教育出版社,2005.
[2] 王忠群,劉濤.《軟件工程》教學(xué)方法的研究[J].現(xiàn)代計(jì)算機(jī),2009,05:86-87.
[3] 陳昊,明仲.在軟件工程實(shí)驗(yàn)教學(xué)中引入敏捷方法的探索[J].計(jì)算機(jī)教育,2008,24:46-47.