彭慧伶
【摘 要】《軟件工程》是應(yīng)用型高校計算機(jī)類專業(yè)的核心課程之一,論文通過分析軟件工程課程本身的特點和目前存在的問題,從教材的選取、教學(xué)內(nèi)容的組織、教學(xué)方法與手段的改進(jìn)、考核方式的評判等幾個方面進(jìn)行了研究,并提出了一些具有實踐意義的措施。經(jīng)過課堂實踐證明,這些措施是卓有成效的,不僅提高了課程的教學(xué)效果,還提高了學(xué)生的項目分析與設(shè)計能力、軟件管理能力、團(tuán)隊合作能力、溝通能力和文檔寫作能力等。
【Abstract】Software Engineering is one of the core courses of computer majors in application-oriented institutes. Through analyzing the characteristics of software engineering courses and the existing problems of it, the paper studies the selection of teaching materials, the organization of teaching contents, the improvement of teaching methods and means, and the evaluation of assessment methods, and puts forward some practical measures. Through class practice, it is proved that these measures are effective. They not only improve the teaching effect of the course, but also improve students' abilities of project analysis and design, software management, teamwork, communication and document writing.
【關(guān)鍵詞】應(yīng)用型本科院校;軟件工程;教學(xué)改革;教學(xué)方法;教學(xué)效果
【Keywords】application-oriented institutes; software engineering; teaching reform; teaching method; teaching effect
【中圖分類號】TP311.5;G642 【文獻(xiàn)標(biāo)志碼】A 【文章編號】1673-1069(2019)03-0086-02
1 引言
應(yīng)用型高?!盾浖こ獭氛n程是計算機(jī)科學(xué)與技術(shù)專業(yè)和軟件工程專業(yè)課程體系中非常重要的專業(yè)課,它的綜合性強(qiáng),對學(xué)生實踐要求很高。該課程主要是為了讓學(xué)生掌握軟件工程的基本原理和實踐方法,熟悉軟件項目研發(fā)的過程,探索軟件開發(fā)的最新方法與傳統(tǒng)方法的區(qū)別,著重培養(yǎng)學(xué)生的系統(tǒng)工程思維能力、策劃能力、實踐能力、創(chuàng)新能力,兼顧培養(yǎng)學(xué)生的溝通和團(tuán)隊合作能力。
2 《軟件工程》課程教學(xué)的現(xiàn)狀
①本課程的理論原理比較抽象,不易掌握,從而導(dǎo)致學(xué)生在教與學(xué)的過程中極易產(chǎn)生枯燥、乏味的感覺。②本課程作為一門本科軟件專業(yè)必修課程,在教學(xué)方案設(shè)置和教學(xué)過程中應(yīng)突出本科計算機(jī)專業(yè)課程特色,同時要注重發(fā)揮本科生自學(xué)能力強(qiáng)的優(yōu)點,加強(qiáng)引導(dǎo)。③本課程教學(xué)學(xué)時少,教學(xué)過程簡單乏味。④理論與實踐相脫離,重理論、輕實踐。⑤考核方式滯后。
為了解決上述問題,我們在軟件工程教學(xué)過程中,結(jié)合長期以來積累的經(jīng)驗教訓(xùn),對教材的選取策略、教學(xué)內(nèi)容的安排、教學(xué)的方法生動性和教學(xué)手段的多樣性等方面進(jìn)行了研究,提出了一些建議。
3 教學(xué)改革與實踐
3.1 精心選取教材并充實教學(xué)內(nèi)容
隨著軟件行業(yè)的快速發(fā)展,那些既掌握軟件開發(fā)技術(shù),又要懂得項目管理的復(fù)合型人才,成為各個軟件公司的寵兒。針對這種需求,高校的應(yīng)用型軟件工程課程的教學(xué)培養(yǎng)目標(biāo),也需要以滿足社會需求為導(dǎo)向,努力培養(yǎng)學(xué)生的復(fù)合能力,以期能在軟件項目研制中發(fā)揮重要作用。因此,在教學(xué)上不僅要注重軟件研發(fā)專業(yè)技能的培養(yǎng),還要注意對學(xué)生軟件項目管理能力的培養(yǎng),我們建議,軟件工程的教學(xué)要輔以大量的課堂討論和管理、溝通實踐環(huán)節(jié)。
特別是在教學(xué)內(nèi)容的安排上,要注重軟件工程的基本原理、概念和方法的講解,引領(lǐng)學(xué)生學(xué)習(xí)面向?qū)ο蟆⒚嫦蚪M件等方法在內(nèi)的新方法和新技術(shù),盡量使學(xué)生盡快深入掌握軟件重用、CASE 集成環(huán)境和網(wǎng)絡(luò)平臺下的軟件研發(fā)技術(shù)等。還要大力鼓勵學(xué)生閱讀英文原版文獻(xiàn),增強(qiáng)對國際前沿技術(shù)的了解,同時教師也要講授比較成熟的新方法,例如,面向A-gent 方法、敏捷開發(fā)(XP) 等[1]。通過教學(xué)內(nèi)容的合理安排和對前沿知識的引導(dǎo),幫助學(xué)生開闊視野、培養(yǎng)創(chuàng)新意識、了解最前沿的技術(shù),為以后的工程實踐打下堅實的基礎(chǔ)。
3.2 課堂講授應(yīng)把握好知識的切入點
當(dāng)前的在校大學(xué)生普遍缺乏軟件開發(fā)實戰(zhàn)經(jīng)驗,對軟件工程課程的部分內(nèi)容認(rèn)識相對膚淺,同時,大部分學(xué)生對課程內(nèi)容的邏輯關(guān)系沒有整體的把握,他們通常也不容易對純理論的東西感興趣,所以,教和學(xué)都會感到枯燥無味,學(xué)生的積極性無法調(diào)動,這直接影響了教學(xué)效果。為了充分調(diào)動學(xué)生在課堂學(xué)習(xí)過程中的主動性和趣味性,軟件工程教師在教學(xué)實踐上,需要注意以下幾個方面:第一,要讓學(xué)生明白理論指導(dǎo)實踐的重要性,著重提高學(xué)生的軟件工程理論水平。在講解軟件工程發(fā)展過程的同時,能夠輔助介紹一些軟件工程上成功和失敗的著名案例,要使學(xué)生充分理解軟件開發(fā)包含策劃、設(shè)計、實現(xiàn)、測試、部署、維護(hù)等多個過程,不單單是寫代碼。教師要盡力使學(xué)生確信,軟件開發(fā)必將朝著“工程化”的方向發(fā)展,軟件項目的研發(fā)也應(yīng)該以軟件工程學(xué)的思想和方法為指導(dǎo),才能保證軟件項目的質(zhì)量和進(jìn)度,避免風(fēng)險。第二,要讓學(xué)生明白軟件工程的完整過程域和實施方法。軟件工程課程本身就是為了培養(yǎng)學(xué)生系統(tǒng)解決問題的能力,教師在教學(xué)內(nèi)容的組織和軟件開發(fā)方法的講授過程中,就需要循循誘導(dǎo)學(xué)生,使其明白系統(tǒng)性、全局觀對高質(zhì)量的軟件項目研發(fā)的重要性。第三,著重強(qiáng)調(diào)軟件工程中各主要知識點之間的邏輯關(guān)系。軟件工程中各主要知識點之間均有內(nèi)在的邏輯關(guān)系,它們環(huán)環(huán)相扣,彼此印證。教師在講解需求分析、概要設(shè)計和詳細(xì)設(shè)計三項開發(fā)過程之間的關(guān)系時,要在需求開發(fā)完成的基礎(chǔ)上,通過系統(tǒng)的概要設(shè)計,來實現(xiàn)需求的功能、性能要求,把每個功能在哪個部件實現(xiàn)進(jìn)行初步的規(guī)劃設(shè)計,這就是概要設(shè)計;對概要設(shè)計進(jìn)一步細(xì)化,形成詳細(xì)可實現(xiàn)的功能模塊,這就是詳細(xì)設(shè)計,教師要把這些邏輯關(guān)系講清楚,使學(xué)生爛熟于心,才能在未來的軟件研發(fā)中使用。同時,也要將面向?qū)ο蟮能浖_發(fā)方法與傳統(tǒng)的結(jié)構(gòu)化開發(fā)方法相比較,將測試用例生成技術(shù)與需求分析模型、軟件設(shè)計模型以及相關(guān)技術(shù)相聯(lián)系,讓學(xué)生能夠直觀地感受到軟件工程的思想和方法始終貫穿于軟件研發(fā)活動中[2]。
3.3 建立完善的課程體系
我們建立了完善的課程體系:基礎(chǔ)部分—應(yīng)用部分—實踐部分?;A(chǔ)部分:軟件工程概述、軟件工程過程、軟件工程管理、軟件工程技術(shù)。應(yīng)用部分:參照當(dāng)前軟件項目研發(fā)的標(biāo)準(zhǔn)過程,以面向?qū)ο蠹夹g(shù)與通用模型語言為核心,把企業(yè)的最佳實踐和實際案例講解給學(xué)生,同時注重覆蓋CVS、Rational Rose、Enterprise Architecture、JUnit等軟件工程工具與環(huán)境,使學(xué)生在應(yīng)用部分教學(xué)中,熟悉當(dāng)前先進(jìn)的軟件工程過程和通用技術(shù)。實踐部分:教師要組織學(xué)生以軟件項目開發(fā)團(tuán)隊的方式,共同協(xié)作開發(fā)一個具有一定規(guī)模的軟件系統(tǒng),讓學(xué)生按照軟件工程的策劃、需求、設(shè)計、測試、部署、維護(hù)等各個階段的要求,認(rèn)真實施完成,讓學(xué)生通過軟件研發(fā)項目的實戰(zhàn)經(jīng)驗,深入了解和掌握軟件工程的思想和過程,了解每一個過程域的重點和它們之間的相互關(guān)系。
3.4 注重理論結(jié)合實踐,加強(qiáng)課堂互動
教師在教授軟件工程課程時,要加強(qiáng)課堂互動,充分讓學(xué)生參與教學(xué)過程,發(fā)揮學(xué)生的主觀能動性,循循善誘,讓學(xué)生一邊思考一邊聽取理論講解,同時又能實時表達(dá)自己的理解和想法,加強(qiáng)教師對當(dāng)前教授內(nèi)容的掌控。實戰(zhàn)訓(xùn)練需要提前安排學(xué)生分組,按照軟件工程的要求進(jìn)行初步策劃,教師要根據(jù)課堂分組討論的結(jié)果,引導(dǎo)他們完成一個完備的軟件界面設(shè)計方案,并用指導(dǎo)學(xué)生使用界面輔助設(shè)計工具實現(xiàn)[3]。通過這些實踐讓學(xué)生感受軟件研發(fā)的魅力,使理論與實踐有機(jī)統(tǒng)一,激發(fā)學(xué)生學(xué)習(xí)軟件工程的興趣和自信。
3.5 采用案例化的教學(xué)模式
課程中盡量采用案例教學(xué)法,通過案例的生動講解,把枯燥的教學(xué)變得生動有趣,同時,在教學(xué)中教師要扮演設(shè)計者與激勵者的角色,并鼓勵學(xué)生要積極參與討論,進(jìn)而增進(jìn)教學(xué)效果。在理論教學(xué)中,以實際軟件開發(fā)案例貫穿于整個理論知識講解的始終,使學(xué)生在理解理論知識的同時建立起軟件開發(fā)系統(tǒng)化與工程化觀念;讓學(xué)生參與教學(xué)過程中,針對某一問題進(jìn)行互動式的討論;針對課程實踐中的問題,鼓勵學(xué)生開展專題討論或形成專題報告。
3.6 考核要理論實踐并重
軟件工程作為一門實踐性課程,其考核方法應(yīng)該有別于其他課程,檢驗的重點不但要關(guān)注理論考試成績,而且要考查學(xué)生是否能在軟件開發(fā)過程中貫徹軟件工程的思想和方法。因此,建議加大實踐考核的比重,考核分為課程考試和課程設(shè)計,其中課程考試兼顧平時成績和筆試成績;課程設(shè)計單獨作為一門實踐課程進(jìn)行考核,建議從課程的開始就布置課程設(shè)計題目,學(xué)生自由組合,按照教學(xué)進(jìn)度,分階段提交需求分析文檔、設(shè)計文檔、測試文檔和可運行的軟件代碼等。
4 結(jié)語
《軟件工程》作為應(yīng)用型高校計算機(jī)專業(yè)和軟件工程專業(yè)的核心課程之一,我在教學(xué)過程中,擯棄了主講理論的傳統(tǒng)教學(xué)方法,通過對教材的精心選取、教學(xué)內(nèi)容的合理組織、考核方法的科學(xué)評判,實踐與理論并重,注重在教學(xué)中使用具體化、實例化的案例,增強(qiáng)學(xué)生的主觀能動性和積極性,注重學(xué)生綜合能力的養(yǎng)成。
【參考文獻(xiàn)】
【1】馬永濤,程勁.軟件工程課程教學(xué)改革研究與實踐[J].計算機(jī)教育,2011,12(12):41-44.
【2】厲小軍,謝波.軟件工程實踐課程教學(xué)改革探索[J].計算機(jī)教育,2012(3):106-110.
【3】曹瑩瑩,朱立才,蔡長安.基于CDIO“軟件工程”課程教學(xué)模式改革與實踐[J].計算機(jī)時代,2017(10):56-58.