軟件工程課程設計總結范文

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

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

軟件工程課程設計總結

篇1

關鍵詞: 軟件工程課程設計 教學現狀 教學模式評價體系

一、引言

軟件工程是計算機科學、信息技術、軟件工程等專業的教學計劃中一門重要專業必修課[1],而軟件工程課程設計是針對軟件工程這門課程展開的一項理論與實踐相結合的重要教學活動;它不同于畢業設計,更不同于簡單的實驗過程。它是軟件工程教學的一個重要實踐環節,為學生綜合能力的運用、技術思維的形成、創造能力的培養搭建了一個平臺,使學生除了掌握軟件工程理論和方法外,還能夠綜合運用已學過的程序設計、數據結構、計算機網絡、管理學和經濟學等課程的技能、工具解決與其相關的理論或實際問題。

在軟件工程課程設計中,很多本學科的學者與施教者總結了不錯的經驗,比如“激勵機制”[2]、面向對象的自主實驗教學[3]、課程相關體系研究[4]及相關的案例法教學實踐設計[5]等,這些方法各有所長。我取其所長,結合親身教學實踐,從課程設計的目標要求,設計內容,設計的具體實施,學生成績評價體系等方面,對軟件工程課程設計教學模式作了系統的探討。

二、軟件工程課程設計的教學現狀

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

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

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

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

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

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

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

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

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

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

(1)通過本課程設計的實踐及其前后的準備與總結,復習、領會、鞏固和運用軟件工程課堂上所學的軟件開發方法和知識,比如,軟件項目的完整設計與開發過程、結構化技術、快速原型法和面向對象方法,等等。

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

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

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

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

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

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

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

(3)系統軟件類:如系統管理,內存管理,文件管理,系統測試工具等。

(4)游戲娛樂類:如網絡游戲,Flash游戲,牌和棋游戲等。

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

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

3.課程設計項目具體實施

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

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

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

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

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

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

表1 評定標準

四、結語

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

參考文獻:

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

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

[3]江頡,石曉耀.面向對象的軟件工程自主實驗教學改革[J].實驗技術與管理,2007,24(7):112-114.

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

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

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

篇2

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

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

1實踐教學體系構建原則

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

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

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

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

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

2實踐教學體系構建方案

現在高等教育的教育方式正在從以教師為中心轉變為以學生為中心,既以學生的目的需要為中心、以學生的能力拓展為中心、以學生的知識結構為中心開展實踐教學。因此,我們在設計實踐教學體系時,始終注重按照學生理論學習的進度和學生能力提高的需求,依據軟件開發過程的特點,分層次開設不同的實踐內容。

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

2.1課程實驗

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

2.2課程設計

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

2.3項目實訓

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

2.4開發實踐

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

2.5畢業設計

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

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

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

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

4結語

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

參考文獻:

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

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

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

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

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

[6] 白偉華. 軟件工程專業應用型人才培養模式的思考[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

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

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

1 引言(Introduction)

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

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

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

(Formulate a reasonable teaching plan based on

the social needs)

教學計劃是各教學環境的整體設計方案,合理的專業的教學計劃能為教學順利實施提供指導,也是教學過程質量的有力保障,是人才培養的綱領和實施藍圖[2],它規定了課程結構和知識結構,明確了人才培養目標,構建了專業要求的課程體系,限制了教學環節的進程及內容。具體在制定計劃時應秉持以下幾點:

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

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

(2)構建應用型培養系統工程

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

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

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

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

method of the software engineering practice

teaching)

軟件工程實踐課,包括課程實驗、課程設計、項目實訓和畢業設計等實踐環節。

3.1 實例教學

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

3.2 實驗教學

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

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

3.3 社會實踐教學

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

學生進行社會實踐教學活動時,嚴格按照企業的規定,執行、考勤、日志、總結等實際工作環節,廣泛使用協同開發平臺,使學生規范化、有序進行社會實踐活動。

4 結論(Conclusion)

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

參考文獻(References)

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

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

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

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

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

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

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

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

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

(9):555.

作者簡介:

篇4

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

2CDIO模式下實踐教學體系的構建

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

2.1教學內容的構建

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

2.2教學方法的構建

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

3結束語

篇5

