軟件工程課程設(shè)計總結(jié)范文

時間:2023-04-01 15:05:30

導語:如何才能寫好一篇軟件工程課程設(shè)計總結(jié),這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。

軟件工程課程設(shè)計總結(jié)

篇1

關(guān)鍵詞: 軟件工程課程設(shè)計 教學現(xiàn)狀 教學模式評價體系

一、引言

軟件工程是計算機科學、信息技術(shù)、軟件工程等專業(yè)的教學計劃中一門重要專業(yè)必修課[1],而軟件工程課程設(shè)計是針對軟件工程這門課程展開的一項理論與實踐相結(jié)合的重要教學活動;它不同于畢業(yè)設(shè)計,更不同于簡單的實驗過程。它是軟件工程教學的一個重要實踐環(huán)節(jié),為學生綜合能力的運用、技術(shù)思維的形成、創(chuàng)造能力的培養(yǎng)搭建了一個平臺,使學生除了掌握軟件工程理論和方法外,還能夠綜合運用已學過的程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、計算機網(wǎng)絡(luò)、管理學和經(jīng)濟學等課程的技能、工具解決與其相關(guān)的理論或?qū)嶋H問題。

在軟件工程課程設(shè)計中,很多本學科的學者與施教者總結(jié)了不錯的經(jīng)驗,比如“激勵機制”[2]、面向?qū)ο蟮淖灾鲗嶒灲虒W[3]、課程相關(guān)體系研究[4]及相關(guān)的案例法教學實踐設(shè)計[5]等,這些方法各有所長。我取其所長,結(jié)合親身教學實踐,從課程設(shè)計的目標要求,設(shè)計內(nèi)容,設(shè)計的具體實施,學生成績評價體系等方面,對軟件工程課程設(shè)計教學模式作了系統(tǒng)的探討。

二、軟件工程課程設(shè)計的教學現(xiàn)狀

長期以來,很多高校培養(yǎng)的學生存在著“什么都學過,卻什么都不會”的尷尬局面,專業(yè)教育、教材與實際應用需求嚴重脫節(jié)[6]。傳統(tǒng)的軟件工程課程設(shè)計雖然也有設(shè)計的要求,但一般只是停留在組織學生編寫軟件項目若干設(shè)計文檔這個單一環(huán)節(jié)上,忽略了對教學方法和內(nèi)容的更新。目前,大多數(shù)院校軟件工程課程設(shè)計課程教學中普遍存在的問題有以下幾點。

1.課程設(shè)計目標不夠明確,實驗和設(shè)計不加區(qū)別。把軟件工程實驗和設(shè)計的要求同等對待,從而使設(shè)計內(nèi)容偏少,驗證性實驗內(nèi)容和方法偏多,實驗過程變成了重復的復制和操作的過程,實驗教學效果不理想,達不到培養(yǎng)學生獨立思考和創(chuàng)新能力的目的。

2.課程設(shè)計內(nèi)容比較陳舊,不能與時俱進。很多從事軟件工程課程設(shè)計教學的教師本身缺乏項目開發(fā)的實戰(zhàn)經(jīng)驗,對課程設(shè)計的內(nèi)容往往從一些參考書籍的實例中拿過來讓學生去做,有的甚至多年不更新設(shè)計內(nèi)容,這樣很容易給學生抄襲的機會,達不到課程設(shè)計的要求;同時,很多學生對設(shè)計的內(nèi)容也不一定感興趣,因此也容易扼殺學生的積極性和創(chuàng)新能力。

3.在項目組劃分確定方面,缺乏對學生專業(yè)基礎(chǔ),性格和技能的分析與匹配,導致沒有凝聚整組成員的合作精神和團隊的開發(fā)能力。組長的核心作用很重要,但在具體的設(shè)計中,一般就是簡單的按學號自然的分化,或者學生的自由組合分組,前者失去了團隊能力的柔化組合與應用,后者導致少數(shù)技能較差的學生不能分到組中去而處于孤軍作戰(zhàn)的局面。

4.教師制定課程設(shè)計的指導要求目的不明確、不詳細,監(jiān)管力度不到位,導致項目開發(fā)團隊在執(zhí)行的過程中出現(xiàn)安排任務(wù)不合理,出現(xiàn)某些成員任務(wù)過重或者過輕的情況。

5.學生成績的評分結(jié)果過于單一,評價體系不夠科學合理。對學生的設(shè)計成績的評價往往是指導老師根據(jù)學生提交的報告和設(shè)計結(jié)果來評分,這樣容易忽略對學生綜合能力(包括學生的口頭表達能力,組織能力,團隊協(xié)調(diào)能力等各方面)的評價。

因此,為了培養(yǎng)高素質(zhì)的綜合型軟件人才,高等學校探索良好的軟件工程課程設(shè)計教學模式就顯得十分必要。

三、軟件工程課程設(shè)計教學模式的探討

針對當前多數(shù)院校軟件工程課程設(shè)計課程教學中普遍存在的一些問題,我根據(jù)多年的教學經(jīng)驗,對該課程的教學模式作了如下探討。

1.指導老師根據(jù)軟件工程教學的特點,制定出軟件工程課程設(shè)計的目標與通過該課程設(shè)計后可取得預期的收獲。下面是我對軟件工程課程設(shè)計制定的目標和可能的預期收獲。

(1)通過本課程設(shè)計的實踐及其前后的準備與總結(jié),復習、領(lǐng)會、鞏固和運用軟件工程課堂上所學的軟件開發(fā)方法和知識,比如,軟件項目的完整設(shè)計與開發(fā)過程、結(jié)構(gòu)化技術(shù)、快速原型法和面向?qū)ο蠓椒?等等。

(2)為學生適應畢業(yè)后團隊合作開發(fā)規(guī)模稍大項目和綜合應用本專業(yè)所學習的多門課程知識(例如,軟件工程、程序設(shè)計語言、操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡(luò)編程等)創(chuàng)造實踐機會。為學生提供主動學習(比如,對Web網(wǎng)頁設(shè)計、或ASP交互網(wǎng)頁技術(shù)、Java開發(fā)環(huán)境、網(wǎng)站構(gòu)架如Struts,Hibernate,Spring,商用數(shù)據(jù)庫應用、電子商務(wù)、客戶機/服務(wù)器技術(shù)、Visio與Rational Rose,Sybase powerdesigner軟件工具等內(nèi)容的學習)、積極探索與大膽創(chuàng)新的機會。

(3)使學生通過參加小組團隊的開發(fā)實踐,了解項目管理、團隊協(xié)作、與客戶交流、文檔編寫、口頭與書面表達的重要性。

(4)使每個學生了解軟件工具與環(huán)境對于項目開發(fā)的重要性,并且重點深入掌握好一、兩種較新或較流行的軟件工具或計算機應用技術(shù)、技能。

(5)通過“稍大的”富有挑戰(zhàn)性的軟件設(shè)計項目開發(fā)實踐,提高學生的自學能力、書面與口頭表達能力、創(chuàng)造能力和與團隊其他成員交往和協(xié)作開發(fā)軟件的能力,提高學生今后參與開發(fā)稍大規(guī)模實際軟件項目和探索未知領(lǐng)域的能力和自信心。

2.課程設(shè)計內(nèi)容選擇應該具有科學性和與時俱進性。課程設(shè)計內(nèi)容選擇十分重要,既要體現(xiàn)時代性,又要體現(xiàn)科學性和難度的適當性,因此要求指導老師對當前軟件開發(fā)領(lǐng)域的整個動態(tài)有總體掌握。下面是我對當前軟件開發(fā)領(lǐng)域進行的大致歸類。

(1)網(wǎng)站開發(fā)類:包括休閑娛樂(音樂,影視,聊天,休閑運動,旅游景點等)網(wǎng)站;工商經(jīng)濟網(wǎng)站(攝影,日用家居,玩具等);文學網(wǎng)站(詩詞/韻文,港臺文學,民間文學,科幻文學等);體育與健身網(wǎng)站(極限運動,球類,健美/健身,運動常識,網(wǎng)球,乒乓球等);衛(wèi)生與健康網(wǎng)站(醫(yī)學理論,醫(yī)療器械,保健/養(yǎng)生,論壇等);國家地區(qū)網(wǎng)站(北京,上海,廣東,江蘇,天津等);教育培訓網(wǎng)站(小學/中學教育,職業(yè)教育,高等教育,教育軟件,培訓機構(gòu)等);其他等類型網(wǎng)站。

(2)應用軟件類:如信息管理系統(tǒng),漢字輸入,轉(zhuǎn)換翻譯,文字處理,壓縮解壓,電子閱讀,文檔管理,字體工具,數(shù)據(jù)恢復等。

(3)系統(tǒng)軟件類:如系統(tǒng)管理,內(nèi)存管理,文件管理,系統(tǒng)測試工具等。

(4)游戲娛樂類:如網(wǎng)絡(luò)游戲,Flash游戲,牌和棋游戲等。

(5)其他:如安全病毒,桌面工具等。

這樣,課程設(shè)計的內(nèi)容可以根據(jù)學生的興趣和愛好從以上幾方面進行選擇,也可以由學生自己選擇設(shè)計內(nèi)容,指導老師把握學生選擇的項目難易程度,同時提出所要達到的要求(包括完成日期,演示時間,學生所要提交的成果,文檔資料,等等)。

3.課程設(shè)計項目具體實施

(1)確定開發(fā)團隊。指導老師在班長和學習委員的協(xié)助下充分了解學生的興趣、愛好、基本技能和未來學生的就業(yè)意向,學生在教師的指導下,有選擇性地進行分組,一般3至5人為一組,并選定好組長。

(2)確定開發(fā)項目。指導老師給小組成員分配好開發(fā)任務(wù),組長寫好開發(fā)計劃進程安排并提交指導老師檢查以便及時修進。

(3)中期檢查與指導。指導老師根據(jù)各個團隊提交的開發(fā)計劃,對各團隊開發(fā)項目進程定期進行中期檢查,檢查各團隊的項目進展情況,包括各個小組的開會記錄,所查閱的資料,當前所遇到的困難,協(xié)助與指導小組面對困難所要采取的解決方法等。

(4)成果提交與演示。課程設(shè)計結(jié)束時指導老師要求按時提交項目的相關(guān)成果,并組織小組團隊進行演示與簡短的答辯。演示過程要求學生用5―10分鐘時間敘述設(shè)計原理、過程、系統(tǒng)運行的情況和體會,敘述完畢后由指導老師或其他小組成員提問,指導老師和小組成員記錄該學生演示情況和回答問題的情況,并以此作為下一階段評定該學生成績的一部分。

本文為全文原貌 未安裝PDF瀏覽器用戶請先下載安裝 原版全文

4.建立合理,科學公正的評價體系。為了對每個開發(fā)團隊中的成員成績有個公正、公平和合理的成績,因此必須建立合理、科學、公正的評價體系,本文建立的評價體系包括:學生提交成果,學生演示與答辯,學生自評與互評,教師評分。學生提交成果根據(jù)表1學生所承擔的角色來交付;學生演示與答辯重點體現(xiàn)對系統(tǒng)的原理、過程、結(jié)論,以及開發(fā)體會進行表述;學生自評和互評體現(xiàn)了學生的自我認同和互相認同感;最后是教師的評分,教師的評定從以下幾方面全面考慮:(1)學習態(tài)度是否端正,總體表現(xiàn);(2)項目組織是否有條理,協(xié)作程度;(3)軟件系統(tǒng)文檔資料表達格式是否規(guī)范、符合要求,表達是否準確、完整、簡單明了;(4)系統(tǒng)結(jié)構(gòu)是否合理,功能是否正確,人機界面是否友好;除了符合上列基本要求具體評定可以參見下表1。最后學生的總評定成績?yōu)?0.4×教師評定分+0.2×學生互評分+0.2×學生演示與答辯評分+0.2×學生自評分。

表1 評定標準

四、結(jié)語

軟件工程課程設(shè)計是一門理論與實踐相結(jié)合的應用性很強課程,我結(jié)合自身從事軟件開發(fā)的經(jīng)驗和多年的教學,從以上幾個方面探索了該課程的教學模式,在實踐工作中雖然取得了一定的成效,獲得了學生的認可與好評,但仍處于嘗試和探索階段。在實際指導過程中還存在不少問題,例如:個別學生的積極主動性不夠,存在抄襲設(shè)計成果現(xiàn)象,等等。這些都需要繼續(xù)努力,尤其是隨著軟件產(chǎn)業(yè)的飛速發(fā)展,如何培養(yǎng)高素質(zhì)軟件人才,對教師來說更是一種挑戰(zhàn)。因此,教師應不斷學習新的知識,提升自身的能力,把握學科的最新發(fā)展動態(tài),探索新的教學模式,深化實踐教學改革,為我國教育事業(yè)作出更大的貢獻。

參考文獻:

[1]張海藩.軟件工程導論(第5版)[M].北京:清華大學出版社,2008:55-73.

[2]張引,楊小虎,陳越.“軟件工程”課程實踐中激勵機制的探索[J].計算機教育,2007,(5):30-32.

[3]江頡,石曉耀.面向?qū)ο蟮能浖こ套灾鲗嶒灲虒W改革[J].實驗技術(shù)與管理,2007,24(7):112-114.

[4]王薇.軟件工程課程體系研究[J].計算機教育,2007,(8):31-32.

[5]巫華芳.軟件工程教學案例設(shè)計初探[J].教育與職業(yè),2007,(11):139-140.

[6]馬燕,張根耀,王文發(fā).軟件工程實驗教學模式改革與實踐研究[J].教育與職業(yè),2006,(36):149-150.

篇2

關(guān)鍵詞:普通院校;實踐教學體系;工程實踐能力;路線圖

軟件工程專業(yè)在我國高等院校還是一個很不成熟的專業(yè),比起傳統(tǒng)的工科專業(yè)來說,軟件工程專業(yè)有更多的技術(shù)成分,因此,我們的教學體系和模式就要有別于傳統(tǒng)的教學體系和模式。實踐教學體系是否合適將直接影響軟件工程專業(yè)畢業(yè)生的質(zhì)量。對于重點院校軟件專業(yè)和軟件學院實踐教學體系已有很多專家學者進行了研究與實踐[1-3],而普通院校無論是師資,還是其他教學資源,都不能與重點院校相比[4-5],應該有一套有別于重點院校的實踐教學體系。本文將對普通院校軟件工程專業(yè)實踐教學體系的構(gòu)建進行探討,并結(jié)合我院軟件工程專業(yè)實踐教學體系進行總結(jié)。

1實踐教學體系構(gòu)建原則

軟件工程專業(yè)實踐教學體系構(gòu)建原則可以從4個方面考慮:軟件工程專業(yè)特點、教指委的軟件工程專業(yè)規(guī)范、軟件工程專業(yè)的職業(yè)定位、人類認識事物的規(guī)律。

1) 軟件工程專業(yè)是一個綜合性學科,既有科學的要求,又有技術(shù)的要求。從學生的培養(yǎng)目標來看,普通院校軟件工程專業(yè)含有更多的技術(shù)要求。目前國內(nèi)大多數(shù)普通院校軟件工程專業(yè)還是按照傳統(tǒng)的理工科人才培養(yǎng)方式進行學生的培養(yǎng),忽視軟件工程專業(yè)知識體系的特點,從而導致學校的學生大多數(shù)隨能按照培養(yǎng)計劃完成學業(yè),成為一名合格的軟件工程專業(yè)的畢業(yè)生,但與企業(yè)的要求相差甚遠,企業(yè)找不到合適的人才的現(xiàn)狀。

2) 軟件工程專業(yè)規(guī)范給定的軟件工程專業(yè)知識體系包括:計算機科學與技術(shù)知識、軟件工程知識和領(lǐng)域知識。計算機科學與技術(shù)專業(yè)、軟件工程專業(yè)是實踐性、應用性非常強的學科,要使學生掌握好計算機科學與技術(shù)的基礎(chǔ)理論知識,應用軟件工程技術(shù)的基本技巧與方法,就必須確保實踐教學的教學質(zhì)量。

3) 按照現(xiàn)在職場流行的說法,人才分為3類:白領(lǐng)、灰領(lǐng)、藍領(lǐng)。根據(jù)本地區(qū)和學校的特色,我院軟件工程專業(yè)的定位是培養(yǎng)“灰領(lǐng)”人才,因此,學生除了學習傳統(tǒng)的計算機科學與技術(shù)知識、軟件工程知識外,還要學習管理學知識,同時根據(jù)我校的特色與定位,把汽車設(shè)計與制造過程中信息結(jié)構(gòu)作為應掌握的領(lǐng)域知識。管理學知識將用于團隊管理、軟件開發(fā)過程管理以及信息結(jié)構(gòu)建模等開發(fā)活動;汽車設(shè)計與制造過程中的信息作為軟件開發(fā)實踐的應用對象,是軟件的加工對象。

4) 人類對事物的認識是一個由簡單到復雜,由具體到一般的過程,是一個分析與綜合的過程,將隨著知識的積累逐步深入。這就要求實踐教學要按照培養(yǎng)計劃進度設(shè)置不同的實踐內(nèi)容,而且可以根據(jù)學生的個體情況進行少量的調(diào)整。

2實踐教學體系構(gòu)建方案

