Dasturiy ta'minotning hayot aylanishi tushunchasi. Dasturiy ta'minot tizimlarining hayot aylanishi

Izoh.

Kirish.

1. Dasturiy ta'minotning hayot aylanishi

Kirish.

Riley dasturlash jarayoni bosqichlari

Kirish.

1.1.1. Muammoni shakllantirish.

1.1.2. Yechim dizayni.

1.1.3. Algoritm kodlash.

1.1.4. Dasturni qo'llab-quvvatlash.

1.1.5. Dasturiy ta'minot hujjatlari.

1.1-band bo'yicha xulosa

1.2. Lemanga ko'ra LCPO ni aniqlash.

Kirish.

1.2.1 Tizim ta'rifi.

1.2.2. Amalga oshirish.

1.2.3. Xizmat.

1.2-band bo'yicha xulosa.

1.3. Boem bo'yicha LCPO ning bosqichlari va ishi

1.3.1. Kaskad modeli.

1.3.2. Kaskad modelining iqtisodiy asoslanishi.

1.3.3. Kaskad modelini takomillashtirish.

1.3.4. Hayotiy tsikl fazalarini aniqlash.

1.3.5. Loyiha ustidagi asosiy ish.

Adabiyot.

Kirish

Kompyuterlarning sanoatda qo'llanilishi va dasturlarga bo'lgan talabning ortib borishi sezilarli darajada oshirish uchun favqulodda muammolarni keltirib chiqardi dasturiy ta'minotni ishlab chiqish samaradorligi, rejalashtirish va dasturlarni loyihalashning sanoat usullarini ishlab chiqish, tashkiliy, texnik, texnik, iqtisodiy va ijtimoiy-psixologik texnika, naqsh va usullarni moddiy ishlab chiqarish sohasidan kompyuterdan foydalanish sohasiga o'tkazish. Kompleks yondashuv U dasturiy ta'minotni ishlab chiqish, ulardan foydalanish va texnik xizmat ko'rsatish jarayonlariga bir qator dolzarb muammolarni qo'ydi, ularning echimi dasturni ishlab chiqishdagi to'siqlarni bartaraf qiladi, ishni yakunlash vaqtini qisqartiradi, mavjud dasturlarni tanlash va moslashtirishni takomillashtirishga yordam beradi. o'rnatilgan kompyuterlar bilan tizimlarning taqdiri.

Katta dasturiy ta'minot loyihalarini ishlab chiqish amaliyotida ko'pincha yo'q yagona yondashuv dasturiy ta'minotni ishlab chiqish samaradorligini oshirishga to'sqinlik qiladigan mehnat xarajatlari, ish muddatlari va moddiy xarajatlarni baholashga va pirovardida, dasturiy ta'minotning hayot aylanishini samarali boshqarishga to'sqinlik qiladi. Har qanday turdagi dastur mahsulotga aylanganligi sababli (ehtimol, o'quv, prototip dasturlari bundan mustasno), uni ishlab chiqarishga yondashuv ko'p jihatdan sanoat mahsulotlarini ishlab chiqarishga bo'lgan yondashuvga o'xshash bo'lishi kerak va dasturni loyihalash masalalari juda muhim bo'ladi. Bu fikr B.V. kitobining markazida joylashgan. Boehm "Dasturiy ta'minot muhandisligi", biz ushbu kurs ishini yozishda foydalanganmiz. Ushbu kitobda dasturiy ta'minot dizayni dasturiy mahsulot uchun dizayn yaratish jarayonini nazarda tutadi.

1 Dasturiy ta'minotning hayot aylanishi

KIRISH

LCPO uzluksiz jarayon bo'lib, u dasturiy ta'minotni yaratish zarurati to'g'risida qaror qabul qilingan paytdan boshlab boshlanadi va u xizmatdan butunlay olib tashlangan paytda tugaydi.

Dasturiy ta'minotning hayot tsiklining (SLC) bosqichlari va faoliyatini, dasturlash jarayonining bosqichlarini, kaskad va spiral modellarni aniqlashning bir necha yondashuvlari mavjud. Ammo ularning barchasi umumiy fundamental komponentlarni o'z ichiga oladi: muammo bayoni, yechim dizayni, amalga oshirish, texnik xizmat ko'rsatish.

Eng mashhur va to'liq, ehtimol, sakkiz bosqichni o'z ichiga olgan Boemga ko'ra hayot aylanish jarayonining tuzilishi. Kelgusida batafsilroq taqdim etiladi.

Mumkin variantlardan biri Lehmanga ko'ra yuqori darajadagi tavsif bo'lishi mumkin, u uchta asosiy bosqichni o'z ichiga oladi va eng umumiy holatda hayot tsiklining tavsifini ifodalaydi.

Va xilma-xillik uchun biz D. Riley tomonidan "Modul-2 tilidan foydalanish" kitobida taqdim etilgan dasturlash jarayonining bosqichlarini taqdim etamiz. Bu fikr, menimcha, juda oddiy va tanish, keling, bundan boshlaylik.

1.1 Riley dasturlash jarayonidagi qadamlar

Kirish

Dasturlash jarayoni to'rt bosqichni o'z ichiga oladi (1-rasm):

muammoning bayoni, ya'ni. dastur qanday vazifani bajarishi kerakligi haqida etarli tushunchaga ega bo'lish;

allaqachon bayon qilingan muammoning yechimini loyihalash (umuman olganda, bunday yechim yakuniy dasturga qaraganda kamroq rasmiy);

dasturni kodlash, ya'ni ishlab chiqilgan yechimni mashinada bajarilishi mumkin bo'lgan dasturga tarjima qilish;

dasturni qo'llab-quvvatlash, ya'ni. dasturdagi muammolarni bartaraf etish va yangi xususiyatlarni qo'shishning davom etayotgan jarayoni.

Guruch. 1.To'rtta dasturlash bosqichi.

Dasturlash qachondan boshlanadi foydalanuvchi, ya'ni. muammoni hal qilish uchun dasturga muhtoj bo'lgan kishi muammoni aytadi tizim tahlilchisi. Foydalanuvchi va tizim tahlilchisi birgalikda muammo bayonini aniqlaydilar. Keyin ikkinchisi uzatiladi algoritmchi, yechimni loyihalash uchun kim mas'uldir. Yechim (yoki algoritm) amallar ketma-ketligini ifodalaydi, ularning bajarilishi muammoni hal qilishga olib keladi. Algoritm ko'pincha mashinada bajarish uchun mos emasligi sababli, uni mashina dasturiga tarjima qilish kerak. Ushbu operatsiya kodlovchi tomonidan amalga oshiriladi. Ta'minotchi dasturga keyingi o'zgartirishlar uchun javobgardir. dasturchi. Va tizim tahlilchisi, algoritmist, kodlovchi va unga hamroh bo'lgan dasturchi - bularning barchasi dasturchilar.

Katta dasturiy ta'minot loyihasida foydalanuvchilar, tizim tahlilchilari va algoritmistlar soni sezilarli bo'lishi mumkin. Bundan tashqari, kutilmagan holatlar tufayli oldingi bosqichlarga qaytish kerak bo'lishi mumkin. Bularning barchasi ehtiyotkorlik bilan dasturiy ta'minot dizayni uchun qo'shimcha dalil bo'lib xizmat qiladi: har bir qadamning natijalari to'liq, aniq va tushunarli bo'lishi kerak.

1.1.1 Muammo bayoni

Dasturlashning eng muhim bosqichlaridan biri bu muammoni aniqlashdir. U foydalanuvchi va dasturchi(lar) o'rtasidagi shartnoma vazifasini bajaradi. Qonuniy jihatdan noto'g'ri tuzilgan shartnoma kabi, yomon yozilgan muammo bayonoti foydasiz. Yaxshi muammo bayoni bilan foydalanuvchi ham, dasturchi ham bajarilishi kerak bo'lgan vazifani aniq va aniq ifodalaydi, ya'ni. bunda foydalanuvchining ham, dasturchining ham manfaatlari hisobga olinadi. Foydalanuvchi nima qila olishi haqidagi bilimga asoslanib, hali yaratilmagan dasturiy ta'minotdan foydalanishni rejalashtirishi mumkin. Muammoning yaxshi bayoni uning yechimini shakllantirish uchun asos bo'lib xizmat qiladi.

Muammoni shakllantirish (dastur spetsifikatsiyasi); mohiyatan ma'lum bir dastur bajarilganda sodir bo'ladigan hodisalarning aniq, to'liq va tushunarli tavsifini bildiradi. Foydalanuvchi odatda kompyuterga qora quti sifatida qaraydi: uning uchun kompyuter qanday ishlashi muhim emas, lekin muhimi foydalanuvchini qiziqtiradigan kompyuter nima qila olishi muhim. Bunda asosiy e'tibor insonning mashina bilan o'zaro ta'siriga qaratiladi.

Yaxshi muammo bayonining xususiyatlari:

Aniqlik, ya'ni. har qanday noaniqlikni bartaraf etish. Har qanday kirish uchun dasturning chiqishi qanday bo'lishi haqida hech qanday savol tug'ilmasligi kerak.

To'liqlik, ya'ni. berilgan kirish uchun barcha variantlarni, shu jumladan noto'g'ri yoki ko'zda tutilmagan kiritishni ko'rib chiqish va tegishli chiqishni aniqlash.

Aniqlik, ya'ni. u foydalanuvchi uchun ham, tizim tahlilchisi uchun ham tushunarli bo'lishi kerak, chunki muammo bayoni ular o'rtasidagi yagona shartnomadir.

Ko'pincha aniqlik, to'liqlik va aniqlik talablari ziddiyatli. Shunday qilib, ko'pgina huquqiy hujjatlarni tushunish qiyin, chunki ular rasmiy tilda yozilgan, bu esa ba'zi qoidalarni har qanday kichik tafovutlar bundan mustasno, o'ta aniqlik bilan shakllantirish imkonini beradi. Masalan, imtihon varaqalaridagi ba'zi savollar ba'zan shu qadar aniq tuzilganki, talaba javob berishdan ko'ra savolni tushunishga ko'proq vaqt sarflaydi. Bundan tashqari, talaba ko'p sonli tafsilotlar tufayli savolning asosiy ma'nosini tushuna olmasligi mumkin. Muammoning eng yaxshi shakllantirilishi - bu uchta talabning muvozanatiga erishadigan variant.

Muammo bayonining standart shakli.

Quyidagi muammo bayonotini ko'rib chiqing: "Uchta raqamni kiriting va raqamlarni tartibda chiqaring."

Bunday bayonot yuqoridagi talablarga javob bermaydi: u to'g'ri ham, to'liq ham, tushunarli ham emas. Darhaqiqat, raqamlar har bir satrga bittadan kiritilishi kerakmi yoki barcha raqamlar bitta qatorga kiritilishi kerakmi? “Tartibda” iborasi kattadan kichigiga, kichikdan kattaga tartibni anglatadimi yoki ular kiritilgan tartibda.

Shubhasiz, bunday bayonot ko'p savollarga javob bermaydi. Agar barcha savollarga javoblarni hisobga olsak, muammoning bayoni batafsil va tushunish qiyin bo'ladi. Shuning uchun D. Riley muammoni qo'yish uchun maksimal aniqlik, to'liqlik, ravshanlikni ta'minlaydigan standart shakldan foydalanishni taklif qiladi va quyidagilarni o'z ichiga oladi:

vazifaning nomi (sxematik ta'rifi);

umumiy tavsif (vazifaning qisqacha mazmuni);

xatolar (foydalanuvchilar va dasturchilarga bunday holatlarda mashina qanday harakatlar qilishini ko'rsatish uchun noodatiy kiritish variantlari aniq ko'rsatilgan);

misol (yaxshi misol muammoning mohiyatini etkazishi va turli holatlarni ko'rsatishi mumkin).

Misol. Muammoni standart shaklda bayon qilish.

NAME

Uchta butun sonni saralash.

TAVSIF

Kichikdan kattagacha tartiblangan uchta butun sonni kiritish va chiqarish.

Har bir satrda bittadan uchta butun son kiritiladi. Butun son bir yoki bir nechta ketma-ket o'nlik raqamlar bo'lib, undan oldin "+" ortiqcha belgisi yoki "-" minus belgisi bo'lishi mumkin.

Kiritilgan uchta tamsayı chop etiladi, uchtasi ham bir qatorda chop etiladi. Qo'shni raqamlar bo'sh joy bilan ajratiladi. Raqamlar eng kichikdan kattaga, chapdan o'ngga ko'rsatiladi.

1) Agar uchtadan kam raqam kiritilsa, dastur qo'shimcha kiritishni kutadi.

2) Birinchi uchtadan boshqa kirish satrlari e'tiborga olinmaydi.

Hayot davrasi dasturiy ta'minot tizimini yaratish va undan foydalanish modelidir. U dasturiy ta'minot tizimining turli holatlarini aks ettiradi, bu dasturiy ta'minot tizimiga bo'lgan ehtiyoj paydo bo'lgan va uni yaratish to'g'risida qaror qabul qilingan paytdan boshlab va dasturiy ta'minot tizimining ishlashdan butunlay voz kechishi bilan yakunlanadi.

ISOIES 12207 xalqaro standarti dasturiy ta'minotni yaratish jarayonida bajarilishi kerak bo'lgan jarayonlar, harakatlar va vazifalarni o'z ichiga olgan hayot aylanish doirasini belgilaydi. Ushbu standartga muvofiq, dasturiy ta'minotning hayot aylanishi uchta jarayon guruhiga asoslanadi:

    asosiy hayot aylanish jarayonlari, ya'ni sotib olish, etkazib berish, ishlab chiqish, foydalanish va texnik xizmat ko'rsatish;

    asosiy jarayonlarni amalga oshirishni ta'minlovchi yordamchi jarayonlar, ya'ni hujjatlashtirish, tekshirish, sertifikatlash, sifatni baholash va boshqalar;

    tashkiliy jarayonlar, ya'ni loyihalarni boshqarish, loyiha infratuzilmasini yaratish va o'qitish.

Rivojlanish belgilangan talablarga muvofiq dasturiy ta'minotni yaratish bo'yicha barcha ishlarni o'z ichiga oladi. Bunga dizayn va ekspluatatsion hujjatlarni tayyorlash, dasturiy mahsulotlarning funksionalligi va sifatini tekshirish uchun zarur bo'lgan materiallarni tayyorlash kiradi.

Rivojlanish jarayonining asosiy bosqichlari:

    mijozlar talablarini tahlil qilish;

    dizayn;

    amalga oshirish (dasturlash).

Operatsion jarayoni dasturiy ta'minotni ishga tushirish bo'yicha ishlarni o'z ichiga oladi, shu jumladan ish stantsiyalarini sozlash, xodimlarni o'qitish, operatsion muammolarni mahalliylashtirish va ularning paydo bo'lish sabablarini bartaraf etish, belgilangan qoidalar doirasida dasturiy ta'minotni o'zgartirish va tizimni modernizatsiya qilish bo'yicha takliflar tayyorlash.

Har bir jarayon ma'lum vazifalar va ularni hal qilish usullari, shuningdek, dastlabki ma'lumotlar va natijalar bilan tavsiflanadi.

Dasturiy ta'minotning hayotiy tsikli, qoida tariqasida, iterativ xususiyatga ega, ya'ni tashqi sharoitlarning o'zgaruvchan talablariga va cheklovlarni kiritishga muvofiq tsiklik ravishda takrorlanadigan dastlabki bosqichlardan boshlab amalga oshiriladi.

Dasturiy ta'minotning hayot aylanish modellari

Rivojlanish bosqichlarini bajarish tartibini va bosqichdan bosqichga o'tish mezonlarini belgilaydigan bir nechta hayot tsikli modellari mavjud. Bugungi kunga kelib, hayot tsiklining ikkita modeli eng keng tarqalgan: kaskad Va spiral.

Ilgari mavjud bo'lgan bir hil axborot tizimlarida har bir dastur bitta yaxlit edi. Bunday ilovalarni ishlab chiqish uchun sharsharaning hayotiy tsikli modeli ishlatilgan, u ham deyiladi klassik yoki sharshara.

Sharshara modelidan foydalanganda, rivojlanish bosqichlar ketma-ketligi sifatida ko'rib chiqildi, keyingi pastki bosqichga o'tish faqat joriy bosqichdagi barcha ishlar to'liq tugagandan so'ng sodir bo'ladi. Buning ma'nosi shundaki, sharshara modelida rivojlanish tizim darajasida boshlanadi va tahlil qilish, loyihalash, kodlash, sinovdan o'tkazish va texnik xizmat ko'rsatish orqali davom etadi.

1-rasm - Kaskad modelini ishlab chiqishning asosiy bosqichlari

1. Tizimli tahlil kompyuter tizimidagi har bir elementning rolini va elementlarning bir-biri bilan o'zaro ta'sirini belgilaydi. Dasturiy ta'minot kattaroq tizimning bir qismi sifatida qaralganligi sababli, tahlil tizimning barcha elementlariga qo'yiladigan talablarni aniqlashdan boshlanadi. Tizim tahliliga bo'lgan ehtiyoj dasturiy ta'minotning boshqa elementlar bilan interfeysi shakllanganda aniq namoyon bo'ladi, ya'ni. apparat yoki ma'lumotlar bazalari bilan. Xuddi shu bosqichda loyihani rejalashtirish muammolarini hal qilish boshlanadi. Loyihani rejalashtirish jarayonida loyiha ishlarining hajmi va uning tavakkalchiligi, talab qilinadigan mehnat xarajatlari aniqlanadi, ish vazifalari va ish jadvali shakllantiriladi.

Talablarni tahlil qilish bitta dasturiy elementni nazarda tutadi. Ushbu bosqichda har bir elementning funktsiyalari, uning xususiyatlari va interfeysi aniq va batafsil tavsiflanadi. Xuddi shu bosqichda loyihani rejalashtirish muammosini hal qilish tugallanadi.

