文章編號(hào):1672-5913(2008)20-0060-04
摘 要:本文對(duì)3本國(guó)內(nèi)《軟件工程》教材及2本引進(jìn)的美國(guó)《軟件工程》教材進(jìn)行比較分析,并結(jié)合筆者從事軟件工程教學(xué)的經(jīng)驗(yàn),分類(lèi)總結(jié)了該課程的若干教學(xué)實(shí)施方法。
關(guān)鍵詞:軟件工程;教材;教學(xué)方法;比較教育研究
中圖分類(lèi)號(hào):G642
文獻(xiàn)標(biāo)識(shí)碼:B
1 中美《軟件工程》教材編寫(xiě)比較
我們以歷年教學(xué)中使用過(guò)的三本國(guó)內(nèi)教材及作為教學(xué)參考書(shū)使用過(guò)的兩本國(guó)外引進(jìn)教材為研究對(duì)象,分別就軟件工程的地位、教學(xué)內(nèi)容、講授方法、實(shí)踐環(huán)節(jié)安排等問(wèn)題進(jìn)行比較分析。作為研究對(duì)象的五本教材列于表1。為了敘述方便起見(jiàn),按表1順序五本教材分別簡(jiǎn)稱(chēng)為“湯本”、“劉本”、“張本”、“鄭譯本”和“影印本”。
1.1 關(guān)于軟件工程的地位及開(kāi)設(shè)該課程的意義
“湯本”沿用IEEE對(duì)軟件工程術(shù)語(yǔ)的定義:“以優(yōu)質(zhì)、高效、低成本為目標(biāo),研究開(kāi)發(fā)、運(yùn)行和維護(hù)軟件以及使之退役的系統(tǒng)方法”?!皽尽鼻把灾兄赋鲕浖こ陶n程“為學(xué)生后續(xù)的專(zhuān)業(yè)課程教學(xué)和工程實(shí)踐環(huán)節(jié)提供必要的方法學(xué)基礎(chǔ)和能力訓(xùn)練,同時(shí)也是學(xué)生參加工作后立即面臨的最直接應(yīng)用基礎(chǔ)。”可見(jiàn),“湯本”強(qiáng)調(diào)的是“方法學(xué)”及方法學(xué)訓(xùn)練。
“劉本”引用IEEE Standard Glossary of Software Engineering Terminology給出的一個(gè)“軟件工程”更為全面的定義:“軟件工程是①將系統(tǒng)性的、規(guī)范化的、可定量的方法應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù),即將工程化應(yīng)用到軟件上;②對(duì)①中所述方法的研究”?!皠⒈尽痹谇把灾杏种赋觥败浖こ滩粌H從方法論的角度為管理人員和開(kāi)發(fā)人員提供可見(jiàn)的結(jié)構(gòu)和有序的思考方式,而且從大量軟件開(kāi)發(fā)的成功經(jīng)驗(yàn)總結(jié)出設(shè)計(jì)模式、框架、部件庫(kù)等,軟件工程正在逐步發(fā)展為一門(mén)成熟的專(zhuān)業(yè)學(xué)科”。“劉本”在進(jìn)一步指出方法的“系統(tǒng)性”、“規(guī)范化”、“可定量”特征的同時(shí),強(qiáng)調(diào)軟件工程的專(zhuān)業(yè)性。為此,該教材1.3節(jié)專(zhuān)門(mén)介紹了IEEE和ACM聯(lián)合研究項(xiàng)目——SWEBOK
(軟件工程知識(shí)體系)所包含的10個(gè)知識(shí)領(lǐng)域。
“張本”指出,軟件工程是“研究軟件開(kāi)發(fā)與維護(hù)的普遍原理和技術(shù)”,同時(shí)認(rèn)為“一本書(shū)中不可能包含軟件工程的全部?jī)?nèi)容,入門(mén)介紹從實(shí)用角度講述軟件工程的基本原理、概念和方法”。
“鄭譯本”的原書(shū)前言指出,“為了獲得成功,在設(shè)計(jì)和開(kāi)發(fā)軟件時(shí),我們需要有規(guī)范,需要有工程化的方法”。該書(shū)新版第6版“更加強(qiáng)調(diào)一些新的和重要的軟件工程過(guò)程和實(shí)踐”。
“影印本”在回答“What is software engineering?”(什么是軟件工程?)時(shí)這樣寫(xiě)道“As software engineering, we use our knowledge of computers and computing to help solve problems.”(軟件工程意味著我們應(yīng)用計(jì)算機(jī)和計(jì)算科學(xué)的知識(shí)幫助解決問(wèn)題)。在小結(jié)中寫(xiě)道:“Software engineers use tools, techniques procedures , and paradigms to enhance the quality of their software products.”(軟件工程師應(yīng)用工具、方法、過(guò)程和范式來(lái)增進(jìn)軟件產(chǎn)品的質(zhì)量)?!癟heir aim is to use efficient and productive approaches to generate effective solutions to problems.”(其目標(biāo)是應(yīng)用有效和生產(chǎn)性的方法產(chǎn)生問(wèn)題的有效解答)。
不難看出兩本引進(jìn)教材更加強(qiáng)調(diào)軟件工程的“實(shí)踐性”、“生產(chǎn)性”,這與國(guó)內(nèi)教材強(qiáng)調(diào)“學(xué)科性”、“基礎(chǔ)性”不同。對(duì)軟件工程認(rèn)識(shí)上的這種差異,決定了中美兩國(guó)“軟件工程”教材在教學(xué)內(nèi)容、講授方法及實(shí)踐環(huán)節(jié)安排等方面的諸多差異,最終也將決定學(xué)生勝任第一任職崗位需要的差別。國(guó)內(nèi)學(xué)生畢業(yè)時(shí)雖有較好的基礎(chǔ),但往往需要數(shù)月、半年至一年再培訓(xùn)、再學(xué)習(xí)才能勝任崗位工作,這對(duì)美國(guó)學(xué)生是不可想象的。因?yàn)槿绻荒茌^快或立即適應(yīng)工作,就意味著“失業(yè)”。
1.2 關(guān)于軟件工程的教學(xué)內(nèi)容
“湯本”的教學(xué)內(nèi)容主要講傳統(tǒng)方法即結(jié)構(gòu)化方法。這是考慮到“結(jié)構(gòu)化方法是軟件工程入門(mén)階段的最基本要求和大多數(shù)中、小型軟件開(kāi)發(fā)中的實(shí)用技術(shù)”?!皽尽比珪?shū)共8章,第1章概述,第2章軟件計(jì)劃,第3章需求分析,第4章軟件設(shè)計(jì),第5章編碼,第6章軟件測(cè)試,第7章軟件維護(hù),第8章軟件項(xiàng)目管理,附錄文檔參考大綱?!皽尽币許A(結(jié)構(gòu)化分析)、SD(結(jié)構(gòu)化設(shè)計(jì))、SP(結(jié)構(gòu)化編程)為主線,結(jié)合一個(gè)“學(xué)生選課注冊(cè)系統(tǒng)”的實(shí)例進(jìn)行分析。
“劉本”以IEEE最新發(fā)布的軟件工程知識(shí)體系(SWEBOK)為基礎(chǔ)構(gòu)建內(nèi)容框架,重點(diǎn)講面向?qū)ο蟮姆椒?。其它?nèi)容則點(diǎn)到為止,并未展開(kāi)闡述?!皠⒈尽比珪?shū)11章,第1章概述,第2章軟件過(guò)程,第3章軟件項(xiàng)目管理,第4章需求工程,第5章形式化方法,第6章面向?qū)ο蠡A(chǔ),第7章面向?qū)ο蠓治觯?章面向?qū)ο笤O(shè)計(jì),第9章軟件實(shí)現(xiàn),第10章軟件測(cè)試,第11章軟件演化、維護(hù)、再工程。其中,第4章、第6至第10章,以當(dāng)前普遍流行的面向?qū)ο蠹夹g(shù)和UML(統(tǒng)一建模語(yǔ)言)為核心,全面、深入、系統(tǒng)地介紹軟件開(kāi)發(fā)各個(gè)階段的任務(wù)、過(guò)程、方法和工具,并結(jié)合Minilibrary(小型圖書(shū)館系統(tǒng))實(shí)例進(jìn)行分析。
“張本”既講結(jié)構(gòu)化方法,又講面向?qū)ο蠓椒ǎ驗(yàn)椤敖Y(jié)構(gòu)分析和結(jié)構(gòu)設(shè)計(jì)技術(shù)現(xiàn)在仍然是人們?cè)陂_(kāi)發(fā)軟件過(guò)程中使用得非常廣泛的方法,在相當(dāng)長(zhǎng)一段時(shí)間內(nèi)這種方法還會(huì)有生命力”?!皬埍尽比珪?shū)15章,第1章概述,第2章可行性研究,第3章需求分析,第4章形式化說(shuō)明技術(shù),第5章總體設(shè)計(jì),第6章詳細(xì)設(shè)計(jì),第7章實(shí)現(xiàn),第8章維護(hù),第9章面向?qū)ο蠓椒▽W(xué)引論,第10章面向?qū)ο蠓治?,?1章面向?qū)ο笤O(shè)計(jì),第12章面向?qū)ο髮?shí)現(xiàn),第13章軟件項(xiàng)目管理,附錄A C++類(lèi)庫(kù)管理系統(tǒng)的分析與設(shè)計(jì),附錄B 一個(gè)漢字行編輯程序的設(shè)計(jì)。其中第2~8章及附錄B介紹軟件生命周期各階段任務(wù)、過(guò)程、結(jié)構(gòu)化方法和工具。第9~12章及附錄A,用UML描述介紹面向?qū)ο蠓椒▽W(xué)引論、分析、設(shè)計(jì)和實(shí)現(xiàn)。
“鄭譯本”共32章,分為五個(gè)部分。第1章軟件工程介紹,單列一章。第一部分軟件過(guò)程,含第2章,考慮到所有重要的過(guò)程模型,涉及傳統(tǒng)過(guò)程和敏捷過(guò)程的爭(zhēng)論。第二部分軟件工程實(shí)踐,含第5章軟件工程綜述,第6章系統(tǒng)工程,第7章需求工程,第8章構(gòu)建分析模型,第9章設(shè)計(jì)工程,第10章進(jìn)行體系結(jié)構(gòu)設(shè)計(jì),第11章構(gòu)件級(jí)設(shè)計(jì)建模,第12章完成用戶界面設(shè)計(jì),第13章軟件測(cè)試策略,第14章測(cè)試技術(shù),第15章產(chǎn)品度量。第三部分應(yīng)用Web工程,含第16章Web工程,第17章開(kāi)始一個(gè)WebApp項(xiàng)目,第18章WebApp分析,第19章WebApp設(shè)計(jì),第20章WebApp測(cè)試。第四部分管理軟件項(xiàng)目,含第21至27章,給出的是與計(jì)劃、管理和控制軟件項(xiàng)目的人員有關(guān)的問(wèn)題。第五部分軟件工程高級(jí)課題,含第28至第31章,分別涉及形式化方法、凈室軟件工程、基于構(gòu)件的開(kāi)發(fā)、再工程及未來(lái)之路。
“影印本”全書(shū)共14章,分三個(gè)部分。第一部分含第1至第3章,分別論述軟件工程知識(shí)的重要性(第1章為什么需要軟件工程),理解過(guò)程的重要性(第2章過(guò)程和生命周期建模)以及完成項(xiàng)目計(jì)劃(第3章項(xiàng)目計(jì)劃和管理)。第二部分介紹軟件開(kāi)發(fā)和維護(hù)的主要步驟,包括第4章需求分析,第5章系統(tǒng)設(shè)計(jì),第6章對(duì)象,第7章程序編寫(xiě),第8章程序測(cè)試,第9章系統(tǒng)測(cè)試,第10章系統(tǒng)交付,第11章,系統(tǒng)維護(hù)。第三部分軟件的評(píng)估和改進(jìn),分析如何評(píng)價(jià)過(guò)程和產(chǎn)品的質(zhì)量,含第12章產(chǎn)品、過(guò)程和資源的評(píng)價(jià),第13章預(yù)測(cè)、產(chǎn)品、過(guò)程和資源的改進(jìn),第14章軟件工程的前景。
需要說(shuō)明的是,“影印本”從第一部分即給出貫穿全書(shū)的兩個(gè)通用實(shí)例,第1個(gè)例子代表典型的信息系統(tǒng),介紹了為一家大型英國(guó)電視公司確定廣告時(shí)間價(jià)格的軟件;第2個(gè)例子代表實(shí)時(shí)系統(tǒng),介紹Ariane5(阿里亞娜5)控制軟件。以后每一章都將所介紹的概念應(yīng)用到這兩個(gè)通用實(shí)例中。
綜觀上述5本教材的內(nèi)容與組織可以看出,國(guó)內(nèi)教材是以結(jié)構(gòu)化方法或(和)面向?qū)ο蠓椒橹骶€,并結(jié)合管理信息系統(tǒng)的實(shí)例進(jìn)行分析。實(shí)例的選擇主要從教學(xué)角度出發(fā),并不一定是實(shí)用的系統(tǒng)。引進(jìn)教材尤其注重“實(shí)踐性”,突出當(dāng)前軟件開(kāi)發(fā)占主流的UML為描述工具的面向?qū)ο蠓椒?。?duì)結(jié)構(gòu)化方法,則作了進(jìn)一步抽象,不再作為單獨(dú)部分具體闡述。對(duì)于開(kāi)發(fā)一個(gè)實(shí)用軟件所需要要的各個(gè)方面,特別是新技術(shù),如敏捷過(guò)程、構(gòu)件建模、凈室測(cè)試模型等都做了細(xì)致的分析。所選用實(shí)例都源自實(shí)際項(xiàng)目。這樣就能使學(xué)生獲得更接近當(dāng)前軟件開(kāi)發(fā)實(shí)際的知識(shí)和實(shí)用的方法,達(dá)到“學(xué)以致用”的目的。
1.3 講授方法及實(shí)踐環(huán)節(jié)安排
“湯本”的講授方法是“結(jié)合軟件開(kāi)發(fā)實(shí)例進(jìn)行講授”,湯本理論講授30學(xué)時(shí),上機(jī)30學(xué)時(shí)。該教材從第二章開(kāi)始就在習(xí)題中布置了一個(gè)“學(xué)生成績(jī)管理信息系統(tǒng)”的課題作業(yè),要求學(xué)生對(duì)該課題開(kāi)展工作,隨教學(xué)進(jìn)程完成相應(yīng)階段的任務(wù),提交相應(yīng)文檔,并以小組為單位編碼、實(shí)現(xiàn)和測(cè)試。這種將實(shí)踐環(huán)節(jié)和理論講授融為一體的做法可圈可點(diǎn)。但是“湯本”并沒(méi)有相應(yīng)材料支撐課題作業(yè)?!皽尽敝信e出一個(gè)“學(xué)生學(xué)期選課注冊(cè)系統(tǒng)”的范例,可惜也沒(méi)有貫徹始終,僅在“可行性研究”和“需求分析”中用過(guò)。這就給初學(xué)者帶來(lái)一些困難。
“劉本”和“張本”采用理論講授與實(shí)例分析相結(jié)合的方法,書(shū)中有大量實(shí)例,并有內(nèi)容豐富的習(xí)題配合?!皠⒈尽敝蠱inilibrary的實(shí)例分析較詳盡,對(duì)理解面向?qū)ο蟮姆椒ㄓ泻艽髱椭?,只是這個(gè)實(shí)例仍嫌不夠完整。
“張本”有兩個(gè)實(shí)例分析的附錄,分別講述了用面向?qū)ο蠓椒ê徒Y(jié)構(gòu)化方法開(kāi)發(fā)兩個(gè)軟件的過(guò)程。與張本配套的教輔材料有《軟件工程導(dǎo)論學(xué)習(xí)輔導(dǎo)》和電子教案,給教學(xué)帶來(lái)很大方便,這也是本書(shū)受到教師、學(xué)生歡迎的一個(gè)重要原因。
“鄭譯本”采用的是案例導(dǎo)向的講授方法。書(shū)中提出一個(gè)Safe Home(住宅安全系統(tǒng))的教學(xué)案例,以對(duì)話形式逐步展開(kāi)這一軟件的開(kāi)發(fā)過(guò)程,讓讀者跟隨一個(gè)虛擬的項(xiàng)目組,跟隨他們的工作進(jìn)程開(kāi)發(fā)一個(gè)計(jì)算機(jī)應(yīng)用系統(tǒng)。
“影印本”從第一部分就給出了兩個(gè)實(shí)際項(xiàng)目(英國(guó)廣播公司軟件和阿里亞娜火箭控制軟件)做為教學(xué)案例,并給出一個(gè)借貸處理系統(tǒng)的學(xué)期課題作為學(xué)生實(shí)踐項(xiàng)目。而后教材每一章都將所介紹的概念應(yīng)用到這兩個(gè)實(shí)例中去,每一章也都包括學(xué)期課題的描述。作者的意圖是:“Students can follow the progress of two typical projects, seeing how the various practices described in the book are merged into the technologies used to build systems.”(學(xué)生能跟隨這兩個(gè)典型項(xiàng)目的進(jìn)程,看到本書(shū)所描述的各種實(shí)踐方法如何融入為構(gòu)建系統(tǒng)所應(yīng)用的技術(shù)中去)。并將從教學(xué)案例中獲得的認(rèn)識(shí)遷移到完成學(xué)期課題的作業(yè)中。
由“鄭譯本”和“影印本”不難看出,案例教學(xué)法是從具體到抽象的方法,是美式教學(xué)的一個(gè)重要特點(diǎn)。反觀國(guó)內(nèi)教學(xué),常常是從抽象到具體,先有知識(shí)框架,再舉例說(shuō)明。這一點(diǎn)似乎反映了中美文化的差異,比如寫(xiě)信封,中國(guó)的寫(xiě)法由大到小,先寫(xiě)國(guó)別、省、市,最后才是街道門(mén)牌號(hào)。美國(guó)寫(xiě)法恰恰相反,由小到大去寫(xiě)。中美兩種教學(xué)方法的各自長(zhǎng)處,值得深思。
兩本引進(jìn)教材的又一個(gè)顯著特點(diǎn)是具有強(qiáng)大的全方位支持系統(tǒng),特別是網(wǎng)上支持系統(tǒng)。如“鄭譯本”的支持系統(tǒng)包括在線學(xué)習(xí)中心向?qū)W生、教師和專(zhuān)業(yè)人員三類(lèi)不同對(duì)象提供的幫助,既有向?qū)W生提供的各章學(xué)習(xí)指南、實(shí)習(xí)測(cè)驗(yàn)和題解,也有向教師提供的在線教師指南、教學(xué)補(bǔ)充材料、PPT幻燈片800多幅及500多篇軟件工程的研究論文(分專(zhuān)題組織并可下載),還有向?qū)I(yè)人員提供的產(chǎn)業(yè)說(shuō)明、軟件工程文檔和遠(yuǎn)程教學(xué)資料等。“影印本”的支持系統(tǒng)則包括書(shū)附光盤(pán)(學(xué)生學(xué)習(xí)指南,解答手冊(cè))和教師上課用的準(zhǔn)備材料(書(shū)中插圖和表格的PPT幻燈片)。除光盤(pán)資料還包括相關(guān)的Web網(wǎng)頁(yè),含書(shū)中例子和實(shí)際項(xiàng)目的實(shí)例,實(shí)際需求文檔、設(shè)計(jì)、代碼、測(cè)試計(jì)劃以及單元實(shí)例的詳細(xì)擴(kuò)充?!坝坝”尽苯滩倪€包括一個(gè)帶有注釋的參考目錄及各章參考文獻(xiàn)列表。相比之下,國(guó)內(nèi)教材的支持系統(tǒng)還顯得比較薄弱,需要結(jié)合精品課程建設(shè),下大力氣趕上去。
引進(jìn)教材的靈活性和排版樣式,也是值得稱(chēng)道的。如“鄭譯本”雖然章節(jié)內(nèi)容比較多,但它向三類(lèi)不同專(zhuān)業(yè)方向提供了不同的學(xué)習(xí)組合:“方法課”強(qiáng)調(diào)一、二兩部分;Web開(kāi)發(fā)課強(qiáng)調(diào)二、三兩部分;管理課重點(diǎn)放在一、四部分。在版式上一改學(xué)術(shù)著作的生冷面孔,采用活潑的引人注目的版式,除文字、圖表等常規(guī)版式,增加要點(diǎn)瀏覽和關(guān)鍵概念的方框、帶圖標(biāo)的簡(jiǎn)要注釋以及文中插入的說(shuō)明,其標(biāo)題放在醒目的反白圓框中。凡此周到細(xì)致的安排舉措,都是充分考慮了學(xué)生的實(shí)際需求,怎樣方便學(xué)生學(xué)習(xí)使用,體現(xiàn)了“以學(xué)生為本”的教學(xué)理念,也是作者豐富的教學(xué)經(jīng)驗(yàn)和軟件開(kāi)發(fā)實(shí)踐經(jīng)驗(yàn),在教材編寫(xiě)上的體現(xiàn)。
2 “軟件工程”教學(xué)實(shí)施策略之總結(jié)
通過(guò)中美軟件工程軟材編寫(xiě)之比軟,結(jié)合筆者從事“軟件工程”課程的教學(xué)經(jīng)驗(yàn),茲將“軟件工程”教學(xué)實(shí)施策略作一簡(jiǎn)要總結(jié)。
2.1 系統(tǒng)講授,結(jié)合實(shí)例分析的方法
以系統(tǒng)講授為主,結(jié)合實(shí)例分析幫助理解,實(shí)踐環(huán)節(jié)以習(xí)題作業(yè)為主要形式,有時(shí)需上機(jī)配合。如“張本”和“鄭本”。這是目前大多數(shù)本科院?!盾浖こ獭方虒W(xué)所采取的教學(xué)形式。這種教學(xué)形式雖然可以給予學(xué)生較系統(tǒng)的知識(shí)框架,但學(xué)生學(xué)習(xí)后往往仍然不知道該如何去開(kāi)發(fā)一個(gè)實(shí)際的軟件項(xiàng)目。理論到實(shí)踐之間還是有一個(gè)不小的鴻溝。
2.2 以教學(xué)案例為導(dǎo)向的講授方法
教學(xué)案例源于已實(shí)際開(kāi)發(fā)的項(xiàng)目,從教學(xué)一開(kāi)始直至結(jié)束,所有概念、方法都會(huì)應(yīng)用于這一(或二)個(gè)教學(xué)案例中。隨著案例項(xiàng)目的進(jìn)展分析,完成全部教學(xué)內(nèi)容。如引進(jìn)教材“鄭譯本”和“影印本”。這種方法國(guó)外相當(dāng)流行,國(guó)內(nèi)采用的并不多,但這種方法的確可以在培養(yǎng)學(xué)生分析解決問(wèn)題的能力上發(fā)揮更大作用,因而值得研究和發(fā)揚(yáng)。
2.3 以軟件開(kāi)發(fā)實(shí)例為導(dǎo)向的講授方法
這種方法是向?qū)W生布置一個(gè)課題作業(yè),采用邊學(xué)邊做的講授方式。如“湯本”,理論講授只有30學(xué)時(shí),上機(jī)30學(xué)時(shí),讓學(xué)生隨教學(xué)進(jìn)程,圍繞課題作業(yè)開(kāi)展工作。教師重點(diǎn)講解、給予輔導(dǎo)。這種方法能讓學(xué)生獲得一個(gè)軟件開(kāi)發(fā)的整體性認(rèn)識(shí),無(wú)論對(duì)理論知識(shí)的理解還是實(shí)際應(yīng)用都有較大幫助,是一個(gè)行之有效的方法,對(duì)筆者教學(xué)啟發(fā)很大。
2.4 以畢業(yè)設(shè)計(jì)課題為導(dǎo)向的講授方法
該法與2.3方法類(lèi)似,不同之處在于前者(2.3)學(xué)生所做的課題作業(yè)是教師統(tǒng)一布置的,是從教學(xué)角度出發(fā)考慮的課題,課題并不是實(shí)用的項(xiàng)目,或只是實(shí)際項(xiàng)目的簡(jiǎn)化版。而后者(2.3)學(xué)生所做課題是自行選擇的畢業(yè)設(shè)計(jì)課題,每個(gè)課題都來(lái)自實(shí)際需求,每一個(gè)學(xué)生(每一個(gè)小組)課題并不相同。這種講授方法基于將“軟件工程與畢業(yè)設(shè)計(jì)相結(jié)合”的教學(xué)研究(筆者承研的院級(jí)課題),是綜合課程改革的試驗(yàn)。這種方法在提高學(xué)生的興趣和學(xué)習(xí)主動(dòng)性,以及發(fā)揮學(xué)生的專(zhuān)長(zhǎng)和創(chuàng)造力等方面,收到很大的成效。因其適合教育大眾化時(shí)期以“差異”、“多元”為顯著特點(diǎn)的教學(xué),被我系任課教師認(rèn)為是最有特色的課程改革(另文詳述)。
2.5 以自測(cè)試卷為綱,讓學(xué)生自主學(xué)習(xí)討論的方法
這種方法筆者在函授教學(xué)中采用過(guò)。首先要精心擬制一份自測(cè)試卷(詳見(jiàn)附錄二,使用“湯本”),同時(shí)可作為開(kāi)卷考試卷,讓學(xué)生有針對(duì)性的去閱讀,討論和研究,教師給予指導(dǎo)和點(diǎn)評(píng)。這種教學(xué)方式可以促使學(xué)生帶著問(wèn)題去看書(shū)、思索、討論獲得答案,比起讓學(xué)生泛泛看書(shū)和在課堂上“靜聽(tīng)”效果要好,至少也能達(dá)到普及軟件工程知識(shí)和強(qiáng)化某些重要概念的目的。
3 結(jié)束語(yǔ)
對(duì)中美軟件工程教材編寫(xiě)的比較研究,囿于手頭資料,本文僅限于筆者在計(jì)算機(jī)教育專(zhuān)業(yè)(成人本)和計(jì)算機(jī)應(yīng)用專(zhuān)業(yè)(高職本、高職專(zhuān))所選用過(guò)的三本教材和作為教學(xué)參考書(shū)使用過(guò)的兩本國(guó)外引進(jìn)教材,未必全面。筆者深感國(guó)內(nèi)教材和引進(jìn)教材在教材編寫(xiě)指導(dǎo)思想、內(nèi)容的新穎性和實(shí)用性、講授方法以及教材支撐系統(tǒng)等方面還是有一定的差距,某些方面如教學(xué)實(shí)例、教學(xué)案例的選用差距還相當(dāng)大。究其原因,一是教師可能缺乏軟件開(kāi)發(fā)的實(shí)際經(jīng)歷,或缺乏在新的軟硬件平臺(tái)、網(wǎng)絡(luò)環(huán)境開(kāi)發(fā)軟件的實(shí)際經(jīng)歷。另一個(gè)深層次原因應(yīng)該已經(jīng)超出專(zhuān)業(yè)課本身,而涉及如何看待、處理系統(tǒng)教學(xué)和范例教學(xué)(案例教學(xué))的關(guān)系這類(lèi)課程論、認(rèn)識(shí)論問(wèn)題。我國(guó)多數(shù)高校教師沒(méi)有經(jīng)過(guò)系統(tǒng)的教學(xué)論、課程論的學(xué)習(xí)或研修,罕見(jiàn)科學(xué)設(shè)計(jì)的教學(xué)實(shí)驗(yàn),教學(xué)實(shí)踐的盲目性較大,往往跟著感覺(jué)走,這或許是影響教學(xué)和教材質(zhì)量從根本上提高的又一個(gè)重要原因。本文所總結(jié)的幾種軟件工程教學(xué)方法,需要根據(jù)不同專(zhuān)業(yè)、不同層次、不同教學(xué)對(duì)象靈活選用,相互補(bǔ)充。
附錄:軟件工程學(xué)函授試題
一、判斷(選擇)以下論述的正誤:在題號(hào)前(選項(xiàng)下)打?qū)μ?hào)或錯(cuò)號(hào)
1、軟件危機(jī)產(chǎn)生的原因是軟件產(chǎn)品固有的復(fù)雜性和軟件開(kāi)發(fā)人員自身的缺陷。
2、軟件開(kāi)發(fā)主要就是編程(Programming)。
3、比較適合初學(xué)者的軟件開(kāi)發(fā)模型時(shí)是:瀑布模型/原型化模型/螺旋模型/組件模型。
4、可行性研究的目的是用最小代價(jià)在盡可能短的時(shí)間內(nèi)確定所要解決的問(wèn)題在技術(shù)上是否可解。
5、軟件開(kāi)發(fā)所需要的資源包括硬件資源和軟件資源。
6、SRS/DFD以一致、無(wú)二義性的方式準(zhǔn)確回答了軟件系統(tǒng)What to do?/How to do?
7、經(jīng)驗(yàn)表明軟件總體模塊結(jié)構(gòu)圖應(yīng)為柱型/金字塔型/壇子型。
8、在詳細(xì)設(shè)計(jì)(模塊設(shè)計(jì))中具有樹(shù)型結(jié)構(gòu)的模塊設(shè)計(jì)工具是:框圖/盒圖/PAD圖。
9、用C/VC++/JAVA開(kāi)發(fā)一個(gè)圖書(shū)館管理系統(tǒng)的主要方法是:SA、SD、SP/OOA、OOD、OOP。
10、要提高模塊的獨(dú)立性,應(yīng)盡量做到高內(nèi)聚、低偶合。
11、G.Myers關(guān)于軟件測(cè)試目的的要點(diǎn)是:盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤,而不是驗(yàn)證程序正確無(wú)誤。
12、測(cè)試中要特別注意測(cè)試尚未發(fā)現(xiàn)錯(cuò)誤的模塊。
13、使用“白盒法”復(fù)蓋了被測(cè)程序的所有邏輯執(zhí)行路徑即能保證程序正確。
14、軟件的可維護(hù)性在軟件投入運(yùn)行之初就應(yīng)考慮。
15、軟件維護(hù)中應(yīng)立即響應(yīng)用戶的所有維護(hù)要求。
二、論述題:從以上判斷題中任選兩題,說(shuō)明您選擇正確或錯(cuò)誤的理由。
(答題寫(xiě)在試卷背面)。