• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于群體化方法的軟件工程課程實(shí)踐教學(xué)

      2018-12-30 11:56:27毛新軍尹良澤
      計(jì)算機(jī)教育 2018年7期
      關(guān)鍵詞:開源群體軟件

      毛新軍,尹良澤,尹 剛,王 濤,余 躍,盧 遙

      (國防科技大學(xué) 計(jì)算機(jī)學(xué)院,湖南 長沙 410073)

      0 引 言

      如何培養(yǎng)高素質(zhì)的軟件工程人才、如何根據(jù)新工科建設(shè)的要求[1-2]加強(qiáng)軟件工程人才的能力培養(yǎng)是當(dāng)前軟件工程專業(yè)教育面臨的重要挑戰(zhàn)。軟件工程是一門實(shí)踐性很強(qiáng)的課程,實(shí)踐教學(xué)是課程教學(xué)的一項(xiàng)必備環(huán)節(jié)。為了滿足產(chǎn)業(yè)和經(jīng)濟(jì)發(fā)展對軟件工程專業(yè)人才的迫切需求,我們需要從人才培養(yǎng)角度深層次思考這門課程實(shí)踐教學(xué)的建設(shè)目標(biāo)、方法和手段,以期取得所需的人才培養(yǎng)效果。

      首先,如何認(rèn)識軟件工程課程實(shí)踐教學(xué)的目標(biāo)?不同于其他的專業(yè)課程(如操作系統(tǒng)、編譯原理等),軟件工程課程將諸多“工程”要素融合到課程實(shí)踐中以系統(tǒng)性地培養(yǎng)學(xué)生工程實(shí)踐能力、訓(xùn)練其工程素養(yǎng)。因此,加強(qiáng)這門課程實(shí)踐教學(xué)的建設(shè)對于提高人才培養(yǎng)質(zhì)量、提升工程實(shí)踐能力具有重要的價(jià)值。

      第二,如何達(dá)成教學(xué)目標(biāo)并解決面臨的問題?軟件工程課程實(shí)踐教學(xué)面臨的一個(gè)普遍性問題是學(xué)生經(jīng)常抱怨實(shí)踐沒有參考對象,不知道如何去做以及做的對不對;一個(gè)突出的現(xiàn)象是學(xué)生經(jīng)常遇到多樣化問題,老師難以做到一一解答。這就需要針對軟件工程課程實(shí)踐教學(xué)的特點(diǎn)和問題,尋找有效的解決方法。

      第三,如何提供科學(xué)的考評手段并以此促進(jìn)人才培養(yǎng)?考評是一個(gè)指揮棒,引導(dǎo)學(xué)生按照要求來開展工作;也是一個(gè)基準(zhǔn)線,告訴學(xué)生按照什么樣的要求和標(biāo)準(zhǔn)來評定其成效和成績;同時(shí)也是一個(gè)推進(jìn)劑,以評促改,幫助學(xué)生不斷改進(jìn)其實(shí)踐成果,在此過程中培養(yǎng)能力、提升素養(yǎng)和積累經(jīng)驗(yàn)。因此,這就需要從能力培養(yǎng)的角度來正確認(rèn)識考評的目的、制定科學(xué)的考評標(biāo)準(zhǔn)和合理的考評手段。

      1 改革目標(biāo)和要求

      軟件工程課程實(shí)踐教學(xué)需要為學(xué)生的工程實(shí)踐和創(chuàng)新能力培養(yǎng)創(chuàng)造條件、明確要求和提供指南,這就需要精心設(shè)計(jì)課程實(shí)踐的內(nèi)容,分解和細(xì)化課程實(shí)踐的要求,形成課程實(shí)踐的具體技術(shù)指標(biāo)。結(jié)合軟件工程專業(yè)和技術(shù)的發(fā)展,考慮當(dāng)前軟件系統(tǒng)的形態(tài)和特征,軟件工程課程實(shí)踐內(nèi)容須滿足以下的要求。

      (1)規(guī)模性。課程實(shí)踐待開發(fā)的軟件系統(tǒng)必須具備一定規(guī)模。只有通過對一定規(guī)模軟件系統(tǒng)的開發(fā)實(shí)踐才能讓學(xué)生領(lǐng)悟軟件工程中的“工程”要素并運(yùn)用工程化的手段來解決問題。這里的規(guī)??梢员憩F(xiàn)為代碼的長度、功能點(diǎn)的數(shù)量,也可是構(gòu)成系統(tǒng)的要素等。

      (2)交叉性。當(dāng)前大部分的軟件系統(tǒng)不再是一個(gè)純粹的技術(shù)系統(tǒng),而是融合領(lǐng)域知識(如教育、航空等)、交叉相關(guān)專業(yè)知識(如AI、移動計(jì)算等)的一類復(fù)雜系統(tǒng)。軟件工程課程實(shí)踐的內(nèi)容需要體現(xiàn)軟件系統(tǒng)開發(fā)的知識、技能等方面的綜合性和交叉性。

      (3)集成性?;ヂ?lián)網(wǎng)時(shí)代的軟件系統(tǒng)通常不再是單一、集中和封閉的系統(tǒng),而是要與諸多系統(tǒng)和設(shè)備進(jìn)行集成和交互。課程實(shí)踐中應(yīng)考慮將軟件系統(tǒng)與其他系統(tǒng)和設(shè)備相結(jié)合來解決問題。

      (4)高質(zhì)量。質(zhì)量是工程的基本要素。因此,課程實(shí)踐必須重視質(zhì)量,培養(yǎng)學(xué)生的質(zhì)量意識(如編程規(guī)范、模型一致性等),掌握高質(zhì)量軟件產(chǎn)品的開發(fā)能力。

      (5)創(chuàng)新性。有創(chuàng)意的軟件才有價(jià)值,才能激發(fā)學(xué)生的實(shí)踐熱情和激情,幫助學(xué)生獲得成就感。因此,課程實(shí)踐要創(chuàng)造機(jī)會、提供空間來讓學(xué)生進(jìn)行各種創(chuàng)意和構(gòu)思,從而培養(yǎng)學(xué)生的創(chuàng)新意識和能力。

      (6)先進(jìn)性。軟件工程相關(guān)技術(shù)發(fā)展很快,業(yè)界所采用的技術(shù)不斷變化,除了要訓(xùn)練學(xué)生的基本軟件開發(fā)技能之外,課程實(shí)踐要盡可能地采用業(yè)界的主流技術(shù),如開發(fā)方法、實(shí)現(xiàn)語言、支撐平臺和工具等,確保課程實(shí)踐技術(shù)手段的先進(jìn)性。

      2 基于群體化的課程實(shí)踐教學(xué)理念和思想

      要達(dá)成上述目標(biāo)是一項(xiàng)極具挑戰(zhàn)性的工作。一方面,對老師的知識、經(jīng)驗(yàn)和教學(xué)投入提出很高的要求。另一方面,對學(xué)生開展課程實(shí)踐所需的知識結(jié)構(gòu)、開發(fā)技能、工具使用、實(shí)踐結(jié)果等提出了更高的要求。當(dāng)前基于互聯(lián)網(wǎng)的群體化方法及其在軟件工程等諸多領(lǐng)域的成功實(shí)踐為上述問題的解決提供新穎的思路和獨(dú)特的方法,可以借助于互聯(lián)網(wǎng)上的群體(如軟件開發(fā)人員),利用他們的智慧(如開發(fā)經(jīng)驗(yàn))和產(chǎn)品(如開源軟件)來開展課程實(shí)踐,以克服老師、助教和學(xué)生在知識、經(jīng)驗(yàn)、閱歷和認(rèn)識等方面的局限性和有限性,達(dá)成工程實(shí)踐和能力培養(yǎng)的目標(biāo)。

      (1)借助互聯(lián)網(wǎng)群體的智慧?;ヂ?lián)網(wǎng)連接了大量的人群,其中不乏高手和能人。它們擁有多樣的軟件工程知識,具有豐富的軟件開發(fā)經(jīng)驗(yàn)和技能。開源軟件社區(qū)提供了靈活的機(jī)制來支持他們之間的交流、溝通和討論,從而來分享他們的智慧和經(jīng)驗(yàn)[3-4]。課程實(shí)踐可以借助于互聯(lián)網(wǎng)群體的力量和智慧,運(yùn)用互聯(lián)網(wǎng)社區(qū)的運(yùn)行機(jī)制和手段,讓互聯(lián)網(wǎng)群體成為課程實(shí)踐的指導(dǎo)者和貢獻(xiàn)者,幫助和指導(dǎo)學(xué)生解答問題、提供資源、給出建議、反饋經(jīng)驗(yàn)等。

      (2)利用互聯(lián)網(wǎng)群體的作品?;ヂ?lián)網(wǎng)上匯聚了大量的開源軟件,他們是互聯(lián)網(wǎng)群體實(shí)踐活動的結(jié)晶,其中不乏高水平、高質(zhì)量[5]的作品。重用開源軟件成為目前重要的軟件開發(fā)方式和手段。軟件工程課程實(shí)踐的規(guī)模性、高質(zhì)量、交叉性、集成性等要求意味著讓學(xué)生從頭開始、全新開發(fā)這樣的軟件系統(tǒng)是不現(xiàn)實(shí)的?;陂_源的軟件開發(fā)方法將開發(fā)軟件與重用開源軟件二者相結(jié)合不僅可以滿足課程實(shí)踐教學(xué)的目標(biāo)和要求,而且可以幫助學(xué)生掌握主流的軟件開發(fā)技術(shù)。

      概括起來,軟件工程課程實(shí)踐教學(xué)可借助互聯(lián)網(wǎng)群體的智慧和力量,依托他們的軟件開發(fā)知識、經(jīng)驗(yàn)和作品,指導(dǎo)學(xué)生的課程實(shí)踐,解決軟件開發(fā)中遇到的種種問題,重用開源軟件來實(shí)現(xiàn)特定功能,從而來達(dá)成和實(shí)現(xiàn)實(shí)踐教學(xué)的目標(biāo)和要求。

      3 實(shí)踐教學(xué)改革的關(guān)注點(diǎn)及解決方法

      針對上述目標(biāo)和要求,我們開展了基于群體化的軟件課程實(shí)踐教學(xué)探索。整個(gè)實(shí)踐采用分組方式,每組由3~4位同學(xué)組成,他們共同完成實(shí)踐任務(wù),包括需求創(chuàng)意、軟件設(shè)計(jì)、編碼實(shí)現(xiàn)、軟件測試等。課程實(shí)踐要求學(xué)生提交分析和設(shè)計(jì)模型、軟件文檔、程序代碼等軟件產(chǎn)品。為了落實(shí)人才培養(yǎng)目標(biāo)、加強(qiáng)工程實(shí)踐和創(chuàng)新能力培養(yǎng),踐行群體化的實(shí)踐教學(xué)方法,課程實(shí)踐特別關(guān)注以下幾個(gè)方面的工程實(shí)踐問題,并采取了一組行之有效的實(shí)施方法。

      1)軟件需求創(chuàng)意。

      要求學(xué)生借助群體的智慧和力量,做有創(chuàng)意的課程實(shí)踐,具體表現(xiàn)為軟件系統(tǒng)欲解決的問題、軟件需求以及實(shí)現(xiàn)技術(shù)手段要有新意。鼓勵學(xué)生參考往屆學(xué)生的作品,依托基于互聯(lián)網(wǎng)的實(shí)踐教學(xué)平臺Trustie,與往屆學(xué)生進(jìn)行交流和溝通,分享他們的經(jīng)驗(yàn)和感悟,從而獲得創(chuàng)意的靈感和想法。要求學(xué)生加入到開源社區(qū),通過對已有開源軟件的分析以及與社區(qū)中群體的交流來獲得有關(guān)創(chuàng)意的意見、建議和想法。這兩種方法的本質(zhì)都是希望擴(kuò)大學(xué)生的視野、獲取他人的智慧、聽取他人的建議、獲得更多的知識,并依此來構(gòu)想軟件需求。在此過程中,老師主要起到引導(dǎo)、評價(jià)、建議、把關(guān)、促進(jìn)再思考等作用。

      2)分布式協(xié)同開發(fā)和版本管理。

      要求學(xué)生基于Git開發(fā)、管理軟件。每個(gè)項(xiàng)目團(tuán)隊(duì)創(chuàng)建各自的軟件版本庫,負(fù)責(zé)人基于Issue管理工具來安排和發(fā)布任務(wù),成員間基于Git來開展交流和解決沖突,每個(gè)成員利用Git提交各自的作品(如程序代碼),并利用Pull-request機(jī)制將其合并到整個(gè)課程實(shí)踐項(xiàng)目中。它不僅可以幫助學(xué)生掌握基于互聯(lián)網(wǎng)的軟件開發(fā)模式(如任務(wù)分配、作品發(fā)布、作品的本地開發(fā)和分布式提交等),而且有助于獲取學(xué)生個(gè)體的課程實(shí)踐情況,搜集第一手課程實(shí)踐數(shù)據(jù),從而對學(xué)生的實(shí)踐情況(如參與程度、所作出的貢獻(xiàn)、產(chǎn)品質(zhì)量等)進(jìn)行科學(xué)和客觀的評價(jià)。

      3)迭代開發(fā)。

      由于課程實(shí)踐對軟件的創(chuàng)意、規(guī)模和知識交叉性等提出了更高要求,對于學(xué)生而言要一次性地開發(fā)出如此復(fù)雜的軟件系統(tǒng)是非常困難的,他們常常面臨需求創(chuàng)意難以想清楚、一些復(fù)雜功能難以實(shí)現(xiàn)等問題。為此我們采用迭代的方法來開展課程實(shí)踐,在整個(gè)課程實(shí)踐過程中要求學(xué)生分若干次迭代來完成整個(gè)課程實(shí)踐任務(wù),每次迭代關(guān)注的角度和評價(jià)的要求不同。

      4)以評促改。

      課程實(shí)踐要求學(xué)生周期性地匯報(bào)課程實(shí)踐的成果(平均每周一次),老師根據(jù)學(xué)生的匯報(bào)對學(xué)生的課程實(shí)踐進(jìn)行“點(diǎn)評”,幫助學(xué)生發(fā)現(xiàn)問題并提供建議,目的是引導(dǎo)學(xué)生對課程實(shí)踐成果持續(xù)改進(jìn)和提高,從而起到以“評”促“改”的功效。針對學(xué)生的調(diào)查問卷結(jié)果表明,課堂點(diǎn)評最受學(xué)生歡迎,并對學(xué)生改進(jìn)和提高課程實(shí)踐水平起到關(guān)鍵性的作用。

      5)重用開源軟件。

      課程實(shí)踐鼓勵學(xué)生根據(jù)構(gòu)想的軟件需求,到開源軟件托管網(wǎng)站(如SourceForge、Github、Stack Overf l ow、開源中國、CodeProject等)去尋找支撐其關(guān)鍵需求的開源軟件,并將其集成到整個(gè)課程實(shí)踐的軟件項(xiàng)目之中。為了鼓勵學(xué)生重用開源,我們明確要求學(xué)生在課程實(shí)踐中要重用至少5 000行開源軟件。

      6)借助開源社區(qū)。

      課程實(shí)踐要求學(xué)生加入到相關(guān)的開源社區(qū)中,學(xué)生通過檢索獲取相關(guān)討論或者在社區(qū)中提出問題獲得所需的解答。此外,我們還通過實(shí)踐教學(xué)平臺收集了每一屆學(xué)生開展課程實(shí)踐所遇到的問題、解決問題的方法、軟件開發(fā)經(jīng)驗(yàn)等,學(xué)生也可以通過分享這些智慧來促進(jìn)相關(guān)問題的解決。

      7)持續(xù)檢查。

      課程實(shí)踐要求學(xué)生采用持續(xù)檢查(continuous inspection)來確保所開發(fā)軟件系統(tǒng)的質(zhì)量,借助持續(xù)集成系統(tǒng)Jenkins將SonarQube質(zhì)量分析工具集成到Trustie平臺,實(shí)現(xiàn)了對學(xué)生提交到版本庫代碼的自動化質(zhì)量檢查,并要求學(xué)生對問題代碼進(jìn)行修復(fù)后,才可合并到項(xiàng)目倉庫中。

      8)考評方法。

      采用定性和定量、主觀和客觀、過程和結(jié)果相結(jié)合的考評方法,針對多個(gè)方面(如參與度、質(zhì)量、貢獻(xiàn)等)給出一個(gè)詳盡的實(shí)踐考核評價(jià)要素,借助于課程實(shí)踐教學(xué)平臺Trustie以及諸多軟件開發(fā)工具(如Git和SonarQube),搜集學(xué)生在課程實(shí)踐過程中的參與和貢獻(xiàn)信息(如提出問題、提供建議、參與討論、提交作品等的數(shù)量),對課程實(shí)踐結(jié)果(如代碼質(zhì)量)進(jìn)行定量的分析,盡可能做到基于數(shù)據(jù)、綜合實(shí)踐過程和結(jié)果、統(tǒng)籌實(shí)踐的工作量和質(zhì)量、團(tuán)隊(duì)匯報(bào)和個(gè)體問答相結(jié)合的方式來進(jìn)行考評,從而通過考評方法的改變來驅(qū)動學(xué)生更為獨(dú)立、自主、積極地開展實(shí)踐。

      9)工具和平臺支持。

      為了幫助老師和學(xué)生高效地開展課程實(shí)踐,跟蹤實(shí)踐情況和效果,科學(xué)客觀地評價(jià)實(shí)踐成績,課程實(shí)踐教學(xué)借助一系列的工具和平臺,包括分布式協(xié)同開發(fā)平臺Trustie-Forge、開源軟件檢索和分析平臺Trustie-OSSEAN、開源代碼閱讀和標(biāo)注工具Trustie-Codepedia等。

      4 教學(xué)成效分析

      基于上述實(shí)踐教學(xué)方法,針對軟件工程專業(yè)的學(xué)生開展了2年的探索,每年大約有24名學(xué)生參與,采用小班教學(xué)模式,配備2~3名助教。課程實(shí)踐延續(xù)一年時(shí)間,覆蓋了4門課程的實(shí)踐教學(xué)任務(wù),包括軟件工程、軟件體系結(jié)構(gòu)與設(shè)計(jì)、軟件項(xiàng)目管理以及軟件課程綜合實(shí)踐。整體上看軟件工程實(shí)踐教學(xué)改革取得了以下成果:

      (1)學(xué)生通過課程實(shí)踐所開發(fā)的軟件系統(tǒng)代碼規(guī)模平均超出10 000行。2個(gè)年級課程實(shí)踐提交的代碼統(tǒng)計(jì)結(jié)果表明,課程實(shí)踐的各項(xiàng)目開發(fā)程序代碼量平均超出5 000行,重用開源軟件超出5 000行(見表1)。

      (2)軟件系統(tǒng)的集成性和綜合性。所開發(fā)的軟件系統(tǒng)大部分是基于互聯(lián)網(wǎng)的分布式系統(tǒng),許多軟件系統(tǒng)集成了機(jī)器人、無人系統(tǒng)、智能手機(jī)、Web服務(wù)等系統(tǒng)和設(shè)備,交叉了模式識別、移動計(jì)算、數(shù)據(jù)分析等相關(guān)知識。

      (3)軟件質(zhì)量意識和水平得到提升。學(xué)生軟件開發(fā)的質(zhì)量意識得到加強(qiáng),運(yùn)用各種技術(shù)(如持續(xù)檢查、軟件測試等)和工具(如Junit、SonarQube等)來開發(fā)高質(zhì)量軟件系統(tǒng)的能力得到提升,分析結(jié)果表明學(xué)生開發(fā)的軟件產(chǎn)品的質(zhì)量處于較高水平。

      (4)軟件工程綜合素養(yǎng)獲得提升。課程實(shí)踐過程中學(xué)生持續(xù)進(jìn)行總結(jié)、報(bào)告和討論,制作宣傳彩頁、視頻和匯報(bào)PPT,撰寫產(chǎn)品手冊、凝練創(chuàng)新點(diǎn),因而學(xué)生的總結(jié)、分析、表達(dá)、匯報(bào)、交流、討論等方面的綜合素養(yǎng)得到了顯著提升。

      (5)學(xué)生掌握了基于互聯(lián)網(wǎng)的現(xiàn)代軟件工程技術(shù)和工具,學(xué)會了借助于開源軟件的軟件開發(fā)技能(如查找、閱讀、分析和集成開源軟件等)、依托開源社區(qū)獲得群體智慧的方法(如提出和發(fā)布問題、查詢解答等),運(yùn)用基于互聯(lián)網(wǎng)的CASE工具來進(jìn)行協(xié)同開發(fā)。

      (6)課程實(shí)踐成果的創(chuàng)新性得到認(rèn)可。兩年來學(xué)生構(gòu)思了許多有創(chuàng)意的軟件作品,包括無人值守的圖書館、家庭接待機(jī)器人、多無人機(jī)聯(lián)合搜尋系統(tǒng)、Baby安保助手等,這些軟件作品獲得了計(jì)算機(jī)作品比賽、機(jī)器人比賽等多項(xiàng)全國性獎項(xiàng),包括金獎1項(xiàng)、銀獎2項(xiàng)、省賽區(qū)特等獎3項(xiàng)和一等獎1項(xiàng)。

      5 結(jié) 語

      實(shí)踐教學(xué)是軟件工程系列課程教學(xué)的重要環(huán)節(jié),如何改革軟件工程課程實(shí)踐教學(xué),克服當(dāng)前實(shí)踐教學(xué)理念、實(shí)施方法、評價(jià)手段等方面的局限性是一項(xiàng)極為緊迫的任務(wù)?;诨ヂ?lián)網(wǎng)的連接、共享和開放思想,借助以開源軟件和開源社區(qū)為代表的群體化思想,結(jié)合主流的軟件工程技術(shù)和工具,針對軟件工程實(shí)踐教學(xué)中的突出矛盾和瓶頸問題,開展了以提升工程實(shí)踐和創(chuàng)新能力為目標(biāo)的實(shí)踐教學(xué)改革,取得了積極的成效,為加強(qiáng)軟件工程專業(yè)人才的培養(yǎng)做出了積極的探索,極大提高了學(xué)生開發(fā)大規(guī)模、高質(zhì)量軟件系統(tǒng)的自信心。兩年的教學(xué)實(shí)踐表明,在互聯(lián)網(wǎng)時(shí)代我們應(yīng)該采用更為開放的思維來尋找解決實(shí)踐教學(xué)問題的方法,應(yīng)該充分發(fā)揮互聯(lián)網(wǎng)的優(yōu)勢和力量來彌補(bǔ)當(dāng)前實(shí)踐教學(xué)中存在的問題和不足,應(yīng)該通過教學(xué)和科研相結(jié)合、滿足產(chǎn)業(yè)發(fā)展需要以及貼近主流的技術(shù)來落實(shí)實(shí)踐教學(xué)改革。

      猜你喜歡
      開源群體軟件
      禪宗軟件
      英語文摘(2021年10期)2021-11-22 08:02:26
      通過自然感染獲得群體免疫有多可怕
      五毛錢能買多少頭牛
      “群體失語”需要警惕——“為官不言”也是腐敗
      軟件對對碰
      大家說:開源、人工智能及創(chuàng)新
      開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
      開源計(jì)算機(jī)輔助翻譯工具研究
      談軟件的破解與保護(hù)
      精品(2015年9期)2015-01-23 01:36:01
      關(guān)愛特殊群體不畏難
      中國火炬(2012年8期)2012-07-25 09:29:50
      云和县| 时尚| 威海市| 保康县| 大同市| 略阳县| 长子县| 聂拉木县| 靖安县| 贵南县| 富源县| 青铜峡市| 虞城县| 崇左市| 万山特区| 雷州市| 环江| 天祝| 利川市| 绿春县| 新竹县| 邵阳市| 沅陵县| 丹棱县| 临朐县| 淳化县| 左云县| 云龙县| 西吉县| 桦南县| 松桃| 瓦房店市| 屯门区| 百色市| 东兴市| 囊谦县| 咸阳市| 湖口县| 米脂县| 晋宁县| 深州市|