將人工智能應(yīng)用到軟件開(kāi)發(fā)中?那你需要了解這些

0 評(píng)論 2509 瀏覽 4 收藏 10 分鐘

隨著科技的發(fā)展,AI 技術(shù)也在不斷的發(fā)生變化,AI與軟件工程的融合會(huì)是一種新的突破方式,通過(guò)下面的文章,我們一起看看這兩者的融合需要了解什么吧!

軟件開(kāi)發(fā)人員依靠確定性而蓬勃發(fā)展。如果您向程序提供一組輸入,您將始終獲得相同的輸出。在軟件歷史的大部分時(shí)間里,軟件完全建立在確定性邏輯的基礎(chǔ)上。

我們甚至有一個(gè)術(shù)語(yǔ):自上而下的編程。所有算法都遵循一條路徑,其分支也基于預(yù)期的邏輯。當(dāng)我們調(diào)試代碼時(shí),我們會(huì)一遍又一遍地沿著相同的路徑運(yùn)行,找到行為偏離預(yù)期的地方,并使其回到正軌。

確定性和確定性邏輯適用于許多軟件。但現(xiàn)實(shí)世界并非如此。相比之下,AI是概率性的。答案從來(lái)都不準(zhǔn)確。相反,AI使用模型來(lái)預(yù)測(cè)行為,然后生成該行為。

也許描述這一點(diǎn)的最佳方式是傳統(tǒng)軟件與AI的更新方式。傳統(tǒng)軟件會(huì)獲得更新和補(bǔ)丁。AI可以學(xué)習(xí)、自行進(jìn)化、理解并吸收用戶(hù)反饋,無(wú)需人工干預(yù)。這使得傳統(tǒng)軟件更加精

通過(guò)將AI應(yīng)用到軟件工程中,我們可以?xún)扇涿溃杭染_又靈活的軟件。本文將探討這次合并,以及它對(duì)開(kāi)發(fā)人員和工程師以及他們的作品的用戶(hù)意味著什么。

一、AI與軟件工程的融合

如今,開(kāi)發(fā)人員有機(jī)會(huì)使用AI作為其編碼過(guò)程的一部分。新的AI工具可幫助創(chuàng)建代碼、查找錯(cuò)誤、設(shè)置測(cè)試套件以及生成測(cè)試和示例數(shù)據(jù)。在某些方面,AI可以幫助提高開(kāi)發(fā)人員的工作效率,減少重復(fù)性任務(wù)所花費(fèi)的時(shí)間,發(fā)現(xiàn)缺陷,并幫助經(jīng)驗(yàn)不足的開(kāi)發(fā)人員像經(jīng)驗(yàn)豐富的開(kāi)發(fā)人員一樣編寫(xiě)代碼。

但也有一個(gè)缺點(diǎn):AI是出了名的不可靠。您需要能夠檢查其工作。AI目前的工作具有明顯的信心,即使結(jié)果不正確,也使其結(jié)果看起來(lái)正確。因此,如果您不具備與您要求其處理的主題相關(guān)的技能、知識(shí)和經(jīng)驗(yàn),您將無(wú)法判斷它何時(shí)出錯(cuò)。

也就是說(shuō),AI可以為開(kāi)發(fā)、維護(hù)和測(cè)試代碼的過(guò)程提供巨大幫助。雖然并非所有事情都會(huì)受益,但在這個(gè)過(guò)程中的某些時(shí)刻,AI可以介入并減少所需工作量數(shù)小時(shí)甚至數(shù)天。

但這不僅僅與生成代碼有關(guān)。這也與生成的代碼有關(guān)。AI和軟件工程的融合將使開(kāi)發(fā)人員能夠創(chuàng)建更加智能、以用戶(hù)為中心的應(yīng)用程序,并且軟件用戶(hù)的體驗(yàn)將比傳統(tǒng)的手工編碼應(yīng)用程序更加靈活和動(dòng)態(tài)。

