摘要:本文分析了當前高等院校面向對象分析與設計課程的教學現狀,指出其存在的弊端;提出了該課程基于項目驅動的實踐體系結構;在知識體系結構、教學方法、考核方式等方面,探討了本門課程的教學改革思路。
關鍵詞:項目驅動 面向對象分析與設計 實踐教學
中圖分類號:G613 文獻標識碼:A 文章編號:1672-3791(2011)10(c)-0000-00
1 引言
面向對象分析與設計(OOA/D)課程主要任務是在學生已掌握的面向對象程序設計語言的基礎之上,使學生們能夠深入理解面向對象方法的精髓和實質,全面了解面向對象分析與設計相關領域的主要研究內容及關鍵技術,包括面向對象的需求建模、面向對象的系統(tǒng)分析、面向對象的系統(tǒng)設計及設計模式、軟件架構和軟件構件技術等內容。面向對象分析與設計方法是目前軟件開發(fā)的主流方法,它是軟件工程人才必須掌握的基礎知識和必備的能力[1]。
可以說OOA/D是軟件系統(tǒng)開發(fā)中最能體現從業(yè)人員創(chuàng)新思維以及其技術精髓閃光點之處,而與這門課程在軟件行業(yè)的重要性形成鮮明對比的是,目前OOA/D課程教學模式已然落后,偏重理論講授而脫離項目實踐,學生的學習興趣和積極性大打折扣,教學改革迫在眉睫。
2 教學現狀分析
當前我們在此門課程的講授不能滿足教學大綱培養(yǎng)需求,經分析現行的課程教學模式主要存在以下問題:
?。?)理論知識傳授過程中某些知識點的講授無法切實讓學生清晰的領會教學內容,因本門課程對項目實踐能力要求較高以及對學生抽象思維能力要求較高,即便是在結合案例的講授方式下,學生仍然對主要內容的把握上表現出不知所措,學習興趣及積極性自然大打折扣。
?。?)實驗體系也演化為為了機械的“做”而做,而不是為了“學”而做,課堂教學與實驗教學互相脫鉤,學生將軟件建模的過程當成了UML的畫圖過程,違背了“做中學”的思想[2],因此無法在實踐中去領會教學內容,也無法更清晰更形象的體會知識點。
?。?)課程的評價考核也與此門課程的教學目標相脫離,考核內容大多演化成機械的文字背誦,因在教學過程中項目實踐引入較少,使得考核過程中對分析與設計環(huán)節(jié)的考查變成了形式上的空洞。
3 基于項目驅動的課程體系結構的改革
3.1 課程實踐體系結構的搭建
本課程教學的關鍵在于以實踐為導向,以項目為驅動,這也是該課程教學的中心環(huán)節(jié)[3],為此我們首先需要搭建能夠承載本課程知識點的實踐體系結構。
WAZVS9zfNPB8/lFbk1URww== 在搭建項目體系的過程中,我們利用學院現已結題的橫縱向軟件項目,對其中的面向對象分析與設計結果摘取其中要點與課程理論知識點對接,進一步在分析與設計的各個階段,將項目的面向對象設計文檔和課程的各個UML圖形成對接,這樣由點即線,形成了完備的課程實踐體系結構,學生在這樣的結構環(huán)境下實踐能更準確更清晰的理解實踐要點及理論要點,并重現了真實的分析與設計過程,達到了良好的教學效果。
在此過程中,擯棄了以往單純使用沒有實踐積累的紙面案例進行建模畫圖的思路,搭建了全新的面向對方分析與設計的實踐體系結構,從而在實踐中講授知識,將理論知識的關鍵點轉化為實踐的關鍵點來傳授。
3.2 課程知識體系結構的改革
我們發(fā)現本課程現行的知識體系結構存在著先期準備知識的不完備性以及知識點之間的銜接不連續(xù)性,這些斷層導致學生對知識的理解模糊以及對知識的掌握找不到切入點。因此有必要對知識體系結構進行改革和完善。
面向對象分析與設計課程要求學生具備良好的抽象能力,軟件過程重要的第一步便是利用抽象將軟件需求轉化為分析結果;而第二步考慮具體的軟件可擴展性、可維護性、高效的靈活性,對分析結果給出優(yōu)化的設計方案。這兩個關鍵的步驟是開發(fā)出高質量軟件系統(tǒng)的關鍵,也是本門課程對學生先期素質的準備需要。而當前我們軟件工程專業(yè)的教學計劃中其他課程的知識傳授不能滿足面向對象分析與設計學習的先期需要,導致課程授課難度加大以及學生對知識的理解模糊。
因此整個知識體系結構有必要將《需求工程》及《設計模式》納入到教學計劃中,《需求工程》是上述第一步從抽象中得到分析結果的能力培養(yǎng),《設計模式》是第二步優(yōu)化設計思維的培養(yǎng),這樣它們二者便與現有的面向對象分析與設計及軟件工程共同構成了軟件工程專業(yè)分析與設計能力培養(yǎng)課程群[4]。接下來,我們要將這幾門課程內容進行整合,求同存異,形成統(tǒng)一的面向對象分析與設計知識體系結構,在內容選擇以及實驗配備上統(tǒng)一步調,在課程之間的連貫性以及知識點的銜接性方面進一步優(yōu)化體系結構。
4 基于項目驅動的教學方法改革
4.1 案例輔助教學
該課程講授的原理、技術、方法都很抽象,容易產生枯燥乏味的感覺。為了激發(fā)學生的學習熱情,培養(yǎng)學生分析解決問題的能力,在教學過程中可設計若干可操作和難度適中的實際案例,將復雜抽象、枯燥的概念融于具體生動的案例中進行講解,能夠收到事半功倍的效果。
例如在講需求建模,類圖,用例圖等需求分析建模工具時,可以引入ATM儲蓄系統(tǒng)、圖書管理系統(tǒng)等學生熟知的案例輔助教學,學生獨立分析、思考,然后教師再進行講解,指出不足。
這種方法不但給學生提供了充分的思考、探究和創(chuàng)新的空間,而且學生邊學邊做,會對所學的知識理解得更深,對其應用場合更明確。
4.2 基于項目驅動的教學
在成功搭建課程的實踐體系結構之后,我們便可在教學過程中以項目實踐為主線,使之成為驅動其他教學環(huán)節(jié)的有效手段。隨著課程進展布置任務,從項目開發(fā)的準備工作、系統(tǒng)分析過程、系統(tǒng)設計過程、項目實施,結合所學習的理論知識,逐步完成項目的分析與設計。具體的實施過程如下:
(1) 設計多個典型的、完整的、難度適中的、實際的軟件項目,由學生分組完成。
選擇項目時應盡量面向社會、面向應用,反映新技術,以獲得更好的工程設計實踐訓練。項目最好來源于授課教師直接參與的軟件項目,以便授課教師對其全部細節(jié)能夠準確掌握。
項目設計好之后,將學生分成五至六人的小組,然后為每個小組分配一個項目。小組成員分工合作,明確項目開發(fā)各階段的任務,將每項任務落實到個人,由學生獨立完成。
(2) 即學即練
在講授一個軟件項目分析與設計過程后,安排一到兩節(jié)的討論課,由學生自由發(fā)言。小組可以集思廣益,派一個代表講解小組對本組項目的理解、分析和設計的過程,說明運用所學的知識解決問題的方案。其他小組人員可以提出疑問,最后由教師給出評價,確定最終的實施方案,這樣項目開發(fā)的每個階段都在教師的正確指導下進行。
在項目開發(fā)過程中,教師要經常了解每組的進展情況,解決學生遇到的實際問題,給予正確的引導,確保項目能夠按部就班地、有條不紊地順利完成。
(3) 統(tǒng)一答辯和驗收
在課程結束時,每個小組的項目也接近尾聲,然后要統(tǒng)一組織答辯,上交文檔。這時可以讓小組代表對其項目的功能、采用的技術等做總結陳述,然后讓每個小組成員說明在整個項目開發(fā)過程中所完成的任務,并一一進行演示。教師針對每個學生實際負責的部分進行提問,最后根據系統(tǒng)完成的功能、文檔的質量、開發(fā)技術的難易程度、工作量等給出每個小組及組內每個成員的成績。
通過面向對象分析與設計課程的學習,學生的系統(tǒng)分析與設計能力以及開發(fā)的規(guī)范程度都有一定程度的提高,具備一定的獨立分析、解決問題能力、團隊合作能力和有效溝通的技能。
5 考核方式改革
考核方式應盡量做到多樣化,以達到全面客觀地衡量學生真實水平的目的。
作為理論性和實踐性都很強的課程,面向對象分析與設計的考核方式有別于其他課程。我們提出的方案是:總成績?yōu)?00分,平時成績(其中包括出勤和作業(yè))占總成績的10%,科技小論文占10%,項目成績占40%,期末考試占40%。
期末時,學生提交一篇科技小論文。主要考查學生對此門課程新思想、新理論、新技術等的了解程度,同時也為學生以后繼續(xù)深造打好基礎。
項目成績,是指學生開發(fā)貫穿教學始終的那個項目的成績,主要考查學生的實踐動手能力以及分析設計能力。
另外,由于此門課程的理論性強,一些原理、方法、規(guī)范要求學生牢固掌握,對于這部分內容以閉卷方式考核。同時筆試反對死記硬背,重點考查學生綜合運用理論知識的能力和方法,考核學生對面向對象分析與設計思想和軟件開發(fā)方法的實際掌握程度。
6 結語
本文闡述的教學改革中,提出了“以分析設計能力培養(yǎng)為核心、以項目實踐為驅動” 的教學模式。課程安排分為課堂理論教學和實踐教學兩大部分:課堂理論教學的目的是使學生掌握基本概念、原理和方法,在此我們重點進行了此門課程的知識體系結構改革,優(yōu)化了知識體系結構;實踐教學的目的是在搭建好的軟件項目體系結構的實踐平臺上培養(yǎng)學生綜合運用所學知識的能力。在此教學模式下,能夠很好的培養(yǎng)學生系統(tǒng)分析設計的能力,培養(yǎng)他們嚴謹、求實的科學態(tài)度和團隊精神,激發(fā)他們的創(chuàng)新意識和實踐精神。
參考文獻
[1] 梁金昆. 面向對象的系統(tǒng)分析與設計[M]. 北京: 清華大學