工程教育軟體工程的論文

才智咖 人氣:2.34W

1基於CDIO工程教育模式的教學方法

工程教育軟體工程的論文

基於CDIO工程教育模式的專案驅動“物件導向軟體工程”課程教學方法(下簡稱CDIO教學法),以培養學生的基本工程能力和工程綜合素質為目標,將“物件導向軟體工程”知識體系中的相關知識點滲透到實踐的各個環節中,而這些環節和軟體工程生命週期完全一致,在各個環節中解決問題的方法則可以採用CDIO的構思、設計、實現和執行理念。我們參照CDIO能力大綱,提出通過“物件導向軟體工程”教學和課程專案實踐,培養學生如下方面能力:①通過基於案例/專案驅動來學習,要求學生能夠深入理解“物件導向軟體工程”的知識體系和該課程的基礎理論並能在實際專案中加以靈活應用。“物件導向軟體工程”的知識體系為學生理解和應用其基礎理論解決分析、設計、實現和執行中的實際問題打下基礎並提供有效工具;而“物件導向軟體工程”理論基礎為學生針對實際問題進行發明創造提供動力,為學生髮現問題、分析問題和解決問題提供理論支援。②通過“物件導向軟體工程”課程中專案的驅動,要求學生建立專案團隊,通過課程專案實踐各個環節(包括需求分析、設計和實現等環節及在此環節中的各項活動、溝通與協調、文件撰寫),培養學生的良好職業素養,以及團隊合作、系統思維、工程實踐、專案管理和文件寫作的能力。③通過“物件導向軟體工程”理論學習和課程實踐,培養學生的創新意識和能力,以開發出具有鮮明個性的軟體作品。

2CDIO教學法在“物件導向軟體工程”理論及其課程專案教學設計中的應用

2.1總體設計

目前,“物件導向軟體工程”課程教學安排共計54學時,我們將理論教學內容與課程專案實踐教學內容結合起來進行設計。在整個教學週期內,按照軟體生命週期並結合CDIO、案例與專案驅動的教學法,設計理論課程案例教學過程中的相關活動,配合對應的課程專案實施活動加以有效組織與實踐,在整個教學環節結合專案開發活動的進展與深入,要求學生記錄自己團隊活動中的相關內容,按照我們事先制定的規範撰寫並維護專案文件。具體解決方案是:第一,正式課程教學的1~6周,設計專案描述和需求獲取與分析、系統設計中的具體活動,這些活動包括分別標識實體物件、邊界物件和控制物件;將用例對映成物件;建立物件之間的互動;標識關聯、聚集和屬性;對單一物件狀態依賴行為的建模;對物件之間的繼承關係建模;對本階段的分析物件模型進行評審;基於分析物件模型標識出設計目標,進行子系統分解和標識;將子系統對映到系統構件元素上;標識並存儲永續性資料;設計訪問控制策略;設計全域性控制流;標識服務;標識邊界條件;對系統設計進行評審。第二,7~14周,設計物件設計與實現中的活動,這些活動包括學習軟體複用和設計模式,並在詳細設計中加以應用;對物件之間的介面進行說明,涉及標識遺漏的屬性和操作、說明介面型別、簽名與可見性,說明介面中相關方法的前置條件、後置條件和不變式等。第三,15~16周,設計測試階段中的活動。第四,17周,進行相關的總結活動,包括專案文件的靜態檢查和驗收,以及課程專案的動態演示與現場回答問題。

2.2設計課程專案

在設計課程專案中,將考慮提供給學生一個貫穿整個學期的課程教學專案描述,為此我們將選擇開發一個基於Web的應用系統。這類系統的例項很多,可以由教師設定或者由學生自選,如教師可根據教學中的需要設定一類基於Web的師生交流系統,以方便實現教師和學生之間關於做專案時的溝通。學生也可以根據個人興趣選擇網遊軟體開發,或者選擇基於Web的電子商務網站系統等。總之,相關專案的設計需要教師事先準備好專案描述或問題定義。為了開發這類基於Web的應用系統,教師需要指定專案使用的環境和工具,主要包括兩類:一類是開發環境與工具、資料庫管理系統、介面開發工具等,另一類是專案管理工具。這一階段設計的活動屬於CDIO中的構思階段。

2.3設計理論課程教學過程

