軟件工程課程總結范文
時間:2023-04-05 20:36:47
導語:如何才能寫好一篇軟件工程課程總結,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
一、團隊基本情況
團隊名稱:天涯涯小組
團隊成員:組長:張三、李四、王五
二、項目基本概況
項目名稱:無涯博客系統
主要內容:實現用戶的登陸和注冊、博客的與管理、點贊和評論。
三、本人在項目中的主要任務及完成情況
1)主要任務簡介及完成情況
主要負責用戶登錄與注冊模塊的設計與開發
2)相關設計思路及實現成果
項目的實現使用前后端分離的結構實現。前端使用html5 + css3 + javascript語言進行編寫。后端使用node.js實現。后端使用mvc設計模式。數據庫使用Mysql。
項目可以實現用戶的登陸注冊、博客的和管理、評論和點贊。管理員可以實現文章的審核和管理、評論的管理、用戶信息管理。
四、個人實訓成果特點總結
特點1:增強了團隊合作精神
特點2: 極大地提高了自己的動手實踐能力
特點3: 學習了node.js
五、個人實訓成果缺陷總結
缺陷1:敲代碼的速度不夠快
產生原因:平常敲代碼的敲的比較少
改進措施:增加敲代碼的時間
篇2
建構主義認為,學習是學生在原有知識經驗的基礎上對新信息進行主動構建的過程,教學要以學生為中心、設計教學環境、為學生自主建構知識的意義提供各種信息條件。針對軟件工程課程的特點及其實踐教學的不足,依據建構主義理論,提出軟件工程課程的案例教學法。該方法從精選案例、案例分析、案例總結、案例教學效果評價四方面,給出軟件工程課程案例教學的基本過程;同時,指出案例教學是在傳統理論教學基礎上實施的,以及案例教學過程中應該注意的問題;最后,給出案例教學效果的評價方法。教學實踐表明,該方法有助于學生理解和掌握軟件工程的基本原理和方法,提高軟件分析與設計的能力。
關鍵詞:
建構主義;軟件工程;案例教學法
1引言
從學生學習和教師教學兩方面來看,建構主義理論強調:知識是動態的,學生的經驗世界具有差異性,學生學習具有情景性、互動性和主動建構性。學生學習不是被動地接收信息,不是由老師強迫性地灌輸,而是學生根據自己已有的知識背景,主動地選擇、加工和處理外部信息,獲得新知識。學生學習知識是一個主動建構的過程,學生是學習的主體[1]。教師要根據學生建構知識的過程,設計理想的學習情景,幫助學生主動建構知識。教師在學生學習過程中起主導作用。案例教學法于1910年在美國哈佛商學院最早被使用,20世紀80年代初傳入我國。案例教學法是在學生掌握一定理論知識的基礎上,由教師精心選擇案例,案例往往是真實的、典型的、具有代表性的[2]。通過案例情景教學,激發學生的學習興趣,調動學生的主動性,讓學生獨立思考、集體協作地分析問題解決問題,得出可靠的結論,使學生在主動學習的過程中掌握課程的原理和方法,提高學生分析和解決問題的能力,激發學生的創造力,同時培養學生的溝通協作能力,對學生今后發展是十分有利的。軟件工程是計算機相關專業十分重要的專業核心課程,其理論性和實踐性非常強。單純的理論教學往往會使學生感到枯燥乏味,失去學習的主動性。軟件工程的理論來源于實踐,是實踐的理論化和升華[3],因此,只有將具體軟件工程實踐引入課程教學,才能使教學生動具體,才有利于學生理解和掌握相關知識。
2軟件工程案例教學的必要性
目前,軟件工程的課程教學大多采用理論教學為主實驗教學為輔的教學手段,理論教學課時數所占比例較大,實驗教學內容簡單,教學中很少采用案例教學甚至沒有案例教學,學生普遍感到理論知識難以弄懂,即使似乎能夠聽懂,也是似懂非懂,不能將所學知識應用到具體的軟件開發項目中。顯然,這種教學方法在一定程度上忽略了軟件工程課程實踐性強的特點,忽略了培養學生分析問題解決問題的能力,忽略了學生的主動性、參與性和創造性,忽略了學生是學習的主體,根據建構主義的知識觀、學習觀、教學觀,這樣的教學方法難以收到好的教學效果[4]。案例教學法是以學生為主體教師為主導的教學方法,通過對案例的分析,激發學生的求知欲,調動學生的主觀能動性,使學生主動學習,掌握課程涉及的原理和方法,是理論聯系實際的教學方法[5],是符合建構主義理論學習觀、教學觀的教學方法。因此,有必要在軟件工程的課程中采用案例教學方法,通過來源于實踐的真實軟件工程案例,使學生在學習案例的過程中深刻理解掌握軟件工程的基本原理和基本方法[6,7],并能夠將所學知識靈活運用到今后的軟件開發中,解決實際問題。
3精講軟件工程理論
建構主義理論強調學生是在自身已有的知識背景下構建新的知識,而軟件工程課程內容在其前面已開的課程中幾乎沒有涉及,因此,教師在利用案例講解前,必須給學生講解一些基本概念和基本方法,讓學生有一個概貌性的了解、感性的認識,以便在今后利用案例講解時學生能夠結合已有知識來理解案例,從而更深刻理解和掌握所學知識。所以,在實施軟件工程案例教學之前,精講軟件工程理論是必要的。講授理論知識時,教師是知識的呈現者,是知識的傳授者,對軟件工程課程涉及的內容要抓住重點、難點和關鍵點,精講軟件工程的基本原理和基本方法,盡可能使學生對軟件工程的原理和方法有一個基本的認識,為下一步的案例教學做好準備。教師在傳授知識時,可以充分利用多媒體課件,采用一些傳統的教學方法,比如:講授式、啟發式、對比式、小結式等方法進行教學。
4軟件工程案例教學法
建構主義的學習理論認為,學生學習的動力來自生存環境的壓力;學習的過程是學生自己在頭腦中,對知識的意義進行建構的過程;知識不是由教師傳授的,而是學生自己在一定的“情景”中,借助他人的幫助,使用必要的工具和資料,通過“意義建構”的方法獲得的。依據建構主義的學習理論,用案例建立“情景”,提出一個任務,讓學生明白本課程的學習目標;再建立“協作”,讓學生成為實現“情景”的主體,自己動手做,必要時,教師和同學之間互助與合作。然后,建立“會話”,綜合所有課程的知識點,進行綜合練習,提出學習過程中的問題,學生之間商討、交流彼此的意見與學習成果,共同完成規定的學習任務;最后,學生實現“意義建構”,掌握所學知識。
4.1精選案例
案例是建立學習“情景”的關鍵,一個好的案例才能夠引發學生思考和探索,才能有效地進行案例教學[8]。目前,軟件工程中不乏成功案例,但對于具體的教學來說,還要注意由簡到繁、粗細結合等教學規律,精選若干個符合學生水平、真實的小案例和1—2個綜合案例。小案例側重于重要知識點的講解,綜合案例則貫穿課程始終,使學生全面理解掌握實際軟件開發中涉及的任務、方法、技術和工具。精選案例時需要注意幾個方面:(1)目的性。軟件工程課程的教學目標就是要使學生掌握軟件開發過程及其規范,掌握軟件開發、管理、維護的方法、技術及其工具。因此,在選取案例時,必須圍繞這一目標,使得每個小案例都能很好地幫助學生理解軟件工程涉及的各個重要知識點,綜合案例則能幫助學生理解整個軟件的開發過程,切實提高學生分析問題、解決問題的能力,從而提高學生軟件開發、管理和維護的能力。(2)真實性。案例必須來源于現實中的真實軟件項目,這樣才能使學生真正感受到軟件開發需要解決的問題,才能更好地理解軟件開發、管理、維護的過程。(3)代表性。案例所涉及的軟件規模大小、內容、方法、工具等都必須具有代表性,以便學生更好地理解軟件工程,今后能夠舉一反三地解決實際問題。(4)啟發性。案例本身蘊含的問題必須具有啟發性,學生通過解決問題,能夠獲得啟發,能夠更好地理解掌握所學知識。(5)生動性。案例本身必須是生動具體的,這樣才可能激發學生的學習興趣和求知欲,進而積極地解決問題。另外,精選案例時,教師還要考慮案例涉及的關鍵信息、疑難問題、解決疑難問題的方法、各種可能的解決方案以及對解決方案的恰當評價等。
4.2案例分析
教師在精心準備好案例后,就要在課堂上進行案例的討論分析了。在這一過程中,教師要充當一個與學生同樣地位的人,不要認為自己就是權威,要把自己當成學生中的一員,與學生共同探討。這樣,也能營造一個自由輕松的氛圍,讓學生放松心情、積極思考、各抒己見。教師要認真傾聽、適時肯定和鼓勵,并及時做出相應的評價。當學生沒有思路時,教師要進行必要的引導,使學生圍繞案例涉及的問題逐個地討論、分析、解決,實質上學生在不知不覺中就完成了“協作”“會話”和“意義建構”。總之,通過案例的分析講解,教師要讓學生真正體會到弄懂了軟件工程的相關知識點,也知道如何將軟件工程的原理和方法應用到具體的軟件開發、管理和維護中去。軟件問題答案往往不是唯一的。比如,數據流圖、算法設計、軟件結構設計、類圖等等在軟件開發中就可以有多種設計方案。因此,軟件工程課程中的案例分析更注重分析過程,而不要過多地強調結果。事實上,在這樣的案例分析過程中,學生更需要認真研究教材內容、相互討論研究,才可能在發言中有理有據、邏輯清晰、頭頭是道。總之,只要學生在分析過程中,能夠應用軟件工程的原理和方法,有邏輯地分析問題和解決問題,這樣的案例分析課就是成功的。
4.3案例總結
當一個案例討論分析結束后,教師要及時總結。軟件工程涉及的案例往往有不同的答案,教師要對各種答案進行有效的優缺點分析,在充分肯定學生獨立思考的前提下,還要肯定學生分析的亮點和獨到的見解,同時委婉地指出分析中的不足。在總結過程中,尤其要注意問題的本質,結合具體實際,給出恰如其分的評價;案例是用來說明原理和方法的,最終都要歸結到總結案例所涉及的軟件工程基本概念、基本原理和基本方法。只有這樣,才能發揮案例分析的作用。在案例總結的基礎上,進一步要求學生重新審視案例、總結歸納、消化提升,寫出高質量的案例分析報告書。通過這一過程,不僅可以鍛煉學生的書面表達能力和系統分析能力,而且可以使學生更系統更深刻地理解軟件工程的基本原理和基本方法,為學生真正實現“意義建構”打下堅實的基礎。
4.4案例教學效果評價
案例教學是否能夠收到預期的效果,可以采用以下兩種方法進行檢查。(1)學生個人的自我評價。通過案例教學后,學生對所學知識的掌握情況可能會有一個比較清醒的認識,比如:對相關知識是弄懂了還是模糊不清,對解決問題的方法是有思路了還是不知從何處入手,對軟件開發過程是有了清楚的認識還是不知所措等等。(2)有針對性的練習題。有時,案例教學后,學生還是不能準確評價自己。事實上,僅有學生自身的評價也是不夠的。這時,教師有必要出一些有針對性的練習題,讓學生進行自我測試,檢查學生的完成情況,從而更準確地判斷學生對軟件工程的基本思想、概念、原理、方法和技能等的理解和掌握情況。總之,教師通過學生的自我評價,以及學生完成作業的情況,基本可以判斷案例教學效果,從而能進一步改進案例教學法。
5結論
在建構主義知識觀、學習觀和教學觀的指導下,構建軟件工程的案例教學法。一般來說,先使用傳統教學法講授軟件工程的基本原理和方法,再在此基礎上,進行案例教學。通過案例分析使學生進一步理解和掌握所學的原理和方法,達到理論與實踐相結合的統一。該方法不僅可以激發學生的求知欲、提高學習興趣,而且學生在案例的討論、分析、歸納、總結過程中進一步理解和掌握了軟件工程的基本思想、概念、方法和技術,有助于提高學生分析問題、解決問題、相互溝通、相互合作的能力,對學生今后從事軟件開發、管理與維護有一定的指導意義。同時,該方法也要求教師本身的知識水平、教學組織能力、口頭表達能力、綜合素質較好,并具有一定的軟件開發、管理與維護的能力,這樣才能夠較好地控制教學過程,實施有效的案例教學活動。我院計算機相關專業的軟件工程課程教學過程中,案例教學法已被實施,并取得較好的教學效果。
作者:胡俐蕊 陽建中 陳國斌 單位:欽州學院電子與信息工程學院
參考文獻
[4]袁維新.建構主義理論運用于科學教學的15條原則[J].教育理論與實踐,2004,24(10):57-62.
[5]張家軍,靳玉樂.論案例教學的本質與特點[J].中國教育學刊,2004(01):48-50.
[6]張霞,謝桂芳,李盛欣.“軟件工程”課程教學改革的研究[J].軟件工程師,2014,17(05):31-32.
篇3
一、引言
軟件工程是一門交叉性的工程學科,它將計算機科學、數學、工程學和管理學等基本原理應用于軟件的開發與維護中,研究重點是大型軟件系統的分析與評價、規格說明、設計和演化,同時也涉及管理、質量、創新、標準、個人技能、團隊協作和專業實踐等方面的內容。然而,軟件工程開展近30年后,人們才對軟件工程核心的知識體系達成共識。在國際上,ieee-cs和acm聯合組建的軟件工程協調委員會(swecc)了軟件工程知識體系和推薦實踐swebok2004[1],為軟件工程職業實踐建立了合適的準則和規范集,以作為產業決策、職業認證、課程教育的依據。基于swebok,swecc進一步定義了其中可以納入教育程序的知識體系,包括本科生軟件工程教育計劃se2004中的seek、研究生軟件工程教育計劃gswe2009[2]中的cbok、軟件工程職業道德規范和職業實踐。
我國2002年啟動了軟件工程碩士培養程序。借助于計算機科學技術、數學、管理科學與工程諸多學科,軟件工程已由計算機科學與技術專業下的一個學科方向,發展為一個獨立的新興交叉一級學科。但由于我國傳統的高等教育注重科學研究能力培養,工程化人才教育開展時間較短,培養體系尚在不斷改革完善,因此在很多院校中軟件工程學科還沒有脫離計算機科學與技術的范圍,所培養的軟件工程人才與工業界的要求尚有一定距離,整個碩士培養過程中,課程體系的設置是影響研究生業務能力和素質的重要因素,因此以企業需求為導向,以軟件工程知識體系為核心,以訓練實踐能力的為目標的層次化軟件工程課程體系改革對促進高等教育面向社會需求培養人才,全面提高工程教育人才培養質量具有十分重要的示范和引導作用。特別是在碩士生的培養上,對課程學習與學位論文的要本文由收集整理求一般是同等并重,合理的課程體系是高等院校保證培養目標和形成辦學特色的重要手段。軟件工程碩士的定位和其他學生不同,這為我們的課程設置、建設與管理提出了新的挑戰。
通過對國內眾多高校的軟件工程專業培養方案和課程設置進行分析,將其分為以下四種主要類型[3]:
(1)完全獨立型:將軟件工程徹底從計算機科學與技術專業分離出來,作為獨立的一級學科,課程設置上綜合計算機、數學、管理科學與工程等學科,偏重于數學基礎,但實踐能力較缺乏。
(2)以計算機科學與技術主體課程為基礎,以軟件工程理論課程為核心,加強實踐教學型。以計算機科學與技術的課程體系為主體,教學中突出軟件工程的知識體系,加強實踐教學,根據企業需求或者人才市場需要,按照工程思想進行實踐教學,同時校企結合,試圖在實踐中摸索和學習軟件工程的工程理念,但在進行實踐之前的軟件工程理論基礎不牢固。
(3)實踐加強型的計算機科學與技術課程體系,在這個模式下,課程體系基本和計算機科學與技術相同,只是加強了實踐環節,學生在學習和就業方面沒有脫離計算機科學與技術專業,工作中所學的工程理念需要自己去學習。
(4)其他類型,鼓勵學生參加各種軟件大賽,推薦學生參加各種證書的考試,獲取各種軟件企業證書。這種類型中,學生所學內容較多,但是正是為了考試而學習,基礎不扎實,同時真正的工程實踐能力不夠。
因此我們認為,目前的軟件工程還沒有脫離計算機科學與技術的范圍,無論是從傳統計算機科學與技術專業與軟件工程專業的區別,還是本科生與研究生的區別來看,針對軟件工程碩士的課程體系建設和教學改革研究都是十分有必要的,同時也是迫切的。
二、生源基礎分析
gswe2009對給出了軟件工程碩士的三種主要生源:
(1)在職程序員,由于沒有受到過正規研究生教育,有些企業的在職人員對理論知識匱乏,因此具有系統學習的愿望;
(2)其他領域的專業人員,由于軟件工程職業的興起,以及目前人才市場對該專業的需求,使得其他領域的專業人員想要加入軟件工程的隊伍;
(3)沒有工作經驗的本科畢業生,在當前就業壓力下,許多本科畢業生畢業后選擇繼續深造。
在我國,軟件工程碩士研究生多是沒有工作經驗的本科畢業生,正式由于這些大學本科畢業生的基礎專業各不相同,使得軟件工程碩士研究生的課程設置更加復雜和重要。
三、知識體系分析
2004年8月,有全世界五百多位專家教授推出的軟件工程知識體(swebok)和軟件工程教育知識體(seek)兩個文件的最終版本,包含了軟件工程核心類的知識領域、基礎類或前導類的知識領域以及其他相關領域的知識。2009年, gswe2009中的教育知識體系cbok主要來源于swebok,同時也參考了seek2004、incose2003和haskins2007。與swebok2010同步,gswe2009包含了一個新的知識領域ka(職業實踐)和四個關于教育的ka(工程經濟學基礎、計算基礎、數學基礎和工程基礎),同時兩個在swebok中沒有出現的ka(系統工程基礎和職業操守指導)被加入了cbok。此外,cbok還調整了一些知識單元和知識點[4]。gswe2009由準備知識、核心知識、大學特有知識、選擇性知識和頂點經驗所構成。其中的大學特有知識有學生的入學基礎決定,在整個碩士研究生的培養過程中,主要為學生設置學習專業核心知識之前的準備知識以及在學生職業實踐課程中所需要的選擇性知識,而頂點經驗需要學生在學習專業核心知識和進行職業實踐的過程中積累,因此,課程設置中準備知識和專業核心知識的設置以及學習方式尤為重要。
四、課程設置分析
通過對軟件工程知識體系進行分析,軟件工程碩士研究生應具備的主要能力有:基礎開發技能、團隊合作技能、發現并解決問題技能、系統建模技能、文檔撰寫技能。我們將碩士研究生的培養階段分為:理論知識學習、職業實踐、論文撰寫三個階段。在前兩個階段中,我們給出了三單元課程、兩步實踐的方式,三單元課程分別是:必選課單元、必修課單元、自選課單元,兩步實踐有:模擬職業實踐、實際職業實踐。傳統的理論學習和職業實踐通常是完全分開的兩個階段,但在軟件工程這個特殊的學科,我們將理論學習和職業實踐結合起來,在進入理論學習第二單元的同時進入模擬職業實踐階段。理論學習三個單元具體設置如下:
(1)必選課:選擇工程經濟學基礎(例如知識產權與法律、企業管理與文化、領導學、信息經濟學 、市場營銷學等)、計算基礎(例如算法設計與分析、高級軟件工程、高級數據庫、高級操作系統、高級網絡技術)、數學基礎(離散數學 、組合數學、 工程數學、數值分析)等準備知識中的專業主干課程按學科分類作為新生入學的必選課,取代以往將某些固定課程作為所有學生的基礎課的方式,方便根據學生大學所學專業來選擇自己所欠缺的準備知識進行學習,是知識的儲備階段,在本單元根據學生所選課程的成績作為給定學分的依據。
(2)必修課:將軟件工程基礎中的核心知識(例如軟件體系結構、軟件項目管理、軟件質量保證與軟件測試技術、軟件系統建模原理和方法、基于cmm 的軟件過程改進、軟件開發方法、軟件需求工程)作為所有學生的必修課,培養學生能夠系統全面地了解軟件工程的概念,旨在學生具有扎實的軟件工程及相關專業基礎理論,熟練掌握軟件工程知識和技能,并且具備作為軟件工程師從事工程實踐所需的專業能力。在學知識的同時,適當加入模擬職業實踐的訓練,根據學生的學習方向,將學生進行分組,進行模擬題目的訓練,題目可以是各類大賽的題目、教師的科研課題以及學生自己選題,這是學生職業實踐的第一步,培養學生基礎開發技能、團隊合作技能、系統建模以及獨立創新技能,之所以稱之為模擬職業實踐,是因為這一步的實踐題目并不是真正的軟件工程課題,而是采用軟件工程思想的實際課題,為下一步學生進入企業進行第二步的實際職業實踐奠定基礎,在本單元根據學生的課堂表現以及最后考核給出一部分成績,另一部分成績給出的依據是學生實踐課題的完成情況以及在小組中的貢獻程度,培養學生動手實踐的同時,也提高了學生認識自我、團結合作的能力。
(3)自選課:學生根據自己對軟件工程的理解以及通過對上一個單元所做題目的分析,選擇自己所需要補充的基礎專業知識,自行選擇和學習,培養學生發現并解決問題以及自覺學習的能力。在這一單元中,導師根據學生所選專業知識的準確性以及學習之后對該軟件工程專業的認識給出學生的成績。
傳統的課程設置一般都是先學習再實踐,或者是邊學習邊實踐的過程,前者學生在學習理論的同時沒有實踐練習,導致學生理論與實踐結合得不好,后者在學習的過程中進行實踐,鍛煉了動手能力,但是學生往往不知所以然,只是按照老師的講解去實踐,對理論的指導作用理解不夠,而我們通過上面學習-實踐-學習的過程,學生不但對軟件工程相關知識有所掌握,也具備了一定的實踐能力,同時也培養了學生具有不斷補充知識、總結自己、提高自己的意識和能力,在實踐中體會到理論知識的作用,從而能夠主動學習。在這個過程中,學生在學習軟件工程核心知識的同時進入了職業實踐的第一步模擬職業實踐,將理論和實踐很好地融合在一起,使理論的學習過程不再枯燥。
在職業實踐的第二步實際職業實踐中,學生自己從課堂走出去,到實習基地、用人單位或者是校企合作的相關公司企業進行真正的軟件工程實踐,學習良好的職業道德,正規的軟件工程管理方式,同時在實踐中學習和總結自己的研究生學習過程,進入第三階段論文撰寫,這就避免了以往碩士研究生寫論文閉門造車的現象,為論文提供了更好的實踐依據,提高了碩士論文的質量,這一步通過從實踐中回到學習上來培養學生的總結、概括、撰寫文檔的能力。
篇4
1.實踐教學缺乏系統性和針對性目前許多高校“軟件工程”課程除了理論講解外,也加入了實踐教學部分。往往受學時所限,實踐分為軟件項目若干設計文檔的編寫和軟件工程工具的實驗練習。前者受缺乏相應的開發環境、教師虛擬客戶不能很好地反應現實需求、理工科學生的文字表達能力不足等因素的影響,設計文檔的編寫不能很好提高學生能力;后者在一定程度起到了一定的作用,但對于培養學生分析問題、解決問題、管理和團體協作能力方面仍顯不足。
2.評分模式單一軟件工程采用了傳統的閉卷考試方式,平時成績占總成績的30%,期末考試占70%。平時成績=上課出勤情況(10%)+實驗完成情況(10%)+作業完成情況(10%)。任課教師通過對不同的考核內容賦予不同權重來評價學生對軟件工程課程的掌握情況,主要考核學生對課程基本知識的理解。此方法不足以提高學生實際動手的能力,更不利于激發學生實際軟件設計開發的興趣。
二、現有的教學方法的分析
針對上述問題,從事軟件工程的相關教師從不同角度,對軟件工程課程進行了改革。歸納起來主要有如下幾種教學方法改革:
1.自底向上教學法在“軟件工程”課程中應用授課方式主要是用倒敘的方式貫穿完整案例(包含警戒案例),以啟發、討論、辯論的形式講授軟件工程的原理、方法及過程,使學生不覺生疏,易接受,又符合IT從業人員的工作進程。[2]
2.模塊化教學法在“軟件工程”課程中的應用在尊重教學規律和學生個性發展的原則上,根據課程體系和內容之間的關系,將教學部分劃分為若干獨立的模塊,確定模塊之間的關聯,針對不同的教學計劃要求,采用不同的模塊組合有選擇地進行講授和學習。[3]
3.案例教學法在“軟件工程”課程中的應用軟件工程案例教學是根據“軟件工程”課程的教學目的和學生培養目標要求,教師選用相應的案例作為基本素材,引導學生對案例進行調查、思考、分析、討論、設計、開發和交流等相關活動,在活動中教授學生軟件工程的原理、方法及過程,進而提高學生分析和解決問題的能力,加深學生對基本理論知識的理解和掌握。[4]
4.項目驅動教學法在“軟件工程”課程中的應用項目驅動教學法是案例教學法的基礎上采用“案例導向、項目驅動”的教學方法。首先,教師根據要講授的理論知識預先準備一個或者多個小的軟件開發項目;然后,將學生作為主體,以軟件開發項目的研發過程為引導,采用學生小組團隊合作和學生個人獨立完成相結合的教學形式,組織學生開展集體討論并完成相應的實踐性活動,在研發過程中同學和老師要對每位學生所完成的每個階段任務加以點評、督促改進、分享經驗等;最后,學生將成功的軟件給予演示。
5.三位一體式教學法在“軟件工程”課程中的應用根據學生的認識特點和該課程自身的特點以及對“軟件工程”課程在計算機科學專業的定位、教材的選取、課程培養目標的分析下,采取以綜合能力培養為中心、項目實踐為標準,模板、案例、指導說明為輔助的三位一體式的教學思路。[6]對目前在“軟件工程”課程改革中應用的五種方法針對改革側重點進行匯總發現(見表1),單一的教學方法只是在理論教學、實踐教學和考核方式某一方面發揮了很好的作用,而不能從全面發揮效果,而對于“軟件工程”課程來說三者同樣重要。
三、基于多元教學法的課程改革新模式
某一種教學模式改革已經不能滿足現代“軟件工程”課程教學的要求,只有將多元教學模式組合在一起,充分考慮各自對課程教學的優勢,避其缺點,找到一種既能使學生具有良好的理論基礎,又能充分培養學生實踐能力,還能準確地考核學生的教學模式。本次課程改革就是本著這樣一種思想,從理論教學、實踐教學和考核方式三個方面進行多樣化改革。
1.理論教學內容多樣化
理論知識的學習在學生以后軟件項目開發過程中具有必要性和重要性,軟件工程學習過程中要重視基礎和基本技能的培養。學生要具有開發軟件項目的能力,首先要熟悉掌握軟件工程相關的理論知識,特別是對如何按照工程化的方法系統地設計、實現、測試和維護大型軟件,內容包括:軟件開發的基本理論、方法和技術;其次是了解目前已有系統、工具和技術。(1)授課內容引入案例。教師在教學過程中引入與理論知識相匹配的實際案例,將比較抽象的軟件工程原理、方法和技術轉為具體生動的案例進行詮釋,增強理論教學的藝術性、科學性、趣味性、形象性,使學生能夠在課堂上深刻領會和理解軟件工程的思想和方法,教學效果收到了事半功倍。(2)適時更新教學內容。近幾年,軟件原理、方法和技術發展較快,許多適應時展的軟件不斷涌出,而目前的教材雖不斷改版更新,但其更新的速度遠遠跟不上軟件工程的發展。因此,教師在進行理論講解時,除了要教授學生基本原理、技術和方法外,還要時刻關注新內容的出現。(3)制作豐富多彩的課件。采用多媒體教學手段,在課件中插入圖片、動畫、聲音、視頻等多媒體元素,使教學內容更加充實和生動。(4)課堂小組討論。從小問題到大問題,讓學生參與教學過程,有機會發表自己的看法。課堂討論和分析試驗,使理論有實踐作支撐,抽象的知識變得看得見,用得著,大大激發學生學習的興趣和自信。
2.實踐教學內容多樣化
軟件工程理論的講解是課程學習和技能培養的基礎,而軟件工程中許多理論內容如果只是教師講解不加以實踐,內容本身就會變得空洞和不可理解,例如:軟件復雜性計算、軟件可靠性與安全性的測量標準、結構化的實現方法等都需要學生動手實踐才能更好地理解知識本身的內涵。掌握概念、原理、方法和技術,熟練應用軟件開發實踐中的方法和技術是“軟件工程”課程對學生的培養目標。(1)課程角色扮演。教師預先選擇若干小項目,班內學生根據自己對項目熟悉情況選擇項目名稱,劃分項目小組,每組人數不超過6人,每個項目小組成員根據自身特長選擇不同軟件工程角色,例如項目負責人、需求分析負責人、設計負責人、編碼負責人、測試負責人和用戶代表,進行項目分工。項目組成員按時完成自己負責任務,撰寫相應文檔。教師幫助學生分析和解決所遇到問題。在整個開發過程可以體現“學以致用”的思想,實現理論與實踐相結合。(2)課程設計。課程設計主要是針對高年級學生在學習軟件工程課程時開展的專項訓練。課程設計采取在學校內模擬IT企業環境下完成來自企業案例或開發一些具有應用價值項目或學校教師承擔的開發項目的部分開發工作,也可以是學生自選項目,整個課程設計階段嚴格按照工程實施的基本思想來實施。(3)加強校企合作。一方面經常邀請軟件公司長期從事軟件設計、開發和項目管理的工程師和項目經理,給學生講解自己在軟件設計、開發和管理中的經驗,高質量軟件產品需要經過怎樣的開發過程,軟件生命周期中標準文檔如何撰寫等相關內容;另一方面,利用寒暑假時間,讓學生走出去,到軟件產品的研發單位實地實習。
3.考試方式多樣化
傳統的考核方式已經不能反映學生實際軟件開發的水平,也與多樣化的教學模式不相匹配,為此多樣化的考核方式才符合現實需求,主要包括:筆試、課后角色扮演、課程設計和項目總結。(1)筆試占總成績的35%,主要考查學生理論知識的掌握情況和學習效果。(2)課后角色扮演占總成績的15%。由教師根據每位學生在課后角色扮演中的具體表現進行打分,主要由3部分取平均值組成:1/3*(整個項目的成績+自己負責完成的文檔成績+組內其他成員負責完成的文檔的平均成績)。(3)項目總結或心得體會占總成績的15%。根據學生在軟件開發過程中所撰寫的經驗和教訓總結報告、每個小組成員建立的個人開發記錄或日志的實際情況,相互打分。
四、基于多元教學模式課程改革方案
基于上述改革理念,按照軟件工程開發原理、方法和技術,選用典型項目案例,將學生按照項目分成若干個小組,每組人數不超過6人。每個小組對應著一個具體的項目,每個人對應著一個具體工作過程,按照如下步驟進行多元教學。第一步,教師選用合適的教學內容,制作豐富多彩的課件,對學生進行基本理論和基本技能的講解。在每一個軟件生命周期結束后,教師進行案例場景描述。教師按照理論知識的內容,選擇相應的案例進行描述,學生將所學內容運用到相關案例中。教師通過案例讓學生明白理論知識如何應用,學生通過案例體會到小項目中所學的原理、方法和技術是如何實現的。第二步,課后角色扮演。學生通過分組討論的方式,完成項目分工,明確自己在項目中所扮演的角色。所有的任務通過集體討論的方式,決出所要完成的任務,并由相應的角色人實際操作完成。例如,需求分析一章內容,學生課后進行項目小組討論,決定需求分析的內容,進行相應的需求分析,并由扮演需求分析人員的學生完成需求報告。軟件開發過程需要整個團隊的通力合作,根據學生的性格、表達能力、開發能力、理論基礎掌握情況等方面進行人員分組,將具有不同特點的學生組成一個團隊完成項目開發。這種團隊合作的方式,既能發揮學生各自的特長,又能培養學生的團隊合作精神。第三步,課程設計。當全部內容講解完成,就可以開始長達2周的課程設計內容了。這段時間要求項目小組,徹底完成一個由教師虛擬的項目。此步驟中,主要培養學生良好的科研習慣,在開發過程中及時總結經驗和教訓,建立個人開發記錄或日志,理論聯系實際學著開發軟件。第四步,學生總結,教師點評。學生經過多個教學環節后,每個團隊在一定程度上完成了各自的項目任務,對各自團隊的成果進行總結。教師聽取每個團隊的匯報后,從橫向和縱向兩個方面對項目成果之間進行比較,從而讓每一位學生明白自己在團隊中發揮了什么作用,自己哪些方面不足。第五步,請進來,走出去。通過學校和企業合作的方式,一方面經常邀請軟件公司長期從事軟件設計、開發和項目管理的工程師和項目經理,給學生講解自己在軟件設計、開發和管理中的經驗,高質量軟件產品需要經過怎樣的開發過程,軟件生命周期中標準文檔如何撰寫等相關內容;另一方面,利用寒暑假時間,讓學生走出去,到軟件產品的研發單位,實地實習。
五、結束語
篇5
關鍵詞:多元教學模式;軟件工程;案例教學法
作者簡介:司春景(1981-),女,新疆阿拉爾人,塔里木大學信息工程學院,講師;李向陽(1973-),男,新疆阿拉爾人,塔里木大學信息工程學院,副教授。(新疆 阿拉爾 843300)
基金項目:本文系塔里木大學本科質量工程特色專業“計算機科學與技術”(項目編號:20090627)的研究成果。
中圖分類號:G642.0 文獻標識碼:A 文章編號:1007-0079(2013)07-0098-03
“軟件工程”是一門指導計算機軟件系統開發、維護和管理的學科,主要利用工程概念、原理、技術和方法,將現代技術方法和正確的管理技術相結合,重點研究應用軟件開發的基本理論和工程技術來指導軟件系統的開發、維護和管理。“軟件工程”課程是學生參加工作以后最能直接應用的一門專業核心課,它要求做出一個滿足用戶要求的系統,這是一個很具體的實踐過程,具有很強的工程和項目背景。[1]
一、傳統教學模式的問題
“軟件工程”是計算機專業學生的一門基礎必修課。在目前的教育體系下,大學生學習知識的主要途徑是教師講授。傳統的“軟件工程”課程教學模式在理論教學方面重視基本知識的教授;在教學原則上強調教學的直觀性、系統性和鞏固性;在教學方法上強調學生預習、教師講授和學生反復復習記憶;在教學組織形式上則選用“填鴨式”教學。這種強調知識的單線注入和忽略學生思維訓練的方法,不能很好地調動學生的學習主動性,不能起到很好的學習效果。當前高校軟件工程課程教學中存在以下突出問題:
1.教材重理論輕實踐
對于沒有任何大型軟件開發經驗或參與開發的高校本科生,如果教材只關注軟件工程理論的講解,包括軟件開發模型、分析和設計方法等,則學生無法將理論聯系實際,所學內容不知所云,更無法在日后發展中將理論與實際相結合。
2.實踐教學缺乏系統性和針對性
目前許多高校“軟件工程”課程除了理論講解外,也加入了實踐教學部分。往往受學時所限,實踐分為軟件項目若干設計文檔的編寫和軟件工程工具的實驗練習。前者受缺乏相應的開發環境、教師虛擬客戶不能很好地反應現實需求、理工科學生的文字表達能力不足等因素的影響,設計文檔的編寫不能很好提高學生能力;后者在一定程度起到了一定的作用,但對于培養學生分析問題、解決問題、管理和團體協作能力方面仍顯不足。
3.評分模式單一
軟件工程采用了傳統的閉卷考試方式,平時成績占總成績的30%,期末考試占70%。平時成績=上課出勤情況(10%)+實驗完成情況(10%)+作業完成情況(10%)。任課教師通過對不同的考核內容賦予不同權重來評價學生對軟件工程課程的掌握情況,主要考核學生對課程基本知識的理解。此方法不足以提高學生實際動手的能力,更不利于激發學生實際軟件設計開發的興趣。
二、現有的教學方法的分析
針對上述問題,從事軟件工程的相關教師從不同角度,對軟件工程課程進行了改革。歸納起來主要有如下幾種教學方法改革:
1.自底向上教學法在“軟件工程”課程中應用
授課方式主要是用倒敘的方式貫穿完整案例(包含警戒案例),以啟發、討論、辯論的形式講授軟件工程的原理、方法及過程,使學生不覺生疏,易接受,又符合IT從業人員的工作進程。[2]
2.模塊化教學法在“軟件工程”課程中的應用
在尊重教學規律和學生個性發展的原則上,根據課程體系和內容之間的關系,將教學部分劃分為若干獨立的模塊,確定模塊之間的關聯,針對不同的教學計劃要求,采用不同的模塊組合有選擇地進行講授和學習。[3]
3.案例教學法在“軟件工程”課程中的應用
軟件工程案例教學是根據“軟件工程”課程的教學目的和學生培養目標要求,教師選用相應的案例作為基本素材,引導學生對案例進行調查、思考、分析、討論、設計、開發和交流等相關活動,在活動中教授學生軟件工程的原理、方法及過程,進而提高學生分析和解決問題的能力,加深學生對基本理論知識的理解和掌握。[4]
4.項目驅動教學法在“軟件工程”課程中的應用
項目驅動教學法是案例教學法的基礎上采用“案例導向、項目驅動”的教學方法。首先,教師根據要講授的理論知識預先準備一個或者多個小的軟件開發項目;然后,將學生作為主體,以軟件開發項目的研發過程為引導,采用學生小組團隊合作和學生個人獨立完成相結合的教學形式,組織學生開展集體討論并完成相應的實踐性活動,在研發過程中同學和老師要對每位學生所完成的每個階段任務加以點評、督促改進、分享經驗等;最后,學生將成功的軟件給予演示。[5]
5.三位一體式教學法在“軟件工程”課程中的應用
根據學生的認識特點和該課程自身的特點以及對“軟件工程”課程在計算機科學專業的定位、教材的選取、課程培養目標的分析下,采取以綜合能力培養為中心、項目實踐為標準,模板、案例、指導說明為輔助的三位一體式的教學思路。[6]
對目前在“軟件工程”課程改革中應用的五種方法針對改革側重點進行匯總發現(見表1),單一的教學方法只是在理論教學、實踐教學和考核方式某一方面發揮了很好的作用,而不能從全面發揮效果,而對于“軟件工程”課程來說三者同樣重要。
三、基于多元教學法的課程改革新模式
某一種教學模式改革已經不能滿足現代“軟件工程”課程教學的要求,只有將多元教學模式組合在一起,充分考慮各自對課程教學的優勢,避其缺點,找到一種既能使學生具有良好的理論基礎,又能充分培養學生實踐能力,還能準確地考核學生的教學模式。本次課程改革就是本著這樣一種思想,從理論教學、實踐教學和考核方式三個方面進行多樣化改革。
1.理論教學內容多樣化
理論知識的學習在學生以后軟件項目開發過程中具有必要性和重要性,軟件工程學習過程中要重視基礎和基本技能的培養。學生要具有開發軟件項目的能力,首先要熟悉掌握軟件工程相關的理論知識,特別是對如何按照工程化的方法系統地設計、實現、測試和維護大型軟件,內容包括:軟件開發的基本理論、方法和技術;其次是了解目前已有系統、工具和技術。
(1)授課內容引入案例。教師在教學過程中引入與理論知識相匹配的實際案例,將比較抽象的軟件工程原理、方法和技術轉為具體生動的案例進行詮釋,增強理論教學的藝術性、科學性、趣味性、形象性,使學生能夠在課堂上深刻領會和理解軟件工程的思想和方法,教學效果收到了事半功倍。
(2)適時更新教學內容。近幾年,軟件原理、方法和技術發展較快,許多適應時展的軟件不斷涌出,而目前的教材雖不斷改版更新,但其更新的速度遠遠跟不上軟件工程的發展。因此,教師在進行理論講解時,除了要教授學生基本原理、技術和方法外,還要時刻關注新內容的出現。
(3)制作豐富多彩的課件。采用多媒體教學手段,在課件中插入圖片、動畫、聲音、視頻等多媒體元素,使教學內容更加充實和生動。
(4)課堂小組討論。從小問題到大問題,讓學生參與教學過程,有機會發表自己的看法。課堂討論和分析試驗,使理論有實踐作支撐,抽象的知識變得看得見,用得著,大大激發學生學習的興趣和自信。
2.實踐教學內容多樣化
軟件工程理論的講解是課程學習和技能培養的基礎,而軟件工程中許多理論內容如果只是教師講解不加以實踐,內容本身就會變得空洞和不可理解,例如:軟件復雜性計算、軟件可靠性與安全性的測量標準、結構化的實現方法等都需要學生動手實踐才能更好地理解知識本身的內涵。掌握概念、原理、方法和技術,熟練應用軟件開發實踐中的方法和技術是“軟件工程”課程對學生的培養目標。
(1)課程角色扮演。教師預先選擇若干小項目,班內學生根據自己對項目熟悉情況選擇項目名稱,劃分項目小組,每組人數不超過6人,每個項目小組成員根據自身特長選擇不同軟件工程角色,例如項目負責人、需求分析負責人、設計負責人、編碼負責人、測試負責人和用戶代表,進行項目分工。項目組成員按時完成自己負責任務,撰寫相應文檔。教師幫助學生分析和解決所遇到問題。在整個開發過程可以體現“學以致用”的思想,實現理論與實踐相結合。
(2)課程設計。課程設計主要是針對高年級學生在學習軟件工程課程時開展的專項訓練。課程設計采取在學校內模擬IT企業環境下完成來自企業案例或開發一些具有應用價值項目或學校教師承擔的開發項目的部分開發工作,也可以是學生自選項目,整個課程設計階段嚴格按照工程實施的基本思想來實施。
(3)加強校企合作。一方面經常邀請軟件公司長期從事軟件設計、開發和項目管理的工程師和項目經理,給學生講解自己在軟件設計、開發和管理中的經驗,高質量軟件產品需要經過怎樣的開發過程,軟件生命周期中標準文檔如何撰寫等相關內容;另一方面,利用寒暑假時間,讓學生走出去,到軟件產品的研發單位實地實習。
3.考試方式多樣化
傳統的考核方式已經不能反映學生實際軟件開發的水平,也與多樣化的教學模式不相匹配,為此多樣化的考核方式才符合現實需求,主要包括:筆試、課后角色扮演、課程設計和項目總結。
(1)筆試占總成績的35%,主要考查學生理論知識的掌握情況和學習效果。
(2)課后角色扮演占總成績的15%。由教師根據每位學生在課后角色扮演中的具體表現進行打分,主要由3部分取平均值組成:1/3*(整個項目的成績+自己負責完成的文檔成績+組內其他成員負責完成的文檔的平均成績)。
(3)項目總結或心得體會占總成績的15%。根據學生在軟件開發過程中所撰寫的經驗和教訓總結報告、每個小組成員建立的個人開發記錄或日志的實際情況,相互打分。
四、基于多元教學模式課程改革方案
基于上述改革理念,按照軟件工程開發原理、方法和技術,選用典型項目案例,將學生按照項目分成若干個小組,每組人數不超過6人。每個小組對應著一個具體的項目,每個人對應著一個具體工作過程,按照如下步驟進行多元教學。
第一步,教師選用合適的教學內容,制作豐富多彩的課件,對學生進行基本理論和基本技能的講解。在每一個軟件生命周期結束后,教師進行案例場景描述。教師按照理論知識的內容,選擇相應的案例進行描述,學生將所學內容運用到相關案例中。教師通過案例讓學生明白理論知識如何應用,學生通過案例體會到小項目中所學的原理、方法和技術是如何實現的。
第二步,課后角色扮演。學生通過分組討論的方式,完成項目分工,明確自己在項目中所扮演的角色。所有的任務通過集體討論的方式,決出所要完成的任務,并由相應的角色人實際操作完成。例如,需求分析一章內容,學生課后進行項目小組討論,決定需求分析的內容,進行相應的需求分析,并由扮演需求分析人員的學生完成需求報告。軟件開發過程需要整個團隊的通力合作,根據學生的性格、表達能力、開發能力、理論基礎掌握情況等方面進行人員分組,將具有不同特點的學生組成一個團隊完成項目開發。這種團隊合作的方式,既能發揮學生各自的特長,又能培養學生的團隊合作精神。
第三步,課程設計。當全部內容講解完成,就可以開始長達2周的課程設計內容了。這段時間要求項目小組,徹底完成一個由教師虛擬的項目。此步驟中,主要培養學生良好的科研習慣,在開發過程中及時總結經驗和教訓,建立個人開發記錄或日志,理論聯系實際學著開發軟件。
第四步,學生總結,教師點評。學生經過多個教學環節后,每個團隊在一定程度上完成了各自的項目任務,對各自團隊的成果進行總結。教師聽取每個團隊的匯報后,從橫向和縱向兩個方面對項目成果之間進行比較,從而讓每一位學生明白自己在團隊中發揮了什么作用,自己哪些方面不足。
第五步,請進來,走出去。通過學校和企業合作的方式,一方面經常邀請軟件公司長期從事軟件設計、開發和項目管理的工程師和項目經理,給學生講解自己在軟件設計、開發和管理中的經驗,高質量軟件產品需要經過怎樣的開發過程,軟件生命周期中標準文檔如何撰寫等相關內容;另一方面,利用寒暑假時間,讓學生走出去,到軟件產品的研發單位,實地實習。
五、結束語
在多元教學過程中,理論教學利用多媒體PPT充實了課堂內容,小組討論調動了學生積極性,不斷更新的教學內容跟上了發展,以及啟發式的案例教學提高了學生的能力;實踐教學從課后角色扮演、期末集中時間課程設計,到寒暑假校企實習,整個過程依據軟件工程思想逐步的從小角色的扮演,團結合作做一個虛擬項目,到真正到軟件公司去實習工作,提高了學生的語言表達能力、分析問題能力、實踐動手能力和軟件工程協作、紀律等。考核方式不再是單一的方式,除了考查基本理論的掌握情況,還考核學生是否已經具備了一定的動手能力和科研能力。從理論教學、實踐教學和考核方式三個方面進行多元教學,按照方案進行實施,強調動手能力,將工作過程的職業環境融入學習過程中,將學生對知識、職業能力的掌握程度提高到了實踐這一層面,使得學生能真正進入到“在學中做,在做中學”的理想學習環境中。
參考文獻:
[1]張海潘.軟件工程導論[M].第五版.北京:清華大學出版社,2008.
[2]溫春友,敖廣武.對軟件工程課程自底向上教學模式的探索[J].遼寧高職學報,2008,(3):27-28.
[3]孫知信.軟件工程課程模塊化教學改革的實踐與思考[J].南京郵電學院學報(社會科學版),2004,(2):39-42.
[4]彭佳紅,彭佳文,等.基于案例的軟件工程課程教學研究[J].高等農業教育,2009,(11):60-62.
篇6
關鍵詞:軟件工程;教學改革;教學方式
中圖分類號:G64 文獻標識碼:B
文章標號:1672-5913 (2007) 23-0038-02
軟件工程工程是一門理論性和實踐性很強的計算機專業課,涉及計算機科學、數學、工程學、管理學等多個領域知識,是一門軟件開發中經驗總結出來的理論課程。它的教育目標是讓學生掌握軟件開發中的管理和技術,并應用于實踐。軟件工程的教學成效直接影響學生今后從事軟件開發和軟件項目管理的能力,但是在教學實踐中學生往往感到軟件工程內容太抽象,實用性不大,很難達到較好的教學效果。為了能改變現有的狀況,本文從課程的教學內容、教學方式、教學手段、考核方式等提出一些改革方案。
1教學內容要緊跟軟件行業發展趨勢
軟件工程發展日新月異,軟件開發方法和技術在不斷的更新,雖然教材也在不斷更新內容,但很難及時準確地反映當前軟件發展的最新技術,因此,教師在教學過程中不能僅講授書本內容,而是要注意新技術、新方法的傳授。許多軟件工程教材以結構化方法為主要內容,而面向對象方法學已是當今軟件開發方法中的主流技術,因此,在制定教學大綱和教學過程中要以面向對象方法學為主,使學生掌握OOA、OOD到OOP軟件開發的基本過程,掌握面向對象的建模工具Rational Rose和建模語言UML。同時,我們邀請國內較著名的軟件公司的項目負責人給學生作專題報告,講授一些當今軟件企業最新開發技術和管理方法,這樣不僅使學生開拓自己的知識范圍,也了解了IT企業的人才需求,使他們今后走向社會不至落伍,使自己的學習更有方向性和主動性。
2案例式教學方式的探討
2.1強化理論聯系實際的教學方法
軟件工程講授的原理、技術和方法都較為抽象,由于大多數學生缺乏實際的軟件開發經驗,不能很好地理解軟件工程的思想和原理,容易產生枯燥乏味的感覺,因此,在具體的教學中,引入一個典型的、完整的、易于理解的、具有實際意義的案例,將復雜抽象的概念用具體生動的案例進行詮釋。如在講授軟件工程中的生命周期方法學時,從問題的定義,到可行性研究、需求分析、總體設計、詳細設計、編碼、測試、維護,均以開發一個小型的銀行儲蓄系統為例。這樣不僅使所講授的知識具有連續性,也使學生從具體案例中學會DFD、DD、E-R圖、層次方框圖、Warnier圖、HIPO圖和Jackson圖的繪制,由此掌握這些圖的真正作用和含義。
2.2組織好綜合設計,培養軟件開發和編寫文檔的能力
案例式教學貫穿于軟件工程的全過程,除了通過案例來講解軟件工程的原理和方法外,還必須讓學生動手參與案例的分析與設計。為此,我們在理論課后進行四周的軟件工程綜合設計。
軟件工程綜合設計應以團隊合作的形式進行,每個小組5~6人分工合作,分別擔任客戶,項目經理,系統分析員,程序員和測試員角色,要求運用軟件工程中面向對象技術、方法和按照軟件過程規范分階段實施,每個小組在教師的指點下,完成項目的開發計劃、可行性研究、需求分析、概要設計、詳細設計、編碼、測試、用戶手冊和總結。同時每個階段結束后都要有成果展示,如在分析階段按照軟件國家標準GB8567提供的模板編寫相關的文檔,測試階段要給出測試方案,每個階段以答辯的形式進行考核評分。這樣不僅鍛煉學生團隊合作和相互溝通的能力,而且系統地消化了所學的理論知識,同時學會如何利用軟件工程的原理、方法開發一個實際項目,訓練項目設計的思路,培養嚴格規范的項目開發方法、步驟和規范地撰寫文檔的能力,為他們今后走向工作崗位作好鋪墊。
3改革課程考核方式
軟件工程作為實踐性很強的一門課程,檢驗的重點不是理論課考試分數,而是學生能否真正掌握軟件開發方法、思想和解決問題的能力,因此應適當加大實踐考核的力度。我們提出方案是平時成績占10%,軟件分析與設計占40%,試卷成績占50%。同時為了避免學生在考試時死記硬背,我們采取開卷考試,重點考查學生的軟件分析與綜合應用能力,應用題應占試卷的主要比重。這樣提高了學生對知識理解和運用能力。
總之,要改進軟件工程的教學,必須針對其實踐性強、發展迅速的特點,根據軟件行業需求的變化不斷更新教學大綱和教學內容,設計合理的教學方式,理論與實踐相結合,在突出課程基本概念和原理的同時,更應側重于對學生的軟件工程應用能力的培養和軟件工程新技術、方法的傳授。為國家和社會培養出符合時代要求的軟件工程人才。
參考文獻
[1] 萬江平,等.軟件工程知識體系指南綜述[J].計算機應用研究,2006,10:1-3.
[2] 周蘇,等.軟件工程實驗教學的設計與創新[J].計算機教育,2006,10:27-29.
[3] 沈備軍,等.軟件工程教學模式的研究和實踐[J].計算機教育,2005,1:39-41.
[4] 尹鋒.“軟件工程”課程教學改革初探 [J].長沙大學學報,2004,4:77-80.
[5] 唐偉.《軟件工程》精品課程建設的探討 [J].福建電腦,2006,7:214-215.
篇7
通過對吉首大學連續多年所開設“軟件工程”課程的教學過程及教學效果分析,結合多篇相關教改論文的分析,發現當前的“軟件工程”課程教學存在以下主要問題:
1.重理論,輕實踐,理論與實踐結合不緊密
目前,國內高校普遍沿用傳統的教學方式,以教師課堂授課為主,側重講授軟件工程開發中的相關理論,學生被動聽課,通常感覺所學內容過于抽象,無法調動學習興趣。即使每個學校都開設了對應的實驗課程,往往也側重對學生文檔撰寫能力的提高,無法從市場需要出發,讓學生利用軟件工程的開發思想,結合需要解決的實際問題,設計出真正可行的軟件系統。
2.教學內容無法反映技術的快速更新
隨著信息技術的快速發展,人們積累了大量的軟件開發經驗,并不斷出現許多新的軟件開發方法和開發工具。另一方面,由于人們利用軟件處理問題的領域不斷擴大,問題的復雜度也不斷增加,這些均需要人們不斷調整軟件工程授課的內容,增加新的軟件開發思想、軟件開發方法和軟件工具使用等方面的知識。而目前,由于教材內容更新速度遠遠跟不上技術的更新,使得教學內容也無法及時更新。
3.課程考核無法真正反映學生對知識的掌握程度
首先,目前大量的考試僅用于檢驗學生對課程知識的掌握程度,促進學生進一步學習的功能無法實現,讓學生對考試的認識浮于表面,同時還導致了部分學生害怕考試,在心理上抵制考試。其次,考試形式單一,由于期末考試容量有限,時間比較固定,不能全面、客觀、及時準確地反映學生對知識的掌握程度,無法發現具有巨大潛能的同學。此外,一方面,由于考試在課程結束之后進行,結果分析則需要等到學期結束才能進行,根本無法對學生的學習過程進行指導;另一方面,考試結果分析也進行是對成績分布做出簡單的統計分析等,沒有深度考查其中的原因。由上可見,現有的課程考核無法反映學生對課程知識的掌握,更無法體現學生應用課程知識的能力。
“軟件工程”課程的教學改革策略
課程的教學改革將從教學的知識體系、課程教學實施、實踐課程改革及考試改革等四個方面進行實施:1.以IEEE-CS與ACM最新的軟件工程知識體系為基礎框架,結合教育部高等學校計算機科學與技術教學指導委員會組織撰寫的軟件工程課程教學實施方案,從當前軟件工程的理論和實踐出發,融合企業的先進技術和最佳實踐,構建以統一開發過程、面向對象技術和UML語言為核心內容的“軟件工程”授課內容體系、授課大綱及授課進度安排。
2.課堂教學改革:在課堂教學中,主要采用案例教學的策略,通過利用各種不同類型的案例的講解,讓學生通過對實際案例的學習,將抽象模型與實際應用結合起來。在案例的選取過程中,需要遵循以下原則:(1)實用性原則,即所選案例能夠滿足專業培養的需要,可用適當的課時對案件進行講解,有利于學生對軟件工程開發過程的理解。(2)完整性原則,所選的實例能完整反映軟件開發的全過程,在授課過程中,可以通過對同一案例不同階段的持續講解,讓學生逐步學會對項目的分解和分析。(3)規范性原則,即所選案例的描述、分析、設計以及文檔的撰寫等符合軟件工程專業規范要求。(4)多樣性原則,即所選取的多個案例之間要具有一定的差異性,讓學生能體會到不同的軟件設計方法、不同的軟件開發模型以及不同工具使用等方面的特征,以便于在實際工作中能合理選擇,靈活運用。在授課前,教師首先要選擇好合適的案例,設計好案例講解的流程,并預留若干問題供學生思考與討論。在講授過程中,教師需要對案例的應用場景及注意事項做出交代,引導學生積極思考,并在學生的討論過程中記錄好重點問題。在學生討論結束后選代表發言,并由教師做出一定點評和總結。
3.實踐教學改革:通過“軟件工程”課程項目庫建設,在實踐教學過程中依據學生的學習能力、興趣等分成不同小組,并為每個小組分配合適的項目進行實驗。實驗中需根據學生的特點進行角色分配,為了更好的完成專業培養目標的需要,在實驗過程中還需將學生的角色進行適當輪換,讓每個學生能體驗不同角色在不同階段的職責與任務。
4.考核機制改革:通過隨堂考查、實驗考核、項目分組評分、試卷考試等多種方式,全面考核學生對知識點的掌握情況,及時準確的了解學生學習效果。此外還需完善課程的試題庫、試卷庫及項目庫的建設。
總結
篇8
關鍵詞:軟件工程;知識體系;本科教育;研究生教育;教學改革
每種工程職業都有一個職業基礎知識體系及其推薦的實踐。這一知識體系多數情況下可以組織成正式文檔,并為理論指導文件、教育程序、培訓程序、專家認證或職業執照等。在國際上,IEEE-CS和ACM聯合組建的軟件工程協調委員會(SWECC)了軟件工程知識體系和推薦實踐SWEBOK2004[1],為軟件工程職業實踐建立了合適的準則和規范集。基于SWEBOK,SWECC進一步定義了其中可以納入
教育程序的知識體系,包括本科生軟件工程教育計劃SE2004[2]中的SEEK、研究生軟件工程教育計劃GSwE2009[3]中的CBOK、軟件工程職業道德規范和職業實踐[4]。國內有過較好實踐的有南京大學的軟件工程教育知識體系[5-7]。
本文在分析SEEK和CBOK的基礎上,求精與重構軟件工程專業學科教育知識體系,包括:1)按照“新視角、新認知、新方法”確定計算基礎部分在教學中的重點,解決SEEK對CS知識單元的“鴕鳥”化處理問題;2)基于教學實踐總結求精本科階段軟件工程最小核心教育知識點。該項工作試圖能夠更好指導各個層次教育機構的教學活動,適應從具有國際競爭能力的高端工程型軟件人才到面向具體應用領域的基礎軟件開發實用人才的多層次培養需要。
1SEEK分析
SE2004[2]定義了本科生軟件工程教育知識體系SEEK,包括知識領域(KA)、知識單元和知識點3個層次,采用Bloom分類法,并在知識單元級別給出了最小核心課時數。SEEK共有10個知識領域,42個知識單元,最小核心學時數為494,詳見表1。
SEEK歷經5年實踐,其系統性、全面性、先進性和實用性均得到了較好驗證。但作為確立軟件工程專業的第1版教育知識體系,SEEK過于強調新學科確立的知識領域,忽視了對繼承學科的相關知識領域的描述,從而影響到相當一部分教育機構對于知識體系的理解和執行。如:1)計算機科學基礎擁有140個核心學時,占SEEK總核心學時數的三分之一,但僅僅作為一個知識單元存在,如何執行?SE2004建議去參考CS2001,但是CS2001中的知識領域僅對應于SE2004中的知識點,大多數教育機構很難理解SE如何調整求精CS,因此很難對CS的核心課程進行調整與改革。2)很多教育機構反映軟件工程相關知識領域的核心學時數比較多,在高等教育大眾化階段下,應該允許教育機構根據自己的人才培養定位,適當削減本科階段的軟件工程核心學時數,也有益于培養面向某一應用領域的實用型軟件人才。
2CBOK分析
GSwE2009[3]給出了研究生軟件工程教育知識體系CBOK。CBOK以SWEBOK的組織和內容為藍本,但進行了一些修改。包括:1)加入了系統工程基礎和職業操守指導兩個新的KA。2)重新安排或修改了一些知識單元和知識點,如人機交互設計被加入到軟件設計KA;工程經濟學單元被加入到軟件工程管理KA;風險管理單元被加入到軟件工程管理KA;
軟件檢驗和有效性驗證單元被加入到軟件質量KA;以及部分名稱的改變和知識單元/點組織的改變。值得注意的是,即將的SWEBOK2010也在進行同步修改。
GSwE2009 指出了軟件工程專業研究生面臨寬泛的入學準備條件,包括:1)獲得過相關學士學位;2)學習過SwE相關課程;3)具有2年的SwE相關經驗。CBOK則具體組織為預備材料、核心材料、大學特有材料、選擇性材料、頂點經驗等部分。學生對每個KA所應該掌握的程度,CBOK使用了K(知識)、C(理解)、AP(應用)和AN(分析)等4個級別。
CBOK預備材料指出了學生在進入碩士階段學習的時候所必須具有的知識,這些知識可以從大學本科的教育、軟件開發經驗、機構的認證課程中獲得。表2給出了對預備材料的分析,SE2004是這一部分知識元素的主要來源,但在組織上與SEEK有所不同,反映了對SEEK 5年實踐的總結和提高,對我們更好地理解SEEK有較大意義。
CBOK核心材料給出了研究生課程所應該覆蓋的核心知識體系,按照相當于15學分的教學時間來定義。即核心知識體系的學習由比總學時數50%略少的時間來達到,其他時間和課程將會被分派去提供加深核心領域(Bloom級別的提高)和專注于某個選定的應用領域。表3給出了對核心材料的分析,其中百分數表示在總課時數內所占的比例,相加不超過50%。
3研究目標
本文結合最新的GSwE2009中CBOK教育知識體系和即將的SWEBOK2010,總結SE2004中SEEK教育知識體系在我國高校5年的教學實踐,從加強實用性的角度重構與求精SEEK以與CBOK接軌,適應我國高校軟件工程專業多層次教育的需求。
在人才培養上,我們的定位如下:
1) 研究生教育知識體系保持CBOK的靈活性與可伸縮性,允許高校針對多入口情況靈活設置教學體系。
2) 本科教育知識體系既適應高水平大學軟件工程專業培養具有國際競爭能力的中高層次工程型軟件人才的需求。
3) 本科教育知識體系又適應應用型大學軟件工程專業培養面向各個應用領域的基礎軟件開發實用人才的需求。
在人才培養目標上,力圖使得學生具有如下能力:
1) 掌握核心知識。
2) 熟悉某個應用領域。
3) 知曉職業道德。
4) 能夠利用系統工程原則指導軟件工程。
5) 具有團隊合作精神、交流表達能力。
6) 具有協調折中能力。
7) 具有綜合能力。
8) 具有終身學習能力。
9) 具有對新技術的分析應用能力。
10) 能夠在某個KA上追求深度。
在教學知識內容設計上,我們的要求如下:
1) 軟件工程專業強調扎實寬泛的知識基礎。軟件工程師在工作環境中需要廣泛地了解涉及產品開發的諸多知識領域,并在具體產品構造中靈活運用該領域的前沿技術。
2) 軟件工程專業強調從事該領域工作的實際體驗。在教學實施中應該重視體驗實際軟件開發工作的過程,熟悉實際應用的方法與工具,以使畢業生能夠更快地融入今后的工作。
3) 軟件工程專業強調分析與解決實際工程問題的方法與能力。解決實際工程問題的能力是軟件工程教育的核心問題,要重視培養學生分析、設計、構造、實施、維護實際工程問題的知識與能力以及圍繞實際工程問題的組織、協調與管理的知識與能力。
4) 軟件工程專業強調與實際應用領域的結合能力。軟件的應用無所不在,熟悉一個或數個應用領域的相關知識,并將其與軟件工程核心技術相結合,是對該專業畢業生的基本要求。
5) 軟件工程專業強調綜合運用各種方法與技術的能力。選擇合適的方法與工具并有效集成,是構造軟件產品的重要能力,再學習能力是對軟件工程師的基本要求,選擇與決策是一個軟件工程師的核心素質。
6) 軟件工程專業強調工程觀、職業道德和團隊合作能力。樹立工程理念,在工程原則和方法指導下遵從職業要求,以團隊方式完成軟件項目,是一個軟件工程師所應具備的素質。
4工作路線
在技術路線上,軟件工程專業教育知識體系的重構與求精遵循以下途徑:
1) 用軟件工程的世界觀統一審視和重新組織軟件工程教育知識體系。SEEK回避了計算機科學基礎相關知識,通過直接借用CS2001,導致SEEK在教學實施時成為CS和SE兩種觀點的混合體,各高校在對計算機科學傳統課程改造時遇到較大困難。求精后的教育知識體系試圖站在軟件工程的新視角來重新編寫和組織計算基礎相關知識領域,站在軟件系統構建的高度全新認知計算系統知識的教學,運用解決具體軟件設計問題的新方法來處理計算機科學傳統課程的教學改革,從而達到在軟件工程專業有效改造CS傳統課程的目標。
2) 求精本科教育階段的軟件工程知識,適應更多教育機構多層次教育的需求。根據我國高校5年教學實踐,多數學校普遍認為軟件工程相關知識的教學內容偏多。特別是對于應用型高校軟件工程專業來說,重點是培養學生在軟件工程思想指導下的針對應用領域的軟件開發技能。CBOK定義的研究生準入條件和準出條件也在另一方面印證了SEEK的部分軟件工程知識可以移入研究生階段。因此筆者在認真調研的基礎上對軟件工程相關知識領域進行求精,設置核心教學課時最小值,作為大學軟件工程專業的最低要求;同時把SEEK規定的核心教學課時取為最大值,作為高水平大學軟件工程專業的辦學參考;有關高校可以根據自己的人才培養定位在兩者之間浮動,實現自己的辦學特色。
3) 適應我國高校教學的具體訴求。計算機科學與技術一級學科研究生聯考對軟件工程專業教學產生影響。因此在重構計算基礎相關知識領域時,把SEEK中與數據結構、計算機組成、操作系統和網絡相關的核心課時數設置為最小值,作為軟件工程專業辦學的基本要求;同時把聯考要求規定的核心教學課時取為最大值,作為部分高校軟件工程專業的辦學參考。
4) 研究生教育知識體系采用CBOK。軟件工程專業研究生教育程序面臨相對寬泛的入口。軟件工程專業本科畢業生需要在某個KA、某個應用領域和實踐上得到深造;信息類專業本科生或接受過IT培訓的學生需要在軟件工程知識和實踐上受到良好訓練,并把這些知識與他們原先的工作領域或以后想從事的應用領域相結合;在SwE方面有過兩年工作經驗的人,嚴格的軟件工程訓練則更加重要。不同的人有著不同的學習訴求,因此在建設教育知識體系與相關課程方面,良好的靈活性與可伸縮性尤其顯得重要,CBOK較好地解決了這一訴求。
5) 遵從SEEK與CBOK。本文給出的學科教育知識體系以SWEBOK為基礎,是用軟件工程視角統一規整、重構和求精SEEK與CBOK后得到的,其基礎和知識產權均屬于SWECC。
5重構和求精后的軟件工程教育知識體系
軟件工程教育知識體系包括本科生和研究生兩個部分,其中研究生教育知識體系完全采用CBOK,本科生教育知識體系在SEEK基礎上重構與求精。
重構的方法是采用軟件工程視角全新組織SEEK中的計算基礎、數學與工程基礎等兩個知識領域,重新劃分為數學基礎、程序設計基礎、計算系統基礎和工程基礎4個知識領域。此外,原計算基礎中的軟件構造升格為知識領域,原計算基礎中構造工具與分布在軟件工程各相關知識領域中的工具知識點合并為一個獨立的知識領域,后者與系統與應用知識領域一樣,不設核心教學課時數要求。
求精則依據CBOK的研究生準入條件和我國高校對SEEK的五年教學實踐。首先,求精軟件工程各知識領域和工程基礎知識領域中各知識點的本科教學要求;設置核心教學課時數最小值,作為本科畢業生最低教學要求;把SEEK原先核心教學課時數設置為最大值,供部分高校在教學設計時參考。其次,針
對我國高校計算機一級學科研究生聯考的現實,對數據結構、算法、計算機組織結構、操作系統、網絡與通信等知識單元進行擴展,SEEK原先核心教學課時數設置為最小值,作為本科畢業生最低教學要求;聯考特別要求作為核心教學課時數最大值,給有研究生考試需求的高校參考。
表4給出了重構和求精后的軟件工程專業本科教育知識體系,采用Bloom分類法,知識點的掌握程度用k(知識)、c(理解)和a(應用)標記;重要程度用E(核心)、D(推薦)和O(選修)標記;共有13個基本知識領域,52個知識單元,建議核心學時數最小值為381(E),最大值為520(E+D);另有軟件工具和系統與應用兩個擴展知識領域。
研究生教育知識體系參考第二節關于CBOK2009的描述。
6結語
本文從實用性角度出發,對SEEK進行了重構和
求精。用軟件工程的統一視角組織、細化和求精本科生教育知識體系,從而使本科生教育知識體系具有較好的靈活性、適用性和可伸縮性,并較好地與CBOK銜接,共同組成完整的軟件工程專業教學知識體系,從而能夠有效指導我國高校軟件工程專業的本科生與研究生教學體系設計。
參考文獻:
[1] Guide to the Software Engineering Body of Knowledge[EB/OL]. [2010-10-11]. /.
[2] Software Engineering 2004. Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering[EB/OL]. [2010-10-25]. /ccse/.
[3] Graduate Software Engineering 2009 (GSwE2009): Curriculum Guidelines for Graduate Degree Programs in Software Engineering[EB/OL]. [2010-10-25]. /.
[4] Software Engineering Professionalism[EB/OL]. [2010-10-25]. /about/se-code.
[5] 駱斌,丁二玉. 南京大學軟件工程專業本科教程[M]. 北京:高等教育出版社,2009.
[6] 張大良,駱斌. 軟件專業應用型人才培養的研究與實踐[J]. 南京大學學報:自然科學版,2009(增刊1):1-5.
[7] 駱斌,張大良,邵棟. 軟件工程專業的課程體系設計[J]. 中國大學教學,2005(1):32-33.
Analysis, Reconstruction and Refinement of Software Engineering Educational Knowledge Body
LUO Bin1, ZANG Bin-yu2, DING Er-yu1
(1.School of Software, Nanjing University, Nanjing 210093, China ; 2.School of Software, Fudan University, Shanghai 200433, China)
篇9
關鍵詞: 軟件工程; 任務驅動教學法; 案例教學法; 項目驅動教學法
中圖分類號:TP311.5 文獻標志碼:A 文章編號:1006-8228(2017)05-50-04
Discussion on teaching model of software engineering course
Li Ling
(Computer Science and Control Engineering Institute, North University of China, Taiyuan, Shanxi 030051, China)
Abstract: Software engineering is a major course in computer specialty, which plays an important role in improving student's abilities of software development, teamwork, communication, innovation and self-learning. Aiming at the problem that the course teaching is emphasis on the technology more than the management, this paper expounds the educational objectives and the teaching contents based off the educational objectives. In order to improve students' interest in learning, the framework for the implementation of task-driven teaching method and case teaching method is put forward, and the application of project-driven teaching method in practice teaching is expounded.
Key words: software engineering; task-driven teaching method; case teaching method; project- driven teaching method
0 引言
軟件工程課程是一門研究用工程化方法構建和維護有效、實用、高質量軟件的學科,是計算機專業人員必修的一門主干課程。它以數據結構、面向對象程序設計、數據庫原理及應用、操作系統等課程為先驅,糅合了工程化軟件開發思想,旨在讓學生通過本門課程的學習,理解軟件工程的基本原理、軟件項目開發各階段的任務,掌握傳統的結構化設計方法和面向對象的開發方法,建立以工程化思想管理軟件開發維護進程。對提高學生的軟件開發能力、解決問題和創新能力以及項目管理、團隊合作能力具有重要意義。
軟件工程一直是高年級專業課程中教學難度較大的一門課程。從對學生就業單位的問卷調查和訪談結果來看,教學效果未達到理想狀態。究其原因,有四個方面。
第一,本課程理論性強,如何引發學生興趣是重中之重。單純引入案例教學,沒有良好的組織過程,學生仍未能有“身臨其境”感覺,無法達到教學效果[1]。
第二,本課程是一門綜合性課程,起于理論,必須將理論應用于實踐中,理論實踐相結合,學生對知識點才會有深刻體會。目前教學仍有重理論輕實踐特點,理論與實踐有所脫節。
第三,實踐過程的組織耗時耗力,評價體系不完善。軟件工程的實踐環節涉及到數據結構、程序語言、開發環境、數據庫等多方面知識,因此實踐的開展,易受到先驅課程沒有學好或沒有拓展、遺忘等影響。需對學生知識狀況進行摸底評估。對于實踐過程耗時長,要考慮如何引導學生高效工作;如何評估劃分不同學生知識結構的層次;針對學生良莠不齊情況合理管理及高效引導實踐進程。而目前對實踐過程的評價,除了印象分,仍是以最終結果評價為主,有失公正性,對學生的團隊協作能力培養也是桎梏。
第四,本課程知識體系一直存在重技術輕管理的誤區。現工程教育認證標準在各大高校逐漸推展開。工程教育認證,明確將項目管理能力、承擔團隊成員以及負責人的角色能力、溝通能力等寫入了畢業要求。加大學生軟件工程管理能力教育力度,培養符合工程化認證標準的人才,是需要我們反復思考加實踐來推進的。本文從軟件工程課程培養目標、教學內容體系、課程教育方法三方面出發,淺談對軟件工程課程教改的一些思路。
1 件工程課程培養目標
本課程旨在培養學生軟件工程理論知識、職業技術能力、職業素養三方面的能力。理論知識方面,要求學生掌握傳統的結構化開發和面向對象開發中各階段的任務、任務完成的步驟,以及相關模型建立的方法。職業技術能力方面,要求學生基本掌握使用Microsoft Project進行軟件項目管理,使用visual Source safe進行版本控制、使用 Rational Rose和Viso進行軟件系統建模,使用JTest進行輔助測試、使用loadrunner進行壓力測試。職業素養方面,通過組織學生進行團隊項目開發,培養學生項目管理能力,談判、溝通、寫作能力及團隊合作能力。
2 軟件工程課程教學內容
工程教育認證基本思想是,以社會需求為導向,革新教學模式[2]。因此,我們應該根據社會需求,合理確定知識結構。基于社會需求及課程培養目標,本課程內容分為理論和實踐兩部分。
理論部分主要內容如表1所示。
實踐部分旨在引導學生將理論應用于實踐中,加深對理論的理解,并鍛煉學生的軟件需求分析、設計、開發能力。針對面向過程軟件工程,設計了《期末成績統計軟件》模擬案例。針對面向對象軟件工程,設計了《小型圖書管理系統》模擬案例。整個項目實施過程,以學生分組形式進行,培養學生的軟件開發、談判、溝通、寫作能力,團隊合作能力,全面提升學生的職業素養。
3 軟件工程課程教學方法
軟件工程是一門工程化的課程,理論性、實踐性并重。如果教師采用傳統“填鴨式”教學方法,以平鋪直敘的方式對課本內容進行PPT講解,極易讓學生失去學習興趣,降低教學質量。教師要想讓學生充分了解并掌握本課程知識,必須具體問題具體分析,不同的教學內容采用不同的教學模式。例如針對軟件工程課程各類知識結構特點,采用任務驅動教學法、案例教學法、項目驅動教學法、自學等多種方式混合的綜合教學方法,以此激發學生的好奇心和解決問題的好勝心,調動學生積極性,提升課程教學效果。
3.1 課堂教學方法
3.1.1 任務驅動教學法
任務驅動教學法是建立在建構主義學習理論基礎上的,有別于傳統教學的新型教學方法[3]。建構主義是一種關于知識和學習的理論,強調學習者的主動性,認為學習是學習者基于原有的知識經驗生成意義、建構理解的過程,而這一過程常常是在社會文化互動中完成的。建構主義的提出有著深刻的思想淵源,它具有迥異于傳統的學習理論和教學思想,對教學設計具有重要指導價值。
任務驅動教學法是“以任務為主線、教師為主導、學生為主體”的教學方法。通過巧妙設計,將教學知識點融入到一個個具體任務中,引導學生通過學習新知識新技能來完成任務,達到新知識的理解掌握,并提升學生分析問題解決問題的能力。在此,簡述本人在面向對象軟件工程需求分析階段教學中,對任務驅動教學法的運用和一些教學體會。具體過程如下。
⑴ 描述問題。教師首先提出一個實際項目-小型圖書管理系統。對項目問題定義進行簡要闡述。
⑵ 提出需求分析任務。將教師本人作為客戶,要求學生獲取小型圖書系統需求。
⑶ 執行任務。學生根據自生經驗,通過各種方法獲取需求,并將需求表述。獲取需求過程中,學生用到的通常的是與教師面對面溝通方法,溝通方法單一且因為溝通歧義,會導致獲取需求與實際需求矛盾,或只為實際需求的一部分。教師就此引導學生,學習情境分析、問卷、試用客戶老系統、簡易應用規格說明技術、快速原型等多種獲取需求方法。獲取需求過程中,要對需求結果進行表述。學生通常會用文字以段落方式長篇大論。這種方式邏輯不嚴謹,且容易產生誤解。教師引導學生學習使用用例圖及用例文檔的表述方式,并讓學生對用例圖方式與段落式表述方式比較,達到對用例圖的理解、認可及掌握。
3.1.2 案例教學法
案例教學法是基于一定的教學目標,以包含疑難問題的實際情境的描述即“案例”為載體,教師扮演設計者和激勵者的角色,鼓勵學生積極參與討論,運用所學的理論知識去識別、分析、解決問題,使學生達到對所學理論知識的深入理解及掌握,并提升學生解決問題的創新能力。在此簡述本人在面向過程軟件工程總體設計方面對案例教學法的運用和一些教學體會。具體過程如下。
⑴ 學習軟件設計原理、模塊內聚、耦合、啟發式規則。
⑵ 基于《小型考務處理系統》數據流圖,使用面向數據流的設計方法映射出結構圖,將該結構圖作為案例提供給學生。要求學生根據軟件設計原理、技術等相關知識對結構圖進行結構優化。
⑶ 個體準備。每位學生獨立思考,準備優化材料,包含理論來源和結構圖處理方式。
⑷ 分組討論。按3-4人一組對學生分組,并進行組內討論,給出結構圖優化的統一意見。
⑸ 按組發表意見。每組推選一個代表,敘述本組對結構圖的逐步優化方案及理論來源。
⑹ 總結階段。留出一定的時間讓學生自己進行思考和總結。隨后,教師根據每小組總結的結果,同學生一起進行匯總歸納,并依據教師自身的優化經驗對結論進行點評補充。
3.1.3 自學
大學生要具備一定的自學能力。軟件工程課程要求學生掌握Microsoft Project、visual Source safe、Rational Rose、Viso多個軟件的使用。教師可在課堂上對這些軟件的學習做適當引導,并布置學習任務及作業,及時檢查并糾正錯誤。
3.2 實踐
軟件工程課程的實踐環節,可采用項目驅動教學法組織實施。項目驅動教學法是一種以教師為主導、學生為主體、項目為媒介,通過實踐方式完成項目,以提升學生綜合能力和職業素質為目標的系統教學方法。
項目驅動教學法用于軟件工程課程的實踐環節。主要實施過程如下。
⑴ 學生分組。每個項目小組,設組長1名,組員3-4名。為避免學生自由組隊強強聯合造成的“馬太效應”,教師發動班干部輔助完成分組工作,M量做到強弱聯合組隊。
⑵ 項目布置。教師具有實際意義的多個項目問題描述。通過分配或自主選題方式提供給各項目小組。每個項目在一個班級中最多重復三次,以防小組間抄襲。公布內容抄襲處罰辦法,達到警示作用。
⑶ 項目實施。項目小組選用合理過程模型。將教師作為模擬客戶,嚴格按照軟件工程思想完成項目。完成項目過程中,著重從如下幾方面進行監控。
第一,在項目實施的各個階段,必須提交相應文檔。具體包含《關于系統規模和目標的報告書》、《軟件項目開發可行性分析報告》、《需求規格說明書》、《系統設計說明書》、《測試計劃》、《用戶使用手冊》。文檔要求符合軟件文檔規范。
第二,必須運用Microsoft Project、visual Source safe、Rational Rose、JTest、loadrunner 等作為軟件工程支撐環境,輔助進行軟件開發。
第三,堅持階段性的考核。
傳統實踐環節考核,通常是項目完成后,以小組答辯形式進行的終極考核方式[4]。這種考核方式,無法在實踐過程早期及中期,發現學生項目進展的重大問題并及時糾正。尤其對某些自我約束能力較差的學生,也可能出現實踐前期自由散漫工作進度緩慢,后期又無法按時完成的情況。
猿紙錐渦鑰己朔絞較緣糜任必要。考核成員由教師和項目組長擔任。考核成績由各階段考核成績、最終項目答辯成績按比例計算。各階段考核中,將小組項目的組織過程、小組成員的參與情況、成員對項目本階段的貢獻等多個方面,都作為考核指標。通過階段性考核方式,既督促、鼓勵了學生的積極參與態度和團體合作精神,又能夠及早讓項目小組認識到本組工作不足并抓緊改進,最重要的是階段性考核方式較終極考核方式更公正客觀。
4 總結
根據本科工程教育認證標準,現今社會對計算機相關專業人才的能力要求越來越全面。計算機專業人員要具有軟件開發能力、團隊合作能力、創新能力、自學能力等多方面綜合能力。根據多年的教學經驗,本文從培養目標、教學內容、教學方法三方面闡述了進行軟件工程課程教學改革的一些經驗。分別論述了任務驅動教學法、案例教學法、項目驅動教學法等幾種方法在課堂教學和實踐教學中的實施過程。這些措施激發了學生創新意識,調動學習積極性,對提升學生綜合能力切實可行,達到了課程培養目標要求。工程教育認證的基本準則是持續改進,我們將在軟件工程課程現有教學方法的基礎上,合理運用各種教學輔助工具,對新的更合理的教學方法進行長期的不斷的探索。
參考文獻(References):
[1] 王辰尹,衣楊.面向應用型IT人才培養的軟件工程教改關鍵問題研究[J].計算機教育,2014.8:27-31
[2] 賈玉祥,陳爭艷.面向工程教育的軟件工程案例分析與實踐課程[J].現代計算機(專業版),2015.27:9-12
篇10
關鍵詞:軟件工程 教學改革
“軟件工程”是一門理論與實踐并重的基礎課程,在教學實施方面存在較大的難度。現有的軟件工程課程存在著體系不統一、定位不明確、知識與現實脫離等問題,課程內容比較龐雜和抽象,教學實踐環節薄弱。因此,如何使教學內容先進、講授生動實際、實踐效果良好,一直是軟件工程課程教學需要解決的難點問題。
1.軟件工程課程教學改革現狀
普通高校傳統的實驗教學過于強調理論知識的積累,這限制了學生個性的發展、技能的培養和創新素質的形成。其課程設置與實踐教學內容都嚴重滯后,實踐教學學時占總學時也很少;在實踐教學內容方面對理論內容進行驗證的實踐教學環節占較大比例,而有利于培養應用能力的綜合性、設計性實驗等實踐性教學比例偏少;在實踐教學安排上仍采取先理論,后實踐的順序來確定實踐教學環節。特別是對實踐教學內容、方法及過程與創新性應用型軟件人才的培養目標是否相適應等問題的研究還相當不夠。具體體現在:
(1)實踐教學體系設置不夠完善,缺乏對實踐教學的過程管理,沒有建立配套的質量監控與評價體系。
(2)對實踐教學的認識不到位,存在著重理論,輕實踐;重課內,輕課外的傾向,缺乏對實踐教學內容的總體設計,實踐教學的內容及形式陳舊。
(3)實踐教學教學方法單一,仍舊采用以教師為主以灌輸為主的教學方法,使學生的主觀能動性、動手能力和創新精神的培養受到了很大的限制。
(4)不重視工程化思想的培養,普遍缺少對學生工程能力和職業素質的訓練,沒有很好利用先進的實踐教學管理平臺跟蹤管理學生實踐項目。
(5)實驗設備和計算機專業教師嚴重不足,目前的實驗室設備與管理模式已很難滿足實踐教學的要求,缺乏具備行業工程領域背景和國際化背景的高水平創新實踐教學團隊。
2.改革教學方式
在計算機科學與技術專業的四個專業方向中“軟件工程”課程都是重要的專業必修課,該課程的教學效果直接影響到專業的發展,因此有必要從課堂教學、實驗教學、實踐教學這三個環節入手探索“軟件工程”課程的一種新的教學模式。
2.1案例輔助教學
“軟件工程”課程主要內容涉及指導軟件開發的原理、方法、工具。若脫離了軟件開發實踐,這些原理、方法、工具會變得枯燥、難懂。在“軟件工程”課程教學中引入案例輔助教學能有效地提高教學質量。課程中的每個重要知識點都應配備若干相關案例。在整個課程的教學中應有1到2個貫穿始終的綜合案例。綜合案例應為一個較為實際的軟件系統的開發過程,包括問題定義、可行性研究、需求分析、總體設計、詳細設計、編碼、測試。綜合案例中應包含各開發階段中涉及的任務、技術、方法及工具。學生應在課余時間認真閱讀案例,并進行分析,老師同步在課堂上講授案例,然后學生在實驗課中,按照案例中的步驟重視案例中的系統開發過程,最后總結歸納。
2.2實訓式實驗
實訓式實驗是通過實例演示及模擬、課堂練習、課后作業這三個環節使學生通過實驗訓練很好地掌握相關技術及方法。實訓式實驗包含如下三個環節:
(1)實例演示及模擬
每個實驗,教師應先講解實驗步驟及要求。之后教師講解并演示一個案例,在此過程中學生同步模擬每個實驗步驟。教師做一步,學生跟一步,若有學生出現問題,教師及實驗員應及時輔導使其能跟上大家的進度。
(2)課堂練習
案例講解演示之后,教師應布置1到2個類似練習題學生參照前面所講解的案例,按步驟完成這些練習。學生練習過程中教師應全程指導,實驗課結束時學生應將實驗結果以電子郵件形式發給教師,并書寫實驗報告。
(3)課后作業
實驗課結束時,教師應布置一個相關作業,學生在課下參照教師講解的實例及課堂練習完成作業,以鞏固相關知識。
2.3綜合實踐
“軟件工程”課程的教學中應注重綜合實踐環節的建設。綜合實踐環節包括以下三個方面:
(1)“軟件工程”課程設計
“軟件工程”課程應設置兩周左右的課程設計。課程設計的目標是讓學生體驗軟件開發的全過程,且學會與他人合作,培養團隊精神。課程設計過程中,學生分成若干小組,每個小組選擇一個項目,該項目的規模應與課程綜合案例的規模類似。每個小組應完成項目的問題定義、可行性研究、需求分析、總體設計、詳細設計這些階段。各個小組由組長負責組織、分工、控制進度等,對小組成員的最終課程設計成績有一定的分數浮動調整權;組長帶領全組順利完成任務,總評可加一定分數。小組完成項目之后,應提交項目開發各階段文檔及課程設計報告。
(2)與其它課程的課程設計相結合
計算機專業的很多課程(如數據庫原理、信息系統開發、數據結構、C語言等)的課程設計都與軟件開發相關,可將這些課程的課程設計作為“軟件工程”課程的輔助課程設計。在這些相關課程的課程設計中,可通過恰當地選擇設計題目,將軟件工程的原理、方法、工具應用于這些課程設計中,使學生體會到軟件工程方法與各種軟件開發的關系。
(3)與畢業設計相結合
計算機專業的畢業設計主要是進行實際的軟件開發。目前畢業設計中學生一般面臨全新的題目,設計過程中學生既要分析研究系統又要熟悉開發工具,這樣很多學生會覺得頭緒太多,忙不過來,最終不能完成一個理想的系統。鑒于此可將畢業設計作為“軟件工程”課程設計的延續,延用課程設計中的分組,每個小組延用課程設計中的題目。由于課程設計時間較短,課程設計時各小組只進行了粗略并且簡化的項目開發,在畢業設計的半年中,各小組可在課程設計的基礎上進一步完善擴充已有成果,按照軟件工程的步驟最終得到比較理想的系統。
參考文獻: