国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PBL的軟件工程課程實(shí)習(xí)模式研究

2015-05-30 10:48:04佟延秋
計(jì)算機(jī)教育 2015年12期
關(guān)鍵詞:軟件工程

佟延秋

摘要:即將推出的軟件工程知識(shí)體系SWEBOK V3版,對(duì)軟件開發(fā)人員的知識(shí)體系提出了更加具體的要求。文章在多年教學(xué)實(shí)踐的基礎(chǔ)上,提出一個(gè)基于真實(shí)項(xiàng)目的軟件工程課程實(shí)習(xí)模式,通過基于真實(shí)項(xiàng)目的軟件工程實(shí)習(xí),極大地提高學(xué)生的編碼能力、溝通能力以及對(duì)項(xiàng)目的宏觀認(rèn)知能力一

關(guān)鍵詞:PBL;軟件工程;課程實(shí)習(xí)

0 引言

軟件工程課程實(shí)習(xí)通常是以完成軟件項(xiàng)目為考核指標(biāo)。在項(xiàng)目開發(fā)過程中,學(xué)生必須組成團(tuán)隊(duì)開發(fā)出一個(gè)完整的軟件系統(tǒng)。即將推出的軟件工程知識(shí)體系SWEBOK V3,在SWEBOK 2004的基礎(chǔ)上增加了一個(gè)新的部分,即“軟件工程專業(yè)實(shí)踐”,主要包括專業(yè)性(professionalism)、團(tuán)體動(dòng)力學(xué)(group dynamics)和交流技巧(communications skills)。從中可以看出,滿足SWEBOK 2004的人才是軟件行業(yè)的合格人才而小是卓越人才,只有滿足了SWEBOK V3才可稱為卓越人才,這與教育部推行的“卓越工程師教育培養(yǎng)計(jì)劃”不謀而合。因此,有必要參照SWEBOK V3的要求,對(duì)軟件工程課程實(shí)習(xí)指導(dǎo)方案進(jìn)行調(diào)整。

1 模式構(gòu)建依據(jù)

美國著名的比較政治學(xué)者比爾和哈德格雷夫?qū)δJ降亩x是:模式是再現(xiàn)現(xiàn)實(shí)的一種理論性的、簡(jiǎn)化的形式。軟件工程課程實(shí)習(xí)模式就是在現(xiàn)代教育理論的指導(dǎo)下,為實(shí)現(xiàn)軟件行業(yè)人才培養(yǎng)目標(biāo)而建立的一種合理的結(jié)構(gòu),它能夠?qū)φn程實(shí)習(xí)提供指導(dǎo)并總結(jié)經(jīng)驗(yàn)。

1.1 理論基礎(chǔ)

基于項(xiàng)目的學(xué)習(xí)(Proj ect-based learning,PBL)以建構(gòu)主義學(xué)習(xí)理論、實(shí)用主義教育理論、探究學(xué)習(xí)理論為基礎(chǔ),整個(gè)學(xué)習(xí)過程圍繞某個(gè)具體的項(xiàng)目進(jìn)行,學(xué)習(xí)過程中充分選擇和利用最優(yōu)化的學(xué)習(xí)資源,在探索創(chuàng)新中獲得較為完整和具體的知識(shí),形成專門的技能。其中“項(xiàng)目”一詞是管理學(xué)科中的“項(xiàng)目”在教學(xué)領(lǐng)域中的延伸。學(xué)習(xí)活動(dòng)圍繞某個(gè)具體項(xiàng)目進(jìn)行是PBL的核心,要求學(xué)生在規(guī)定的時(shí)間內(nèi),通過完成一系列相互關(guān)聯(lián)的任務(wù),獲得專業(yè)知識(shí)、提高學(xué)習(xí)能力。隨著任務(wù)的完成,產(chǎn)生特定的產(chǎn)品和服務(wù)。在項(xiàng)目的實(shí)施過程中,要求學(xué)習(xí)者充分發(fā)揮個(gè)人的主動(dòng)性,在探索中獲得知識(shí)、發(fā)展能力。PBL的宗旨是把學(xué)生融人有意義的任務(wù)完成過程中,讓學(xué)生主動(dòng)進(jìn)行知識(shí)建構(gòu),把基于真實(shí)任務(wù)生成的知識(shí)和培養(yǎng)起來的能力作為最高的學(xué)業(yè)績(jī)效目標(biāo)。

1.2 PBL的主要特征

(l)真實(shí)的項(xiàng)目情境能夠激發(fā)學(xué)習(xí)者的認(rèn)知內(nèi)驅(qū)力,使其能夠主動(dòng)參與項(xiàng)目活動(dòng)。

(2)學(xué)習(xí)者完成項(xiàng)目的過程,就是學(xué)習(xí)者體驗(yàn)和感悟知識(shí)、概念、原理的過程,在此過程中學(xué)習(xí)者建構(gòu)學(xué)科知識(shí)、發(fā)展技能、提升高級(jí)思維能力。

(3)在項(xiàng)目過程中遇到的實(shí)際問題往往是多學(xué)科融合的,學(xué)習(xí)者需要綜合運(yùn)用多種學(xué)科知識(shí)解決問題,這在無形中促進(jìn)了學(xué)生自學(xué)能力的發(fā)展。

(4)以“團(tuán)隊(duì)”為基本組織形式,強(qiáng)調(diào)師生、生生以及該項(xiàng)目的所有人員相互合作,形成“學(xué)習(xí)共同體”。

(5)完成的項(xiàng)目可以是產(chǎn)品或服務(wù),除了具有一定的社會(huì)效益,還能有經(jīng)濟(jì)效益。

(6)在完成項(xiàng)目的過程中,學(xué)習(xí)者要用到多種信息資源和認(rèn)知工具。

1.3 PBL在軟件工程課程實(shí)習(xí)中應(yīng)用的可行性

高等院校本科軟件工程課程實(shí)習(xí)是一種從教授簡(jiǎn)單編程到高級(jí)項(xiàng)目開發(fā)的多層次教育。軟件工程課程實(shí)習(xí)必須要與實(shí)踐緊密結(jié)合,完成從理論到實(shí)踐的跨越,這需要學(xué)生在課程結(jié)束后,以團(tuán)隊(duì)為單位提交一個(gè)完整的軟件產(chǎn)品或服務(wù),只要滿足以下目標(biāo),就可作為課程實(shí)習(xí)項(xiàng)目。

1)項(xiàng)目具體而真實(shí)。

本科階段的程序設(shè)計(jì)課程主要將程序設(shè)計(jì)語言的概念灌輸給學(xué)生。然而,單純的編程技術(shù)有時(shí)并不能解決開發(fā)大規(guī)模軟件系統(tǒng)中遇到的問題。這是因?yàn)閷W(xué)生在學(xué)習(xí)編程語言的過程中,接觸到的往往是與語言有關(guān)的邏輯場(chǎng)景,而缺乏具體真實(shí)的業(yè)務(wù)場(chǎng)景。因此,學(xué)生遇到真實(shí)的業(yè)務(wù)場(chǎng)景時(shí)往往會(huì)無從下手。這也是PBL倡導(dǎo)學(xué)習(xí)情境一定要真實(shí)而具體的原因。

2)項(xiàng)目綜合而開放。

基于項(xiàng)目的學(xué)習(xí)要求涉及的任務(wù)都是綜合開放的,其綜合性體現(xiàn)在BPL融理論知識(shí)與實(shí)踐技能于一個(gè)項(xiàng)目。軟件工程的純理論學(xué)習(xí)不足以解決軟件項(xiàng)目開發(fā)過程中遇到的問題。而學(xué)生更傾向于把注意力集中在技術(shù)難題上,并認(rèn)為溝通沖突不會(huì)發(fā)生在他們的項(xiàng)目開發(fā)過程中。

3)學(xué)習(xí)結(jié)果最終表現(xiàn)為一個(gè)產(chǎn)品或服務(wù)。

軟件工程實(shí)習(xí)的要求與PBL的觀點(diǎn)是一致的。通過軟件工程課程實(shí)習(xí),要求學(xué)生在項(xiàng)目開發(fā)的各個(gè)環(huán)節(jié)進(jìn)行交流,在合作中發(fā)現(xiàn)問題、解決問題,最終完成系統(tǒng)的開發(fā)。

4)學(xué)習(xí)過程強(qiáng)調(diào)交流合作。

交流,不僅是文字或圖片的交換,而是學(xué)生借助各種手段有效地表達(dá)自己的思路、想法。然而,由于每個(gè)學(xué)生都有各自的工作習(xí)慣,且大部分的交流是不同步的,這就要求學(xué)生不僅思路清晰,而且善于表達(dá)。

5)學(xué)習(xí)結(jié)果具有一定的社會(huì)效益。