隨著時(shí)間的推移,我們將看到一些應(yīng)用程序基于實(shí)時(shí)用戶(hù)反饋而動(dòng)態(tài)發(fā)展,而一些軟件甚至可以在用戶(hù)遇到錯(cuò)誤和不兼容性之前先行解決它們。它永遠(yuǎn)不會(huì)是完美的,但它肯定有助于使軟件變得更好。

二、日常軟件任務(wù)中的AI:真正的好處是什么?

這一切聽(tīng)起來(lái)不錯(cuò),對(duì)吧?但讓我們歸根結(jié)底:軟件工程中的AI到底是什么,可以讓開(kāi)發(fā)人員有額外的時(shí)間看《神秘博士》、和狗玩耍,或者:睡覺(jué)?讓我們看看我們想到的五個(gè)領(lǐng)域。

1. 重復(fù)性任務(wù)的自動(dòng)化

有大量非??菰?、平凡的任務(wù)需要開(kāi)發(fā)人員的技能,但一點(diǎn)也不有趣。一個(gè)例子是幫助編寫(xiě)重復(fù)的代碼塊。

編碼員長(zhǎng)期以來(lái)都能夠設(shè)置他們的?IDE?來(lái)填寫(xiě)代碼塊,就好像它們是宏一樣,但AI可以學(xué)習(xí)代碼塊的模式和意圖,并幫助使用程序員或組織的風(fēng)格生成它們,而無(wú)需預(yù)先準(zhǔn)備。?–?對(duì)它們進(jìn)行編程。它可能會(huì)建議:“我以前見(jiàn)過(guò)你寫(xiě)過(guò)這樣的代碼。你想讓我為你構(gòu)建它嗎?”。

是的,這可以幫助開(kāi)發(fā)人員專(zhuān)注于更具創(chuàng)造性的工作,但它也可以在代碼之間引入一致性,而不需要開(kāi)發(fā)人員嘗試將代碼適應(yīng)限制性模式。

2. 預(yù)測(cè)分析和提高軟件可靠性

這是AI可以根據(jù)模式和趨勢(shì)預(yù)測(cè)代碼行為的地方。AI工具可用于預(yù)測(cè)系統(tǒng)過(guò)載,預(yù)測(cè)用戶(hù)行為,可能優(yōu)化用戶(hù)體驗(yàn),并對(duì)需要改進(jìn)的領(lǐng)域進(jìn)行預(yù)先維護(hù)。另一個(gè)巨大的好處是隨著運(yùn)行平臺(tái)的變化和更新而更新代碼以滿(mǎn)足最低要求。

除了節(jié)省編程時(shí)間之外,該軟件幾乎完全可以自行變得更加可靠和有彈性。

3. 加快開(kāi)發(fā)/測(cè)試周期

代碼總是需要測(cè)試。典型的循環(huán)包括一些編碼、一些測(cè)試、一些修復(fù)……沖洗、清洗、重復(fù)。然而,由于AI可能能夠預(yù)測(cè)軟件行為,因此它們甚至可以在測(cè)試開(kāi)始之前標(biāo)記錯(cuò)誤。

開(kāi)發(fā)環(huán)境長(zhǎng)期以來(lái)能夠標(biāo)記語(yǔ)法和類(lèi)型轉(zhuǎn)換錯(cuò)誤,這涉及語(yǔ)言結(jié)構(gòu)的知識(shí)。但是,如果開(kāi)發(fā)環(huán)境可以開(kāi)始標(biāo)記邏輯錯(cuò)誤,這可能會(huì)大大加快代碼交付速度并減少給定項(xiàng)目所需的修復(fù)階段的數(shù)量。

4. 降低軟件維護(hù)成本