現(xiàn)在高等教育的教育方式正在從以教師為中心轉(zhuǎn)變?yōu)橐詫W生為中心,既以學生的目的需要為中心、以學生的能力拓展為中心、以學生的知識結(jié)構(gòu)為中心開展實踐教學。因此,我們在設(shè)計實踐教學體系時,始終注重按照學生理論學習的進度和學生能力提高的需求,依據(jù)軟件開發(fā)過程的特點,分層次開設(shè)不同的實踐內(nèi)容。

按照學生能力培養(yǎng)的路線圖,實踐教學體系始終圍繞著培養(yǎng)知識應用能力和創(chuàng)新能力進行構(gòu)建。能力培養(yǎng)方面分為3個方面,即程序設(shè)計能力、軟件開發(fā)能力、工程實踐能力。實踐教學課程體系由5個層次的實驗構(gòu)成:課程實驗、課程設(shè)計、項目實訓、開發(fā)實踐、畢業(yè)設(shè)計,如圖1所示。

2.1課程實驗

本類實驗主要是加強學生對所學知識的理解,“聽過的會忘記,看過的會記住,做過的會理解”。實驗內(nèi)容分為3類。第1類:掌握和運用工具,包括語言類,軟件開發(fā)工具類等;第2類:理解所學知識,包括操作系統(tǒng)、編譯原理、設(shè)計模式、計算機網(wǎng)絡(luò)、數(shù)據(jù)結(jié)構(gòu)與算法等;第3類:同時兼顧工具學習和知識理解,如數(shù)據(jù)庫原理。這類實驗主要是學生按照實驗指導書完成規(guī)定的實驗內(nèi)容,但也有一部分內(nèi)容只給出實驗目的,讓學生自己設(shè)計實驗內(nèi)容(設(shè)計型),以兼顧學生的不同層次與興趣。

2.2課程設(shè)計

本類實驗的目的就是培養(yǎng)和訓練學生對所學知識的綜合運用能力和學習新技術(shù)、新知識的能力,屬于規(guī)范中的設(shè)計型與綜合型實驗。教師給出課程設(shè)計題目、相應的背景描述和課程設(shè)計要求,學生在教師的指導下獨立完成課程設(shè)計項目,時間一般為1~2周。實驗內(nèi)容和要求根據(jù)學生的理論課進程安排,如VC++課程在數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計之前開設(shè),因此VC++課程設(shè)計要求學生做好類的設(shè)計、界面設(shè)計,數(shù)據(jù)存儲用文件形式,對軟件的效率不做要求;數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計課程設(shè)計,除了VC++課程設(shè)計的要求外,要增加對算法的效率和存儲空間的要求;設(shè)計模式與UML建模課程設(shè)計除了VC++課程設(shè)計和數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計課程設(shè)計的要求外,增加軟件可靠性與高效的要求等。所有的課程設(shè)計都要求界面美觀。同時鼓勵優(yōu)秀學生應用一些還沒有開設(shè)的課程內(nèi)容。

2.3項目實訓

本類實驗的目的主要是訓練項目的組織能力、工程實踐和團隊協(xié)作能力,著重開發(fā)過程的訓練,按照軟件生命周期,完成各階段的工作。項目實訓放在軟件工程和數(shù)據(jù)庫原理等專業(yè)基礎(chǔ)課程之后,軟件體系結(jié)構(gòu)之前。同時開展多個項目,把學生分成小組,在不同的項目中擔任不同的角色,教師扮演客戶和技術(shù)總監(jiān)的角色,要求學生按時上下班,實驗室允許學生加班,學生要負責實驗室設(shè)備安全。要上交較完整的需求分析與設(shè)計文檔,特別是各部分的公共信息要完整??梢灾粚崿F(xiàn)部分需求,時間安排為2~4周為宜。

2.4開發(fā)實踐

開發(fā)實踐在軟件工程的專業(yè)實驗室或校外實習基地進行。2008年我們與東風懸架彈簧公司和武漢天喻軟件有限責任公司合作,利用武漢天喻軟件有限責任公司的PLM軟件,裝入東風懸架彈簧公司產(chǎn)品開發(fā)的基礎(chǔ)數(shù)據(jù)。學生通過該平臺,可以了解企業(yè)產(chǎn)品的開發(fā)流程,不懂的地方隨時可以向企業(yè)工程師咨詢;可以選定一個模塊,按照PLM系統(tǒng)接口規(guī)范進行設(shè)計開發(fā),然后集成到PLM系統(tǒng)中去。可以是替換原來的模塊,也可以是增加新的功能,進行集成測試檢驗程序的可靠性和效率。時間安排為4~8周為宜,由學校教師與企業(yè)工程共同指導。

2.5畢業(yè)設(shè)計

畢業(yè)設(shè)計是大學教學過程的最后一個環(huán)節(jié),是一個學生自主開發(fā)的綜合性實踐教學環(huán)節(jié)。通過畢業(yè)設(shè)計,能使學生綜合應用所學的各種理論知識和技能,進行全面、系統(tǒng)、嚴格的技術(shù)及基本能力的練習。我院畢業(yè)設(shè)計時間安排為16周,鼓勵學生把就業(yè)與畢業(yè)設(shè)計結(jié)合起來。學生在企業(yè)實習階段參與項目開發(fā),由企業(yè)導師進行項目開發(fā)的相關(guān)指導,回校在校內(nèi)教師指導下完成論文和答辯。

3軟件工程專業(yè)實踐教學的師資要求

軟件工程專業(yè)的實踐教學要求實踐教師既是實踐的指導者,又是直接的參與者。要對學生在實踐中遇到的各種問題給予解答,包括編程語法、算法邏輯、軟件體系結(jié)構(gòu)設(shè)計、用戶需求分析、團隊協(xié)作方法等;在實踐過程中更多地是站在用戶的角度對學生的成果進行驗收測試,使學生體會到在現(xiàn)實情況下怎樣的軟件才能被用戶接受,體會到用戶怎樣檢查軟件的可靠性、可用性、正確性,用戶怎樣評價軟件的優(yōu)劣。

軟件工程專業(yè)的特征要求從事軟件工程專業(yè)教學的師資隊伍是一支具有綜合素質(zhì)的隊伍,既有專業(yè)理論基礎(chǔ),又要有企業(yè)實踐背景;要充當軟件開發(fā)過程的各種角色――投資者、使用者、組織者、設(shè)計者、編碼者、測試員等。課程實驗主要由理論基礎(chǔ)扎實的教師擔任,課程設(shè)計由理論基礎(chǔ)扎實的教師和有企業(yè)實踐背景的教師共同指導,項目實訓和開發(fā)實踐主要由有企業(yè)實踐背景的教師完成。

4結(jié)語

本文介紹的軟件工程專業(yè)實踐教學體系是我校通過幾年的不斷摸索與改正后形成的。在探索過程中獲得了湖北省教育廳項目(軟件工程創(chuàng)新型人才培養(yǎng)研究)和學校的支持(2007年軟件工程特色專業(yè)建設(shè)費15萬元)。該實踐教學體系利用一些基礎(chǔ)實驗幫助學生理解和掌握專業(yè)理論知識,為今后的發(fā)展打下堅實的專業(yè)基礎(chǔ),同時通過參與各種項目,提供了發(fā)展其動手能力的環(huán)境,貼近了企業(yè)需求,提高了就業(yè)率。2009年我校軟件工程專業(yè)的一次就業(yè)率達到了90%。由課程設(shè)計、開發(fā)實踐和畢業(yè)設(shè)計構(gòu)成的創(chuàng)新訓練體系,使學生獲得了科學研究方法和軟件開發(fā)活動的工程化的經(jīng)驗。

參考文獻:

[1] 李紅梅. 面向能力培養(yǎng)的軟件工程實踐教學體系[J]. 高等工程教育研究,2009(2):84-87.

[2] 董瑋. 引入實訓體系,培養(yǎng)應用型軟件人才的探索與實踐[J]. 計算機教育,2007(23):10-19.

[3] 董瑋,邱建華,楊英鵬,等. 培養(yǎng)應用型軟件人才的實踐教學體系的研究與實踐[J]. 計算機教育,2008(10):16-18.

[4] 鄭耿忠,劉秋梅. 地方性院校軟件工程專業(yè)建設(shè)探討[J].電腦知識與技術(shù),2009,5(30):8477-8478.

[5] 鄭耿忠,劉秋梅. 軟件工程專業(yè)實踐教學體系構(gòu)建探索[J]. 電腦知識與技術(shù),2009,5(27):7690-7691.

[6] 白偉華. 軟件工程專業(yè)應用型人才培養(yǎng)模式的思考[J]. 計算機教育,2008(22):35-37.

Practice Teaching System of Software Engineering in General Institutes

FU Yong-zhi, WANG Wen-yan, SHI Lü-hua

(Department of Computer Science School of Electrical & Information Engineering Hubei University of Automotive Technology,

Shiyan 442002, China)

篇3

關(guān)鍵詞:軟件工程;應用型人才;項目案例;實踐教學

中圖分類號:G642 文獻標識碼:A

1 引言(Introduction)

軟件工程作為計算機和軟件本科專業(yè)最綜合最系統(tǒng)的一門課程,在促進學生鞏固之前學過的專業(yè)知識、掌握軟件開發(fā)過程及方法、理解軟件工程實踐等方面發(fā)揮了積極作用。但高校特別是三本院校在軟件工程課程講授時理論脫離實際,片面地強調(diào)理論學習而忽視實踐能力的培養(yǎng),理論部分過于抽象,在課程實驗中,沒有把握好課程在人才培養(yǎng)的橋梁和作用,缺乏貫穿縱向知識體系和學科的整體理解和思想,往往只是本課程章節(jié)或課程的綜合理論驗證,采用虛擬的實驗案例,甚至將其設(shè)計成為章節(jié)內(nèi)容驗證練習,而不是圍繞著軟件工程整本書的整個知識體系進行實際開發(fā)項目。導致學生學完軟件工程課程后還是不能理解軟件生命周期、開發(fā)過程及相應方法,與社會對軟件人才的需求存在差距,學生難以很快融入現(xiàn)代IT企業(yè)的運作[1]。如何培養(yǎng)起適合信息產(chǎn)業(yè)所需要的應用型、實踐型人才,已經(jīng)成為亟待解決的問題。因此要想將學生培養(yǎng)成為符合社會需要的軟件工程人才,就應當改變目前的局面,全面考慮軟件工程課程建設(shè)。

本課題研究主要針對目前軟件工程課程理論脫離實際,同時很多教師過分強調(diào)軟件工程理論知識的一面,忽視了軟件工程必須有實踐項目還具有經(jīng)驗性、參與性、發(fā)展性的特點,通過理論研究和教學實踐對軟件工程教學實踐提供實踐指導。加強軟件工程實踐教學的改革,通過理論與實踐相結(jié)合的方法培養(yǎng)社會需要的應用型軟件工程人才。解決三本院校軟件工程課程教授中理論、實驗與實際相脫離的問題。

2 針對社會需求,制定明確合理的教學計劃

(Formulate a reasonable teaching plan based on

the social needs)

教學計劃是各教學環(huán)境的整體設(shè)計方案,合理的專業(yè)的教學計劃能為教學順利實施提供指導,也是教學過程質(zhì)量的有力保障,是人才培養(yǎng)的綱領(lǐng)和實施藍圖[2],它規(guī)定了課程結(jié)構(gòu)和知識結(jié)構(gòu),明確了人才培養(yǎng)目標,構(gòu)建了專業(yè)要求的課程體系,限制了教學環(huán)節(jié)的進程及內(nèi)容。具體在制定計劃時應秉持以下幾點:

(1)樹立應用型人才培養(yǎng)理念

在培養(yǎng)軟件工程人才過程中要和一二本院校區(qū)別開來,我們應當以實際動手為主,培養(yǎng)適合企業(yè)操作崗位的技能人才。軟件工程專業(yè)應堅持“以市場為導向,以就業(yè)為目標,順應IT業(yè)發(fā)展趨勢,以校企合作為手段,突出技能培養(yǎng),走應用型開放式道路。”的辦學思路,通過吸收國內(nèi)外的優(yōu)質(zhì)資源,通過校企合作,共建實訓實習基地和技術(shù)開發(fā)應用等多種合作辦學,提高辦學活力及效率。在人才培養(yǎng)模式上突出以技術(shù)應用能力為核心的人才培養(yǎng)特點,課程設(shè)置以市場流行的軟件開發(fā)技術(shù)為主線由淺入深,技術(shù)的學習采用項目驅(qū)動、案例驅(qū)動的方式[3],不斷提高學生實踐動手能力,培養(yǎng)應用型技術(shù)人才,適應企業(yè)對人才的需求。

(2)構(gòu)建應用型培養(yǎng)系統(tǒng)工程

學生在學校對知識的儲備與社會對人才的能力需求如何契合的更好是學校應該要慎重考慮的問題。目前,軟件服務(wù)外包產(chǎn)業(yè)對應用型人才需求量較大,軟件工程專業(yè)可以和武漢軟件外包單位合作,全面實施3+1人才培養(yǎng)模式,即,三年基礎(chǔ)、專業(yè)課程學習加一年實訓。這種嵌入式教學模式將會極大地提升學生的實際應用能力,他們進入企業(yè)后適應能力更強,上手會更快。在教學過程中,軟件工程專業(yè)可以構(gòu)建工程化的實踐教學體系,以軟件項目研發(fā)到軟件項目運行的生命周期為載體,讓學生以主動的、實踐的、課程之間有機聯(lián)系的方式學習軟件工程,建立試驗―實訓―綜合設(shè)計―職業(yè)實踐的實踐教學體系,通過引進、開發(fā)真實的項目案例,讓學生實際參與項目開發(fā)全過程,切實提高學生解決實際問題的能力,培養(yǎng)他們的綜合應用素質(zhì)。

(3)引入企業(yè),接軌市場需求

基于工程化培養(yǎng)理念建立一批校企聯(lián)合實習實訓基地,實現(xiàn)教學過程與生產(chǎn)過程的對接,為應用型技術(shù)人才培養(yǎng)提供有力的保障。將一些行業(yè)內(nèi)的企業(yè)而不單純是培訓單位引入校園,合作搭建項目開發(fā)平臺,形成以研發(fā)項目促進學生實習實訓,以研發(fā)項目帶動師生科研發(fā)展的人才培養(yǎng)新途徑,聯(lián)合培養(yǎng)雙師型教師。

3 軟件工程實踐教學采用的主要方法(The main

method of the software engineering practice

teaching)

軟件工程實踐課,包括課程實驗、課程設(shè)計、項目實訓和畢業(yè)設(shè)計等實踐環(huán)節(jié)。

3.1 實例教學

在教授理論知識時,傳統(tǒng)方法過度的在講授枯燥的理論知識,學生沒有實際的工程項目的經(jīng)驗,根本無法理解軟件工程課程里的內(nèi)容,在軟件工程課程理論課上教師要通過典型的軟件項目實例來講解理論知識,將實例貫穿于教學環(huán)節(jié),模擬軟件工程項目場景,啟發(fā)學生分析問題、進行方案設(shè)計,在項目案例講解過程中抽象上升為理論知識,理論知識又反過來指導項目案例。

3.2 實驗教學

相對于計算機科學與技術(shù)專業(yè),軟件工程專業(yè)更強調(diào)實踐性和工程性能力的培養(yǎng),這都需要在實踐環(huán)節(jié)中培養(yǎng),因此實驗與實踐教學是軟件工程專業(yè)教學的重要組成部分,其實施質(zhì)量對專業(yè)教學質(zhì)量具有舉足輕重的影響。軟件工程專業(yè)可以構(gòu)建“課程實驗、課程設(shè)計、畢業(yè)設(shè)計”三級實驗體系[4],三級實驗體系粒度從細到粗,從具體到綜合。教師需要設(shè)置好實驗環(huán)節(jié)的內(nèi)容、形式,實驗課和課程設(shè)計時采用商業(yè)軟件的開發(fā)模式,以實際項目和企業(yè)正常運作時人員的分工配合來進行實驗教學,理論指導實踐,實踐強化理論,將系列的實踐課程提升到工程項目訓練,實際軟件工程項目貫穿同步理論課的知識,讓學生從需求分析、總體設(shè)計、詳細設(shè)計、編碼、測試到項目交付和管理維護等完整的軟件開發(fā)過程進行系統(tǒng)實踐學習,這樣學生在一個真實的場景中實踐,親身體驗并進行反思,只有實際操刀了,學生才能理會并掌握完整的軟件開發(fā)流程、軟件開發(fā)技術(shù)及軟件開發(fā)方法。實驗時以小組形式開展工作,四五個學生為一組,每組由組員推薦或自薦一位組長,負責協(xié)調(diào)、分工,組員在小組長的協(xié)作領(lǐng)導下完成項目的開發(fā)過程。項目驅(qū)動實驗的軟件工程實踐教學可以幫助學生建構(gòu)良好的軟件開發(fā)認知模式并培養(yǎng)一定的軟件工程素養(yǎng)[5]。在學生畢業(yè)前,開設(shè)項目實訓和畢業(yè)設(shè)計,旨在培養(yǎng)學生的綜合實踐能力,通過這樣的手段學生能比較真切地理解軟件工程理論知識并掌握軟件開發(fā)過程。通過實驗,掌握一個完整軟件開發(fā)過程,及過程中的每一個階段的任務(wù)、目標、方法、工具,并熟練使用一些CASE(計算機輔助軟件工程)工具來提升軟件開發(fā)效率,保證軟件質(zhì)量。通過集中性的課程設(shè)計、畢業(yè)設(shè)計訓練,使學生逐步培養(yǎng)編程能力、算法分析設(shè)計能力、數(shù)據(jù)庫設(shè)計能力,能夠結(jié)合專業(yè)知識實現(xiàn)用戶需求,形成產(chǎn)品意識而不是作業(yè)意識,培養(yǎng)團隊交流協(xié)作能力、積累工程經(jīng)驗、提高工程素養(yǎng)。每一個階段制定可衡量的、明確的目標,激發(fā)學生的學習興趣、提高知識的靈活運用能力、創(chuàng)新思維能力、綜合分析能力、系統(tǒng)設(shè)計能力等,為培養(yǎng)符合社會需求的人才奠定基礎(chǔ)。最后通過畢業(yè)設(shè)計綜合性鍛煉,實現(xiàn)學生就業(yè)的平滑過渡。

