軟件工程課程教學設計實踐

前言:尋找寫作靈感?中文期刊網用心挑選的軟件工程課程教學設計實踐,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。

軟件工程課程教學設計實踐

摘要:

軟件工程課程的實踐環節已經成為該課程教學改革的重點,針對軟件工程課程的培養目標,提出該課程的理論教學設計思路和理論知識與實踐相結合的舉措。在理論教學環節中,突出以案例教學為導向和不斷更新課程內容;在實踐教學環節中,突出按照軟件項目開發模式,結合理論知識與實踐知識,采用CASE工具集完成小組項目開發,并對小組成員的考核方式進行了改革,以便更好地培養學生的團隊開發軟件的能力。

關鍵詞:

軟件工程;教學設計;實踐舉措

0引言

軟件工程作為一門計算機相關專業學生的必修課程,對學生軟件工程能力的培養起到重要的作用。該課程包括系統需求分析、項目管理、總體設計、詳細設計、系統測試與配置管理等內容,涵蓋了軟件在開發過程中的各個方面。作為計算機軟件的一門基礎課程,該課程旨在培養學生作為軟件工程師所需的專業能力和基本素養。

1軟件工程課程存在的問題和特點

軟件工程學強調對理論和原理的學習和掌握,而忽視理論學習過程中對理論和原理的實踐和應用,學生很難認知軟件工程理論的作用和使用方法。軟件工程理論課程的驗收標準往往按照“應試”教學方法實施,即以閉卷理論考試的成績來定級學生學習成果之優劣,忽略了軟件工程課程的工程特性和實踐本質。學生往往僅從課本上了解該門課程的一些概念性內容,而沒有重視這門課程的實踐性。雖然當前很多關于軟件工程課程改革的研究都提出了實踐的重要性,并采用案例[1-2]或者實例教學[3]的方式講授該門課程,甚至有的教師將CDIO模式的工程教育模式引入軟件工程課程[4-5],但在實際的課程實踐中,大多數學生對布置的項目開發訓練往往應付差事,從網上下載或復制他人的設計,或者是一個項目小組中往往只有一位學生負責所有的分析、設計與編碼工作,其他學生基本上不承擔任何工作。因此,如何落實這種工程訓練的模式,讓項目小組中的每位成員都承擔相應的工作并切實實施這些工作,是本文討論的重點。軟件工程課程的目標是培養學生的團隊溝通能力、協作能力和實踐能力。雖然各學校對該課程的重視程度越來越高,但教學效果卻不是很理想。究其原因在于軟件工程課程具有如下特點:①課程內容的抽象性。該課程開設的時間主要為大二下學期或者大三上學期,在這之前,學生對相關課程的學習基本都是較為具體的內容,如編程語言、數據結構、操作系統、計算機網絡等課程。在這一階段,學生往往能夠獨立設計一個算法或者開發一個小程序,其重心在于編碼,而對于軟件開發標準和流程沒有直觀的印象,這直接導致學生在學習課程內容時感覺非常抽象且理論化。②課程內容涉及面廣。軟件工程課程內容包括項目管理、軟件開發模式、需求分析、總體設計、詳細設計、測試、維護等內容,涉及經濟學、工程學、管理學、計算機等眾多學科的內容,這些知識必須與實踐教學相結合才能讓學生更好地理解軟件工程課程的工程性質。③課程實驗教學涉及眾多的CASE工具。由于該課程涵蓋了整個軟件工程項目的開發周期,因此在實驗教學環節就要求學生掌握軟件生命周期中每個環節的CASE工具,如項目管理工具、需求建模工具、總體設計和詳細設計工具、測試工具等。④軟件開發模式和方法的變化性。軟件開發模式和方法變化較快,而書本知識的更新速度遠遠達不到軟件知識的更新速度。因此,教材上關于軟件的知識點往往具有一定的滯后性,如軟件架構模式、軟件開發過程管理、面向服務的軟件架構等當前熱點知識在軟件工程教材中基本上沒有提及。這就需要任課教師結合教學內容和項目實訓將這些新的軟件工程知識融入課程教學中。

2軟件工程課程教學設計思路

軟件工程教學方案的設計旨在加強學生的實踐能力、動手能力和團隊協作能力,滿足當前社會對軟件工程人才的需求。為了增強實用性,也是出于理論知識與實踐知識結合的需要,該課程在教學過程中需要結合軟件工程實例、軟件開發模式及軟件項目管理等方面的實踐知識,使學生具備參與軟件團隊開發工作的各項素質。因此,必須科學合理地制定軟件工程的教學思路,保證理論與實踐的有效結合,從而取得滿意的教學效果。其設計思路如下。

