文暢 謝凱
摘要:該文針對《面向?qū)ο蟪绦蛟O(shè)計》課程教學(xué)中不足,以軟件工程師的培養(yǎng)為導(dǎo)向,提出從模塊開發(fā)教學(xué)和實踐教學(xué)等方面對該課程教學(xué)進行改革,并通過案例分析說明,使學(xué)生盡快熟悉整個編程的流程,從純代碼編程向可視化編程過渡,提高編程的質(zhì)量和效率,獲得了良好的教學(xué)效果。
關(guān)鍵詞:面向?qū)ο蟪绦蛟O(shè)計;模塊化;計算機專業(yè)
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2017)05-0071-02
模塊化的面向?qū)ο蟪绦蛟O(shè)計是一種軟件設(shè)計與開發(fā)的新方法,其核心思想將整個軟件分割成不同功能化模塊,在開始編碼之前,先做模塊化設(shè)計,畫出整個軟件模塊化流程圖。然后編寫各個“模塊代碼”,對各個模塊進行測試,確保每個模塊測試通過。最后將各個模塊連接起來,進行整個軟件的測試,確保整個軟件的正常運行。
面向?qū)ο蟪绦蛟O(shè)計[1]是計算機專業(yè)和信息類專業(yè)一門重要的專業(yè)基礎(chǔ)課。本文針對《面向?qū)ο蟪绦蛟O(shè)計》課程教學(xué)中不足,將模塊化開發(fā)理念引入面向?qū)ο蟪绦蛟O(shè)計,通過計算機專業(yè)和信工專業(yè)幾個實驗班的多輪教學(xué)實踐檢驗,學(xué)生受益匪淺。
1 面向?qū)ο蟪绦蛟O(shè)計與模塊化教學(xué)結(jié)合
我們通過多年的教學(xué)實踐發(fā)現(xiàn),大學(xué)生在剛開始學(xué)習面向?qū)ο蟪绦蛟O(shè)計的障礙來主要來自于以下兩個方面[2]:1)缺乏計算機的程序化思維模式;2)對整個程序的運行過程不是非常了解。要想學(xué)好面向?qū)ο蟪绦蛟O(shè)計,要了解程序如何運行、運行的順序和運行結(jié)果。只有具備了這方面的認識,才能更好設(shè)計可視化程序,解決工程碰到的實際問題。同時,也解決了缺乏計算機的程序化思維模式的問題。
為避免面向?qū)ο蟪绦蚓幊讨械娜秉c引入結(jié)構(gòu)化編程的模塊化思想。在采用面向?qū)ο缶幊痰倪^程中發(fā)現(xiàn),引入傳統(tǒng)變成方法的模塊化思想后,程序的易讀性和可重用性比單純使用面向?qū)ο蟮姆椒ㄐЧ?,在實際編程中,具有很好的效果。
2 案例分析
我們以一個案例為例,來說明模塊開發(fā)方法的優(yōu)越性以及在面向?qū)ο蟪绦蛟O(shè)計教學(xué)中的應(yīng)用 [3]。
例如,要求學(xué)生用VC6.0做一個簡單的繪圖軟件。軟件的功能如下:
1)啟動界面,要求將“VC大作業(yè)2”寫在軟件啟動界面上,界面上有“確定”和“取消”兩個按鈕,點擊“確定”按鈕進入繪圖主程序,點擊“取消”按鈕退出程序。
2)繪圖程序,要求如下:①有圖像工具欄,完成“畫正弦波”、“畫方波”、“畫鋸齒波”、“單視圖”、“雙視圖”和“退出主程序”六大功能。②繪圖界面切分為上下兩部分,上部為繪圖區(qū),下部為控制區(qū)。
3)退出界面,要求將“你確定退出嗎”寫在軟件退出界面上,界面上有“確定”和“取消”兩個按鈕,點擊“確定”按鈕退出繪圖主程序,點擊“取消”按鈕返回繪圖主程序。
2.1 軟件模塊化流程
1)啟動模塊:啟動模塊主要通過對話框模板來設(shè)計。程序剛開始運行時,會彈出一個啟動對話框,用戶根據(jù)對話框上的提示,做出相應(yīng)的選擇。在整個啟動對話框退出之前,整個應(yīng)用程序不能繼續(xù)其他的操作。
建立一個與啟動模塊相對應(yīng)的類,類名為CStartDlg,該類為CDialog的一個公有派生類。同時為該類建立一個相對應(yīng)的可視資源IDD_START_DIALOG,如圖1所示。
2)繪圖模塊:擬采用VC6.0的單文檔程序來設(shè)計繪圖模塊。該模塊分為三步完成,首先建立工具欄,利用VC6.0提供的畫筆繪制工具欄,如圖2所示。
然后按照軟件功能要求將繪圖區(qū)域分為顯示和控制兩部分。程序的代碼圖3所示。
最后在內(nèi)存區(qū)域?qū)φ也?、方波和鋸齒波進行繪制。
3)退出模塊:擬采用對話框來設(shè)計退出模塊。建立一個與退出模塊相對應(yīng)的類,類名為CExitDlg,該類為CDialog的一個公有派生類。同時為該類建立一個相對應(yīng)的可視資源IDD_EXIT_DIALOG,如圖4所示。
3 結(jié)論
通過模塊化的設(shè)計,進行可視化編程的訓(xùn)練??梢允箤W(xué)生盡快熟悉整個編程的流程,從純代碼編程向可視化編程過渡。在進行編程前,讓學(xué)生進行軟件整體模塊的方案設(shè)計,可以提高學(xué)生編程的效率,為以后進入軟件開發(fā)團隊,承擔部分模塊化設(shè)計打下堅實的基礎(chǔ)。
參考文獻:
[1] 譚浩強.C++面向?qū)ο蟪绦蛟O(shè)計[M].北京:清華大學(xué)出版社,2014.
[2] 余厚全,吳凌云,陳永軍.電子信息類專業(yè)實驗教學(xué)的幾點思考[J].實驗室研究與探索, 2009,28(6):102-104.
[3] 譚浩強.C++面向?qū)ο蟪绦蛟O(shè)計題解與上機指導(dǎo)[M]. 北京:清華大學(xué)出版社,2014.