在每一級實驗過程中都采用“教師為主導、學生為主體”的原則,才有利于避免學生在學習上的依耐性、缺乏獨立思考問題和解決問題的能力,因此要充分發(fā)揮學生的主體作用,運用教師的專業(yè)知識和項目經(jīng)驗言傳身教地引領(lǐng)、啟發(fā)學生學習、動手實踐,不斷引入新技術(shù)、新方法引起學生好奇心,激發(fā)學生探索學習欲望。教師需要動態(tài)地了解學生的接受能力,有針對性地因材施教、指導學生學習,讓學生擁有自主學習、持續(xù)學習的能力,意識到自己學得會,也很有利于調(diào)動學生學習的主動性,只有這樣,才能達到較好的實驗課教學效果。在每一次實驗后要及時地對本次實驗加以分析和總結(jié),通過本次實驗遇到了什么問題?解決的方法是什么?實現(xiàn)了什么功能?還有哪些有待解決的問題?都要加以總結(jié),并以報告的形式記錄下來,有利于日后開展實驗課程的教學。

3.3 社會實踐教學

一個軟件企業(yè)的正常運行需要多方面的人員協(xié)作與配合,如財務(wù)人員、開發(fā)人員、配置管理員、質(zhì)量保證員、數(shù)據(jù)庫管理員、網(wǎng)絡(luò)維護工程師、系統(tǒng)架構(gòu)師、軟件測試人員、管理人員等,在學校里學生難以體會到一個軟件開發(fā)過程中除編碼測試人員之外的其他崗位的職責和特性,學生只有真正進入企業(yè)才能體會并有機會實踐這些崗位。社會實踐教學可以通過校企合作的形式,也可以鼓勵學生自己去找實習單位,學生可以根據(jù)自己的興趣和個人發(fā)展方向來自由選擇角色,完成不同的任務(wù),教師和公司導師給予引導。社會實踐教學是一次綜合性的實踐活動,是學生走向社會的開始,通過社會實踐教學活動,使學生能夠逐步認識綜合利用所學的專業(yè)知識,培養(yǎng)軟件開發(fā)的技能,深刻體會企業(yè)軟件開發(fā)與學習過程中編寫軟件的不同、軟件工程各階段角色任務(wù)管理和開發(fā)知識,提高自身的創(chuàng)新意識與創(chuàng)新能力,促進團隊之間的溝通協(xié)作,為早日踏上工作崗位打下堅實的基礎(chǔ)。

學生進行社會實踐教學活動時,嚴格按照企業(yè)的規(guī)定,執(zhí)行、考勤、日志、總結(jié)等實際工作環(huán)節(jié),廣泛使用協(xié)同開發(fā)平臺,使學生規(guī)范化、有序進行社會實踐活動。

4 結(jié)論(Conclusion)

通過對幾年軟件工程課程教學的思考和總結(jié),以及調(diào)研一些其他院校軟件工程課程,提出了三本院校中軟件工程實踐教學存在的問題以及軟件工程實踐教學改革的必要性,從課程教學計劃的制訂、實例教學、實驗教學、社會實踐教學等幾個方面給出了切實可行的建議,同時這些建議也可為其他課程提供有意義的借鑒。

參考文獻(References)

[1] 熊偉,洪玫.大學本科軟件工程專業(yè)建設(shè)的探索與實踐[J].理

工高教研究,2010,(2):59-61.

[2] 晏立.從社會需求的角度探索軟件工程教育[J].教育與教學研

究,2008,(22):141-145.

[3] Roger S.Pressman.軟件工程:實踐者的研究方法[M].北京:機

械工業(yè)出版社,2011,(8):32-68.

[4] 熊凡,李偉波.項目驅(qū)動的軟件工程實驗教學探討[J].中國電

力教育,2012,(2):77-79.

[5] 丁潔.軟件工程的教學改革與實踐[J].科學與技術(shù)信息,2009,

(9):555.

作者簡介:

篇4

軟件工程是一門建立在計算機科學和工程學基礎(chǔ)之上,同時涉及數(shù)學、管理學、經(jīng)濟學和系統(tǒng)工程等學科理論與方法的學科及專業(yè)。軟件工程教育兼具科學教育屬性與工程教育屬性,前者培養(yǎng)的是軟件工程基礎(chǔ)研究人才,后者培養(yǎng)的是軟件工程技術(shù)、應用、管理和服務(wù)人才。我校作為一所普通本科院校,結(jié)合區(qū)域經(jīng)濟發(fā)展實際,將軟件工程專業(yè)的培養(yǎng)目標定位為培養(yǎng)應用型、工程型軟件人才。即能夠綜合應用計算機科學、數(shù)學及管理科學等學科知識,以工程化的原則與方法為指導,勝任現(xiàn)代軟件工程環(huán)境下高質(zhì)量軟件的開發(fā)、測試和維護等工作的軟件工程技術(shù)、應用、管理和服務(wù)人才。該培養(yǎng)目標可進一步解讀為以下三點:扎實的專業(yè)基礎(chǔ)、良好的工程學意識、較強的動手實踐能力。

2CDIO模式下實踐教學體系的構(gòu)建

軟件工程是一門實踐性很強的專業(yè),應用型、工程型軟件人才的培養(yǎng)定位更加強調(diào)學生動手實踐能力的培養(yǎng)和工程方法學的訓練,因此,實踐教學的體系建設(shè)和教學效果對學生的培養(yǎng)質(zhì)量起著至關(guān)重要的作用。借鑒和吸收CDIO工程教育理念和標準,我們從教學內(nèi)容和教學方法兩方面對軟件工程專業(yè)實踐教學體系進行了重新構(gòu)建和實踐。課程實驗、課程設(shè)計、綜合實訓、畢業(yè)設(shè)計四個層次循序漸進、由淺入深、環(huán)環(huán)相扣;在教學方法的構(gòu)建上,我們從工程教育的角度出發(fā),形成了“案例牽引、項目驅(qū)動、團隊合作、引導互動”的教學模式。

2.1教學內(nèi)容的構(gòu)建

在教學內(nèi)容的構(gòu)建上,我們按照“以CDIO培養(yǎng)大綱為指南、以項目設(shè)計為導向、以工程能力培養(yǎng)為目標”的原則,將軟件工程專業(yè)的實踐教學體系分為以下四層次。2.1.1課程實驗課程實驗是單門專業(yè)課程教學中的實踐環(huán)節(jié),也是整個實踐教學體系的基礎(chǔ),對學生基礎(chǔ)專業(yè)技能的培養(yǎng)具有重要作用。為了加強實踐教學,我們在絕大部分專業(yè)課和專業(yè)基礎(chǔ)課中都設(shè)置了課程實驗,根據(jù)教學目標的不同,課程實驗設(shè)計為驗證性、設(shè)計性和綜合性等不同的層次。對于實踐性很強的專業(yè)課程,如程序設(shè)計基礎(chǔ)、面向?qū)ο蟪绦蛟O(shè)計等,采用完全實驗教學的方式,通過一個完整的項目將課程知識結(jié)構(gòu)串聯(lián)起來,并通過“分而治之”的形式來學習各個知識點,將教師講解與演示、學生實地操作有機融合起來,最后完成整個項目,以培養(yǎng)學生的動手實踐能力和專業(yè)興趣;對于理論性較強的專業(yè)課程,如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)等,采用理論講解與上機實踐并舉的方式,加強學生對專業(yè)基礎(chǔ)理論知識的理解與應用。2.1.2課程設(shè)計課程設(shè)計是實踐教學體系的第二層次,是在課程實驗的基礎(chǔ)上,選擇一些實踐性強且具有代表性的課程作為單獨課程開設(shè)綜合性課程設(shè)計。例如,Java程序設(shè)計課程設(shè)計、軟件工程課程設(shè)計等。與課程實驗相比,課程設(shè)計具有綜合性和實用性的特點,學生在教師的指導下綜合運用相關(guān)課程的知識和技術(shù)完成一個完整的設(shè)計或?qū)崿F(xiàn)。通過課程設(shè)計的訓練,培養(yǎng)學生運用專業(yè)知識分析問題和解決問題的能力,使學生的專業(yè)技能得到進一步的提升和拓展。2.1.3綜合實訓綜合實訓是以課程設(shè)計為基礎(chǔ),綜合運用多門相關(guān)課程知識完成一個工程項目的實戰(zhàn)訓練。綜合實訓以項目為載體構(gòu)建知識結(jié)構(gòu),將學科知識、專業(yè)技能與工程實踐有效結(jié)合,體現(xiàn)軟件工程領(lǐng)域中的工程學和方法學的實施,實施技術(shù)與管理能力訓練和職業(yè)綜合素質(zhì)綜合的培養(yǎng)[4]。根據(jù)方向不同,我們在軟件工程專業(yè)開設(shè)了兩門綜合實訓課程:(1)軟件開發(fā)綜合實訓。以軟件生命周期為主線,綜合運用程序設(shè)計、數(shù)據(jù)庫應用、軟件工程、軟件項目管理等學科知識,嚴格按照軟件開發(fā)的流程與規(guī)范,完成一個軟件項目的開發(fā),最后提交軟件產(chǎn)品和相關(guān)技術(shù)文檔。(2)軟件測試綜合實訓。要求學生以軟件開發(fā)綜合實訓所完成的軟件產(chǎn)品為被測對象,綜合運行軟件測試與質(zhì)量保證、軟件測試流程與方法、測試框架與自動化測試等學科知識,使用軟件測試的方法與技術(shù),設(shè)計測試用例和測試腳本,完成被測軟件的功能測試與性能測試,生成測試報告,并對測試結(jié)果進行分析。2.1.4畢業(yè)設(shè)計畢業(yè)設(shè)計是實現(xiàn)人才培養(yǎng)目標的重要手段,是實踐教學體系中最后一個綜合性、創(chuàng)造性的實踐環(huán)節(jié);是對學生基礎(chǔ)理論、專業(yè)知識與實踐成果的全面總結(jié),是學生綜合素質(zhì)與工程實踐能力的全面檢驗[5]。為了提高畢業(yè)設(shè)計的質(zhì)量,我們從以下三方面層層把關(guān)。(1)在課題選題上,強調(diào)選題的可行性和實用性,忌空忌大,選題最好能與指導教師的科研方向或?qū)W生的實習工作相關(guān)聯(lián);(2)在過程控制上,實行師生定期交流與匯報制度,確保畢業(yè)設(shè)計按計劃保質(zhì)保量完成;(3)在畢業(yè)設(shè)計報告及相關(guān)材料的撰寫上,從規(guī)范性和科學性兩方面嚴格要求,確保質(zhì)量。

2.2教學方法的構(gòu)建

2.2.1案例牽引案例教學是實踐教學中的常用手段,具有直觀性高、互動性強的特點。按照CDIO大綱能力培養(yǎng)的層次要求,結(jié)合各實踐課程的教學目標,我們在實踐教學中精心規(guī)劃和設(shè)置了不同層次、不同復雜度的教學案例,以案例實現(xiàn)過程為驅(qū)動來安排教學內(nèi)容和方法。在教學過程中,以一個具體的案例為線索,把教學內(nèi)容巧妙地融合在案例之中,學生以完成案例任務(wù)為目標,在老師的指引下對目標問題進行分析與分解,并通過動手實踐解決問題,真正做到“做中學”和“學中做”。在完成任務(wù)的過程中,不僅使學生的動手實踐能力得以提高,也培養(yǎng)了學生的創(chuàng)新意識、創(chuàng)新能力以及分析問題、解決問題的能力。2.2.2項目驅(qū)動工程實踐能力是專業(yè)技能的進一步升華和提高,是從整體上對工程項目的一種實做能力,是工程類畢業(yè)生必備的核心素質(zhì)。根據(jù)CDIO“做中學”和“基于項目的教育和學習”的思想,我們在實踐教學中廣泛采用項目驅(qū)動的教學模式。強調(diào)以一個產(chǎn)品或系統(tǒng)從構(gòu)思、設(shè)計、實現(xiàn)到運作的完整的構(gòu)建過程來培養(yǎng)學生的工程實踐能力。以軟件開發(fā)綜合實訓課程為例,在課程中引入“項目驅(qū)動”的教學理念,以軟件生命周期為主線,以項目為載體、任務(wù)為驅(qū)動開展實踐教學。通過一個軟件產(chǎn)品從項目啟動到需求分析、設(shè)計、實現(xiàn)、測試、運行維護的整個生產(chǎn)過程的實戰(zhàn),培養(yǎng)學生的工程能力和綜合素質(zhì)。2.2.3分組教學團隊能力是CDIO大綱要求工程畢業(yè)生必備的一種能力。在實際教學過程中,我們模擬企業(yè)的真實環(huán)境,將所有學生分為若干項目小組,每組由一名組長和若干名組員構(gòu)成。根據(jù)任務(wù)分工不同,每名學生都被賦予一定的角色,組員在組長的指揮協(xié)調(diào)下通力合作,共同完成實驗項目。實踐表明,分組教學模式能較好地激發(fā)學生的學習熱情,組員之間分工協(xié)作、互學互助,學生的溝通能力、協(xié)作精神和團隊意識大為提升。2.2.4革新考核方式考核是對學生學習成果的認定和評價,良好的考核機制能對學生的學習過程和學習動機產(chǎn)生正確的指引作用,促進教學質(zhì)量的提高。在實踐課程的考核上,以能力培養(yǎng)為導向,采取多元的考核方式。引導學生在平時項目實訓過程中加強專業(yè)技能的訓練、工程能力的培養(yǎng)以及綜合素質(zhì)的提高。(1)對基礎(chǔ)性的課程實驗,重點考核學生專業(yè)知識與技能的掌握情況,采取平時實驗成績與期末上機考試成績相結(jié)合的方式。(2)對課程設(shè)計和綜合實訓類課程,重點考核學生的工程實踐能力和團隊協(xié)作能力。采取以作品演示、項目答辯為主的考核方式,同時規(guī)范化的文檔資料也是重要的考評指標。(3)對于畢業(yè)設(shè)計,重點考核學生的創(chuàng)新能力。科研能力以及分析解決問題的能力,考核方式同綜合實訓??傊?,以能力培養(yǎng)為導向,注重能力考評。2.2.5校企合作校企合作是培養(yǎng)學生的綜合素質(zhì)和實踐能力的重要途徑。為了增強人才培養(yǎng)的針對性和畢業(yè)生與工作崗位的無縫對接,我們同中創(chuàng)、中遠等知名軟件公司開展校企合作聯(lián)合辦學。充分利用學校和社會兩種教育環(huán)境和教育資源,聯(lián)合構(gòu)建工程型實踐教學隊伍與教學平臺。一方面,學校聘請企業(yè)一線的工程師作為兼職教師來校授課,不僅充實了實踐教學隊伍,更帶來了企業(yè)的最新技術(shù)和行業(yè)資訊;另一方面,選派優(yōu)秀教師到企業(yè)學習鍛煉,參與企業(yè)項目,提升師資隊伍的水平。此外,通過在企業(yè)建立校外實訓、實習基地,使學生盡早感受企業(yè)文化和接觸到真實的企業(yè)項目,也為學生就業(yè)積累了豐富的工程實踐經(jīng)驗。

3結(jié)束語

篇5

關(guān)鍵詞:網(wǎng)絡(luò)教學;軟件工程;實驗教學

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2013)09-2194-03

1 概述

軟件工程是研究計算機軟件開發(fā)與軟件管理的工程學科,是一門理論性和實踐性都很強的綜合性課程。軟件工程本身涉及到的知識內(nèi)容很廣,是將面向?qū)ο蠹夹g(shù)、程序開發(fā)方法和數(shù)據(jù)庫原理等課程綜合的過程。通過軟件工程的學習,目的是培養(yǎng)學生獨立分析和解決問題的能力,增強學生實踐和動手能力,并熟練地掌握計算機軟件的各種開發(fā)工具。

目前的軟件工程課程,比較注重課堂教學,實驗教學學時少,任務(wù)重,包含的內(nèi)容多,如果學生之前沒有花時間預習和準備實驗,沒有對整個實驗過程作系統(tǒng)規(guī)劃,會導致上實驗課時無從下手,影響學生的學習積極性和學習效果,因此科學地規(guī)劃軟件工程實驗課程并對實驗課程進行教學改革是非常有必要的。該文提出了采用網(wǎng)絡(luò)教學平臺作為軟件工程實驗課程的輔助手段,對軟件工程實踐課程的教學改革進行了探索。利用網(wǎng)絡(luò)學習的方法,能夠在更大程度上調(diào)動學生的學習主動性和積極性,增強學習效果,更好地實現(xiàn)教學目標

2 實驗課程網(wǎng)站建設(shè)