2.1以案例教學為驅動

該課程旨在培養學生實踐應用的基本能力,針對軟件工程課程各章節的理論知識點,以實際的軟件工程開發案例進行講解,引入“智能會議管理系統”案例,深入淺出。引導學生從最簡單的軟件工程案例入手,循序漸進地掌握軟件工程理論知識,并以企業化軟件開發過程為模式,講解軟件從需求定義、設計到實現與測試的工作流程,使學生了解軟件開發的過程,提高學生對該門課程的興趣。

2.2跟蹤IT行業技術主流,不斷更新課程內容

隨著互聯網技術和軟件需求的迅速發展,軟件工程的發展速度明顯加快。當前,面向服務的軟件開發和基于構件的軟件開發模式的出現,使軟件工程教材往往滯后于IT新技術。而中間件、網構技術、面向服務計算等一批新技術和理念,對網絡資源共享與管理、人機交互及軟件服務等各方面提出了軟件開發技術方面的新要求。為適應信息社會對人才培養的新要求,在授課過程中,需要密切跟蹤IT技術發展主流,引入軟件工程的最新發展技術,使得學生能夠及時地了解軟件工程中的最新發展趨勢,并保持教學內容與技術發展的同步性。

2.3組織開發團隊

軟件工程課程還需要培養學生的團隊協作和溝通能力。將一個教學班劃分為若干小組,稱為軟件項目開發團隊。每個小組有4~6人,按照軟件工程項目的要求,每個團隊設組長(項目經理)一名,以便于管理控制和任務分派。組長全權負責本組實踐教學過程中的日常事務管理,包括組織會議、交流協調、任務分派、進度控制、成果驗收和成績評定等。小組中每個成員都必須有具體的工作職責,因此小組中需要劃分項目經理、系統分析員、數據庫設計師、界面設計師、測試員、文檔員等角色,而且每位成員必須要完成該項目中某模塊的編碼工作。小組的劃分還要注意組內和組間學生的能力搭配和開發實力的均衡,不能由學生自由組合,最好由班長和學習委員來實施分組和任命組長。這樣能更好地培養軟件開發團隊的溝通能力和協作能力,其目的就是保證學生在軟件工程課程的實踐過程中有實際的場景環境(主要包括用戶、領域專家和工作環境),這對于高質量的軟件工程實踐過程而言是質的保障。

2.4合理選題

選擇項目的內容時必須選擇規模、性質和難度適中的軟件開發項目。題目來源為教師指定課題和學生自選課題。選題的原則為新穎、實用和規模適中。新穎要求體現計算機發展的主流技術和應用范疇;實用要求所選題目一定是用戶的實際需求,而不是由學生隨意杜撰和隨意想象的;規模適中要求所選的題目不能過于簡單也不能過于復雜,所選項目的功能點個數應該為100~200。

2.5教學質量控制

教學活動必須注重實踐教學效果,不可流于形式。尤其是在當前不少學生存在厭學情緒和學習熱情不高的情況下,除了加強本課程在講授過程中的興趣培養外,更重要的是制定實踐教學過程中各個階段任務的完成標準和相關成績評定方法,保障項目實踐的質量和完整性。

2.6軟件設計與開發環境配置

軟件工程課程包含軟件生命周期的各項內容,如軟件分析和設計相關工具,以IBMRationalSoftwareArchitect和EclipseFramework為主;軟件開發環境,以Java和C#.Net為主線的開發環境配置;項目管理工具(Project)、測試工具的實際應用指導等。因此,對軟件開發環境的熟悉是非常重要的,這有利于學生在實踐過程中產生一種項目開發、科學研究和創新思維的綜合效應。

2.7改革考核方式

本校的軟件工程課程成績由期末考試成績、期中考試成績、實驗成績和平時成績4部分組成。其中期末考試成績占60%,期中考試成績占10%,實驗成績占20%,平時成績占10%。在實際考核中,筆者將實驗成績和平時成績合并為實踐項目成績。每位成員的實踐項目成績的評分由任課教師和小組組長共同確定。每個小組實踐項目的團隊總成績由相關文檔編寫、階段性答辯效果和最終軟件演示3部分組成,并由任課教師評定。其中相關文檔編寫占40%,階段性答辯效果占30%,最終軟件演示占30%。每個小組成員的打分由小組組長確定,小組組長根據各個成員在項目開發過程中的表現和貢獻給予一定的系數,所有小組成員的系數之和為1,因此,每個小組成員的實踐項目成績等于團隊成績乘以表現系數。由于每位學生的實踐成績與團隊成績和個人對團隊項目的貢獻有關,因此這種考核方式能夠有效地增強小組成員的凝聚力和團隊協作能力。