首先,在理論課程教學內容設計中,我們主要依據的是第3版的SWEBOK標準(2013),在CDIO工程教育模式的指導下,完成相關知識體系教學設計。在SWEBOK2013版中的17個知識點中(其中2個為候補知識點),我們選擇了其中10個知識點,並將這些知識點融合到“物件導向軟體工程”的理論課程教學中。這些知識點可有效地體現著CDIO的工程教育理念,如軟體需求體現了CDIO的構思,軟體設計體現了CDIO的設計,軟體構造和軟體測試體現了CDIO的實現,軟體維護體現了CDIO的運作等。其次,在此基礎上設計理論教學過程。一方面,以案例/專案驅動教學方法為基礎,“物件導向軟體工程”課程中相關知識體系及理論學習,要求學生在學習和思考中掌握“物件導向軟體工程”的相關知識、術語、理論和技術基礎,並通過團隊方式共同學習、討論和完成作業,並以團隊形式參加全體同學的各種討論活動;另一方面,要求學生圍繞著專案描述或者待解決的問題描述,完成團隊組建、工具選擇、專案計劃制定,並開始執行需求工程中的需求獲取和需求分析活動,以及在此基礎上的系統設計活動,這些階段的工作結論需要學生加以記錄,特別是需求獲取與分析的結論和總體設計結論更要以文件形式加以記錄。第三,結合案例/專案驅動教學,進一步完成“物件導向軟體工程”理論課程。具體做法是一方面引入小型案例,另一方面引入面向應用領域的實際專案,並在專案描述、需求獲取和分析活動、系統設計和物件設計中,將該專案的具體情景或者可行的系統設計解決方案引入課堂,在課堂上組織學生參與討論、分析這些基於場景的案例,將需求階段和系統設計階段中涉及的重點知識、術語、過程與步驟等重點和難點融入到案例中來講解和學習,以便於學生真正理解相關的理論教學內容。這一階段的活動設計對應著CDIO中的構思階段。

2.4基於專案驅動的課程實驗教學設計

解決軟體專案中的問題或實現軟體專案中的任務,要求學生以團隊方式進行活動,並在整個活動中的各個階段貫徹CDIO工程教育的理念,即讓學生能夠對軟體專案中的任務完成進行構思,獲取與軟體專案相對應的軟體系統的功能性需求、非功能性需求和系統約束,並以文件方式進行描述;接著,通過設計手段來完成專案任務,用系統來對應將來要完成的任務,並在該系統設計中落實專案的各項要求,這需要通過對系統的總體設計、詳細設計等環節來達到,並將設計結論記錄在軟體設計文件中;在前面構思和設計的基礎上,選擇合適的程式設計語言、資料庫管理系統等基礎設施,用程式設計的方式實現該系統,並完成相應的測試任務,注意在實現過程中,同樣要將相關結論以文件的形式加以記錄,以備維護之需;在系統實現後,通過部署和執行等方式,讓該軟體系統(可以看成是本專案的解決方案)呈現出價值。在這一完整過程中,讓學生通過專案驅動下的團隊活動過程,體驗到軟體產品從構思、設計、實現到執行(包括維護)所經歷的全生命週期過程。這一階段的活動設計對應著CDIO中的設計、實現階段。

2.5專案總結與專案驗收過程教學設計

專案總結過程的教學設計是以團隊為單位進行自我總結並撰寫專案總結報告,以個人為單位撰寫學習心得,教師主要驗收和檢查相應的專案總結報告和學生學習心得。專案驗收過程的`核心是開展兩階段驗收活動,即在學期的15~18週中,選擇第15周進行一次中期檢查,第18周再進行一次期終專案驗收。全體主講教師和輔導教師組成一個答辯小組(一般為4人),他們事先要做好各項準備工作,包括現場點名以確認學生的有效身份並結合點名宣佈學生團隊的答辯順序,保證答辯的有效性和合理性;由答辯小組組長宣佈評分標準細節和學生是否能夠通過本次驗收活動的標準。

3實踐活動

在“物件導向軟體工程”課程教學活動中,共有45位學生(組成了15個團隊)全程參與了我們的教學改革過程,現在僅就驗收答辯環節進行說明。整個答辯所耗時間共計7個多小時;答辯老師根據實際情況(最低底線是學生必須完成專案要求的最基本功能),充分肯定了學生到目前為止所完成的開發成果,同時建議相關學生利用即將到來的假期進一步完成或完善該應用軟體系統的開發,及時修改設計上的缺陷。在本次教改實驗過程中,我們充分認識到這一教學過程對教師也提出了更高的要求。教師不僅僅是需要在理論基礎教學上過硬,還需要具備軟體專案開發的經驗,這樣才能夠做到既能站在理論的高度指導學生分析和解決問題,同時也能給出實實在在的課程專案開發活動中的技術指導。

4結語

傳統“物件導向軟體工程”課程的教學方法所帶來的弊端已經日益顯現。我們結合案例教學法和專案驅動教學法,提出了一種基於CDIO工程教育模式理念的“物件導向軟體工程”的教學方法,這既滿足了CDIO能力大綱體系中的4個方面,也體現出了教師在教學中的主導地位及作用和以學生為主體的教學風格,符合“新三中心論”。實踐證明,該課程教學方法有利於學生在以案例/專案方式充分理解和掌握本課程知識體系的前提下,通過專案驅動下的實踐環節,培養學生的問題分析能力、用程式設計手段解決問題的能力和團隊合作精神。