近年來隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)教學模式越來越顯示出其優(yōu)越性。教學網(wǎng)站具有教學資源豐富、學習自由的特點,網(wǎng)絡(luò)教學的模式也有利于學生自主學習能力和創(chuàng)新精神的培養(yǎng)。建立軟件工程實驗課程網(wǎng)站的主要目的,是讓學生對所要進行的軟件工程實驗有整體的認識和了解,明確實驗任務(wù)、實驗要求和實驗方法,對整個實驗過程有合理的規(guī)劃。根據(jù)軟件工程開發(fā)的整個過程和技術(shù)要求,設(shè)置實驗課程網(wǎng)站,主要包括以下幾個模塊:

2.1 課程資源

課程資源是涵蓋理論課和實驗課的各種相關(guān)資源信息,主要包括課程介紹、教學大綱、實驗大綱以及課程相關(guān)資料等。這個模塊為學生課下自主學習提供了非常有針對性的資源, 對課堂教學是一個很好的補充。

2.1.1 理論教學資源

課程介紹:是對課程的主要內(nèi)容、課程的特點、課程學習的目的和任務(wù)等多方面作一個總括性的簡介方便學生對課程有一個總體的把握與了解。

教學大綱:主要包括課程教學的內(nèi)容與要求,對每章節(jié)的知識點、重點和難點進行說明, 闡述具體的教學安排和課時分配, 便于學生按照大綱的指導進行學習。

教學日歷:用來描述課程的進度安排。學生可以通過查看教學日歷, 事先預習教學內(nèi)容,使得課堂學習更有目的性和針對性,提高了教學效率。

授課教案和課件:這是學生自主學習最重要的部分,包括各章節(jié)的文字教案和多媒體教學課件。如果學生課堂上沒有完全理解授課內(nèi)容的,可以帶著問題在課下繼續(xù)進行自主學習,能調(diào)動學生的自主學習的積極性,提高教學效果。

預備知識:列出學生已經(jīng)學習過的與軟件工程設(shè)計有關(guān)的課程目錄,如程序語言、數(shù)據(jù)庫、操作系統(tǒng)等,引導學生復習一些在軟件工程中需要涉及到的相關(guān)知識。

2.1.2 實驗教學資源

實驗大綱:根據(jù)課程實驗的要求組織實驗項目,編寫實驗大綱,主要包括各個實驗的實驗目的、實驗原理、實驗內(nèi)容和實驗環(huán)境等。注意實驗項目內(nèi)容應從簡單到復雜對學生進行引導, 給學生留下充足的學習思考空間,引導學生自主學習的方式和解決問題的方法,

課程設(shè)計要求:主要包括分組情況、任務(wù)分配、任務(wù)書的規(guī)范說明、提交方式、打印格式和成績核定方法。

此外,還可以給出實驗計劃表和課程設(shè)計計劃表等實驗詳細信息,使學生能合理規(guī)劃好整個實驗環(huán)節(jié)所要完成的任務(wù)。

2.2 項目任務(wù)

該模塊主要包括項目實例,方便學生學習和了解;建立項目題庫,學生可以選擇項目,完成實驗任務(wù)。

2.2.1 項目實例

教師根據(jù)學生的知識結(jié)構(gòu)和實際情況,虛擬設(shè)計一兩個小型系統(tǒng),作為項目實例,如停車場管理系統(tǒng)、借還書管理系統(tǒng)等。貫穿軟件生命周期整個過程,從問題定義、可行性分析、需求分析、總體設(shè)計、詳細設(shè)計到調(diào)試分析和軟件測試,給出項目的全過程設(shè)計。

學生通過實例學習,對軟件工程開發(fā)項目有全面的認識和了解,知道軟件生命周期的各個過程應該做些什么,如何進行可行性研究,需求分析的任務(wù)是什么,采用什么分析工具,怎樣能全面周到的做好總體設(shè)計規(guī)劃,詳細設(shè)計階段的設(shè)計說明書的作用是什么,系統(tǒng)模塊如何劃分,程序?qū)崿F(xiàn)的方法有哪些,怎么設(shè)計軟件測試方案以及軟件維護說明書。

2.2.2 項目題庫

教師可為學生準備一些軟件項目, 如停車場管理系統(tǒng),在線考試系統(tǒng),圖書管理系統(tǒng),學生信息系統(tǒng),銀行卡管理系統(tǒng),教材定購系統(tǒng),工資管理系統(tǒng),設(shè)備管理系統(tǒng)等,建立項目題庫,每個項目配備相應的項目任務(wù)書,以便學生選擇項目,下載相關(guān)的項目任務(wù)書,完成項目計劃。

項目題庫中的項目,要不斷更新。項目的來源可以根據(jù)企業(yè)的需求、也可以是教師自己的科研項目,要對各個項目進行共同討論,決定項目的可行性,并根據(jù)教學要求和課程特點,對實際項目進行剪切或劃分成子項目,使其具有可操作性和實踐性,便于學生操作和實訓。

2.3 軟件工具

該模塊是配置相應的軟件工程實驗軟件,主要提供建模工具和編程軟件的下載,便于學生完成項目的分析過程,實現(xiàn)系統(tǒng)功能。

2.3.1 建模工具

對幾種UML統(tǒng)一建模工具進行簡單介紹,并提供軟件下載,安裝方法和使用教程。學生可以采用不同的分析工具,建立系統(tǒng)的分析模型,并做好需求分析和系統(tǒng)設(shè)計。

主要的建模工具有Microsoft Office Visio、Rational Rose和PowerDesigner三種。Microsoft Office Visio中引進了軟件分析設(shè)計功能到代碼生成的全部功能,可以更輕松地將流程、系統(tǒng)和復雜信息可視化、可以創(chuàng)建多種類的圖表。Rational Rose主要是對開發(fā)過程中的各種語義、模塊、對象以及流程、狀態(tài)等進行比較好的描述,能從各個方面和角度來分析和設(shè)計,對系統(tǒng)的代碼框架生成有很好的支持。PowerDesigner是一種數(shù)據(jù)庫建模工具,允許使用一種結(jié)構(gòu)化的方法有效地創(chuàng)建數(shù)據(jù)庫或數(shù)據(jù)倉庫,它還提供了直觀的符號表示,使數(shù)據(jù)庫的創(chuàng)建更加容易,并使項目組內(nèi)的交流和通訊標準化。

2.3.2 編程工具

給出幾種軟件開發(fā)工具,如結(jié)構(gòu)化編程語言或面向?qū)ο蟮木幊誊浖–、C++、JAVA、DELPHI),以及SQL、Powerbuilder等開發(fā)工具,并提供軟件下載和安裝方法,供學生選擇編程軟件,編寫程序,并測試軟件。

2.4 文檔資料

該模塊主要列出整個項目所要提交的各類文檔資料。此外,還應該提供統(tǒng)一格式的實驗報告和課程設(shè)計任務(wù)書范本,便于學生下載,并按要求填寫內(nèi)容。

項目文檔:主要包括有可行性分析報告,需求規(guī)格說明書,項目計劃書,總體設(shè)計報告,詳細設(shè)計說明書,軟件系統(tǒng)的程序代碼,軟件測試報告以及用戶使用手冊等。

規(guī)格說明:可以給出一些規(guī)格說明的樣例和標準,學生可以使用非形式化、半形式化和形式化等方法描述需求分析規(guī)格說明,詳細設(shè)計規(guī)格說明,并給出系統(tǒng)各部分的設(shè)計規(guī)格說明書。鼓勵學生學習和使用形式化的方法描述規(guī)格說明,例如:有窮狀態(tài)機、Petri網(wǎng)以及Z語言等,這樣可以用數(shù)學方法研究和驗證規(guī)格說明是否正確,并消除二義性。

2.5成績評價

該模塊主要給出實驗教學各階段的成績考核方式及評定標準。課程實驗中,上機操作占課程實驗成績的50%(含平時上機操作和考勤),課程實驗需要提交的文檔和報告占50%。課程設(shè)計因為是分小組進行,成績評定可以分成個人成績和小組成績兩部分,個人成績主要根據(jù)個人在小組中所分工作多少和完成工作情況來確定,小組成績則由各個小組階段成績和系統(tǒng)最終驗收的情況來確定(如系統(tǒng)是否達到需求規(guī)格說明中的功能性、提交的文檔是否全面和規(guī)范, 源程序編寫是否規(guī)范、可維護性等)。

每個項目組都應該進行匯報,展示自己的成果,由教師和其他同學組成評審團, 對每個項目組的匯報進行評審和打分, 提出修改意見和建議。匯報結(jié)束后, ,教師要進行總結(jié)點評, 并寫出評語。既要評價項目成果,也評價學生的表現(xiàn),幫助學生整理學習內(nèi)容, 鼓勵學生的積極性。

3 網(wǎng)絡(luò)輔助教學

建立軟件工程實驗課程網(wǎng)絡(luò)教學平臺后,如何讓學生充分利用平臺資源進行網(wǎng)絡(luò)學習,也是必不可少的關(guān)鍵部分。整個教學實踐過程可在教師引導下, 學生自主管理, 分工協(xié)作, 這樣既鍛煉了學生參與項目管理的能力, 又訓練了學生之間的團隊合作精神。有了網(wǎng)絡(luò)學習平臺,在理論課程學習的同時,學生可以分三個階段完成軟件工程實驗課程:

1)網(wǎng)絡(luò)學習:該階段主要學習課程資源,同時,學生進行選題,分小組和分派任務(wù),進行項目的可行性研究和項目的需求分析。

2)課程實驗:該階段主要是讓學生學習建模工具,通過使用建模工具,完成項目的分析過程,并進行系統(tǒng)的詳細設(shè)計,劃分系統(tǒng)的各組成模塊,給出系統(tǒng)的各部分設(shè)計規(guī)格說明書。

3)課程設(shè)計:該階段主要是根據(jù)項目的需求規(guī)格說明書和系統(tǒng)設(shè)計文檔,采用合適的程序設(shè)計軟件完成對整個系統(tǒng)的代碼編寫,遵循代碼的開發(fā)規(guī)范。設(shè)計測試用例,對系統(tǒng)進行測試,并提交相關(guān)文檔。

成績評價部分由教師來完成,每個階段都要進行階段性評價,并根據(jù)項目的最終完成情況給出整體評價。要著力培養(yǎng)學生軟件工程開發(fā)工具的應用能力, 要求學生按規(guī)定提交項目要求的各種文檔,形成較為科學的綜合成績評定方法。

4 結(jié)束語

軟件工程實驗課程的教學改革是軟件工程課程改革的一個重要部分,教學方法和實驗環(huán)境是軟件工程實驗課程改革得以實現(xiàn)的重要保障。利用網(wǎng)絡(luò)教學平臺輔助軟件工程的實驗教學, 可以實現(xiàn)資源共享,使得學生對整個實驗教學有全面的認識和了解,有利于調(diào)動學生的學習興趣和主動性,提升學生分析問題能力和實際解決問題的能力,對增強學生的項目管理能力和開發(fā)能力,起到很好的作用。

參考文獻:

[1] 張海藩.軟件工程(第3版)[M].北京:人民郵電出版社,2010.

篇6

關(guān)鍵詞 軟件工程 實踐教學 導學制 虛擬

中圖分類號:G642.4文獻標識碼:A

The Application of the Software Engineering

Practicality Teaching on Virtual Enterprise

WU Zhinan

(Yichun College, Yichun, Jiangxi 336000)

AbstractThe traditional practicality teaching of software engineering has such problems as not having coherent cases, not having real environment and not having students master all kinds of knowledge and skills. Based on virtual software enterprise, the guided learning system is meant to accomplish the teaching task by means of establishing a class-teaching organization in accordance with the real software engineering enterprise under the supervision of a guider. In this organizaiton, students are given the identity of a software engineer., the all-round experience of solving problems in real situation, and thereby they can handle the task and master the knowledge in the field of software engineering.

Key wordssoftware engineering;practicality teaching; guided learning system; vitual

0 引言

“軟件工程”是一門指導學生高效高質(zhì)量完成軟件工程任務(wù)的課程,是對軟件開發(fā)活動教訓及經(jīng)驗的積累和總結(jié)。該課程對對學生未來的軟件工程實踐具有重要的指導作用。然而在實際的教學實踐中,學生往往對已總結(jié)的理論缺乏具體而貼切的理解,而且認為課程枯燥無味,或者只對里面涉及到的工具和技術(shù)感興趣,忽視了軟件項目開發(fā)中各種輔助管理過程的重要作用。這種重技術(shù)輕管理的意識在學生中非常普遍,甚至在中國很多小型軟件公司中也很常見。究其原因,是在軟件工程學習中對其中的管理技能和工程技術(shù)技能缺乏全面的掌握,這也是軟件工程教學常見的教學問題。為提高軟件工程教學質(zhì)量,將實際軟件企業(yè)制度引進教學實驗課堂,是一種較好的解決辦法。

1 基于模擬軟件企業(yè)的導學制基本思想

基于模擬軟件企業(yè)的導學制的思想,是指在學校軟件工程實驗教學中,把軟件企業(yè)的運行管理機制引入到課堂實

驗項目中,讓學生扮演軟件企業(yè)項目開發(fā)的各種角色,結(jié)合軟件工程課程學習,完成軟件工程實驗教學。具體執(zhí)行的流程如圖1:

具體來說,在整個課程的學習過程中,教師扮演的則是“導學員”的角色。在課程的初級階段教師即借鑒企業(yè)管理制度,建立模擬軟件企業(yè)的組織機構(gòu)。根據(jù)每個階段不同的實驗任務(wù)――如需求分析階段的需求分析任務(wù),軟件設(shè)計階段的概要設(shè)計和詳細設(shè)計任務(wù)等――確定該階段的虛擬企業(yè)角色,并分配到每個學生,讓學生來親自來組織、實施并相互配合完成任務(wù)。但在組織實施前,老師應該詳細地描繪實施藍圖,同時根據(jù)對工程活動的理解,查閱相關(guān)資料并制定該階段活動計劃,分派任務(wù)給各角色人員。整個實施過程在教師的指導下進行,實施完成后根據(jù)軟件企業(yè)進行階段評審,最后由導師根據(jù)其質(zhì)量進行評價,完成相關(guān)實驗任務(wù)。該方法核心是將企業(yè)運行的一套流程盡可能真實地引進課堂,其目的是通過這套制度讓學生獲得多方面體驗,包括協(xié)作、溝通、計劃等管理技術(shù),以及在具體實施軟件工程活動時的學習開發(fā)分析技能,并最終達到全面理解軟件工程理念的目的。

2 教學實施的關(guān)鍵問題

基于模擬軟件企業(yè)導學制是一種操作性很強的實踐教學方法,教學需教師嚴密計劃,精心組織,敏銳觀察。該教學方法實施的關(guān)鍵環(huán)節(jié),現(xiàn)以問題的形式闡述如下:

2.1 如何建立一個模擬軟件企業(yè)組織

一個軟件企業(yè)的正常運行需要多方面人員的合作和配合,如市場人員、開發(fā)人員、測試人員和行政管理人員。但作為一個課堂引入的虛擬企業(yè)組織,其主要功能是讓學生在課程學習時有個真實的情境,通過虛擬企業(yè)的運行,學習體會軟件工程知識。因此,引入軟件工程課程的虛擬企業(yè)只需配備主要職能部門,學生就能進行仿真運行。這些主要的職能部門包括項目經(jīng)理、軟件需求分析調(diào)研員、軟件的系統(tǒng)分析設(shè)計人員,軟件程序員和測試人員等主要開發(fā)測試人員和管理人員。同時將學生分為3-5人一組,以便每個學生充分學習軟件工程各階段角色任務(wù)管理和開發(fā)知識。同時,每一個階段偏重的任務(wù)不同,學生的角色也應隨之有所改變。這樣的組織雖簡易,但卻有很高的可行性。同時也是有利于學生對企業(yè)運作環(huán)境有較為真實的體驗,學習多方面的知識,達到完成軟件工程實踐知識的目的。

2.2 如何管理和運行

在真實的企業(yè)中,一個項目接下來,相應的組織便成立。那在軟件工程實踐教學中,如何使項目組有秩序地運行呢?所以,教師在實驗之處就應選擇好一個軟件教學項目,教學時應做好充足的準備,制定好教學計劃和項目實施計劃,確定每個階段應配備的人員。在確定好項目的角色后,教師還應進行預先指導,以引導其完成本堂課涉及的項目活動計劃和任務(wù)。隨著教學過程的推進,教師也需推動虛擬企業(yè)項目開發(fā)的進展,每個項目的結(jié)束以軟件項目的里程碑為主要標志。在進行下一個項目階段時,再按照項目計劃來指導分配人員扮演其他角色。

2.3 如何運用該組織結(jié)合軟件工程教學內(nèi)容進行實驗教學

軟件工程教學中,教師應以一個完整軟件項目進行實驗教學。結(jié)合軟件工程的階段性知識講解,逐步運用該虛擬軟件組織進行教學。

