李 波,陳 瑤
(中南民族大學 計算機科學學院,湖北 武漢 430074)
近年來,隨著人工智能、大數據等的飛速發(fā)展,各學科之間交叉融合、開展國際化聯(lián)合研究的趨勢越來越明顯。軟件工程學科作為教育部規(guī)定的一級學科,其教學和專業(yè)建設邁向國際化是人才培養(yǎng)的必然要求。
軟件工程專業(yè)常有教師難教、學生難學的現(xiàn)象,但與計算機專業(yè)的專業(yè)要求、課程設置、教學特點存在諸多不同之處。軟件工程類課程的實踐性強,教學效果首先取決于教師的教學方法、教學模式、教學內容等要素,關鍵在于教師的正確引導。很多專家學者已對軟件工程類課程的教學做出了深入探討,如軟件工程課程體系的創(chuàng)新實踐經驗分析和介紹[1],圍繞培養(yǎng)國際化人才目標的討論[2],采用全英文教學模式的經驗介紹[3-4],軟件工程實踐教學分析[5-6],等等。
以教育部教育體制改革項目“國際合作培養(yǎng)軟件工程拔尖創(chuàng)新人才”為基礎,中南民族大學與美國威斯康星州立大學計算機系建立了軟件工程專業(yè)人才合作培養(yǎng)的平臺,計算機科學學院從2010年起,設立軟件工程創(chuàng)新拔尖人才實驗班,采用“3+2”機制。學生前3年在國內本校學習,獲得學士學位;參加雅思考試合格后,后2年前往美國威斯康星州立大學計算機系進入研究生學習階段,畢業(yè)后可獲得該校的軟件工程專業(yè)碩士學位。實驗班采用小班教學,每年經過考核招收不超過30名學生,授課教材采用國外著名大學的原版英文教材,教師授課講義、課件、學生作業(yè)、考試試卷等教學文檔全部采用英文文檔形式。圍繞軟件工程實驗班的國際化辦學要求,相應課程建設的國際化也成為必然要求。
20世紀90年代中期,軟件工程界逐步統(tǒng)一認識,將需求工程作為一門獨立的子學科進行研究。需求工程是軟件工程本科專業(yè)的一門重要的專業(yè)選修課程,處于軟件開發(fā)過程中的開始階段,為后續(xù)軟件生命周期的各個階段奠定了重要基礎,在軟件開發(fā)中起到非常重要的作用。在需求分析階段如果出現(xiàn)錯誤,后期修正錯誤的成本將很大,這已是業(yè)界的共識。很多軟件生命周期模型,如Rational Unified Process,都認為需求工程不止限于軟件開發(fā)的早期階段,而是貫穿于軟件開發(fā)的整個過程中。
需求工程作為軟件工程本科專業(yè)課程,其特點與語言類課程不同,語言類課程主要與“機器”打交道,而需求工程還要求與“人”打交道,需要學生具備一定項目實踐經驗,由于學習本課程之前,學生一般只是參與過一些語言和算法類課程的實驗和課程設計,缺乏一定的項目實踐經驗,需要從“編程思維”向“項目思維”轉換,因而學習起來有一定困難。
學習國外著名大學的教材,是課程教學國際化的重要舉措,把國外經典原版教材引入教學中,雖然在初始階段會帶來教與學的困難,但從長遠來看,能更好地培養(yǎng)學生的能力,利遠大于弊。本課程選用了Karl Wiegers和Joy Beatty主編的Software Requirements教材(2014年,第3版)。該教材也是軟件需求工程的經典教材,這本教材在國內也有東南大學出版的英文影印版。該教材有幾個優(yōu)點:①內容層次分明,可以根據時間進行授課內容的取舍;②教材全面涉及軟件需求工程的基本概念及各個階段;③教材中通過一個案例進行講解,附錄又列舉了另一個案例,對學生學習很有幫助。
本課程同時選用了一本輔助教材:Software Requirements Using the Unified Process: A Practical Approach,由Daniel R. Windle和L. Rene Abreo編寫。這本教材的特點是采用UML對需求分析模型中的各種圖進行了詳細介紹,因而可以作為學生的參考書。
選用的教材分為5個部分,教學內容取舍情況見表1。
表1 教學內容設置
2.3.1 課堂講課
實驗班授課采用由雙語教學向全英文教學逐步過渡的形式,采用英文課件,所有文檔也均采用英文文檔。英文教材的特點是內容豐富、篇幅較長、信息量大,學生需要首先具備一定的英文閱讀基礎,同時還需要積累一定的軟件工程專業(yè)術語,否則學習很吃力。由于英文教材難度較大,所以采取“課前預習+課前提問+課上講解”的方式,輔之以案例學習。
課前預習:對于國外英文信息類課程教材,學生需要首先通過語言關。該階段主要是學生提前通讀下節(jié)課需要講的內容,先掃清語言上的障礙,弄懂相應專業(yè)術語的含義,同時也可以記錄存在的疑問。
課前提問:一般是在正式講課前,用幾分鐘對學生的預習效果及前一次課的學習效果進行提問,可以針對基本概念提問,如Requirements development 和Requirements management的區(qū)別、user和actor的區(qū)別。
課上講解:英文教材的風格和國內中文教材風格往往很不同,每章開始往往會設置一個小的背景故事或人物對話;英文教材往往信息量也大。課程教學中采用“圖表歸納,結合實例”的策略,如第12章 A picture is worth 1024 words (一圖勝千言),可以用一個表來說明在軟件需求工程中描述相關信息所采用的技術,讓學生有一個總體概貌。表2為需求工程中用到的各種技術總結,圖1為需求工程中的圖,通過這些圖表,學生可以很快對重要工具的作用、基本特點及相互關系有一個總體認識,這樣學生學習英文教材時,會很好地把握教材脈絡。
2.3.2 案例學習與訓練
需求分析案例的學習,對學生非常有幫助,學生需要學習3~4個SRS案例,教師在課堂上也對案例進行一些分析。Software Requirements教材中講授了1個案例:Chemical Tracking System,書后附錄提供了第2個案例:Cafeteria Ordering System;輔助教材提供了第3個案例:Change Management System。學生可以通過這3個案例的學習,積累一些初步的文檔寫作經驗,然后根據教師提供的任務,合作完成一份需求分析和報告的作業(yè)。由于軟件工程實驗班在國內只用3年時間學完本科課程,學時較緊,在教學計劃中沒有安排相應實驗學時,因此,將實驗任務安排在課后時間,由學生分組完成。
課后作業(yè)是大家分組完成一個系統(tǒng)的軟件需求分析文檔(SRS),要求是3~4人一組,分工合作,共同完成一份軟件需求報告。系統(tǒng)需要進行篩選,規(guī)模和難度應該合適,SRS的標準模板由教師提供。在課堂上抽出一定時間對學生的案例完成情況進行檢查,安排學生分組討論,也安排小組代表發(fā)言交流,教師給予點評和指導,原則上鼓勵學生用英文發(fā)言和交流。
表2 需求工程中相關技術一覽
圖1 需求工程中Diagram總覽
軟件工程實驗班采用國際化辦學模式,授課文檔、學生作業(yè)、考試等文檔材料均采用英文,這對該班的師生均提出了較高的英文語言基礎要求。學院要求實驗班授課教師均為副教授以上教師,一般具有博士學位,且有出國學習經歷或雙語教學培訓結業(yè)。實驗班教師定期和美國威斯康星州立大學計算機系進行互訪交流。
要求實驗班學生參加雅思英語考試,達到美方要求后才能赴美繼續(xù)2年的學習,因此,實驗班學生從大一開始就對英語學習高度重視。學院在教學計劃中,也在大一時期專門安排了雅思考試的強化準備培訓。有幾門專業(yè)課及口語課,特別安排美國威斯康星州立大學計算機系的副教授職稱以上教師來校親自任教。
以教育部教育體制改革項目“國際合作培養(yǎng)軟件工程拔尖創(chuàng)新人才”為基礎,中南民族大學計算機科學學院聘請了美國威斯康星州立大學計算機系的5名教師擔任軟件實驗班外聘導師。這些外聘導師定期來給學生授課、指導青年教師、開展項目合作研究,較好地促進了課程建設。
筆者自2012年起,連續(xù)6年擔任軟件工程實驗班的軟件需求工程課程的主講教師,期間也曾到美國大學從事過博士后研究。通過6屆軟件工程實驗班的教學實踐,我們發(fā)現(xiàn):在教師的引導下,學生如果認真配合,用3年時間能夠完成規(guī)定的本科教學任務。
對于需求工程課程,經過一學期的課程學習,學生能夠初步掌握軟件需求分析的基本方法和工具,能夠根據要求完成一份給定系統(tǒng)的需求分析任務,建立分析模型,并根據模板來編寫英文分析報告。實驗班學生通過在國內的學習,英文文獻閱讀能力也得到較大提高,他們通過雅思考試后,前往美方大學攻讀軟件工程碩士研究生。根據我們的跟蹤調查,他們能夠很快適應美方的學習要求,有部分學生在美國研究生畢業(yè)后,在美國找到了滿意的工作。這些都證明了我們軟件工程實驗班國際化辦學的教學效果,而我們的國際化課程教學模式,也得到了實驗班學生及美方的認可。
培養(yǎng)國際化軟件工程人才,是高校軟件工程專業(yè)教學的必然趨勢和發(fā)展方向,也是高校教學研究的重要課題。國際化軟件工程人才培養(yǎng)是一個系統(tǒng)工程,教學實踐需要從學生的實際出發(fā),并充分吸收國外一流大學好的教學模式和經驗。在今后辦學中,需要繼續(xù)探索、不斷總結,力爭使培養(yǎng)模式和教學方法更加成熟。