Potiskanje meja v analitiki programske opreme | 2020

Vsebina:

Anonim

Analitika programske opreme je relativno novo področje raziskav, ki se je formalno razvila blizu začetka 21. stoletja. Vključuje analizo velike količine podatkov, ustvarjenih med življenjskim ciklom programske opreme, vključno z izvorno kodo, poročili o napakah in povratnimi informacijami uporabnikov. Z analizo teh podatkov lahko razvijalci programske opreme izboljšajo razvoj in delovanje programske opreme.

David Lo, docent na Singapurski univerzi za upravljanje informacijskih sistemov (SIS), je v zadnjih šestih letih objavil številne raziskovalne prispevke o tej temi.

"Moje delo je motivirano z visokimi stroški razvoja in vzdrževanja sistemov programske opreme in pomembnostjo zagotavljanja visoko kakovostnih sistemov," pravi profesorica Lo. "Potrebne so nove inovacije za oblikovanje orodij in tehnik, ki lahko pomagajo ohranjati nizke stroške razvoja in vzdrževanja programske opreme, hkrati pa ohraniti kakovost sistemov programske opreme visoko."

Navzkrižje podatkov o programski opremi, ki je pred kratkim postalo javno dostopno na spletu, ponuja odlične priložnosti za ustvarjanje prilagojenih rešitev, ki se lahko uporabijo za avtomatizacijo nalog programske opreme, pojasnjuje.

"Najbolj me vznemirja možnost ustvarjanja novih rešitev za reševanje konkretnih problemov," pravi.

Čeprav je programska oprema že nekaj časa del informacijskih sistemov, se še vedno sooča s številnimi težavami, ki zahtevajo rešitve.Področje se v zadnjih letih hitro razvija z uvedbo novih platform, procesov in programskih orodij za izdelavo programskih izdelkov. To ne ustvarja le novih izzivov, ampak tudi nove priložnosti, pojasnjuje profesor Lo.

"Sposobnost razumevanja in dela s temi izzivi in ​​oblikovalskih rešitev za njihovo obravnavo, ne samo, ampak s študenti in kolegi iz akademskih krogov in industrije po vsem svetu, naredi moje delo zanimivo in zadovoljivo," pravi.

Leta 2014 je profesor Lo objavil študijo, ki jo je izvedel z dvema kolegoma SMU, v kateri sta razvila algoritem za ustvarjanje iskalnika za izvorno kodo (ukaze, ki so sestavljeni v program). Pred tem so bile predlagane številne tehnike iskanja kode, vendar so bile odvisne od iskanja samo po besedilu. Vendar pa izvorna koda ni samo besedilo, ampak vsebuje elemente, ki so odvisni drug od drugega, da lahko program za izvedbo postopka izvajanja. Profesor Lo in njegovi sodelavci so razvili tehniko, imenovano AutoQuery, ki je programerjem omogočala iskanje po kodah z uporabo poizvedb o odvisnosti iz majhnih odrezkov kode. Tehnika je upoštevala strukturo kode, namesto da bi preprosto pogledala njeno besedilo.

Boljši načini za odpravljanje napak

Programi programske opreme pogosto vsebujejo napake ali napake, ki jih je treba odkriti in popraviti. Ta priročnik "razhroščevanje" običajno zahteva veliko dragocenega časa in sredstev. Da bi razvijalcem pomagali pri odpravljanju napak učinkoviteje, so bile predlagane rešitve za samodejno odpravljanje napak. Ena družina rešitev gre skozi informacije, ki so na voljo v poročilih o napakah. Druga gre skozi informacije, zbrane z izvajanjem niza testnih primerov. Profesor Lo navaja, da je do zdaj obstajala "manjkajoča povezava", ki preprečuje združevanje teh niti dela.

Profesor Lo je skupaj s sodelavci iz SMU razvil avtomatiziran pristop razhroščevanja, imenovan Adaptive Multimodal Bug Localization (AML). AML zbira nasvete za odpravljanje napak tako iz poročil o hroščih kot tudi iz testnih primerov in opravi statistično analizo za določanje elementov programa, ki verjetno vsebujejo napake. Poleg tega se AML prilagaja za različne vrste hroščev.