在運用該組織時,教師在事先做好教學計劃、明確各階段任務(wù)的同時,還應注意對學生的引導和扶持。比如在可行性研究階段,學生由于缺乏對軟件開發(fā)過程的了解,通常難以制作項目開發(fā)計劃。此時老師可以講解一個以往的軟件開發(fā)計劃,使學生能夠預估,有些過程還需老師先做一些框架,然后才能放手讓學生做。在理論課教學時,也可以先以實例讓學生理解。在此過程中,人員的組織和分工可由導學員(老師和高年級學生)來指導,以減少過程執(zhí)行的困難,幫助學生順利完成。一般來說,在開始學習新知識時,學生總是很不熟練,對過程一知半解,沒有經(jīng)驗。所以在初始階段,即以掌握軟件工程各階段知識為主要任務(wù)的階段,老師主要起指導作用,引導學生探索完成任務(wù)。第二階段是課程設(shè)計階段,通過前段時間學習,學生已對主要知識和過程有所了解,但缺乏綜合銜接的能力。這時給學生布置一個項目任務(wù),放手給學生去組織實施,老師僅作為一個指導者,起監(jiān)督和評價者的作用。

2.4 如何建立有效的評價機制

學生實驗評價應仿照軟件開發(fā)企業(yè)來進行。老師模擬真實企業(yè)給各個人員一定工資標準,以各階段的實驗成果(比如該階段的項目計劃書,需求文檔等)作為評價依據(jù),在導學員的指導下進行綜合評價,參照基本工資,根據(jù)績效,給定虛擬工資(根據(jù)該虛擬工資可以使學生了解工程經(jīng)濟管理),以占工資的百分比作為該階段的評價分數(shù),從而達到評價學習目的。

3 基于教學方法的基本原則

該教學方法實踐性強,過程也較復雜,在實施教學時應把握一些原則,具體如下:

(1)以學生為主體,以老師為主導。在實驗教學過程中,學生是學習的主體,教師起指導作用。教師通過給出任務(wù),適時指導,促進學生主動完成項目活動的組織任務(wù)和技術(shù)實施任務(wù),充分發(fā)揮學生的主觀能動性,大膽探索,多方求知,全方面學習,激發(fā)其個人潛能。

(2)先導后做,由易到難。由于對新知識不理解,學生在一開始時往往茫然不知所措。此時老師要做到親自示范,講解實例,對于給定的實驗任務(wù),要手把手引導,甚至老師做一部分,然后讓學生做另外一部分,這樣讓整個過程才能可行和可控。

從大的方面來說,軟件工程實驗的各個實施階段,老師應逐漸引導,使之可行;在課程設(shè)計階段則讓學生放手獨立去做,獨立完成,自主決定各種計劃和階段任務(wù)。

(3)計劃要周密,簡易可行。從實施的教學經(jīng)驗可以看出,要順暢實施本方法,需精心準備,全面計劃,這是本實驗順利有序?qū)嵤┑闹匾U?。從一開始老師不但要制定教學計劃,還要制定項目實施計劃,并將其分派到各個教學實踐階段中。在每個階段的項目實施中,也要指導學生完生該項目階段的實施計劃。這樣才能使過程可控可管理。從教學實踐反饋來看,周密計劃的制定對教學成敗具有決定性的意義。

4 實施效果和總結(jié)

基于模擬軟件企業(yè)的導學制在軟件工程實驗教學以來,相比較傳統(tǒng)的軟件教學方法來看,學生對軟件工程的管理能力和對整個軟件工程整個過程理解的把握能力有很大提高,實踐能力的提高也促進了對軟件工程和其相關(guān)課程知識的理解。從畢業(yè)學生反饋來看,該方法能盡可能縮小學校課堂與企業(yè)開發(fā)實踐的差距,提高了學生的綜合知識運用能力,一改以前軟件工程知識教學中學生只獲得片面不連續(xù)的知識理解情況??傊?,基于模擬軟件企業(yè)的導學制在軟件工程實驗教學中已取得不錯的教學效果,其教學思想和措施可為其他的課程提供有意義的借鑒。

參考文獻

[1]李偉波.項目驅(qū)動式的“軟件工程”教學模式研究與實踐[J].北京:中國電力教育,2009(6).

[2]王延青,李海峰,林森,朱素霞,倪澤輝.軟件工程系列課程設(shè)計的分組及選題策略框架[J].北京:計算機教育,2008(8).

[3]宋三華,王娟娟.軟件工程實驗教學模式探究[J].濟南:中國管理信息化,2010(9).

[4]彭博.軟件工程課程行動導向式教學法的研究[J].昆明:大家,2009(11).

篇7

(一)傳統(tǒng)的計算機軟件類學科教學模式特點

計算機軟件類專業(yè)的教學目標是要求學生掌握專業(yè)相關(guān)的理論基礎(chǔ),熟悉軟件開發(fā)工具的各項功能,熟練運用這些工具編寫應用程序以解決實際問題,達到培養(yǎng)高層次、實用型、復合型、具有國際競爭力的人才要求。傳統(tǒng)的教學模式和理念,是以知識的灌輸為宗旨,重知識傳授,輕實踐訓練,因此造成的結(jié)果就是學生的實踐動手能力差、問題解決能力薄弱、工作適應周期過長,學生很難將學到的理論知識和實際的項目實踐順利結(jié)合起來,甚至個別學生僅僅是為了考試而學習,死記硬背,對根本不了解課程設(shè)置的意義。本文經(jīng)過分析總結(jié)認為傳統(tǒng)教學模式主要有如下幾個弊端:

(1)重視理論教學,輕視實踐教學。由于教學環(huán)境的局限性及實驗設(shè)備的不齊備性,教師的授課效果經(jīng)常不能及時在學生的動手實踐中反饋出來。而且教師在授課過程中有意或者無意的偏向理論講解,使得學生在學習過程也偏向于死記語法規(guī)則等,忽略教師真正的授課意義。雖然教師在授課時配有相關(guān)例題操作,用以說明每個知識點的實際應用。但由于授課環(huán)境有限,教師最多也只能讓學生查看程序運行結(jié)果,學生只知其果,不明其因。同時由于缺乏實景教學,即使簡單明了的內(nèi)容,也要花更多的時間去講解,演示,從而浪費了寶貴的教學時間。

(2)教學被動,學生積極性低。傳統(tǒng)的教學模式,基本上都是一整節(jié)課,教師在上面講,學生在下面聽。學生一直處于一種被動接受的狀態(tài),教師講什么就記什么,講者有意,聽者無心,而且一味的被動接受抽象的概念更使得學生的積極性降低,無法激發(fā)學生的自主學習興趣,也無法激發(fā)學生在主動求知欲和創(chuàng)造望。

(3)理論和實踐結(jié)合力度不夠。由于理論和實踐不是同步進行的,由于學生在學習理論知識時容易種種不同的困惑,但是在實踐當中又不能很好的運用反應出來,因此造成了理論學習水平和實踐能力的參差不齊,根本達不到計算機軟件類專業(yè)教學規(guī)劃的要求。

(4)學生考核系統(tǒng)單一。目前中國的教育現(xiàn)狀仍是以應試為主,即使在高校里考試也還是一個檢驗學生學習是否合格的首要標準。但是如今的考試形式一般以筆試的結(jié)果定輸贏,考核形式單一,導致學生在學習時更多的是采用死記硬背的方法來進行理論方面的學習,這樣造成了許多高分低能的現(xiàn)象出現(xiàn)。

(二)基于軟件工程學的方法論

軟件工程是用工程科學的知識和技術(shù)原理來定義、開發(fā)和維護軟件的一項工作,主要研究的內(nèi)容包括開發(fā)技術(shù)與開發(fā)管理兩大方面。軟件工程學方法論是人們?yōu)榱丝朔败浖C”而做了大量的工作,而逐漸形成了系統(tǒng)的軟件開發(fā)理論、技術(shù)和方法,它們在軟件開發(fā)實踐中發(fā)揮了巨大的作用。軟件工程方法論就是在整個軟件工程的生命周期中提煉出來的上升到理論高度的一種思想,它可概括為:目標、過程和原則。

(1)軟件工程方法論目標。即采用有效合理的方法生產(chǎn)具有正確性及可用性的產(chǎn)品,它形成了對過程、過程模型及工程方法選取的約束。

(2)軟件工程方法論過程。就是如何在生產(chǎn)一個能滿足需求且達到工程目標的軟件產(chǎn)品步驟中完成對生產(chǎn)過程的分析、設(shè)計、確認,它貫穿于整個開發(fā)過程。

(3)軟件工程方法論原則。則是圍繞工程設(shè)計、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。采用軟件工程方法論開發(fā)軟件的時候,從對任務(wù)的抽象邏輯分析開始,一個階段一個階段地進行開發(fā),每個階段的開始和結(jié)束都有嚴格的標準。本文利用軟件工程方法論中的軟件復用技術(shù)與項目管理學結(jié)合提出了新的教學模式。軟件復用作為軟件工程方法論里的一種技術(shù)或者思想,在整個軟件工程中占有重要的地位,對能否實現(xiàn)軟件產(chǎn)業(yè)的工業(yè)化進展起著關(guān)鍵的作用。它主要是指利用現(xiàn)有的軟件資源來構(gòu)建新的系統(tǒng),避免重復勞動的方案。

并且軟件復用并不局限于代碼的復用,復用的過程延續(xù)完整的軟件生命周期。項目管理雖然是管理學的一個分支,但在整個軟件生命周期中要想使軟件產(chǎn)品實現(xiàn)或者超過設(shè)定的需求和期望,就必須采用項目管理來貫穿整個軟件生命周期中。它是在項目活動中運用專門的知識、技能、工具和方法,使項目能在有限資源的限定下達到相關(guān)項目的目標。在相關(guān)項目中項目管理主要是協(xié)調(diào)和管理,而方法論則為項目進程提供了持續(xù)穩(wěn)定的方式方法。

基于軟件工程方法論教學體系的構(gòu)建

本文針對計算機軟件類專業(yè)的特點,并結(jié)合學?,F(xiàn)有的資源以及傳統(tǒng)教學模式的弊端,進行了新型教學模式的研究,提出一種基于軟件工程方法論的教學模式。它將經(jīng)典的軟件工程方法論提升到理念的高度,跳出軟件開發(fā)這一領(lǐng)域,應用到了高校計算機軟件類專業(yè)人才的培養(yǎng)教育模式當中去,并組織力量認真進行改革實踐,經(jīng)過驗證取得了很好的效果?;谲浖こ谭椒ㄕ摰慕虒W體系就是將軟件工程方法論當中的一些技術(shù)和思想融入到教學過程當中去,通過CDIO的教學模式,將實踐項目和課堂教學很好的結(jié)合起來,使學生能從項目中以整體的角度把所學的理論知識融入到項目。

(一)課程體系的改革

在綜合考察計算機軟件類專業(yè)的課程教育體系后,運用軟件復用技術(shù)將實踐項目與相關(guān)專業(yè)課程串聯(lián)起來,這樣不僅有利于課程體系的建設(shè),也理順了各門課程之間的關(guān)系和側(cè)重點,對關(guān)聯(lián)課程的時間安排,教學內(nèi)容的設(shè)計、課時量的安排等方面都會產(chǎn)生深刻的影響,使整個課程體系的教學安排更合理,教學目的更明確,更有利于對整個教學體系的優(yōu)化。在界定計算機軟件類專業(yè)課程范圍的基礎(chǔ)上,通過對現(xiàn)有的計算機軟件類專業(yè)課程知識點以及課程知識點之間銜接關(guān)系的分析,建立課程間知識點網(wǎng)絡(luò)及擴展知識復用庫,減少重復知識點的講授,實現(xiàn)課程間的無縫銜接,使學生在常規(guī)授課內(nèi)容外能利用擴展知識復用庫提高自己分析問題、解決問題的能力,從而達到課程間知識點講授的最優(yōu)化,如圖1所示。

(二)教學模式的創(chuàng)新

1.項目管理式教學模式

本文根據(jù)計算機軟件類專業(yè)教學中理論與實踐緊密結(jié)合的要求,提出了項目管理式教學模式的思想,將軟件工程中的項目管理作為技術(shù)手段引入計算機軟件類專業(yè)學科的教學過程中。在教學過程中,首先考察計算機軟件類專業(yè)建設(shè)的相關(guān)資料,為決策提供內(nèi)容支持。其次,制定有效合理的教學規(guī)劃,同時根據(jù)市場的需求制定細粒度的擴展計劃。最后,在學期開始時,將學生按興趣、愛好劃分小組,以小組形式進行系統(tǒng)學習和溝通。將整個教學過程當做一個大的項目,而項目內(nèi)不同的項目組負責的任務(wù)不一樣,但最終的任務(wù)都是一樣的,使教學任務(wù)落實到每一個人,達到教學目標,例如成立了Web開發(fā)小組,F(xiàn)lash興趣小組、C++、Java學習小組等等。為保證該方法的順利進行,要求教師有相關(guān)的管理能力,例如:整體管理能力、溝通協(xié)調(diào)能力以及其他相關(guān)能力等。其中溝通協(xié)調(diào)為其中最為主要技巧,這樣不僅能讓每個學生都能感到老師的關(guān)懷、愛護和鼓勵,而且更能激發(fā)學生的學習熱情,具體做法如:多使用一些非正式的溝通,合理使用Y理論,肯定學生的學習成果,及時解決學生提出的問題等等。

2.教學形式改進

在教學形式上,采用有規(guī)劃的機房授課方式,向?qū)W生開放實驗室,這樣既避免填鴨式教學的被動性,又將理論的學習和實踐操作實時的關(guān)聯(lián)在一起。教師在進行授課的時候就可以既講理論又教實踐,不僅能提高理論學習的效果,更重要的是能將理論與實踐結(jié)合,使學生的問題能及時的反饋給教師,從另一個方面來看,這種教學方式還可以提高學生的學習興趣,增強學生記憶力,提高學生的創(chuàng)新和動手實踐能力。

3.三步培養(yǎng)模式

整體教學模式采用“例證講解、課程設(shè)計、畢業(yè)設(shè)計”的三步培養(yǎng)模式。例證講解就是指教師在授課過程中更多的是類比實際案例,將課程的重點、難點融入到案例中來,同時課堂氛圍采用啟發(fā)式、辯論式教學,使課程的講解更有針對性、實用性,課堂氛圍更活躍,有效地提高學生的創(chuàng)新能力。例如在進行數(shù)據(jù)結(jié)構(gòu)的樹的理論學習時,選擇一個樹的應用案例,并結(jié)合樹的一些理論知識,與學生進行探討,拋磚引玉,啟發(fā)誘導學生提出自己的理解,然后與學生一起討論其可行性,已達到加深強化理論學習的作用。課程設(shè)計要做到的要求就是是項目化,對每門操作性和系統(tǒng)性較強的課程,要采用系統(tǒng)的、規(guī)范的、可度量的方法安排課程設(shè)計,并進行項目式的管理。

針對課程的區(qū)別,制定不同的課程設(shè)計指導方案,并加入擴展知識復用庫,包括一些如Eclipse、VisualStudio等開發(fā)工具的介紹,成功的案例介紹、參考書籍介紹等信息。使學生能在實踐的同時參閱資料,是理論與實際有機的結(jié)合起來。畢業(yè)設(shè)計選題以實際的項目為背景,聯(lián)合校企的業(yè)務(wù)背景,從立項到收尾,涵蓋軟件生命周期的全過程。如參與到《xx市黨務(wù)政務(wù)管理系統(tǒng)》的開發(fā)中去,實行與企業(yè)單位類似的管理模式,小組長負責整個小組的進度考察,每個小組成員分配不同的功能模塊,同時盡量平衡每個小組成員的個人能力,使學生體驗到企業(yè)中開發(fā)項目的流程、規(guī)范,學習做事的方法,更深層次的感悟團隊合作的意識,提高學生的就業(yè)競爭力,為以后在工作中更快的進入角色打下堅實的基礎(chǔ)。通過長期的觀察統(tǒng)計,并將一些反應學生競爭力的能力水平按一定的指標量化后,可以得到采用新的教學模式與傳統(tǒng)教學模式下學生的學習效果圖,如圖2所示。

(三)考核系統(tǒng)的改革

傳統(tǒng)的學生績效考核體系主要采用的是以理論筆試成績?yōu)橹鳎綍r的表現(xiàn)和課程設(shè)計為輔,這樣很容易造成高分低能的現(xiàn)象出現(xiàn),因此建立良好的學生能力考核系統(tǒng)對培養(yǎng)合格優(yōu)秀的計算機軟件類專業(yè)人才極為重要。根據(jù)當前社會對計算機軟件類專業(yè)人才的能力需求,提出綜合考核系統(tǒng)。該考核系統(tǒng)從專業(yè)理論知識、動手實踐能力、獨立解決問題能力、創(chuàng)新能力和團隊合作5個方面進行評價,相應的制定出行之有效的評價指標和標準,并將該指標落實到學生學習的整個過程。專業(yè)理論知識評價主要是對學生的基礎(chǔ)理論知識掌握程度進行度量,在整個評價系統(tǒng)中根據(jù)實際情況確定比例分配,一般來說不宜超過65%。動手實踐能力評價通過增加一些實踐操作類題目,條件允許的話使用機房上機考試的方法。獨立解決問題、創(chuàng)新能力不好做定量分析,因此對教師有較高的要求,需要教師有相對客觀一致的評價標準。而團隊協(xié)作來在課程設(shè)計和畢業(yè)實習中卻可以很好的體現(xiàn)出來,根據(jù)每個小組的任務(wù)進度、分工、協(xié)調(diào)和交流等方面,可以很清晰的形成對團隊協(xié)作能力評價的素材。在整個評價過程中,要合理分配每部分所占的比重,不同的時間段側(cè)重的方面不同,形成多元化、多維度、客觀的評價結(jié)果。

實施效果

