Ko’pgina dasturiy ta’minot tizimlari vaqt o’tishi bilan o’zgaradi. Buning sabablari ko’p. O’zgarishlarni kutish (Ожидание изменений - anticipating change) dasturiy ta’minot muhandisligining harakatlantiruvchi kuchlaridan biridir. O’zgarishlarga tayyor turish dasturiy ta’minot muhandislariga moslanuvchan dasturiy ta’minotni yaratishga yordam beradi, ya’ni ular dasturiy mahsulotni bazaviy tuzilmani buzmasdan yaxshilashlari mumkin. Refactoring — bu mavjud kodlar majmuasini qayta tuzish, tashqi tuzilishini o’zgartirmasdan ichki tuzilishini o’zgartirish uchun ajoyib texnologiya.
Martin Fauler refaktoring qilish uchun to’rtta asosiy sababini aytib o’tdi. Refactoring dasturiy ta’minot dizaynini yaxshilaydi, dasturiy ta’minotni tushunishni osonlashtiradi, xatolarni topishga yordam beradi va dasturni tezroq bajarilishiga yordam beradi. Refactoring bizga quyidagi qulayliklarni beradi: dasturiy ta’minotning dizaynini yaxshilaydi, dasturiy ta’minotni tushunishni osonlashtiradi, dasturiy ta’minot xatolarni topishda va tezroq dasturlashda yordam beradi.
Refaktoring – bu dasturning tashqi xulq-atvoriga ta’sir qilmasdan ichki strukturasini o’zgartirish jarayonidir. Bunda asosiy maqsadlardan biri dastur ishini tushunishni osonlashtirishdir. O’zgarishlarni boshqarish dasturiy ta’minotni ishlab chiqishni boshqarishning boshqariladigan yondashuvini o’z ichiga oladi, shu bilan yetkazib beriladigan mahsulot bilan bog’liq muammolar xavfini kamaytiradi. Verifikatsiya uchun konstruksiyalash deganda dasturiy ta’minotni shunday yaratish tushuniladiki, xatolar dasturiy ta’minotni yozuvchi muhandis tomonidan hamda mustaqil sinov va operatsion faoliyat davomida osongina topilishi mumkin.
“Verifikatsiya uchun konstruksiyalash” dasturiy ta’minotni shunday qurish kerakligini anglatadiki, dasturiy ta’minotning o’zi nosozlik sababini topishga
yordam beradi, mustaqil sinov bosqichida ham turli tekshirish usullarini qo’llash uchun shaffof bo’ladi.