"AML lahko zmanjša ročni postopek iskanja, kje v velikem programu prebiva hrošč," pojasnjuje. "Čeprav večina preteklih študij prikazuje le uporabnost podobnih rešitev za majhne programe in umetne napake, lahko naš pristop avtomatizira postopek razhroščevanja za številne resnične napake, ki vplivajo na velike programe," pojasnjuje.

Prof. Lo in njegovi sodelavci so predstavili AML na 10. skupnem srečanju Evropske konference o programski opremi in simpoziju ACM SIGSOFT o temeljih programske opreme v Italiji. Trenutno nameravajo vzpostaviti stik z več industrijskimi partnerji, da bi AML naredili korak bližje k integraciji kot orodju za razvoj programske opreme.

Z multidisciplinarnim pristopom

Profesor Lo je navdušen nad multidisciplinarnim delom s sodelavci SMU. "Poleg kolegov, ki so se specializirali na podobnih raziskovalnih področjih, sodelujem s številnimi drugimi kolegi iz petih raziskovalnih področij na Šoli informacijskih sistemov," pravi. "Izkoristil sem njihovo raznoliko strokovno znanje za reševanje izzivov, ki jih drugače ne bi mogel rešiti sam, in za odkrivanje priložnosti, ki jih sicer ne bi opazil. Ta sodelovanja so privedla do številnih del, ki so bila objavljena na različnih mednarodnih konferencah in revij. "

Profesor Lo upa tudi, da se bo vključil v prihodnje sodelovanje s kolegi iz drugih šol v SMU. "Prepričan sem, da bo multidisciplinarni pristop privedel do celostnih raziskovalnih del, ki razširijo meje raziskav v novih in zanimivih smereh," pravi.

Trenutno na primer išče načine za optimizacijo sodelovalnih delovnih tokov v organizacijah programske opreme in v odprtokodnih skupinah. Takšen projekt bi zahteval strokovno znanje z različnih področij, kot so organizacijsko vedenje, psihologija in skupinsko vedenje, empirična analiza, uporabna statistika in teorija iger. Profesor Lo načrtuje tudi študij procesov reševanja problemov in miselnih nalog, ki jih izvajajo razvijalci programske opreme. Ta projekt bi imel koristi od strokovnega znanja njegovih kolegov iz Šole za družbene vede v psihologiji, pravi.

Poleg svojih raziskovalnih projektov, profesor Lo uživa v poučevanju različnih dodiplomskih in podiplomskih tečajev programske opreme v SMU. Nadzira dodiplomske projekte, ki zahtevajo, da skupine študentov razvijajo programske rešitve za prave stranke, prav tako tesno sodeluje s kandidati za doktorske študije SMU, da uresniči svoje raziskovalne ideje.

"SMU zagotavlja veliko podpore članom fakultete pri raziskovanju, na primer, potovalne štipendije za predstavitev prispevkov na konferencah, gostujoči profesorji in strojna podpora so nekatere od stvari, ki jih SMU zagotavlja za lažje raziskovalne dejavnosti." Raziskave so zagotovile veliko podpore za prispevke za raziskovalne podpore, knjižnica SMU pa je zagotovila veliko podpore pri zagotavljanju večje prepoznavnosti mojega dela. "

Eden od raziskovalnih ambicij profesorja Lo je razviti rešitev za analizo programske opreme na ravni interneta. Z analitiko programske opreme na ravni interneta je mogoče analizirati ogromne količine pasivnih podatkov o programski opremi, zakopanih v nešteto raznolikih spletnih repozitorijev, da bi ročno, skrbno in nagnjeno programsko inženirsko nalogo pretvorili v avtomatizirane dejavnosti, ki se lahko učinkovito izvajajo z visoko kakovostjo. To se doseže z nabiranjem modrosti množic, ki so se akumulirale skozi leta razvojnih prizadevanj tisočih razvijalcev, ki so skriti v teh pasivnih, porazdeljenih in raznovrstnih virih podatkov. "Trdno sem prepričan, da bo to prelomno, ker nobena obstoječa tehnika analize programske opreme ni prišla blizu, da bi na tem nivoju in raznolikosti razumeli podatke o programski opremi na celovit način," pravi profesorica Lo.