Evolyutsiyasi


Download 209.93 Kb.
bet4/7
Sana28.12.2022
Hajmi209.93 Kb.
#1012981
1   2   3   4   5   6   7
Bog'liq
266-274

9.15-rasm
Reinjiniring

Avtomatlashtirilgan manba kodini aylantirish


Qo'lda o'zgartirishlar bilan avtomatlashtirilgan qayta qurish


Qayta qurish va me'moriy o'zgarishlar



yondashuvlari Ko'tarilgan xarajat

Qayta ishlab chiqilgan tizimni yangi dasturiy ta'minot bilan o'zaro ishlashi uchun siz 18-bobda muhokama qilinganidek, adapter xizmatlarini ishlab chiqishingiz kerak bo'lishi mumkin. Ular dasturiy ta'minot tizimining asl interfeyslarini yashiradi va boshqa komponentlar tomonidan ishlatilishi mumkin bo'lgan yangi, yaxshiroq tuzilgan interfeyslarni taqdim etadi. Ushbu eski tizimni o'rash jarayoni keng ko'lamli qayta foydalanish mumkin bo'lgan xizmatlarni ishlab chiqishning muhim usuli hisoblanadi.


Reinjiniring xarajatlari, albatta, bajarilgan ish hajmiga bog'liq. 9.15-rasmda ko'rsatilganidek, reinjiniringga yondashuvlar spektri mavjud. Xarajatlar chapdan o'ngga ko'payadi, shuning uchun manba kodini tarjima qilish eng arzon variant, me'moriy migratsiyaning bir qismi sifatida reinjiniring esa eng qimmat.

Dasturiy ta'minotni reinjiniring bilan bog'liq muammo shundaki, reinjiniring orqali tizimni qanchalik yaxshilash mumkinligiga amaliy cheklovlar mavjud. Masalan, funktsional yondashuv yordamida yozilgan tizimni ob'ektga yo'naltirilgan tizimga aylantirish mumkin emas.


Katta me'moriy o'zgarishlar yoki tizim ma'lumotlarini boshqarishni tubdan qayta tashkil etish avtomatik ravishda amalga oshirilmaydi, shuning uchun ular juda qimmat. Garchi qayta muhandislik texnik xizmat ko'rsatishni yaxshilashi mumkin bo'lsa-da, reinjiniring tizimi zamonaviy dasturiy ta'minot muhandisligi usullaridan foydalangan holda ishlab chiqilgan yangi tizim kabi texnik xizmat ko'rsata olmaydi.

      1. Refaktoring

Refaktoring - bu o'zgarishlar orqali degradatsiyani sekinlashtirish uchun dasturni takomillashtirish jarayoni. Bu dasturni tuzilishini yaxshilash, murakkabligini kamaytirish yoki tushunishni osonlashtirish uchun o'zgartirishni anglatadi. Refaktoring ba'zan ob'ektga yo'naltirilgan rivojlanish bilan cheklangan deb hisoblanadi, lekin printsiplar aslida har qanday rivojlanish yondashuviga qo'llanilishi mumkin.


Dasturni qayta tahrirlashda siz funksionallikni qo'shmasligingiz kerak, aksincha dasturni takomillashtirishga e'tibor qaratishingiz kerak.
Shuning uchun siz refaktoringni kelajakdagi o'zgarishlar muammolarini kamaytiradigan "profilaktik ta'mirlash" deb o'ylashingiz mumkin.
Refaktoring tezkor usullarning ajralmas qismidir, chunki bu usullar o'zgarishlarga asoslangan. Dastur sifati tezda yomonlashishi mumkin, shuning uchun tezkor ishlab chiquvchilar bu buzilishning oldini olish uchun tez-tez o'z dasturlarini qayta tiklaydilar. Agile usullarda regressiya testlariga e'tibor refaktoring orqali yangi xatolarni kiritish xavfini kamaytiradi. Kiritilgan har qanday xatolar aniqlanishi kerak, chunki ilgari muvaffaqiyatli sinovlar muvaffaqiyatsiz bo'lishi mumkin. Biroq, refaktoring boshqa "chaqqon harakatlar" ga bog'liq emas.



9.3 ÿ Dasturiy ta'minotga texnik xizmat ko'rsatish 279

