• 
    

    
    

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

      ?

      面向代碼質(zhì)量提升的軟件工程能力素質(zhì)培養(yǎng)

      2022-07-14 12:55:58陳立前尹良澤毛新軍
      軟件導(dǎo)刊 2022年7期
      關(guān)鍵詞:開源代碼編程

      陳立前,董 威,尹良澤,毛新軍

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

      0 引言

      軟件工程以提高軟件生產(chǎn)率和軟件質(zhì)量為目標(biāo),隨著人們對軟件的正確性、可靠性、安全性等可信需求日益迫切,軟件質(zhì)量尤其是代碼質(zhì)量得到了越來越多的關(guān)注和重視。尤其是,對于大型軟件項目而言,開發(fā)人員多、代碼規(guī)模大,如果沒有高質(zhì)量的代碼作為基石,很難產(chǎn)出高質(zhì)量的軟件產(chǎn)品。任正非在其簽發(fā)的華為總裁辦2019 年一號文件《全面提升軟件工程能力與實踐,打造可信的高質(zhì)量產(chǎn)品》中明確指出:“我們要從最基礎(chǔ)的編碼質(zhì)量做起,視高質(zhì)量代碼為尊嚴(yán)和個人聲譽(yù)。代碼就像是高樓大廈的一磚一瓦,沒有高質(zhì)量的代碼,可信的產(chǎn)品就是空中樓閣?!庇纱丝梢姡a質(zhì)量對于當(dāng)前IT 企業(yè)界打造高質(zhì)量產(chǎn)品的重要性日益凸顯。

      對于軟件工程人才培養(yǎng),代碼質(zhì)量教育是軟件工程能力素質(zhì)培養(yǎng)的一個重要方面,編寫高質(zhì)量的代碼也成為軟件工程師必備的職業(yè)素養(yǎng)。但是,在軟件工程課程教學(xué)過程尤其是軟件項目實踐過程中,學(xué)生主要關(guān)注軟件系統(tǒng)功能設(shè)計與實現(xiàn),而往往忽視了代碼質(zhì)量。究其原因在于:學(xué)生對高質(zhì)量代碼的重要性認(rèn)識不夠,“代碼之美”感受不多,缺乏體驗;學(xué)生在課程規(guī)定的時限內(nèi),會盡量實現(xiàn)和完善更多的軟件功能以體現(xiàn)工作量,但因開發(fā)經(jīng)驗不足而導(dǎo)致實現(xiàn)的代碼存在不規(guī)范、可讀性差等問題,代碼質(zhì)量沒有保證;學(xué)生排查軟件缺陷經(jīng)驗不足、能力弱。

      為了在人才培養(yǎng)中有效應(yīng)對這些問題,圍繞學(xué)生讀代碼、寫代碼、評代碼、改代碼4 個環(huán)節(jié),從高質(zhì)量開源軟件代碼閱讀、編程規(guī)范學(xué)習(xí)與規(guī)范編程、代碼測試分析能力訓(xùn)練3 個方面,設(shè)計相應(yīng)的教學(xué)活動,以形成面向代碼質(zhì)量提升的軟件工程能力素質(zhì)培養(yǎng)體系,構(gòu)建面向代碼質(zhì)量評價與提升的支撐技術(shù)和工具集。

      1 相關(guān)工作

      代碼質(zhì)量一直是軟件工程學(xué)術(shù)界和工業(yè)界關(guān)注的重要主題,也是軟件工程教育的重要方面。

      在軟件工程教育方面,軟件質(zhì)量是軟件工程教育知識體系(Software Engineering Education Knowledge,SEEK)的重要知識領(lǐng)域之一。文獻(xiàn)[5]指出由于軟件工程缺失導(dǎo)致軟件開發(fā)項目中軟件質(zhì)量和生產(chǎn)率方面的問題越來越多,由此設(shè)計一種面向軟件過程和軟件質(zhì)量教育的軟件工程相關(guān)技能、知識與訓(xùn)練框架;文獻(xiàn)[2]指出當(dāng)前代碼質(zhì)量教育方面的不足,提出將代碼壞味檢測工具引入程序設(shè)計課程實踐教學(xué)以提高代碼質(zhì)量教育水平;文獻(xiàn)[6]指出軟件工程課程實踐教學(xué)中學(xué)生缺乏大規(guī)模和高質(zhì)量軟件開發(fā)經(jīng)驗以及高質(zhì)量軟件設(shè)計開發(fā)能力不足的問題,提出基于高質(zhì)量開源軟件的閱讀與維護(hù)以培養(yǎng)軟件工程能力;文獻(xiàn)[7]探討程序設(shè)計教學(xué)中程序設(shè)計風(fēng)格養(yǎng)成的重要性,以及如何在課程教學(xué)中引導(dǎo)學(xué)生重視并養(yǎng)成良好的程序設(shè)計風(fēng)格,同時介紹一種將程序源代碼轉(zhuǎn)化為圖形以實現(xiàn)代碼質(zhì)量可視化評判的方法,旨在支持教師根據(jù)標(biāo)準(zhǔn)圖形模式對學(xué)生的代碼質(zhì)量進(jìn)行評判。

      在工業(yè)界代碼質(zhì)量管理方面,文獻(xiàn)[1]分析企業(yè)代碼管理方面的建設(shè)與管理現(xiàn)狀,對代碼質(zhì)量管理的組織管理、工具技術(shù)、技術(shù)規(guī)范、人員培養(yǎng)和流程管理等方面進(jìn)行探討,并提出一些實踐建議;文獻(xiàn)[8]總結(jié)如何實現(xiàn)代碼整潔和干凈的經(jīng)驗規(guī)則;文獻(xiàn)[9]從代碼風(fēng)格統(tǒng)一問題、編程語言安全問題、編譯工具告警開關(guān)以及告警消除的監(jiān)控問題等方面,根據(jù)能力成熟度集成模型的軟件質(zhì)量過程和國際標(biāo)準(zhǔn)化組織的軟件質(zhì)量模型對各類規(guī)則進(jìn)行梳理,開展代碼質(zhì)量檢測實踐。

      在代碼質(zhì)量相關(guān)學(xué)術(shù)研究方面,文獻(xiàn)[10]分析開源軟件代碼質(zhì)量問題和軟件開發(fā)人員代碼質(zhì)量現(xiàn)狀,并研究了面向開源軟件的代碼質(zhì)量問題與軟件缺陷之間的關(guān)系;文獻(xiàn)[11]針對源代碼分析注釋的質(zhì)量評價,提出一種綜合考慮客觀質(zhì)量屬性和主觀質(zhì)量屬性的質(zhì)量評價框架,以支持對源代碼分析注釋進(jìn)行更全面的質(zhì)量評價。

      相比已有工作,本文主要從軟件工程教育的角度,關(guān)注學(xué)生代碼質(zhì)量意識的養(yǎng)成以及代碼質(zhì)量評價與提升能力的系統(tǒng)性訓(xùn)練與能力素質(zhì)培養(yǎng),教學(xué)實施過程涵蓋讀、寫、評、改代碼等多個訓(xùn)練環(huán)節(jié)。

      2 面向代碼質(zhì)量提升的培養(yǎng)模式

      代碼質(zhì)量直接關(guān)系到軟件項目的產(chǎn)品質(zhì)量、效益、成本、生命周期等,同時對軟件開發(fā)組織的生產(chǎn)效率與團(tuán)隊協(xié)作效率都有重要影響。目前,研究人員已提出了很多不同的度量指標(biāo),從不同的角度衡量代碼質(zhì)量。從定性角度,評價代碼質(zhì)量的指標(biāo)一般包括可信性、可維護(hù)性、可讀性、可移植性、可重用性等;從定量角度,可從缺陷數(shù)、缺陷密度、代碼復(fù)雜度等方面進(jìn)行度量。軟件開發(fā)人員可以通過遵循編程規(guī)范、人工審查代碼、測試與代碼分析、重構(gòu)代碼等方式提高代碼質(zhì)量。

      從軟件工程人才培養(yǎng)角度看,代碼質(zhì)量提升的訓(xùn)練過程要與軟件工程專業(yè)的教學(xué)目標(biāo)、核心課程、知識領(lǐng)域和知識點等有機(jī)結(jié)合,將訓(xùn)練環(huán)節(jié)與正常的教學(xué)活動融為一體,確保學(xué)生在達(dá)到軟件工程相關(guān)規(guī)范和培養(yǎng)方案要求的基礎(chǔ)上,進(jìn)一步顯著提升代碼質(zhì)量能力和素養(yǎng)。為此,在具體教學(xué)實施過程中,圍繞代碼質(zhì)量提升,以軟件工程教育知識體系SEEK為指導(dǎo),與軟件工程專業(yè)培養(yǎng)方案中專業(yè)核心課程的各種教學(xué)活動相結(jié)合,結(jié)合課堂教學(xué)與課外實踐,形成一體化實施過程,以達(dá)成代碼質(zhì)量能力素質(zhì)訓(xùn)練不斷線。上述過程總體如圖1所示。

      Fig.1 Training process and teaching practice for code quality competency圖1 代碼質(zhì)量能力素質(zhì)培養(yǎng)過程與教學(xué)實施

      具體教學(xué)實施時,首先讓學(xué)生認(rèn)識到代碼質(zhì)量的重要性,可通過典型案例、思政教育、當(dāng)前IT 企業(yè)發(fā)展現(xiàn)實需求等對學(xué)生進(jìn)行引導(dǎo)。在此基礎(chǔ)上,結(jié)合軟件工程教育知識體系SEEK,讓學(xué)生了解代碼質(zhì)量的屬性、度量方法和質(zhì)量提升方法,增強(qiáng)學(xué)生的代碼質(zhì)量意識。進(jìn)一步地,通過閱讀和剖析優(yōu)質(zhì)代碼,快速建立學(xué)生對高質(zhì)量代碼的感性認(rèn)識。并且,讓學(xué)生在軟件開發(fā)項目實踐過程中,運用代碼質(zhì)量相關(guān)知識,進(jìn)行高代碼質(zhì)量的編程實現(xiàn)。在這一過程中,組織對學(xué)生代碼質(zhì)量進(jìn)行評分,給出評價意見。最后,讓學(xué)生依據(jù)評價意見,修改代碼。

      從實踐角度看,上述教學(xué)實施涉及學(xué)生讀代碼、寫代碼、評代碼、改代碼4 個階段的綜合能力。對每個環(huán)節(jié)的主要關(guān)注點考慮如下:

      (1)在讀代碼環(huán)節(jié),通過梳理優(yōu)質(zhì)代碼案例,引導(dǎo)學(xué)生進(jìn)行總結(jié)與抽象提煉,然后結(jié)合軟件工程教育知識體系SEEK 中的相關(guān)知識點,加深學(xué)生對背后原理的理解,提升其代碼質(zhì)量鑒賞能力。最終,形成結(jié)合泛讀、精讀、標(biāo)注的代碼閱讀與代碼之美欣賞能力培養(yǎng)體系。

      (2)在寫代碼環(huán)節(jié),讓學(xué)生學(xué)習(xí)編程規(guī)范相關(guān)的國軍標(biāo)、行業(yè)標(biāo)準(zhǔn)等,引導(dǎo)學(xué)生養(yǎng)成良好的編程風(fēng)格。在軟件項目實踐開發(fā)過程中,讓學(xué)生遵從軟件架構(gòu)與軟件設(shè)計原則,遵循相關(guān)編程規(guī)范,編寫出規(guī)范、安全魯棒、可讀性強(qiáng)的代碼。

      (3)在評代碼環(huán)節(jié),形成代碼規(guī)范性自動檢查與代碼質(zhì)量評分方法,構(gòu)建相關(guān)輔助支撐工具集,給出量化評分。進(jìn)一步地,訓(xùn)練學(xué)生應(yīng)用軟件測試、靜態(tài)代碼分析技術(shù)與工具自動檢測代碼缺陷的能力。

      (4)在改代碼環(huán)節(jié),讓學(xué)生根據(jù)評代碼環(huán)節(jié)給出的評價意見,依托Git 等版本管理平臺,修改甚至重構(gòu)代碼,并讓學(xué)生親自比較和感受修改前后版本的代碼質(zhì)量差異。

      3 面向代碼質(zhì)量提升的教學(xué)實施

      本文將重點圍繞高質(zhì)量開源代碼閱讀、規(guī)范編程、代碼測試與分析3 個方面,介紹如何開展面向代碼質(zhì)量提升的教學(xué)實施。在此基礎(chǔ)上,介紹面向代碼質(zhì)量評價與提升的輔助支撐工具集以及教學(xué)實施效果。

      3.1 高質(zhì)量開源軟件代碼閱讀

      鑒于軟件工程課程施教初期,學(xué)生尚缺乏大規(guī)模高質(zhì)量軟件開發(fā)經(jīng)驗,設(shè)置相應(yīng)的教學(xué)環(huán)節(jié),讓學(xué)生閱讀具有一定規(guī)模的高質(zhì)量開源軟件的源代碼,通過盡早接觸優(yōu)秀的高質(zhì)量軟件以增強(qiáng)學(xué)生質(zhì)量意識。在這一過程中,設(shè)計相應(yīng)的教學(xué)活動,對學(xué)生如何高效閱讀代碼進(jìn)行引導(dǎo)和階段性檢查。主要分為代碼泛讀、代碼精讀、代碼標(biāo)注、撰寫并分享代碼閱讀報告4 個階段。代碼泛讀的主要目標(biāo)是讓學(xué)生在較短時間內(nèi)快速掌握該軟件的功能和概要設(shè)計,包括軟件體系架構(gòu)、模塊劃分等。代碼精讀則是在學(xué)生已經(jīng)基本掌握軟件整體架構(gòu)的基礎(chǔ)上,進(jìn)一步體會軟件的詳細(xì)設(shè)計、代碼規(guī)范、實現(xiàn)方法和技巧等。代碼標(biāo)注是讓學(xué)生對開源軟件中的關(guān)鍵模塊及其關(guān)鍵代碼文件、關(guān)鍵數(shù)據(jù)結(jié)構(gòu)、關(guān)鍵函數(shù)等進(jìn)行標(biāo)注,通過代碼注釋等方式描述代碼的主要功能、實現(xiàn)原理等,旨在培養(yǎng)和提升學(xué)生對開源軟件代碼的理解、分析和描述能力。撰寫并分享代碼閱讀報告,是讓學(xué)生對整個代碼閱讀過程和積累的素材進(jìn)行總結(jié)、分析和分享,包括軟件體系架構(gòu)圖、模塊劃分圖、代碼規(guī)范、收獲和體會等,旨在讓學(xué)生加深對代碼質(zhì)量的系統(tǒng)性理解和共鳴。

      在具體施教過程中,選擇應(yīng)用軟件“小米便簽”、開源數(shù)據(jù)庫軟件Redis、Facebook 重構(gòu)的高效底層組件庫Folly、設(shè)計模式示例代碼庫java-design-patterns 等規(guī)模適中的高質(zhì)量開源軟件作為學(xué)生閱讀的目標(biāo)軟件。這些軟件覆蓋軟件類型不同,采用編程語言不同,學(xué)生可以根據(jù)自己的基礎(chǔ)和興趣,通過分組形式,選擇合適的軟件進(jìn)行代碼閱讀。在該過程中,讓學(xué)生熟悉和運用優(yōu)秀的代碼閱讀工具Source Insight、Understand 等,以及代碼標(biāo)注工具Codepedia等。

      經(jīng)過代碼閱讀階段性訓(xùn)練,觀察到學(xué)生對較大規(guī)模高質(zhì)量軟件有了一定的感性認(rèn)識,對如何開展高質(zhì)量軟件設(shè)計和編碼實現(xiàn)也有了一定的認(rèn)識和嘗試,軟件設(shè)計與編碼能力得到增強(qiáng),為后期系統(tǒng)學(xué)習(xí)軟件工程的方法和技術(shù)以及開展軟件項目實踐打下了良好基礎(chǔ)。

      3.2 規(guī)范編程及其評估

      在程序設(shè)計、軟件工程等相關(guān)課程學(xué)習(xí)中,讓學(xué)生遵守編程規(guī)范、養(yǎng)成良好的編程風(fēng)格至關(guān)重要。養(yǎng)成一種良好的編程習(xí)慣,可以讓學(xué)生受益終生。目前,已有許多優(yōu)秀程序員總結(jié)出了很多經(jīng)驗性的且非常實用的編程規(guī)則,形成了行之有效的編程規(guī)范。這些編程規(guī)范,一方面能夠減少編程出錯概率,另一方面能夠在保證程序正確性的前提下使程序結(jié)構(gòu)清晰、邏輯簡明、易讀易懂。一些編程規(guī)范已成為國際、國內(nèi)標(biāo)準(zhǔn),有些已成為IT 企業(yè)內(nèi)部必須遵守的編程規(guī)范。如MISRA(汽車工業(yè)軟件可靠性聯(lián)合會)發(fā)布的針對汽車工業(yè)軟件安全性的C 語言編程規(guī)范MISRA-C,已成為C 語言安全規(guī)范的事實標(biāo)準(zhǔn)。Google 公司制定了公司內(nèi)部使用的編程規(guī)范,包括《Google C++編程風(fēng)格指南》《Google Java 編程風(fēng)格指南》等。在國內(nèi),國軍標(biāo)《GJB5369 航天型號軟件C 語言安全子集》,已成為國內(nèi)航天領(lǐng)域的C 語言編程標(biāo)準(zhǔn),同時也是目前國內(nèi)軍工行業(yè)代碼規(guī)則審查的主要參照依據(jù)。此外,代碼質(zhì)量與其整潔度成正比,讓學(xué)生學(xué)習(xí)代碼整潔之道,尤其是一系列行之有效的整潔代碼操作實踐,寫出優(yōu)雅、整潔、易懂的代碼,這也是軟件工程實踐過程中的重要一環(huán)。

      具體施教過程中,結(jié)合學(xué)生未來職業(yè)發(fā)展和任職崗位需求,介紹編碼規(guī)范要求和編程風(fēng)格建議。具體而言,從如下幾個方面對學(xué)生進(jìn)行引導(dǎo),幫助他們遵守編程規(guī)范、養(yǎng)成良好的編程習(xí)慣。

      (1)結(jié)合軟件工程教育知識體系中相關(guān)知識單元和知識點,介紹編程規(guī)范關(guān)注的方面和規(guī)范化原因。編程規(guī)范關(guān)注的方面通常包括標(biāo)志符命名、代碼布局(如縮緊、空格、空行等)、代碼注釋、控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、模塊設(shè)計等。從認(rèn)識編程規(guī)則背后原理方面,以編程規(guī)則“避免對浮點數(shù)作‘相等’或‘不相等’判斷”為例,該規(guī)則在MISRA C、國軍標(biāo)GJB5369-2005 等編程規(guī)范中都是強(qiáng)制類型編程規(guī)則,究其規(guī)范化原因,需要教師從機(jī)器表示的角度,講解機(jī)器浮點數(shù)與數(shù)學(xué)實數(shù)的差異,以讓學(xué)生明白制定該規(guī)則背后的原因,從而產(chǎn)生認(rèn)同感??偠灾?,良好的編程風(fēng)格能極大提高程序代碼質(zhì)量,包括程序的可讀性、可維護(hù)性、健壯性和可重用性等。

      (2)引導(dǎo)學(xué)生運用代碼規(guī)范化工具或編程風(fēng)格檢查工具。給學(xué)生推薦Uncrustify、GNU Indent 等代碼規(guī)范化工具,以及Cpplint、CheckStyle 等編程風(fēng)格檢查工具,讓學(xué)生檢查自己編寫代碼的規(guī)范性。讓學(xué)生掌握如何應(yīng)用自動化的工具對程序代碼進(jìn)行規(guī)范化,可以快速增強(qiáng)學(xué)生對于代碼規(guī)范性的體驗和成就感。

      (3)在軟件工程相關(guān)課程形成性考核中,注重代碼規(guī)范性的評分和評價。在驗收學(xué)生開發(fā)的課程實踐軟件項目時,除考察軟件功能方面的工作量外,還需考察代碼質(zhì)量尤其是代碼規(guī)范性。通過對代碼規(guī)范性進(jìn)行評分,可有效激勵學(xué)生更主動、更自覺地學(xué)習(xí)和遵循良好的編程規(guī)范和軟件設(shè)計準(zhǔn)則。在該過程中,教師可以借助代碼質(zhì)量檢查工具SonarQube 等自動化工具,對學(xué)生代碼規(guī)范性和代碼質(zhì)量進(jìn)行量化評估。

      3.3 軟件測試與代碼分析能力訓(xùn)練

      代碼缺陷是影響軟件代碼內(nèi)在質(zhì)量的重要因素。為了發(fā)現(xiàn)代碼中存在的缺陷,軟件測試與源代碼靜態(tài)分析是目前工業(yè)界常用方法。對于國防、航天等領(lǐng)域的安全關(guān)鍵軟件,軟件開發(fā)過程中尤其重視這方面的開發(fā)活動。因此,從課程學(xué)習(xí)開始,培養(yǎng)軟件工程專業(yè)學(xué)員在這些方面的能力和素質(zhì),對于學(xué)生未來的職業(yè)發(fā)展具有重要意義。

      目前,開源的軟件測試工具已經(jīng)較為成熟,并具有一定的技術(shù)先進(jìn)性,因此在軟件工程相關(guān)課程中,選取一系列有針對性的測試工具用于技術(shù)講授和軟件項目實踐。對于單元測試,采用Junit 工具定義測試用例;對于組合測試,采用PICT 工具生成高效測試用例結(jié)合;對于白盒測試,采用CFG Generator 生成程序控制結(jié)構(gòu),以支持路徑測試;針對性能測試,采用JMeter 進(jìn)行高效測試;對于Web 軟件,采用Selenium 進(jìn)行測試;對于測試覆蓋率分析,采用CodeCover 進(jìn)行分析和對測試進(jìn)行評價。

      程序靜態(tài)分析技術(shù)門檻相對較高,其理論具有一定復(fù)雜性,使用起來需要對漏報、誤報等予以更多考慮。當(dāng)前,IT 工業(yè)界正在積極引入程序靜態(tài)分析技術(shù)和工具,但目前具備相關(guān)知識能力的人才相對缺乏。為此,在軟件工程課程中適當(dāng)將程序分析技術(shù)和工具引入教學(xué)中。讓學(xué)生熟悉包括CppCheck、FindBugs、PMD 等在內(nèi)的基于缺陷模式和簡單控制流數(shù)據(jù)流的分析工具,以及Infer、Clang、FramaC 等基于程序語義的分析工具。此外,為了讓學(xué)生結(jié)合實際軟件缺陷熟悉靜態(tài)分析技術(shù)和工具,讓學(xué)生針對國際主流的Juliet Test Suite 等缺陷代碼基準(zhǔn)測試集以及CVE 漏洞庫,應(yīng)用在這些工具開展實驗,以加深學(xué)生對軟件缺陷和漏洞的認(rèn)識。

      通過上述訓(xùn)練,學(xué)生對代碼缺陷及其檢測技術(shù)有了更深入的理解。在此基礎(chǔ)上,要求學(xué)生將這些方法與工具應(yīng)用于學(xué)生自己編寫的軟件工程實踐項目的源代碼上,并對檢測出來的代碼缺陷進(jìn)行調(diào)試和修復(fù),以提升其軟件項目的代碼質(zhì)量。

      3.4 面向代碼質(zhì)量評價與提升的輔助支撐工具集

      在教學(xué)實施過程中,積累了一系列以開源軟件工具為主體的面向代碼質(zhì)量評價與提升的輔助支撐工具集,包括代碼閱讀工具、代碼標(biāo)注工具、代碼規(guī)范化工具、編程風(fēng)格檢查工具、代碼質(zhì)量評估工具、軟件測試工具、靜態(tài)程序分析工具等,可滿足面向代碼質(zhì)量評價與提升的軟件工程能力素質(zhì)培養(yǎng)需求。具體而言,面向代碼質(zhì)量評價與提升的輔助支撐工具集如圖2 所示。軟件工程相關(guān)課程的授課教師可以讓學(xué)生選擇并利用其中的工具以提升其代碼閱讀能力、規(guī)范編程能力、代碼測試與分析能力、代碼質(zhì)量評估能力等,最終提升其軟件工程代碼質(zhì)量綜合能力素質(zhì)。

      Fig.2 Supporting tools for code quality assessment and improvement training圖2 面向代碼質(zhì)量評價與提升的輔助支撐工具集

      3.5 實施效果

      開展上述面向代碼質(zhì)量提升的教學(xué)實施以來,學(xué)生在經(jīng)過相關(guān)訓(xùn)練和階段性考核后,學(xué)生的代碼質(zhì)量意識以及在課程實踐項目中編寫的代碼質(zhì)量有了極大提升。具體而言,通過對高質(zhì)量開源項目代碼的閱讀標(biāo)注與特征分析,從學(xué)生撰寫的代碼閱讀報告中,可以感覺到學(xué)生建立了對高質(zhì)量代碼的感性認(rèn)識,并對其重要性產(chǎn)生了認(rèn)同感;通過規(guī)范編程訓(xùn)練與檢查、學(xué)生代碼質(zhì)量評分與評價等環(huán)節(jié),學(xué)生掌握了如何運用代碼質(zhì)量評價與提升相關(guān)方法與工具解決實際代碼質(zhì)量問題,在課程實踐項目中能夠編寫出規(guī)范、可讀性強(qiáng)的代碼;通過在課程項目實踐中訓(xùn)練學(xué)生應(yīng)用軟件測試、代碼分析方法與工具,使得學(xué)生能夠更早接觸實際工程中代碼質(zhì)量控制所使用的一些工具及流程,學(xué)生代碼缺陷檢測和定位能力得到了加強(qiáng)。同時,學(xué)生對軟件缺陷的調(diào)試和修復(fù)也有了新的認(rèn)識。此外,通過后期反饋了解到,代碼質(zhì)量評價與提升訓(xùn)練對學(xué)生后期綜合實踐、畢業(yè)設(shè)計等環(huán)節(jié)的軟件開發(fā)也起到了積極促進(jìn)作用。

      4 結(jié)語

      隨著軟件技術(shù)的發(fā)展和IT 企業(yè)界對軟件產(chǎn)品質(zhì)量的要求越來越高,代碼質(zhì)量已成為衡量軟件開發(fā)者能力水平的重要因素,也是軟件開發(fā)組織能力水平的重要體現(xiàn)。因此,在培養(yǎng)高水平軟件工程人才過程中,如何培養(yǎng)學(xué)生的代碼質(zhì)量意識、能力、素養(yǎng)需要得到重視,這對于我國未來軟件產(chǎn)業(yè)發(fā)展至關(guān)重要。通過多年的軟件工程教學(xué)實踐,圍繞讀代碼、寫代碼、評代碼、改代碼4 個環(huán)節(jié),從高質(zhì)量開源軟件代碼閱讀、規(guī)范編程、代碼測試分析等方面對學(xué)生進(jìn)行訓(xùn)練,使學(xué)生建立對高質(zhì)量代碼的感性認(rèn)識,具備規(guī)范編程,以及運用測試及代碼分析相關(guān)技術(shù)和工具評價與提升代碼質(zhì)量的能力,取得了較好的教學(xué)效果。

      在后續(xù)工作中,將對開源社區(qū)中高質(zhì)量開源軟件項目作進(jìn)一步梳理,增加多樣性;增加更為豐富的、更全面的代碼質(zhì)量評價方式,全方位對學(xué)生編寫的代碼進(jìn)行代碼質(zhì)量度量,并增強(qiáng)數(shù)據(jù)可視化效果;豐富案例、教材等教學(xué)資源,并推廣到更多的教學(xué)實踐中,為培養(yǎng)具有高代碼質(zhì)量能力素質(zhì)的軟件工程人才發(fā)揮更大作用。

      猜你喜歡
      開源代碼編程
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      五毛錢能買多少頭牛
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      大家說:開源、人工智能及創(chuàng)新
      澎湖县| 舟曲县| 临颍县| 梁山县| 屯昌县| 呈贡县| 楚雄市| 德令哈市| 武山县| 满城县| 兰西县| 曲麻莱县| 贡嘎县| 白水县| 中宁县| 涞水县| 正蓝旗| 吴堡县| 深圳市| 建阳市| 柏乡县| 尼玛县| 尉氏县| 彭州市| 邵东县| 金华市| 图木舒克市| 屯门区| 定结县| 新乡县| 浦东新区| 峨边| 木里| 兴和县| 旺苍县| 揭西县| 云龙县| 永川市| 五原县| 荆门市| 乐都县|