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