篇8

關(guān)鍵詞:軟件開發(fā);能力培養(yǎng);案例教學

當前計算機專業(yè)或軟件工程專業(yè)的學生存在著學用脫節(jié)、實際開發(fā)能力偏弱等問題。盡管很多高校計算機專業(yè)、軟件工程專業(yè)在軟件方面的課程體系上是將整個學科專業(yè)的知識按一定順序和層次分解,使得學生能夠循序漸進地學習和掌握知識,這無疑是行之有效的。但掌握了軟件開發(fā)領(lǐng)域的知識,并不意味著同時具備了軟件開發(fā)的能力。事實上,學生雖然接受了系統(tǒng)的軟件開發(fā)專業(yè)知識的學習和軟件開發(fā)技術(shù)應用的訓練,但軟件開發(fā)能力低下的情況還相當普遍。要從軟件開發(fā)的“菜鳥”,成長為軟件開發(fā)的高手,或者稱之為“高級藍領(lǐng)”,必須通過長期的歷練,沒有捷徑。但好的教學案例和人才培養(yǎng)模式,對促進軟件人才的成長和開發(fā)能力的提升有很重要的作用[1]。

1軟件開發(fā)人員能力要求

由于軟件開發(fā)是一項技術(shù)綜合性很強的工作,因此,企業(yè)對軟件開發(fā)人員能力的要求也是綜合性的[2]。按照教育部對軟件學院學生實踐能力培養(yǎng)的要求和工程應用型人才培養(yǎng)的定位[3],軟件學院的學生在軟件開發(fā)過程中,既要能將用戶的需求映射到良好的軟件體系結(jié)構(gòu),在進行應用軟件總體設(shè)計時有大思路和大局觀,也要能運用現(xiàn)代軟件設(shè)計方法和編程技術(shù)在進行詳細設(shè)計時關(guān)注細節(jié),實現(xiàn)高質(zhì)量的軟件;在考慮軟件實際應用時,既要支持國際化及本地化的應用要求,也要支持軟件及運行平臺升級、操作系統(tǒng)遷

移的應用要求;在技術(shù)應用能力上,既要對使用的編程語言和開發(fā)環(huán)境有很好的把握,也要能綜合運用前期所學的操作系統(tǒng)技術(shù)、數(shù)據(jù)庫技術(shù)、網(wǎng)絡(luò)編程技術(shù)、圖形圖像處理技術(shù)、人機交互技術(shù)等專門技術(shù);在軟件工程素質(zhì)上,既要具有軟件工程技術(shù)和管理方面的知識,還要具備良好的團隊合作、交流和文字與口頭表達能力。上述這些就是現(xiàn)代IT企業(yè)對軟件開發(fā)人員的能力要求。

2案例實踐教學對軟件人才培養(yǎng)的意義

案例實踐教學對軟件人才培養(yǎng)具有以下優(yōu)勢:

1) 學生通過案例學習不僅對理解和掌握計算機軟件的抽象概念及原理十分有用,而且對學習先進的軟件編程方法、使用先進的軟件開發(fā)技術(shù)、提高自身的軟件開發(fā)能力大有益處。

2) 學生通過對案例代碼的閱讀分析,可以使一些一知半解的概念突然變得清晰易懂,使一些久思不解的問題變得豁然開朗。

3) 通過案例學習,學生能夠零距離接觸到軟件高手,深深為他們巧妙的方法、過硬的技術(shù)、認真細致的精神、追求完美的態(tài)度所折服。

3實踐教學案例的設(shè)計

案例設(shè)計的內(nèi)容、質(zhì)量以及案例教學的水平是案例實踐教學的基礎(chǔ),是案例學習成功與否的關(guān)鍵。

作者簡介:蔡建平,男,教授,研究方向為軟件工程、嵌入式軟件測試和數(shù)字媒體技術(shù)。

3.1案例設(shè)計要求

設(shè)計支持軟件開發(fā)能力,特別是綜合開發(fā)能力培養(yǎng)的實踐教學案例是許多高校計算機軟件類專業(yè)教學面臨的問題。

首先,這樣的案例對于高年級的學生要涉及到他們前期所學的計算機軟件開發(fā)各個方面的知識和技術(shù),如程序設(shè)計、面向?qū)ο缶幊?、?shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡(luò)通信、圖形圖像處理、人機交互、軟件體系結(jié)構(gòu),等等;另外,要幫助這些學生在通過案例學習后,建立起軟件開發(fā)的大思路或大局觀,對軟件的質(zhì)量要求(特別是可靠性要求)、維護要求(特別是軟件功能擴充及升級要求)有很清晰地了解,并能夠反映到軟件的設(shè)計和實現(xiàn)上。最后,學生學習完案例后,要了解支持軟件跨地域、跨平臺和跨時間的應用需求,并掌握保證這些需求得以實現(xiàn)的相關(guān)技術(shù),如軟件的國際化和本地化、軟件及平臺的升級、平臺移植或系統(tǒng)遷移等技術(shù)。

在案例設(shè)計中最為關(guān)鍵的問題是案例能夠在各高校無障礙地推廣,不要因為經(jīng)費、實驗環(huán)境等問題使案例設(shè)計成果沒有應用價值。因此,案例設(shè)計要求全部使用開源代碼或開源技術(shù)。事實上,開源軟件的使用,不僅有利于通過免費的開源軟件大大降低搭建實驗環(huán)境所需的條件,使學生能夠零距離地學習優(yōu)秀軟件,全面提升自身的軟件開發(fā)能力和軟件開發(fā)素質(zhì),而且學生可以根據(jù)專業(yè)興趣或?qū)W時安排,有選擇地對其中的軟件和技術(shù)進行更深入的學習和專門的研究,形成自身的技術(shù)特長和研究方向。

案例設(shè)計中還有一點要特別注意:所選擇的案例不要涉及很深的領(lǐng)域?qū)I(yè)知識,又是人們感興趣、經(jīng)常接觸到的東西,這樣有利于激發(fā)學生的學習興趣;另一方面,希望案例涉及多種計算機軟件開發(fā)的主流技術(shù),如面向?qū)ο蟪绦蛟O(shè)計技術(shù)、客戶/服務(wù)器技術(shù)、多線程技術(shù)、網(wǎng)絡(luò)編程技術(shù)、數(shù)據(jù)庫技術(shù)、圖形學、GUI等眾多軟件技術(shù);最后,希望所設(shè)計的案例是綜合性的應用軟件,以適合學生綜合開發(fā)能力的訓練。

3.2案例詳細設(shè)計

基于上述的案例設(shè)計要求,以及早期項目的研發(fā)經(jīng)歷,我們選擇股票軟件作為軟件綜合開發(fā)實踐教學的案例。首先,股票軟件不涉及很深的領(lǐng)域?qū)I(yè)知識,又是現(xiàn)代社會人們非常關(guān)注、感興趣、且有可能經(jīng)常接觸或身陷其中的事物,學生容易入門和感興趣;另一方面,這類軟件其工作模式主要是客戶/服務(wù)器的工作模式,涉及到面向?qū)ο缶幊碳夹g(shù)、網(wǎng)絡(luò)通信技術(shù)、數(shù)據(jù)庫技術(shù)、圖形技術(shù)、用戶界面技術(shù)以及數(shù)據(jù)結(jié)構(gòu)與算法等眾多軟件技術(shù),其綜合性很強,對學生綜合開發(fā)能力的訓練非常合適;最后,我們所選擇的股票軟件Stock-0.0.9是一個早期的開源股票軟件,它是一個股票軟件的雛形,易于學生學習和完善,包括做第二次開發(fā)。將該軟件作為案例進行實踐教學可讓學生接觸和應用如下開源技術(shù):

1)Linux操作系統(tǒng)及虛擬機技術(shù);

2)GCC程序設(shè)計技術(shù)(包括編譯技術(shù)、調(diào)試技術(shù)及集成開發(fā)技術(shù)等);

3)MySQL數(shù)據(jù)庫應用技術(shù)(基于C/C++應用編程接口API的MySQL數(shù)據(jù)庫開發(fā)技術(shù));

4) 基于套接字編程的網(wǎng)絡(luò)通信技術(shù)(支持TCP/IP協(xié)議的開源liptcp++庫的應用);

5) 基于Gtk+的界面設(shè)計技術(shù)(應用Glade支持界面的設(shè)計及應用框架的生成);

6) 股票軟件的結(jié)構(gòu)化程序設(shè)計及面向?qū)ο缶幊碳夹g(shù)等。

在對Stock-0.0.9進行編譯生成可執(zhí)行目標代碼并建立其運行環(huán)境的過程中,學生能夠接觸和了解到程序設(shè)計的強類型機制、可靠性編程思想、軟件構(gòu)造方法、C/S工作模式實現(xiàn)手段、開發(fā)環(huán)境及應用環(huán)境升級對策、軟件國際化及本地化應用要素、操作系統(tǒng)遷移或移植問題等方面的內(nèi)容,使學生真正掌握基于復雜圖形用戶界面的大型應用軟件開發(fā)的方法和技術(shù),理解現(xiàn)代軟件開發(fā)方法學和現(xiàn)代程序設(shè)計思想,增強他們解決實際問題的工程實踐能力。

4案例教學實踐及成果

4.1實踐情況

軟件學院針對教育部對軟件學院學生實踐能力培養(yǎng)的高要求和軟件工程碩士復合型工程人才培養(yǎng)的定位,以及學院學生(特別是非在職的工程碩士研究生)綜合性實踐能力太弱等實際情況,經(jīng)充分論證,確定了提升學生軟件綜合開發(fā)能力的培養(yǎng)目標,分別于2006年下半年在學院為本科生開設(shè)了“界面設(shè)計”課程,為軟件工程碩士開設(shè)了“高級軟件編程技術(shù)”課程。這兩門選用同樣案例,講授了10多次,受益學生達800多人。在這期間,課程的教學案例和實踐資源也不斷得到補充和完善。

4.2實踐成果――教材建設(shè)

學院考慮到案例實踐教學的效果以及教學案例和實踐資源的成熟與完整,決定將案例和課程資源進行總結(jié)與提升,出版與之配套的實踐教材,推廣相關(guān)的實踐教學經(jīng)驗,讓國內(nèi)高等學校計算機和軟件相關(guān)專業(yè)的實踐教學從中受益。學校對此工作提供了經(jīng)費支持,同時在清華大學出版社的支持下,完成了《軟件綜合開發(fā)案例教程――Linux、GCC、MySQL、Socket、Gtk+與開源軟件》的編寫工作,該教材已于2011年2月出版發(fā)行。

1) 教材的主要內(nèi)容。

除了有大量篇幅講述計算機應用的主要開源技術(shù)外(如Linux操作系統(tǒng)、GCC編程語言、網(wǎng)絡(luò)Socket編程通信、MySQL數(shù)據(jù)庫管理、Gtk+界面設(shè)計),特別通過實際案例――Stock股票軟件將這些技術(shù)融會貫通在一起,并站在更高的角度上對軟件體系結(jié)構(gòu)、應用軟件開發(fā)模式、軟件的國際化與本地化,軟件開發(fā)和應用環(huán)境升級方法以及平臺移植技術(shù)等充分地介紹和實例說明,以此達到授人以漁的目的??梢哉f這是一本集各種主要的計算機開源技術(shù)應用于一體的軟件綜合開發(fā)實踐教材。

2) 教材的特色。

