Automatiseeritud ning interaktiivne tööprotsess korrektse staatilise analüüsi kasutajasõbralikkuse parandamiseks
Nimi
Lembit Valgma
Kokkuvõte
Staatiline analüüs võimaldab tarkvara arendajal tuvastada koodis leiduvaid vigu
ning neid parandada enne, kui see jõuab reaalsesse kasutusse. Hoolimata sellest, et tänaseks päevaks on teada mitmeid häid analüüsimeetodeid, põhjustavad ennetatavad tarkvara vead siiski katkestusi kriitiliste rakenduste töös ning võimaldavad kolmandatel isikutel ligipääsu privaatsetele andmetele. Kuigi arendajad on teadlikud staatilise analüüsi kasutamise eelistest, takistavad mitmed asjaolud siiski selliste vahendite laialdasemat kasutuselevõttu. Üheks peamiseks probleemiks on anaüüsi vahendite keerukas ning tüütu
kasutatavus. Veelgi suuremat vastuseisu kohtavad korrektse (sound) staatilise anaüüsi vahendid, mis lubaksid potentsiaalselt kontrollida teatud tüüpi vigade puudumist programmis. Nende suureks miinuseks on võimalus vigade (valesti) tuvastamiseks ka osades tegelikult korrektsetes programmides.
Käesolevas magistritöös uuritakse, mis viisil kasutatakse staatilise analüüsi vahendeid ettevõtetes ning pakutakse välja, kuidas oleks mõistlik integreerida analüüsi tarkvara arenduskeskkonda (IDE) ning tarkvara ehitust automatiseerivasse töövahendisse (build tool). Interaktiivse analüüsi ja automatiseeritud analüüsi tugev integreeritus võib olla
oluline komponent, mis paneks arendajad neid töövahendeid kasutama.
Töö tulemusena valmis ka näidislahendus, mis integreerib lekke analüüsi (taint
analysis) IntelliJ ja Gradle töövahenditesse. Välja pakutud lahendus on sobilik lekke analüüsi jaoks, aga selle üldistamine keerulisemate analüüsimeetodite jaoks jääb lahtiseks probleemiks. Näidislahenduse arendus andis võimaluse uurida erinevaid lähenemisi kasutatavusele ning on kasulikuks esimeseks sammuks suurema lõppeesmärgi poole, milleks on kasutajasõbraliku korrektse staatilise analüüsivahendi loomine.
ning neid parandada enne, kui see jõuab reaalsesse kasutusse. Hoolimata sellest, et tänaseks päevaks on teada mitmeid häid analüüsimeetodeid, põhjustavad ennetatavad tarkvara vead siiski katkestusi kriitiliste rakenduste töös ning võimaldavad kolmandatel isikutel ligipääsu privaatsetele andmetele. Kuigi arendajad on teadlikud staatilise analüüsi kasutamise eelistest, takistavad mitmed asjaolud siiski selliste vahendite laialdasemat kasutuselevõttu. Üheks peamiseks probleemiks on anaüüsi vahendite keerukas ning tüütu
kasutatavus. Veelgi suuremat vastuseisu kohtavad korrektse (sound) staatilise anaüüsi vahendid, mis lubaksid potentsiaalselt kontrollida teatud tüüpi vigade puudumist programmis. Nende suureks miinuseks on võimalus vigade (valesti) tuvastamiseks ka osades tegelikult korrektsetes programmides.
Käesolevas magistritöös uuritakse, mis viisil kasutatakse staatilise analüüsi vahendeid ettevõtetes ning pakutakse välja, kuidas oleks mõistlik integreerida analüüsi tarkvara arenduskeskkonda (IDE) ning tarkvara ehitust automatiseerivasse töövahendisse (build tool). Interaktiivse analüüsi ja automatiseeritud analüüsi tugev integreeritus võib olla
oluline komponent, mis paneks arendajad neid töövahendeid kasutama.
Töö tulemusena valmis ka näidislahendus, mis integreerib lekke analüüsi (taint
analysis) IntelliJ ja Gradle töövahenditesse. Välja pakutud lahendus on sobilik lekke analüüsi jaoks, aga selle üldistamine keerulisemate analüüsimeetodite jaoks jääb lahtiseks probleemiks. Näidislahenduse arendus andis võimaluse uurida erinevaid lähenemisi kasutatavusele ning on kasulikuks esimeseks sammuks suurema lõppeesmärgi poole, milleks on kasutajasõbraliku korrektse staatilise analüüsivahendi loomine.
Lõputöö keel
inglise
Lõputöö tüüp
Magister - Informaatika
Juhendaja(d)
Vesal Vojdani
Kaitsmise aasta
2018