藺想紅,鄭鑒洋
(西北師范大學計算機科學與工程學院,甘肅 蘭州 730070)
基于案例驅動的面向對象技術課程教學改革與實踐
藺想紅,鄭鑒洋
(西北師范大學計算機科學與工程學院,甘肅 蘭州 730070)
面向對象技術是一門理論性和實踐性都很強的專業課程,結合教學實踐的體會,提出了基于案例驅動的面向對象技術課程教學模式改革。首先分析了目前面向對象技術課程教學中遇到的問題,即教學中存在內容陳舊、教學方法單一、評價體系不夠完善等。然后提出“案例驅動”的教學模式,闡述該教學模式的特點,并對比分析了與以往教學模式的差別。最后探討了案例的選取,在課程教學過程中案例的應用,以及與之相適應的課程考核方式。
面向對象技術;案例驅動;教學模式;考核方式
面向對象技術(Object-Oriented Technology)強調在軟件開發過程中面向客觀世界或問題域中的事物,采用人類在認識客觀世界的過程中普遍運用的思維方法,直觀、自然地描述客觀世界中的有關事物[1-3]。面向對象技術的基本特征主要有抽象性、封裝性、繼承性和多態性等[4]。國內外大多數院校都為計算機類專業的研究生開設《面向對象技術》課程,在碩士研究生的課程體系中占有重要地位。面向對象是一種全新的思考方式,該課程以概念為基礎,注重建模和視圖,應用統一建模語言(Unified Modeling Language,UML)對面向對象技術的各個方面進行描述[5]。通過該課程的學習和理解,主要目的是使學生可以將面向對象技術應用于將來的學術研究或實際工作中,確實提高學生對復雜工程問題的求解能力,并能夠用軟件實現。但是,不同教師在該課程的教學過程中講授內容側重點各有不同,有的教師以面向對象技術為指導,講授較多的UML知識,使學生能夠熟練掌握UML并用于實際問題的軟件系統實現[6];有的教師主要講授面向對象分析和設計的理論內容,較少涉及面向對象實現和測試的相關內容,缺乏對應的實踐考核環節。此外,課程教學內容陳舊、教學方法單一、評價體系不夠完善,學生不能全面掌握面向對象技術的知識體系,教學效果不夠理想,導致學生難以達到預期的目標。
目前,《面向對象技術》課程在教學中存在以下問題:(1)以理論教學為主,忽略了實踐教學?!睹嫦驅ο蠹夹g》這門課程的理論性強,不易掌握。一方面,學生在學的過程中極易產生學不會、不想學的思想,從而產生枯燥的感覺;另一方面,教師在教的過程中較少涉及軟件新理論和具體的軟件項目案例,不容易培養學生較強的實踐能力,從而達到較好的教學效果。因此,在學習過程中學生不容易把抽象的理論和實際軟件項目聯系在一起,被動地接受抽象的理論知識會導致學生的學習興趣逐漸消失。(2)教學案例比較單一,缺乏連貫性。具體的項目案例是案例教學賴以實施的基礎,案例選擇是否恰當直接影響到案例教學的效果。許多教材上提供的案例比較單一,在一個具體的知識點上用這個案例,而另一個知識點上選擇另一個案例。這種案例缺乏連貫性,很難讓學生從系統層面上對實際問題進行分析、設計并實現。(3)以面向對象分析和設計為主,面向對象實現和測試內容不足。許多教材在介紹面向對象技術時,著重介紹面向對象分析與設計技術,對面向對象實現與測試技術只是泛泛的提一下,或者壓根不提。從內容的完整性來說,面向對象實現和面向對象測試是軟件生命周期中不可缺少的部分,這部分內容和面向過程的實現和測試又有所區別,直接忽略不利于學生全面學習面向對象技術。(4)在內容講授時缺乏對軟件設計模式的分析和穿插。設計模式是一套被反復使用的代碼設計經驗的總結,使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性[7]。毫無疑問,設計模式于己于他人于系統都是多贏的,設計模式使代碼編制真正工程化,設計模式是軟件工程的基石,如同大廈的一塊塊磚石一樣。在講授面向對象設計技術時,如果能與設計模式結合起來,對學生的系統設計能力會有極大的提升。
《面向對象技術》課程的教學改革有助于夯實學生的理論基礎知識,進一步提升學生的系統能力和創新能力,培養學生的獨立思考能力和批判性思維[8,9]。因此,本文提出了基于案例驅動(Case Driven)的《面向對象技術》課程的教學改革方案,根據碩士研究生的具體情況和實際需求,選擇學生感興趣、復雜程度合適的優秀項目案例,采用由淺入深、層層推進的方式將具體的項目案例與課程的理論內容相結合。該改革方案中,強調理論體系的同時,充分運用案例教學法,強化基于項目案例的實踐教學,優化課程內容。
1.1 案例驅動教學的基本思想
案例教學法起源于20世紀20年代,哈佛大學所倡導的案例教學法是這樣定義的:一種教師和學生共同參與,針對實際的案例問題進行討論的教學方法。在案例教學法中,教師扮演著設計者和激勵者的角色,鼓勵學生積極參與討論,不像傳統的教學方法,教師扮演著傳授知識的角色。案例教學方法有一個基本的假設前提,即學生能夠通過對這些案例的過程研究,發現案例中所蘊涵的知識并進行學習,在必要的時候回憶出并應用這些知識與技能。案例驅動教學是在此基礎上進一步引導學生進行課程內容的學習與掌握,通過案例的分析與討論,學生更易接受所學的理論知識,使教學過程更具實用性和靈活性。
1.2 案例驅動教學模式的引入
目前,研究者對《面向對象程序設計》課程(如C++,Java等語言)進行教學改革與實踐,引入案例驅動的教學模式,取得了較好的教學效果[10-13]。但對以軟件分析、設計與開發為主要目標的《面向對象技術》課程,教學研究及應用還有待進一步發展,探討案例驅動教學模式在《面向對象技術》課程中的應用,并從教學內容、教學方法、考核方式等提出新的教學改革,具有重要的價值和意義。
從《面向對象技術》課程的性質和地位出發,針對目前授課過程中存在的一些問題,使用案例驅動教學模式進行該課程的教學改革與實踐,培養學生的軟件系統分析與設計能力。(1)結合碩士研究生的知識結構,參考國內外其他院校的授課內容,將授課內容進行一定的調整,將面向對象技術分為面向對象基礎、分析、設計、實現和測試五大模塊來講授。將面向對象程序設計和 UML作為面向對象技術的基礎知識進行回顧和講解。在講授面向對象技術的同時與面向過程的軟件工程方法進行對比學習,在面向對象設計中融入設計模式的內容,提高學生分析問題和解決問題的能力。通過面向對象實現與測試內容,使學生全面理解面向對象技術,形成完整的理論體系。(2)授課方式將從傳統的講授法變到以案例驅動的教學模式,充分運用案例教學方式,形成一套優秀的案例庫,強化實踐教學。(3)優化考核方式,以課程設計的方式代替原有的筆試考核,注重教學過程的監控和學生實踐能力的評價。
2.1 案例的選擇與實施
應用面向對象方法有助于提升認識問題的能力,可以很快地洞察問題的實質,建立問題域的邏輯模型,并以此為依據解決一些看似復雜的問題。在《面向對象技術》課程的講授方式上以案例為驅動,理論與實踐相結合,逐步取代單一的理論講授。單一的理論講授容易使學生產生厭學情緒,不利于調動學生的學習積極性,還可能導致學生只懂理論方法而不懂實際應用,學習效果不佳。選擇合適的案例,可以充分調動學生的主觀能動性,體會所學理論知識的實際應用價值,做到學以致用,加深對理論知識的理解。
教師選擇的案例要使學生學會如何去考慮和解決問題,更好的應用面向對象技術來創建可維護、可擴展、可復用的軟件。案例的選擇重點考慮以下三個方面:(1)選擇的案例應覆蓋多個相關知識點,促進學生掌握面向對象分析、設計、實現、測試技術。(2)案例應具有實踐性,是學生熟悉的題材,反映在日常生活中需要解決的問題。(3)案例難度適中,循序漸進,具有一定的綜合性。比如企業人事管理系統、基于圖像的試卷識別系統、桌面搜索引擎、幼兒預防管理系統等案例。
圖1給出了《面向對象技術》課程教學過程中案例的選擇與實施方案,主要包括案例的類別、特點及其作用。第一類為知識點案例,對于特定的理論內容,通過案例的講解加深對知識點的理解與掌握。教師在教授面向對象技術的理論內容時,應以學生為主體、案例為主線,對案例所提供的材料和問題進行分析,學習案例所涉及的相關知識點,針對具體問題需求相互探討提出見解。此外,教師需要根據課程各章節之間的聯系,設計或選擇的案例應該具有連貫性,讓學生從系統層面去理解課程所講述的理論內容。第二類為項目案例,課程理論內容結束后,選擇特定的項目進行分析、設計、實現和測試,使學生掌握軟件項目開發的整個過程,進一步加深對課程內容的理解。這類案例要求分析整個開發過程,并包含相應的文檔說明。第三類為課程設計案例,要求解決一個具體的問題,并應用面向對象技術進行軟件實現,結合考核標準評價學生對該門課程的掌握情況。課程設計案例一般只給出選題及實現要求,教師可以列出一些題目讓學生選擇,或者學生根據自己的興趣、研究方向進行自主選題。

