Degradation archaeology: studying software flaws' evolution