DSI 2019 | 16. – 17. april 2019 Možnosti vpeljave umetne inteligence v proces razvoja programske opreme Mitja Gradišnik 1 , Sašo Karakatič 1 , Goran Mauša 2 , Tina Beranič 1 , Marjan Heričko 1 Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko 1 Univerza v Reki, Fakulteta za inženirstvo 2 {mitja.gradisnik, saso.karakatic, tina.beranic, marjan.hericko}@um.si, [email protected]
21
Embed
Možnosti vpeljave umetne inteligence v proces razvoja ... · • Applitools • zaznava nepravilnosti na uporabniškemu vmesniku z emulacija človeških oči • zaznava napak v
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
DSI 2019 | 16. – 17. april 2019
Možnosti vpeljave umetne inteligence v proces razvoja programske opreme
Mitja Gradišnik1, Sašo Karakatič1, Goran Mauša2, Tina Beranič1, Marjan Heričko1
Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko1
DSI 2019 | Možnosti vpeljave umetne inteligence v proces razvoja programske opreme
10 | 16. april 2019
Možnosti vpeljave umetne inteligence v proces razvoja programske opreme
DSI 2019 | Možnosti vpeljave umetne inteligence v proces razvoja programske opreme
11 | 16. april 2019
Podpora analizi in zajemu zahtev
Proces analize zahtev:
• lahko traja več mesecev ali celo let
• cilj skrajšati, poenostaviti in proces narediti natančnejšega
• možnosti vpeljave obdelave naravnega jezika
Konkretne rešitve
• prototipi, ki iz opisa sistema v naravnem jeziku izluščijo zahteve in jih ustrezno klasificira.
• Bookmark AiDA (AI design assistent) – razume uporabnikove želje in jih pretvori v prototip prilagojene spletne rešitve – cilj spletna stran v 2 minutah
DSI 2019 | Možnosti vpeljave umetne inteligence v proces razvoja programske opreme
12 | 16. april 2019
Podpora načrtovanju in implementaciji rešitev
Osrednja faza razvoja programske opreme
• pretvorba zahtev naročnikov v izvršljivo programsko kode
• miselno zahteven proces
Razpoložljiva orodja:
• Pixel2Code – z uporabo nevronskih mrež pretvori sliko uporabniškega
vmesnika v izvršljivo programsko kodo (Android in HTML+CSS)
• Sketch2Code – z uporabo nevronskih mrež pretvori skico uporabniškega
vmesnika v HTML+CSS programsko kode.
• Kaj se skriva prod pokrovom: troslojne sistem umetne inteligence, ki se uči iz
repozitorijev programske kode.
DSI 2019 | Možnosti vpeljave umetne inteligence v proces razvoja programske opreme
13 | 16. april 2019
Podpora načrtovanju in implementaciji rešitev
Primer: rešitev Sketch2Code
DSI 2019 | Možnosti vpeljave umetne inteligence v proces razvoja programske opreme
14 | 16. april 2019
Podpora načrtovanju in implementaciji rešitev
XHTML:
• PSD v HTML5
• PSD v (X)HTML CSS
• PSD v e-novice
CMS:
• PSD v Wordpress
• PDS to Drupal
• PSD v Joomla
DSI 2019 | Možnosti vpeljave umetne inteligence v proces razvoja programske opreme
Primer: rešitev Pixel2Code
15 | 16. april 2019
Podpora načrtovanju in implementaciji rešitev
Razumevanje programske kode:
• komentarji sprememb kode – sistem za avtomatsko generiranje komentarjev
spremembe programske kode:
• učenje na javnih repozitorijih programske kode (npr. GitHub)
• opisovanje programske kode – generiranje krajšega opisa programske
kode
• opisi pomembni za pripravo ustrezne dokumentacije sistema
• uporaba modeliranja tematik in n-gramov
• prototip s podporo jezikoma C# in SQL
DSI 2019 | Možnosti vpeljave umetne inteligence v proces razvoja programske opreme
16 | 16. april 2019
Podpora načrtovanju in implementaciji rešitev
Pametni asistenti razvijalca:
Naloga pametnega asistenta:
• neprestano spremljanje razvijalca pri kodiranju
• priporočila glede programske kode (priporočila, prakse, vzorci)
• primeri programske kode v realnem času
Primeri obstoječih rešitev:
• Codota – pametni asistent za programski jezik Java
• Kite – pametni asistent za programski jezik Python
DSI 2019 | Možnosti vpeljave umetne inteligence v proces razvoja programske opreme
17 | 16. april 2019
Podpora načrtovanju in implementaciji rešitev
DSI 2019 | Možnosti vpeljave umetne inteligence v proces razvoja programske opreme
Primer: rešitev Codota for Java
18 | 16. april 2019
Podpora načrtovanju in implementaciji rešitev
Iskanje po kodi v naravnem jeziku:
Github Semantic Search
• dvojno kodiranje v vektorsko obliko
• iskanje na podlagi primerjave obeh
vektorjev
• mogoče najti programsko kodo, ki
najbolje ustreza iskalnemu nizu
DSI 2019 | Možnosti vpeljave umetne inteligence v proces razvoja programske opreme
19 | 16. april 2019
Podpora testiranju programskih rešitev
Testiranje programskih rešitev:• ključno za zagotavljanje ustrezne kakovosti programskih rešitev