[OSy] Prubeh studie
martinec
martinec at d3s.mff.cuni.cz
Sun Dec 11 22:41:03 CET 2011
Dobry den,
shrnuju, jak probiha studie.
Prubezne vysledky:
Z doposud vyplnenych zaznamu (nedele vecer) je videt, ze nejcastejsi
chybou (30%) je zapomenuti napsat nejakou implementaci. Nicmene tento
druh chyb nevypada, ze by byl casove narocny na odladeni. Zabira zhruba
7% doby ladeni.
Myslim, ze vysoky vyskyt teto chyby se da vysvetlit tim, jakym zpusobem
probiha vyvoj. Semestralka OSu je totiz specificka tim, ze casto jeden
clen tymu implementuje kod, ktery jde primo spustit/testovat, a ostatni
clenove dlouho pisi kod bez moznosti integrace do stavajiciho kernelu.
Domnivam se, ze v teto situaci je caste, ze se zapomina na jednotlive
kousky implementace. Jestli si nekdo uvedomujete duvod, proc jsou ty
chyby tak caste, tak budu rad, kdyz mi to napisete.
Asi je prekvapive, ze nejdele trva odladit logicke/navrhove chyby (~45%
doby ladeni), prestoze je jich co do poctu okolo jedne petiny. Na
oduvodneni, proc tomu tak je, si zatim netroufam odhadnout.
Bohuzel absolutni hodnota prumerneho casu vyvoje semestralky neni
relevantni, protoze se vsichni neucastni studie rovnomerne. Mozna pro
Vas budou zajimave aspon statistiky tech, kteri se ucastni aktivne:
Median development time od zacatku studie: 23h 40m
Maximum tehoz: 70h
Minimum tehoz: 19h
Nejdelsi doba ladeni: 6h 30m, wrong assumption how software works; po
diskuzi s autorem jsem zjistil, ze si vyrobil heap corruption
Prumerna doba ladeni zatim asi nema smysl, protoze nekteri z vas se
poradne k ladeni asi jeste nedostali.
Metodologie:
Budu se snazit dostat se brzy k zaznamum, ktere jste oznacili k review.
Diskutoval jsem uz s dvema tymy, jakym zpusobem vyvijeji a zaznamenavaji
chyby. Shrnuju nejdulezitejsi poznatky:
- ladeni ve vice lidech
Kdyz ladite chybu ve vice lidech, tak kazdy udelejte zaznam o chybe. Cas
ladeni napiste kazdy jednotlive za sebe a v pricine chyby by jste se
meli shodovat. Zaskrtnete flag debugged by more people (ktery je zatim
ponekud nesystematicky v root cause zalozce).
- memory corruption
Po nejakem popremysleni se domnivam, ze tyto root cause budou asi velmi
ojedinele. Totiz malokdy bude asi heap corruption root cause problemu.
Ale myslim, ze pokud nejaka root cause zpusobi korupci pameti, tak to
snadno muze mit vyrazny vliv na dobu ladeni. Proto by se tato
"mezichyba" nemela zanedbavat. Udelal jsem tedy k root cause flag
"memory corruption related".
Prosim tedy, abyste jste pri zaznamenani uvazili, jestli napriklad heap
corruption je skutecny zdroj problemu. A v obou pripadech zaskrtnete
flag "memory corruption related".
- kdy nezaznamenavat
Mozna, ze jsem na cviceni rikal vagne, ze zaznamenavat se nema pri
implementaci. Plati obecne pravidlo, ze zaznamenavat se ma, kdyz se
program chova jinak nez jste si mysleli. Tedy napriklad pokud jste svuj
kod spustili (treba i na vyzkouseni funkcnosti kodu, ktery je ve stavu
uprostred implementace) a on se chova spatne/divne, tak uz objasnujete
neocekavane chovani.
Jako priklad kdy nezaznamenavat lze uvazovat situaci, kdy si kod po sobe
jeste jednou prectete nez ho spustite a najdete chybu. Kdyby jste nekdo
mel pocit, ze jste to delal spatne a ze vam nejake chyby utekly, tak mi
dejte vedet, abych si to poznacil.
Technicka podpora:
Nejaky cas mi zatim zabrala podpora MSIM debugger. Objevilo se nekolik
chyb a ty nejdulezitejsi snad brzo opravim. Debugger je ale v tuto
chvili pouzitelny a pokud vim, tak ho pouzivaji aspon dva lide.
Upravil jsem take webove rozhrani. Asi nejdulezitejsim pridavkem je
moznost zobrazit seznam vyplnenych zaznamu o chybach. Pripravuju jeste
pohled na detaily jednotlivych zaznamu.
S pozdravem,
Tomas Martinec
More information about the NSWI004
mailing list