關鍵詞:網絡教學;軟件工程;實驗教學

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

1 概述

軟件工程是研究計算機軟件開發與軟件管理的工程學科,是一門理論性和實踐性都很強的綜合性課程。軟件工程本身涉及到的知識內容很廣,是將面向對象技術、程序開發方法和數據庫原理等課程綜合的過程。通過軟件工程的學習,目的是培養學生獨立分析和解決問題的能力,增強學生實踐和動手能力,并熟練地掌握計算機軟件的各種開發工具。

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

2 實驗課程網站建設

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

2.1 課程資源

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

2.1.1 理論教學資源

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

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

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

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

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

2.1.2 實驗教學資源

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

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

此外,還可以給出實驗計劃表和課程設計計劃表等實驗詳細信息,使學生能合理規劃好整個實驗環節所要完成的任務。

2.2 項目任務

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

2.2.1 項目實例

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

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

2.2.2 項目題庫

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

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

2.3 軟件工具

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

2.3.1 建模工具

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

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

2.3.2 編程工具

給出幾種軟件開發工具,如結構化編程語言或面向對象的編程軟件(C、C++、JAVA、DELPHI),以及SQL、Powerbuilder等開發工具,并提供軟件下載和安裝方法,供學生選擇編程軟件,編寫程序,并測試軟件。

2.4 文檔資料

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

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

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

2.5成績評價

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

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

3 網絡輔助教學

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

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

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

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

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

4 結束語

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

參考文獻:

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

篇6

關鍵詞 軟件工程 實踐教學 導學制 虛擬

中圖分類號: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 引言

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

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

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

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

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

2 教學實施的關鍵問題

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

2.1 如何建立一個模擬軟件企業組織

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

2.2 如何管理和運行

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

2.3 如何運用該組織結合軟件工程教學內容進行實驗教學

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

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

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

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

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

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

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

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

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

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

4 實施效果和總結

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

參考文獻

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

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

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

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

篇7

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

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

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

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

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

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

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

軟件工程是用工程科學的知識和技術原理來定義、開發和維護軟件的一項工作,主要研究的內容包括開發技術與開發管理兩大方面。軟件工程學方法論是人們為了克服“軟件危機”而做了大量的工作,而逐漸形成了系統的軟件開發理論、技術和方法,它們在軟件開發實踐中發揮了巨大的作用。軟件工程方法論就是在整個軟件工程的生命周期中提煉出來的上升到理論高度的一種思想,它可概括為:目標、過程和原則。

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

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

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

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

基于軟件工程方法論教學體系的構建

本文針對計算機軟件類專業的特點,并結合學校現有的資源以及傳統教學模式的弊端,進行了新型教學模式的研究,提出一種基于軟件工程方法論的教學模式。它將經典的軟件工程方法論提升到理念的高度,跳出軟件開發這一領域,應用到了高校計算機軟件類專業人才的培養教育模式當中去,并組織力量認真進行改革實踐,經過驗證取得了很好的效果。基于軟件工程方法論的教學體系就是將軟件工程方法論當中的一些技術和思想融入到教學過程當中去,通過CDIO的教學模式,將實踐項目和課堂教學很好的結合起來,使學生能從項目中以整體的角度把所學的理論知識融入到項目。

(一)課程體系的改革

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

(二)教學模式的創新

1.項目管理式教學模式

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

2.教學形式改進

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

3.三步培養模式

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

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

(三)考核系統的改革

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

實施效果

篇8

關鍵詞:軟件開發;能力培養;案例教學

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

1軟件開發人員能力要求

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

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

2案例實踐教學對軟件人才培養的意義

案例實踐教學對軟件人才培養具有以下優勢:

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

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

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

3實踐教學案例的設計

案例設計的內容、質量以及案例教學的水平是案例實踐教學的基礎,是案例學習成功與否的關鍵。

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

3.1案例設計要求

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

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

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

案例設計中還有一點要特別注意:所選擇的案例不要涉及很深的領域專業知識,又是人們感興趣、經常接觸到的東西,這樣有利于激發學生的學習興趣;另一方面,希望案例涉及多種計算機軟件開發的主流技術,如面向對象程序設計技術、客戶/服務器技術、多線程技術、網絡編程技術、數據庫技術、圖形學、GUI等眾多軟件技術;最后,希望所設計的案例是綜合性的應用軟件,以適合學生綜合開發能力的訓練。