圖1 面向對象技術課程中教學案例的選擇與實施Fig.1 Selection and implementation of teaching cases in object-oriented technology
《面向對象技術》課程的教學案例選擇與實施是一個持續積累和改進的過程,一方面,根據教學的實施過程,對各類案例進行積累和擴展,構建課程案例庫。另一方面,需要清楚了解學生現有的知識水平,并結合面向對象技術的發展趨勢,對構建的案例進行持續改進。
2.2 課程的考核與評價
課程考核與評價是對學生學習效果以及知識掌握程度的衡量方式??己伺c評價改革的目標是使學生在掌握基本理論、基本知識和基本技能的基礎上,增強職業素養與專業技能,提高分析問題及解決問題的能力,成為具有較強創新意識和實踐能力的高技能人才。通過考核與評價的改革,使教學工作的重點真正落實到學生能力的培養和自身素質的提高。
《面向對象技術》課程的考核方式一般采用閉卷考試方式,對于學生來說這種考核方式只要在期末考試時,對面向對象技術的一些基本概念和理論進行復習就能取得好成績,而死記硬背的東西很容易忘記,不利于學生吸收。面向對象技術體現的是學生對軟件設計的系統能力,簡單的筆試無法反映學生對面向對象技術理解和掌握的程度。因此,我們用課程設計的方式代替傳統的閉卷考試,全面考察學生的專業素養。
在課程設計的考核方式中,要求學生選擇一個課程設計案例,進行系統的分析、設計與實現,并給出軟件文檔。面向對象技術軟件文檔主要內容包括:(1)需求分析:進行文字描述,包括功能性需求、非功能性需求等;(2)需求分析建模:給出系統的用例(Use Case)圖,對用例進行文字描述,包括用例的簡要說明、主事件流與其他事件流、前置條件和后置條件;(3)建立靜態模型:即建立類圖,確定類及對象的屬性和方法,分析類與類之間的關系,包括泛化、關聯、依賴關系;(4)建立動態模型:對一些復雜的場景,給出順序圖、協作圖,構建復雜對象的狀態圖,或業務過程的活動圖等;(5)問題域部分設計:按照具體的實現條件對對象進行必要的修改、調整和細節補充;(6)人機交互部分設計:給出軟件系統的圖形用戶界面設計,或其他的人機交互模式;(7)任務管理部分設計:對復雜的任務控制流程進行設計;(8)數據管理部分設計:根據所選擇的具體數據庫,對系統的數據存儲進行設計;(9)構件化與系統部署:分析軟件系統的體系結構,給出系統的包圖及構件圖;(10)代碼實現:對一些重要的實體類或控制過程寫出偽碼或高級語言的程序;(11)結論:對所實現的軟件系統進行總結,給出結論;(12)參考文獻:列出所用到的參考文獻。
按照面向對象技術軟件文檔的要求,逐項進行評分。采用百分制形式,具體的評分細則如表1所示。這種考核方式能全面映射課程的講授內容,并且重點突出,能鍛煉學生的實踐能力,體現學生對理論知識的掌握程度和實際應用能力,充分調動學生的學習主動性,培養學生獨立思考的能力和批判性思維。