基于項(xiàng)目的學(xué)習(xí)涉及的產(chǎn)品或服務(wù)都是真實(shí)的,而且在其開發(fā)過程中涉及與其他營利性組織或者非營利性機(jī)構(gòu)的溝通交流。因此,這些產(chǎn)品或服務(wù)具有一定的社會(huì)效益,甚至經(jīng)濟(jì)效益。

6)學(xué)習(xí)過程運(yùn)用多種認(rèn)知工具和資源。

在完成項(xiàng)目的過程中,教師或第三方公司要為學(xué)生提供認(rèn)知工具和資源,以便支持學(xué)習(xí)者。

2 基于項(xiàng)目的軟件工程課程實(shí)習(xí)模式構(gòu)建

眾所周知,PBL中的L被稱為“學(xué)習(xí)”,但其中的P(項(xiàng)目),不是一般的項(xiàng)目,而是真實(shí)的項(xiàng)目。既然項(xiàng)目是真實(shí)的,那么就要考慮時(shí)間、成本和質(zhì)量的問題。因此,基于項(xiàng)目的軟件工程課程實(shí)習(xí)模式的構(gòu)建就必須要以軟件過程管理為依據(jù)。

2.1 模式構(gòu)建依據(jù)

基于項(xiàng)目的軟件工程課程實(shí)習(xí)需要嚴(yán)格的軟件項(xiàng)目管理。實(shí)踐表明,使用專門的項(xiàng)目管理軟件作為項(xiàng)目管理的團(tuán)隊(duì)比盲目進(jìn)行項(xiàng)目管理的團(tuán)隊(duì)效果更好。然而,與專門的項(xiàng)目管理工具相比,那些大型的商業(yè)項(xiàng)目管理軟件則顯得過于復(fù)雜。鑒于這個(gè)原因,筆者選擇SVN作為項(xiàng)目管理工具。SVN是一個(gè)開放源代碼的版本控制系統(tǒng),相對(duì)于RCS、CVS,它采用了分支管理系統(tǒng)。目前互聯(lián)網(wǎng)上很多版本控制服務(wù)已從CVS轉(zhuǎn)移到SVN版本控制器,與此同時(shí)考慮到商業(yè)版權(quán)問題,其他開發(fā)工具也以開源軟件為主。

2.2 模式構(gòu)建說明

基于PBL的軟件工程課程實(shí)習(xí)模式分為3個(gè)層次,如圖l所示:第一層為項(xiàng)目進(jìn)度層,主要對(duì)項(xiàng)目的進(jìn)度進(jìn)行跟蹤;第二層為教師層,主要對(duì)教師在實(shí)習(xí)過程中對(duì)學(xué)生的指導(dǎo)、溝通以及對(duì)項(xiàng)目的貢獻(xiàn)進(jìn)行展示;第三層為學(xué)生層,表明了學(xué)生在軟件工程課程實(shí)習(xí)過程中的工作流程。

2.2.1 項(xiàng)目選擇

項(xiàng)目的選擇將直接影響軟件工程課程實(shí)習(xí)效果。項(xiàng)目規(guī)模太小可能達(dá)不到課程實(shí)習(xí)的要求,規(guī)模太大不但會(huì)增加學(xué)生和教師的壓力,而且項(xiàng)目失敗的風(fēng)險(xiǎn)也會(huì)增大。因此,基于PBL的項(xiàng)目要由具有實(shí)際開發(fā)經(jīng)驗(yàn)的指導(dǎo)老師與校外公司項(xiàng)目經(jīng)理共同討論、確定。

在項(xiàng)目選擇的同時(shí),實(shí)習(xí)指導(dǎo)教師便可以組織學(xué)生分組。由于本研究所選擇的項(xiàng)目以MS系統(tǒng)(管理信息系統(tǒng))為主,因此學(xué)生團(tuán)隊(duì)的組成主要由前端開發(fā)和后臺(tái)編碼兩部分組成,而數(shù)據(jù)庫設(shè)計(jì)則由教師完成。

2.2.2 需求分析

在確定了實(shí)習(xí)的項(xiàng)目之后,為了避免后期階段可能存在的風(fēng)險(xiǎn),還需要進(jìn)行需求分析。需求的采集主要由教師和負(fù)責(zé)前端開發(fā)的學(xué)生共同完成。

在需求分析過程中,學(xué)生開始接受更貼近項(xiàng)日殲發(fā)的技術(shù)培訓(xùn),如需求文檔的撰寫、用例圖/流程圖等繪圖軟件的使用、熟悉開發(fā)技術(shù)平臺(tái)、編寫測(cè)試用例等。由于不同公司的項(xiàng)目管理平臺(tái)和開發(fā)技術(shù)以及軟件過程定義都有所差異,對(duì)學(xué)生來講是個(gè)巨大的挑戰(zhàn)。

2.2.3 項(xiàng)目確認(rèn)

該階段,軟件工程課程實(shí)習(xí)的項(xiàng)目才算正式確定下來,這是衡量了項(xiàng)目規(guī)模、技術(shù)準(zhǔn)備、風(fēng)險(xiǎn)評(píng)估等因素的結(jié)果,算是一個(gè)可完成的、對(duì)學(xué)生能力提高有幫助的項(xiàng)目。

建立項(xiàng)目時(shí),教師必須建立項(xiàng)目描述并標(biāo)明項(xiàng)目里程碑。項(xiàng)目描述會(huì)放在SVN的一個(gè)專門目錄中,項(xiàng)目組成員能夠訪問。

在需求分析過程中,學(xué)生實(shí)際上還未真正了解項(xiàng)目需求,他們需要深入討論、理解需求文檔。為支持團(tuán)隊(duì)成員的討論,需要同步與異步通訊。當(dāng)學(xué)生小組完成需求分析后,便可提交給教師。其實(shí),項(xiàng)目的需求在此之前已由教師完成,這里主要比較學(xué)生的需求分析與教師的分析,以便從教師那里得到反饋。當(dāng)然,也有可能發(fā)現(xiàn)教師所做的需求分析報(bào)告中的缺陷和不足。

2.2.4概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)

這個(gè)過程雖然主要由教師完成,但學(xué)生也必須參與進(jìn)來,這是學(xué)生開始使用軟件工程相關(guān)知識(shí)的最佳實(shí)踐場(chǎng)地。為了更好地交流,筆者使用StarUML作為建模工具,這是一款開源且非常小巧的UML圖繪制工具,可以快速生成UML圖。借助內(nèi)部通信工具與SVN版本管理工具,結(jié)合小組成員間的協(xié)作,我們能夠?qū)崿F(xiàn)不同個(gè)體共享彼此的知識(shí),并最終形成一致性的結(jié)果‘9]。

這個(gè)階段學(xué)生接受的技術(shù)培訓(xùn)會(huì)更加具體和有針對(duì)性,由于學(xué)生對(duì)將要使用的技術(shù)平臺(tái)有所了解,一些在開發(fā)中常用的技術(shù)及設(shè)計(jì)模式可以通過第三方公司提供的DEMO學(xué)習(xí)。

2.2.5 接口設(shè)計(jì)與編碼

當(dāng)詳細(xì)設(shè)計(jì)和概要設(shè)計(jì)完成之后,項(xiàng)目便進(jìn)入到編碼階段,此時(shí)留給學(xué)生的時(shí)間已不多,而且還有可能面臨的需求變更以及原型修改。學(xué)生可根據(jù)教師設(shè)計(jì)的接口以及業(yè)務(wù)邏輯的要求進(jìn)行編碼。這里需要說明的是,學(xué)生是不能夠隨意設(shè)計(jì)接口的,接口必須由教師設(shè)計(jì),即便學(xué)生提出新的接口,也必須由教師確認(rèn)后方可實(shí)現(xiàn)。

2.2.6 第三方測(cè)試

無論是單元測(cè)試還是集成測(cè)試均由第三方公司完成。這樣做的原因有三:①學(xué)生學(xué)到的軟件測(cè)試課程課時(shí)較短;②第三方公司提供測(cè)試可以保證產(chǎn)品質(zhì)量;③第三方公司提供軟件測(cè)試可以減少工作最。

2.2.7 項(xiàng)目實(shí)施完畢

當(dāng)學(xué)生團(tuán)隊(duì)將軟件和所需文檔提交后,教師便可對(duì)學(xué)生進(jìn)行評(píng)價(jià)和打分。評(píng)價(jià)的參考標(biāo)準(zhǔn)如下:①合作技巧;②編碼規(guī)范和質(zhì)量;③按照需求分析文件要求設(shè)計(jì);④完成時(shí)間。

3 基于項(xiàng)目的軟件工程課程實(shí)習(xí)模式應(yīng)用原則

基于項(xiàng)目的軟件工程課程實(shí)習(xí)模式是在多年軟件工程課程實(shí)習(xí)的基礎(chǔ)上,整合基于項(xiàng)目學(xué)習(xí)思想的一次大膽的嘗試,需要遵循以下原則。

1)以過程管理為中心。

