Moslashuvchan metodologiyalar talablarning kutilayotgan toʻliqsizligini va ularning doimiy oʻzgarishini bartaraf etishga qaratilgan. Talablar o'zgarganda, ishlab chiqish guruhi ham o'zgaradi. Agile rivojlanish bilan shug'ullanadigan jamoa loyihaning kelajagini bashorat qilishda qiynaladi. Faqat yaqin kelajak uchun aniq reja mavjud. Uzoqroq rejalar faqat loyiha maqsadlari, kutilayotgan xarajatlar va natijalar to'g'risidagi deklaratsiyalar sifatida mavjud.
Kaskadli rivojlanish yoki sharshara modeli - dasturiy ta'minotni ishlab chiqish jarayonining modeli bo'lib, unda ishlab chiqish jarayoni talablarni tahlil qilish, loyihalash, amalga oshirish, sinovdan o'tkazish, integratsiya va qo'llab-quvvatlash bosqichlaridan ketma-ket o'tadigan oqimga o'xshaydi.
Kaskadli yondashuvning asosiy xususiyati: keyingi bosqichga o'tish joriy bosqichdagi ishlar to'liq yakunlangandan keyingina amalga oshiriladi va o'tgan bosqichlarga qaytish yo'q.. Har bir bosqich keyingi bosqich uchun kirish bo'lib xizmat qiladigan ba'zi natijalar bilan tugaydi (1-rasm).
Guruch. 1. Kaskadli hayot sikli modeli.
Har bir bosqich boshqa ishlab chiqish guruhi tomonidan davom ettirish uchun ishlab chiqish uchun etarli bo'lgan hujjatlar to'plamini chiqarish bilan yakunlanadi. Ushbu yondashuv bilan ishlab chiqish sifatining mezoni texnik topshiriqlarning spetsifikatsiyalarini bajarishning aniqligi hisoblanadi.
Kaskad usulidan foydalanishning afzalliklari:
Har bir bosqichda to'liqlik va izchillik talablariga javob beradigan loyiha hujjatlarining to'liq to'plami shakllantiriladi;
Mantiqiy ketma-ketlikda amalga oshirilgan ish bosqichlari barcha ishlarni tugatish vaqtini va tegishli xarajatlarni rejalashtirish imkonini beradi.
Kaskadli yondashuv elektron axborot tizimlarini qurishda o'zini namoyon qildi, ular uchun ishlab chiquvchilarga ularni iloji boricha texnik jihatdan amalga oshirish erkinligini berish uchun rivojlanishning boshida barcha talablarni aniq va to'liq shakllantirish mumkin.
Shu bilan birga, bu yondashuv bir qator kamchiliklarga ega, birinchi navbatda, dasturiy ta'minotni yaratishning haqiqiy jarayoni hech qachon bunday qattiq sxemaga to'liq mos kelmasligi bilan bog'liq. Dasturiy ta'minotni yaratish jarayoni, qoida tariqasida, iterativ xarakterga ega: keyingi bosqich natijalari ko'pincha oldingi bosqichlarda ishlab chiqilgan dizayn qarorlarida o'zgarishlarga olib keladi. Shunday qilib, avvalgi bosqichlarga qaytish va ilgari qabul qilingan qarorlarni aniqlashtirish yoki qayta ko'rib chiqishga doimiy ehtiyoj bor (2-rasm). Tasvirlangan sxemani alohida modelga - oraliq boshqaruvga ega modelga kiritish mumkin, bunda bosqichlararo sozlash kaskad modeliga nisbatan ko'proq ishonchlilikni ta'minlaydi, garchi ular butun rivojlanish davrini oshiradi.
Sharshara modelining asosiy kamchiliklari - natijalarni olishda sezilarli kechikish va natijada foydalanuvchilarning o'zgaruvchan ehtiyojlarini qondirmaydigan tizimni yaratish xavfi yuqori. Bu ikki sababga bog'liq:
Foydalanuvchilar o'zlarining barcha talablarini darhol aytib bera olmaydilar va rivojlanish jarayonida ular qanday o'zgarishini oldindan ko'ra olmaydilar;
Rivojlanish jarayonida tashqi muhitda tizimga qo'yiladigan talablarga ta'sir qiladigan o'zgarishlar bo'lishi mumkin.
Guruch. 2. Amalda kaskadli hayot sikli modeli.
Kaskad yondashuvi doirasida ishlab chiqilayotgan mahsulotga qo'yiladigan talablar uni yaratishning butun vaqti uchun texnik topshiriq shaklida belgilanadi va olingan natijalar faqat har bir ishlab chiqarilgandan keyin rejalashtirilgan nuqtalarda foydalanuvchilar bilan kelishiladi. bosqich (agar ular texnik topshiriqda ko'rsatilgan talablarga ta'sir qilmasa, natijalarni foydalanuvchilarning sharhlariga ko'ra moslashtirish mumkin). Shunday qilib, foydalanuvchilar tizimdagi ishlar to'liq yakunlangandan keyingina muhim sharhlar berishlari mumkin. Foydalanuvchilar o'z ehtiyojlariga javob bermaydigan tizimni olishlari mumkin. Natijada, boshlash kerak yangi loyiha kim ham xuddi shunday taqdirga duchor bo'lishi mumkin.
Ushbu muammolarni bartaraf etish uchun 1980-yillarning o'rtalarida spiral hayot tsikli modeli taklif qilingan (3-rasm).
Guruch. 3. Spiral (iterativ) hayot aylanish modeli.
Uning asosiy xususiyati quyidagilardan iborat: amaliy dasturiy ta'minot palapartishlik yondashuvida bo'lgani kabi darhol yaratilmaydi, lekin prototiplash usuli yordamida qismlarga bo'linadi..
ostida prototip ishlab chiqilayotgan dasturiy ta'minotning individual funktsiyalari va tashqi interfeyslarini amalga oshiradigan faol dasturiy ta'minot komponentiga ishora qiladi. Prototiplarni yaratish bir nechta iteratsiyalarda yoki spiralning burilishlarida amalga oshiriladi. Har bir iteratsiya dasturiy ta'minotning bir qismi yoki versiyasini yaratishga mos keladi, unda loyihaning maqsadlari va xususiyatlari ko'rsatiladi, olingan natijalarning sifati baholanadi va keyingi iteratsiya ishi rejalashtirilgan. Har bir iteratsiyada loyiha muddati va narxidan oshib ketish xavfi boshqa iteratsiya zarurligini, tizim talablarini tushunishning to'liqlik va aniqlik darajasini va loyihani tugatish kerakligini aniqlash uchun sinchkovlik bilan baholanadi.
Spiral model foydalanuvchilar va ishlab chiquvchilarni dastlabki bosqichda tizim talablarini to'g'ri va to'liq shakllantirish zaruratidan xalos qiladi, chunki ular har bir iteratsiyada takomillashtiriladi. Shunday qilib, loyihaning tafsilotlari chuqurlashtiriladi va izchil konkretlashtiriladi va natijada amalga oshirishga olib keladigan oqilona variant tanlanadi.
Spiral model evolyutsion dizayn strategiyasining klassik namunasidir. Spiral model (Barri Boem, 1988) klassik hayot tsikli va tartibining eng yaxshi xususiyatlariga asoslanadi, unga yangi element qo'shiladi - ilgari mavjud bo'lmagan xavf tahlili.
Spiral model spiralning alohida sektorlari tomonidan ifodalanadigan to'rtta faoliyatni belgilaydi:
1. Rejalashtirish - maqsadlar, variantlar va cheklovlarni aniqlash.
2. Risk tahlili - variantlarni tahlil qilish va xavfni tan olish/tanlash.
3. Muhandislik - keyingi darajadagi mahsulotni ishlab chiqish.
4. Baholash - buyurtmachi tomonidan joriy dizayn natijalarini baholash.
Spiral modelining integral jihati spiralning radial o'lchamini ko'rib chiqishda aniq ko'rinadi. Spiral bo'ylab har bir iteratsiya bilan (markazdan periferiyaga o'tish), ko'proq va ko'proq to'liq versiyalari ON.
Spiralning birinchi bosqichida dastlabki maqsadlar, variantlar va cheklovlar aniqlanadi, xavf tan olinadi va tahlil qilinadi. Agar xavf tahlili talablarning noaniqligini ko'rsatsa, prototiplash (dizayn kvadrantida qo'llaniladi) ishlab chiquvchi va mijozga yordam beradi. Modellashtirish muammoli va aniq talablarni yanada aniqlash uchun ishlatilishi mumkin. Buyurtmachi muhandislik (loyihalash) ishlarini baholaydi va o'zgartirishlar bo'yicha takliflar beradi. Rejalashtirish va xavflarni tahlil qilishning keyingi bosqichi mijozlar takliflariga asoslanadi. Spiraldagi har bir tsiklda xavfni tahlil qilish natijalari "davom eting, davom etmang" shaklida shakllanadi. Agar xavf juda katta bo'lsa, loyiha to'xtatilishi mumkin.
Ko'pgina hollarda, spiral davom etadi va har bir qadam ishlab chiquvchilarni umumiy tizim modeliga undaydi.
Takroriy usulda yetishmayotgan ishni keyingi iteratsiyada bajarish mumkin. Asosiy vazifa - tizim foydalanuvchilariga imkon qadar tezroq ishlashga yaroqli mahsulotni ko'rsatish va shu bilan talablarni aniqlashtirish va to'ldirish jarayonini faollashtirish.
Tizimga qo'yiladigan talablar to'liq aniqlangan hollarda, spiral model loyihaning yakuniy bosqichlarida kaskadli yondashuvni istisno qilmaydi.
Spiral tsiklning asosiy muammosi keyingi bosqichga o'tish momentini aniqlashdir. Uni hal qilish uchun hayot tsiklining har bir bosqichiga vaqt cheklovlarini kiritish kerak. O'tish barcha rejalashtirilgan ishlar bajarilmasa ham, rejaga muvofiq davom etadi. Reja oldingi loyihalardan olingan statistik ma'lumotlar va ishlab chiquvchilarning shaxsiy tajribasi asosida tuziladi.
Spiral modelning afzalliklari:
Eng real (evolyutsiya shaklida) dasturiy ta'minotni ishlab chiqishni aks ettiradi;
Rivojlanish evolyutsiyasining har bir bosqichida xavfni aniq hisobga olish imkonini beradi;
Tizimli yondashuv bosqichini takroriy rivojlanish strukturasiga kiritadi;
Riskni kamaytirish va dasturiy mahsulotni yaxshilash uchun simulyatsiyadan foydalanadi.
Spiral modelning kamchiliklari:
Yangilik (modelning samaradorligi bo'yicha etarli statistik ma'lumotlar yo'q);
Xaridorga talablarning ortishi;
Rivojlanish vaqtini kuzatish va boshqarishdagi qiyinchiliklar.
Bugungi kunga kelib, quyidagi iterativ dasturiy ta'minotni ishlab chiqish metodologiyalarini ajratib ko'rsatish mumkin:
Ratsional yagona jarayon (RUP)
Moslashuvchan rivojlanish metodologiyalari (SCRUM, KANBAN, DSDM, MSF, ALM, XP)