2. Dizayn yaratishdan iborat:

    dasturiy ta'minot arxitekturalari;

    modulli dasturiy tuzilma;

    dasturiy ta'minotning algoritmik tuzilishi;

    ma'lumotlar tuzilmalari;

    kirish/chiqish interfeysi (kirish/chiqish ma'lumotlar shakllari).

Dizayn masalalarini hal qilishda asosiy e'tibor kelajakdagi dasturiy mahsulot sifatiga qaratiladi.

3. Kodlash yoki ishlab chiqish dizayn natijalarini dastur kodiga aylantirishdan iborat.

4. Sinov - bu dasturiy mahsulotning funksiyalari, mantiqiy va amalga oshirish shaklidagi nuqsonlarni aniqlash uchun dasturni bajarish.

5. Texnik xizmat ko'rsatish - bu quyidagi maqsadlarda operatsion dasturiy ta'minotga o'zgartirishlar kiritishdir:

    xatolarni tuzatish;

    dasturiy ta'minotdan tashqari muhitdagi o'zgarishlarga moslashish;

    mijozlar talablariga muvofiq dasturiy ta'minotni takomillashtirish.

Kaskad modelidan foydalanishning afzalliklari:

    loyihaning barcha bosqichlari uchun reja va vaqt jadvalini beradi, shu bilan rivojlanish jarayonini tartibga soladi;

    har bir bosqichda loyiha hujjatlarining to'liq to'plami shakllantiriladi, to'liqligi va izchilligi tekshiriladi;

    mantiqiy ketma-ketlikda bajarilgan ishlarning bosqichlari barcha ishlarni yakunlash vaqtini va tegishli xarajatlarni rejalashtirish imkonini beradi.

Kaskad modeli axborot tizimlarini qurishda o'zini yaxshi isbotladi, ular uchun rivojlanishning boshida tizimdagi barcha talablarni, masalan, murakkab hisoblash tizimlari, turli xil real vaqt tizimlari va boshqalarni aniq shakllantirish mumkin. .

Kaskad modelining kamchiliklari:

    real loyihalar ko'pincha qadamlarning standart ketma-ketligidan chetga chiqishni talab qiladi;

    kaskad modeli dastlabki dasturiy ta'minot talablarini aniq shakllantirishga asoslanadi, lekin aslida, bir qator hollarda, loyihaning boshida mijozning talablari faqat qisman aniqlanadi;

    loyiha natijalari mijozga faqat barcha ishlar tugagandan so'ng taqdim etiladi.

Dasturiy ta'minotni yaratish jarayonida doimiy ravishda oldingi bosqichlarga qaytish va ilgari qabul qilingan qarorlarni aniqlashtirish yoki qayta ko'rib chiqish zarurati tufayli, sharshara modeliga asoslangan dasturiy ta'minotni ishlab chiqishning haqiqiy jarayonini quyidagi diagrammada tasvirlash mumkin (2-rasm).

Shakl 2 - Sharshara modeliga asoslangan dasturiy ta'minotni ishlab chiqish jarayoni

Dasturiy ta'minotning hayot aylanish standartlari

  • GOST 34.601-90
  • ISO/IEC 12207:1995 (ruscha ekvivalenti - GOST R ISO/IEC 12207-99)

Dasturiy ta'minotni ishlab chiqish metodologiyalari

  • Ratsional birlashtirilgan jarayon (RUP).
  • Microsoft Solutions Framework (MSF). 4 bosqichni o'z ichiga oladi: tahlil, loyihalash, ishlab chiqish, barqarorlashtirish, ob'ektga yo'naltirilgan modellashtirishdan foydalanishni o'z ichiga oladi.
  • Ekstremal dasturlash ( Ekstremal dasturlash, XP). Metodologiya butun IPni rivojlantirish loyihasi davomida mijoz va pudratchi o'rtasidagi jamoaviy ish va samarali muloqotga asoslangan. Rivojlanish ketma-ket takomillashtirilgan prototiplar yordamida amalga oshiriladi.

Standart GOST 34.601-90

GOST 34.601-90 standarti avtomatlashtirilgan tizimni yaratishning quyidagi bosqichlari va bosqichlarini nazarda tutadi:

  1. Spikerlarga talablarni shakllantirish
    1. Ob'ektni tekshirish va atom elektr stantsiyasini yaratish zarurligini asoslash
    2. Dinamiklarga foydalanuvchi talablarini shakllantirish
    3. Ishning tugallanganligi to'g'risida hisobot va AESni ishlab chiqish uchun ariza tayyorlash
  2. AC kontseptsiyasini ishlab chiqish
    1. Ob'ektni o'rganish
    2. Kerakli tadqiqot ishlarini olib borish
    3. AC kontseptsiyasi variantlarini ishlab chiqish va foydalanuvchi talablariga javob beradigan AC kontseptsiyasi variantini tanlash
    4. Bajarilgan ishlar yuzasidan hisobot tuzish
  3. Texnik vazifa
    1. Atom elektr stansiyalarini yaratish uchun texnik shartlarni ishlab chiqish va tasdiqlash
  4. Dastlabki dizayn
    1. Tizim va uning qismlari uchun dastlabki dizayn echimlarini ishlab chiqish
  5. Texnik loyiha
    1. Tizim va uning qismlari uchun dizayn echimlarini ishlab chiqish
    2. Dinamik tizim va uning qismlari uchun hujjatlarni ishlab chiqish
    3. Komponentlarni etkazib berish bo'yicha hujjatlarni ishlab chiqish va rasmiylashtirish
    4. Loyihaning qo'shni qismlarida dizayn vazifalarini ishlab chiqish
  6. Ish hujjatlari
    1. AES va uning qismlari uchun ishchi hujjatlarni ishlab chiqish
    2. Dasturlarni ishlab chiqish va moslashtirish
  7. Ishga tushirish
    1. Avtomatlashtirish ob'ektini tayyorlash
    2. Kadrlar tayyorlash
    3. Taqdim etilgan mahsulotlar (dasturiy ta'minot va apparat, dasturiy ta'minot va apparat tizimlari, axborot mahsulotlari) bilan dinamiklarning to'liq to'plami.
    4. Qurilish-montaj ishlari
    5. Ishga tushirish ishlari
    6. Dastlabki sinovlarni o'tkazish
    7. Sinov operatsiyasini o'tkazish
    8. Qabul qilish testlarini o'tkazish
  8. AC qo'llab-quvvatlash.
    1. Kafolat majburiyatlariga muvofiq ishlarni bajarish
    2. Kafolatdan keyingi xizmat

Eskiz, texnik loyihalar va ishchi hujjatlar - bu tobora aniqroq dizayn echimlarining izchil qurilishi. "Eskiz dizayni" bosqichini va barcha bosqichlarda ishning alohida bosqichlarini istisno qilish, "Texnik loyihalash" va "Ishchi hujjatlar" bosqichlarini "Texnik batafsil loyihalash" ga birlashtirish, turli bosqichlarni bajarish va parallel ravishda ishlash mumkin. , va qo'shimchalarini kiritish.

Ushbu standart joriy ishlanmalar uchun to'liq mos kelmaydi: ko'plab jarayonlar etarli darajada aks ettirilmagan va ba'zi qoidalar eskirgan.

ISO/IEC 12207/ standarti va uning qo'llanilishi

ISO/IEC 12207:1995 "Axborot texnologiyalari - dasturiy ta'minotning hayot aylanish jarayonlari" standarti dasturiy ta'minotning hayot aylanish jarayonlari tarkibini tartibga soluvchi asosiy me'yoriy hujjatdir. U dasturiy ta'minotni yaratish jarayonida bajarilishi kerak bo'lgan jarayonlar, harakatlar va vazifalarni o'z ichiga olgan hayot tsiklining tuzilishini belgilaydi.

Har bir jarayon bir qator harakatlarga, har bir harakat bir qator vazifalarga bo'linadi. Har bir jarayon, faoliyat yoki vazifa kerak bo'lganda boshqa jarayon tomonidan boshlanadi va bajariladi va oldindan belgilangan bajarish ketma-ketliklari mavjud emas. Kirish ma'lumotlari orasidagi aloqalar saqlanib qoladi.

Dasturiy ta'minotning hayot aylanish jarayonlari

  • Asosiy:
    • Sotib olish (dasturiy ta'minotni sotib olayotgan mijozning harakatlari va vazifalari)
    • Yetkazib berish (mijozni dasturiy mahsulot yoki xizmat bilan ta'minlovchi yetkazib beruvchining harakatlari va vazifalari)
    • Ishlab chiqish (ishlab chiquvchi tomonidan bajariladigan harakatlar va vazifalar: dasturiy ta'minotni yaratish, loyiha va ekspluatatsion hujjatlarni tayyorlash, test va o'quv materiallarini tayyorlash va boshqalar)
    • Operatsion (operatorning harakatlari va vazifalari - tizimni boshqaradigan tashkilot)
    • Texnik xizmat ko'rsatish (hamroh bo'lgan tashkilot tomonidan amalga oshiriladigan harakatlar va vazifalar, ya'ni qo'llab-quvvatlash xizmati). Qo'llab-quvvatlash - xatolarni tuzatish, samaradorlikni oshirish yoki o'zgaruvchan ish sharoitlari yoki talablariga moslashish uchun dasturiy ta'minotga o'zgartirishlar kiritish.
  • Yordamchi
    • Hujjatlar (dasturiy ta'minotning hayot aylanishi davomida yaratilgan ma'lumotlarning rasmiylashtirilgan tavsifi)
    • Konfiguratsiyani boshqarish (dasturiy ta'minot komponentlarining holatini aniqlash va uning modifikatsiyalarini boshqarish uchun dasturiy ta'minotning butun hayoti davomida ma'muriy va texnik protseduralarni qo'llash).
    • Sifat kafolati (axborot tizimi va uning hayot aylanish jarayonlari belgilangan talablar va tasdiqlangan rejalarga muvofiqligini kafolatlash)
    • Tekshirish (ba'zi harakatlar natijasida kelib chiqadigan dasturiy mahsulotlar oldingi harakatlar tomonidan qo'yilgan talablar yoki shartlarga to'liq javob berishini aniqlash)
    • Sertifikatlash (belgilangan talablar va yaratilgan tizimning aniq funktsional maqsadiga muvofiqligini to'liq aniqlash)
    • Birgalikda baholash (loyihadagi ishlarning holatini baholash: resurslarni, xodimlarni, uskunalarni, asboblarni rejalashtirish va boshqarishni nazorat qilish)
    • Audit (talablar, rejalar va shartnoma shartlariga muvofiqligini aniqlash)
    • Muammoni hal qilish (ishlab chiqish, foydalanish, texnik xizmat ko'rsatish yoki boshqa jarayonlarda aniqlangan muammolarni, kelib chiqishi yoki manbasidan qat'i nazar, tahlil qilish va hal qilish)
  • Tashkiliy
    • Nazorat (jarayonlarini boshqaradigan har qanday tomon tomonidan bajarilishi mumkin bo'lgan harakatlar va vazifalar)
    • Infratuzilmani yaratish (texnologiyalar, standartlar va vositalarni tanlash va ularga xizmat ko'rsatish, dasturiy ta'minotni ishlab chiqish, ishlatish yoki texnik xizmat ko'rsatish uchun foydalaniladigan apparat va dasturiy ta'minotni tanlash va o'rnatish)
    • Yaxshilash (hayot tsikli jarayonlarini baholash, o'lchash, nazorat qilish va takomillashtirish)
    • O'qitish (dastlabki o'qitish va keyinchalik xodimlarni doimiy ravishda rivojlantirish)

Har bir jarayon bir qator harakatlarni o'z ichiga oladi. Masalan, sotib olish jarayoni quyidagi tadbirlarni o'z ichiga oladi:

  1. Sotib olishning boshlanishi
  2. Tender takliflarini tayyorlash
  3. Shartnomani tayyorlash va tuzatish
  4. Yetkazib beruvchilar faoliyatini nazorat qilish
  5. Ishni qabul qilish va tugatish

Har bir faoliyat bir qator vazifalarni o'z ichiga oladi. Masalan, tender takliflarini tayyorlash quyidagilarni o'z ichiga olishi kerak:

  1. Tizim talablarini shakllantirish
  2. Dasturiy ta'minot mahsulotlari ro'yxatini yaratish
  3. Shartnomalar va shartnomalarni belgilash
  4. Texnik cheklovlar tavsifi (tizimning ishlash muhiti va boshqalar)

Dasturiy ta'minotning hayot aylanish bosqichlari, jarayonlar va bosqichlar o'rtasidagi munosabatlar

Dasturiy ta'minotning hayot aylanishi modeli- hayot aylanishi davomida jarayonlar, harakatlar va vazifalar o'rtasidagi ijro ketma-ketligini va munosabatlarini belgilovchi tuzilma. Hayotiy tsikl modeli loyihaning o'ziga xos xususiyatlariga, ko'lamiga va murakkabligiga hamda tizim yaratilgan va faoliyat yuritadigan o'ziga xos sharoitlarga bog'liq.

GOST R ISO/IEC 12207-99 standarti ma'lum bir hayot aylanishi modelini taklif qilmaydi. Uning qoidalari har qanday hayot tsikli modellari, IP yaratish usullari va texnologiyalari uchun umumiydir. U ushbu jarayonlarga kiritilgan faoliyat va vazifalarni qanday amalga oshirish yoki bajarish kerakligini ko'rsatmasdan, hayot aylanish jarayonlarining tuzilishini tavsiflaydi.

Dasturiy ta'minotning hayot aylanishi modeli quyidagilarni o'z ichiga oladi:

  1. Bosqichlar;
  2. Har bir bosqichda ish natijalari;
  3. Asosiy voqealar - ishni yakunlash va qaror qabul qilish nuqtalari.

Bosqich- dasturiy ta'minotni yaratish jarayonining ma'lum bir vaqt oralig'i bilan cheklangan va ushbu bosqich uchun belgilangan talablar bilan belgilanadigan ma'lum bir mahsulotni (modellar, dasturiy ta'minot komponentlari, hujjatlar) chiqarish bilan yakunlanadigan qismi.

Har bir bosqichda GOST R ISO/IEC 12207-99 standartida belgilangan bir nechta jarayonlar bajarilishi mumkin va aksincha, bir xil jarayon turli bosqichlarda amalga oshirilishi mumkin. Jarayonlar va bosqichlar o'rtasidagi bog'liqlik, shuningdek, ishlatiladigan dasturiy ta'minotning hayot aylanishi modeli bilan belgilanadi.

Dasturiy ta'minotning hayot aylanish modellari

Hayotiy tsikl modeli - bu hayot tsikli davomida bajariladigan jarayonlar, faoliyat va vazifalarning bajarilishi ketma-ketligini va munosabatlarini belgilaydigan tuzilma. Hayotiy tsikl modeli axborot tizimining o'ziga xos xususiyatlariga va uning yaratilishi va ishlashining o'ziga xos shartlariga bog'liq.

Bugungi kunga kelib, quyidagi asosiy hayot tsikli modellari eng keng tarqalgan:

  • Muammoli model;
  • kaskad modeli (yoki tizim) (70-85);
  • spiral model (hozirgi).

Muammoli model

Alohida vazifalardan butun tizimga (vazifa modeli) tizimni "pastdan yuqoriga" ishlab chiqishda rivojlanishga yagona yondashuv muqarrar ravishda yo'qoladi va alohida komponentlarning axborot aloqasida muammolar paydo bo'ladi. Qoida tariqasida, vazifalar soni ortib borishi bilan qiyinchiliklar kuchayadi va mavjud dasturlar va ma'lumotlar tuzilmalarini doimiy ravishda o'zgartirish kerak. Tizimning rivojlanish tezligi sekinlashadi, bu esa tashkilotning rivojlanishini sekinlashtiradi. Biroq, ba'zi hollarda ushbu texnologiya tavsiya qilinishi mumkin:

  • Haddan tashqari shoshilinch (muammolarni qandaydir tarzda hal qilish kerak; keyin hamma narsani yana qilish kerak);
  • Tajriba va mijozning moslashuvi (algoritmlar aniq emas, echimlar sinov va xato orqali topiladi).

Umumiy xulosa shuki, bu usulda yetarli darajada katta, samarali axborot tizimini yaratish mumkin emas.

Kaskad modeli

Kaskad modeli hayot aylanishi 1970 yilda Uinston Roys tomonidan taklif qilingan. U qat'iy belgilangan tartibda loyihaning barcha bosqichlarini ketma-ket amalga oshirishni ta'minlaydi. Keyingi bosqichga o'tish oldingi bosqichdagi ishlarning to'liq bajarilishini anglatadi (1-rasm). Talablarni shakllantirish bosqichida aniqlangan talablar texnik shartlar shaklida qat'iy hujjatlashtiriladi va loyihaning butun rivojlanishi uchun qayd etiladi. Har bir bosqich rivojlanishni boshqa ishlab chiqish guruhi tomonidan davom ettirishga imkon beradigan hujjatlarning to'liq to'plamini chiqarish bilan yakunlanadi.

Kaskad yondashuvidan foydalanishning ijobiy tomonlari quyidagilardan iborat:

  • har bir bosqichda to'liqlik va izchillik mezonlariga javob beradigan loyiha hujjatlarining to'liq to'plami yaratiladi;
  • mantiqiy ketma-ketlikda amalga oshirilgan ish bosqichlari barcha ishlarning tugash vaqtini va tegishli xarajatlarni rejalashtirish imkonini beradi.

Sharshara modeli bo'yicha loyiha bosqichlari:

  1. Talablarni shakllantirish;
  2. Dizayn;
  3. Amalga oshirish;
  4. Sinov;
  5. Amalga oshirish;
  6. Foydalanish va texnik xizmat ko'rsatish.

Guruch. 1. Kaskadli rivojlanish sxemasi

Kaskad yondashuvi axborot tizimlarini qurishda o'zini yaxshi isbotladi, ular uchun barcha talablar ishlab chiquvchilarga texnik nuqtai nazardan iloji boricha yaxshiroq amalga oshirish erkinligini berish uchun rivojlanishning boshida juda aniq va to'liq shakllantirilishi mumkin. ko'rinish. Kompleks hisoblash tizimlari, real vaqt tizimlari va boshqa shunga o'xshash vazifalar ushbu toifaga kiradi. Biroq, ushbu yondashuvdan foydalanish jarayonida uning bir qator kamchiliklari aniqlandi, bu birinchi navbatda tizimlarni yaratishning haqiqiy jarayoni hech qachon bunday qattiq sxemaga to'liq mos kelmasligi bilan bog'liq. Yaratish jarayonida oldingi bosqichlarga qaytish va ilgari qabul qilingan qarorlarni aniqlashtirish yoki qayta ko'rib chiqish zarurati doimo mavjud edi. Natijada, dasturiy ta'minotni yaratish jarayoni quyidagi shaklni oldi (2-rasm):

Guruch. 2. Sharshara sxemasidan foydalangan holda haqiqiy dasturiy ta'minotni ishlab chiqish jarayoni

Kaskadli yondashuvning asosiy kamchiliklari natijalarni olishda sezilarli kechikishdir. Natijalarni foydalanuvchilar bilan muvofiqlashtirish faqat ishning har bir bosqichi tugagandan so'ng rejalashtirilgan punktlarda amalga oshiriladi, axborot tizimlariga qo'yiladigan talablar uni yaratishning butun vaqti uchun texnik shartlar shaklida "muzlatiladi". Shunday qilib, foydalanuvchilar tizimdagi ishlar to'liq tugagandan keyingina o'z sharhlarini bildirishlari mumkin. Agar talablar noto'g'ri ko'rsatilgan bo'lsa yoki ular dasturiy ta'minotni ishlab chiqishda uzoq vaqt davomida o'zgarib qolsa, foydalanuvchilar o'zlarining ehtiyojlarini qondirmaydigan tizimga duch kelishadi. Avtomatlashtirilgan ob'ektning modellari (funktsional va axborot) bir vaqtning o'zida ularni tasdiqlash bilan eskirishi mumkin. ATni ishlab chiqishga tizimli yondashishning mohiyati uning avtomatlashtirilgan funksiyalarga ajralishida (parchalanishida) yotadi: tizim funksional quyi tizimlarga bo‘linadi, ular o‘z navbatida kichik funksiyalarga, vazifalarga va hokazolarga bo‘linadi. Bo'lish jarayoni ma'lum protseduralargacha davom etadi. Shu bilan birga, avtomatlashtirilgan tizim barcha komponentlar o'zaro bog'liq bo'lgan yaxlit ko'rinishni saqlaydi. Shunday qilib, ushbu modelning asosiy afzalligi uning tizimli rivojlanishi va asosiy kamchiliklari - bu sekin va qimmat.

Spiral model

Ushbu muammolarni bartaraf etish uchun taklif qilingan spiral model 1980-yillarning o'rtalarida Barri Boem tomonidan ishlab chiqilgan hayot aylanishi (3-rasm). U hayot aylanishining dastlabki bosqichlariga asoslanadi: tahlil va loyihalash. Ushbu bosqichlarda prototiplarni yaratish orqali texnik echimlarning maqsadga muvofiqligi tekshiriladi.

Prototip- individual funktsiyalar va tashqi interfeyslarni amalga oshiradigan operatsion dasturiy komponent. Har bir iteratsiya dasturiy ta'minotning bir qismi yoki versiyasini yaratishga to'g'ri keladi, unda loyihaning maqsadlari va xususiyatlari aniqlanadi, olingan natijalarning sifati baholanadi va keyingi iteratsiya ishi rejalashtirilgan.

Har bir iteratsiya toʻliq ishlab chiqish siklini ifodalaydi, natijada mahsulotning ichki yoki tashqi versiyasi (yoki yakuniy mahsulotning kichik toʻplami) chiqariladi, bu iteratsiyadan iteratsiyagacha takomillashtirilib, toʻliq tizimga aylanadi.

Spiralning har bir burilishi dasturiy ta'minotning bir qismi yoki versiyasini yaratishga to'g'ri keladi, bu erda loyihaning maqsadlari va xususiyatlari aniqlashtiriladi, uning sifati aniqlanadi va spiralning keyingi navbati ishi rejalashtirilgan. Shunday qilib, loyihaning tafsilotlari chuqurlashtiriladi va izchil aniqlanadi va natijada amalga oshirishga olib keladigan oqilona variant tanlanadi.

Takrorlash bo'yicha rivojlanish tizimni yaratishning ob'ektiv ravishda mavjud bo'lgan spiral aylanishini aks ettiradi. Har bir bosqichda ishning to'liq tugallanmaganligi joriy bosqichda ishning to'liq tugashini kutmasdan keyingi bosqichga o'tish imkonini beradi. Takroriy rivojlanish usuli bilan etishmayotgan ishni keyingi iteratsiyada bajarish mumkin. Asosiy vazifa tizim foydalanuvchilariga ishlashga yaroqli mahsulotni imkon qadar tezroq ko'rsatish va shu bilan talablarni aniqlashtirish va to'ldirish jarayonini faollashtirishdir.

Spiral tsiklning asosiy muammosi keyingi bosqichga o'tish momentini aniqlashdir. Uni hal qilish uchun hayot tsiklining har bir bosqichi uchun vaqt cheklovlarini joriy qilish kerak. Barcha rejalashtirilgan ishlar bajarilmasa ham, o'tish rejalashtirilgan tarzda davom etadi. Reja oldingi loyihalarda olingan statistik ma'lumotlar va ishlab chiquvchilarning shaxsiy tajribasi asosida tuziladi.

Shakl 3. IC hayot aylanishining spiral modeli

Spiral hayot tsikli modeli doirasida dasturiy ta'minotni ishlab chiqishning mumkin bo'lgan yondashuvlaridan biri bu RAD (Rapid Application Development) metodologiyasi bo'lib, u yaqinda keng tarqalgan. Ushbu atama odatda 3 elementni o'z ichiga olgan dasturiy ta'minotni ishlab chiqish jarayoniga ishora qiladi:

  • dasturchilarning kichik jamoasi (2 dan 10 kishigacha);
  • qisqa, ammo puxta ishlab chiqilgan ishlab chiqarish jadvali (2 oydan 6 oygacha);
  • takroriy tsikl bo'lib, unda ishlab chiquvchilar dastur shakllana boshlaganda, mijoz bilan o'zaro aloqada bo'lgan talablarni so'rab, mahsulotga kirita boshlaydilar.

RAD metodologiyasiga ko'ra dasturiy ta'minotning hayot aylanishi to'rt bosqichdan iborat:

  • talablarni aniqlash va tahlil qilish bosqichi;
  • dizayn bosqichi;
  • amalga oshirish bosqichi;
  • amalga oshirish bosqichi.

Har bir iteratsiyada quyidagilar baholanadi:

  • loyihaning belgilangan muddatlari va xarajatlaridan oshib ketish xavfi;
  • boshqa iteratsiyani amalga oshirish zarurati;
  • tizim talablarini tushunishning to'liqligi va aniqligi darajasi;
  • loyihani tugatishning maqsadga muvofiqligi.

Iterativ yondashuvning afzalliklari:

  • Iterativ rivojlanish mijozning talablari o'zgarganda loyihaga o'zgartirish kiritishni sezilarli darajada osonlashtiradi.
  • Spiral modeldan foydalanganda axborot tizimining alohida elementlari asta-sekin bir butunga birlashtiriladi. Iterativ yondashuv bilan integratsiya deyarli uzluksiz sodir bo'ladi. Integratsiya kamroq elementlardan boshlanganligi sababli, uni amalga oshirishda muammolar ancha kam bo'ladi (ba'zi hisob-kitoblarga ko'ra, sharsharani rivojlantirish modelidan foydalanganda, loyiha oxirida integratsiya barcha xarajatlarning 40% gacha bo'ladi).
  • Takroriy rivojlanish loyihani boshqarishda ko'proq moslashuvchanlikni ta'minlaydi, ishlab chiqilayotgan mahsulotga taktik o'zgarishlar kiritish imkonini beradi.
  • Iterativ yondashuv komponentlardan qayta foydalanishni soddalashtiradi (dasturlashda komponentlarga asoslangan yondashuvni amalga oshiradi). Buning sababi shundaki, loyihaning eng boshida ularni aniqlashga urinishdan ko'ra, qisman ishlab chiqilgan bo'lsa, loyihaning umumiy qismlarini aniqlash ancha osondir. Bir necha dastlabki iteratsiyalardan so'ng dizaynni tahlil qilish, keyingi iteratsiyalarda yaxshilanadigan umumiy, qayta foydalanish mumkin bo'lgan komponentlarni aniqlaydi.
  • Spiral model yanada ishonchli va barqaror tizimga imkon beradi. Buning sababi shundaki, tizim rivojlanib borar ekan, har bir iteratsiyada xatolar va zaifliklar topiladi va tuzatiladi. Shu bilan birga, kritik samaradorlik parametrlarini sozlash mumkin, bu kaskad modelida faqat tizimni amalga oshirishdan oldin mumkin.
  • Iterativ yondashuv rivojlanish jarayonini yaxshilashga imkon beradi - har bir iteratsiya oxirida olib boriladigan tahlil ishlab chiqish tashkilotida nimani o'zgartirish kerakligini baholashga va keyingi iteratsiyada uni yaxshilashga imkon beradi.

Izoh.

Kirish.

1. Dasturiy ta'minotning hayot aylanishi

Kirish.

Riley dasturlash jarayoni bosqichlari

Kirish.

1.1.1. Muammoni shakllantirish.

1.1.2. Yechim dizayni.

1.1.3. Algoritm kodlash.

1.1.4. Dasturni qo'llab-quvvatlash.

1.1.5. Dasturiy ta'minot hujjatlari.

1.1-band bo'yicha xulosa

1.2. Lemanga ko'ra LCPO ni aniqlash.

Kirish.

1.2.1 Tizim ta'rifi.

1.2.2. Amalga oshirish.

1.2.3. Xizmat.

1.2-band bo'yicha xulosa.

1.3. Boem bo'yicha LCPO ning bosqichlari va ishi

1.3.1. Kaskad modeli.

1.3.2. Kaskad modelining iqtisodiy asoslanishi.

1.3.3. Kaskad modelini takomillashtirish.

1.3.4. Hayotiy tsikl fazalarini aniqlash.

1.3.5. Loyiha ustidagi asosiy ish.

Adabiyot.


Kirish

Kompyuterlarning sanoatda qo'llanilishi va dasturlarga bo'lgan talabning ortib borishi sezilarli darajada oshirish uchun favqulodda muammolarni keltirib chiqardi dasturiy ta'minotni ishlab chiqish samaradorligi, rejalashtirish va dasturlarni loyihalashning sanoat usullarini ishlab chiqish, tashkiliy, texnik, texnik, iqtisodiy va ijtimoiy-psixologik texnika, naqsh va usullarni moddiy ishlab chiqarish sohasidan kompyuterdan foydalanish sohasiga o'tkazish. Kompleks yondashuv U dasturiy ta'minotni ishlab chiqish, ulardan foydalanish va texnik xizmat ko'rsatish jarayonlariga bir qator dolzarb muammolarni qo'ydi, ularning echimi dasturni ishlab chiqishdagi to'siqlarni bartaraf qiladi, ishni yakunlash vaqtini qisqartiradi, mavjud dasturlarni tanlash va moslashtirishni takomillashtirishga yordam beradi. o'rnatilgan kompyuterlar bilan tizimlarning taqdiri.

Katta dasturiy ta'minot loyihalarini ishlab chiqish amaliyotida ko'pincha yo'q yagona yondashuv dasturiy ta'minotni ishlab chiqish samaradorligini oshirishga to'sqinlik qiladigan mehnat xarajatlari, ish muddatlari va moddiy xarajatlarni baholashga va pirovardida, dasturiy ta'minotning hayot aylanishini samarali boshqarishga to'sqinlik qiladi. Har qanday turdagi dastur mahsulotga aylanganligi sababli (ehtimol, o'quv, prototip dasturlari bundan mustasno), uni ishlab chiqarishga yondashuv ko'p jihatdan sanoat mahsulotlarini ishlab chiqarishga bo'lgan yondashuvga o'xshash bo'lishi kerak va dasturni loyihalash masalalari juda muhim bo'ladi. Bu fikr B.V. kitobining markazida joylashgan. Boehm "Dasturiy ta'minot muhandisligi", biz ushbu kurs ishini yozishda foydalanganmiz. Ushbu kitobda dasturiy ta'minot dizayni dasturiy mahsulot uchun dizayn yaratish jarayonini nazarda tutadi.


1 Dasturiy ta'minotning hayot aylanishi

KIRISH

LCPO uzluksiz jarayon bo'lib, u dasturiy ta'minotni yaratish zarurati to'g'risida qaror qabul qilingan paytdan boshlab boshlanadi va u xizmatdan butunlay olib tashlangan paytda tugaydi.

Dasturiy ta'minotning hayot tsiklining (SLC) bosqichlari va faoliyatini, dasturlash jarayonining bosqichlarini, kaskad va spiral modellarni aniqlashning bir necha yondashuvlari mavjud. Ammo ularning barchasi umumiy fundamental komponentlarni o'z ichiga oladi: muammo bayoni, yechim dizayni, amalga oshirish, texnik xizmat ko'rsatish.

Eng mashhur va to'liq, ehtimol, sakkiz bosqichni o'z ichiga olgan Boemga ko'ra hayot aylanish jarayonining tuzilishi. Kelgusida batafsilroq taqdim etiladi.

Mumkin variantlardan biri Lehmanga ko'ra yuqori darajadagi tavsif bo'lishi mumkin, u uchta asosiy bosqichni o'z ichiga oladi va eng umumiy holatda hayot tsiklining tavsifini ifodalaydi.

Va xilma-xillik uchun biz D. Riley tomonidan "Modul-2 tilidan foydalanish" kitobida taqdim etilgan dasturlash jarayonining bosqichlarini taqdim etamiz. Bu fikr, menimcha, juda oddiy va tanish, keling, bundan boshlaylik.

1.1 Riley dasturlash jarayonidagi qadamlar

Dasturlash jarayoni to'rt bosqichni o'z ichiga oladi (1-rasm):

muammoning bayoni, ya'ni. dastur qanday vazifani bajarishi kerakligi haqida etarli tushunchaga ega bo'lish;

allaqachon bayon qilingan muammoning yechimini loyihalash (umuman olganda, bunday yechim yakuniy dasturga qaraganda kamroq rasmiy);

dasturni kodlash, ya'ni ishlab chiqilgan yechimni mashinada bajarilishi mumkin bo'lgan dasturga tarjima qilish;

dasturni qo'llab-quvvatlash, ya'ni. dasturdagi muammolarni bartaraf etish va yangi xususiyatlarni qo'shishning davom etayotgan jarayoni.

Guruch. 1.To'rtta dasturlash bosqichi.

Dasturlash qachondan boshlanadi foydalanuvchi, ya'ni. muammoni hal qilish uchun dasturga muhtoj bo'lgan kishi muammoni aytadi tizim tahlilchisi. Foydalanuvchi va tizim tahlilchisi birgalikda muammo bayonini aniqlaydilar. Keyin ikkinchisi uzatiladi algoritmchi, yechimni loyihalash uchun kim mas'uldir. Yechim (yoki algoritm) amallar ketma-ketligini ifodalaydi, ularning bajarilishi muammoni hal qilishga olib keladi. Algoritm ko'pincha mashinada bajarish uchun mos emasligi sababli, uni mashina dasturiga tarjima qilish kerak. Ushbu operatsiya kodlovchi tomonidan amalga oshiriladi. Yordamchi dasturchi dasturga keyingi o'zgartirishlar uchun javobgardir. Va tizim tahlilchisi, algoritmist, kodlovchi va unga hamroh bo'lgan dasturchi - bularning barchasi dasturchilar.

Katta dasturiy ta'minot loyihasida foydalanuvchilar, tizim tahlilchilari va algoritmistlar soni sezilarli bo'lishi mumkin. Bundan tashqari, kutilmagan holatlar tufayli oldingi bosqichlarga qaytish kerak bo'lishi mumkin. Bularning barchasi ehtiyotkorlik bilan dasturiy ta'minot dizayni uchun qo'shimcha dalil bo'lib xizmat qiladi: har bir qadamning natijalari to'liq, aniq va tushunarli bo'lishi kerak.

1.1.1 Muammo bayoni

Dasturlashning eng muhim bosqichlaridan biri bu muammoni aniqlashdir. U foydalanuvchi va dasturchi(lar) o'rtasidagi shartnoma vazifasini bajaradi. Qonuniy jihatdan noto'g'ri tuzilgan shartnoma kabi, yomon yozilgan muammo bayonoti foydasiz. Yaxshi muammo bayoni bilan foydalanuvchi ham, dasturchi ham bajarilishi kerak bo'lgan vazifani aniq va aniq ifodalaydi, ya'ni. bunda foydalanuvchining ham, dasturchining ham manfaatlari hisobga olinadi. Foydalanuvchi nima qila olishi haqidagi bilimga asoslanib, hali yaratilmagan dasturiy ta'minotdan foydalanishni rejalashtirishi mumkin. Muammoning yaxshi bayoni uning yechimini shakllantirish uchun asos bo'lib xizmat qiladi.

Muammoni shakllantirish (dastur spetsifikatsiyasi); mohiyatan ma'lum bir dastur bajarilganda sodir bo'ladigan hodisalarning aniq, to'liq va tushunarli tavsifini bildiradi. Foydalanuvchi odatda kompyuterga qora quti sifatida qaraydi: uning uchun kompyuter qanday ishlashi muhim emas, lekin muhimi foydalanuvchini qiziqtiradigan kompyuter nima qila olishi muhim. Bunda asosiy e'tibor insonning mashina bilan o'zaro ta'siriga qaratiladi.

Yaxshi muammo bayonining xususiyatlari:

Aniqlik, ya'ni. har qanday noaniqlikni bartaraf etish. Har qanday kirish uchun dasturning chiqishi qanday bo'lishi haqida hech qanday savol tug'ilmasligi kerak.

To'liqlik, ya'ni. berilgan kirish uchun barcha variantlarni, shu jumladan noto'g'ri yoki ko'zda tutilmagan kiritishni ko'rib chiqish va tegishli chiqishni aniqlash.

Aniqlik, ya'ni. u foydalanuvchi uchun ham, tizim tahlilchisi uchun ham tushunarli bo'lishi kerak, chunki muammo bayoni ular o'rtasidagi yagona shartnomadir.

Ko'pincha aniqlik, to'liqlik va aniqlik talablari ziddiyatli. Shunday qilib, ko'pgina huquqiy hujjatlarni tushunish qiyin, chunki ular rasmiy tilda yozilgan, bu esa ba'zi qoidalarni har qanday kichik tafovutlar bundan mustasno, o'ta aniqlik bilan shakllantirish imkonini beradi. Masalan, imtihon varaqalaridagi ba'zi savollar ba'zan shu qadar aniq tuzilganki, talaba javob berishdan ko'ra savolni tushunishga ko'proq vaqt sarflaydi. Bundan tashqari, talaba ko'p sonli tafsilotlar tufayli savolning asosiy ma'nosini tushuna olmasligi mumkin. Muammoning eng yaxshi shakllantirilishi - bu uchta talabning muvozanatiga erishadigan variant.

Muammo bayonining standart shakli.

Quyidagi muammo bayonotini ko'rib chiqing: "Uchta raqamni kiriting va raqamlarni tartibda chiqaring."

Bunday bayonot yuqoridagi talablarga javob bermaydi: u to'g'ri ham, to'liq ham, tushunarli ham emas. Darhaqiqat, raqamlar har bir satrga bittadan kiritilishi kerakmi yoki barcha raqamlar bitta qatorga kiritilishi kerakmi? “Tartibda” iborasi kattadan kichigiga, kichikdan kattaga tartibni anglatadimi yoki ular kiritilgan tartibda.

Shubhasiz, bunday bayonot ko'p savollarga javob bermaydi. Agar barcha savollarga javoblarni hisobga olsak, muammoning bayoni batafsil va tushunish qiyin bo'ladi. Shuning uchun D. Riley muammoni qo'yish uchun maksimal aniqlik, to'liqlik, ravshanlikni ta'minlaydigan standart shakldan foydalanishni taklif qiladi va quyidagilarni o'z ichiga oladi:

vazifaning nomi (sxematik ta'rifi);

umumiy tavsif (vazifaning qisqacha mazmuni);

xatolar (foydalanuvchilar va dasturchilarga bunday holatlarda mashina qanday harakatlar qilishini ko'rsatish uchun noodatiy kiritish variantlari aniq ko'rsatilgan);

misol (yaxshi misol muammoning mohiyatini etkazishi va turli holatlarni ko'rsatishi mumkin).

Misol. Muammoni standart shaklda bayon qilish.

NAME

Uchta butun sonni saralash.

TAVSIF

Kichikdan kattagacha tartiblangan uchta butun sonni kiritish va chiqarish.

Har bir satrda bittadan uchta butun son kiritiladi. Butun son bir yoki bir nechta ketma-ket o'nlik raqamlar bo'lib, undan oldin "+" ortiqcha belgisi yoki "-" minus belgisi bo'lishi mumkin.

Kiritilgan uchta tamsayı chop etiladi, uchtasi ham bir qatorda chop etiladi. Qo'shni raqamlar bo'sh joy bilan ajratiladi. Raqamlar eng kichikdan kattaga, chapdan o'ngga ko'rsatiladi.

1) Agar uchtadan kam raqam kiritilsa, dastur qo'shimcha kiritishni kutadi.

2) Birinchi uchtadan boshqa kirish satrlari e'tiborga olinmaydi.

3) Agar dastlabki uchta satrdan birortasi bir nechta butun sonni o'z ichiga olsa, u holda dastur chiqadi va xabarni ko'rsatadi.

KIRISH XATOSI - Har bir satrga faqat bitta butun son ruxsat berilgan.

kirish ® - 3

Ushbu dasturlash bosqichi eng qiyin. Bu bosqichda muammo bayonini algoritmga aylantirish kerak. Shuning uchun algoritm dizayneri yetarlicha dasturlash tajribasiga ega bo‘lishi va har bir yangi muammoga qat’iy belgilangan loyihalash metodologiyasi asosida yondashishi kerak. Afsuski, bugungi kunda barcha yirik dasturlarda xatolar mavjud, bu esa yomon loyihalarga olib keladi. Yomon dizaynlar, o'z navbatida, muammolarning murakkabligi va noto'g'ri dizayn usullaridan foydalanishning natijasidir. Dasturlarda xatolikka yo'l qo'ymaslik uchun algoritmistlar xulosa chiqarish qoidalariga asoslangan puxta ishlab chiqilgan dizayn protseduralaridan foydalanishlari kerak.

Ikkita asosiy xulosa modeli mavjud:

Birinchi model sifatida tanilgan deduktiv xulosa. Mantiqiy fikrlashning bu shakli mashhur detektiv Sherlok Xolms tomonidan abadiylashtirilgan. Deduktiv mantiq muayyan holatlarga umumiy qoidalarni qo'llaydi. Misol uchun, Xolms "Sariq qotil" va "Butler shubhalanishi mumkin bo'lgan yagona sarg'ish odam" degan umumiy ma'lumotlardan "Butler - qotil" degan maxsus bayonotni xulosa qilishi mumkin.

Ikkinchi model induktiv chiqish, bu deduktiv xulosaga qarama-qarshidir. Induktiv mantiq alohida holatlardan umumiy xulosalar chiqaradi. Masalan, quyosh doimo sharqdan chiqqanligi haqidagi ko'plab individual kuzatishlar asosida "quyosh sharqdan chiqadi" degan umumiy xulosani asoslash uchun induktiv xulosadan foydalanish mumkin.

Bu ikkita xulosa chiqarish jarayoni - chegirma(umumiydan xususiyga) va induksiya(maxsusdan umumiygacha) - ikkita eng keng tarqalgan dizayn usuli bilan chambarchas bog'liq: "yuqoridan pastga" Va "pastga yuqoriga". Chegirma kabi, yuqoridan pastga dizayn kichik muammolarga bo'lingan katta muammodan boshlanadi. Misol uchun, yangi muzlatgich-muzlatgichning konstruktori birlik spetsifikatsiyalarining dastlabki to'plamiga (ya'ni, muammo bayonnomasi) asoslanib, yakuniy mahsulot (ya'ni, dizayn) uchun batafsil dizayn va texnik shartlarni ishlab chiqishi kerak.

Agar u yuqoridan pastga loyihalash usulidan foydalansa, unda bitta dizayn muammosi ikkita kichik kichik muammoga bo'linishi mumkin: (1) sovutgichning dizayni va (2) muzlatgichning dizayni.

Shu bilan birga, siz pastdan yuqoriga loyihalash usulidan foydalanishingiz mumkin va sovutish kompressorini, keyin esa sovutish quvurlari, qurilma yoki sovuq xonani loyihalashdan boshlashingiz mumkin. Bunday holda, ushbu tanlov butun loyihaga ma'lum cheklovlar qo'yadi.

Dizaynerning vazifasi muammoning bayoni va bajarishga tayyor bo'lgan dastur o'rtasida bog'lovchi vazifasini bajaradigan algoritm yaratishdir. Yaratilgan algoritmni tekshirish, ya'ni muammoni shakllantirishni qanchalik to'g'ri aks ettirishi tizim tahlilchisi tomonidan amalga oshiriladi. Shu sababli, tizim tahlilchisi ham, dizayner ham algoritmni o'qishi va tushunishi kerak. Har bir algoritm qandaydir psevdo-tilda yozilgan . Psevdokodlar deb ham ataladigan algoritmlarni hech qanday kompyuterda bajarib bo'lmaydi.

Kodlovchining vazifasi algoritmni dasturga aylantirishdir. To'liq, aniq va tushunarli dastur yaratish uchun dasturlarni yozishning tegishli usullari talab qilinadi. Masalan, oshxona retseptlari odatda ingliz, frantsuz, rus yoki yapon kabi tabiiy tillarda yoziladi. Dasturlar dasturlash tillarida yozilgan. Hozirgi vaqtda tabiiy tillarning hech biri dasturlash tili sifatida ishlatilmaydi, chunki ular mashinalar tomonidan "tushunish" uchun juda murakkab. Tabiiy tillardan farqli o'laroq, dasturlash tillari kompyuter tomonidan bajarilishi mumkin bo'lgan muammoni hal qilish uchun maxsus yaratilgan.

Koder chiqishdan oldin dastur psevdokodga mos kelishiga ishonch hosil qilishi kerak. Keyin tizim tahlilchisi, algoritmist va eng muhimi, foydalanuvchi uning to'g'ri ishlashini sinab ko'rishi va tasdiqlashi kerak. Shundan so'ng, dastur barcha kerakli hujjatlar bilan to'liq foydalanuvchiga o'tkazishga tayyor deb taxmin qilishimiz mumkin.

Biroq, dasturlash shu bilan tugamaydi; dan so'ng hamrohlik bosqichi. Gap shundaki, muammoning noto'g'ri ko'rsatilishi yoki loyiha muammoning bayonotini qoniqtirmasligi yoki dastur loyihaga mos kelmasligi sababli dasturda xatolar bo'lishi mumkin. Nima sababdan bo'lishidan qat'iy nazar, foydalanuvchi dasturni sozlashni talab qilish huquqiga ega, chunki u dasturning bu tarzda ishlashini tasavvur qilmagan. Xatolarni tuzatish dasturga texnik xizmat ko'rsatishning asosiy vazifalaridan biridir. Dasturga texnik xizmat ko'rsatishning yana bir muhim vazifasi - uni o'zgartirish, ya'ni dasturga yangi xususiyatlarni qo'shish yoki mavjudlarini o'zgartirish. Foydalanuvchi dasturning ishlashiga qo'yiladigan talablarni o'zgartirishi mumkin, bu esa, o'z navbatida, uni qayta yozish zarurligiga olib keladi. Dasturga texnik xizmat ko'rsatishning murakkabligi amalga oshirilishi kerak bo'lgan o'zgarishlar turiga bog'liq: eng yomon holatda, dasturni ishlab chiqarishdan kodlashgacha butunlay qayta ishlab chiqish kerak bo'lishi mumkin. Odatda, dasturni yaratishdan ko'ra uni saqlashga ko'proq vaqt sarflanadi.

Dasturlash jarayonining oxirgi qismi hujjatlar. U dasturlash jarayonini osonlashtiradigan va natijada olingan dasturni boyitadigan keng qamrovli tavsiflarni o'z ichiga oladi. Uzluksiz hujjatlar har bir dasturlash bosqichining ajralmas qismi bo'lishi kerak. Masala qo'yilishi, loyiha hujjatlari, algoritmlar va dasturlar - bularning barchasi hujjatlardir. To'g'ridan-to'g'ri dasturga kiritilgan ichki hujjatlar kodni o'qishni osonlashtiradi. O'quv qo'llanmasining maqsadi (hujjatlarning boshqa shakli) foydalanuvchiga yangi dasturdan foydalanishni o'rgatishdir; Ma'lumotnomada dasturiy ta'minot buyruqlarining tavsifi berilgan.

1.1-band bo'yicha xulosa.

Ushbu bobda keltirilgan modelga ko'ra, dasturlashni to'rt bosqichga bo'lish mumkin: muammoni aniqlash, echimlarni loyihalash, dasturni kodlash va dasturni saqlash. Bundan tashqari, model dasturni butun dasturlash jarayonida bajarilishi kerak bo'lgan faoliyat sifatida hujjatlashtirishni o'z ichiga oladi.

Dasturlash modeli katta muammolarni hal qilish uchun maxsus qurilgan, chunki ular kompyuter olimlarini qiziqtiradi. Biroq, amalda, muammolarning kattaligidan qat'i nazar, dasturni loyihalash uchun ehtiyotkorlik bilan tanlangan muhandislik usullarini qo'llash muhimdir: kichikroq muammolarni hal qilishda olingan ko'nikmalarni mustahkamlash va katta muammolarni hal qilishda muvaffaqiyatli amalga oshirish mumkin.

ta'riflar;

amalga oshirish;

xizmat.

1.2.1 Tizim ta'rifi

Dasturiy ta'minotni yaratish jarayoni tizim tahliliga olib keladigan amaliy tadqiqotlar bilan boshlanadi, uning vazifasi tizim va dasturlarga bo'lgan umumiy talablarni aniqlashdir. Bunday tahlil, birinchi navbatda, haqiqiy ehtiyoj va maqsadlarni belgilashi va iloji bo'lsa, maqsadga erishish uchun mavjud usullarni aniqlashi kerak. Agar kerak bo'lsa, tahlil matematik yoki boshqa rasmiy sxemalarga asoslanishi mumkin. Har qanday yondashuv bilan ko'rsatilgan tahlil ma'lum bir tuzilishga ega bo'lishi va biron bir nazariyaga muvofiq amalga oshirilishi kerak deb ishoniladi. Tahlilchilar va potentsial foydalanuvchilar bilan birgalikda amalga oshiriladigan tahlil va takomillashtirish talablarning yakuniy spetsifikatsiyasini ishlab chiqishga olib kelishi kerak. .

Bunday spetsifikatsiyani yozish jarayoni talablarni aks ettirish ma'nosida to'liq va amalga oshirish ta'rifiga mos keladigan to'g'ri texnik spetsifikatsiyani olishga qaratilgan. Spetsifikatsiyalarni tayyorlashdan keyingi bosqich dizayn, ma'nosi ma'lumotlarni aniqlash va tuzish, ularni o'zgartirish va uzatishni tashkil etishdir. Bundan tashqari, ushbu bosqichda ma'lum ma'noda tizim funktsiyalarining optimal taqsimlanishiga erishish, algoritm va protseduralarni tanlash, shuningdek tizim komponentlarini va ular o'rtasidagi munosabatlarni aniqlash kerak.

Tugallagandan keyin dizayn boshlashimiz mumkin amalga oshirish tizimlari. Biroq, amalda loyihalash va amalga oshirish bosqichlari bir-biriga mos keladi. Shunday qilib, bo'linishning ierarxik jarayoni davom etar ekan, tizimning ba'zi elementlarini tahlil qilish amalga oshirishga o'tish uchun etarli darajada to'liq hisoblanishi mumkin, boshqa elementlar esa qo'shimcha tushuntirishlarni talab qiladi.

Amalga oshirish jarayonida dasturning to'g'riligini aniqlash kerak. Zamonaviy protseduralar asosan sinovga asoslangan, garchi so'nggi yillarda yakuniy tizimli nazorat va dasturlarni tekshirish usullaridan foydalanish ko'paygan.

Har qanday holatda, dasturni bajarish orqali test qilish odatda pastdan yuqoriga, birinchi navbatda blok (modul yoki protsessual) darajasida, so'ngra funktsional ravishda, komponentlar bo'yicha amalga oshiriladi. Alohida komponentlar sinovdan o'tkazilganda, ular tizimni joylashtirish jarayonida tizimga birlashtiriladi, shundan so'ng tizim sinovi boshlanadi. Oxir oqibat, tizimning ishlash sifati mustaqil ravishda tekshirilgandan va uning parametrlari baholangandan so'ng, u tayyor deb hisoblanadi. ozod qilish.

1.2.3 Xizmat ko'rsatish

Xizmat ko'rsatish jarayoni tizim chiqarilgandan so'ng darhol boshlanadi. Xatolarni aniqlash va tuzatish kerak. Agar xato foydalanuvchining normal ishlashiga xalaqit bersa, noto'g'ri dastur tizimdan vaqtincha olib tashlanishi yoki foydalanilayotgan tizimlarning bir qismi yoki barchasiga vaqtinchalik yoki doimiy tuzatishlar kiritilishi mumkin. Doimiy tuzatish yoki o'zgartirish tizimning yangi versiyasiga kiritilishi mumkin. Barcha o'zgarishlarni va ularning kombinatsiyalarini joylashtirish uchun tizim elementlarining bir nechta versiyalari yaratiladi. Asosiy vazifa tizim konfiguratsiyasini boshqarishga aylanadi. Dasturlashni boshqarishda hal qiluvchi rol tizimdagi barcha o'zgarishlarni avtomatik ravishda to'playdigan va tartibga soluvchi qo'llab-quvvatlash xizmatlariga tegishli.

Xulosa 1.2-bandga.

Dastur ishlab chiqiladigan metatizim yuqorida ko'rsatilganidan sezilarli darajada ko'proq teskari aloqa davrlarini o'z ichiga oladi. Ko'pgina harakatlar bir-birining ustiga chiqadi, murakkab yo'llar bilan o'zaro bog'lanadi va muntazam ravishda takrorlanadi. Shuning uchun, Boehm tomonidan taqdim etilgan LCPO modeli etarli darajada oqlanadi.

1.3 Boem bo'yicha hayot aylanish markazlarining bosqichlari va ishi

Kaskad modeli 70-80-yillarda taqdim etilgan. Har bir dastur bir butun bo'lganida, bu bir hil dasturiy ta'minot uchun qulaydir.

Modelning asosiy xususiyatlari:

Hayotiy tsikl bosqichlarga (bosqichlarga) bo'linadi;

Bosqichdan bosqichga o'tish - faqat joriy bosqich to'liq tugagandan so'ng;

Bosqich hujjatlarning to'liq to'plamini chiqarish bilan yakunlanadi, bu ishni boshqa ishlab chiqish guruhi tomonidan yakunlanishi uchun etarli.

Asosiy xususiyatlar kaskad modeli quyidagi:

har bir bosqichni tekshirish va tasdiqlash bilan yakunlash, uning maqsadi mahsulotni ishlab chiqish bilan bog'liq bo'lgan muammolarni imkon qadar ko'proq bartaraf etish;

imkon qadar erta bosqichdan boshlab amalga oshirilgan bosqichlarning tsiklik takrorlanishi.

2-rasm. LCPO ning kaskad modeli.

Kaskad modelida hayot tsiklining bosqichlaridan birini muvaffaqiyatli yakunlash tegishli muhandislik dasturlash maqsadiga erishishni anglatadi (2.4-bandga qarang). Ushbu kichik maqsadlarga yana ikkitasini qo'shishingiz kerak:

Batafsil dizayn imkoniyati- to'liq tasdiqlangan spetsifikatsiyalar va boshqaruv va ma'lumotlar tuzilmalari, interfeys ulanishlari, xarakteristikalar, asosiy algoritmlarni olish va har bir dasturiy ta'minot komponentining ishlash shartlarini aniqlash.

Kodlash qobiliyati- dastur komponentlarining to'liq, tasdiqlangan to'plamini olish.

Asosiy afzalliklari:

Sahnadagi ish oxirida loyiha hujjatlarining to'liq to'plamini shakllantirish. Hujjatlar to'liqlik va to'liqlik mezonlariga javob beradi;

Belgilangan muddatlar va xarajatlarni rejalashtirish qobiliyati. Bir qator dasturiy ta'minot ilovalari uchun ushbu model amalga oshirilishi mumkin - bu tahlil bosqichida barcha talablarni aniq va to'liq shakllantirish mumkin bo'lgan tizimlar uchun. Masalan, murakkab hisoblash dasturlari.

Asosiy kamchiliklari:

Tahlildan to yakunlashgacha bo'lgan uzoq muddat;

Dasturiy ta'minotga bo'lgan talablar ishlab chiqish oxirigacha texnik xususiyatlar shaklida "muzlatilgan".

1.3.2 Kaskad modelining iqtisodiy asoslanishi

Iqtisodiy tahlilga chuqurroq kirmasdan, B.U. Boem "Dasturiy ta'minot muhandisligi" kitobida katta e'tibor beradi, aytaylik, maqsadlarga ketma-ket erishishga qaratilgan sharshara modelining iqtisodiy asoslanishi ikkita asosiy shartga asoslanadi:

Yuqori sifatli dasturiy mahsulotni olish uchun (ya'ni, kerakli dasturiy mahsulotning barcha maqsadlarini to'liq qondiradigan) har qanday holatda ham har bir bosqichda barcha kichik maqsadlarni amalga oshirish kerak.

Submaksadlarning boshqa har qanday buyurtmasi past sifatli dasturiy mahsulot yaratilishiga olib keladi.

1.3.3 Kaskad modelini takomillashtirish

Keling, ideal sharshara modelining yaxshilanishlaridan birini ko'rib chiqaylik - bosqichma-bosqich rivojlanish.

Bosqichma-bosqich rivojlanish prototiplash va qatlamli yuqoridan pastga ishlab chiqish bilan iterativ dizayn usulini takomillashtirishdir. Bu usul ishlab chiqish jarayonida dasturiy ta'minotning funksionalligini bosqichma-bosqich oshirishni o'z ichiga oladi.

Rivojlangan sharshara modeli sifatida incremental rivojlanish juda katta va kichik dasturiy mahsulotlarni yaratishda muvaffaqiyatli qo'llanildi.

Bosqichma-bosqich rivojlanishning mutlaqo takroriy rivojlanish va bosqichma-bosqich yuqoridan pastga rivojlanishdan asosiy afzalliklari quyidagilardan iborat:

dasturning ketma-ket kengaytmalaridan foydalanish foydalanuvchi tajribasini qayta ishlab chiqishga qaraganda takomillashtirilgan mahsulotga qo'shishning ancha arzon usulini ta'minlaydi;

funksionallikni yaxshilashni sinab ko'rish ancha oson va qatlamli ishlab chiqishda oraliq mahsulotlarga qaraganda foydaliroqdir.

Qo'shimcha rivojlanishning qiymati asosan loyiha uchun mehnat xarajatlarini taqsimlashni o'zgartirishdan iborat. Bosqichma-bosqich rivojlanish bilan kaskad modelining varianti 3-rasmda ko'rsatilgan.

1.3.4 Hayotiy tsikl fazalarining ta'rifi

Quyida keyingi bosqichga o'tish uchun har bir bosqichning yakuniy maqsadlarini shakllantirish berilgan. Bosqichma-bosqich rivojlanish uchun berilgan bayonotlar har bir kengaytirish bosqichining bosqich chegaralariga ishora qiladi.

Talablarni rejalashtirish va tahlil qilish bosqichini boshlang.(LCPE ning to'liq kontseptual sharhi.)

Tasdiqlangan va tasdiqlangan tizim arxitekturasini, shu jumladan apparat va dasturlar o'rtasida funktsiyalarni taqsimlash bo'yicha asosiy kelishuvlarni olish. Shaxs va tizim o'rtasida funktsiyalarni taqsimlash bo'yicha asosiy kelishuvlarni o'z ichiga olgan dasturiy ta'minotning ishlashi haqida tasdiqlangan va tasdiqlangan umumiy tushunchani olish.

Hayotiy tsikl jarayonining bosh rejasini shakllantirish, asosiy bosqichlarni, resurslarni, majburiyatlarni, muddatlarni va asosiy ishlarni belgilash.

Talablarni rejalashtirish va tahlil qilish bosqichini yakunlang. Mahsulotni loyihalash bosqichini boshlang.(Dasturiy ta'minot talablarini to'liq ko'rib chiqish).

Batafsil rivojlanish rejasini shakllantirish: rivojlanish bosqichlarini yakunlash bo'yicha batafsil ko'rsatkichlar, resurslarni taqsimlash rejalari, tashkiliy tuzilma diagrammalari, majburiyatlar, muddatlar, ishlar, usullar va mahsulotlar.

Foydalanishning batafsil rejasini shakllantirish: rivojlanish rejasining punktlari, uning mazmuni o'qitish, dasturlarni uzatish, amalga oshirish, foydalanish va texnik xizmat ko'rsatishga qaratilgan.

Mahsulotni tuzatishning batafsil rejasini shakllantirish - apparat konfiguratsiyasini boshqarish rejasi, sifatni nazorat qilish rejasi, umumiy tekshirish va tasdiqlash rejasi.

Tasdiqlangan va tasdiqlangan dasturiy ta'minot talablari spetsifikatsiyasi: to'liq, izchil, tekshirilishi va amalga oshirilishi isbotlangan funktsional, texnik va interfeys spetsifikatsiyalari.

Yuqoridagi fikrlarga asoslangan tasdiqlangan (rasmiy yoki norasmiy) rivojlanish shartnomasi.

Mahsulotni loyihalash bosqichini tugating. Batafsil dizayn bosqichini boshlang.(Mahsulotni loyihalash natijalari tahlilini yakunlash.)

Dasturiy mahsulot loyihasi uchun tasdiqlangan spetsifikatsiyani ishlab chiqish:

dasturiy ta'minot komponentlari ierarxiyasini, ma'lumotlar va boshqarish uchun bloklararo interfeyslarni shakllantirish;

jismoniy va mantiqiy ma'lumotlar tuzilmalarini individual maydonlar darajasiga qadar shakllantirish;

hisoblash resurslarini taqsimlash rejasini ishlab chiqish (vaqt, xotira, aniqlik);

talablarning to'liqligi, izchilligi, amalga oshirilishi mumkinligi va asosliligini tekshirish.

Rivojlanishning xavf darajasini oshiradigan barcha qarama-qarshiliklarni aniqlash va hal qilish.

Integratsiya va disk raskadrovkaning dastlabki bosqichini, foydalanuvchi qo'llanmasi rejasini va qabul qilish testlarini ishlab chiqish.

Batafsil dizayn bosqichini yakunlang. Kodlash va oflayn nosozliklarni tuzatish bosqichini boshlang.(Loyihani oxirigacha nazorat qilishni yakunlash yoki loyihani blok-blok tahlil qilish.)

Har bir blokning tasdiqlangan batafsil spetsifikatsiyasi:

har bir kichik dasturning spetsifikatsiyasi, nomi, maqsadi, taxminlari, o'lchamlari, qo'ng'iroqlar ketma-ketligi, xato chiqishi, kirish va chiqish ma'lumotlari, algoritmlar va mantiqiy dizayn;

ma'lumotlar bazasini individual parametrlar, belgilar va bitlar darajasigacha tavsiflash;

Tizim dizayni spetsifikatsiyalari va resurslarni taqsimlash rejalariga to'liqlik, izchillik va muvofiqlikni tekshirish.

Tasdiqlangan qabul sinovi rejasi.

Foydalanuvchi qo'llanmalari, shuningdek, tugallangan dastlabki integratsiya va disk raskadrovka rejasi.

Nusxa ko'chirish va disk raskadrovka bosqichini tugating. Integratsiya va disk raskadrovka bosqichini boshlang.(Oflayn nosozliklarni tuzatish mezonlarini qondirish.)

Barcha birliklarning ishlashini faqat nominal qiymatlar uchun emas, balki istisno va cheklovchi qiymatlar uchun ham tekshirish.

Barcha kirish va chiqish opsiyalarini, shu jumladan xato xabarlarini tekshirish.

Barcha operatorlar va boshqaruvni uzatishning barcha tarmoqlarini bajarish.

Dasturlash standartlariga muvofiqligini tekshirish.

Ichki strukturaning blok-blok hujjatlarini to'ldirish.

Integratsiya va sinov bosqichini yakunlang. Amalga oshirish bosqichini boshlang.(Qabul qilish testi natijalari tahlilini yakunlash.)

Dasturni qabul qilish testiga muvofiqligini tekshirish:

dasturiy ta'minot talablariga muvofiqligini tekshirish;

G'ayritabiiy sharoitlarda spetsifikatsiyalarda ko'rsatilgan ishlash ko'rsatkichlarining maqbulligini namoyish qilish.

Yetkazib berilgan dasturiy mahsulotlar, hisobotlar, qo'llanmalar, ma'lumotlar bazalari, ichki tuzilma spetsifikatsiyalarini qabul qilish.

Amalga oshirish bosqichini yakunlang. Foydalanish va texnik xizmat ko'rsatish bosqichini boshlang.(Tizimni qabul qilishni to'liq tekshirish.)

Tizimni qabul qilish testlarining qoniqarli natijalarini tekshirish.

Tizim talablari qoniqarli ekanligini tekshirish.

Dasturiy ta'minot, texnik vositalar, texnik xizmat ko'rsatish vositalari va xodimlarning ishlab chiqarishga tayyorligini tekshirish.

Yetkazib beriladigan va tizimga kiritilgan mahsulotlarni qabul qilish: apparat, dasturiy ta'minot, hujjatlar, o'qitish va texnik xizmat ko'rsatish vositalari.

Belgilangan barcha ishlarni yakunlash va tizimni ishga tushirish.

Foydalanish va texnik xizmat ko'rsatish bosqichini yakunlang(to'xtatish orqali).

Ishdan chiqarish rejasining barcha bandlarini bajarish: dasturlarni o'tkazish, hujjatlashtirish, arxiv yaratish, yangi tizimga o'tish.

1.3.5 Loyiha bo'yicha asosiy ish

Talablarni tahlil qilish.

Mahsulot dizayni.

Dasturlash.

Nosozliklarni tuzatishni rejalashtirish.

Tasdiqlash va tasdiqlash.

Loyihalar boshqaruvi.

Konfiguratsiyani boshqarish va sifat nazorati.

Shunday qilib, dasturiy ta'minotning hayot aylanishini aniqlashning uchta yondashuvi ko'rib chiqildi. Menimcha, ularning barchasi mavjud bo'lish huquqiga ega, chunki u yoki bu darajada ular dasturlash amaliyotini aks ettiradi. Bundan tashqari, umumiy fikrlarni aniqlash oson (vazifa qo'yiladi - tizim aniqlanadi - talablar tahlil qilinadi; dasturga texnik xizmat ko'rsatish - texnik xizmat ko'rsatish - foydalanish va texnik xizmat ko'rsatish).

Ammo shuni ta'kidlash kerakki, Boemning hayot tsikli markazining fazalari va faoliyati haqidagi ta'rifi eng asosli hisoblanadi, chunki muhandislik dasturlashda ko'proq yo'naltirilgan yondashuvga tayanadi (yuqori sifatli dasturiy mahsulotni olishga va samarali dasturiy ta'minotni ishlab chiqish va texnik xizmat ko'rsatish jarayonini amalga oshirishga qaratilgan) va iqtisodiy jihatdan oqlanadi.

Ushbu ma'ruza asosida dasturiy mahsulot (mahsulot) yaratishda zamonaviy dunyo ehtiyojlarini bilish qanchalik muhim va zarur ekanligi ayon bo'ladi. Har qanday tizimni avtomatlashtirish dasturini tuzishda zamonaviy dunyo doimo o'zgarib turishini hisobga olish kerak, bu dastur o'zgartirishga qodir bo'lishi kerakligini anglatadi.

Dasturni tuzishda dasturning aniq bo'lishi kerakligini hisobga olish ham muhimdir; mazmuni bo'yicha to'liq va o'z maqsadiga muvofiq kichik va katta muammolar bilan ishlash uchun mos; aniq - foydalanuvchi u bilan xotirjam va qiyinchiliksiz ishlashi uchun. Shuningdek, dastur zamonaviy dunyoning o'zgaruvchan talablariga muvofiq istalgan vaqtda osongina tuzatilishi yoki to'ldirilishi mumkin.

Shuni esda tutish kerakki, yaxshi dasturlash har qanday mos texnikadan foydalangan holda tezkor echimni kodlash emas, balki to'liq, aniq va oson tushuniladigan (aniq) dasturiy ta'minotni ishlab chiqaradigan ehtiyotkorlik bilan jihozlangan muhandislik protsedurasi haqidadir.


1. B.U. Boehm, dasturiy ta'minot muhandisligi. M.: Radio va aloqa. 1985 yil.

2. D. Rayli. "Modula-2 tilidan foydalanish." M .: Mir. 1993 yil.

3. Yu.V. Ivanov "Dasturlar va ularning hayot davrlari" ("Dasturiy ta'minot metrologiyasi" fanidan referat). 1998 yil.

Salom, aziz Xabrovsk aholisi! O'ylaymanki, kimdir ilgari dasturiy ta'minotni ishlab chiqish, joriy etish va ulardan foydalanishning qanday modellari mavjud bo'lganligini, hozirda qaysi modellar asosan qo'llanilayotganini, nima uchun va aslida nima ekanligini eslash qiziq bo'ladi. Bu mening kichik mavzuim bo'ladi.

Aslida, bu nima dasturiy ta'minotning hayot aylanishi- tizimni yaratish va undan keyingi foydalanish jarayonida yuzaga keladigan bir qator hodisalar. Boshqacha qilib aytadigan bo'lsak, bu har qanday dasturiy mahsulot yaratilishining dastlabki daqiqasidan boshlab uni ishlab chiqish va joriy etishning oxirigacha bo'lgan vaqt. Dasturiy ta'minotning hayot aylanishi modellar ko'rinishida ifodalanishi mumkin.

Dasturiy ta'minotning hayot aylanishi modeli- dasturiy mahsulotni ishlab chiqish, foydalanish va texnik xizmat ko'rsatish jarayonida amalga oshiriladigan harakat jarayonlari va vazifalarini o'z ichiga olgan tuzilma.
Ushbu modellarni 3 asosiy guruhga bo'lish mumkin:

  1. Muhandislik yondashuvi
  2. Vazifaning o'ziga xos xususiyatlarini hisobga olgan holda
  3. Tez rivojlanishning zamonaviy texnologiyalari
Endi mavjud modellarni (kichik sinflarni) ko'rib chiqamiz va ularning afzalliklari va kamchiliklarini baholaymiz.

Xatolarni kodlash va bartaraf etish modeli

Universitet talabalari uchun odatiy bo'lgan mutlaqo oddiy model. Aynan shu model bo'yicha ko'pchilik talabalar, aytaylik, laboratoriya ishlarini rivojlantiradilar.
Ushbu model quyidagi algoritmga ega:
  1. Muammoni shakllantirish
  2. Ishlash
  3. Natijani tekshirish
  4. Agar kerak bo'lsa, birinchi nuqtaga o'ting
Model ham qo'rqinchli eskirgan. Bu 1960-1970 yillar uchun odatiy holdir, shuning uchun bizning sharhimizda quyidagi modellarga nisbatan deyarli hech qanday afzalliklarga ega emas, ammo kamchiliklari aniq. Modellarning birinchi guruhiga tegishli.

Sharshara dasturining hayot aylanishi modeli (palapartishlik)

Men diagrammada ko'rsatgan ushbu usulning algoritmi avvalgi model algoritmiga nisbatan bir qator afzalliklarga ega, ammo bir qator xususiyatlarga ega. ahamiyatli kamchiliklar.

Afzalliklari:

  • Loyiha bosqichlarini qat'iy belgilangan tartibda ketma-ket amalga oshirish
  • Har bir bosqichda mahsulot sifatini baholash imkonini beradi
Kamchiliklari:
  • Bosqichlar o'rtasida aloqa yo'q
  • Dasturiy ta'minot mahsulotlarini ishlab chiqishning real shartlariga mos kelmaydi
Modellarning birinchi guruhiga tegishli.

Oraliq boshqaruvga ega kaskad modeli (girdob)

Ushbu model algoritm bo'yicha oldingi modelga deyarli teng, ammo u hayot tsiklining har bir bosqichi bilan qayta aloqa bog'liqligiga ega va bu juda muhim kamchilikni keltirib chiqaradi: Rivojlanish xarajatlarining 10 barobar oshishi. Modellarning birinchi guruhiga tegishli.

V modeli (sinov asosida ishlab chiqish)

Ushbu model zamonaviy usullarga yaqinroq algoritmga ega, ammo hali ham bir qator kamchiliklarga ega. Bu ekstremal dasturlashning asosiy amaliyotlaridan biridir.

Prototip ishlab chiqishga asoslangan model

Ushbu model prototiplarni ishlab chiqish va mahsulot prototipini yaratishga asoslangan.
Prototiplash dasturiy ta'minotning hayot aylanishining dastlabki bosqichlarida qo'llaniladi:
  1. Noaniq talablarni aniqlang (UI prototipi)
  2. Bir qator kontseptual echimlardan birini tanlang (stsenariylarni amalga oshirish)
  3. Loyihaning maqsadga muvofiqligini tahlil qilish
Prototiplarning tasnifi:
  1. Gorizontal va vertikal
  2. Bir martalik va evolyutsion
  3. qog'oz va hikoyalar taxtasi
Gorizontal prototiplar - qayta ishlash mantig'i va ma'lumotlar bazasiga ta'sir qilmasdan faqat UI modellari.
Vertikal prototiplar - me'moriy echimlarni sinovdan o'tkazish.
Bir martalik prototiplar - tez rivojlanish uchun.
Evolyutsion prototiplar evolyutsion tizimning birinchi yaqinlashuvidir.

Model ikkinchi guruhga tegishli.

Spiral dasturiy ta'minotning hayot aylanishi modeli

Spiral model - bu pastdan yuqoriga va yuqoridan pastga tushunchalarning afzalliklarini birlashtirish uchun dizaynni va qo'shimcha prototiplashni birlashtirgan dasturiy ta'minotni ishlab chiqish jarayoni.

Afzalliklari:

  • Natijalarni tezda oling
  • Raqobatbardoshlikni oshirish
  • Talablarni o'zgartirish muammo emas
Kamchiliklari:
  • Bosqichni tartibga solishning yo'qligi
Uchinchi guruhga bunday modellar kiradi ekstremal dasturlash(XP) SCRUM, qo'shimcha model(RUP), lekin men ular haqida alohida mavzuda gaplashmoqchiman.

E'tiboringiz uchun katta rahmat!