彭輝 鐵菊紅 岳希 葉振 張帆
摘? ?要:針對(duì)軟件工程專業(yè)學(xué)生工程實(shí)踐能力弱的問(wèn)題,文章提出了基于能力培養(yǎng)的軟件工程實(shí)踐教學(xué)的改革,詳細(xì)介紹了基于能力培養(yǎng)的“軟件工程”實(shí)踐課程教學(xué)大綱的制定,闡述了基于項(xiàng)目驅(qū)動(dòng)的“工程實(shí)踐”課程教學(xué)內(nèi)容改革和過(guò)程化的考核方式。實(shí)踐證明這種改革方式可以提高學(xué)生的工程實(shí)踐能力。
關(guān)鍵詞:工程實(shí)踐;軟件工程;教學(xué)改革
目前,在招聘網(wǎng)站上可以看到大量的企業(yè)都在招聘軟件測(cè)試和軟件開(kāi)發(fā)工程師,軟件測(cè)試和軟件開(kāi)發(fā)工程師的崗位需求很多,具有很好的就業(yè)市場(chǎng)。然而,部分企業(yè)雇主反應(yīng),許多普通本科院校軟件工程專業(yè)畢業(yè)生的工程實(shí)踐能力與企業(yè)的要求還有一定差距,企業(yè)雇主對(duì)軟件工程專業(yè)畢業(yè)生的工程實(shí)踐能力不滿意,主要表現(xiàn)在學(xué)生的編程和測(cè)試能力弱、團(tuán)隊(duì)合作能力差等方面。造成這種現(xiàn)象的主要原因是:一些院校軟件工程專業(yè)的工程實(shí)踐教學(xué)仍然存在實(shí)踐教學(xué)大綱、內(nèi)容與行業(yè)、企業(yè)需求相脫節(jié)等諸多問(wèn)題[1],大部分畢業(yè)生的工程實(shí)踐能力離優(yōu)秀或卓越還有一定的差距,所以有必要對(duì)軟件工程實(shí)踐教學(xué)進(jìn)行創(chuàng)新和改革,提高學(xué)生的軟件工程實(shí)踐能力。
1? ? 基于能力培養(yǎng)的教學(xué)大綱制定
為了培養(yǎng)學(xué)生的軟件工程實(shí)踐能力,軟件工程學(xué)院除了設(shè)置傳統(tǒng)的軟件工程理論課程之外,還專門(mén)設(shè)置兩門(mén)軟件工程實(shí)踐類(lèi)課程,一門(mén)是“工程實(shí)踐”(軟件測(cè)試)課程,另一門(mén)是“工程實(shí)踐”(綜合訓(xùn)練)課程?!肮こ虒?shí)踐”(軟件測(cè)試)課程主要使學(xué)生在一個(gè)完整的工程項(xiàng)目測(cè)試中經(jīng)歷測(cè)試計(jì)劃的制定、測(cè)試方案的選擇、測(cè)試用例的設(shè)計(jì)、測(cè)試的實(shí)施、測(cè)試的總結(jié)等全過(guò)程,培養(yǎng)和訓(xùn)練學(xué)生的軟件測(cè)試能力,為學(xué)生進(jìn)入企業(yè)從事軟件測(cè)試工作奠定堅(jiān)實(shí)的實(shí)踐基礎(chǔ)?!肮こ虒?shí)踐”(綜合訓(xùn)練)課程主要使學(xué)生在一個(gè)軟件工程項(xiàng)目的完整開(kāi)發(fā)中經(jīng)歷需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、程序編碼、程序測(cè)試及集成運(yùn)行全過(guò)程[2]?!肮こ虒?shí)踐”(綜合訓(xùn)練)課程包括對(duì)軟件工程專業(yè)主要核心知識(shí)與技術(shù)的應(yīng)用,使學(xué)生熟悉軟件工程開(kāi)發(fā)流程,能運(yùn)用所學(xué)知識(shí)對(duì)實(shí)際應(yīng)用進(jìn)行分析設(shè)計(jì),采用目前流行的框架開(kāi)發(fā)項(xiàng)目,規(guī)范文檔編寫(xiě)和代碼編寫(xiě)。這兩門(mén)工程實(shí)踐課程的教學(xué)大綱制定參考了CDIO工程教育模式標(biāo)準(zhǔn)[3]和成果導(dǎo)向教育模式標(biāo)準(zhǔn)[4]。對(duì)于軟件工程專業(yè)來(lái)說(shuō),學(xué)生最重要的學(xué)習(xí)成果之一就是軟件工程實(shí)踐能力。這兩門(mén)課程主要培養(yǎng)學(xué)生的軟件測(cè)試能力、軟件開(kāi)發(fā)能力、軟件工程問(wèn)題分析能力、團(tuán)隊(duì)合作能力、人際交流和溝通能力等,教學(xué)大綱主要圍繞培養(yǎng)以上幾個(gè)能力對(duì)教學(xué)內(nèi)容、學(xué)時(shí)和考核方式等進(jìn)行設(shè)計(jì)和制定。
2? ? 基于項(xiàng)目驅(qū)動(dòng)的教學(xué)內(nèi)容改革
“工程實(shí)踐”(軟件測(cè)試)和“工程實(shí)踐”(綜合訓(xùn)練)兩門(mén)課程都采用項(xiàng)目驅(qū)動(dòng)式的教學(xué)方式。為了鍛煉學(xué)生的團(tuán)隊(duì)協(xié)作能力和人際交流能力,兩門(mén)課程以小組團(tuán)隊(duì)方式完成項(xiàng)目測(cè)試和開(kāi)發(fā)任務(wù)。學(xué)生每3~6人分成一組,根據(jù)自己的意向和教師的安排設(shè)置組長(zhǎng)和組員崗位,教師擔(dān)任項(xiàng)目經(jīng)理和評(píng)審員角色,并盡可能讓學(xué)生獨(dú)立解決項(xiàng)目在測(cè)試和開(kāi)發(fā)中遇到的問(wèn)題,教師只是起到一個(gè)顧問(wèn)和指導(dǎo)的作用,以學(xué)生為中心完成教學(xué)任務(wù),培養(yǎng)和鍛煉學(xué)生獨(dú)立解決問(wèn)題的工程實(shí)踐能力。“工程實(shí)踐”(軟件測(cè)試)課程教學(xué)內(nèi)容主要模擬軟件公司實(shí)際的軟件項(xiàng)目測(cè)試流程,使學(xué)生經(jīng)歷測(cè)試計(jì)劃的制定、測(cè)試方案的選擇、測(cè)試用例的設(shè)計(jì)、測(cè)試的實(shí)施、測(cè)試總結(jié)等全過(guò)程,培養(yǎng)和訓(xùn)練學(xué)生的軟件測(cè)試工程實(shí)踐能力。“工程實(shí)踐”(綜合訓(xùn)練)課程主要模擬軟件公司實(shí)際的軟件項(xiàng)目開(kāi)發(fā)流程,讓學(xué)生經(jīng)歷需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼實(shí)現(xiàn)、程序測(cè)試及集成運(yùn)行全過(guò)程,培養(yǎng)和訓(xùn)練學(xué)生的軟件開(kāi)發(fā)工程實(shí)踐能力。
很多學(xué)生都沒(méi)有獨(dú)自完整開(kāi)發(fā)和測(cè)試一個(gè)軟件項(xiàng)目系統(tǒng)的經(jīng)歷,沒(méi)有軟件項(xiàng)目系統(tǒng)開(kāi)發(fā)和測(cè)試經(jīng)驗(yàn),所以需要老師在上課之前,以一個(gè)實(shí)際軟件項(xiàng)目系統(tǒng)為案例,準(zhǔn)備一套完整軟件項(xiàng)目開(kāi)發(fā)和測(cè)試全套資料,包括需求規(guī)格說(shuō)明書(shū)、概要設(shè)計(jì)書(shū)、數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū)、詳細(xì)設(shè)計(jì)書(shū)、代碼、編碼規(guī)范、測(cè)試計(jì)劃書(shū)、測(cè)試用例書(shū)、測(cè)試缺陷報(bào)告、測(cè)試總結(jié)報(bào)告等,供學(xué)生在項(xiàng)目開(kāi)發(fā)和測(cè)試過(guò)程中參考使用,可以使學(xué)生快速上手,更容易理解軟件開(kāi)發(fā)和測(cè)試流程以及快速學(xué)會(huì)各種文檔的編寫(xiě),順利完成整個(gè)軟件系統(tǒng)的開(kāi)發(fā)和測(cè)試工作。把一個(gè)完整的軟件項(xiàng)目系統(tǒng)開(kāi)發(fā)和測(cè)試過(guò)程作為案例,可以使這兩門(mén)工程實(shí)踐課程的主要教學(xué)內(nèi)容貫穿起來(lái),使得實(shí)踐的內(nèi)容成為一個(gè)有機(jī)的整體,從而提高學(xué)生的動(dòng)手能力,改善實(shí)驗(yàn)效果。
“工程實(shí)踐”(軟件測(cè)試)課程主要教學(xué)內(nèi)容包括:(1)學(xué)生選題。教師準(zhǔn)備幾個(gè)待測(cè)試的軟件項(xiàng)目系統(tǒng)資料,學(xué)生小組討論選定一個(gè)軟件項(xiàng)目系統(tǒng)。(2)軟件測(cè)試計(jì)劃說(shuō)明書(shū)的撰寫(xiě)。學(xué)生以小組團(tuán)隊(duì)為單位,閱讀和理解項(xiàng)目系統(tǒng)的需求規(guī)格說(shuō)明書(shū)、概要設(shè)計(jì)書(shū)和數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū),明確項(xiàng)目測(cè)試內(nèi)容,小組組長(zhǎng)負(fù)責(zé)各組員測(cè)試任務(wù)分工,小組通過(guò)討論和資料查詢,按規(guī)范格式編寫(xiě)軟件測(cè)試計(jì)劃書(shū)。(3)軟件測(cè)試用例設(shè)計(jì)說(shuō)明書(shū)的撰寫(xiě)。每個(gè)學(xué)生按照模板和規(guī)范格式編寫(xiě)自己模塊的測(cè)試用例設(shè)計(jì)說(shuō)明書(shū),測(cè)試用例類(lèi)型包括功能測(cè)試、邊界值測(cè)試、界面校驗(yàn)測(cè)試、業(yè)務(wù)流程測(cè)試、安全測(cè)試、易用性測(cè)試、白盒測(cè)試等。(4)測(cè)試實(shí)施和測(cè)試缺陷報(bào)告的撰寫(xiě)。每個(gè)學(xué)生按照測(cè)試用例設(shè)計(jì)說(shuō)明書(shū),執(zhí)行測(cè)試用例,記錄測(cè)試結(jié)果,如果發(fā)現(xiàn)程序有錯(cuò)誤或缺陷,需填寫(xiě)缺陷報(bào)告書(shū)。(5)測(cè)試總結(jié)報(bào)告的撰寫(xiě)。每個(gè)小組對(duì)整體系統(tǒng)測(cè)試情況進(jìn)行總結(jié),對(duì)系統(tǒng)的缺陷、功能、穩(wěn)定性、可靠性和性能進(jìn)行分析,撰寫(xiě)測(cè)試總結(jié)報(bào)告。(6)學(xué)生答辯。每個(gè)學(xué)生對(duì)整個(gè)測(cè)試過(guò)程和工作進(jìn)行總結(jié)答辯,每個(gè)學(xué)生答辯時(shí)間大約為10 min,學(xué)生講5 min,老師提問(wèn)和學(xué)生回答問(wèn)題5 min。
“工程實(shí)踐”(綜合訓(xùn)練)課程主要教學(xué)內(nèi)容包括:(1)學(xué)生選題和撰寫(xiě)開(kāi)題報(bào)告。每個(gè)小組通過(guò)資料查詢、討論等方式自由選定一個(gè)軟件項(xiàng)目系統(tǒng),然后撰寫(xiě)開(kāi)題報(bào)告,開(kāi)題報(bào)告包括項(xiàng)目背景、技術(shù)路線、進(jìn)度安排和任務(wù)分工等,每個(gè)學(xué)生至少負(fù)責(zé)系統(tǒng)的一個(gè)功能模塊。老師審核開(kāi)題報(bào)告,審核通過(guò)之后,學(xué)生開(kāi)始做自己選定的項(xiàng)目系統(tǒng)。(2)需求規(guī)格說(shuō)明書(shū)的撰寫(xiě)。每個(gè)小組進(jìn)行文獻(xiàn)資料查詢,按照老師給的模板撰寫(xiě)需求規(guī)格說(shuō)明書(shū),需求規(guī)格說(shuō)明書(shū)包括功能需求和非功能需求。(3)概要設(shè)計(jì)說(shuō)明書(shū)和數(shù)據(jù)庫(kù)設(shè)計(jì)書(shū)的撰寫(xiě)。每個(gè)小組根據(jù)需求規(guī)格說(shuō)明書(shū),按照模板撰寫(xiě)概要設(shè)計(jì)說(shuō)明書(shū)和數(shù)據(jù)庫(kù)設(shè)計(jì)書(shū)。概要設(shè)計(jì)說(shuō)明書(shū)主要對(duì)項(xiàng)目系統(tǒng)進(jìn)行功能模塊劃分,確定每個(gè)模塊的功能和接口。數(shù)據(jù)庫(kù)設(shè)計(jì)書(shū)主要包括數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)和數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)。(4)詳細(xì)設(shè)計(jì)書(shū)的撰寫(xiě)。每個(gè)學(xué)生對(duì)自己負(fù)責(zé)的模塊進(jìn)行詳細(xì)設(shè)計(jì),設(shè)計(jì)模塊的程序邏輯實(shí)現(xiàn)算法和流程,并撰寫(xiě)詳細(xì)設(shè)計(jì)書(shū)。(5)編碼實(shí)現(xiàn)。每個(gè)學(xué)生根據(jù)詳細(xì)設(shè)計(jì)和編碼規(guī)范編寫(xiě)自己模塊的代碼。(6)單元測(cè)試的實(shí)施。每個(gè)學(xué)生對(duì)自己的模塊進(jìn)行單元測(cè)試。(7)系統(tǒng)集成和系統(tǒng)測(cè)試。小組組長(zhǎng)負(fù)責(zé)把所有組員的模塊集成起來(lái),然后進(jìn)行系統(tǒng)測(cè)試。(8)學(xué)生答辯。每個(gè)學(xué)生總結(jié)已完成的工作,并進(jìn)行答辯。
3? ? 考核方式改革
兩門(mén)工程實(shí)踐課程都采用過(guò)程化考核,每個(gè)階段都讓學(xué)生提交作業(yè)文檔或代碼,每個(gè)作業(yè)有一定的分值,并占一定的比例,總分為100分。作業(yè)的考核分為團(tuán)隊(duì)考核和個(gè)人考核兩種,如果作業(yè)是小組團(tuán)隊(duì)完成,就按團(tuán)隊(duì)考核,每個(gè)組員的分?jǐn)?shù)一樣;如果作業(yè)是個(gè)人完成,就按個(gè)人考核。每個(gè)作業(yè)考核和一兩個(gè)能力指標(biāo)點(diǎn)相關(guān),每個(gè)能力指標(biāo)點(diǎn)在作業(yè)中占一定的比重,最后通過(guò)加權(quán)方式計(jì)算出來(lái)每個(gè)能力指標(biāo)點(diǎn)的達(dá)成度情況。通過(guò)能力指標(biāo)點(diǎn)的達(dá)成度情況,可以評(píng)估每個(gè)學(xué)生的工程實(shí)踐能力。
4? ? 結(jié)語(yǔ)
本文主要闡述了基于能力培養(yǎng)的軟件工程實(shí)踐教學(xué)的改革與實(shí)踐做法,實(shí)踐表明通過(guò)這種培養(yǎng)方式可以提高軟件工程專業(yè)學(xué)生的工程實(shí)踐能力。
[參考文獻(xiàn)]
[1]張平.基于CDIO模式的軟件工程專業(yè)實(shí)踐教學(xué)改革研究[J].無(wú)線互聯(lián)科技,2012(11):209-211.
[2]彭輝,鐵菊紅,文立玉,等.基于CDIO的軟件工程專業(yè)工程實(shí)踐類(lèi)課程的改革與實(shí)施[J].計(jì)算機(jī)教育,2017(5):30-33.
[3]王中華,汪文彬.基于CDIO模式的軟件工程實(shí)踐教學(xué)改革研究[J].福建電腦,2013(12):40-45.
[4]羅銘,黃海鳳,胡暢霞.基于OBE理念的翻轉(zhuǎn)課堂教學(xué)模式在軟件類(lèi)研究生課程教學(xué)中的應(yīng)用[J].計(jì)算機(jī)教育,2019(7):138-144.