3理論與實踐結合的教學舉措

根據本校學生的實際情況,并結合學生畢業設計和論文的要求,筆者提出了“案例導向、項目驅動”的設計理念,以軟件工程的理論指導軟件開發的實踐,以項目開發帶動軟件工程的理論學習,并在軟件工程的課堂授課和實踐指導中貫徹這一思想。案例導向針對大多數學生初次進行完整的軟件項目開發時往往不知從何下手的情況,優選案例,并在理論授課的過程中以案例講解設計理論,為學生提供學習樣板。案例分析過程采用“在動手中學習”的教學理念,引導學生通過分析來提出案例的解決方案,為實施軟件工程項目設計做好準備。項目驅動的主要內容是按照軟件企業先進的項目管理和開發模式,開發小組獨立完成一個應用軟件項目的開發,使學生得到較為全面、系統和規范的軟件工程實踐的訓練,培養創造性的軟件設計能力和綜合分析、解決問題的能力。結合理論教學與實踐項目。軟件工程課程的理論教學按照多數軟件工程教材的章節設計,以軟件生命周期為主線,結合面向對象方法講授本門課程;而實驗CASE工具的學習則是本課程實驗教學的主要內容;里程碑指的是當相應的理論知識學習結束后的兩個星期,項目團隊要完成的工作和紙質文檔;而階段性答辯是指學生完成一個里程碑后進行的階段性驗收。例如,當需求分析理論課程和實驗課程結束后的兩個星期,學生就應該提交需求分析說明書文檔并準備進行階段性答辯工作。小組的階段性答辯由任課教師和該課程的全體學生參加,采用面對面的答辯方式,每個小組限時15分鐘,答辯人由任課教師隨機指定,但小組中的其他成員有一次補充的機會。在答辯結束后,任課教師和其他小組成員可以提出問題,該問題的解答可由小組中的任一成員完成。由此可見,軟件工程課程的理論與實踐結合的教學舉措的核心在于分段實施。實踐過程按照軟件企業的項目管理和開發模式進行,重點放在軟件需求和軟件設計兩個階段,強調組內的交流與協作,考察學生對需求變更的適應能力;要求開發過程反復、迭代進行,培養學生“在錯誤中學習”。同時,任課教師需要強化指導,通過答疑、上機輔導、討論、資料、E-mail等多種方式,對課程設計進行全程指導,從而保證項目設計的質量。如果任課教師弱化了指導和溝通這一環節,往往會使這種項目驅動的實踐模式最終流于形式。因此,教師的指導過程也是一次實施項目管理的過程。

4教學效果分析

這種理論與實踐相結合的教學方法,有效地增強了學生的項目開發能力、團隊協作能力和溝通能力。最為顯著的變化是學生在完成畢業設計的過程中,不會像以前那樣確定題目后就馬上設計界面、編寫代碼。通過軟件項目訓練的學生大都按照軟件工程的標準完成畢業設計,他們會在需求上花費較多的時間,會按照版本管理的規范來管理自己的畢業設計,還會用文檔來記錄關鍵的設計。而對于實驗CASE工具集的學習和熟悉也幫助他們更早和更好地適應了在企業中的工作。

5結語

未來的軟件工程課程教學,應側重于培養學生實踐應用的基本能力,學生不但要對軟件工程理論知識有所深入,還要在軟件開發方面具有“會設計、能開發”的能力。因此,該課程應強調“學生實踐、項目實訓”的方式,將理論知識與動手能力結合,注重培養學生的實際動手能力;以實例教學和企業化程序開發模式對學生進行必要的訓練,培養學生養成良好的編程習慣,在編程、企業開發團隊溝通、軟件文檔書寫等方面與企業開發任務無縫鏈接。

作者:李宗花 朱兆輝 單位:淮陰師范學院計算機科學與技術學院

參考文獻:

[1]竇萬峰,吉根林.軟件工程課程研究性教學方法探索[J].計算機教育,2014(13):59-62.

[2]張佩云.項目驅動的軟件工程課程案例式分段情景教學研究[J].計算機教育,2013(3):77-79.

[3]吳志輝,唐承亮.項目驅動的軟件工程課程教學模式改革[J].計算機教育,2012(2):25-27.

[4]李春英,湯志康.CDIO模式下的軟件工程課程設計實踐[J].實驗技術與管理,2011(6):173-174.

[5]尹春嬌,沈桂芳.探析CDIO模式在應用型本科院校軟件工程課程實踐教學中的應用[J].科技信息,2012(31):15-16.

亚洲精品一二三区-久久