穆海倫 田曉
摘要:分析目前軟件工程課程實踐教學中存在的問題,提出以課程實踐教學平臺為基礎的教學改革方案,闡述實踐教學平臺主要包括案例學習、案例模擬訓練、項目實踐、角色扮演、學習空間、知識庫等多個方面內容,從學習、訓練、實踐、總結及積累等方面加強學生軟件工程實踐能力的培養(yǎng),使其盡快獲得工程技術經驗。
關鍵詞:軟件工程;實踐教學平臺;角色扮演;學習空間;知識庫
1、高校軟件工程課程實踐教學現(xiàn)狀
隨著我國經濟的發(fā)展,軟件產業(yè)在國民經濟中越來越起到了舉足輕重的作用。高校作為社會所需人才的培養(yǎng)基地,有責任和義務培養(yǎng)和提供掌握軟件開發(fā)方法和具有實踐技能的軟件人才,以更好地促進軟件產業(yè)的發(fā)展。為此,很多高校開設了軟件工程課程,以讓學生從工程化的角度認識軟件開發(fā)和維護,工程化的概念、原理、技術和方法必須通過實踐才能真正理解和把握。但是,目前的軟件工程課程教學存在著“重理論、輕實踐”的現(xiàn)象,且傳統(tǒng)的授課模式也不利于開展實踐教學。下面將對目前高校軟件工程課程實踐教學中存在的困難和問題進行分析。
1.1 傳統(tǒng)的課程結構設置,不利于開展實踐教學
目前,高校的軟件工程課程結構基本上是采用理論課+上機課的形式,總學時為48學時,其中,理論課36學時,上機課12學時。這樣的課程結構設置凸顯了以教師講授為主、實踐教學為輔的特點,學生的實踐訓練基本以課下為主。
1.2 教學案例過于“文檔化”,學生無法了解過程細節(jié)
在軟件工程課程的教學中,教師一般都會從教材或其他資料上引入一些軟件開發(fā)的案例,但是,這些案例一般都是直接給出了結果,卻沒有對過程進行詳細的描述。例如,在講授需求分析時,可能案例中直接給出的是需求分析的結果——《需求規(guī)格說明書》,其中描述了功能需求、性能需求、接口需求、安全性需求等,并構建了相應的分析模型,但是卻沒有給出需求分析的過程描述,即這些功能、性能等的需求是如何分析出來的,模型是如何一步一步建立起來的等。再如,在講授系統(tǒng)設計時,案例中可能直接給出了數(shù)據(jù)庫設計的結果,其中包括數(shù)據(jù)庫表結構、視圖等,但是卻沒有詳細的描述數(shù)據(jù)庫設計的過程,即如何建立數(shù)據(jù)庫設計模型,如何設計相應的數(shù)據(jù)庫表,數(shù)據(jù)庫表中的字段以及字段的類型、約束等是如何得到的等。這些案例只有結果描述,類似于企業(yè)里開發(fā)所用的文檔,學生僅僅通過這些“文檔化”的案例,是無法真正掌握軟件開發(fā)的細節(jié)的,而導致的結果是——學生看看都會,聽聽都明白,動起手來卻是滿腦子空白。
1.3 缺乏有效的實踐教學環(huán)境。無法做到“學”“練”和“指導”的全過程互動
目前的軟件工程課程實踐教學主要采用學生課下完成實踐作業(yè)的形式,學生在學習“紙質的”和“靜態(tài)的”理論知識和案例的基礎上進行開發(fā)實踐,這樣的實踐教學過于簡單,缺乏環(huán)境的支持,無法做到“學”“練”和“指導”的全過程互動,不利于真正提高學生的實踐能力。
(1)學生只能被動地學習和接受案例,但是卻不能提出自己的見解,更不能將其與其他學生來分享。
(2)學生無法對案例細節(jié)和過程進行“拆解”,并對某部分過程和細節(jié)進行模擬訓練,更無法對模擬的結果進行動態(tài)的對照,發(fā)現(xiàn)自身理解的偏差和問題,從而加深對案例的理解和掌握,不至于讓案例學習“流于表面”。
(3)學生無法通過實踐環(huán)境,動態(tài)創(chuàng)建軟件開發(fā)項目,并將項目開發(fā)的過程細節(jié)和結果與其他學生進行分享,甚至讓其他的學生動態(tài)參與其中,也無法讓教師對實踐項目進行全程指導。
(4)學生沒有自己的學習空間,無法將課程學習和實踐中的心得、體會等進行記錄,也無法將一些好的技術、方法等資料與其他學生進行分享。
(5)案例的更新缺乏一種動態(tài)的機制,只能依賴教師去收集,無論是數(shù)量,還是真實性、貼切度,都無法滿足實踐教學的要求。
2、具體改革實施方案
經過上文的分析,我們發(fā)現(xiàn)目前的軟件工程課程實踐教學存在課程設置不合理、缺乏能夠被學生深入學習和理解的實際案例、缺乏能夠支持“學”“練”和“指導”全過程互動的實踐教學環(huán)境等問題。為此,我們提出了基于實踐教學平臺的軟件工程課程實踐教學改革方案,主要從課程結構設置和實踐教學平臺的使用兩個方面人手,加強學生的實踐訓練,并以實踐教學平臺為支撐,讓學生切實提高實踐能力。下面將對具體的改革方案進行論述。
2.1 以課程實訓代替上機課,加強實踐教學
我們以課程實訓來代替?zhèn)鹘y(tǒng)的上機課,將總學時數(shù)由48學時調整為64學時,其中,理論課設置為32學時,實訓課設置為32學時。課程實訓是在教師的指導下,由學生自己完成一個完整的軟件開發(fā)實踐課題,具體的課程內容如下。
(1)課題確定:由學生自己根據(jù)日常生活和學習中所接觸或熟悉的軟件來命題,如學生管理系統(tǒng)、圖書館管理系統(tǒng)、選課系統(tǒng)、宿舍管理系統(tǒng)等,也可以由教師結合教學、科研的實際情況設置多個課題供學生選擇,要求課題的規(guī)模大小適中,有一定難度,但經過努力可以較好地完成。
(2)組織形式:課題以小組的形式來進行組織,包括一位組長和3~4位組員,對于系統(tǒng)中的部分開發(fā)工作也可以采用“外包”的形式,即由組外的其他學生來幫助完成。
(3)教學安排:實訓課每周安排2學時,每一位組長在課上介紹本組項目的進展情況和碰到的問題等,其他項目組的學生可以就項目的某些部分提出疑問,教師可以對項目的實施進行指導,也可以引導學生就某一細節(jié)問題展開討論。
(4)成績評定:課程實訓結束時,每組需提交所完成的軟件系統(tǒng)和相關的文檔、實踐報告等,而成績的評定采用驗收答辯的形式,即每個小組演示開發(fā)完成的軟件系統(tǒng),并總結項目實踐經驗和提出改進意見,由教師主持實踐項目驗收答辯,由其他組的代表(或組長)充當評委,共同對實踐項目的成果進行評審并打分,最后由教師進行綜合評定,給出每組的課程實訓的最終成績。
2.2 建立完整的課程實踐平臺,注重過程學習和模擬實踐訓練
我們建立一套完整的課程實踐平臺,學生可以利用平臺來進行案例學習和模擬訓練,也可以通過共享資料來形成知識庫,供每個人參考。此課程實踐平臺主要包括4個部分。
1)案例學習機。
案例學習機主要為學生提供完整的案例,以供學生進行學習。案例學習機包含由多個案例構成的案例庫,案例的選擇基本上以學生所熟悉和易于接受的軟件開發(fā)項目為主,每個案例都詳細記錄了一個完整的軟件開發(fā)項目實踐,包括項目管理的內容,具體內容包括以下幾個方面。
(1)案例分解,細節(jié)分析:每一個案例都是完整的整體,同時又可以按照軟件開發(fā)的流程(瀑布模型)進行分解(如圖1所示),學生既可以看到軟件開發(fā)過程中每一步的結果,也可以看到每一步的過程細節(jié),包括開發(fā)中所碰到的問題,解決的辦法,甚至開發(fā)中所走的彎路等,都可以在案例中進行瀏覽和學習。
(2)個性思考:學生在學習案例的過程中,可以針對某一個細節(jié)進行思考,并發(fā)表自己的評論(如圖2所示),也可以瀏覽其他學生針對此所發(fā)表的評論,所有的評論構成了一個個性思考評論空間,可以給后續(xù)的更多的學生提供借鑒。
2)項目模擬訓練器。
項目模擬訓練器為學生提供了一個案例模擬和項目開發(fā)實踐的平臺,為學生進行課程實訓提供了實踐環(huán)境,學生可以將案例作為框架,進行模擬訓練,也可以進行全新的項目開發(fā)實踐訓練,具體內容包括以下幾個方面。
(1)案例模擬環(huán)境:學生可以直接引入一個案例作為模擬項目,可以參照案例的執(zhí)行步驟自行進行每一步的執(zhí)行操作,并將自己的操作結果與案例進行對照(如圖3所示),找出自己模擬訓練中存在的問題。
(2)項目實踐環(huán)境:學生可以自行創(chuàng)建一個新的項目,實踐環(huán)境將給出項目管理和開發(fā)實踐的基本流程及任務框架(如圖4所示),學生可以進行項目組建、編寫項目計劃、記錄項目執(zhí)行過程,可以按照軟件開發(fā)流程進行需求分析、系統(tǒng)設計、編碼及測試等活動。
這樣的項目實踐環(huán)境是全方位的,即學生可以訓練項目管理方面的技能,也可以訓練軟件開發(fā)環(huán)節(jié)的技能,如學生可以創(chuàng)建一個項目,并擔任項目經理,同時可以將項目在系統(tǒng)中發(fā)布,并“招聘”分析人員、設計人員、編碼人員、測試人員等,其他學生可以在系統(tǒng)中看到發(fā)布的“招聘”信息,如果愿意的話,可以在此項目中擔任相關的角色,這樣可以實現(xiàn)一種“角色扮演”,即某個學生既可以是A項目的項目經理,以此訓練項目管理方面的技能,也可以是B項目的系統(tǒng)分析師,以此訓練系統(tǒng)分析的技能,還可以是C項目的開發(fā)工程師,以此訓練編碼實現(xiàn)的技能等。
(3)網上評審:學生在項目實踐環(huán)境中創(chuàng)建了自己的項目后,安排相應的開發(fā)工作,在每一個開發(fā)階段結束時,都可以發(fā)布“網上評審”邀請,其他學生可以對該項目本階段的工作進行評審和打分,這樣,最終會匯總出每個項目的總分,也可以根據(jù)每個學生在各個項目中參與的工作評分匯總出其項目實踐的總分,教師也可以很容易統(tǒng)計出每個學生的實踐課程成績。
(4)師生交流平臺:教師和學生可以在模擬訓練器中針對某個具體的任務或實踐活動進行交流,教師可以提出相應的指導意見,也可以創(chuàng)建一個論壇,以方便學生之間、學生和教師之間的交流。
(5)案例申請:學生可以將自己的實踐項目申請成為案例,教師對實踐項目的過程細節(jié)和結果進行評估,若通過,則可以提交到案例學習機的案例庫中,這樣可以形成一個良性循環(huán),不斷地補充由學生自己開發(fā)的真實案例,以供更多的學生進行學習。
3)學習空間。
學習空間是為每個學生的課程學習和實踐所建立的一個私有空間,學生可以將課程學習的計劃、日程安排、學習心得等置入學習空間中,形成一個完整的學習平臺。學生可以在個人的學習空間的桌面上放置便簽、今日安排、實踐項目列表、消息提醒、常用聯(lián)系人等快捷圖標(如圖5所示),并通過點擊進人相關部分進行操作。
4)知識庫。
知識庫是所有資料的共享空間,學生和教師均可以將與軟件開發(fā)項目相關的資料上傳到知識庫中,并依照技術、管理等進行分類,以供所有學生進行查閱(如圖6所示),還可以建立一個FAO庫,把所有的問題和問題的解答(可以是教師解答的,也可以是其他學生解答的)進行記錄并存儲到FAQ庫中,以供學生在實踐過程中碰到問題時進行查閱參考。
建立了課程實踐平臺后,軟件工程的課程實訓就可以依賴此平臺進行開展,學生可以在“案例學習機”中進行學習,在“案例模擬環(huán)境”中自己動手參照案例進行模擬訓練,在“項目實踐環(huán)境”中創(chuàng)建和組織新的項目,也可以參與到其他組的項目工作中,在“學習空間”中構造自己的私有學習環(huán)境,記錄學習心得等,還可以將心得或資料上傳到“知識庫”中,與其他學生進行分享,從而使“學”與“練”動態(tài)結合,真正達到課程實訓的目標。
3、結語
隨著國內軟件產業(yè)的發(fā)展,軟件企業(yè)對軟件人才的需求無論從數(shù)量上還是從質量上都在不斷的提升,這也使得高校不斷地嘗試和探索進行各種課程教學模式的改革,從而真正培養(yǎng)出具有實踐開發(fā)能力的軟件人才。筆者正是基于這一背景而提出的軟件工程課程實踐教學改革方案,是基于一套完整的實踐教學平臺環(huán)境,以課程實訓的方式來切實提高學生的軟件工程實踐能力。該方案從2010年提出并開始實施,目前已基本完成實踐教學平臺環(huán)境的開發(fā)并對2009級和2010級軟件工程專業(yè)的學生進行了實踐教學改革的嘗試,取得了良好的教學效果。下一步,我們將繼續(xù)完善實踐教學平臺環(huán)境,并在進一步完善改革方案的基礎上,將其推廣到計算機科學與技術及其他計算機軟件相關專業(yè),以滿足企業(yè)對軟件人才的需要。