3.2案例詳細設計

基于上述的案例設計要求,以及早期項目的研發經歷,我們選擇股票軟件作為軟件綜合開發實踐教學的案例。首先,股票軟件不涉及很深的領域專業知識,又是現代社會人們非常關注、感興趣、且有可能經常接觸或身陷其中的事物,學生容易入門和感興趣;另一方面,這類軟件其工作模式主要是客戶/服務器的工作模式,涉及到面向對象編程技術、網絡通信技術、數據庫技術、圖形技術、用戶界面技術以及數據結構與算法等眾多軟件技術,其綜合性很強,對學生綜合開發能力的訓練非常合適;最后,我們所選擇的股票軟件Stock-0.0.9是一個早期的開源股票軟件,它是一個股票軟件的雛形,易于學生學習和完善,包括做第二次開發。將該軟件作為案例進行實踐教學可讓學生接觸和應用如下開源技術:

1)Linux操作系統及虛擬機技術;

2)GCC程序設計技術(包括編譯技術、調試技術及集成開發技術等);

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

4) 基于套接字編程的網絡通信技術(支持TCP/IP協議的開源liptcp++庫的應用);

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

6) 股票軟件的結構化程序設計及面向對象編程技術等。

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

4案例教學實踐及成果

4.1實踐情況

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

4.2實踐成果――教材建設

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

1) 教材的主要內容。

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

2) 教材的特色。

① 能夠滿足計算機、軟件工程及相近專業高年級學生在前期學習了程序設計、操作系統、數據庫、計算機網絡等計算機專業基礎課程后,急需通過一個案例或一個項目來應用這些專業基礎知識和技術進行綜合性實驗或實踐,提高自身計算機技術綜合應用能力的需求。

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

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

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

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

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

5.1課程設計目的

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

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

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

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

5.2課時安排

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

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

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

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

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

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

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

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

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

第9單元:對Stock軟件的數據庫應用編程、網絡通信編程等實現方法進行分析,帶領學生解決股票數據庫的建立、股票數據的導入等問題,要求學生掌握Stock軟件中用MySQL C API進行股票數據庫應用、用Socket進行網絡通信的開發技術。

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

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

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

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

5.3課程設計組織

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

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

5.4課程設計考核

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

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

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

② 報告的基礎是每章的實驗習題;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6結語

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

參考文獻:

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

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

[3] 教育部辦公廳關于進一步加強示范性軟件學院建設工作的通知[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

關鍵詞:JAVA程序設計基礎;課程設計;PSP

1前言

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

2課程設計過程控制

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

3課程設計目標考核

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

4結果調研

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

5結語

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

參考文獻

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

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

篇10

關鍵詞:軟件工程;課程群;課程群體系

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

1引言

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

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

2研究現狀

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

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

據調查,通過幾年的探索,目前中國三十多所國家示范性軟件學院均在不同程度上創建了一套以質量為目標,以主動服務于企業為特色,按工程領域需求培養,設置相應的課程體系與實踐環節,同時建立與國內外知名企業合作,成立校內外實訓基地,建立新的工程型軟件人才培養模式。

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

3課程群體系的建設思路

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

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

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

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

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

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

4解決的關鍵問題

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

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

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

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

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

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

5結束語

針對軟件工程專業人才培養的需求,加強以軟件工程為主線的課程群體系的研究和建設,不僅使我們的教學內容更加科學、系統、規范、豐富、充實,也加強了與企業之間的聯系,使得課程教學與實踐教學更加協調,實踐內容更加豐富,提高了學生的實踐能力。

今后我們還要進一步加強和完善課程群體系的建設,在建設中既要進一步充實課程群的課程內容,協調各課程之間的相互關聯、銜接,還要充分考慮各教學、實踐環節的完善和改造,引進和借鑒校外資源和社會資源,使學校的教學優勢與企業實踐平臺等一系列優勢資源結合在一起,在使學生得到良好培養的同時,企業也得到了優秀的人才,學校的培養質量也得到了全面提高。

參考文獻

[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.