Garchi reinjiniring va refaktoring ikkalasi ham dasturiy ta'minotni tushunish va o'zgartirishni osonlashtirish uchun mo'ljallangan bo'lsa-da, ular bir xil narsa emas. Qayta injiniring tizim bir muncha vaqt xizmat qilgandan keyin amalga oshiriladi va texnik xizmat ko'rsatish xarajatlari ortib bormoqda. Siz eskirgan tizimni qayta ishlash va qayta qurish uchun avtomatlashtirilgan vositalardan foydalanasiz, bu esa yanada qulayroq bo'lgan yangi tizimni yaratadi. Refaktoring - bu rivojlanish va evolyutsiya jarayonida uzluksiz takomillashtirish jarayoni. Bu tizimni saqlash xarajatlari va qiyinchiliklarini oshiradigan tuzilma va kod buzilishining oldini olish uchun mo'ljallangan.


Fowler va boshqalar. (Fowler va boshq. 1999) dasturning kodini yaxshilash mumkin bo'lgan stereotipik vaziyatlar (Fowler ularni "yomon hidlar" deb ataydi) mavjudligini taklif qiladi.
Refaktoring orqali yaxshilanishi mumkin bo'lgan yomon hidlarga misollar:



        1. Ikki nusxadagi kod Bir xil yoki juda o'xshash kod dasturning turli joylariga kiritilishi mumkin. Buni olib tashlash va kerak bo'lganda chaqiriladigan yagona usul yoki funksiya sifatida amalga oshirish mumkin.

        2. Uzoq usullar Agar usul juda uzun bo'lsa, uni bir qancha qisqaroq usullar sifatida qayta ishlab chiqish kerak.




        1. Switch (case) iboralari Bular ko'pincha takrorlashni o'z ichiga oladi, bunda almashtirish qiymat turiga bog'liq. Switch iboralari dastur atrofida tarqalgan bo'lishi mumkin. Ob'ektga yo'naltirilgan tillarda siz ko'pincha bir xil narsaga erishish uchun polimorfizmdan foydalanishingiz mumkin.


        1. Ma'lumotlarning to'planishi Ma'lumotlar to'plami ma'lumotlarning bir xil guruhi (sinflardagi maydonlar, usullardagi parametrlar) dasturning bir necha joylarida takrorlanganda yuzaga keladi. Ular ko'pincha barcha ma'lumotlarni o'z ichiga olgan ob'ekt bilan almashtirilishi mumkin.

        2. Spekulyativ umumiylik Bu ishlab chiquvchilar kelajakda kerak bo'lganda umumiylikni dasturga kiritganda yuzaga keladi. Bu ko'pincha oddiygina olib tashlanishi mumkin.

Fauler o'zining kitobida ham, veb-saytida ham yomon hidlarga qarshi kurashish uchun alohida yoki birgalikda ishlatilishi mumkin bo'lgan ba'zi ibtidoiy refaktoring o'zgarishlarini taklif qiladi. Ushbu o'zgarishlarga misollar: Extract usuli, bu erda takrorlashni olib tashlash va yangi usul yaratish; Testlar ketma-ketligini bitta test bilan almashtirgan shartli ifodani birlashtirish ; va “Pull up” usuli, bunda quyi sinflardagi oÿxshash usullarni superklassdagi bitta usul bilan almashtirasiz. Eclipse kabi interaktiv ishlab chiqish muhitlari odatda o'z muharrirlarida refaktoring yordamini o'z ichiga oladi.


Bu refaktoringni amalga oshirish uchun o'zgartirilishi kerak bo'lgan dasturning qaram qismlarini topishni osonlashtiradi.


Dasturni ishlab chiqish jarayonida amalga oshiriladigan refaktoring dasturni uzoq muddatli saqlash xarajatlarini kamaytirishning samarali usuli hisoblanadi. Biroq, agar siz tuzilmasi sezilarli darajada buzilgan texnik xizmat ko'rsatish dasturini o'z zimmangizga olsangiz, kodni yakka o'zi qayta tiklash deyarli imkonsiz bo'lishi mumkin. Bundan tashqari, qimmatroq va qiyinroq muammo bo'lishi mumkin bo'lgan dizaynni qayta ishlash haqida o'ylashingiz kerak bo'lishi mumkin. Dizaynni qayta tiklash tegishli dizayn naqshlarini aniqlashni (7-bobda muhokama qilingan) va mavjud kodni ushbu dizayn namunalarini amalga oshiradigan kod bilan almashtirishni o'z ichiga oladi (Kerievskiy 2004).
Machine Translated by Google


280 9-bob ÿ Dasturiy ta'minot evolyutsiyasi





Download 209.93 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling