Microsoft Word - EksperimentIzmenePrograma.doc

Слични документи
1 NOVO U MNG CENTRU!!! OVLADAJTE TEHNOLOGIJOM IZRADE JAVA EE APLIKACIJA KORIŠ C ENJEM ORACLE ADF-A O - Otkrijte brzinu razvoja aplikacija sa ADF-om -

Р273 Пројектовање база података Примери питања за колоквијум 1. Навести најважније моделе података кроз историју рачунарства до данас. 2. Објаснити ос

Microsoft PowerPoint - GR_MbIS_12_IDEF

PowerPoint Presentation

Inženjering informacionih sistema

Microsoft PowerPoint - Topic02 - Serbian.ppt

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Microsoft PowerPoint - Topic02 - Serbian.ppt

1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме

Microsoft Word - HIPOTEZA PROSTORA I VREMENA

Microsoft PowerPoint - Topic04-Serbian.ppt

PowerPoint Presentation

Principi softverskog inženjerstva O predmetu

The Contemporary Systems Development Project Landscape

Apache Maven Bojan Tomić

08 RSA1

Microsoft Word - Predmet 6-Primjena upravljackog racunovodstva maj 2019 RJESENJE

Slide 1

QFD METODA – PRIMER

IEP - Projekat 2018/2019

About the Professional Job Task Analysis Process

Implementacija

Projekat finansira Evropska unija Projektni zadatak Kreiranje i provođenje obuke za voditelje grupa uzajamne podrške (peer-support) za preživjele od m

Istraživanje turističkog tržišta

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa.

Microsoft PowerPoint - IS_G_predavanja_ [Compatibility Mode]

Slide 1

QUALITY AUSTRIA CENTER DRAVSKA 11, BEOGRAD /

Poglavlje 12 4Merenje, analiziranje i optimizovanje kampanja POGLAVLJE

Microsoft Word - Detaljne SMJERNICE za izradu projektnog zadatka 2016.docx

Otvoreni kôd u ucionicama

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

PRIS 00 Projektovanje informacionih sistema

РЕ-АКТИВ ДОО Франклин Рузвелт 43А, 1000 Скопље, Македонија Тел.: Факс: МБ: ПИБ: МК

Slide 1

Funkcije predavač: Nadežda Jakšić

Microsoft Word - SISTEM PROSTOR VREME

3b70dbff-879f eb-b067963c01b9.pdf

УНИВЕРЗИТЕТ У НОВОМ САДУ ОБРАЗАЦ 6

Razvoj IS

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Microsoft PowerPoint - 1. Zend_1 - Instalacija frameworka

Model podataka

Структура инкубаторских станица Референтни метаподаци према Euro SDMX структури метаподатака (ESMS) Републички завод за статистику Републике Српске 1.

PowerPoint Presentation

Писање и превођење модула

Veleučilište u Požegi Upute za pisanje seminarskog rada Akademska 2017./2018. godina 1

Microsoft Word - inicijalni test 2013 za sajt

CPHP_19

ZA MEDICINSKE USTANOVE INTELIGENTAN WI-FI d'.;,.. SISTEM ZA ZADOVOLJNE PACIJENTE I POSETIOCE

untitled

Program_digitalna_akademija_2019_F

D12_5 MNE_Dio 04 - Procjena EE Investicija F1

Recuva CERT.hr-PUBDOC

06 Poverljivost simetricnih algoritama1

Radio - televizija Federacije Bosne i Hercegovine Pravilnik o unutrašnjoj organizacionoj strukturi Radio - televizije Federacije Bosne i Hercegovine U

Microsoft PowerPoint - 6. CMS [Compatibility Mode]

PowerPoint Presentation

Microsoft Word - CAD sistemi

Prezentator: Nataša Dvoršak Umag, 20.listopad 2006

Microsoft Word - Opis Programa.docx

Slide 1

KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

(Microsoft PowerPoint Helji\346 i .pptx)

SELECT statement basic form

KAKO BRŽE DO POSLA ZA StrukovnOG inženjerA zaštite životne sredine

For Office Use

Научила сам на семинару Бесплатна виртуелна учионица и применила у пракси Виртуелна учионица у разредној настави Одмах по завршетку семинара сам напра

3 DNEVNI SEMINAR INTERNET POSLOVANJE TEME: 1. INTERNET POSLOVANJE 2. INTERNET MARKETING, INTERNET PR I ANALITIKA 3. UPRAVLJANJE SADRŽAJEM, DOMENE, HOS

Др Филип Мирић *, приказ Стручни сарадник за наставу Правног факултета, Универзитет у Нишу Рад примљен: Рад прихваћен: Миомира

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

Introduction to Programming

Sluzbeni glasnik opstine Knic broj 3/2009

m-intesa ZA KRETANJE BEZ GRANICA... INTESA SANPAOLO BANKA ZA UREĐAJE SVIJET MOGUĆEG.

Projekat finansira Evropska unija Regionalni program lokalne demokratije na Zapadnom Balkanu ReLOaD Empowered lives. Resilient nations. Informacije o

Testiranje Softvera

PowerPoint Presentation

CENOVNIK USLUGA maj godine

УПУТСТВО ЗА ПИСАЊЕ ИЗВЕШТАЈА О ПРИЈАВЉЕНИМ КАНДИДАТИМА НА

Informacijski sustav organizacije

На основу члана 15. и члана 59. став 2. Закона о Агенцији за борбу против корупције ( Службени гласник РС, бр. 97/08, 53/10, 66/11 - одлука УС, 67/13

Instalacija R-project softvera Univerzitet u Novom Sadu April 2018 Contents 1 Uvod 2 2 Instalacija R: Instalacija

Biz web hosting

Može li učenje tablice množenja biti zabavno?

Microsoft PowerPoint - Lab_step_nc2017.ppt [Compatibility Mode]

Slide 1

Odluka o oglasavanju

Број: /19-ГВ Градско веће града Београда, на седници одржаној 24. априла године, на основу члана 58. Закона о запосленима у аутономним по

KATALOG ZNANJA IZ INFORMATIKE

PONUDA

ekonferencije.com stručni i naučni skupovi, seminari i konferencije

UNION Banka DD Sarajevo Tel.: Dubrovačka br Sarajevo, Bosna i Hercegovina Fax:

ВИСОКА ТЕХНИЧКА ШКОЛА СТРУКОВНИХ СТУДИЈА У НОВОМ САДУ ИЗВЕШТАЈ СА ИНЖЕЊЕРСКЕ ПРАКСЕ Студент: Ментор: Коментор: Јожеф Чех, ИТ80С/14 Саша Спаић Кристина

Microsoft PowerPoint - Strukturni dijagrami, Gantogram - Planiranje [Compatibility Mode]

На основу члана 48. став 7. Закона о библиотечко-информационој делатности ("Службени гласник РС", број 52/11), Министар културе и информисања доноси П

Microsoft Word - IZVODI ZADACI _2.deo_

????????? ?????? ???????? ? ??????? ??????????????

ПРИЛОЗИ УЗ СТАНДАРД Мисија и визија Факултета 2. Анкетни лист за процену квалитета наставника и сарадника 3. Годишњи извештај о стању на Правном

Транскрипт:

Kako se (ne)izgubiti tokom zadatka za izmenu softvera (eksperimentalna analiza procesa razumevanja programa)

proučavanje kako programeri sprovode zadatak izmene funkcije autosave programa jedit Cilj je bio razumeti faktore uspešnog i efikasnog razumevanja programa, koji vode uspešno realizovanom zadatku izmene

Postavke eksperimenta JEdit editor napisan u Javi - 65000 linija koda, 301 klasa u 20 paketa Zadatak - Omogućiti korisniku da eksplicitno onemogući autosave funkcionalnost - Teškoću predstavlja činjenica da nema projektne dokumentacije (osim javadoc) i funkcionalnost se može razumeti samo inspekcijom programskog koda - Očekivana izmena: 60tak linija of modifikovanih, izbrisanih, ili dodatih u program, u 5 fajlova 5 programera je rešavalo zadatak

Tok eksperimenta Eksperiment je podeljen u tri faze: 1. Obuka za rad u Eclipse-u (30 minuta) 2. Proučavanje jedit programa (1 sat) - Dato: pisani material sa opisom zadatka, test primeri za osnovne zahteve, početna tačka za pregled koda - Dozvoljen pregled i izvršavanje koda jedit-a - Dozvoljeno beleženje pronađenih informacija - Restrikcije Bez upotrebe dibagera Bez menjanja koda

Tok eksperimenta 3. Izmena programa (2 sata) - Napraviti planirane izmene u programu - Uspešnost obavljenog zadatka ocenjivana je sa 8 test primera (koliko testova će uspešno proći) (na sajtu se može naći jedit_izmena_resenje.zip)

Generalna strategija rešavanja zadatka 1. Pregledati izvorni kod sistema 2. Locirati i razumeti kod koji je od značaja za zadatak Programski kod jedita je obiman Relevantan kod je razbacan u raznim paketima Programski kod od značaja za zadatak je deo nekog koda koji nije od značaja 3. Primeniti izmene 4. Pospremanje 5. Validacija promena, takođe u odnosu na ostale nepromenjene funkcije Možda ne znamo kako su te ostale funkcije radile pre promena

Šta čini zadatak teškim? Veliki programski kod - Odakle početi? Nedeskriptivna imena u programu Teškoće u razumevanju zahteva i njegovih podrazumevanih pretpostavki - Oskudno znanje o domenu (npr. dizajn tekst editora, koriršćeni java APIji) Dokumentacija neažurna, nepostojeća ili nedovoljna - Neki detalji nisu dokumentovani, jer je originalni programer pretpostavljao da su svima očigledni

Šta čini zadatak teškim? Potreba da se razumeju mnoge druge klase da bi se razumeo mali fragment koda Mogućnost dezorijentacije i zaboravljanja glavnog cilja istraživanja - Odakle sam došao na ovo? - Zašto sam otvorio ovu klasu? Statički pogled u odnosu na izvršavanje programa - Koji objekti se zaista kreiraju? - Koji metodi se zaista izvršavaju?

Robillarov Eksperiment Prikupljeni su sledeći podaci: - Izmenjeni artefakti - Video snimci ekrana svakog programera dok su rešavali zadatak Uspeh rešavanja zadatka je ocenjivan - Potrošenim vremenom - Kvalitetom izmena Rešenje je savršeno ako implementira korektno zahteve i uklapa se u postojeći dizajn jedita - Ne sme se npr. staviti konstanta tamo gde vrednost može da se pročita iz nekog property objekta

Rezultati eksperimenta

Rezultati eksperimenta 2 uspešno rešenje, 1 nekvalitetno, 2 neuspešna Uspešni programeri primenili su sistematski pristup tokom analiziranja programa i pre primene izmena: - Razumevanjem opšte strukture programa kroz usmerene pretrage - Potpunim planiranjem svih izmena unapred Neuspešni programeri sledili su nesistematski pristup površnim pregledom koda i pogađanjem sistematiski ne znači pregled liniju po liniju

Zapažanje 1 (Robillard) Neuspešni programeri su sve svoje modifikacije koda izvršili na jednom mestu, čak i kad je trebalorasporediti na više mesta u skladu sa postojećim dizajnom. - Jedan programer realizovao sve promene u jednom jedinom metodu Zaključak: Nedovoljno proučavanje dizajna pre obavljanja promene dovelo je do toga da se menja jedino ono mesto u kodu koje je bolje proučeno od strane programera.

Zapažanje 2 (Nepažnja tokom proučavanja programa). Programski segmenti koji su bili jasno relevantni za zadatak promene nisu uočeni kao takvi kada su prikazani slučajno. - Uspešni programeri više su koristili unakrsno referenciranje i pretragu po ključnim rečima - Neuspešni programeri više su koristili obično pregledanje i skrolovanje teksta Zaključak: Informacija relevantna za promenu se otkriva samo ako se traži eksplicitno.

Zapažanje 3 Uspešni programeri napravili su detaljan i kompletan plan pre sprovođenja izmene, a neuspešni to nisu uradili. Zaključak: Pravljenje detaljnog plana izmena omogućava programeru 1. da razmisli o obimu analiziranog koda i proceni da li je ta analiza bila dovoljna 2. da sprovede fokusiranu programsku pretragu da razradi rešenje

Zapažanje 4 Uspešni programeri nisu se vraćali na proučavanje istih metoda toliko često koliko neuspešni. Zaključci: - Programeri koji su u stanju da bolje procene važnost proučavanog metoda su efikasniji. - Programeri koji su u stanju da bolje razumeju i zapamte metode koje su istraživali su efikasniji - Programeri koji imaju teškoće da otkriju nove relevantne metode su manje efikasni

Zapažanje 5 Uspešni programeri uglavnom su obavljali strukturno vođene pretrage, a ne pretrage na osnovu intuicije ili usklađene sa dekompozicijom sistema po fajlovima Zaključci: Bez detaljnog poznavanja implementacije sistema, pogađanje koje metode treba proučiti (na osnovu imena/lokacije), nije tako efikasno kao obavljanje fokusirane pretrage. - Programeri treba da se odupru iskušenju da pokušaju da pogode koji je kod relevantan za promenu na osnovu nestrukturnih ključeva

Koje informacije su programeru potrebne kada vrši izmene koda? Rad autora Sillito et al. [2008] Sprovedene dve studije da se sazna koja pitanja programeri formulišu tokom zadatka izmena u kodu

Informacije potrebne programeru Nalaženje inicijalnih tačaka fokusa u kodu od značaja za zadatak - Npr, nalaženje klasa koje reprezentuju domenske koncepte - Nalaženje klasa koje odgovaraju UI elementima - Nalaženje klasa od značaja za posmatranu funkciju programa - Da bi našli informacije, progamer koristi Tekstualne pretrage Debugger Pregled (čitanje) koda

Informacije potrebne programeru Dalje sticanje znanja na bazi inicijalnih tačaka - Uključuje višestruke informacije o istom entitetu (koje smo ranije pomenuli) - Relacije nasleđivanja - Upotreba u drugim klasama - Pozivaoci/Pozvani određenog metoda (posebno u slučaju polimorfizma; dinamičko ponašanje) - Radi dolaska do ovih informacija, programmer koristi: Call stack viewer u debugger-u Pretragu korišćenja imena

Informacije potrebne programeru Izgradnja modela povezanih informacije o više entiteta - Moraju se razumeti višestruke relacije među entitetima - Moraju se razumeti opštiji koncepti (bit picture) - Tok kontrole I podataka prilikom poziva metoda - Problem kod pravljenja ovog modela je zaboravljanje ranije ostvarenih saznanja

Zapažanja o upotrebi alata Raspoloživi alati uglavnom daju odgovore na konkretna pitanja o jednom entitetu Nema puno podrške za pitanja o više entiteta niti za opštu sliku Među rezultatima upita koje daju alati ima mnogo irelevantnih

Statistika korišćenja navigacionih pogleda u Eclipse-u

Literatura M. Robillard, W. Coelho, and G. Murphy. How effective developers investigate source code: An exploratory study. IEEE Transactions on Software Engineering, 30 (12), 2004. J. Sillito, G. Murphy and K. De Volder. Questions programmers ask during software evolution tasks. IEEE Transactions on Software Engineering, 34(4), 2008. G. Murphy, M. Kersten, and L. Findlater. How are Java Software Developers using the Eclipse IDE?, IEEE Software, 2006.