• 
    

    
    

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

      基于高質(zhì)量開源軟件的閱讀維護(hù)培養(yǎng)軟件工程能力

      2018-07-21 06:11:08尹良澤毛新軍
      計(jì)算機(jī)教育 2018年7期
      關(guān)鍵詞:開源代碼高質(zhì)量

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

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

      0 引 言

      軟件工程系列課程的主要目標(biāo)是提高學(xué)生對(duì)復(fù)雜軟件系統(tǒng)和較大規(guī)模軟件的開發(fā)素養(yǎng)和能力。傳統(tǒng)的軟件工程課程實(shí)踐教學(xué)主要是軟件項(xiàng)目實(shí)踐,學(xué)生在已經(jīng)學(xué)習(xí)大規(guī)模軟件開發(fā)方法和技術(shù)的基礎(chǔ)上,運(yùn)用所學(xué)知識(shí)設(shè)計(jì)開發(fā)一個(gè)具有一定規(guī)模的真實(shí)軟件。但由于學(xué)生沒有接觸過(guò)真實(shí)的優(yōu)秀軟件項(xiàng)目,個(gè)人認(rèn)識(shí)還停留在幾十上百行的小規(guī)模代碼中,因此在實(shí)際項(xiàng)目開發(fā)中還是不知道該如何開發(fā),軟件工程方法的應(yīng)用趨于形式。同時(shí),軟件工程方法的很多經(jīng)驗(yàn)和技巧只有讓學(xué)生見識(shí)優(yōu)秀軟件工程師所開發(fā)的優(yōu)秀軟件項(xiàng)目,才能讓學(xué)生在理論學(xué)習(xí)階段與軟件工程理論和方法產(chǎn)生共鳴,并在項(xiàng)目實(shí)踐階段模仿優(yōu)秀軟件工程師的設(shè)計(jì)開發(fā)方法,提高學(xué)生開發(fā)較大規(guī)模高質(zhì)量軟件的能力。針對(duì)這種情況,亟須探討軟件工程課程新的教學(xué)模式,提高學(xué)生對(duì)軟件工程方法的理解層次和深度,為提高學(xué)生大規(guī)模高質(zhì)量軟件開發(fā)能力打下基礎(chǔ)。

      1 通過(guò)開源軟件閱讀維護(hù)加強(qiáng)軟件工程人才培養(yǎng)

      1.1 開源軟件概述

      經(jīng)過(guò)幾十年的發(fā)展,開源軟件對(duì)軟件產(chǎn)業(yè)產(chǎn)生了巨大影響,開源軟件也代表了軟件工程領(lǐng)域一種先進(jìn)的開發(fā)技術(shù)和模式。在該模式中,開發(fā)人員通過(guò)復(fù)用已有的開源軟件和大眾協(xié)同參與,可有效提高軟件項(xiàng)目的開發(fā)效率和開發(fā)質(zhì)量,并大幅降低開發(fā)成本。同時(shí),基于開源軟件開展軟件工程教育也是軟件工程能力培養(yǎng)的一種有效途徑[1-4]。具體來(lái)所,開源軟件具有三大優(yōu)勢(shì):一是覆蓋范圍廣,開源軟件已經(jīng)覆蓋了幾乎所有領(lǐng)域的基礎(chǔ)軟件和共性應(yīng)用軟件;二是代碼質(zhì)量高,2013年的Coverity掃描報(bào)告首次發(fā)現(xiàn)開源軟件質(zhì)量超過(guò)專有軟件,開源軟件缺陷密度0.59,專用軟件0.72[3];三是擁有開源社區(qū),開源社區(qū)是開源軟件開發(fā)者溝通和交流的媒介,也是初學(xué)者學(xué)習(xí)優(yōu)秀工程師開發(fā)經(jīng)驗(yàn)并獲取幫助的一個(gè)重要平臺(tái)。

      1.2 在軟件工程課程實(shí)踐教學(xué)中應(yīng)用開源軟件閱讀

      針對(duì)軟件工程課程實(shí)踐教學(xué)中學(xué)生缺乏大規(guī)模高質(zhì)量軟件開發(fā)經(jīng)驗(yàn)的問題,一種解決思路是讓學(xué)生閱讀和維護(hù)具有一定規(guī)模的高質(zhì)量開源軟件,通過(guò)盡早接觸優(yōu)秀的高質(zhì)量軟件來(lái)增強(qiáng)學(xué)生工程意識(shí)?;谶@種思想,設(shè)計(jì)提出了在軟件工程課程實(shí)踐教學(xué)中應(yīng)用開源軟件閱讀的基本方案。如圖1所示,整個(gè)課程分為3個(gè)階段:開源軟件閱讀維護(hù)、軟件工程理論教學(xué)和創(chuàng)意軟件項(xiàng)目實(shí)踐。

      (1)開源軟件閱讀維護(hù)階段。學(xué)生通過(guò)閱讀維護(hù)具有一定規(guī)模的高質(zhì)量開源軟件,首先從感性上接觸和認(rèn)識(shí)較大規(guī)模高質(zhì)量軟件,并從中學(xué)習(xí)高質(zhì)量軟件的開發(fā)方法和原則。具體來(lái)說(shuō),該階段要求學(xué)生通過(guò)開源軟件的閱讀提取出其需求和設(shè)計(jì)。由于還沒有系統(tǒng)學(xué)習(xí)軟件工程的理論和方法,學(xué)生可能會(huì)出現(xiàn)無(wú)從下手,或者描述不清晰、不規(guī)范等情況。這些也正是學(xué)生課程理論學(xué)習(xí)階段需要解決的問題。有了這些體驗(yàn),學(xué)生就會(huì)帶著問題去深入學(xué)習(xí)軟件工程方法和技術(shù),從而使得課程理論教學(xué)不再是簡(jiǎn)單的概念背誦。

      (2)軟件工程理論教學(xué)階段。將以被閱讀的開源軟件為案例,系統(tǒng)講授需求、設(shè)計(jì)和測(cè)試的相關(guān)理論和方法。系統(tǒng)學(xué)習(xí)相關(guān)方法和技術(shù)后,要求學(xué)生重新修正自己提取出來(lái)的軟件需求和設(shè)計(jì),進(jìn)一步理解軟件工程方法和技術(shù)的精髓。

      (3)創(chuàng)意軟件項(xiàng)目實(shí)踐階段則要求學(xué)生采用前面兩個(gè)階段學(xué)到的需求描述、項(xiàng)目設(shè)計(jì)、軟件開發(fā)等方法,正向設(shè)計(jì)開發(fā)一個(gè)具有一定規(guī)模的高質(zhì)量的軟件,進(jìn)一步培養(yǎng)學(xué)生解決復(fù)雜問題和開發(fā)較大規(guī)模高質(zhì)量軟件的能力。

      這3個(gè)階段,第一個(gè)階段通過(guò)閱讀開源軟件讓學(xué)生認(rèn)識(shí)大規(guī)模高質(zhì)量代碼,并初步開展軟件需求描述和軟件設(shè)計(jì);第二個(gè)階段通過(guò)知識(shí)講授讓學(xué)生系統(tǒng)掌握軟件工程的相關(guān)方法和技術(shù),并修正完善第一階段的需求和設(shè)計(jì);第三階段則運(yùn)用第一階段的經(jīng)驗(yàn)和第二階段的方法技術(shù)正向設(shè)計(jì)開發(fā)一個(gè)軟件項(xiàng)目。3個(gè)階段由淺入深、相輔相成。通過(guò)這3個(gè)階段,系統(tǒng)培養(yǎng)學(xué)生大規(guī)模高質(zhì)量軟件的開發(fā)能力和素養(yǎng),從而實(shí)現(xiàn)課程實(shí)踐教學(xué)目標(biāo)。

      圖1 開源軟件閱讀維護(hù)在軟件工程課程教學(xué)中的定位

      2 開源軟件閱讀設(shè)計(jì)方案

      2.1 開源軟件閱讀實(shí)踐需要解決的若干問題

      2.1.1 開源軟件選擇

      作為軟件工程課程實(shí)踐教學(xué)閱讀用的開源軟件,需要具備如下幾個(gè)特征。

      特征一:面向?qū)嶋H應(yīng)用。當(dāng)前比較熱門的開源軟件往往都采用了最先進(jìn)的方法和技術(shù)。由于學(xué)生在后期軟件項(xiàng)目實(shí)踐時(shí)通常都會(huì)參照和模仿被閱讀的開源軟件進(jìn)行開發(fā),面向?qū)嶋H應(yīng)用的軟件能讓學(xué)生學(xué)習(xí)到最新軟件開發(fā)方法和技術(shù)。

      特征二:代碼質(zhì)量高。首先,該軟件必須具有高質(zhì)量的軟件設(shè)計(jì),包括軟件體系結(jié)構(gòu)、類設(shè)計(jì)等。其次,該軟件必須具有非常規(guī)范的編碼風(fēng)格,讓學(xué)生通過(guò)閱讀高質(zhì)量代碼,意識(shí)到自己代碼的缺陷,并養(yǎng)成良好的編碼習(xí)慣。

      特征三:代碼規(guī)模適中。代碼規(guī)模太小不足以讓學(xué)生體會(huì)到軟件工程的思想,但規(guī)模太大又會(huì)給學(xué)生造成一定的壓力和負(fù)擔(dān)。在閱讀完該開源軟件之后,學(xué)生應(yīng)該能較好地駕馭該軟件。通常來(lái)說(shuō)被閱讀開源軟件的規(guī)模在10 000行代碼左右比較合適。

      特征四:開源社區(qū)活躍。當(dāng)前軟件開發(fā)的一種趨勢(shì)是借助于互聯(lián)網(wǎng)的優(yōu)勢(shì)和群體智慧的力量來(lái)進(jìn)行軟件開發(fā)。通過(guò)開源社區(qū),學(xué)生可以學(xué)習(xí)到很多實(shí)際項(xiàng)目開發(fā)中非常重要的寶貴經(jīng)驗(yàn),以及基于開源社區(qū)和大眾協(xié)同的群體化軟件開發(fā)方法。

      2.1.2 閱讀引導(dǎo)與考核

      選擇合適的開源軟件之后,接下來(lái)就需要引導(dǎo)學(xué)生有效地完成閱讀,從而培養(yǎng)其開發(fā)較大規(guī)模高質(zhì)量軟件的能力。放羊式地將開源軟件交給學(xué)生,將造成學(xué)生閱讀比較盲目,缺乏目標(biāo)和動(dòng)力。因此,需要有效地引導(dǎo)學(xué)生一步一步地去深入閱讀,并在整個(gè)過(guò)程中對(duì)學(xué)生的閱讀效果進(jìn)行監(jiān)督和考評(píng)。具體來(lái)說(shuō),整個(gè)閱讀過(guò)程需要做到如下幾點(diǎn)。

      有規(guī)劃:將整個(gè)開源軟件一股腦地扔給學(xué)生會(huì)讓學(xué)生覺得無(wú)所適從,也無(wú)從下手。因此,整個(gè)閱讀過(guò)程必須有規(guī)劃、分步驟進(jìn)行,循序漸進(jìn),并給每個(gè)階段設(shè)定一個(gè)任務(wù)。學(xué)生只要按照老師的要求一步步來(lái),高標(biāo)準(zhǔn)完成每個(gè)階段的任務(wù)就可以對(duì)較大規(guī)模高質(zhì)量軟件有一定認(rèn)識(shí),并初步掌握一些設(shè)計(jì)開發(fā)高質(zhì)量軟件代碼的方法和工具。

      有監(jiān)督:監(jiān)督是督促和激勵(lì)學(xué)生積極完成每個(gè)階段任務(wù)的重要保證,缺乏監(jiān)督將可能導(dǎo)致學(xué)生將代碼閱讀過(guò)程當(dāng)成完成任務(wù)。在整個(gè)代碼閱讀過(guò)程中,可以每周公布各組代碼閱讀的統(tǒng)計(jì)數(shù)據(jù)和相關(guān)信息。讓學(xué)生能夠給自己的工作一個(gè)比較良好的定位,并督促自己按照高標(biāo)準(zhǔn)要求完成每個(gè)階段的任務(wù)。

      有考核:考核是每門課程的一項(xiàng)重要內(nèi)容。同樣,開源軟件閱讀也需要有考核,但不同于一般的知識(shí)學(xué)習(xí),開源軟件閱讀更加注重閱讀過(guò)程。因此,考什么、如何考,將是開源軟件閱讀中需要考慮的一項(xiàng)重要內(nèi)容。該考核方式要求既能反映學(xué)生開源軟件的閱讀效果,又具有一定的量化考核方式。

      有點(diǎn)評(píng):及時(shí)對(duì)學(xué)生的工作進(jìn)行點(diǎn)評(píng),指出其工作中存在的問題和可能的解決方案,是提高學(xué)生能力的關(guān)鍵步驟。對(duì)開源軟件閱讀,需要在點(diǎn)評(píng)過(guò)程中引導(dǎo)學(xué)生細(xì)心去體會(huì)一定規(guī)模高質(zhì)量軟件的開發(fā)方法,并將代碼閱讀實(shí)踐與課程理論知識(shí)相結(jié)合,充分利用好開源軟件這個(gè)案例培養(yǎng)學(xué)生的各方面能力。

      2.2 開源軟件閱讀維護(hù)框架

      為引導(dǎo)學(xué)生一步步閱讀開源軟件,將開源軟件閱讀分為3個(gè)階段:代碼泛讀、代碼精讀和代碼維護(hù),如圖2所示。代碼泛讀的主要目標(biāo)是讓學(xué)生在較短的時(shí)間內(nèi)快速掌握該軟件的功能和概要設(shè)計(jì),包括軟件的體系架構(gòu)、模塊劃分等。代碼精讀則是在學(xué)生已經(jīng)基本掌握軟件整體架構(gòu)的基礎(chǔ)上,進(jìn)一步體會(huì)軟件的詳細(xì)設(shè)計(jì)、代碼規(guī)范、實(shí)現(xiàn)方法和技巧等。代碼維護(hù)是在學(xué)生已經(jīng)掌握整個(gè)軟件的整體架構(gòu),也對(duì)某一部分代碼非常熟悉的前提下,要求學(xué)生在該開源軟件的基礎(chǔ)上新增新的功能,對(duì)代碼進(jìn)行測(cè)試,并且修改維護(hù)相應(yīng)的功能。要求新添加代碼的質(zhì)量與原來(lái)的代碼質(zhì)量保持一致。代碼維護(hù)階段是對(duì)前兩個(gè)階段所學(xué)知識(shí)和方法的一次初步運(yùn)用,也為后面軟件項(xiàng)目實(shí)踐中開發(fā)高質(zhì)量軟件打下基礎(chǔ)。

      代碼泛讀階段的主要產(chǎn)出是軟件功能描述和概要設(shè)計(jì),以及概要設(shè)計(jì)時(shí)有何考慮,概要設(shè)計(jì)如何實(shí)現(xiàn)軟件功能等。代碼精讀階段的主要產(chǎn)出是軟件詳細(xì)設(shè)計(jì)和代碼注釋。詳細(xì)設(shè)計(jì)中,要求學(xué)生給出該模塊的類圖和關(guān)鍵用例的順序圖;代碼注釋則包括類注釋、成員函數(shù)注釋、關(guān)鍵語(yǔ)句注釋等。代碼維護(hù)階段的產(chǎn)出是新增功能代碼和測(cè)試代碼,要求學(xué)生將相應(yīng)的功能描述和設(shè)計(jì)添加到前面形成的文檔中,并對(duì)新增部分進(jìn)行驗(yàn)證審查。為督促學(xué)生積極開展代碼閱讀工作,也為了總結(jié)自己學(xué)習(xí)到的知識(shí),還要求學(xué)生每周都要撰寫一篇技術(shù)博客,主要描述自己一周學(xué)習(xí)到的內(nèi)容,例如關(guān)于協(xié)作開發(fā)、開源軟件復(fù)用、需求描述和項(xiàng)目設(shè)計(jì),以及自己遇到的問題和解決方案等。

      整個(gè)代碼閱讀維護(hù)過(guò)程以2人為一個(gè)小組結(jié)對(duì)進(jìn)行,同時(shí)要求學(xué)生參與開源社區(qū)。每個(gè)階段結(jié)束之后都會(huì)對(duì)該階段的成果進(jìn)行考核點(diǎn)評(píng),給出各小組各階段的成績(jī),對(duì)存在的問題進(jìn)行點(diǎn)評(píng),并要求學(xué)生在點(diǎn)評(píng)之后進(jìn)一步完善相關(guān)工作。整個(gè)過(guò)程中都會(huì)持續(xù)對(duì)學(xué)生的任務(wù)完成情況進(jìn)行監(jiān)督,包括跟蹤大家的平臺(tái)活躍情況、技術(shù)博客撰寫情況、成果完成質(zhì)量、新增代碼質(zhì)量和規(guī)模等。

      圖2 開源軟件閱讀維護(hù)框架

      3 開源軟件閱讀的具體實(shí)踐

      3.1 開源軟件選擇

      經(jīng)過(guò)反復(fù)比較,最終選擇Android APP “小米便簽”作為學(xué)生閱讀的開源軟件。小米便簽是小米公司開發(fā)的一款手機(jī)APP。Android編程是最近比較熱門的一個(gè)話題,便簽也是大家比較熟悉的一款軟件,大部分學(xué)生對(duì)該軟件都比較感興趣。該軟件包含大概10 000行代碼,代碼規(guī)模適中。由于是由小米專業(yè)開發(fā)團(tuán)隊(duì)精心為Android初學(xué)者所打造的一款軟件,該軟件不管從設(shè)計(jì)還是從代碼的角度來(lái)說(shuō)都具有較高質(zhì)量。該軟件托管在Github上,學(xué)生可以進(jìn)入該軟件的開發(fā)社區(qū),與該軟件的開發(fā)人員以及相應(yīng)的學(xué)習(xí)人員進(jìn)行交流。

      3.2 實(shí)踐效果

      表1給出了學(xué)生經(jīng)過(guò)小米便簽的泛讀、精讀和維護(hù)3個(gè)階段之后對(duì)開發(fā)較大規(guī)模軟件的各項(xiàng)能力提升滿意程度的評(píng)價(jià)。90分表示該項(xiàng)能力提升明顯,非常滿意;80分表示有較大提升,但還有不少提升空間;60分則表示該項(xiàng)能力提升不大。從表1中數(shù)據(jù)可以看出:

      (1)經(jīng)過(guò)小米便簽的閱讀,學(xué)生的大規(guī)模軟件代碼分析能力得到較大提升,代碼編程風(fēng)格發(fā)生質(zhì)的變化,團(tuán)隊(duì)協(xié)同開發(fā)能力也取得很大的進(jìn)步。經(jīng)過(guò)泛讀、精讀和維護(hù)3個(gè)階段,學(xué)生能以較快的速度掌握一定規(guī)模代碼的功能和基本架構(gòu),然后對(duì)自己所關(guān)心的代碼進(jìn)行深入分析。學(xué)生另一個(gè)最大收獲是代碼編程風(fēng)格,小米便簽的代碼風(fēng)格規(guī)范統(tǒng)一,讓學(xué)生意識(shí)到了自己代碼的缺陷。同時(shí),代碼閱讀維護(hù)過(guò)程中,學(xué)生第一次基于trustie和git進(jìn)行項(xiàng)目管理和協(xié)同開發(fā)維護(hù),掌握了基于團(tuán)隊(duì)的協(xié)同開發(fā)方法。

      (2)軟件設(shè)計(jì)能力、修改維護(hù)能力和開源軟件復(fù)用能力都有較大提升。閱讀過(guò)程中,學(xué)生花了較多時(shí)間去體會(huì)優(yōu)秀的軟件設(shè)計(jì),學(xué)生開始對(duì)軟件設(shè)計(jì)、修改維護(hù)和軟件復(fù)用有了初步的認(rèn)識(shí)。對(duì)于軟件設(shè)計(jì)能力,由于缺乏系統(tǒng)的理論方法學(xué)習(xí),還存在較大的提升空間;對(duì)于修改維護(hù)能力,由于學(xué)生以前沒有接觸過(guò)Android開發(fā),修改維護(hù)起來(lái)比較費(fèi)勁;對(duì)于開源軟件復(fù)用,存在部分同學(xué)在集成開源軟件時(shí)比較費(fèi)勁。

      (3)對(duì)于軟件測(cè)試能力,整體來(lái)說(shuō)學(xué)生提升不是很大。測(cè)試過(guò)程中,要求學(xué)生采用自動(dòng)測(cè)試的方法對(duì)精讀的代碼以及自己新添加的代碼進(jìn)行測(cè)試。小米便簽是Android代碼,大部分代碼都在與底層數(shù)據(jù)和上層界面進(jìn)行交互。由于時(shí)間有限,學(xué)生對(duì)如何模擬Android的界面操作以及底層的數(shù)據(jù)還不是很熟悉。

      表2給出了學(xué)生開源軟件閱讀的一些相關(guān)數(shù)據(jù)。學(xué)生每周花在小米便簽閱讀上的時(shí)間平均達(dá)到了10小時(shí),最多的達(dá)到了20小時(shí),表明大部分學(xué)生對(duì)小米便簽的閱讀都比較感興趣。學(xué)生在代碼維護(hù)階段添加的代碼量平均500行左右,復(fù)用開源軟件代碼量1 200行左右,達(dá)到了課程要求。學(xué)生在代碼精讀階段添加注釋量平均800行,代碼注釋比較規(guī)范標(biāo)準(zhǔn),準(zhǔn)確率也比較高。在整個(gè)小米便簽閱讀過(guò)程中,各小組的Git提交次數(shù)平均為142次,表明學(xué)生提交很活躍,也掌握了團(tuán)隊(duì)協(xié)同開發(fā)的基本方法。

      整體來(lái)說(shuō),經(jīng)過(guò)小米便簽的閱讀,學(xué)生對(duì)較大規(guī)模高質(zhì)量軟件有了一定的感性認(rèn)識(shí),代碼分析能力、協(xié)同開發(fā)能力、代碼編程風(fēng)格都有了很大提升,同時(shí)對(duì)如何開展軟件需求和設(shè)計(jì)也有了一定的認(rèn)識(shí)和嘗試,軟件工程能力得到增強(qiáng),為后期系統(tǒng)學(xué)習(xí)軟件工程的方法和技術(shù)以及開展創(chuàng)意軟件項(xiàng)目實(shí)踐打下了良好的基礎(chǔ)。

      表1 學(xué)生對(duì)開源軟件閱讀效果的評(píng)價(jià)

      表2 學(xué)生開源軟件閱讀相關(guān)數(shù)據(jù)

      4 結(jié) 語(yǔ)

      在軟件工程課程實(shí)踐教學(xué)中引入開源軟件閱讀,通過(guò)在理論方法學(xué)習(xí)之前先讓學(xué)生接觸具有一定規(guī)模的高質(zhì)量開源軟件,使得學(xué)生對(duì)大規(guī)模高質(zhì)量軟件及其開發(fā)先有一定的感性認(rèn)識(shí),從而提高軟件工程方法技術(shù)學(xué)習(xí)和創(chuàng)意軟件項(xiàng)目實(shí)踐的質(zhì)量。為有效引導(dǎo)學(xué)生開展開源軟件代碼閱讀,將其分為代碼泛讀、代碼精讀、代碼維護(hù)3個(gè)階段,每個(gè)階段都要求有不同的產(chǎn)出,并將過(guò)程監(jiān)督、協(xié)作開發(fā)、參與開源社區(qū)、考核點(diǎn)評(píng)等貫穿代碼閱讀和維護(hù)全過(guò)程,以保證代碼閱讀的有效性。實(shí)踐效果表明該方法可增強(qiáng)學(xué)生的工程意識(shí),對(duì)系統(tǒng)培養(yǎng)學(xué)生解決復(fù)雜工程問題和開發(fā)較大規(guī)模的高質(zhì)量軟件系統(tǒng)的能力具有重要意義。

      猜你喜歡
      開源代碼高質(zhì)量
      堅(jiān)持以高質(zhì)量發(fā)展統(tǒng)攬全局
      高質(zhì)量項(xiàng)目 高質(zhì)量發(fā)展
      牢牢把握高質(zhì)量發(fā)展這個(gè)根本要求
      五毛錢能買多少頭牛
      “三部曲”促數(shù)學(xué)復(fù)習(xí)課高質(zhì)量互動(dòng)
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      大家說(shuō):開源、人工智能及創(chuàng)新
      通州区| 红安县| 金寨县| 沅江市| 民勤县| 建德市| 观塘区| 北安市| 辽宁省| 道真| 上林县| 乌拉特中旗| 大石桥市| 临邑县| 容城县| 黄大仙区| 同仁县| 溧水县| 玛沁县| 保康县| 新余市| 台湾省| 藁城市| 青川县| 唐河县| 合阳县| 云霄县| 凉城县| 阳朔县| 壶关县| 什邡市| 安岳县| 莱西市| 广东省| 奉贤区| 报价| 韩城市| 夹江县| 九寨沟县| 通江县| 淮南市|