本發(fā)明屬于軟件開發(fā)領(lǐng)域,尤其涉及一種軟件開發(fā)方法及裝置。
背景技術(shù):
軟件開發(fā),是根據(jù)用戶要求建造出軟件系統(tǒng)或者系統(tǒng)中軟件部分的一個(gè)產(chǎn)品開發(fā)的過程。軟件開發(fā)過程中,程序員都喜歡使用集成開發(fā)ide環(huán)境進(jìn)行編碼,以提高編碼和調(diào)試的效率。一個(gè)好的ide環(huán)境,可以說是軟件開發(fā)的利器。
目前,市場上常見的ide環(huán)境,有微軟的visualstudio和蘋果的xcode,還有一些開源的工具,比如eclipse等。這些工具都是非常優(yōu)秀的ide工具,都得到了程序員的高度贊賞。在這些工具中,寫代碼自動填充功能,深得程序員的歡心。自動填充功能,可以在程序員打出一兩個(gè)字母后,填充常用的函數(shù)、變量等等;或者,在某個(gè)名稱之后自動提示常用的變量,比如成員變量、成員函數(shù)等等。這是一個(gè)非常好用的工具,但是也僅僅限于此,無法幫助程序員做更多的工作。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種軟件開發(fā)方法,旨在提升軟件開發(fā)效率。
本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種軟件開發(fā)方法,包括:
獲取軟件開發(fā)任務(wù)中待開發(fā)的功能;
在預(yù)建的源碼數(shù)據(jù)庫中,獲取與所述待開發(fā)的功能對應(yīng)的源代碼;
顯示獲取到的源代碼;
其中,所述源碼數(shù)據(jù)庫包括預(yù)存的功能以及預(yù)存的功能對應(yīng)的源代碼。
本發(fā)明實(shí)施例的另一目的在于提供一種軟件開發(fā)裝置,包括:
功能獲取模塊,用于獲取軟件開發(fā)任務(wù)中待開發(fā)的功能;
功能代碼獲取模塊,用于在預(yù)建的源碼數(shù)據(jù)庫中,獲取與所述待開發(fā)的功能對應(yīng)的源代碼;
源代碼顯示模塊,用于顯示獲取到的源代碼;
其中,所述源碼數(shù)據(jù)庫包括預(yù)存的功能以及預(yù)存的功能對應(yīng)的源代碼。
在本發(fā)明實(shí)施例中,在預(yù)建的源碼數(shù)據(jù)庫中,獲取與所述待開發(fā)的功能對應(yīng)的源代碼,顯示獲取到的源代碼。避免了出現(xiàn)同一功能重復(fù)開發(fā)的情況,有益效果在于兩方面,一方面節(jié)約了軟件開發(fā)的時(shí)間,提升軟件開發(fā)效率,另一方面,創(chuàng)造了新的ide環(huán)境,提高了軟件開發(fā)的智能程度。
附圖說明
圖1是本發(fā)明實(shí)施例提供的軟件開發(fā)方法的實(shí)現(xiàn)流程圖;
圖2是本發(fā)明實(shí)施例提供的構(gòu)建源碼數(shù)據(jù)庫的實(shí)現(xiàn)流程圖;
圖3是本發(fā)明實(shí)施例提供的軟件開發(fā)方法步驟s202的實(shí)現(xiàn)流程圖;
圖4是本發(fā)明實(shí)施例提供的軟件開發(fā)方法步驟s103的實(shí)現(xiàn)流程圖;
圖5是本發(fā)明實(shí)施例提供的構(gòu)建源碼數(shù)據(jù)庫較佳的實(shí)現(xiàn)流程圖;
圖6是本發(fā)明實(shí)施例提供的輔助開發(fā)的實(shí)現(xiàn)流程圖;
圖7是本發(fā)明實(shí)施例提供的軟件開發(fā)裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
應(yīng)當(dāng)理解,當(dāng)在本說明書和所附權(quán)利要求書中使用時(shí),術(shù)語“包括”和“包含”指示所描述特征、整體、步驟、操作、元素和/或組件的存在,但并不排除一個(gè)或多個(gè)其它特征、整體、步驟、操作、元素、組件和/或其集合的存在或添加。
還應(yīng)當(dāng)理解,在此本發(fā)明說明書中所使用的術(shù)語僅僅是出于描述特定實(shí)施例的目的而并不意在限制本發(fā)明。如在本發(fā)明說明書和所附權(quán)利要求書中所使用的那樣,除非上下文清楚地指明其它情況,否則單數(shù)形式的“一”、“一個(gè)”及“該”意在包括復(fù)數(shù)形式。
還應(yīng)當(dāng)進(jìn)一步理解,在本發(fā)明說明書和所附權(quán)利要求書中使用的術(shù)語“和/或”是指相關(guān)聯(lián)列出的項(xiàng)中的一個(gè)或多個(gè)的任何組合以及所有可能組合,并且包括這些組合。
如在本說明書和所附權(quán)利要求書中所使用的那樣,術(shù)語“倘若”可以依據(jù)上下文被解釋為“當(dāng)...時(shí)”或“一旦”或“響應(yīng)于確定”或“響應(yīng)于檢測到”。類似地,短語“倘若確定”或“倘若讀取到[所描述條件或事件]”可以依據(jù)上下文被解釋為意指“一旦確定”或“響應(yīng)于確定”或“一旦檢測到[所描述條件或事件]”或“響應(yīng)于檢測到[所描述條件或事件]”。
實(shí)施例一
圖1是本發(fā)明實(shí)施例提供的軟件開發(fā)方法的實(shí)現(xiàn)流程圖,詳述如下:
在步驟s101中,獲取軟件開發(fā)任務(wù)中待開發(fā)的功能;
利用人工智能軟件開發(fā)助手,獲取軟件開發(fā)任務(wù)中待開發(fā)的功能。
當(dāng)啟動人工智能軟件開發(fā)助手時(shí),獲取軟件開發(fā)任務(wù)中待開發(fā)的功能;
或者,當(dāng)按下人工智能軟件開發(fā)助手所在設(shè)備上的某個(gè)按鍵時(shí),獲取軟件開發(fā)任務(wù)中待開發(fā)的功能;
或者,當(dāng)點(diǎn)擊人工智能軟件開發(fā)助手對應(yīng)的圖標(biāo)時(shí),獲取軟件開發(fā)任務(wù)中待開發(fā)的功能。
其中,人工智能軟件開發(fā)助手為用于軟件開發(fā)的助手。
在步驟s102中,在預(yù)建的源碼數(shù)據(jù)庫中,獲取與所述待開發(fā)的功能對應(yīng)的源代碼;
其中,所述源碼數(shù)據(jù)庫包括預(yù)存的功能以及預(yù)存的功能對應(yīng)的源代碼。
其中,在預(yù)建的源碼數(shù)據(jù)庫中,利用所述待開發(fā)的功能的名稱、關(guān)鍵字、操作對象,查找與所述待開發(fā)的功能對應(yīng)的源代碼。
在步驟s102之前,軟件開發(fā)方法還包括:
構(gòu)建源碼數(shù)據(jù)庫。
在步驟s103中,顯示獲取到的源代碼。
當(dāng)獲取到的多段源代碼時(shí),顯示源代碼列表,所述源代碼列表中包括獲取到的多段源代碼;
檢測在源代碼列表中指定的源代碼;
獲取指定的源代碼;
關(guān)聯(lián)指定的源代碼以及待開發(fā)的功能。
在本發(fā)明實(shí)施例中,顯示獲取到的源代碼,避免了出現(xiàn)同一功能重復(fù)開發(fā)的情況,有益效果在于以下幾個(gè)方面,詳述如下:
第一方面,在龐大的源碼庫的支持下,可以滿足算法、功能類、簡單工程模式的編碼要求;
第二方面,提供了強(qiáng)大的代碼掃描能力和虛擬運(yùn)行能力,可以在程序員寫下代碼的同時(shí),把運(yùn)行結(jié)果提供給程序員檢查結(jié)果是否正確;
第三方面,提供了強(qiáng)大的測試能力,能夠提供完成代碼的測試數(shù)據(jù)供程序員分析;
第四方面,收集程序員寫下的代碼,并通過交流了解這些代碼的功能。這些信息同時(shí)會構(gòu)成人工智能的數(shù)據(jù)庫的一部分。
實(shí)施例二
本發(fā)明實(shí)施例描述了獲取軟件開發(fā)任務(wù)中待開發(fā)的功能的實(shí)現(xiàn)流程,詳述如下:
通過語音或者文本的輸入方式,接收軟件開發(fā)任務(wù)中待開發(fā)的功能。
其中,通過語音或者文本的輸入方式,接收用戶的軟件開發(fā)任務(wù),再解析軟件開發(fā)任務(wù),以獲取待開發(fā)的功能。
實(shí)施例三
圖2是本發(fā)明實(shí)施例提供的構(gòu)建源碼數(shù)據(jù)庫的實(shí)現(xiàn)流程圖,詳述如下:
在步驟s201中,獲取源代碼;
其中,利用代碼抓取程序,從代碼庫中抓取各個(gè)程序中的源代碼。
在步驟s202中,根據(jù)所述源代碼的運(yùn)行結(jié)果或者標(biāo)注,得到所述源代碼對應(yīng)的功能;
其中,提取源代碼對應(yīng)的標(biāo)注,得到所述源代碼對應(yīng)的功能。
在步驟s203中,通過建立得到的功能與所述源代碼之間的對應(yīng)關(guān)系,構(gòu)建源碼數(shù)據(jù)庫。
實(shí)施例四
圖3是本發(fā)明實(shí)施例提供的軟件開發(fā)方法步驟s202的實(shí)現(xiàn)流程圖,詳述如下:
在步驟s301中,檢測獲取到的源代碼與預(yù)存的源代碼是否重復(fù);
在步驟s302中,倘若獲取到的源代碼與預(yù)存的源代碼不重復(fù),則根據(jù)所述源代碼的運(yùn)行結(jié)果或者標(biāo)注,得到所述源代碼對應(yīng)的功能。
實(shí)施例五
圖4是本發(fā)明實(shí)施例提供的軟件開發(fā)方法步驟s103的實(shí)現(xiàn)流程圖,詳述如下:
在步驟s401中,根據(jù)所述待開發(fā)的功能的關(guān)鍵字,通過預(yù)建的源碼數(shù)據(jù)庫,確定所述多個(gè)功能中各功能與所述待開發(fā)的功能的相關(guān)程度;
在步驟s402中,將所述相關(guān)程度進(jìn)行排序,將所述多個(gè)功能中排序在預(yù)設(shè)閾值內(nèi)的功能對應(yīng)的源代碼,作為所述待開發(fā)的功能對應(yīng)的源代碼。
在本發(fā)明實(shí)施例中,能找出與待開發(fā)的功能相關(guān)程度較大的功能,將相關(guān)程度較大的功能對應(yīng)的源代碼優(yōu)先推薦給用戶,能進(jìn)一步節(jié)約軟件開發(fā)的時(shí)間,提升軟件開發(fā)效率。
實(shí)施例六
本發(fā)明實(shí)施例描述了當(dāng)軟件開發(fā)裝置為人工智能軟件開發(fā)助手時(shí),人工智能軟件開發(fā)助手具備的基本特征,詳述如下:
1)這個(gè)助手是一種云助手的形式。
2)具備自然語言分析能力,能理解簡單的語言交流,可以通過語音或者文本的方式交流。
3)具備一個(gè)大數(shù)據(jù)庫支撐。這個(gè)數(shù)據(jù)庫是現(xiàn)在所有能搜索到的源代碼的集合。這個(gè)集合里面有大量的已經(jīng)被標(biāo)注的源代碼。
4)有自動爬取和分析關(guān)鍵技術(shù)論壇的能力,可以源源不斷將更多的源代碼輸入源碼數(shù)據(jù)庫。
技術(shù)論壇包括但不限于比如編程論壇stackoverflow。
5)能夠針對個(gè)體程序員做調(diào)整適應(yīng),做到更理解該用戶的想法,給出更專業(yè)更有用的建議和幫助。
6)更高級的人工智能具備分析源代碼,理解某一段源代碼是完成什么工作,甚至通過虛擬運(yùn)行得到源代碼的運(yùn)行時(shí)刻runtime數(shù)據(jù)。
7)不斷學(xué)習(xí),能力越來越強(qiáng)。每一個(gè)使用了人工智能軟件開發(fā)助手的程序員,其實(shí)就是在不斷對這個(gè)人工智能軟件開發(fā)助手做訓(xùn)練。
在千千萬萬程序員夜以繼日的不斷訓(xùn)練下,這個(gè)人工智能軟件開發(fā)助手對“編程”這個(gè)工作會越來越勝任。
其中,人工智能軟件開發(fā)助手是這樣幫助程序員的:
人工智能軟件開發(fā)助手在龐大的源碼庫的支持下,可以滿足算法、功能類、簡單工程模式的編碼要求。
程序員是一個(gè)架構(gòu)師,把一個(gè)復(fù)雜系統(tǒng),分解成模塊,然后再把模塊分解成更具體的類、算法、接口、函數(shù)。這些代碼實(shí)體,都是人工智能軟件開發(fā)助手可以自主完成的,因?yàn)樵谲浖l(fā)展過程中,這些代碼被實(shí)現(xiàn)過無數(shù)次,人工智能收集分析過這其中大多數(shù)的代碼,并挑選了合適的代碼實(shí)現(xiàn)。
如果某一個(gè)實(shí)體人工智能還無法實(shí)現(xiàn),程序員需要跟人工智能繼續(xù)溝通,提供更多信息,或者繼續(xù)分解成更簡單的子模塊,直到人工智能可以自主完成;最后是人工智能無法完成的模塊,程序員自己來完成。
程序員借助人工智能,完成了系統(tǒng)的所有小模塊,然后自己把這些小模塊拼裝起來,構(gòu)成真正的系統(tǒng)。
人工智能提供強(qiáng)大的代碼掃描能力和虛擬運(yùn)行能力,可以在程序員寫下代碼的同時(shí),把運(yùn)行結(jié)果提供給程序員檢查結(jié)果是否正確。
人工智能提供強(qiáng)大的測試能力,能夠提供完成代碼的測試數(shù)據(jù)供程序員分析。
人工智能收集程序員寫下的代碼,并通過交流了解這些代碼的功能。這些信息同時(shí)會構(gòu)成人工智能的數(shù)據(jù)庫的一部分。
在本發(fā)明實(shí)施例中,通過創(chuàng)造人工智能軟件開發(fā)助手,提高了軟件開發(fā)的智能程度。
實(shí)施例七
圖5是本發(fā)明實(shí)施例提供的構(gòu)建源碼數(shù)據(jù)庫較佳的實(shí)現(xiàn)流程圖,詳述如下:
獲取源代碼和標(biāo)注;
對源代碼分析和處理,對標(biāo)注分析和處理;
提取源代碼特征,匹配源代碼數(shù)據(jù)庫;
是否匹配;
是則,表示已有功能代碼,增加一種實(shí)現(xiàn),否,新功能代碼入庫;
結(jié)束。
其中,功能代碼為:該功能對應(yīng)的源代碼。
實(shí)施例八
圖6是本發(fā)明實(shí)施例提供的輔助開發(fā)的實(shí)現(xiàn)流程圖,詳述如下:
開始;
交流獲取明確任務(wù);
任務(wù)明確;
是則,從源碼數(shù)據(jù)庫中檢索出獲取的源代碼,代碼符合程序員目標(biāo),
否則,跳轉(zhuǎn)至交流獲取明確任務(wù)這一步驟;
結(jié)束。
實(shí)施例九
圖7是本發(fā)明實(shí)施例提供的軟件開發(fā)裝置的結(jié)構(gòu)框圖,該裝置可以運(yùn)行于用戶設(shè)備中。用戶設(shè)備包括但不限于移動電話、口袋計(jì)算機(jī)(pocketpersonalcomputer,ppc)、掌上電腦、計(jì)算機(jī)、筆記本電腦、個(gè)人數(shù)字助理(personaldigitalassistant,pda)、mp4、mp3。為便于說明,僅示出了與本實(shí)施例相關(guān)的部分。為了便于說明,僅示出了與本實(shí)施例相關(guān)的部分。
參照圖7,該軟件開發(fā)裝置,包括:
功能獲取模塊71,用于獲取軟件開發(fā)任務(wù)中待開發(fā)的功能;
功能代碼獲取模塊72,用于在預(yù)建的源碼數(shù)據(jù)庫中,獲取與所述待開發(fā)的功能對應(yīng)的源代碼;
源代碼顯示模塊73,用于顯示獲取到的源代碼;
其中,所述源碼數(shù)據(jù)庫包括預(yù)存的功能以及預(yù)存的功能對應(yīng)的源代碼。
作為本實(shí)施例的一種實(shí)現(xiàn)方式,在所述軟件開發(fā)裝置中,所述功能代碼獲取模塊具體用于通過語音或者文本的輸入方式,接收軟件開發(fā)任務(wù)中待開發(fā)的功能。
作為本實(shí)施例的一種實(shí)現(xiàn)方式,在所述軟件開發(fā)裝置中,所述軟件開發(fā)裝置,還包括:
獲取模塊,用于獲取源代碼;
功能模塊,用于根據(jù)所述源代碼的運(yùn)行結(jié)果或者標(biāo)注,得到所述源代碼對應(yīng)的功能;
構(gòu)建模塊,用于通過建立得到的功能與所述源代碼之間的對應(yīng)關(guān)系,構(gòu)建源碼數(shù)據(jù)庫。
作為本實(shí)施例的一種實(shí)現(xiàn)方式,在所述軟件開發(fā)裝置中,所述功能模塊,包括:
檢測單元,用于檢測獲取到的源代碼與預(yù)存的源代碼是否重復(fù);
功能單元,用于倘若獲取到的源代碼與預(yù)存的源代碼不重復(fù),則根據(jù)所述源代碼的運(yùn)行結(jié)果或者標(biāo)注,得到所述源代碼對應(yīng)的功能。
作為本實(shí)施例的一種實(shí)現(xiàn)方式,在所述軟件開發(fā)裝置中,所述功能代碼獲取模塊還包括:
相關(guān)程度獲取單元,用于根據(jù)所述待開發(fā)的功能的關(guān)鍵字,通過預(yù)建的源碼數(shù)據(jù)庫,確定所述多個(gè)功能中各功能與所述待開發(fā)的功能的相關(guān)程度;
源代碼獲取單元,用于將所述相關(guān)程度進(jìn)行排序,將所述多個(gè)功能中排序在預(yù)設(shè)閾值內(nèi)的功能對應(yīng)的源代碼,作為所述待開發(fā)的功能對應(yīng)的源代碼。
本發(fā)明實(shí)施例方法中的步驟可以根據(jù)實(shí)際需要進(jìn)行順序調(diào)整、合并和刪減。
本發(fā)明實(shí)施例裝置和裝置中的單元可以根據(jù)實(shí)際需要進(jìn)行合并、劃分和刪減。
本發(fā)明實(shí)施例提供的裝置可以應(yīng)用在前述對應(yīng)的方法實(shí)施例中,詳情參見上述實(shí)施例的描述,在此不再贅述。
通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實(shí)現(xiàn)。所述的程序可以存儲于可讀取存儲介質(zhì)中,所述的存儲介質(zhì),如隨機(jī)存儲器、閃存、只讀存儲器、可編程只讀存儲器、電可擦寫可編程存儲器、寄存器等。該存儲介質(zhì)位于存儲器,處理器讀取存儲器中的信息,結(jié)合其硬件執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。