【摘要】基于開源軟件,改進軟件工程CDIO課程體系不僅能夠滿足軟件工程專業(yè)培養(yǎng)的工程性、實踐性和創(chuàng)新性的要求,還能達到不同于其他工科專業(yè)人才的獨特特性,即人的協(xié)作性的培養(yǎng),這對于培養(yǎng)在專業(yè)技能上、團隊協(xié)作上得到有效的鍛煉,成長為企業(yè)所期望的“來之即用”、“來之好用”,具有工程性、實踐性、創(chuàng)新性和協(xié)作性的高素質軟件工程人才,具有重要的意義。
【關鍵詞】開源軟件 CDIO 軟件工程課程體系 實踐教學
【基金項目】本文受重慶市高等教育教學教改項目(132022)資助。
【中圖分類號】G64 【文獻標識碼】A 【文章編號】2095-3089(2018)29-0240-02
軟件工程專業(yè)是我國高等教育中培養(yǎng)高素質軟件工程人才的專業(yè),非常強調人才培養(yǎng)的工程性、實踐性和創(chuàng)新性,以及不同于其他工科專業(yè)人才的獨特特性,即人的協(xié)作性。軟件工程專業(yè)的人才培養(yǎng)要求與CDIO(Conceive、Design、Implement and Operate)工程教育模式是一致的,我校軟件工程專業(yè)進行了CDIO人才培養(yǎng)模式的初步探索,經過近幾年的實踐,軟件工程專業(yè)的建設已初見成效。尤其是,近3年來的“基于開源軟件,改進軟件工程CDIO課程體系”取得了明顯的教學改革成果。
一、開源軟件對于軟件行業(yè)的重要性
經過近30年的蓬勃發(fā)展,開源軟件已經深刻地改變了軟件產業(yè)結構,越來越多的企業(yè)開始將開源軟件提升到了企業(yè)IT的戰(zhàn)略層面,我國的《軟件和信息技術服務業(yè)“十二五”發(fā)展規(guī)劃)》中,明確了“支持開源軟件開發(fā)和應用推廣,加快形成基于開源模式的產業(yè)生態(tài)系統(tǒng)”的發(fā)展重點。工業(yè)和信息化部在“軟件和信息技術服務業(yè)發(fā)展規(guī)劃(2016-2020年)”也明確指出“構筑開源開放的技術產品創(chuàng)新和應用生態(tài)。支持企業(yè)、高校、科研院所等參與和主導國際開源項目,發(fā)揮開源社團、產業(yè)聯(lián)盟、論壇會議等平臺作用,匯集國內外優(yōu)秀開源資源,提升對開源資源的整合利用能力?!币虼耍覈能浖a業(yè)亟需培養(yǎng)大量的各類層次的開源軟件工程人才,才能在未來的軟件產業(yè)轉型升級中跟上世界的脈搏。
二、傳統(tǒng)軟件工程專業(yè)課程體系的問題
1.課程內容案例單一,與實踐的結合性遠遠不夠,缺乏豐富的低、中、高等不同層次的新穎課程案例來支持實踐教學。
2.課程實踐缺乏相應的軟件工程實驗軟件,學生實踐比較困難,嚴重影響了CDIO“做中學”的教學效果;部分課程采用了盜版軟件,侵犯了知識產權,無法讓學生樹立版權意識,背離了CDIO職業(yè)素養(yǎng)教育的精神。
3.現有的大多數課程之間相對獨立隔離,無法在實踐中相互融合,嚴重影響專業(yè)人才協(xié)作性的培養(yǎng)。這些孤立的課程教學無法真正實現CDIO一體化課程計劃的設計,無法將軟件系統(tǒng)的生命周期作為工程教育的背景環(huán)境,無法將技術知識和其他能力的教、學、練融為一體化,無法培養(yǎng)出良好實踐協(xié)作能力的專業(yè)技術人才。
三、基于開源軟件,建立軟件工程CDIO課程體系
為了有效地解決上述問題,我校軟件工程專業(yè)進行了“基于開源軟件,改革創(chuàng)新軟件工程CDIO課程體系”的教學改革,建立了以開源軟件為基礎的軟件工程CDIO實踐教學體系,其基本結構如上圖所示。該體系包括了3年一貫制實施“課程實驗+項目實訓+創(chuàng)新競賽+企業(yè)實習+畢業(yè)設計”5大模塊。
圖中,整個體系中的下層模塊作為上層模塊的基礎,同時也有部分相互交叉的影響,注釋部分描述各個模塊的目標。
該教學實踐體系為軟件工程整個課程體系的改革和創(chuàng)新,提供了有力的實踐教學支撐,主要體現在以下幾點:
1.針對基礎課程,進行基于開源技術的實踐教學的改革
例如,在“C語言程序設計”的課程中,多數教師以往都是基于微軟的VC(Visual C++)或者VS(Visual Studio)開發(fā)環(huán)境來講述C語言編程技術,具有很大的局限性。VC和VS都不支持C語言的C99標準,更不支持C11、C17標準,無法基于這些環(huán)境講解C語言新標準的教學內容。為此,我們引入了在各個開源企業(yè)廣泛使用的GNU開源工具鏈,基于該工具鏈講解了C99、C11和C17標準的重要內容,通過讓學生掌握體會各個分立的工具cpp,cc1,ld,gcc和gdb的使用方法,讓學生理解軟件構建和調試的完整過程,初步建立了編程技術、操作系統(tǒng)技術與程序設計語言的關聯(lián),并且改革傳統(tǒng)的理論考核方式為小組提交小型程序作品、個人上機考試、個人筆試相結合的考核方式。
2.針對軟件工程的核心課程進行整合,改進為基于開源軟件的課程群
在傳統(tǒng)的軟件工程課程體系中,C++程序設計、軟件工程導論、UML面向對象建模與設計和軟件工程課程設計是4門核心的課程,但由于這3門課程往往獨立講授,彼此無法將相關課程中的知識點完全連接到一起,造成了“學習C++只編程不建模,學習軟件分析和設計只寫文檔、學習UML建模只畫圖不關心模型與軟件分析、設計、實現的一致性和轉換性、課程設計只是簡單地拼湊軟件”的尷尬局面。同時,由于完整支持整個軟件生命周期的閉源軟件集太過于昂貴,使用Visio和VS的破解版也會引起法律的問題,這對課程的教學也帶來極大的影響。
為此,我們引入了開源的集成開發(fā)環(huán)境Eclipse/QtCreator,利用Eclipse的各類建模插件或者建模工具DoUML或者Umbrella,可以在同一環(huán)境中進行軟件的分析建模、設計建模、版本控制以及編碼實現,并為此將課程改革為《軟件工程I:語言與需求》、《軟件工程II:建模與分析》、《軟件工程III:設計與實現》和《“開源軟件杯”創(chuàng)新作品大賽》等四門關聯(lián)很強的課程,在教學內容上進行了彼此的融合,避免了傳統(tǒng)方式上教學內容的分裂,讓學生模擬真實的工程環(huán)境學習軟件技術、軟件工具和軟件過程。
3.為了增強學生的設計-實現的經驗和更好地提供進行工程實踐的場所,開展了一系列實踐教學課程改革,取得了較好的效果
在當前的課程體系中,設置了實驗、實訓、實習等初級、中級、高級的實踐環(huán)節(jié)并實施了相應的改革措施,以增強學生的設計-實現的經驗。在實施過程中,設計了大量的基于開源技術的實驗內容。尤其是“開源軟件杯”系列的比賽課程,鼓勵學生學習使用相關的開源技術,開發(fā)相應的軟件作品,對于學生專業(yè)實踐技能的培養(yǎng),起到了極大的促進作用。
四、結語
在近3年來“基于開源軟件,改進軟件工程專業(yè)課程體系”的教學實踐實施以來,學生的專業(yè)能力得到了明顯的提升。本專業(yè)的學生先后參加“中國軟件杯”大學生軟件設計大賽獲得全國二等獎2項、三等獎1項、最具潛力獎3項,中國大學生計算機設計大賽重慶市二等獎3項、三等獎1項;全國大學生數學競賽若干項。近3年的畢業(yè)生一次性就業(yè)率平均達到90%以上。許多學生到網易、百度、騰訊、深信服、HP、奇虎360、旭碩(科技)、豬八戒網絡、愛奇藝、中國民航信息有限公司以及成都民航二所等知名企業(yè)從事軟件研發(fā)測試等工作。因此,基于開源軟件,改進軟件工程專業(yè)CDIO課程體系是切實可行的課程體系改革,對于培養(yǎng)在具有行業(yè)競爭力的新時代的高級軟件工程人才具有重要的意義。
參考文獻:
[1]Roger S.Pressman. 軟件工程:實踐者的研究方法[M]. 機械工業(yè)出版社.2011.
[2]Edward F. Crawley, Johan Maimqvist等. 重新認識工程教育[M]. 高等教育出版社. 2009.
作者簡介:
龔偉(1974-),男,碩士,講師,主要研究方向為軟件工程。