周飚
[摘 要]隨著現(xiàn)代信息技術(shù)的發(fā)展,各行各業(yè)對(duì)應(yīng)用軟件開(kāi)發(fā)人才的需求更大、要求更高。為適應(yīng)當(dāng)前形勢(shì),高職院校的應(yīng)用軟件開(kāi)發(fā)類(lèi)課程教學(xué)要研究新思路、新方法。通過(guò)分析應(yīng)用軟件開(kāi)發(fā)課程的教學(xué)現(xiàn)狀,將軟件迭代開(kāi)發(fā)模式運(yùn)用到教學(xué)過(guò)程中,翻轉(zhuǎn)課堂,注重培養(yǎng)學(xué)生的操作能力。
[關(guān)鍵詞]應(yīng)用軟件開(kāi)發(fā);瀑布式開(kāi)發(fā);迭代式開(kāi)發(fā);教學(xué);應(yīng)用
doi:10.3969/j.issn.1673 - 0194.2020.14.102
[中圖分類(lèi)號(hào)]TP312.2-4;G642[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673-0194(2020)14-0-02
1? ? ?應(yīng)用軟件開(kāi)發(fā)人才需求
隨著大數(shù)據(jù)、人工智能、物聯(lián)網(wǎng)、云計(jì)算、區(qū)塊鏈、第五代移動(dòng)通信網(wǎng)絡(luò)等現(xiàn)代信息技術(shù)在各行各業(yè)應(yīng)用越來(lái)越廣泛和深入,每個(gè)業(yè)務(wù)領(lǐng)域的全程信息化是大勢(shì)所趨。用戶(hù)對(duì)應(yīng)用軟件需求進(jìn)一步向深度和廣度發(fā)展,需要隨時(shí)隨地查詢(xún)信息、處理業(yè)務(wù),而操作方便、功能完備、體驗(yàn)良好的應(yīng)用軟件肯定會(huì)受到用戶(hù)的歡迎。一個(gè)完整的軟件開(kāi)發(fā)流程包括需求收集和分析、前端界面設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、應(yīng)用系統(tǒng)設(shè)計(jì)、數(shù)據(jù)庫(kù)開(kāi)發(fā)、后端開(kāi)發(fā)、前端開(kāi)發(fā)、測(cè)試、整合上線和交付等環(huán)節(jié)。其中,數(shù)據(jù)庫(kù)開(kāi)發(fā)要求熟練運(yùn)用SQL及相關(guān)技術(shù),實(shí)現(xiàn)對(duì)數(shù)據(jù)的管理和統(tǒng)計(jì);后端開(kāi)發(fā)要求熟練運(yùn)用JavaEE、PHP等后端語(yǔ)言開(kāi)發(fā)服務(wù)端應(yīng)用和供前端訪問(wèn)的接口;前端開(kāi)發(fā)要求熟練運(yùn)用HTML、CSS和JavaScript等開(kāi)發(fā)Web前端應(yīng)用。涉及應(yīng)用軟件開(kāi)發(fā)的就業(yè)崗位有數(shù)據(jù)庫(kù)開(kāi)發(fā)與管理、JavaEE服務(wù)端開(kāi)發(fā)、PHP網(wǎng)站開(kāi)發(fā)、前端開(kāi)發(fā)等。要想讓學(xué)生適應(yīng)和勝任這些就業(yè)崗位,符合應(yīng)用軟件行業(yè)未來(lái)發(fā)展的需要,需要做好應(yīng)用軟件開(kāi)發(fā)課程教學(xué)工作,探索出符合高職院校實(shí)際情況的應(yīng)用軟件開(kāi)發(fā)教學(xué)思路和方法,這是擺在每位高職院校應(yīng)用軟件開(kāi)發(fā)教學(xué)工作者面前的緊迫問(wèn)題。
2? ? ?應(yīng)用軟件開(kāi)發(fā)課程及教學(xué)現(xiàn)狀
2.1? ?應(yīng)用軟件開(kāi)發(fā)課程概述
涉及應(yīng)用軟件開(kāi)發(fā)的專(zhuān)業(yè)一般開(kāi)設(shè)了HTML5+CSS3網(wǎng)站前臺(tái)設(shè)計(jì)、JavaScript前端交互設(shè)計(jì)、Java面向?qū)ο缶幊?、PHP網(wǎng)站設(shè)計(jì)與開(kāi)發(fā)、MySQL數(shù)據(jù)庫(kù)編程等課程。這些課程的共同點(diǎn)是掌握和運(yùn)用一門(mén)計(jì)算機(jī)語(yǔ)言,根據(jù)用戶(hù)需求,對(duì)應(yīng)用軟件系統(tǒng)其中的一部分進(jìn)行編碼,實(shí)現(xiàn)相應(yīng)的功能。對(duì)于進(jìn)入高等職業(yè)院校學(xué)習(xí)的學(xué)生來(lái)說(shuō),知識(shí)的聯(lián)系性和系統(tǒng)性不太完善,抽象邏輯思維能力比較薄弱,理解編程語(yǔ)言的執(zhí)行流程和底層原理存在一定困難,職業(yè)院校需要加強(qiáng)培養(yǎng)學(xué)生分析實(shí)際問(wèn)題并熟練運(yùn)用編程語(yǔ)言解決問(wèn)題的能力。
2.2? ?教學(xué)現(xiàn)狀
①偏重理論,給學(xué)生過(guò)多講解軟件開(kāi)發(fā)并不會(huì)涉及的理論知識(shí),忽視了能力培養(yǎng)。②偏重語(yǔ)法,著重講解每一門(mén)語(yǔ)言的基本語(yǔ)法,學(xué)生只是停留在語(yǔ)言層面進(jìn)行一般理解。③偏重布置一些只是用來(lái)熟悉語(yǔ)法的簡(jiǎn)單任務(wù)。④偏重代碼的單向講解,讓學(xué)生照搬和模仿。⑤不注重對(duì)具體需求和具體任務(wù)的分析,不注重講解根據(jù)不同需求編寫(xiě)程序的思路和方法,不注重演示根據(jù)需求編碼的過(guò)程。很多學(xué)生缺乏對(duì)軟件項(xiàng)目的整體認(rèn)識(shí),急需提高分析和滿(mǎn)足軟件需求的能力。
3? ? ?迭代式開(kāi)發(fā)概述
迭代式開(kāi)發(fā)也被稱(chēng)作迭代增量式開(kāi)發(fā)或迭代進(jìn)化式開(kāi)發(fā),每次只設(shè)計(jì)和實(shí)現(xiàn)軟件產(chǎn)品的一個(gè)累進(jìn)版本,這種逐步完善的開(kāi)發(fā)方法叫迭代開(kāi)發(fā),每次設(shè)計(jì)和實(shí)現(xiàn)的一個(gè)階段叫做一個(gè)迭代。迭代式開(kāi)發(fā)方法是一種與傳統(tǒng)的瀑布式開(kāi)發(fā)相反的軟件開(kāi)發(fā)模式,彌補(bǔ)了傳統(tǒng)開(kāi)發(fā)方式中的不足,成功率和生產(chǎn)率更高。在迭代式開(kāi)發(fā)方法中,整個(gè)開(kāi)發(fā)工作被組織為一系列短小的、固定長(zhǎng)度的小項(xiàng)目,被稱(chēng)為一系列的迭代。每一次迭代都包括定義、需求分析、設(shè)計(jì)、編碼實(shí)現(xiàn)與測(cè)試。采用這種方法,開(kāi)發(fā)工作可以在需求被完整地確定前啟動(dòng),并在一次迭代中完成系統(tǒng)的一部分功能或業(yè)務(wù)邏輯的開(kāi)發(fā)工作。再通過(guò)客戶(hù)的反饋細(xì)化需求,開(kāi)始新一輪迭代。
4? ? ?迭代式編程教學(xué)設(shè)計(jì)與方法研究
迭代式編程演示教學(xué)法實(shí)際上借鑒了迭代開(kāi)發(fā)模式,在進(jìn)行現(xiàn)場(chǎng)編碼演示時(shí),不是一次性編寫(xiě)全部代碼,設(shè)計(jì)功能強(qiáng)大且構(gòu)成復(fù)雜的軟件系統(tǒng),而將待實(shí)現(xiàn)的軟件系統(tǒng)根據(jù)難易程度設(shè)計(jì)若干版本,根據(jù)每個(gè)版本設(shè)計(jì)若干任務(wù),每次編程任務(wù)設(shè)計(jì)一個(gè)可運(yùn)行的版本,后一個(gè)版本在前一個(gè)版本的基礎(chǔ)上增加部分功能,直到完成最終版本。這種編程教學(xué)方法循序漸進(jìn),由淺入深,能夠啟發(fā)學(xué)生探索式學(xué)習(xí)和編程,激發(fā)學(xué)生編程的積極性和創(chuàng)造力,將所學(xué)的知識(shí)滲透到每一個(gè)版本的編碼過(guò)程中,在完成每一次迭代版本時(shí),獲得成就感,增強(qiáng)自信心。這種編程教學(xué)方法既可以培養(yǎng)學(xué)生分析問(wèn)題和解決問(wèn)題的能力,還可以提高學(xué)生的邏輯思維能力和編程能力。下面以Java面向?qū)ο缶幊淘O(shè)計(jì)課程中JDBC數(shù)據(jù)庫(kù)操作的一個(gè)教學(xué)案例研究迭代式編程演示法在教學(xué)中的應(yīng)用。
網(wǎng)上書(shū)城后臺(tái)數(shù)據(jù)庫(kù)包含若干數(shù)據(jù)表,其中,“book表”用來(lái)存放網(wǎng)上書(shū)城在線銷(xiāo)售的全部圖書(shū)信息,每條圖書(shū)記錄包含圖書(shū)編號(hào)、圖書(shū)類(lèi)別、書(shū)名、作者、出版社、出版時(shí)間、單價(jià)和數(shù)量等字段。運(yùn)用JDBC數(shù)據(jù)庫(kù)操作技術(shù)增加圖書(shū)的庫(kù)存數(shù)量。
迭代任務(wù)一:運(yùn)用用JDBC技術(shù)增加20本“book表”中圖書(shū)編號(hào)為“6634”的圖書(shū)。這個(gè)任務(wù)難度小,不需要提供圖形用戶(hù)界面,只用來(lái)熟悉JDBC操作數(shù)據(jù)庫(kù)的基本步驟,按照步驟編寫(xiě)程序即可,如下所示。
//1、注冊(cè)并加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)
Class.forName("com.mysql.jdbc.Driver");
//2、獲取數(shù)據(jù)庫(kù)連接對(duì)象Connection
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bookstore", "root", "123456");
//3、定義Sql語(yǔ)句
String sql = "UPDATE book SET 數(shù)量 = 數(shù)量 + 20 WHERE 圖書(shū)編號(hào) = '6634'";
//4、創(chuàng)建語(yǔ)句對(duì)象
Statement stmt = conn.createStatement();
//5、執(zhí)行sql
int num = stmt.executeUpdate(sql);
System.out.println("修改成功,共修改了" + num + "條記錄。");
//6、關(guān)閉jdbc對(duì)象
stmt.close();
conn.close();
迭代任務(wù)二:提供圖形用戶(hù)界面,由用戶(hù)輸入需要增加的數(shù)量(圖1),根據(jù)輸入的數(shù)量,在原來(lái)的基礎(chǔ)上增加編號(hào)為“6634”的圖書(shū)。
這個(gè)任務(wù)難度為中,不再只是增加固定的數(shù)量“20”,而是由用戶(hù)在文本框中輸入需要增加的數(shù)量,點(diǎn)擊增加按鈕即可為編號(hào)為“6634”的圖書(shū)增加指定的數(shù)量。這個(gè)任務(wù)要綜合運(yùn)用JDBC和GUI技術(shù)實(shí)現(xiàn)編程,不足之處是只能對(duì)編號(hào)為“6634”的圖書(shū)增加庫(kù)存數(shù)量。
迭代任務(wù)三:提供圖形用戶(hù)界面,由用戶(hù)選擇圖書(shū)編號(hào),再輸入需要增加的數(shù)量(圖2),點(diǎn)擊“增加”按鈕后,根據(jù)所選圖書(shū)編號(hào)和所輸入數(shù)量增加該圖書(shū)的庫(kù)存數(shù)量。
這個(gè)任務(wù)難度高,用戶(hù)可以單擊下拉選擇框選擇圖書(shū)編號(hào),再輸入要增加的數(shù)量。點(diǎn)擊“增加”按鈕后將為選定的圖書(shū)增加輸入數(shù)量。這個(gè)任務(wù)與上一任務(wù)的不同之處在于根據(jù)數(shù)據(jù)庫(kù)圖書(shū)表存儲(chǔ)的全部圖書(shū)編號(hào)創(chuàng)建下拉選擇框,供用戶(hù)選擇圖書(shū)編號(hào)。這個(gè)任務(wù)要深入運(yùn)用JDBC和GUI技術(shù)實(shí)現(xiàn)編程,功能更完善,更切合實(shí)際需求。
教師先從簡(jiǎn)單任務(wù)進(jìn)行分析,并進(jìn)行編程演示,引導(dǎo)學(xué)生運(yùn)用所學(xué)知識(shí)上手編程。第一次迭代版本完成后,組織學(xué)生進(jìn)行成果展示、交流經(jīng)驗(yàn)。接著啟發(fā)學(xué)生完成下一個(gè)版本,在鞏固上一個(gè)版本中用到的知識(shí)的同時(shí),教師進(jìn)行適當(dāng)演示,激發(fā)學(xué)生用新的知識(shí)設(shè)計(jì)新版本。按照這種迭代式編程演示方法,教師和學(xué)生一起一步步開(kāi)發(fā)出用戶(hù)使用價(jià)值越來(lái)越高的軟件。
5? ? ?結(jié) 語(yǔ)
迭代式編程演示教學(xué)方法是軟件開(kāi)發(fā)類(lèi)課程教學(xué)進(jìn)行課堂翻轉(zhuǎn)的重要部分,這樣的方法可以讓學(xué)生主動(dòng)學(xué)習(xí)和積極創(chuàng)新。在貫通學(xué)生知識(shí)、提高學(xué)生技能的同時(shí),增強(qiáng)師生互動(dòng)、生生互動(dòng),有助于學(xué)生積累項(xiàng)目實(shí)戰(zhàn)經(jīng)驗(yàn),提高學(xué)生創(chuàng)新能力。
主要參考文獻(xiàn)
[1]朱忠旭,黃兵.基于案例項(xiàng)目的高職“軟件工程”迭代式教學(xué)法研究[J].安慶師范學(xué)院學(xué)報(bào):自然科學(xué)版,2014(4):141-144.
[2]張喻平.MySQL數(shù)據(jù)庫(kù)理實(shí)一體化教學(xué)研究[J].學(xué)周刊,2019(9):11.
[3]楊彩.分階段迭代式教學(xué)在Java課程中的應(yīng)用[J].教書(shū)育人:高教論壇,2015(15):109-110.
[4]陳戰(zhàn)勝,王廷梅,李明.項(xiàng)目教學(xué)中應(yīng)用迭代開(kāi)發(fā)方法的研究和實(shí)踐[J].計(jì)算機(jī)教育,2010(7):134-137.
[5]王海英,張偉華.任務(wù)驅(qū)動(dòng)分步迭代教學(xué)在《JAVA程序設(shè)計(jì)》教學(xué)改革中的應(yīng)用[J].電腦知識(shí)與技術(shù),2017(26):142-143.
[6]張帆.項(xiàng)目迭代驅(qū)動(dòng)教學(xué)法在《網(wǎng)頁(yè)設(shè)計(jì)與制作》教學(xué)中的應(yīng)用[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2013(7):232-233.
[7]王明松,錢(qián)靜媛.Android應(yīng)用程序開(kāi)發(fā)課程的CDIO教學(xué)實(shí)踐[J].電腦知識(shí)與技術(shù),2015(14):151-152.