張霞 謝桂芳 李盛欣
摘 要:“軟件工程”是一門理論和實(shí)踐并重的課程。針對(duì)目前軟件工程教學(xué)現(xiàn)狀,本文結(jié)合多年來軟件工程教學(xué)和科研的實(shí)際體會(huì),提出在理論教學(xué)中運(yùn)用案例教學(xué)法,在實(shí)踐環(huán)節(jié)采用任務(wù)驅(qū)動(dòng)法進(jìn)行軟件工程教學(xué)的改革,使學(xué)生的學(xué)習(xí)變被動(dòng)為主動(dòng),極大地提高了教學(xué)效果。并對(duì)課程的考核方式及校企合作教學(xué)等方面提出了改革措施。
關(guān)鍵詞:軟件工程;教學(xué)改革;案例教學(xué)法;任務(wù)驅(qū)動(dòng)教學(xué)法
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)識(shí)碼:A
Abstract:Software engineering is a quite theoretical and pragmatic course.In this article,according to the problem in the course of teaching,the practical experiences of teaching and researching on software engineering,the combination of case teaching and task-driven teaching has been used to reform software engineering teaching,so that students change from passive to active learning.The reform achieved good results.Lastly examination methods and school enterprise cooperation teaching are also offered.
Keywords:software engineering;teaching reform;case teaching; task-driven teaching
1 引言(Introduction)
“軟件工程”作為計(jì)算機(jī)科學(xué)與技術(shù)及軟件工程專業(yè)的一門核心專業(yè)課程[1]。其教學(xué)內(nèi)容包括軟件工程的基本概念、原理和技術(shù),工程化、系統(tǒng)化和規(guī)范化的軟件工程方法學(xué)以及軟件工程的一些新技術(shù)和新方法。其教學(xué)目標(biāo)是讓學(xué)生掌握軟件工程的基本理論,掌握現(xiàn)代化的軟件開發(fā)方法和技術(shù),掌握一名軟件工程師從事軟件開發(fā)所需的專業(yè)技能。但是,我們?cè)诮虒W(xué)中發(fā)現(xiàn),大部分學(xué)生反映該課內(nèi)容太抽象,學(xué)習(xí)積極性不高。在學(xué)習(xí)中只知道或只會(huì)背一些基礎(chǔ)理論知識(shí),很難將理論運(yùn)用到實(shí)際的軟件設(shè)計(jì)和開發(fā)中。因此,如何優(yōu)化教學(xué)內(nèi)容和教學(xué)環(huán)境、提高實(shí)踐教學(xué),一直是軟件工程課程教學(xué)改革研究的重點(diǎn)與難點(diǎn)。
2 “軟件工程”課程教學(xué)中存在的問題(Problems of "software engineering" course teaching)
在軟件工程教學(xué)中,目前,教師通常是采用講授加實(shí)驗(yàn)教學(xué)方法,也就是由教師課堂上講授概念、理論和方法等基本知識(shí)點(diǎn),實(shí)驗(yàn)時(shí)讓學(xué)生動(dòng)手設(shè)計(jì)與開發(fā)具體項(xiàng)目。多年教學(xué)實(shí)踐表明這種教學(xué)方法在本課程的教學(xué)中存在一些問題。主要表現(xiàn)為以下幾個(gè)方面:
2.1 學(xué)生難以真正理解和掌握基礎(chǔ)理論
傳統(tǒng)的教學(xué)模式,教師在課堂上講授理論知識(shí),由于理論知識(shí)太抽象、繁瑣,學(xué)生似乎聽懂了??烧n后大部分學(xué)生還是似懂非懂。當(dāng)進(jìn)行課程設(shè)計(jì)或畢業(yè)設(shè)計(jì)時(shí)卻不知如何動(dòng)手,該如何運(yùn)用課堂上的知識(shí)和方法,無法順利完成軟件設(shè)計(jì)任務(wù)。
2.2 學(xué)生不能把理論知識(shí)有效地運(yùn)用到實(shí)踐中
由于學(xué)生沒有真正掌握基礎(chǔ)理論及運(yùn)用理論的技能和方法,所以在畢業(yè)設(shè)計(jì)時(shí),不能將軟件包工程的理論充分運(yùn)用到設(shè)計(jì)實(shí)踐中,導(dǎo)致設(shè)計(jì)開發(fā)的軟件和撰寫的論文在結(jié)構(gòu)、內(nèi)容等方面存在很多錯(cuò)誤。
2.3 軟件工程的價(jià)值難以體現(xiàn)
學(xué)生平時(shí)在學(xué)習(xí)過程中,開發(fā)的都是試驗(yàn)性的小/微型的軟件,對(duì)于這樣的軟件,一方面規(guī)模小、難度和復(fù)雜度不大;另一方面也不需要考慮軟件的后期維護(hù)成本。開發(fā)這類軟件運(yùn)用軟件工程的方法,按照軟件工程的生命周期開展軟件分析、設(shè)計(jì)和開發(fā)的各項(xiàng)活動(dòng),學(xué)生反而會(huì)覺得麻煩。因此,軟件工程的價(jià)值很難體現(xiàn)。
3 “軟件工程”課程的教學(xué)改革(Teaching reforms of "software engineering" course)
3.1 “軟件工程”課程的理論教學(xué)改革
軟件工程的基本理論和方法是比較抽象難懂的。為此,在課堂理論教學(xué)中,我采用案例教學(xué)法[2],通過案例來講解抽象的概念和方法,這樣學(xué)生理解軟件工程的基本理論、概念和方法時(shí)覺得比較容易,聽起課來也比較投入。極大提高了課堂教學(xué)效果。例如,在講解用案圖的繪制方法時(shí),我們用學(xué)生熟悉的“電話簿銷售系統(tǒng)”作為案例進(jìn)行講解,首先介紹該系統(tǒng)的用案圖中用案、參與者、系統(tǒng)三者的符號(hào)表示方法。接著介紹該案例是如何分析出用案和參與者的。然后再總結(jié)用案和參與者的識(shí)別規(guī)則。最后分析該用案中是如何表達(dá)用案與參與者、用案之間以及參與者與參與者之間的包含、擴(kuò)展關(guān)系的表達(dá)。通過這樣的改革,我們發(fā)現(xiàn)學(xué)生在課程設(shè)計(jì)環(huán)節(jié),繪制自己選題的軟件系統(tǒng)建模敢于動(dòng)手了。
另外,我們改革傳統(tǒng)的全部課堂都由老師講授的教學(xué)模式。將老師和學(xué)生的角色互換。按軟件工程的生命周期,安排多次討論課。例如,講授完需求建模內(nèi)容后,我們以學(xué)生較熟悉“學(xué)生宿舍管理系統(tǒng)”作為案例。在課堂上將學(xué)生分成若干個(gè)小組,每小組成員分別作為客戶和需求分析設(shè)計(jì)者的角色,仿真實(shí)際的開發(fā)環(huán)境,讓學(xué)生根據(jù)課堂知識(shí)討論如何需求建模。然后,再讓學(xué)生完善和整理有關(guān)的需求文檔資料。這樣一方面鞏固學(xué)生對(duì)基本理論知識(shí)點(diǎn)的掌握熟練度,另一方面使學(xué)生對(duì)軟件項(xiàng)目的開發(fā)有了一定的感性認(rèn)識(shí)。
3.2 “軟件工程”課程的實(shí)踐教學(xué)改革
任務(wù)驅(qū)動(dòng)教學(xué)法[3]是教師把教學(xué)內(nèi)容設(shè)計(jì)成若干個(gè)具體的任務(wù)。它是一種“做中學(xué)”的教學(xué)模式,學(xué)生通過完成一系列具體的任務(wù)來理解、熟悉并掌握教學(xué)內(nèi)容。該方法的核心是以學(xué)生進(jìn)行主動(dòng)學(xué)習(xí),輔以老師的指導(dǎo),整個(gè)過程用任務(wù)進(jìn)行驅(qū)動(dòng)。在《軟件工程》的課程設(shè)計(jì)及大四的畢業(yè)設(shè)計(jì)中,我們發(fā)現(xiàn)很多學(xué)生不知道如何運(yùn)用課程的理論知識(shí)完成實(shí)踐任務(wù)。為此,我們采用任務(wù)驅(qū)動(dòng)法教學(xué)模式,在實(shí)踐教學(xué)中以任務(wù)驅(qū)動(dòng)老師教學(xué),學(xué)生以完成具體任務(wù)為學(xué)習(xí)目的。這樣老師教學(xué)思路清晰,學(xué)生學(xué)習(xí)目標(biāo)明確,極大地提高了學(xué)生學(xué)習(xí)熱情。在《軟件工程》實(shí)踐教學(xué)中,我們分三步實(shí)施任務(wù)驅(qū)動(dòng)教學(xué)法。endprint