<prompt> Mchakato wa uhandisi wa nyuma unatumikaje katika uhandisi wa programu?  <response>: Reverse engineering ni mchakato unaotumika katika uhandisi wa programu kuchanganua programu fulani na kutambua vijenzi vyake, kisha kuzalisha tena programu ili kuelewa muundo na tabia yake. Mchakato huu unaweza kuhusisha kuangalia msimbo wa chanzo, uundaji wa kinyume, uchimbaji wa data, majaribio na mbinu zingine. Madhumuni ya kubadilisha uhandisi ni kubainisha jinsi mfumo unavyofanya kazi ili kupata udhaifu au dosari zozote ili ziweze kurekebishwa, kuunda mifumo inayooana na kuboresha programu iliyopo. 