本站小編為你精心準備了軟件工程漸進式建模課程教學參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
1背景
軟件工程類課程涉及程序設計語言、數(shù)據(jù)組成設計、算法設計、控制設計、數(shù)據(jù)傳輸設計等軟件開發(fā)的各個方面,旨在培養(yǎng)學生在軟件系統(tǒng)的分析、設計、編碼、測試、排錯等不同階段的設計思想與能力,課程涉及的語法繁多、技術復雜,軟件建模教學是其中重要的一環(huán)。建模是以模型化的方法描述軟件系統(tǒng)的“因果關系”或“結構關系”的過程。對建模直觀的理解就是用形式化的圖形或語言抽象地描述事物的主要特征,既包括對事物組成結構和相互關系的靜態(tài)描述,也包括對事物與外部交互機制以及事物內(nèi)部組件運行機制的內(nèi)在描述。建模是對軟件系統(tǒng)的高度抽象,在軟件開發(fā)中有兩個作用:一是模型可以幫助預測到后續(xù)系統(tǒng)真正實現(xiàn)后的結果;二是建模可以指導后續(xù)系統(tǒng)的真正實現(xiàn)。因此建模是軟件開發(fā)中分析和設計的重要部分,可以更好地銜接從需求到實現(xiàn)的各個環(huán)節(jié)。以軟件工程中面向?qū)ο蠹夹g為例,“面向?qū)ο蟆笔且环N認知工程學方法論,旨在使計算機按照人類的思維方式去認知和處理問題。“一切皆為對象”是對“面向?qū)ο蟆彼枷氲慕?jīng)典描述。“面向?qū)ο蟆币云涓咏咏祟愃季S方式的特點成為當前軟件開發(fā)的主流技術,并且是計算機類專業(yè)學生必須掌握的內(nèi)容。相應地,作為面向?qū)ο蠓椒ǖ暮诵模嫦驅(qū)ο缶幊陶Z言(如C++、Java、C#程序設計等)和面向?qū)ο蠼7椒ㄔ谡麄€計算機課程中占據(jù)了大量課時,地位也非常重要[1]。對面向?qū)ο笳n程的掌握和理解將對學生的編程能力、分析問題和解決問題的能力產(chǎn)生深遠的影響。
面向?qū)ο蠼>哂薪y(tǒng)一的建模語言(UML),從軟件的需求分析到最終實現(xiàn)階段,現(xiàn)已擴展出一整套面向?qū)ο笙到y(tǒng)的統(tǒng)一開發(fā)過程(UP)[2]。這就要求在軟件開發(fā)的所有階段,都應用統(tǒng)一的表示法。面向?qū)ο蠼S兄谲浖到y(tǒng)開發(fā)者對系統(tǒng)的分析與設計,縮減開發(fā)時間和人力成本,增加軟件的可重用性、可擴充性、可維護性和可靠性,面向?qū)ο蠼7梢酝癸@面向?qū)ο蟪绦蛟O計的優(yōu)越性。在大學計算機專業(yè)的面向?qū)ο蠼虒W中,程序設計課程是先行課程,這種“編碼先行策略”的優(yōu)勢在于學生對程序編寫先有了直觀了解,但同時也暴露出一些問題:一些學生過分專注于編程語言,系統(tǒng)開發(fā)也偏重于代碼的實現(xiàn),這實際上是某種意義上的倒退——過度重視實現(xiàn)機制,而不是它們所支持的面向?qū)ο笏季S過程。在早期編程語言學習階段,教師對統(tǒng)一建模語言并不進行強化和要求,導致部分學生對建模理解有偏差,養(yǎng)成了不良的思維和編碼習慣,后期再次學習的時候反而更加困難。如何才能讓學生在面向?qū)ο髮W習的早期階段就建立面向?qū)ο蠼5母拍睿咳绾螌⒚嫦驅(qū)ο缶幊棠芰ε囵B(yǎng)與建模能力培養(yǎng)結合起來?如何加強程序設計類課程與建模類課程的前后銜接與貫通?這些都是軟件工程建模類課程教學所面臨的共同問題。
2建模課程面臨的問題
2.1龐大的知識體系面臨有限的授課學時建模滲透在軟件工程的各個環(huán)節(jié)當中,包括應用領域?qū)<医涣麟A段、企業(yè)級建模應用階段、編寫文檔階段以及程序設計階段。面向?qū)ο蠼5闹R體系可以分為3個部分:面向?qū)ο蠼8拍畋硎痉ā⒚嫦驅(qū)ο蠓治雠c設計、面向?qū)ο髮崿F(xiàn)。UML統(tǒng)一建模語言作為軟件工程專業(yè)三年級本科生的必修課,課程學時設定為32學時,因?qū)W時限制,要求教學內(nèi)容必須進行大幅度縮減。面對龐大的知識體系,授課只能采用以點帶面的方式講授其中的第一部分,而第二部分和第三部分只能作概念性介紹。
2.2抽象的理論教學內(nèi)容缺少實踐環(huán)節(jié)支持在課程教學的內(nèi)容安排上,教師需要逐一講解類建模、狀態(tài)建模和交互建模。這3種建模方法又包含類圖、包圖、狀態(tài)圖、用例圖、順序圖等共13種建模圖的具體表示法,這部分教學占據(jù)了90%以上的課堂時間。這門課程并未配機房練習環(huán)節(jié),教師為了保證教學質(zhì)量需要對每種圖的畫法及變化逐一講解。這些理論性內(nèi)容較為枯燥,不如軟件代碼那么具體可運行,也沒有實際系統(tǒng)作為支撐和輔助手段,無法引起學生足夠的重視,導致很多學生對軟件工程建模的理解僅停留在理論和概念階段,知其然而不知其所以然。
2.3編程課程與建模課程的設置缺乏銜接軟件工程將軟件系統(tǒng)的整個開發(fā)過程分為需求分析、概要設計、詳細設計、系統(tǒng)實現(xiàn)和系統(tǒng)測試5個階段。針對不同階段,教學的側(cè)重點不同,在本科生教學中出現(xiàn)的先后時間也有差異。以面向?qū)ο蠹夹g為例,其核心課程是面向?qū)ο缶幊陶Z言和面向?qū)ο蠼!Mǔ#幋a語言類課程相對開設較早,建模類課程開課較晚,導致理論與實踐缺乏銜接。大連理工大學軟件學院面向?qū)ο箢愓n程開課時間見表1。從表1中看出,編程課程、建模課程及實踐課程存在明顯的時間差,這不利于學生對知識的融會貫通。編程語言學習階段重視編碼與系統(tǒng)的實現(xiàn),建模學習階段重視建模方法的介紹和講解,學生往往到了做畢業(yè)設計階段依然沒有從頭至尾完整地經(jīng)歷過一次面向?qū)ο箝_發(fā)的全過程,既沒有對開發(fā)過程的宏觀認識,也沒有對具體細節(jié)間的銜接性把握。這種教學的“時差性”導致許多軟件工程專業(yè)學生在本科畢業(yè)設計階段往往先用編程語言把系統(tǒng)實現(xiàn)出一個大概,然后修修補補,再做逆向工程,繪制建模圖,因此常常出現(xiàn)需求與設計對應不上,設計與實現(xiàn)對應不上的補丁式本科畢業(yè)論文,究其根本,還是建模方法教學與系統(tǒng)實現(xiàn)教學脫節(jié)造成的。
3漸進式教學的內(nèi)容
漸進式教學是指教學活動主體不斷提升的發(fā)展過程,主要包括不同個體自身隨時間周期推移的不斷發(fā)展過程,以及學習內(nèi)容隨著時間周期螺旋式上升的過程。學習內(nèi)容和個體自身學習時間的不斷演化,使教育不斷地接近最終培養(yǎng)目標。國內(nèi)大學本科生軟件工程教學一般是以編程語言教學為重點開展的,其目的是要培養(yǎng)學生熟練的軟件編碼技能,以便在工程實踐中能夠靈活運用,因此在編程語言教學方面,增量式、互動式、開放式等教學手段都會得到靈活運用。事實上,軟件工程建模思想本身是獨立于編程語言的。以面向?qū)ο箝_發(fā)為例,面向?qū)ο蠼虒W不僅要培養(yǎng)學生熟練的軟件編碼技能,還要培養(yǎng)學生面向?qū)ο蠼D芰蛙浖O計領域的科學思維方式,這樣才能讓學生既具備實際編碼能力,同時也對軟件系統(tǒng)的宏觀設計與模塊設計有把控能力。如果把編程語言教學比作一座建筑的施工,那么建模教學就是建筑的構思和設計的藍圖,因此,本科生軟件工程教學要通過改革課程內(nèi)容和授課方式來強化建模對編程的指導作用。要實現(xiàn)“模型反映需求”“建模協(xié)助設計”“模型指導編程”的面向?qū)ο蠼y(tǒng)一開發(fā)過程,必須對面向?qū)ο蠼5慕虒W內(nèi)容進行漸進式調(diào)整。
4實施
4.1面向?qū)ο蠼=虒W的內(nèi)容分解為了強化建模對系統(tǒng)開發(fā)的指導意義,實現(xiàn)面向?qū)ο蠼y(tǒng)一開發(fā)過程,我們對面向?qū)ο蠼5慕虒W內(nèi)容進行了階段式分解,將面向?qū)ο蠼Un程分解為建模入門、建模基礎、建模提高、綜合強化和實踐應用5個階段。教學內(nèi)容以培養(yǎng)面向?qū)ο笏枷霝橹骶€,以實現(xiàn)面向?qū)ο箝_發(fā)為目的,以編程語言教學、建模語言教學、實踐應用教學為載體,在整個軟件工程本科生教學環(huán)節(jié)中由淺入深逐步強化建模知識,最終使學生達到全面掌握并能靈活運用的程度。(1)建模入門階段引導學生以面向?qū)ο蟮乃枷胄纬勺罨镜某橄蠡K季S。該階段的建模教學以“單獨類”的設計為中心,包括類的“屬性”、類的“操作”的圖形表示法及意義,介紹抽象、封裝、多態(tài)的思想,介紹類的“繼承”關系。(2)建模基礎階段引導學生進一步加深對面向?qū)ο蠼5恼J識。該階段的建模教學以“類的關系”為中心,內(nèi)容包括類的關聯(lián)、繼承、依賴,強化以面向?qū)ο蟮乃枷雽ο到y(tǒng)進行靜態(tài)建模。(3)建模提高階段要求學生以面向?qū)ο蟮乃枷刖C合分析需求。該階段在前兩個階段的基礎上突出類的“狀態(tài)”和“對象交互”,介紹類的狀態(tài)分析、用例分析以及順序圖和活動圖的表示法,強化使用面向?qū)ο蟮乃枷雽ο到y(tǒng)進行動態(tài)建模。(4)在綜合強化階段,建模教學以系統(tǒng)分析設計為中心,全面整合系統(tǒng)靜態(tài)建模和動態(tài)建模的方法,講解系統(tǒng)領域分析、應用分析、高級類建模知識,強化整套UML圖形表示法和建模方法。(5)實踐應用階段。帶領學生運用面向?qū)ο蠓椒ㄍ瓿擅嫦驅(qū)ο蠓治觥⒚嫦驅(qū)ο笤O計、面向?qū)ο缶幊蹋W生UML制圖的精細化、準確化進行全面驗收。
4.2漸進式面向?qū)ο蠼=虒W我們將5門面向?qū)ο箢愓n程(含軟件工程課程設計)進行聯(lián)系貫通,形成漸進式面向?qū)ο蠼虒W體系,如圖1所示。面向?qū)ο蠓Q為“線狀知識”,沿著系統(tǒng)實現(xiàn)和系統(tǒng)設計兩個方向展開。早期的C++教學是以系統(tǒng)實現(xiàn)為重點,同時也發(fā)展一部分系統(tǒng)設計;上升期的Java和C#教學需要兼顧系統(tǒng)實現(xiàn)和系統(tǒng)設計,雙向發(fā)展;成熟期的UML教學是以系統(tǒng)設計為重點,同時整合系統(tǒng)實現(xiàn);最后在軟件工程課程設計階段,完成面向?qū)ο笾R體系的綜合應用。
4.3教學視頻庫的建設UML統(tǒng)一建模語言課程在大專院校已經(jīng)開設了較長時間,教材、學習參考書、電子課件和教學案例已經(jīng)基本建設完畢。漸進式教學需要低年級本科生盡早接觸面向?qū)ο蠼VR,因此,我們將教學視頻庫的建設放到了首要位置。視頻庫建成后,學生可以盡早觀看視頻,自主學習UML建模的初期知識點,再到中后期的課堂中靈活運用。這樣既可以讓學生接觸到建模課程的知識,又不增加低年級課程授課教師的負擔。教學視頻可以分為“微課”和“屏幕錄像課件”兩種。“微課”是指以視頻為主要載體,記錄教師教育過程的一種新型教學資源。“屏幕錄像課件”是指通過教師授課的語音信息、板書記錄呈現(xiàn)的視頻課件。屏幕錄像課件通過電腦錄屏軟件記錄教師在授課時對電子課件操作的全過程,同時也可以使用電子白板等手段記錄教師的板書書寫過程,還可以同期錄制教師上課的聲音,隨后將聲音與圖像合二為一,形成立體的視頻課件。屏幕錄像因為不需要微課的攝影機、攝影棚等設備,成為一種方便的電子視頻課件的制作方法。“微課”和“屏幕錄像課件”選用的知識點應在2~7分鐘內(nèi)講解清楚,如果時間太長,學習者注意力容易分散,太短則會造成知識點講解不充分或教學節(jié)奏過快,影響教學效果。短時間教學視頻對課堂教學設計提出了更高的要求:必須將每節(jié)課的教學內(nèi)容按知識點劃分成5~10分鐘左右的教學單元,每個單元制作成一個課件。知識點的選擇、排序等是對教學內(nèi)容的精細加工,這要求分析學習者的初始能力、學習目標、學習特征、學習環(huán)境等因素。制作高質(zhì)量的5分鐘教學視頻需要專業(yè)的團隊,該團隊應該包括優(yōu)秀的一線教師、教學設計專家、教學媒體制作專家等,遵循教學設計的基本原理和流程,并在教學實踐中不斷修改、完善。UML知識體系的特點就是單元性強,包括3類共計13種不同類型的建模圖,非常適合這種教學模式。
5結語
軟件工程建模類課程漸進式教學改革是大連理工大學軟件學院在多年教學經(jīng)驗的基礎上,參考國際先進的工程教育理念提出的一種新型軟件工程教育模式。該模式依托學院現(xiàn)有的面向?qū)ο箢愓n程體系,以良好的教學團隊為研究基礎,以面向?qū)ο蠼UZ言(UML)課程為改革中心,實現(xiàn)了“以編程逐步滲透建模思想,以建模思想指導程序設計”“全面提高學生學習主動性和實踐能力”的教學目標。在后續(xù)的教學過程中,我們將繼續(xù)對教學體系進行迭代優(yōu)化,使其發(fā)揮更好的作用。
作者:趙小薇 許真珍 田琳琳 于紅 徐秀娟 單位:大連理工大學 軟件學院