訾小超,薛 質(zhì),陸松年
(上海交通大學(xué)信息安全工程學(xué)院,上海 200240)
“系統(tǒng)軟件開發(fā)實(shí)踐”課程的教學(xué)探索
訾小超,薛 質(zhì),陸松年
(上海交通大學(xué)信息安全工程學(xué)院,上海 200240)
“系統(tǒng)軟件開發(fā)實(shí)踐”課程對(duì)學(xué)生領(lǐng)悟經(jīng)典系統(tǒng)軟件(操作系統(tǒng)等)的設(shè)計(jì)理念、深入理解系統(tǒng)軟件的功能特性,以及基于這些功能特性編寫高質(zhì)量程序等方面均有很好的幫助。本文對(duì)“系統(tǒng)軟件開發(fā)實(shí)踐”課程的教學(xué)工作進(jìn)行探討,首先對(duì)該課程的教學(xué)和組織管理進(jìn)行討論,如開發(fā)實(shí)踐的組織、題目的選取和開發(fā)過程的監(jiān)督等,然后結(jié)合具體教學(xué)工作,分析教學(xué)過程中所發(fā)現(xiàn)的具體問題,并對(duì)相應(yīng)的措施進(jìn)行深入的探討。
系統(tǒng)軟件;教學(xué)方法;軟件開發(fā)實(shí)踐
對(duì)計(jì)算機(jī)軟件相關(guān)專業(yè)的本科生而言,軟件設(shè)計(jì)與開發(fā)方面的動(dòng)手能力培養(yǎng)極為重要。系統(tǒng)軟件(如操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等)是計(jì)算機(jī)系統(tǒng)正常運(yùn)行的基礎(chǔ)軟件,學(xué)生若能深入理解系統(tǒng)軟件的功能和特性,他們基于這些功能和特性編寫高質(zhì)量應(yīng)用程序的能力就能得到提升。目前國內(nèi)一些有條件的大學(xué)逐漸開設(shè)了系統(tǒng)軟件開發(fā)相關(guān)的實(shí)踐課程或一些大作業(yè)等[1-4]。
為促進(jìn)本科生對(duì)系統(tǒng)軟件的深入理解,提高其軟件開發(fā)實(shí)踐動(dòng)手能力,我院近年來開設(shè)了“系統(tǒng)軟件開發(fā)實(shí)踐”課程的教學(xué)。本文對(duì)該實(shí)踐課程的教學(xué)和組織管理進(jìn)行討論,結(jié)合具體的教學(xué)工作,介紹了我們在該課程的教學(xué)過程中所發(fā)現(xiàn)的具體問題,并對(duì)如何預(yù)防和處理這些問題進(jìn)行探討。
作為一門軟件開發(fā)相關(guān)的實(shí)踐課,“系統(tǒng)軟件開發(fā)實(shí)踐”課程的教學(xué)形式與其它計(jì)算機(jī)專業(yè)基礎(chǔ)課存在明顯的區(qū)別。我們采用如下形式來完成該課程教學(xué)和開發(fā)實(shí)踐的組織管理。
(1)開發(fā)實(shí)踐組織分工明確 開發(fā)實(shí)踐以小組的形式進(jìn)行,每個(gè)小組2-5人,具體人數(shù)按開發(fā)工作量確定。小組成員預(yù)先確定好每個(gè)成員負(fù)責(zé)開發(fā)的模塊,組長負(fù)責(zé)開發(fā)項(xiàng)目的事務(wù)協(xié)調(diào)。
(2)課堂教學(xué)形式 該課程除了學(xué)生自主進(jìn)行開發(fā)實(shí)踐外,還輔以少量的課堂教學(xué)。
(3)開發(fā)實(shí)踐題目設(shè)計(jì) 該課程的候選題目覆蓋難、中、易三個(gè)層次,既有“內(nèi)存分配算法實(shí)現(xiàn)”等較為簡單的題目,也有“TCP/IP協(xié)議棧實(shí)現(xiàn)”等開發(fā)量比較大的題目,還有“入侵檢測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)”等專業(yè)性較強(qiáng)的研究性題目。
(4)開發(fā)實(shí)踐過程監(jiān)管 本課程采用開發(fā)文檔審查、課堂匯報(bào)和討論相結(jié)合的實(shí)踐監(jiān)督方式,前者實(shí)現(xiàn)開發(fā)過程標(biāo)準(zhǔn)化的檢查,后者監(jiān)督開發(fā)實(shí)踐的過程。
(5)課程考核方式 考核方式主要兼顧兩點(diǎn)原則:①考核不僅涉及整個(gè)小組的集體開發(fā)成果,還具體到每個(gè)成員的工作和表現(xiàn);②考核不僅參考最后的開發(fā)結(jié)果,還注重具體的開發(fā)實(shí)踐過程,以鼓勵(lì)學(xué)生去嘗試難度較大的開發(fā)題目,并有效避免抄襲。
1)教學(xué)實(shí)踐基本情況
開發(fā)實(shí)踐題目傾向于操作系統(tǒng)和網(wǎng)絡(luò)安全,即多數(shù)題目都與操作系統(tǒng)或網(wǎng)絡(luò)協(xié)議棧的安全相關(guān),授課對(duì)象為學(xué)院內(nèi)的高年級(jí)本科生。他們基本修完軟件設(shè)計(jì)和開發(fā)相關(guān)的專業(yè)基礎(chǔ)課程(包括程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)和算法以及軟件工程原理等),已經(jīng)基本具備軟件開發(fā)相關(guān)的理論知識(shí)和程序編制的能力。
經(jīng)過幾屆學(xué)生的系統(tǒng)軟件開發(fā)實(shí)踐課程設(shè)計(jì)的教學(xué)實(shí)踐,基本上達(dá)到了預(yù)期效果。學(xué)生對(duì)系統(tǒng)軟件的功能和特性理解透徹,所開發(fā)的原型系統(tǒng)大都達(dá)到預(yù)期的要求,學(xué)生的軟件開發(fā)能力得到很大的提高;而且絕大多數(shù)學(xué)生都表示在課程實(shí)踐過程中,接觸并解決了項(xiàng)目開發(fā)所遇到的一些實(shí)際問題(如算法優(yōu)化、模塊測試方案確定等)。
2)教學(xué)實(shí)踐中的具體問題
我們發(fā)現(xiàn)學(xué)生在軟件開發(fā)實(shí)踐中一些比較常見的問題和不足。
(1)軟件開發(fā)的工程思想不能得到很好地貫徹。表現(xiàn)在:①多數(shù)學(xué)生輕設(shè)計(jì)重編碼:一些關(guān)鍵問題還沒有考慮清楚就急于進(jìn)入編碼階段;②重開發(fā)輕測試:很多小組對(duì)軟件測試的重要性認(rèn)識(shí)不足,缺乏軟件測試的相關(guān)技術(shù)和手段;③開發(fā)計(jì)劃性弱,前期安排比較松,到最后匆忙趕工。
(2)有些小組內(nèi)部的溝通相對(duì)較少,協(xié)調(diào)效果差,小組與授課教師之間也缺乏有效的交流,導(dǎo)致系統(tǒng)軟件開發(fā)實(shí)踐不能很好完成。甚至個(gè)別小組到項(xiàng)目檢查和結(jié)題時(shí),才暴露出遇到了困難而無法完成項(xiàng)目工作。
(3)重視實(shí)踐開發(fā)過程卻忽視開發(fā)報(bào)告,忽視分析和總結(jié)。我們發(fā)現(xiàn)一些小組做了很多實(shí)際的開發(fā)工作,卻不能很好地匯報(bào)和總結(jié)工作。
(4)個(gè)別學(xué)生參與系統(tǒng)軟件開發(fā)實(shí)踐的積極性不高,只顧挑選簡單的開發(fā)題目。
3)對(duì)策分析與探討
教學(xué)實(shí)踐中存在上述問題既有學(xué)生方面的原因,如能力差別、興趣不同等,也有教師教學(xué)方面的原因。從教學(xué)的角度來看,我們認(rèn)為下列措施能夠有效緩解問題。
(1)對(duì)軟件開發(fā)的工程思想要在開發(fā)實(shí)踐中加以貫徹,這需要從多個(gè)方面對(duì)學(xué)生進(jìn)行指導(dǎo)。首先可結(jié)合一個(gè)具體開發(fā)實(shí)例,詳細(xì)講解如何按照軟件工程思想來實(shí)現(xiàn)系統(tǒng)軟件的開發(fā);然后對(duì)軟件開發(fā)的關(guān)鍵階段(如項(xiàng)目目標(biāo)和需求分析、概要設(shè)計(jì)等),要求學(xué)生提交相應(yīng)的文檔,并對(duì)文檔進(jìn)行審查或階段評(píng)審。
(2)注重多種形式的交流和溝通。為保證交流和溝通的效果,可將開發(fā)目標(biāo)、模塊功能和接口等形成的文檔交任課教師進(jìn)行審閱,以避免一些理解上的偏差。
(3)采用多種形式加強(qiáng)對(duì)開發(fā)實(shí)踐過程的督促和監(jiān)管:①從課程評(píng)價(jià)上,如引入過程分,引導(dǎo)各小組按步驟、有原則地開展軟件開發(fā)實(shí)踐;②通過多種形式(郵件、電話、MSN等)和多頻次檢查和提示,督促學(xué)生完成開發(fā)項(xiàng)目。
(4)通過具體實(shí)例講解,幫助學(xué)生提高報(bào)告撰寫、項(xiàng)目分析和總結(jié)的能力。
(5)實(shí)踐性強(qiáng)和目標(biāo)明確的軟件開發(fā)題目,對(duì)提高學(xué)生參與開發(fā)實(shí)踐的積極性有非常明顯的幫助,往屆優(yōu)秀的開發(fā)實(shí)踐項(xiàng)目介紹和經(jīng)驗(yàn)交流對(duì)學(xué)生也有顯著的啟發(fā)和激勵(lì)作用。
“系統(tǒng)軟件開發(fā)實(shí)踐”課程對(duì)學(xué)生領(lǐng)悟經(jīng)典系統(tǒng)軟件的設(shè)計(jì)理念、深入理解系統(tǒng)軟件的功能特性,以及基于這些功能特性編寫高質(zhì)量程序等方面都有很好的幫助,同時(shí)可以提高學(xué)生運(yùn)用軟件工程思想設(shè)計(jì)軟件和編制程序的能力。相對(duì)于一般應(yīng)用程序而言,系統(tǒng)軟件的實(shí)現(xiàn)和程序調(diào)試具有較高的難度,該類課程的開展無論是對(duì)教師還是對(duì)學(xué)生都是一個(gè)挑戰(zhàn)。本文對(duì)“系統(tǒng)軟件開發(fā)實(shí)踐”課程的教學(xué)工作所進(jìn)行的探討,期望能起到拋磚引玉的作用。
[1] 龔玲,陸松年,薛質(zhì),“操作系統(tǒng)”課程教學(xué)探索[J].南京:電氣電子教學(xué)學(xué)報(bào),2007,29(5):1-3
[2] 宋廣華,段健平,李善平,邊學(xué)邊干教研結(jié)合-談“操作系統(tǒng)”課程教學(xué)改革[J].南京:電氣電子教學(xué)學(xué)報(bào),2006,28(5):1-3
[3] 林明方,將Linux引入操作系統(tǒng)課程教學(xué)的研究和實(shí)踐[J].福州:福建電腦,2009年,21(6)208-208
[4] 滕艷平,王海珍,潘海珠,高校操作系統(tǒng)課程教學(xué)創(chuàng)新模式的研究與實(shí)踐[J].北京:計(jì)算機(jī)教育,2009,7(7):101-103
Exploration on the Education of System Software Development Practice
ZIXiao-chao,XUE Zhi,LU Song-nian
(Schoolo f In formation Secur ity in Shanghai Jiao Tong University,Shanghai 200240,China)
The education of System Softw are Development Practice is important for the undergraduates to understand the performances and properties of system software,and further improve their programming ability.In this paper,w e investigate how to make a course of System Softw are Development Practice.Firstly,this paper discusses several crucial issues about the course,including the practice organization,the theme selection,the supervision etc.Then it analyzes some p rob lem s found in course experience.Finally,the paperexplores the countermeasures to dealw ith the problems and improve the teaching results of the course.
system softw are;teaching method;software developm ent p ractice
G642
A
1008-0686(2010)03-0005-03
2009-10-10;
2010-02-26
訾小超(1974-),博士,高級(jí)工程師,主要從事網(wǎng)絡(luò)安全的教學(xué)與研究工作,E-m ail:zixiaochao@sjtu.edu.cn