本站小編為你精心準備了軟件工程漸進式建模課程教學參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
1背景
軟件工程類課程涉及程序設計語言、數據組成設計、算法設計、控制設計、數據傳輸設計等軟件開發的各個方面,旨在培養學生在軟件系統的分析、設計、編碼、測試、排錯等不同階段的設計思想與能力,課程涉及的語法繁多、技術復雜,軟件建模教學是其中重要的一環。建模是以模型化的方法描述軟件系統的“因果關系”或“結構關系”的過程。對建模直觀的理解就是用形式化的圖形或語言抽象地描述事物的主要特征,既包括對事物組成結構和相互關系的靜態描述,也包括對事物與外部交互機制以及事物內部組件運行機制的內在描述。建模是對軟件系統的高度抽象,在軟件開發中有兩個作用:一是模型可以幫助預測到后續系統真正實現后的結果;二是建模可以指導后續系統的真正實現。因此建模是軟件開發中分析和設計的重要部分,可以更好地銜接從需求到實現的各個環節。以軟件工程中面向對象技術為例,“面向對象”是一種認知工程學方法論,旨在使計算機按照人類的思維方式去認知和處理問題。“一切皆為對象”是對“面向對象”思想的經典描述。“面向對象”以其更加接近人類思維方式的特點成為當前軟件開發的主流技術,并且是計算機類專業學生必須掌握的內容。相應地,作為面向對象方法的核心,面向對象編程語言(如C++、Java、C#程序設計等)和面向對象建模方法在整個計算機課程中占據了大量課時,地位也非常重要[1]。對面向對象課程的掌握和理解將對學生的編程能力、分析問題和解決問題的能力產生深遠的影響。
面向對象建模具有統一的建模語言(UML),從軟件的需求分析到最終實現階段,現已擴展出一整套面向對象系統的統一開發過程(UP)[2]。這就要求在軟件開發的所有階段,都應用統一的表示法。面向對象建模有助于軟件系統開發者對系統的分析與設計,縮減開發時間和人力成本,增加軟件的可重用性、可擴充性、可維護性和可靠性,面向對象建模法可以凸顯面向對象程序設計的優越性。在大學計算機專業的面向對象教學中,程序設計課程是先行課程,這種“編碼先行策略”的優勢在于學生對程序編寫先有了直觀了解,但同時也暴露出一些問題:一些學生過分專注于編程語言,系統開發也偏重于代碼的實現,這實際上是某種意義上的倒退——過度重視實現機制,而不是它們所支持的面向對象思維過程。在早期編程語言學習階段,教師對統一建模語言并不進行強化和要求,導致部分學生對建模理解有偏差,養成了不良的思維和編碼習慣,后期再次學習的時候反而更加困難。如何才能讓學生在面向對象學習的早期階段就建立面向對象建模的概念?如何將面向對象編程能力培養與建模能力培養結合起來?如何加強程序設計類課程與建模類課程的前后銜接與貫通?這些都是軟件工程建模類課程教學所面臨的共同問題。
2建模課程面臨的問題
2.1龐大的知識體系面臨有限的授課學時建模滲透在軟件工程的各個環節當中,包括應用領域專家交流階段、企業級建模應用階段、編寫文檔階段以及程序設計階段。面向對象建模的知識體系可以分為3個部分:面向對象建模概念表示法、面向對象分析與設計、面向對象實現。UML統一建模語言作為軟件工程專業三年級本科生的必修課,課程學時設定為32學時,因學時限制,要求教學內容必須進行大幅度縮減。面對龐大的知識體系,授課只能采用以點帶面的方式講授其中的第一部分,而第二部分和第三部分只能作概念性介紹。
2.2抽象的理論教學內容缺少實踐環節支持在課程教學的內容安排上,教師需要逐一講解類建模、狀態建模和交互建模。這3種建模方法又包含類圖、包圖、狀態圖、用例圖、順序圖等共13種建模圖的具體表示法,這部分教學占據了90%以上的課堂時間。這門課程并未配機房練習環節,教師為了保證教學質量需要對每種圖的畫法及變化逐一講解。這些理論性內容較為枯燥,不如軟件代碼那么具體可運行,也沒有實際系統作為支撐和輔助手段,無法引起學生足夠的重視,導致很多學生對軟件工程建模的理解僅停留在理論和概念階段,知其然而不知其所以然。
2.3編程課程與建模課程的設置缺乏銜接軟件工程將軟件系統的整個開發過程分為需求分析、概要設計、詳細設計、系統實現和系統測試5個階段。針對不同階段,教學的側重點不同,在本科生教學中出現的先后時間也有差異。以面向對象技術為例,其核心課程是面向對象編程語言和面向對象建模。通常,編碼語言類課程相對開設較早,建模類課程開課較晚,導致理論與實踐缺乏銜接。大連理工大學軟件學院面向對象類課程開課時間見表1。從表1中看出,編程課程、建模課程及實踐課程存在明顯的時間差,這不利于學生對知識的融會貫通。編程語言學習階段重視編碼與系統的實現,建模學習階段重視建模方法的介紹和講解,學生往往到了做畢業設計階段依然沒有從頭至尾完整地經歷過一次面向對象開發的全過程,既沒有對開發過程的宏觀認識,也沒有對具體細節間的銜接性把握。這種教學的“時差性”導致許多軟件工程專業學生在本科畢業設計階段往往先用編程語言把系統實現出一個大概,然后修修補補,再做逆向工程,繪制建模圖,因此常常出現需求與設計對應不上,設計與實現對應不上的補丁式本科畢業論文,究其根本,還是建模方法教學與系統實現教學脫節造成的。
3漸進式教學的內容
漸進式教學是指教學活動主體不斷提升的發展過程,主要包括不同個體自身隨時間周期推移的不斷發展過程,以及學習內容隨著時間周期螺旋式上升的過程。學習內容和個體自身學習時間的不斷演化,使教育不斷地接近最終培養目標。國內大學本科生軟件工程教學一般是以編程語言教學為重點開展的,其目的是要培養學生熟練的軟件編碼技能,以便在工程實踐中能夠靈活運用,因此在編程語言教學方面,增量式、互動式、開放式等教學手段都會得到靈活運用。事實上,軟件工程建模思想本身是獨立于編程語言的。以面向對象開發為例,面向對象教學不僅要培養學生熟練的軟件編碼技能,還要培養學生面向對象建模能力和軟件設計領域的科學思維方式,這樣才能讓學生既具備實際編碼能力,同時也對軟件系統的宏觀設計與模塊設計有把控能力。如果把編程語言教學比作一座建筑的施工,那么建模教學就是建筑的構思和設計的藍圖,因此,本科生軟件工程教學要通過改革課程內容和授課方式來強化建模對編程的指導作用。要實現“模型反映需求”“建模協助設計”“模型指導編程”的面向對象統一開發過程,必須對面向對象建模的教學內容進行漸進式調整。
4實施
4.1面向對象建模教學的內容分解為了強化建模對系統開發的指導意義,實現面向對象統一開發過程,我們對面向對象建模的教學內容進行了階段式分解,將面向對象建模課程分解為建模入門、建模基礎、建模提高、綜合強化和實踐應用5個階段。教學內容以培養面向對象思想為主線,以實現面向對象開發為目的,以編程語言教學、建模語言教學、實踐應用教學為載體,在整個軟件工程本科生教學環節中由淺入深逐步強化建模知識,最終使學生達到全面掌握并能靈活運用的程度。(1)建模入門階段引導學生以面向對象的思想形成最基本的抽象化建模思維。該階段的建模教學以“單獨類”的設計為中心,包括類的“屬性”、類的“操作”的圖形表示法及意義,介紹抽象、封裝、多態的思想,介紹類的“繼承”關系。(2)建模基礎階段引導學生進一步加深對面向對象建模的認識。該階段的建模教學以“類的關系”為中心,內容包括類的關聯、繼承、依賴,強化以面向對象的思想對系統進行靜態建模。(3)建模提高階段要求學生以面向對象的思想綜合分析需求。該階段在前兩個階段的基礎上突出類的“狀態”和“對象交互”,介紹類的狀態分析、用例分析以及順序圖和活動圖的表示法,強化使用面向對象的思想對系統進行動態建模。(4)在綜合強化階段,建模教學以系統分析設計為中心,全面整合系統靜態建模和動態建模的方法,講解系統領域分析、應用分析、高級類建模知識,強化整套UML圖形表示法和建模方法。(5)實踐應用階段。帶領學生運用面向對象方法完成面向對象分析、面向對象設計、面向對象編程,并對學生UML制圖的精細化、準確化進行全面驗收。
4.2漸進式面向對象建模教學我們將5門面向對象類課程(含軟件工程課程設計)進行聯系貫通,形成漸進式面向對象教學體系,如圖1所示。面向對象稱為“線狀知識”,沿著系統實現和系統設計兩個方向展開。早期的C++教學是以系統實現為重點,同時也發展一部分系統設計;上升期的Java和C#教學需要兼顧系統實現和系統設計,雙向發展;成熟期的UML教學是以系統設計為重點,同時整合系統實現;最后在軟件工程課程設計階段,完成面向對象知識體系的綜合應用。
4.3教學視頻庫的建設UML統一建模語言課程在大專院校已經開設了較長時間,教材、學習參考書、電子課件和教學案例已經基本建設完畢。漸進式教學需要低年級本科生盡早接觸面向對象建模知識,因此,我們將教學視頻庫的建設放到了首要位置。視頻庫建成后,學生可以盡早觀看視頻,自主學習UML建模的初期知識點,再到中后期的課堂中靈活運用。這樣既可以讓學生接觸到建模課程的知識,又不增加低年級課程授課教師的負擔。教學視頻可以分為“微課”和“屏幕錄像課件”兩種。“微課”是指以視頻為主要載體,記錄教師教育過程的一種新型教學資源。“屏幕錄像課件”是指通過教師授課的語音信息、板書記錄呈現的視頻課件。屏幕錄像課件通過電腦錄屏軟件記錄教師在授課時對電子課件操作的全過程,同時也可以使用電子白板等手段記錄教師的板書書寫過程,還可以同期錄制教師上課的聲音,隨后將聲音與圖像合二為一,形成立體的視頻課件。屏幕錄像因為不需要微課的攝影機、攝影棚等設備,成為一種方便的電子視頻課件的制作方法。“微課”和“屏幕錄像課件”選用的知識點應在2~7分鐘內講解清楚,如果時間太長,學習者注意力容易分散,太短則會造成知識點講解不充分或教學節奏過快,影響教學效果。短時間教學視頻對課堂教學設計提出了更高的要求:必須將每節課的教學內容按知識點劃分成5~10分鐘左右的教學單元,每個單元制作成一個課件。知識點的選擇、排序等是對教學內容的精細加工,這要求分析學習者的初始能力、學習目標、學習特征、學習環境等因素。制作高質量的5分鐘教學視頻需要專業的團隊,該團隊應該包括優秀的一線教師、教學設計專家、教學媒體制作專家等,遵循教學設計的基本原理和流程,并在教學實踐中不斷修改、完善。UML知識體系的特點就是單元性強,包括3類共計13種不同類型的建模圖,非常適合這種教學模式。
5結語
軟件工程建模類課程漸進式教學改革是大連理工大學軟件學院在多年教學經驗的基礎上,參考國際先進的工程教育理念提出的一種新型軟件工程教育模式。該模式依托學院現有的面向對象類課程體系,以良好的教學團隊為研究基礎,以面向對象建模語言(UML)課程為改革中心,實現了“以編程逐步滲透建模思想,以建模思想指導程序設計”“全面提高學生學習主動性和實踐能力”的教學目標。在后續的教學過程中,我們將繼續對教學體系進行迭代優化,使其發揮更好的作用。
作者:趙小薇 許真珍 田琳琳 于紅 徐秀娟 單位:大連理工大學 軟件學院