表1 課程設計評分細則Tab.1 Detailed grading rules on course design
面向對象技術是軟件工程學中的主流方法,是現代軟件企業廣為采用的一項有效技術。學好《面向對象技術》這門課程,對學生系統能力的提升有很大幫助。針對該課程授課過程中存在的一些問題,結合學院學生實際情況,力求完善和優化課程教學內容,構建適合于教學和學生實踐的案例庫,以案例驅動的方式進行教學,使學生在學習過程中表現出較為濃厚的學習興趣,能積極參與到教學活動中來,對所學知識及時進行總結與回顧。學生在深刻理解面向對象技術理論的同時能將所學理論知識用于實踐,實踐能力和創新能力有較大提升。
[1] 陳劍輝, 張震宇. 基于面向對象技術的軟件開發系統[J].中國有線電視, 2006(12): 1164-1167.
[2] 易昕昕, 宋美娜, 楊俊, 等. 一種面向對象的全過程需求工程方法[J]. 軟件, 2014, 35(6): 1-5.
[3] 張輝, 龔杰民. 軟構件與面向對象技術[J]. 計算機工程,1998, 24(5): 15-17.
[4] 田苗苗. 基于面向對象技術的軟件開發方法[J]. 吉林師范大學學報(自然科學版), 2004, 25(2): 97-99.
[5] 吳含前, 吉逸. 《面向對象技術&UML》教學改革與實踐[J].計算機工程與科學, 2011, 33(s1): 23-26.
[6] 付曉豹, 王玉萍. 基于UML的移動教務管理系統的研究與實現[J]. 軟件, 2014, 35(5): 25-29.
[7] 鐘茂生, 王明文. 軟件設計模式及其使用[J]. 計算機應用,2002, 22(8): 32-35.
[8] 郭艷燕, 任滿杰, 李淑艷. “面向對象技術與UML”課程教學探索[J]. 計算機教育, 2013(2): 58-62.
[9] 葉俊民, 王敬華, 李蓉, 等. 基于CDIO的“面向對象軟件工程”教學模式研究[J]. 計算機教育, 2014(13): 64-67.
[10] 李建伏, 沈中林, 衡紅軍. 案例教學法在面向對象程序設計課程中的應用[J]. 軟件, 2015, 36(3): 48-51.
[11] 許四平. 基于案例驅動的面向對象程序設計教學方法的應用研究[J]. 計算機光盤軟件與應用, 2013(1): 278-279.
[12] 王學玲. 任務與案例驅動法在面向對象程序設計教學中的應用[J]. 電腦知識與技術, 2014(11): 2591-2592.
[13] 周玉新, 魏國利, 裴志利. 基于案例驅動的創新性Java教學模式研究[J]. 內蒙古民族大學學報(自然漢文版), 2014(6): 634-636.
Teaching Reform and Practice of Object-Oriented Technology Based on Case Driven Method
LIN Xiang-hong, ZHENG Jian-yang
(College of Computer Science and Engineering, Northwest Normal University, Lanzhou 730070, China)
"Object-oriented technology" is a professional course with high theoretical and practical performances.Combining with the experience of teaching practice, this paper puts forward the course reform of “object-oriented technology” based on case driven teaching model. We first analyze the problems existed in the present teaching of the course, such as obsolete teaching content, single teaching method, the evaluation system is not perfect and other issues.And then we expound the characteristics of the case driven teaching model, and the contrastive analysis is made with the previous teaching model. Finally, we explore some new ways and ideas in the reform of the course, such as selection of teaching cases, their application in the teaching processes, and appropriate course evaluation methods.
Object-oriented technology; Case driven; Teaching model; Evaluation method
TP311
A
10.3969/j.issn.1003-6970.2017.11.006
本文著錄格式:藺想紅,鄭鑒洋. 基于案例驅動的面向對象技術課程教學改革與實踐[J]. 軟件,2017,38(11):36-39
西北師范大學研究生培養與課程改革項目“案例驅動的面向對象技術課程研究”
藺想紅(1976-),男,博士,教授,主要研究方向:神經網絡、智能軟件;鄭鑒洋(1990-),碩士研究生,主要研究方向:數據分析、軟件技術。