摘要:本文分析面向?qū)ο箢愓n程之間的前后關(guān)系,針對原有各門課程的實踐環(huán)節(jié)存在相互獨立、無系統(tǒng)化的問題,按照面向?qū)ο蟮能浖_發(fā)過程,提出:1)重新整合面向?qū)ο笙盗姓n程,形成包含基礎(chǔ)篇、提高篇和深入篇的三段式面向?qū)ο蠹夹g(shù)課程體系;2)重新整合各門課程的實踐環(huán)節(jié),使之前后銜接,形成一體;3)建立基于IBM Rational企業(yè)級軟件工具的統(tǒng)一實踐平臺。讓學(xué)生在教學(xué)實踐中掌握實用性的、應(yīng)用型、系統(tǒng)化的面向?qū)ο蟮能浖_發(fā)技術(shù)。
關(guān)鍵詞:面向?qū)ο蠹夹g(shù);課程體系;統(tǒng)一實踐平臺
隨著計算機技術(shù)的迅速發(fā)展和IT行業(yè)對軟件工程理念的不斷重視,面向?qū)ο蠹夹g(shù)目前已逐漸成為現(xiàn)代軟件開發(fā)中的主流方法。統(tǒng)一建模語言UML自1997年,被OMG(Object Management Group)采納為面向?qū)ο蟮臉藴式UZ言之后,已經(jīng)成為當今國際上應(yīng)用最廣泛的、構(gòu)建對象模型的描述語言和技術(shù)規(guī)范,成為軟件業(yè)公認的開發(fā)標準?;赨ML(Unified Modeling Language)的面向?qū)ο蠓治雠c設(shè)計方法在國內(nèi)外學(xué)術(shù)界和產(chǎn)業(yè)界越來越受到重視,國內(nèi)外許多高校的計算機類課程中均開設(shè)了“面向?qū)ο蠹夹g(shù)”、“UML”或“面向?qū)ο蟮能浖こ獭钡认嚓P(guān)課程[1-2]。華北電力大學(xué)計算機專業(yè)在原有編程語言和面向?qū)ο蠹夹g(shù)課程的基礎(chǔ)上,重新調(diào)整、整合和新增了面向?qū)ο笙嚓P(guān)課程,形成了從基礎(chǔ)篇到提高篇的面向?qū)ο笳n程體系。面向?qū)ο箢惛鏖T課程原有的實踐環(huán)節(jié)互相獨立,使用的實驗平臺各異,實驗內(nèi)容相互間沒有銜接或者有部分內(nèi)容重復(fù)。2009年,我系在教育部專項基金的資助下,基于IBM Rational平臺建設(shè)了適于各門面向?qū)ο笳n程實驗的統(tǒng)一軟件工具平臺、讓原本獨立或重復(fù)的各門課程的實踐環(huán)節(jié),前后銜接起來,形成一體。通過一系列系統(tǒng)化的整合實驗,讓學(xué)生逐漸掌握面向?qū)ο筌浖_發(fā)過程,具備實際的項目開發(fā)能
力,以期培養(yǎng)“厚基礎(chǔ)、強實踐”的應(yīng)用型、實踐型的計算機技術(shù)人才。
1面向?qū)ο蠹夹g(shù)系列課程的課程體系
面向?qū)ο蠹夹g(shù)所涵蓋的領(lǐng)域廣泛,有所熟知的面向?qū)ο缶幊陶Z言,如C++、Java、C#等,還有采用面向?qū)ο笏枷氲能浖_發(fā)過程:包括基于UML的面向?qū)ο蟮南到y(tǒng)分析、面向?qū)ο蟮南到y(tǒng)設(shè)計和面向?qū)ο蟮膶崿F(xiàn),面向?qū)ο蟮臏y試,面向?qū)ο蟮能浖_發(fā)過程等。
為了使計算機學(xué)科的學(xué)生全面掌握面向?qū)ο蠹夹g(shù),我系在原有高級編程語言和面向?qū)ο蠹夹g(shù)課程的基礎(chǔ)上,借助2008版新教學(xué)大綱[3]修訂的契機,重新調(diào)整、整合和新增相關(guān)課程,遵循由淺及深的原則,形成基礎(chǔ)入門、技術(shù)提高、綜合深入的三階段面向?qū)ο笳n程體系。在該課程體系中,以高級語言程序設(shè)計(C++)、面向?qū)ο缶幊陶Z言(Java)課程為基礎(chǔ),面向?qū)ο蠹夹g(shù)與UML課程為提高,J2EE開發(fā)平臺及程序設(shè)計、可視化編程、軟件工程、軟件測試等課程為深入,并配以相應(yīng)的獨立實踐環(huán)節(jié)。2009年7月,在教育部修購專項基金的支持下,引入了目前軟件業(yè)廣泛使用的企業(yè)級軟件工具——IBM Rational 系列軟件,為建立面向?qū)ο笙盗姓n程的統(tǒng)一實驗環(huán)境提供了物質(zhì)基礎(chǔ)。
1.1低年級的基礎(chǔ)入門和技術(shù)提高
計算機類學(xué)生的一年級第一學(xué)期和第二學(xué)期初開設(shè)必修課高級編程語言(C++)和專業(yè)限選課Java語言程序設(shè)計,建立面向?qū)ο笳Z言的編程基礎(chǔ)。通過這兩門先修課,學(xué)生對面向?qū)ο蟮木幊逃辛顺醪降牧私猓渤醪骄邆涿嫦驅(qū)ο髮崿F(xiàn)和編程的能力。但是此時學(xué)生對軟件的分析設(shè)計方法還沒有系統(tǒng)化,面向?qū)ο蠹夹g(shù)和UML課程的開設(shè),目的是在學(xué)生涉足軟件開發(fā)之初,就樹立起面向?qū)ο蠓治觥⒃O(shè)計的理念。并且配備了一周的獨立實踐環(huán)節(jié)——UML課程設(shè)計,實驗的題目選用學(xué)生日常生活中熟悉的小型系統(tǒng),如圖書系統(tǒng)的借書或者還書子系統(tǒng)、學(xué)生成績管理系統(tǒng)等。要求學(xué)生使用支持UML2.0以上的CASE (Computer-aided Software Engineering )工具完成面向?qū)ο蟮闹饕治龊驮O(shè)計模型,包括用例分析、繪制類圖和順序圖,并進一步的設(shè)計,然后嘗試使用CASE正向工程,由模型自動生成Java或者C++的代碼框架,并要求學(xué)生用所學(xué)過的面向?qū)ο笳Z言簡單實現(xiàn)所設(shè)計的系統(tǒng)。
1.2高年級的綜合深入
在學(xué)生熟悉了面向?qū)ο笳Z言和面向?qū)ο蠓治鲈O(shè)計、UML建模之后。三年級將按照面向?qū)ο蟮能浖こ痰拈_發(fā)流程來安排課程、分為方法論、過程管理、高級工具環(huán)境這三大部分。方法論中包括軟件工程和軟件測試課程;過程管理包括軟件工程的一部分章節(jié)和軟件工程項目管理課程;高級工具環(huán)境包括J2EE開發(fā)平臺及程序設(shè)計和軟件工具和環(huán)境課程。
首先開設(shè)軟件工程,從整體上介紹貫穿軟件生命周期的整個軟件開發(fā)的流程,在軟件工程的方法學(xué)中,包括了傳統(tǒng)方法和面向?qū)ο蠓椒?。隨后開設(shè)的軟件測試課程中,包括一部分面向?qū)ο鬁y試的理論和測試工具的介紹。而在軟件項目管理課程中,會涉及同面向?qū)ο筌浖_發(fā)相關(guān)的過程管理和項目管理。然后開設(shè)J2EE開發(fā)平臺及程序設(shè)計課程,在學(xué)生掌握面向?qū)ο箝_發(fā)技術(shù)以及Java語言的基礎(chǔ)上,介紹軟件的架構(gòu)、組件開發(fā)和企業(yè)級應(yīng)用等內(nèi)容。軟件設(shè)計的高級篇,以提高學(xué)生的實際的編程和應(yīng)用開發(fā)的能力為重點,設(shè)立選修課軟件工具與環(huán)境,專門介紹流行的、支持面向?qū)ο筌浖こ谈鱾€環(huán)節(jié)的CASE工具。
在三年級的第二學(xué)期,單獨開設(shè)了兩周的軟件工程課程設(shè)計,并結(jié)合軟件項目管理和J2EE開發(fā)平臺及程序設(shè)計的課內(nèi)實踐環(huán)節(jié),將學(xué)生分成項目組,每組選用面向?qū)ο蟮姆椒▽W(xué),對所選擇的中型系統(tǒng),使用CASE工具,完成從計劃、分析、設(shè)計、實現(xiàn)、測試,以及項目管理,涉及面向?qū)ο筌浖_發(fā)的整個流程。
2案例教學(xué)和多樣化教學(xué)手段
隨著面向?qū)ο蠹夹g(shù)的普及和軟件行業(yè)對軟件工程開發(fā)流程的重視,面向?qū)ο蠹夹g(shù)和UML建模越來越受到關(guān)注。自O(shè)MG組織將UML采納為標準的面向?qū)ο蠼UZ