① 能夠滿足計算機、軟件工程及相近專業(yè)高年級學生在前期學習了程序設(shè)計、操作系統(tǒng)、數(shù)據(jù)庫、計算機網(wǎng)絡(luò)等計算機專業(yè)基礎(chǔ)課程后,急需通過一個案例或一個項目來應用這些專業(yè)基礎(chǔ)知識和技術(shù)進行綜合性實驗或?qū)嵺`,提高自身計算機技術(shù)綜合應用能力的需求。

② 除了對主流的計算機開源技術(shù)做了詳細地介紹和舉例分析外,還特別地突出了計算機開源技術(shù)在實際股票軟件項目中的應用,很好地支持著案例驅(qū)動式的實踐教學。

③ 教材所涉及到的實驗教學資源相當豐富,覆蓋面相當廣,且全是開源軟件或開源工具,保證了國內(nèi)許多院校在辦學條件不足,實驗教學經(jīng)費有限,無法全方位引進商用軟件工具的情況下,仍然能夠開設(shè)出軟件綜合性開發(fā)的實踐課程。

總之,該教材作為案例實踐教材,自始至終強調(diào)和灌輸現(xiàn)代軟件開發(fā)方法學和現(xiàn)代程序設(shè)計思想,強調(diào)軟件綜合開發(fā)能力的培養(yǎng)。該教材所涵蓋的大量技術(shù)內(nèi)容、實操案例及問題解決方案,如果學生能夠完全掌握并能實際地用于軟件項目的開發(fā),從軟件開發(fā)能力上說已達到一個高級藍領(lǐng)的要求了。

5案例實踐教學的實施方案

北京工業(yè)大學軟件學院在學生軟件綜合開發(fā)能力培養(yǎng)上分別針對軟件工程本科專業(yè)的學生和軟件工程專業(yè)學位的學生開設(shè)了選擇同樣案例和教材的不同課程――“界面設(shè)計”和“高級軟件編程技術(shù)”。下面我們主要以本科生為例,介紹在“界面設(shè)計”課程中案例實踐教學的實施方案或課程大綱。

5.1課程設(shè)計目的

學院在四年制軟件工程專業(yè)本科生的教學計劃中,為大三的學生在第二學期安排了“界面設(shè)計”的課程,60學時,2學分,共15個實驗單元(每個單元4學時)。

“界面設(shè)計”課程是按照教育部對國家示范性軟件學院培養(yǎng)工程化軟件實用人才的要求,以界面設(shè)計為立足點,對前期所學的主要計算機技術(shù)(如軟件開發(fā)、程序設(shè)計、網(wǎng)絡(luò)編程、數(shù)據(jù)庫應用等)進行綜合訓練。

要求學生在掌握界面設(shè)計的原則、方法和常用技術(shù),掌握當前主流的開源界面開發(fā)工具Gtk+和開源界面設(shè)計工具Glade進行界面設(shè)計及實現(xiàn)等技能的基礎(chǔ)上,通過具體的案例――股票行情分析軟件,將計算機軟件開發(fā)所涉及到的相關(guān)知識綜合在一起,開展實踐活動。

通過該實踐課程,除了使學生掌握界面設(shè)計的全部流程和技術(shù),培養(yǎng)學生界面的設(shè)計能力外,可使學生接觸和學習基于復雜圖形用戶界面的大型軟件開發(fā)的方法和技術(shù),了解Linux操作系統(tǒng)、編程語言、程序設(shè)計、編譯應用、圖形界面、數(shù)據(jù)庫、網(wǎng)絡(luò)通信、軟件體系結(jié)構(gòu)、應用軟件開發(fā)模式以及平臺移植等技術(shù)在實際軟件開發(fā)或應用項目中的具體應用,達到增強他們工程實踐能力的目的。

5.2課時安排

該課程設(shè)計以《軟件綜合開發(fā)案例教程》為實踐教材,其實踐教學方案主要是按照15個實驗單元并依據(jù)教材內(nèi)容和知識單元組織進行制定的。

第1單元:對課程設(shè)計提要求,對Linux操作系統(tǒng)知識點進行講解,并安排學生進行Linux操作系統(tǒng)的實際應用,學會Linux虛擬機的安裝、配置和使用。

第2單元:對應用GCC進行軟件開發(fā)知識點進行講解,安排學生進行GCC開發(fā)應用實踐,學會編寫工程文件、用GCC編譯C/C++程序、調(diào)試程序、建立集成開發(fā)環(huán)境。

第3單元:對網(wǎng)絡(luò)通信及Socket編程知識點進行講解,安排學生進行網(wǎng)絡(luò)通信的Socket編程實踐,學會在libtcp++環(huán)境下建立客戶/服務(wù)器的工作模式。

第4單元:對MySQL數(shù)據(jù)庫應用知識點進行講解,安排學生進行MySQL應用的相關(guān)實踐,學會用MySQL C API進行數(shù)據(jù)庫應用的簡單開發(fā)。

第5單元:對Gtk+用于界面設(shè)計的知識點進行講解,安排學生進行Gtk+的界面設(shè)計實踐,學會用Gtk+和Glade進行簡單界面的開發(fā)。

第6單元:介紹股票交易的相關(guān)知識、股票軟件一般包含的內(nèi)容和所涉及到的技術(shù),安排學生學習和使用國內(nèi)主流的股票軟件,學會股票軟件的使用方法和使用流程。

第7單元:對開源股票軟件Stock進行分析講解,并帶領(lǐng)學生將Stock源碼編譯成可執(zhí)行的二進制碼,要求學生學會處理編譯和連接過程中出現(xiàn)的各種問題,特別是強類型問題。

第8單元:對應用軟件國際化和本地化相關(guān)知識和技術(shù)進行講解,對Stock軟件的Gtk+1.2界面實現(xiàn)方法進行分析,并帶領(lǐng)學生解決Stock軟件中文顯示問題,要求學生掌握在Gtk+的界面控件上和繪圖區(qū)中正確地顯示中文、英文及數(shù)字方法。

第9單元:對Stock軟件的數(shù)據(jù)庫應用編程、網(wǎng)絡(luò)通信編程等實現(xiàn)方法進行分析,帶領(lǐng)學生解決股票數(shù)據(jù)庫的建立、股票數(shù)據(jù)的導入等問題,要求學生掌握Stock軟件中用MySQL C API進行股票數(shù)據(jù)庫應用、用Socket進行網(wǎng)絡(luò)通信的開發(fā)技術(shù)。

第10單元:對Gtk+2.0特點進行講解,帶領(lǐng)學生解決Stock軟件從Gtk+1.2到Gtk+2.0升級中遇到的各種問題,要求學生掌握確保軟件能夠升級的軟件設(shè)計思想和問題解決方法。

第11單元:對在Windows上進行Gtk+應用程序設(shè)計的方法進行講解,帶領(lǐng)學生將Stock軟件從Linux上移植到Cygwin和MS VC上,并解決移植過程中的問題,要求學生掌握一般軟件移植的基本要點和基本方法。

第12單元―第13單元:學生按分工要求開展獨立實踐活動,并撰寫實踐報告。

第14單元―第15單元:學生按分工要求進行PPT的實踐匯報和實踐成果的演示。

5.3課程設(shè)計組織

課程設(shè)計以課題組形式開展,6人一組,每組必須完成6篇報告(Linux虛擬機使用總結(jié)報告、Linux下GCC編程總結(jié)報告、MySQL數(shù)據(jù)庫應用總結(jié)報告、基于TCP/IP的Socket編程總結(jié)報告、用Gtk+設(shè)計圖形用戶界面總結(jié)報告以及股票分析軟件實現(xiàn)技術(shù)總結(jié)報告),指定課題組長(完成報告6),課題組其他成員分別完成報告1~5,每人1個,不能重復。

課程設(shè)計以實踐為主,完成教材中所布置的實驗習題。作業(yè)以電子方式交付。

5.4課程設(shè)計考核

對每位學生,課程設(shè)計考核包括四部分:

1) 電子版課程設(shè)計報告(40分),對于報告其撰寫要求如下:

① 每個報告不少于1萬字(不能以圖表代文,論述為主);

② 報告的基礎(chǔ)是每章的實驗習題;

③ 報告可分4~5章(第一章概述,最后一章總結(jié),其他章節(jié)自行組織);

④ 報告以教材為樣式進行排版;

⑤ 報告不要出現(xiàn)網(wǎng)上拷貝的痕跡,網(wǎng)上摘錄的要進行相應處理,嚴禁聊天用語、博客用語以及混亂的控制符和全角符號;

⑥ 圖表要清晰,重要的圖表要親自畫或截,不要拷貝。

2) 每位同學要準備總結(jié)報告的PPT匯報(10分鐘的匯報),匯報成績20分。

3) 每位同學要進行所選報告的成果演示,演示成績20分。

4) 考勤成績20分??记?0次,每次2分,考勤缺席5次的無成績。

5.5基于案例的“界面設(shè)計”實踐教學效果

“界面設(shè)計”課程自2006年開設(shè)以來,學生普遍反映良好,口碑頗佳,軟件開發(fā)的綜合實踐能力得到了明顯的提升。

最近,我們對學生學習該課程的體會和感想進行了調(diào)查,學生普遍認為案例內(nèi)容和實驗方案豐富、實用和生動,大大地開拓了他們的眼界。通過基于復雜圖形用戶界面的大型應用軟件開發(fā)方法和技術(shù)的學習和實踐,對現(xiàn)代軟件開發(fā)方法學和現(xiàn)代程序設(shè)計思想有了更進一步地理解,增強了軟件綜合開發(fā)和解決復雜問題的工程實踐能力。特別是對軟件開發(fā)有了大局觀,對軟件開發(fā)中軟件設(shè)計和高質(zhì)量代碼編寫的重要性有了新認識,對優(yōu)秀開源軟件和開源技術(shù)有了極大的興趣。下面是部分學生在課程設(shè)計實驗報告中對“界面設(shè)計”的案例教學談到的心得體會:

1) 通過這門課的學習,我基本掌握了Linux虛擬機的使用,以及Linux下的GCC編程,應用軟件圖形用戶界面GUI的界面設(shè)計,網(wǎng)絡(luò)數(shù)據(jù)庫應用技術(shù)和網(wǎng)絡(luò)通信技術(shù),并能進行具有圖形用戶界面程序的開發(fā),提高了應用C/S模式、管理數(shù)據(jù)庫數(shù)據(jù)等實際應用能力。由于平常主要都是理論課程,實踐機會比較少,大家組隊進行開發(fā)就更少了。通過此次實踐,我體驗到了團隊開發(fā)的重要性,學會了如何合作開發(fā),并大大提高了我解決問題的能力,為以后工作學習增加了豐富的經(jīng)驗。

2) 以前學習Linux時僅把它當作一種單純的操作系統(tǒng),沒有在上面做開發(fā),導致對Linux了解不多。經(jīng)過半個學期基于Linux的股票案例學習后,我收獲頗多。我主動收集和閱讀了大量資料,并鍛煉了實際動手能力。我學到了如何在Linux環(huán)境下搭建開發(fā)環(huán)境、進行編程和開發(fā),并對MySQL,GCC,Gtk+等開源軟件在Linux下的應用有了初步的認識,加深了對Linux下編程整體流程和工作細節(jié)的理解,知道了Linux下調(diào)試程序的方法,真正了解了程序在Linux下從編譯到運行以及排錯的全過程。

3) 這次課程設(shè)計我們的收獲非常多的,首先大家對于一款良好的軟件應該具有什么樣的功能和性能有了比較清楚的認識,這對于我們以后在軟件開發(fā)乃至今后的工作都是有益處的。其次,這次復雜的課程設(shè)計鍛煉了我們各方面的能力,包括團隊合作、資料查找、學習、融會貫通以及查錯能力,等等??梢哉f對我們的綜合能力是一次極大的考驗。在整個工程的過程里,大家接觸了很多以前沒有觸及過的知識并對其有了較為深切的理解。最后,本次課程設(shè)計溝通了我們幾位同學之間的感情,在辛苦工作的同時,也留下了難忘的回憶。

4) 我覺得這門課對我很有幫助,讓我學會了一個我以前不會也沒接觸過的有用的軟件,學會了如何使用Gtk+來進行圖形界面的設(shè)計。通過這一學期的學習,課上聽老師對一些知識的講解,對Linux更加熟識了,對如何在Linux下安裝各種有用的軟件更加清楚。在課后我們組成小組,分工明確,每個人認真地負責自己的那部分的工作,查資料,學相關(guān)的知識,然后再給小組的每個組員講,使組內(nèi)的成員對大家的工作都很熟識,這樣合作起來就更加的融洽,而且也可以互相討論和幫助。在這門課上學到了很多知識,也鍛煉了動手能力,最后作報告培養(yǎng)了大家的語言表達能力。總之,我覺得這門課很有意義。

5)Stock股票軟件的成功運行讓我們對自己的能力充滿了信心。從最開始我們興致勃勃地組成一個小組,憧憬著成功的那一天開始,一路磕絆,直到今天我們看到一個完整的軟件,這里的每一個細小的環(huán)節(jié)都有著我們?yōu)橹冻龅钠D辛努力。這與我們小組成員的團結(jié)努力是密不可分的,尤其是負責編譯、調(diào)試和排錯的組員。課程設(shè)計中遇到的問題,不但沒有將我們擊垮,而且在問題解決過程中,使得我們對許多知識又有了新的理解。感謝學院給我們提供了這樣一門自己動手的課程,它對提高我們的編程能力非常有幫助。

6) 這次課程設(shè)計使我建立起一種堅持到底不放棄的精神。之前的我總是缺乏恒心,一旦進展不順即想放棄。這次強迫我接觸很多不會的新東西,而且時間上有限制,令我不得不一次次與失敗和不順打交道。在翻越這一道道“溝壑”的過程中,我覺得自己的毛躁在逐漸退去,變得越來越穩(wěn)健。我想精神上的成長可能比知識的增多對我來說意義更大。

6結(jié)語

我校專家對這種模式的案例實踐教學給予了充分肯定,指出計算機學院或軟件學院學生的軟件開發(fā)綜合能力培養(yǎng)一直是高等院校軟件人才培養(yǎng)的一個“短板”,一直缺少好的實踐教學方案、好的實踐教學案例和好的實踐教學教材。因此,軟件開發(fā)綜合能力培養(yǎng)的案例教學在傳統(tǒng)實踐教學的基礎(chǔ)上做了很有意義的探索和實踐,其成果顯著、資源完整,具有很好的推廣和普及基礎(chǔ)。學校為了強化該項成果在軟件工程專業(yè)學位研究生能力培養(yǎng)上的轉(zhuǎn)化和推廣,將研究生的“高級軟件編程技術(shù)”課程列為學校重點建設(shè)的精品課程。因此,我們相信,隨著精品課程建設(shè)的深入開展,軟件開發(fā)綜合能力培養(yǎng)的案例教學基礎(chǔ)將進一步夯實,其成果將會進一步凝練、宣傳和推廣。

參考文獻:

[1] 蔡建平. 軟件綜合開發(fā)案例教程[M]. 北京:清華大學出版社,2011:序

[2] 陳紅霞,毛京一,滕月鵬. 計算機藍領(lǐng)到軟件藍領(lǐng):高職軟件開發(fā)人才培養(yǎng)模式探討[J]. 計算機教育,2010(1):135-137.

[3] 教育部辦公廳關(guān)于進一步加強示范性軟件學院建設(shè)工作的通知[S]. 教高廳(2007)4號.

The Comprehensive Ability Training for Software Developments Based on Case Teaching

CAI Jianping

(School of Software Engineering, Beijing University of Technology, Beijing 100124, China)

篇9

關(guān)鍵詞:JAVA程序設(shè)計基礎(chǔ);課程設(shè)計;PSP

1前言

在程序設(shè)計類課程中,實踐教學環(huán)節(jié)一般包含兩個方面,即實驗教學環(huán)節(jié)、課程設(shè)計環(huán)節(jié)。實驗教學環(huán)節(jié)是對理論教學中的知識點進行實踐;而課程設(shè)計環(huán)節(jié)是對本門課程乃至之前學習的課程知識綜合性的練習和實踐,對學生動手能力的提升具有非常重要的意義。課程設(shè)計是對某一門課程進行教學策劃的研究活動,具體來說是指在學完專業(yè)課一段時間內(nèi),安排組織學生用學到的知識在一定的時間內(nèi)有組織或者分散地完成一些任務(wù)。目前在大學計算機教學過程中,很大一部分程序設(shè)計類課程都開設(shè)了課程設(shè)計,以期學生在課程設(shè)計中能夠掌握程序設(shè)計的基本思想、軟件開發(fā)的基本流程、程序調(diào)試的基本方法[1]。目前存在的問題本文針對河南中醫(yī)藥大學JAVA程序設(shè)計基礎(chǔ)課程設(shè)計執(zhí)行過程中出現(xiàn)的問題進行總結(jié)。在實施過程中總結(jié)遇到的問題,有學生的學習態(tài)度問題,包括對課程設(shè)計不重視,認為課程設(shè)計不重要;有教學計劃設(shè)計問題,指軟件工程課程安排在程序設(shè)計類課程之后,學生對軟件開發(fā)流程沒有整體概念,無從下手;評價方法和評價標準過于簡單、單一,且隨意性強,沒有嚴格的評價標準,造成課程設(shè)計的質(zhì)量下降??梢?,問題集中在學生的態(tài)度問題、基本開發(fā)軟件的技能、教師的評價標準這三個方面[2]。鑒于學生的學習態(tài)度問題,教師對不同層次的學生進行調(diào)查,原因主要為:課程為考察課,重視程度不夠;課程學習起來太難,難以接受,更不想動手做東西;課程設(shè)計以往采用分組形式,每組人數(shù)較多,存在渾水摸魚的情況。對此,教師在組織課程設(shè)計實施過程中引入WWH模型,從學習動機、知識儲備、實際操作三個方面對學生課程設(shè)計實施過程進行干預。

2課程設(shè)計過程控制

在JAVA程序設(shè)計基礎(chǔ)課程設(shè)計實施過程中,教師采用WWH模型來完成課程設(shè)計的組織和實現(xiàn)。WWH具體是指Why、What和How。其中,Why解決的是在態(tài)度層面上學生的學習動機問題,也就是為什么要來學習本門課程;What解決的是在知識層面上學員的知識儲備不足問題,也就是學生需要掌握哪些專業(yè)的知識才能支撐具體的編碼實現(xiàn);How解決的是在技能層面上,學生的實際操作技能問題,也就是如何解決課程設(shè)計實現(xiàn)中的疑難困惑。Why(為什么學)Why是學生對待課程設(shè)計態(tài)度層面的問題。進行課程設(shè)計的意義需要借助相應的素材,從專業(yè)層面、課程層面、就業(yè)層面進行分析。使用最常用的方法案例,選用一個正面案例及一個負面案例。正面案例講授的是用心完成課程設(shè)計,將獲得什么收益,包括對前期知識系統(tǒng)性復習,代碼調(diào)試能力提升,代碼量增加,取得很好的成績;反面案例講授的是如果不學可能導致的嚴重后果,比如掛科、重修等。What(學什么)學什么是知識層面的問題。學習的知識一般包括定義、概念、標準、要求、原則、區(qū)別、特點、基本組成要素等。課程設(shè)計時需要分析學生在掌握相關(guān)技術(shù)時還缺乏哪些知識,哪些技能掌握比較匱乏。比如:“軟件工程”中軟件開發(fā)的系統(tǒng)化流程,結(jié)構(gòu)圖、流程圖的繪制,在代碼結(jié)構(gòu)以及代碼調(diào)試方面能力較差[3]。由教師提供相關(guān)的書籍、材料進行補充。How(如何做)“如何做”是學生完成課程設(shè)計的基本技能?!叭绾巫觥币话闶侵刚n程設(shè)計實現(xiàn)過程中需要學生重點實現(xiàn)的內(nèi)容,包括課程設(shè)計報告、軟件,如軟件開發(fā)中各個模塊分配的時間比例如何?哪個模塊分配的時間最多、人力最大?“如何做”包括了軟件開發(fā)的流程以及軟件開發(fā)中的技術(shù)。在這個過程中需要教師能夠進行指導,協(xié)助學生分析各個模塊重難點,進而確定分工。

3課程設(shè)計目標考核

在課程設(shè)計環(huán)節(jié)執(zhí)行過程中,除了加強過程控制外,對結(jié)果目標的考核是非常重要的一個方面,學生的態(tài)度問題究其原因,其中一個方面是在教學評價過程中課程設(shè)計環(huán)節(jié)評價指標不明確,教師對學生課程設(shè)計評價結(jié)果與實際有偏差,造成學生渾水摸魚的現(xiàn)象存在。所以軟件開發(fā)的工作量和質(zhì)量如何衡量、如何評價,是課程設(shè)計評價環(huán)節(jié)的一個重點內(nèi)容。河南中醫(yī)藥大學JAVA程序設(shè)計基礎(chǔ)課程教學中引入PSP(PersonalSoftwareProcess)模式進行評價。PSP認為在軟件評估過程中有下列四個因素需要考慮。1)任務(wù)有多大?用代碼行數(shù)(不包括空行/注釋行/單字符行)來表示,或使用功能點來表示。在實施過程中采用兩種方式相結(jié)合的形式,首先確定功能點的個數(shù),按照功能點逐個確定代碼行數(shù)。2)花了多少時間?一組人所花費的時間可以用人數(shù)*時間來表示,但是由于學生的基本功有差距,此標準對學生課程設(shè)計的工作量計算并不適用。3)質(zhì)量如何?交付的代碼中有多少缺陷?在課程設(shè)計中將交付定義為在“代碼完成”的時候,交付給負責測試的學生,并完成測試用例表。使用缺陷的數(shù)量來除以項目的大小,也就是缺陷的數(shù)量除以總的代碼量,衡量評價一個軟件的質(zhì)量。4)是否按時交付?這個指標對學生不適用,學生完成課程設(shè)計的時間有明確的要求,不能延期交付。綜合以上幾點,在課程設(shè)計目標評估中,結(jié)合PSP模式并對其進行課程設(shè)計評估的相關(guān)修改,通過功能點數(shù)、代碼行數(shù)以及缺陷數(shù)來評估課程設(shè)計中軟件的質(zhì)量。

4結(jié)果調(diào)研

按照WWH模型組織實施課程設(shè)計進行過程控制和引入PSP模型進行課程設(shè)計目標考核,在現(xiàn)有課程JAVA程序設(shè)計基礎(chǔ)上實施,并對結(jié)果進行調(diào)查研究,數(shù)據(jù)顯示,學生在課程設(shè)計的代碼量均在1000行左右,最少的在600行。從代碼量來看,學生在課程設(shè)計中代碼量在各個小組之間差距不大,這有助于小組之間競爭,并進而促進軟件功能點的增多。在軟件開發(fā)中引入PSP評價代碼質(zhì)量,使用測試用例方式統(tǒng)計軟件完成情況、性能、穩(wěn)定程度,進一步提高了代碼的質(zhì)量,并讓學生在課程設(shè)計中了解了軟件開發(fā)的流程,課程設(shè)計報告的完整度和質(zhì)量有所提升。

5結(jié)語

課程設(shè)計是程序類課程不可或缺的一個環(huán)節(jié),對課程設(shè)計量和質(zhì)的控制是非常重要的。使用合理評價體系對課程設(shè)計的工作量和軟件質(zhì)量進行評價,是從結(jié)果逆向來促使學生提升課程設(shè)計質(zhì)量的一種方式,加強目標管理也是實踐性課程教學目標實現(xiàn)的一種重要途徑。加強過程管理以及目標評價,是提升課程設(shè)計質(zhì)量的重要保障。

參考文獻

[1]吳軍其,劉玉梅.學習設(shè)計:一種新型的教學設(shè)計理念[J].電化教育研究,2009(12):80-83.

[2]章杰,陳笑蓉,皮建勇.項目實踐為導向的教學方法在軟件開發(fā)課程中的應用[J].計算機教育,2010(5):91-94.

篇10

關(guān)鍵詞:軟件工程;課程群;課程群體系

中圖分類號:G642 文獻標識碼:B

1引言

軟件工程是運用工程、科學和數(shù)學的原則與方法研制、維護計算機軟件的有關(guān)技術(shù)和管理的方法;是將系統(tǒng)的、規(guī)范的、可度量的方法應用于軟件的開發(fā)、運行和維護的過程。中國的軟件產(chǎn)業(yè)以軟件工程為指導思想得到了迅猛發(fā)展,使得軟件工程人才的培養(yǎng)發(fā)生了巨大的變化。然而,人才需求與教育供給的不足產(chǎn)生了矛盾,以傳統(tǒng)的課程體系、單一的課程模式來培養(yǎng)軟件工程人才已不能滿足軟件產(chǎn)業(yè)發(fā)展的需求,成為軟件工程教育發(fā)展面臨的一個重要問題。解決這一問題的關(guān)鍵之一是需要在不斷的教學過程中,研究適應軟件產(chǎn)業(yè)發(fā)展需求的人才培養(yǎng)模式以及相應的軟件工程教學思路和方法,形成一個正確的課程群體系,在該課程群體系的保證下,不斷提高教學質(zhì)量使軟件工程教育得到健康穩(wěn)步發(fā)展。

傳統(tǒng)的軟件工程人才培養(yǎng)課程體系存在著以下幾方面的問題:(1)工程特點不明顯。課程安排過于傳統(tǒng),偏重計算機科學與技術(shù)的課程模式,偏重基礎(chǔ)理論和方法的傳授,沒有突出現(xiàn)代軟件工程的發(fā)展特點,忽略了體現(xiàn)軟件工程特點的關(guān)于質(zhì)量、進度、成本、度量、團隊、管理等方面的教育和實訓。(2)分工不細,與應用領(lǐng)域結(jié)合不緊。軟件工程的應用范圍不斷延伸,已經(jīng)深入到各個方面。而軟件工程的教育卻沒有達到與應用領(lǐng)域的緊密結(jié)合,造成事實上的脫節(jié)。(3)單一的課程模式,不利于整體知識的貫穿。傳統(tǒng)的課程體系中,與軟件工程有密切聯(lián)系的課程沒有形成一個課程群,每門課程都是按照各自課程的體系獨立授課,使得有些知識點過于重復,有些知識體系不能有機地銜接。(4)軟件工程教育與軟件產(chǎn)業(yè)結(jié)合不緊。軟件工程的教育不能及時更新教育理念,不能及時跟蹤軟件工程行業(yè)的最新發(fā)展趨勢。造成當學生畢業(yè)后參加工作時,不能很快適應較大型軟件的個人或團隊開發(fā)。(5)忽視交流能力的培養(yǎng)。交流能力是工程能力培養(yǎng)的重要方面,但現(xiàn)有的軟件工程教育體制卻秉承了傳統(tǒng)的教育方法,忽視交流能力的培養(yǎng)。鑒于以上這些問題,開展以軟件工程為主線的課程群體系研究是非常必要,也是很有意義的。

2研究現(xiàn)狀

目前,單純的計算機學科式教育已跟不上當今產(chǎn)業(yè)界對工程型IT人才的迫切需求。不僅如此,服務(wù)于單純的計算機學科式教育的傳統(tǒng)的實踐教學也日益暴露出與企業(yè)需求和現(xiàn)代化工程型人才培養(yǎng)不相匹配的弊端。如何突出實踐教學的效果,如何將相關(guān)的課程組成一個課程群,使工程化培養(yǎng)在整個培養(yǎng)模式中的地位、分量和作用不斷加強,使學生的知識體系更加科學化、系統(tǒng)化、更加連貫、更加適應社會需求,是目前絕大多數(shù)學校和用人單位共同需要解決的課題。

2003年教育部設(shè)立了“軟件工程課程體系”研究項目,以確立我國軟件工程教育體系的框架。由若干著名高校聯(lián)合組織了課題組,深入分析ACM和IEEE的《Computing curriculum-software Engineering》[1],研究探討我國軟件工程學科的教育思想、課程體系、教學計劃等,并結(jié)合國內(nèi)部分著名高校軟件學院的教學成果,形成了《中國軟件工程學科教程》[2]。國外,在軟件工程專業(yè)人才的培養(yǎng)中也提出了許多建議,如文獻[3]中談到Computing curriculum-software Engineering對軟件工程人才培養(yǎng)發(fā)揮著很重要的作用。

據(jù)調(diào)查,通過幾年的探索,目前中國三十多所國家示范性軟件學院均在不同程度上創(chuàng)建了一套以質(zhì)量為目標,以主動服務(wù)于企業(yè)為特色,按工程領(lǐng)域需求培養(yǎng),設(shè)置相應的課程體系與實踐環(huán)節(jié),同時建立與國內(nèi)外知名企業(yè)合作,成立校內(nèi)外實訓基地,建立新的工程型軟件人才培養(yǎng)模式。

南京大學軟件工程專業(yè)推行的工程化實踐教學體系可以簡單地用“一個教學理念、兩個培養(yǎng)階段、三項保障措施和四門實踐課程”加以概括。一個教學理念,指樹立工程化能力培養(yǎng)與基礎(chǔ)理論教學、專業(yè)能力培養(yǎng)并重的教學理念。兩個培養(yǎng)階段,指分別設(shè)置工程化教學階段和企業(yè)實習階段,把工程化素質(zhì)培養(yǎng)作為學生全培養(yǎng)期中自始至終關(guān)注的主線。三項保障措施,指通過教學方法創(chuàng)新、評價體系創(chuàng)新和實驗室建設(shè)創(chuàng)新,保障了工程化教學理念的實施。四門實踐課程,指設(shè)立了程序設(shè)計、軟件工程課程、信息系統(tǒng)課程、網(wǎng)絡(luò)平臺四門特色化的工程化實踐課程。中國國防科技大學在軟件工程專業(yè)教學改革實踐中,圍繞著以建立科學的軟件工程教學內(nèi)容體系為前提,突出實踐,激發(fā)學生主動探索和實踐的熱情,利用案例式教學,同步構(gòu)筑立體化教學互動平臺。東南大學軟件學院提出了校企合作培養(yǎng)工程型人才的模式,通過教學的探索和實踐,把教學和工程實踐緊密地結(jié)合起來,突破學期、授課教師、課程各自獨立的局限,實現(xiàn)總體設(shè)計、綜合布局、交叉穿插、協(xié)同配合的新模式,取得了較好的效果。

3課程群體系的建設(shè)思路

工程型軟件人才的培養(yǎng)需要有一個貫穿始終的工程概念作指導的課程體系和與之配套的實踐環(huán)節(jié)。在課程群體系建設(shè)中主要考慮了以下幾方面的問題。

(1) 梳理以軟件工程為主線的系列課程之間的關(guān)系,確定以軟件工程為核心的課程群的內(nèi)容和課程群體系架構(gòu)。明確課程群中的基礎(chǔ)課程、專業(yè)課程和核心專業(yè)課程,以及它們的主要內(nèi)容和大綱,確保課程群的知識體系結(jié)構(gòu)合理、知識銜接合理、實踐環(huán)節(jié)安排合理,以避免知識點缺乏或知識點重復,以及知識體系不連貫等問題。因此,我們深深體會到深入討論和研究課程群內(nèi)課程之間的關(guān)系和內(nèi)容是至關(guān)重要的。

(2) 課程群的內(nèi)容設(shè)置既要考慮夯實軟件工程的基礎(chǔ),又要考慮軟件工程的素質(zhì)和工程化思想的培養(yǎng)。軟件工程的基礎(chǔ)是建立在多個不同學科之上。它不僅需要計算機科學的理論和基礎(chǔ)知識,諸如數(shù)學、工程學、項目管理及其它應用領(lǐng)域的概念,同時也需要培養(yǎng)學生軟件工程的基本素質(zhì)和基本技能??紤]設(shè)立了“程序設(shè)計類課程+軟件工程類課程+數(shù)據(jù)庫、網(wǎng)絡(luò)等專業(yè)類課程+認證類課程”的課程群體系。特別應該強調(diào)是在本科的早期階段,為了避免學生養(yǎng)成不良的編程習慣,樹立規(guī)范編程和團隊合作的思想,在加強程序設(shè)計類課程的實訓環(huán)節(jié)同時,考慮個體軟件過程和小組軟件過程等軟件工程基礎(chǔ)和素質(zhì)課程的設(shè)置。認證類課程的融入旨在提高學生的基本技能和軟件素質(zhì)。

(3) 建立起更加完善的、與課程群體系相適應的實驗、實訓、實踐教學體系。工程化思想的培養(yǎng)離不開實踐環(huán)節(jié)。如何提高學生的創(chuàng)新能力和工程實踐能力是課程體系實踐環(huán)節(jié)設(shè)計的關(guān)鍵。實驗是吸收、消化課程內(nèi)容的第一實踐環(huán)節(jié),實驗內(nèi)容的設(shè)計既要考慮對基本知識的理解又要考慮對后續(xù)內(nèi)容的鋪墊,既強調(diào)知識與技能的融合,又強調(diào)創(chuàng)新思維能力的培養(yǎng)。整個實驗課程體系的設(shè)置涵蓋了“技能、基本知識、設(shè)計、綜合、創(chuàng)新”五個層次。實訓是對課程內(nèi)容的總結(jié),在加強案例教學的同時,遵循學生的認知規(guī)律,合理安排實訓的內(nèi)容,既考慮課程內(nèi)容的銜接又考慮加強工程化的訓練,把提高學生的創(chuàng)新能力和工程實踐能力貫穿于整個實踐環(huán)節(jié)的始終。我們采用了目標驅(qū)動式的實訓策略,使學生在實訓初期,就了解最終完成的系統(tǒng)要實現(xiàn)的功能。從系統(tǒng)目標出發(fā)建立層次化的實訓架構(gòu),使學生變被動為主動,有的放矢、完整系統(tǒng)地構(gòu)建自己的知識和技能體系,增強學生在設(shè)計上的全局觀念。實訓環(huán)節(jié)中還考慮了加強與企業(yè)的合作,將企業(yè)的資源優(yōu)勢與學校的理論知識優(yōu)勢充分地結(jié)合,共同設(shè)計和建設(shè)課程群中的實訓項目。

(4) 進行教學方法和教學手段的改革,使其適應軟件工程人才的培養(yǎng)。軟件工程類的課程內(nèi)容紛雜,在教學過程中容易出現(xiàn)空洞的說教。為了避免這一問題,改革了現(xiàn)有的、傳統(tǒng)的課堂教學方式,在加強案例教學和實踐環(huán)節(jié)的同時,多采用課堂討論、小組報告、項目答辯等多種形式的教學方法。在課程群體系的建設(shè)中重點研究、設(shè)計和提出能夠貫穿于軟件工程為主線的課程群的案例。該案例的設(shè)計以培養(yǎng)興趣、激發(fā)創(chuàng)新激情為源點,從軟件工程的基礎(chǔ)入手,使學生能夠循序漸進地接受并融會貫通所學知識,再進一步地激發(fā)創(chuàng)新激情。通過案例的學習,既能鞏固已學過的知識,又能在此基礎(chǔ)上讓學生實際運用他們所學過的知識和技能,模擬案例提出相應階段自己的問題,并給出解決方案,真正使學生體會和做到學以致用。

(5) 以軟件工程為主線的課程群體系研究的同時加強教材建設(shè)。目前我院在軟件工程類課程中采用的教材都是原版外文類教材,這些教材從理念上來講是比較新的,但是其中的案例都是國外企業(yè)較為流行和實用的,有些內(nèi)容和我們的國情存在著差距,國內(nèi)學生接受起來有些難度。為此在引用國外教材的同時,設(shè)計符合國情、符合軟件工程人才培養(yǎng)要求、符合課程群建設(shè)以及貫穿于整個教學環(huán)節(jié)的案例教材是我們研究和建設(shè)的重點。

4解決的關(guān)鍵問題

(1) 課程群內(nèi)容的篩選。軟件工程專業(yè)主要以培養(yǎng)高層次、工程型、國際化人才為目標。如何確立以軟件工程為主線的課程群內(nèi)容來滿足這一人才培養(yǎng)目標,如何在課程群中強調(diào)軟件工程的相關(guān)概念、原理和觀點,幫助學生形成系統(tǒng)的軟件工程思想,如何在知識的涵蓋面、創(chuàng)新靈活性和知識與實踐的結(jié)合上取得適當平衡,是解決的關(guān)鍵問題之一。

(2) 課程群體系的改革。工程型的課程體系是進行工程型軟件人才培養(yǎng)最基礎(chǔ)的環(huán)節(jié),如何在傳統(tǒng)課程體系的基礎(chǔ)上,加強各課程之間的銜接、配合,增加貫穿始終的案例教學、添加社會和企業(yè)需要的專業(yè)技術(shù)課程,從而最大限度地發(fā)揮課程群體系的作用??紤]將多個課程模塊整合在一起,覆蓋軟件工程教育知識體系SEEK的所有知識領(lǐng)域,并與IEEE-CS/ACM聯(lián)合推出的軟件工程計算教程CCSE 2004的教學要求基本吻合,保證課程群內(nèi)容的科學性和系統(tǒng)性。

(3) 加強先進教材體系建設(shè)。遵循“體現(xiàn)素質(zhì)教育和創(chuàng)新能力培養(yǎng)”、“穩(wěn)定性和先進性相協(xié)調(diào)”的原則,在借鑒國際著名教材的基礎(chǔ)上,結(jié)合科研成果,對原有教材不斷更新改版同時,著力建設(shè)與課程群體系相匹配的高水平教材及實驗、實訓教材。

(4) 校內(nèi)外實踐教學體系的建立。實踐教學體系包含課程實驗、課程設(shè)計、綜合實踐等內(nèi)容。課程實驗、課程設(shè)計是保證課堂教學的非常重要的實踐環(huán)節(jié)。如何選擇合適的案例貫穿整個課程群體系,是激發(fā)學生學習興趣,確保學生掌握一些重要思想的關(guān)鍵。綜合實踐活動既可以在校內(nèi)進行也可以在校外實施。校內(nèi)的綜合實踐活動是通過貫穿于整個知識體系的大型案例,讓學生實際參與,并承擔相應的角色,在實踐過程中讓學生充分理解和應用所學的知識。校外實訓基地的建立為學生與企業(yè)無縫對接提供了便利條件。校內(nèi)外實訓體系的建立也是學院聯(lián)系社會、聯(lián)系企業(yè)的重要途徑,也是促進學生就業(yè)的直接渠道。實訓基地是學院進行教學改革和工程化培養(yǎng)最前沿的,同時也是最富有成效的陣地。因此,建立穩(wěn)定、有效的實踐教學體系,是關(guān)系到人才培養(yǎng)成敗最重要的環(huán)節(jié)之一。

(5) 信息化平臺的建立。學院信息化建設(shè)為整體教學環(huán)節(jié)提供了有力的平臺支持。如何建立合理、高效的以軟

件工程為主線的課程群體系信息化平臺,也是全面實施教學改革所必須要解決的問題。按照突出“知識的綜合運用能力”、“系統(tǒng)的分析設(shè)計和集成能力”、“科技創(chuàng)新和團隊協(xié)作能力”培養(yǎng)的指導思想,建立起支撐課程群的實踐教學環(huán)境。充分利用現(xiàn)代教學手段和網(wǎng)絡(luò)資源,構(gòu)建在線資源、案例庫、答疑區(qū),增加與學生的交流,提高教學質(zhì)量。

5結(jié)束語

針對軟件工程專業(yè)人才培養(yǎng)的需求,加強以軟件工程為主線的課程群體系的研究和建設(shè),不僅使我們的教學內(nèi)容更加科學、系統(tǒng)、規(guī)范、豐富、充實,也加強了與企業(yè)之間的聯(lián)系,使得課程教學與實踐教學更加協(xié)調(diào),實踐內(nèi)容更加豐富,提高了學生的實踐能力。

今后我們還要進一步加強和完善課程群體系的建設(shè),在建設(shè)中既要進一步充實課程群的課程內(nèi)容,協(xié)調(diào)各課程之間的相互關(guān)聯(lián)、銜接,還要充分考慮各教學、實踐環(huán)節(jié)的完善和改造,引進和借鑒校外資源和社會資源,使學校的教學優(yōu)勢與企業(yè)實踐平臺等一系列優(yōu)勢資源結(jié)合在一起,在使學生得到良好培養(yǎng)的同時,企業(yè)也得到了優(yōu)秀的人才,學校的培養(yǎng)質(zhì)量也得到了全面提高。

參考文獻

[1] Computing Curriculum―Software Engineering: Final Report,IEEE Computer Society /ACM Joint Task Force on Computing Curricula[EB/OL]. /ccse/volume/FinalReport-5-21-04.pdf.