大多數(shù)軟件項(xiàng)目一旦完成,就需要近乎持續(xù)的維護(hù)水平,以跟上發(fā)現(xiàn)的錯(cuò)誤、平臺(tái)的變化和性能問(wèn)題。我編寫(xiě)了一款有助于促進(jìn)非營(yíng)利捐贈(zèng)的軟件,我至少花費(fèi)了80%的時(shí)間來(lái)響應(yīng)用戶(hù)請(qǐng)求或添加新功能,而只是根據(jù)支付網(wǎng)關(guān)不斷變化的要求重寫(xiě)代碼。如果我可以減少任何吃力不討好且繁瑣的維護(hù)工作,就可以為用戶(hù)提供更多的價(jià)值。

5. 保持人的因素

盡管在開(kāi)發(fā)環(huán)境中添加了AI,但所有跡象都表明,在可預(yù)見(jiàn)的未來(lái),程序員——真正的人類(lèi)程序員——將創(chuàng)建大多數(shù)軟件。

減少時(shí)間和乏味當(dāng)然可以幫助開(kāi)發(fā)人員保持敏銳,但AI還可以監(jiān)控團(tuán)隊(duì)的整體績(jī)效,如果團(tuán)隊(duì)成員被過(guò)度利用、過(guò)度勞累或走向倦怠,則向經(jīng)理提供通知。它還可以幫助重新分配團(tuán)隊(duì)任務(wù),使每個(gè)成員都能發(fā)揮自己的優(yōu)勢(shì),并幫助進(jìn)行規(guī)劃和資源分配。

三、AI在軟件工程中的挑戰(zhàn)和局限性

隨著技術(shù)復(fù)雜性的增加,也存在一些問(wèn)題。在本節(jié)中,我將討論三個(gè)值得關(guān)注的領(lǐng)域。

1. 增加了復(fù)雜性和維護(hù)挑戰(zhàn)

這是我對(duì)軟件工程中的AI最大的擔(dān)憂(yōu):隨著我們?cè)谠絹?lái)越多的代碼中使用AI,我們對(duì)其工作原理的了解會(huì)越來(lái)越少。如果您曾經(jīng)從其他人那里繼承過(guò)一個(gè)項(xiàng)目,特別是當(dāng)該組織或開(kāi)發(fā)人員無(wú)法提供咨詢(xún)時(shí),您就會(huì)明白我的意思。

AI生成的內(nèi)容將比您和您的團(tuán)隊(duì)編寫(xiě)的代碼更像是一個(gè)黑匣子,而且風(fēng)險(xiǎn)在于,一旦生成,人類(lèi)將很難維護(hù)。不要陷入期望AI維護(hù)自己的軟件的陷阱。當(dāng)AI的代碼出現(xiàn)問(wèn)題時(shí),你和你的團(tuán)隊(duì)就需要找出問(wèn)題所在并進(jìn)行修復(fù)。

2. 數(shù)據(jù)依賴(lài)

AI依賴(lài)大量數(shù)據(jù)來(lái)創(chuàng)建模型。如果您不使用公共模型——例如,如果您正在研究公司獨(dú)特的領(lǐng)域?qū)I(yè)知識(shí)——可用于訓(xùn)練AI的總數(shù)據(jù)集可能不夠。

此外,AI系統(tǒng)會(huì)在廣泛的數(shù)據(jù)集上進(jìn)行訓(xùn)練,但并非所有數(shù)據(jù)都達(dá)到您想要完成的工作所需的質(zhì)量水平。

我不斷提醒人們,將AI引入軟件工程項(xiàng)目就像雇用一群有才華的暑期學(xué)生。他們可能很聰明,速度很快,但他們會(huì)時(shí)不時(shí)地丟球,他們離開(kāi)后你就會(huì)有爛攤子需要清理。雖然你的AI不會(huì)離開(kāi),但它會(huì)給你留下一些它無(wú)法解決的問(wèn)題。

本文由 @AI魔法學(xué)園 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來(lái)自Unsplash,基于CC0協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!