前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件工程案例教學(xué)的設(shè)計(jì)探討范文,希望能給你帶來靈感和參考,敬請(qǐng)閱讀。
摘要:軟件工程是計(jì)算機(jī)專業(yè)高年級(jí)開設(shè)的一門核心課程,本文以移動(dòng)通訊錄APP項(xiàng)目開發(fā)為案例,將軟件工程課程所具有的理論性與方法學(xué)內(nèi)容融入案例,綜合采用分組討論、協(xié)同開發(fā)的教學(xué)方式,將原本內(nèi)容抽象、枯燥索味的授課過程變得具體且主動(dòng),實(shí)現(xiàn)了做中學(xué)、學(xué)中做的循環(huán)式教學(xué)。
關(guān)鍵詞:軟件工程;移動(dòng)開發(fā);通訊錄APP;案例教學(xué)
一、軟件工程案例教學(xué)
軟件工程是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的一門核心課程,一般在高年級(jí)開設(shè)。與其它計(jì)算機(jī)專業(yè)課程的技術(shù)性相比,軟件工程更注重管理性,是綜合技術(shù)、方法和管理并指導(dǎo)軟件項(xiàng)目開發(fā)的一門應(yīng)用型課程[1]。由于該課程具有強(qiáng)烈的工程與項(xiàng)目背景,授課內(nèi)容又涉及到項(xiàng)目管理的方法學(xué),老師在設(shè)置教學(xué)內(nèi)容時(shí)難以把握講授難度[2]換言之,一旦涉及大量的定義(例如軟件開發(fā)模型、白箱/黑箱測(cè)試等)以及方法學(xué)(例如瀑布模型、敏捷開發(fā)模型等),學(xué)生易感抽象、空洞,掌握效果不佳。以案例驅(qū)動(dòng)的形式開展授課,將上述知識(shí)點(diǎn)代入到一個(gè)或多個(gè)項(xiàng)目實(shí)例中,不僅可幫助學(xué)生更好的掌握關(guān)鍵知識(shí),還能進(jìn)一步培養(yǎng)出工程開發(fā)必要的團(tuán)隊(duì)協(xié)作能力[3]。選取什么案例以及多少案例是軟件工程案例教學(xué)值得研究的一個(gè)問題,需要結(jié)合學(xué)校制定的培養(yǎng)方案、學(xué)生的興趣等諸多因素。本文以移動(dòng)通訊錄作為課程案例的主要考慮是:(1)移動(dòng)通訊錄是移動(dòng)應(yīng)用開發(fā)的一個(gè)典型應(yīng)用,既可以涵蓋了項(xiàng)目開發(fā)的全過程,而且項(xiàng)目需求與實(shí)現(xiàn)功能點(diǎn)足夠簡(jiǎn)單,易于教師掌控;(2)移動(dòng)通訊錄基于Android平臺(tái)開發(fā),Android是當(dāng)前流行的移動(dòng)開發(fā)技術(shù),大部分軟件專業(yè)學(xué)生均對(duì)此感興趣,該平臺(tái)以Java語言為基礎(chǔ),學(xué)生一般在二年級(jí)已經(jīng)學(xué)習(xí)過Java編程,具備一定的前期積累;(3)移動(dòng)通訊錄開發(fā)難度較小但實(shí)用性強(qiáng),學(xué)生在課程結(jié)束后能夠?qū)崿F(xiàn)自己的作品,滿足了成就感,從而激發(fā)學(xué)生從事軟件開發(fā)的興趣。
二、教學(xué)內(nèi)容體系
(一)課程前導(dǎo)
軟件工程是計(jì)算機(jī)專業(yè)的一門綜合性課程。為了培養(yǎng)和樹立學(xué)生對(duì)專業(yè)學(xué)習(xí)的整體觀,在講授前教師應(yīng)對(duì)軟件工程的前導(dǎo)課程進(jìn)行簡(jiǎn)單有序的梳理,剖析各專業(yè)課程對(duì)本課程的支撐情況,對(duì)那些時(shí)隔1年以上的課程甚至需要花費(fèi)一定課時(shí)進(jìn)行回顧。本課程最核心的幾門先導(dǎo)課包括:(1)《Java面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)》,包括Java程序開發(fā)的基礎(chǔ)語法、系統(tǒng)類和相關(guān)的擴(kuò)展知識(shí)點(diǎn),如輸入輸出流、異常處理、多線程、GUI等;面向?qū)ο蟮幕驹砗拖嚓P(guān)概念,如繼承、多態(tài)等;面向?qū)ο箝_發(fā)的主要優(yōu)勢(shì):可移植、可維護(hù)、可擴(kuò)展;該課程是Android移動(dòng)編程的基礎(chǔ)語言,Java的所有機(jī)制在本課程的項(xiàng)目開發(fā)均可使用。(2)《數(shù)據(jù)庫原理及應(yīng)用》,包括數(shù)據(jù)庫的基本概念,概念模型ER圖、數(shù)據(jù)庫表,標(biāo)準(zhǔn)化查詢語言SQL等,移動(dòng)通訊錄采用Android內(nèi)置數(shù)據(jù)庫SQLite,該數(shù)據(jù)庫支持SQL。(3)《移動(dòng)應(yīng)用開發(fā)》,包括Android體系與版本;Android事件模型;Android控件與界面設(shè)計(jì)等,本課程案例-移動(dòng)通訊錄是基于Android系統(tǒng)開發(fā)。
(二)課程設(shè)置
我們將移動(dòng)通訊錄的整體開發(fā)過程根據(jù)軟件工程課程大綱的要求[4]以及工程開發(fā)的流程進(jìn)行模塊化處理。就學(xué)時(shí)情況而言,該教學(xué)體系假定課程總課時(shí)為36學(xué)時(shí),學(xué)時(shí)分配是根據(jù)軟件工程各階段的重要性進(jìn)行設(shè)定,根據(jù)筆者對(duì)移動(dòng)項(xiàng)目開發(fā)的經(jīng)驗(yàn),需求分析、詳細(xì)設(shè)計(jì)和編碼是整體項(xiàng)目完成的3個(gè)關(guān)鍵階段,學(xué)時(shí)分配較大。其次,在案例教學(xué)中,課堂上主要是教師對(duì)學(xué)生課外完成階段化工作的總結(jié)、點(diǎn)評(píng)、修繕等,大量的設(shè)計(jì)與編碼工作由學(xué)生在課后完成。就內(nèi)容設(shè)置而言,基本涵養(yǎng)了軟件工程教學(xué)的各個(gè)關(guān)鍵知識(shí)點(diǎn),包括軟件開發(fā)各階段的主要任務(wù)與目標(biāo)、應(yīng)提交的相關(guān)材料等。
三教學(xué)手段與方法
(一)學(xué)生分組
案例教學(xué)的特點(diǎn)要求本課程更適于采用學(xué)生為主的教學(xué)方式[5]。在實(shí)際的教學(xué)過程中也證實(shí)了這一點(diǎn),采用分組形式讓學(xué)生自主選擇開發(fā)場(chǎng)景既能充分調(diào)動(dòng)積極性,還能實(shí)現(xiàn)更高效的工作效率[6]。教師根據(jù)本項(xiàng)目的復(fù)雜度和班級(jí)人數(shù)分若干個(gè)組,每組按企業(yè)軟件開發(fā)的結(jié)構(gòu)設(shè)置多種角色。為了保證每組項(xiàng)目能夠的有序可行,教師根據(jù)首先為每組指定項(xiàng)目經(jīng)理的人選,然后再由項(xiàng)目經(jīng)理和學(xué)生雙向選擇的方式組件。分組過程應(yīng)把握好兩個(gè)原則:(1)自愿分組原則,自愿分組有利于團(tuán)隊(duì)交流與互助,尤其是方便課后交流;(2)組長(zhǎng)責(zé)任制原則,組長(zhǎng)有權(quán)選擇組員以及對(duì)組員的角色進(jìn)行分配,確保項(xiàng)目所要求人力資源,分組后組長(zhǎng)公開人員分配情況并且闡述分配的可行性。通過兩個(gè)原則疊加使用,既防止了自由組合時(shí)的各組專業(yè)能力不均衡的困境,又滿足不同學(xué)生承擔(dān)不同角色期望與興趣。
(二)翻轉(zhuǎn)式教學(xué)
軟件工程案例教學(xué)可以模仿企業(yè)項(xiàng)目開發(fā)的方式,由教師主導(dǎo)轉(zhuǎn)換為學(xué)生主講,項(xiàng)目組按已設(shè)定的項(xiàng)目計(jì)劃定期在課堂上報(bào)告進(jìn)展情況,尤其是說明運(yùn)用了軟件工程中哪些原則與方法,為何使用這些原則方法。每組報(bào)告后由教師組織其它項(xiàng)目組共同討論。在每一組匯報(bào)時(shí),其他小組的成員都代表為用戶角色,對(duì)項(xiàng)目進(jìn)展提出問題或者新需求。教師在總結(jié)和點(diǎn)評(píng)過程中引導(dǎo)學(xué)生使用軟件工程的相關(guān)工具,每組在需求分析、系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)庫表設(shè)計(jì)等均不相同。不同場(chǎng)景下的項(xiàng)目討論與點(diǎn)評(píng),更易于頭腦風(fēng)暴,提升學(xué)生的應(yīng)用開發(fā)能力。
(三)基于軟件開發(fā)模型的編碼
軟件開發(fā)模型是軟件工程的教學(xué)大綱當(dāng)中最重要的內(nèi)容之一,但這一部分若完全由老師講授對(duì)學(xué)生而言則過于抽象,為此,在課程進(jìn)入編碼前,教師可首先對(duì)各種開發(fā)模型進(jìn)行簡(jiǎn)單介紹,然后由每組選擇一種開發(fā)模型應(yīng)用于本組項(xiàng)目開發(fā)。在完成開發(fā)后,教師根據(jù)項(xiàng)目的完成情況、是否延期等向?qū)W生總結(jié)各模型的特點(diǎn)。
參考文獻(xiàn)
[1]沈海波,周如旗,朱雄泳.新工科+工程教育認(rèn)證背景下軟件工程特色專業(yè)建設(shè)探索[J].軟件工程,2018.03:57-59+30.
[2]田懷鳳,軟件工程案例教學(xué)的不足反思與對(duì)策研究[J].2017,08:83-84.
[3]姜洋,丁秋雷.案例教學(xué)模式研究綜述[J].上海包裝,2018.04:61-62.
[4]桑春艷,王喜賓.“互聯(lián)網(wǎng)+”環(huán)境下軟件工程課程實(shí)驗(yàn)實(shí)踐教學(xué)模式探討[J].教育現(xiàn)代化,2016,27:45-47.
[5]朱祺.案例教學(xué)法在軟件工程教學(xué)中的應(yīng)用[J].電子世界,2017,24:92-93.
[6]李玲.軟件工程課程教學(xué)模式探討[J].計(jì)算機(jī)時(shí)代,2017,05:50-53.
作者:陳耀東 單位:長(zhǎng)沙師范學(xué)院信息與工程系