雖然基于項(xiàng)目的軟件工程課程實(shí)習(xí)最終以交付產(chǎn)品或服務(wù)為目標(biāo),但教師在具體的指導(dǎo)過程中必須嚴(yán)格按照軟件項(xiàng)目管理以及CMM 3級(jí)的要求進(jìn)行,而不是僅僅停留在軟件的編碼上。這樣學(xué)生會(huì)對(duì)軟件開發(fā)產(chǎn)生一個(gè)全新的認(rèn)識(shí),會(huì)將他的編碼技術(shù)與實(shí)際的業(yè)務(wù)問題聯(lián)系起來,反過來會(huì)提高學(xué)生的編碼能力。同時(shí),學(xué)生在經(jīng)歷一個(gè)完整而真實(shí)的軟件開發(fā)流程后,既能夠有微觀的開發(fā)經(jīng)驗(yàn),還能夠加強(qiáng)學(xué)生的管理能力和溝通能力。

2)指導(dǎo)教師就是“防火墻”。

基于項(xiàng)目的軟件工程課程實(shí)習(xí)指導(dǎo)教師一定要具有實(shí)際的項(xiàng)目經(jīng)驗(yàn),包括開發(fā)經(jīng)驗(yàn)、管理經(jīng)驗(yàn)、甚至還包括與客戶溝通的經(jīng)驗(yàn)。開發(fā)經(jīng)驗(yàn)會(huì)在開發(fā)過程中給學(xué)生提供幫助。指導(dǎo)教師即項(xiàng)目經(jīng)理,他的管理經(jīng)驗(yàn)直接影響項(xiàng)目的進(jìn)度。當(dāng)學(xué)生進(jìn)入開發(fā)團(tuán)隊(duì)后,除了技術(shù)上的問題,可能還會(huì)遇到心理上的壓力,這時(shí)指導(dǎo)教師還要擔(dān)負(fù)起輔導(dǎo)員的角色。

3)與第三方公司保持良好的溝通。

軟件開發(fā)是一個(gè)與時(shí)間賽跑的工作。同時(shí),由于開發(fā)工程中的不確定因素較多,因此,指導(dǎo)教師需要及時(shí)與第三方公司保持良好的溝通,以便及時(shí)獲得所需資源和技術(shù)支持。

4 結(jié)語

如今在項(xiàng)目日趨緊張的交付時(shí)間的逼迫下,以往的學(xué)徒制培養(yǎng)簡(jiǎn)直就是一種奢望。在面向“卓越工程師教育培養(yǎng)計(jì)劃”的軟件工程專業(yè)本科培養(yǎng)方案中的軟件工程實(shí)訓(xùn)課程具體實(shí)踐過程中,筆者采用基于真實(shí)項(xiàng)目的課程實(shí)習(xí)方式,通過師生、生生間的協(xié)作,最終交付了一個(gè)真實(shí)的軟件產(chǎn)品。雖然SWEBOK V3對(duì)卓越軟件人才的定位更加具體,但僅僅依靠課程實(shí)習(xí)提高人才培養(yǎng)質(zhì)量顯然是不夠的,還需要考慮軟件工程人才培養(yǎng)方案的整體。通過課程實(shí)習(xí)不一定會(huì)顯著提高學(xué)生的開發(fā)方法和實(shí)踐,但可以讓學(xué)生知道如何成為一名合格的軟件工程師。

猜你喜歡
軟件工程
依托工作室的軟件工程實(shí)踐教學(xué)研究
應(yīng)用瀑布模型的MOOC制作方法
融合APTECH體系的軟件產(chǎn)業(yè)人才培養(yǎng)探究
基于工程教育認(rèn)證的《軟件工程》課程教學(xué)質(zhì)量建設(shè)研究 
關(guān)于提高軟件工程實(shí)踐教學(xué)質(zhì)量的幾點(diǎn)思考
關(guān)于如何創(chuàng)新和完善計(jì)算機(jī)軟件工程管理的探討
新建县| 青浦区| 平乐县| 鄂托克旗| 通州市| 乌兰察布市| 尚志市| 甘肃省| 桐城市| 张掖市| 凯里市| 隆尧县| 英山县| 和顺县| 新邵县| 仁布县| 六安市| 绿春县| 蒲城县| 南开区| 焉耆| 车险| 闻喜县| 赞皇县| 花莲县| 慈溪市| 娱乐| 遵义市| 沈丘县| 兰西县| 北宁市| 云龙县| 武陟县| 历史| 东源县| 应用必备| 炎陵县| 科尔| 留坝县| 兴义市| 晋宁县|