-Amaliy mashg’ulot - Dasturiy injiniring kafedrasi

4-Amaliy mashg’ulot
Mavzu: Dasturiy ta’minotni konstruksiyalashga tayyorlanish.
Ishdan maqsad: Dasturiy taminotni konstruksiyalashga tayyorlash, mahsulotni sistemali taxlil qilish hamda maxsus funksiyalarni ishlatishga amaliy ko’nikma hosil qilish.
Dasturiy ta'minot konstruktsiyasi atamasi kodlash, tekshirish, birlik testi, integratsiya testi va disk raskadrovka kombinatsiyasi orqali ishlaydigan dasturiy ta'minotni batafsil yaratishni anglatadi. Dasturiy ta'minotni qurish bo'yicha bilim sohasi (KA) boshqa barcha KAlar bilan bog'langan, lekin u dasturiy ta'minotni loyihalash va dasturiy ta'minotni sinovdan o'tkazish bilan kuchli bog'langan, chunki dasturiy ta'minotni qurish jarayoni muhim dasturiy ta'minotni loyihalash va sinovdan o'tkazishni o'z ichiga oladi. Jarayon dizayn natijalaridan foydalanadi va testga kirishni ta'minlaydi ("dizayn" va "sinov" bu holda KA emas, balki faoliyatni nazarda tutadi). Dizayn, qurilish va sinov o'rtasidagi chegaralar (agar mavjud bo'lsa) loyihada ishlatiladigan dasturiy ta'minotning hayot aylanishi jarayonlariga qarab o'zgaradi. Qurilishdan oldin ba'zi batafsil loyihalash amalga oshirilishi mumkin bo'lsa-da, qurilish faoliyati davomida ko'p loyihalash ishlari amalga oshiriladi. Shunday qilib, dasturiy ta'minotni qurish KA dasturiy ta'minotni loyihalash KA bilan chambarchas bog'liq. Qurilish davomida dasturiy ta'minot muhandislari ham birlik sinovi, ham integratsiya o'z ishlarini sinab ko'rishadi. Shunday qilib, dasturiy ta'minot konstruktsiyasi KA dasturiy ta'minotni sinovdan o'tkazish KA bilan ham chambarchas bog'liq. Dasturiy ta'minot konstruktsiyasi odatda dasturiy ta'minot loyihasida boshqarilishi kerak bo'lgan eng ko'p konfiguratsiya elementlarini ishlab chiqaradi (manba fayllar, hujjatlar, test holatlari va boshqalar). Shunday qilib, dasturiy ta'minot konstruktsiyasi KA dasturiy ta'minot konfiguratsiyasini boshqarish KA bilan ham chambarchas bog'langan. Dasturiy ta'minot sifati barcha KAlarda muhim bo'lsa-da, kod dasturiy ta'minot loyihasining yakuniy ta'minotidir va shuning uchun dasturiy ta'minot sifati KA dasturiy ta'minotni qurish KA bilan chambarchas bog'liq. Dasturiy ta'minotni qurish algoritmlar va kodlash amaliyotlarini bilishni talab qilganligi sababli, u dasturiy mahsulotlarni loyihalash va qurishni qo'llab-quvvatlaydigan kompyuter fanlari asoslari bilan bog'liq bo'lgan Computing Foundations KA bilan chambarchas bog'liq. Bu, shuningdek, loyihani boshqarish bilan bog'liq, chunki qurilishni boshqarish katta qiyinchiliklarga duch kelishi mumkin.
Dasturiy ta'minotni qurish asoslari quyidagilarni o'z ichiga oladi murakkablikni minimallashtirish o'zgarishni kutish tekshirish uchun qurish qayta ishlatmoq qurilishda standartlar.
Birinchi to'rtta kontseptsiya dizaynga ham, qurilishga ham tegishli. Quyidagi bo'limlar ushbu tushunchalarni belgilaydi va ularning qurilishga qanday tatbiq etilishini tavsiflaydi.
1.1 Murakkablikni minimallashtirish
Aksariyat odamlar murakkab tuzilmalarni va ma'lumotlarni ish xotiralarida, ayniqsa uzoq vaqt davomida saqlash qobiliyatida cheklangan. Bu odamlarning kompyuterga niyatlarini qanday etkazishiga ta'sir qiluvchi asosiy omil bo'lib, dasturiy ta'minotni yaratishda eng kuchli disklardan biriga olib keladi: murakkablikni minimallashtirish. Murakkablikni kamaytirish zarurati dasturiy ta'minotni qurishning deyarli barcha jihatlariga taalluqlidir va dasturiy ta'minot konstruktsiyalarini sinovdan o'tkazish uchun juda muhimdir. Dasturiy ta'minotni yaratishda murakkablikni kamaytirishga aqlli emas, balki oddiy va o'qilishi mumkin bo'lgan kod yaratishga urg'u berish orqali erishiladi. Bu standartlardan (1.5-bo'lim, Qurilish standartlariga qarang), modulli dizayndan (3.1-bo'lim, Qurilish loyihasiga qarang) va boshqa ko'plab maxsus texnikalardan (3.3-bo'lim, Kodlash bo'limiga qarang) foydalanish orqali amalga oshiriladi. Shuningdek, u qurilishga yo'naltirilgan sifat texnikasi bilan ham qo'llab-quvvatlanadi (3.7 bo'limga qarang, Qurilish sifati).
1.2 O'zgarishlarni kutish
Ko'pgina dasturiy ta'minot vaqt o'tishi bilan o'zgaradi va o'zgarishlarni kutish dasturiy ta'minotni qurishning ko'p jihatlarini boshqaradi; dasturiy ta'minot ishlaydigan muhitdagi o'zgarishlar dasturiy ta'minotga turli yo'llar bilan ta'sir qiladi. O'zgarishlarni kutish dasturiy ta'minot muhandislariga kengaytiriladigan dasturiy ta'minotni yaratishga yordam beradi, ya'ni ular dasturiy mahsulotni asosiy tuzilmani buzmasdan yaxshilashlari mumkin. O'zgarishlarni oldindan ko'rish ko'plab o'ziga xos usullar bilan qo'llab-quvvatlanadi (3.3, Kodlash bo'limiga qarang).
1.3 Tekshirish uchun qurilish
Tasdiqlash uchun qurish deganda dasturiy ta'minotni shunday yaratish tushuniladiki, xatolar dasturiy ta'minotni yozuvchi muhandislar, shuningdek, mustaqil sinov va operatsion faoliyat davomida testerlar va foydalanuvchilar tomonidan topilishi mumkin. Tekshirish uchun qurilishni qo'llab-quvvatlaydigan o'ziga xos usullarga kodni ko'rib chiqish va birlik testini qo'llab-quvvatlash uchun quyidagi kodlash standartlari, avtomatlashtirilgan testlarni qo'llab-quvvatlash uchun kodni tashkil qilish va murakkab yoki tushunish qiyin til tuzilmalaridan foydalanishni cheklash va boshqalar kiradi.
1.4 Qayta foydalanish
Qayta foydalanish turli muammolarni hal qilishda mavjud aktivlardan foydalanishni anglatadi. Dasturiy ta'minotni qurishda qayta foydalaniladigan odatiy aktivlarga kutubxonalar, modullar, komponentlar, manba kodi va tijoratdan tashqari (COTS) aktivlari kiradi. Qayta foydalanish eng yaxshi tizimli ravishda, aniq belgilangan, takrorlanadigan jarayonga muvofiq amalga oshiriladi. Tizimli qayta foydalanish dasturiy ta'minot samaradorligini, sifatini va narxini sezilarli darajada oshirish imkonini beradi. Qayta foydalanish bir-biri bilan chambarchas bog'liq ikkita jihatga ega: "qayta foydalanish uchun qurilish" va "qayta foydalanish bilan qurilish". Birinchisi qayta foydalanish mumkin bo'lgan dasturiy ta'minot aktivlarini yaratishni anglatadi, ikkinchisi esa yangi yechimni qurishda dasturiy ta'minot aktivlarini qayta ishlatishni anglatadi. Qayta foydalanish ko'pincha loyihalar chegarasidan oshib ketadi, ya'ni qayta foydalanilgan aktivlar boshqa loyihalar yoki tashkilotlarda qurilishi mumkin.
1.5 Qurilishdagi standartlar
Qurilish jarayonida tashqi yoki ichki rivojlanish standartlarini qo'llash loyihaning samaradorlik, sifat va narx bo'yicha maqsadlariga erishishga yordam beradi. Xususan, ruxsat etilgan dasturlash tilining kichik to'plamlari va foydalanish standartlarini tanlash yuqori xavfsizlikka erishishda muhim yordamdir. Qurilish masalalariga bevosita ta'sir ko'rsatadigan standartlar kiradi
aloqa usullari (masalan, hujjat formatlari va mazmuni standartlari)
dasturlash tillari (masalan, Java va C++ kabi tillar uchun til standartlari)*kodlash standartlari (masalan, nomlash qoidalari, tartib va chekinish uchun standartlar)
platformalar (masalan, operatsion tizim qo'ng'iroqlari uchun interfeys standartlari)
asboblar (masalan, UML (Unified Modeling Language) kabi yozuvlar uchun diagrammatik standartlar).
Tashqi standartlardan foydalanish. Qurilish qurilish tillari, qurilish asboblari, texnik interfeyslar va dasturiy ta'minotni qurish KA va boshqa KAlar o'rtasidagi o'zaro aloqalar uchun tashqi standartlardan foydalanishga bog'liq. Standartlar ko'plab manbalardan, jumladan apparat va dasturiy ta'minot interfeysi spetsifikatsiyalaridan (masalan, Object Management Group (OMG)) va xalqaro tashkilotlardan (IEEE yoki ISO kabi) keladi. Ichki standartlardan foydalanish. Standartlar korporativ darajada tashkiliy asosda yoki muayyan loyihalarda foydalanish uchun ham yaratilishi mumkin. Ushbu standartlar guruh faoliyatini muvofiqlashtirish, murakkablikni minimallashtirish, o'zgarishlarni kutish va tekshirish uchun qurishni qo'llab-quvvatlaydi.
2 Qurilishni boshqarish
2.1 Hayotiy tsikl modellarida qurilish
Dasturiy ta'minotni ishlab chiqish uchun ko'plab modellar yaratilgan; ba'zilari boshqalardan ko'ra ko'proq qurilishga urg'u beradi. Ba'zi modellar qurilish nuqtai nazaridan ko'proq chiziqli, masalan, palapartishlik va bosqichma-bosqich etkazib berish hayot tsikli modellari. Ushbu modellar qurilishni faqat muhim shartlar bajarilgandan keyingina amalga oshiriladigan faoliyat sifatida ko'rib chiqadi, jumladan, batafsil talablar, keng dizayn ishlari va batafsil rejalashtirish. Ko'proq chiziqli yondashuvlar qurilishdan oldingi faoliyatni (talablar va dizayn) ta'kidlaydi va faoliyatlar o'rtasida aniqroq farqlarni yaratadi. Ushbu modellarda qurilishning asosiy urg'u kodlash bo'lishi mumkin. Boshqa modellar ko'proq iterativdir - masalan, evolyutsion prototiplash va tezkor rivojlanish. Ushbu yondashuvlar qurilishni boshqa dasturiy ta'minotni ishlab chiqish faoliyati (shu jumladan talablar, dizayn va rejalashtirish) bilan bir vaqtda sodir bo'ladigan yoki ularni bir-biriga mos keladigan faoliyat sifatida ko'rib chiqadi. Ushbu yondashuvlar loyihalash, kodlash va sinov faoliyatini aralashtirishga moyil bo'lib, ular ko'pincha faoliyat kombinatsiyasini qurilish sifatida ko'rib chiqadilar (qarang: Dasturiy ta'minotni boshqarish va dasturiy ta'minot jarayoni KA). Binobarin, "qurilish" deb hisoblangan narsa ma'lum darajada ishlatiladigan hayot tsikli modeliga bog'liq. Umuman olganda, dasturiy ta'minotni qurish asosan kodlash va disk raskadrovkadan iborat, lekin u qurilishni rejalashtirish, batafsil loyihalash, birlik testi, integratsiya testi va boshqa tadbirlarni ham o'z ichiga oladi.
2.2 Qurilishni rejalashtirish
Qurilish usulini tanlash qurilish-rejalashtirish faoliyatining asosiy jihati hisoblanadi. Qurilish usulini tanlash qurilishning dastlabki shartlarini bajarish darajasiga, ularni bajarish tartibiga va qurilish ishlari boshlanishidan oldin bajarilishi kerak bo'lgan darajaga ta'sir qiladi. Qurilishga yondashuv loyiha jamoasining murakkablikni kamaytirish, o'zgarishlarni kutish va tekshirish uchun qurish qobiliyatiga ta'sir qiladi. Ushbu maqsadlarning har biri jarayon, talablar va dizayn darajasida ham hal qilinishi mumkin, ammo ular qurilish usulini tanlashga ta'sir qiladi. Qurilishni rejalashtirish, shuningdek, tarkibiy qismlarni yaratish va birlashtirish tartibini, integratsiya strategiyasini (masalan, bosqichma-bosqich yoki bosqichma-bosqich integratsiya), dasturiy ta'minot sifatini boshqarish jarayonlarini, aniq dasturiy ta'minot muhandislariga topshiriqlarni taqsimlashni va boshqa vazifalarni belgilaydi. tanlangan usul.
2.3 Qurilish o'lchovi
Ko'plab qurilish ishlari va artefaktlarni o'lchash mumkin, jumladan kod ishlab chiqilgan, kod o'zgartirilgan, kod qayta ishlatilgan, kod yo'q qilingan, kodning murakkabligi, kodni tekshirish statistikasi, xatolarni tuzatish va xatolarni topish stavkalari, harakatlar va rejalashtirish. Ushbu o'lchovlar qurilishni boshqarish, qurilish vaqtida sifatni ta'minlash va qurilish jarayonini yaxshilash, shu qatorda boshqa maqsadlar uchun foydali bo'lishi mumkin (dasturiy ta'minot muhandisligi jarayoniga qarang (o'lchov bo'yicha KA yoki ko'proq).
3 Amaliy mulohazalar
Qurilish - bu dasturiy ta'minot muhandisi ba'zan xaotik va o'zgaruvchan real dunyo cheklovlari bilan shug'ullanishi kerak bo'lgan faoliyatdir va u buni aniq bajarishi kerak. Haqiqiy dunyo cheklovlari ta'siridan kelib chiqqan holda, qurilish ba'zi boshqa KAlarga qaraganda ko'proq amaliy mulohazalar bilan bog'liq va dasturiy ta'minot muhandisligi, ehtimol, qurilish faoliyatida eng hunarmandchilikka o'xshaydi.
3.1 Qurilish loyihasi
Ba'zi loyihalar qurilishga katta dizayn faoliyatini ajratadi, boshqalari dizaynni aniq loyihalashga qaratilgan bosqichga ajratadi. Aniq taqsimlanishidan qat'i nazar, qurilish darajasida ba'zi batafsil loyihalash ishlari amalga oshiriladi va bu loyihalash ishi dasturiy ta'minot tomonidan hal qilinayotgan real dunyo muammosi tomonidan qo'yilgan cheklovlar bilan belgilanadi. Jismoniy tuzilmani qurayotgan qurilish ishchilari quruvchining rejalaridagi kutilmagan bo'shliqlarni hisobga olish uchun kichik miqyosdagi o'zgartirishlar kiritishi kerak bo'lganidek, dasturiy ta'minotni ishlab chiqaruvchi ishchilar ham qurilish vaqtida dasturiy ta'minot dizayni tafsilotlarini aniqlashtirish uchun kichikroq yoki kattaroq miqyosda o'zgartirishlar kiritishlari kerak. Qurilish darajasidagi loyihalash faoliyatining tafsilotlari asosan dasturiy ta'minotni loyihalash KA da tavsiflangani bilan bir xil, ammo ular kichikroq algoritmlar, ma'lumotlar tuzilmalari va interfeyslarda qo'llaniladi.
3.2 Qurilish tillari
Qurilish tillari aloqaning barcha shakllarini o'z ichiga oladi, ular yordamida inson muammoni hal qilishning bajarilishi mumkin bo'lgan echimini ko'rsatishi mumkin. Qurilish tillari va ularni amalga oshirish (masalan, kompilyatorlar) ishlash, ishonchlilik, portativlik va boshqalarning dasturiy ta'minot sifati atributlariga ta'sir qilishi mumkin. Ular xavfsizlik zaifliklariga jiddiy hissa qo'shishlari mumkin.
Qurilish tilining eng oddiy turi bu konfiguratsiya tili bo'lib, unda dasturiy ta'minot muhandislari yangi yoki maxsus dasturiy ta'minot o'rnatishlarini yaratish uchun oldindan belgilangan cheklangan variantlardan tanlaydilar. Windows va Unix operatsion tizimlarida qo'llaniladigan matnga asoslangan konfiguratsiya fayllari bunga misol bo'ladi va ba'zi dastur generatorlarining menyu uslubini tanlash ro'yxatlari konfiguratsiya tilining yana bir misolidir. Asboblar to'plami tillari asboblar to'plamidagi elementlardan ilovalar yaratish uchun ishlatiladi (ilovaga xos qayta foydalanish mumkin bo'lgan qismlarning birlashtirilgan to'plami); ular konfiguratsiya tillariga qaraganda ancha murakkab.
Asboblar to'plami tillari amaliy dasturlash tillari sifatida aniq belgilanishi mumkin yoki ilovalar shunchaki asboblar to'plamining interfeyslari to'plami bilan nazarda tutilishi mumkin.
Skript tillari amaliy dasturlash tillarining keng tarqalgan turlari hisoblanadi. Ba'zi skript tillarida skriptlar ommaviy ish fayllari yoki makroslar deb ataladi. Dasturlash tillari qurilish tillarining eng moslashuvchan turi hisoblanadi. Ular, shuningdek, muayyan qo'llash sohalari va ishlab chiqish jarayonlari haqida eng kam ma'lumotni o'z ichiga oladi, shuning uchun ulardan samarali foydalanish uchun eng ko'p tayyorgarlik va mahorat talab etiladi. Dasturlash tilini tanlash kodlash jarayonida zaifliklarning paydo bo'lish ehtimoliga katta ta'sir ko'rsatishi mumkin - masalan, C va C++ dan tanqidiy foydalanish xavfsizlik nuqtai nazaridan shubhali tanlovdir. Dasturlash tillari uchun uchta umumiy nota turi qo'llaniladi, xususan lingvistik (masalan, C/C++, Java) rasmiy (masalan, Voqea-B) vizual (masalan, MatLab).
Lingvistik belgilar, xususan, murakkab dasturiy konstruktsiyalarni ifodalash uchun matn satrlaridan foydalanish bilan ajralib turadi. Matn satrlarining naqshlarga birikmasi jumlaga o'xshash sintaksisga ega bo'lishi mumkin. To'g'ri qo'llanilganda, har bir bunday qator kuchli semantik ma'noga ega bo'lishi kerak, bu dasturiy ta'minot konstruktsiyasi bajarilganda nima sodir bo'lishini darhol intuitiv tushunishni ta'minlaydi.
Rasmiy belgilar so'zlar va matn qatorlarining intuitiv, kundalik ma'nolariga kamroq tayanadi va aniq, bir ma'noli va rasmiy (yoki matematik) ta'riflar bilan ta'minlangan ta'riflarga ko'proq tayanadi. Rasmiy konstruktiv belgilar va rasmiy usullar tizimli dasturlash belgilarining aksariyat shakllarining semantik asosini tashkil etadi, bunda aniqlik, vaqt harakati va sinovdan o'tish qobiliyati tabiiy tilga xaritalash qulayligidan ko'ra muhimroqdir. Rasmiy konstruksiyalar, shuningdek, ko'pgina tabiiy til konstruktsiyalarining noaniqligini oldini oladigan belgilarni birlashtirishning aniq belgilangan usullaridan foydalanadi.
Vizual belgilar lingvistik va rasmiy qurilishning matn belgilariga kamroq tayanadi va buning o'rniga to'g'ridan-to'g'ri vizual talqin qilish va asosiy dasturiy ta'minotni ifodalovchi vizual ob'ektlarni joylashtirishga tayanadi. Vizual konstruktsiya faqat displeydagi piktogrammalarning joylashuvidan foydalangan holda "murakkab" bayonotlar qilish qiyinligi bilan cheklangan. Biroq, bu piktogrammalar asosiy dasturlash vazifasi shunchaki dasturning vizual interfeysini yaratish va "sozlash" bo'lgan hollarda kuchli vosita bo'lishi mumkin, uning batafsil harakati asosiy ta'rifdir.
3.3 Kodlash
Dasturiy ta'minotni yaratish kodlash faoliyatiga quyidagi fikrlar qo'llaniladi:
Tushunarli manba kodini yaratish texnikasi, jumladan nomlash qoidalari va manba kodining joylashuvi;
Sinflar, sanab o'tilgan turlar, o'zgaruvchilar, nomlangan konstantalar va boshqa shunga o'xshash ob'ektlardan foydalanish;
Boshqaruv tuzilmalaridan foydalanish;
Xato holatlari bilan ishlash - ham kutilgan, ham istisno (masalan, noto'g'ri ma'lumotlarni kiritish);
Kod darajasidagi xavfsizlik buzilishining oldini olish (masalan, buferning to'lib ketishi yoki massiv indekslari chegaralari);
Cheklash mexanizmlari va ketma-ket qayta foydalanish mumkin bo'lgan resurslarga (jumladan, iplar va ma'lumotlar bazasi blokirovkalari) kirishda tartib-intizomdan foydalanish orqali resurslardan foydalanish;
Manba kodini tashkil etish (bayonotlar, tartiblar, sinflar, paketlar yoki boshqa tuzilmalarga);
Kod hujjatlari;
Kodni sozlash,
3.4 Qurilish sinovlari
Qurilish sinovning ikkita shaklini o'z ichiga oladi, ular ko'pincha kodni yozgan dasturiy ta'minot muhandisi tomonidan amalga oshiriladi:
Birlik sinovi
Integratsiya testi.
Qurilish sinovining maqsadi kodga nosozliklar kiritilgan vaqt va bu nosozliklar aniqlangan vaqt o'rtasidagi bo'shliqni kamaytirish va shu bilan ularni tuzatish uchun sarflangan xarajatlarni kamaytirishdir. Ba'zi hollarda test holatlari kod yozilgandan keyin yoziladi. Boshqa hollarda, test holatlari kod yozilgunga qadar yaratilishi mumkin. Qurilish testlari odatda dasturiy ta'minotni sinovdan o'tkazish KA da tavsiflangan har xil turdagi testlarning bir qismini o'z ichiga oladi. Masalan, qurilish testlari odatda tizim sinovi, alfa testi, beta testi, stress testi, konfiguratsiya testi, qulaylik testi yoki boshqa maxsus test turlarini o'z ichiga olmaydi. Qurilish sinovlari mavzusida ikkita standart nashr etilgan: IEEE standarti 829-1998, dasturiy ta'minotni sinovdan o'tkazish hujjatlari uchun IEEE standarti va IEEE standarti 1008-1987, dasturiy ta'minot birligini sinovdan o'tkazish uchun IEEE standarti.
(Ko'proq maxsus ma'lumotnoma uchun dasturiy ta'minotni sinovdan o'tkazish KAning 2.1.1., Birlik sinovi va 2.1.2. Integratsiya testi bo'limlariga qarang.)
3.5 Qayta foydalanish uchun qurilish
Qayta foydalanish uchun qurish kelajakda mavjud loyiha yoki keng ko'lamli, ko'p tizimli istiqbolli boshqa loyihalar uchun qayta foydalanish potentsialiga ega bo'lgan dasturiy ta'minotni yaratadi. Qayta foydalanish uchun qurilish odatda o'zgaruvchanlikni tahlil qilish va dizaynga asoslanadi. Kod klonlari muammosini oldini olish uchun qayta foydalanish mumkin bo'lgan kod qismlarini yaxshi tuzilgan kutubxonalar yoki komponentlarga inkapsulyatsiya qilish kerak. Kodlash va sinovdan o'tkazishda qayta foydalanish uchun dasturiy ta'minotni qurish bilan bog'liq vazifalar quyidagilardan iborat:
Parametrlash, shartli kompilyatsiya, dizayn naqshlari va boshqalar kabi mexanizmlar bilan o'zgaruvchanlikni amalga oshirish.
Dasturiy ta'minot aktivlarini sozlash va sozlashni osonlashtirish uchun o'zgaruvchanlik inkapsulyatsiyasi.
Qayta foydalanish mumkin bo'lgan dasturiy ta'minot aktivlari tomonidan taqdim etilgan o'zgaruvchanlikni tekshirish.
Qayta foydalanish mumkin bo'lgan dasturiy ta'minot aktivlarining tavsifi va nashri.
3.6 Qayta foydalanish bilan qurilish
Qayta foydalanish bilan qurish mavjud dasturiy ta'minot aktivlarini qayta ishlatish bilan yangi dasturiy ta'minot yaratishni anglatadi. Qayta foydalanishning eng mashhur usuli bu til, platforma, foydalanilayotgan vositalar yoki tashkilot ombori tomonidan taqdim etilgan kutubxonalardagi kodni qayta ishlatishdir. Ulardan tashqari, bugungi kunda ishlab chiqilgan ilovalar ko'plab ochiq manbali kutubxonalardan keng foydalanadi. Qayta foydalaniladigan va tayyor dasturiy ta'minot ko'pincha yangi ishlab chiqilgan dasturiy ta'minot bilan bir xil yoki undan yuqori sifat talablariga ega (masalan, xavfsizlik darajasi). Kodlash va sinovdan o'tkazishda qayta foydalanish bilan dasturiy ta'minotni qurish bilan bog'liq vazifalar quyidagilardan iborat:
Qayta foydalanish mumkin bo'lgan birliklar, ma'lumotlar bazalari, test protseduralari yoki test ma'lumotlarini tanlash.
Kodni yoki testni qayta ishlatishni baholash.
Qayta foydalanish mumkin bo'lgan dasturiy ta'minot aktivlarining joriy dasturiy ta'minotga integratsiyasi.
Yangi kod, test protseduralari yoki test ma'lumotlari bo'yicha qayta foydalanish ma'lumotlari haqida hisobot.
3.7 Qurilish sifati
Talablar va dizayndan kelib chiqadigan nosozliklarga qo'shimcha ravishda, qurilish jarayonida yuzaga kelgan nosozliklar jiddiy sifat muammolariga, masalan, xavfsizlik zaifligiga olib kelishi mumkin. Bunga nafaqat xavfsizlik funksiyasidagi nosozliklar, balki ushbu funksiyani chetlab o‘tishga imkon beruvchi boshqa nosozliklar va xavfsizlikning boshqa zaif tomonlari yoki buzilishlari ham kiradi. Kodni yaratish jarayonida uning sifatini ta'minlash uchun ko'plab texnikalar mavjud. Qurilish sifati uchun ishlatiladigan asosiy texnikalar quyidagilarni o'z ichiga oladi birlik sinovi va integratsiya sinovi (3.4 bo'limga qarang, Qurilish sinovlari) sinovdan o'tgan birinchi ishlanma (Dasturiy ta'minotni sinovdan o'tkazish KAning 2.2-bo'limiga qarang)
da'volar va mudofaa dasturlaridan foydalanish disk raskadrovka tekshiruvlar
texnik sharhlar, shu jumladan xavfsizlikka yo'naltirilgan sharhlar (Dasturiy ta'minot sifati KAning 2.3.2 bo'limiga qarang) statik tahlil (dasturiy ta'minot sifati KAning 2.3-bo'limiga qarang). Tanlangan o'ziga xos texnika yoki texnikalar tuzilayotgan dasturiy ta'minotning tabiatiga, shuningdek, qurilish faoliyatini amalga oshiruvchi dasturiy ta'minot muhandislarining malakasiga bog'liq. Dasturchilar yaxshi amaliyotlar va umumiy zaifliklarni bilishlari kerak, masalan, umumiy zaifliklar haqidagi keng tarqalgan ro'yxatlardan. Xavfsizlik kamchiliklari uchun kodning avtomatlashtirilgan statik tahlili bir nechta umumiy dasturlash tillari uchun mavjud va xavfsizlik uchun muhim loyihalarda foydalanish mumkin.
Qurilish sifati bilan bog'liq tadbirlar boshqa sifatli faoliyatdan o'z yo'nalishi bilan ajralib turadi. Qurilish sifati bo'yicha tadbirlar kod bilan chambarchas bog'liq bo'lgan kod va artefaktlarga, masalan, batafsil dizaynga - talablar, yuqori darajadagi dizaynlar va rejalar kabi kod bilan kamroq bog'liq bo'lgan boshqa artefaktlarga qaratiladi.
3.8 Integratsiya
Qurilish jarayonida asosiy faoliyat alohida tuzilgan tartiblar, sinflar, komponentlar va quyi tizimlarni yagona tizimga birlashtirishdir. Bundan tashqari, ma'lum bir dasturiy ta'minot tizimini boshqa dasturiy ta'minot yoki apparat tizimlari bilan birlashtirish kerak bo'lishi mumkin. Qurilish integratsiyasi bilan bog'liq tashvishlar tarkibiy qismlarni birlashtirish ketma-ketligini rejalashtirish, qanday apparat zarurligini aniqlash, dasturiy ta'minotning oraliq versiyalarini qo'llab-quvvatlash uchun iskala yaratish, komponentlar integratsiyalashuvidan oldin sinovdan o'tkazish darajasini va bajarilgan ish sifatini aniqlashni o'z ichiga oladi. dasturiy ta'minotning oraliq versiyalari sinovdan o'tkaziladigan loyihadagi nuqtalar. Dasturlarni bosqichma-bosqich yoki bosqichma-bosqich yondashuv yordamida birlashtirish mumkin. Bosqichli integratsiya, shuningdek, "katta portlash" integratsiyasi deb ham ataladi, bu versiyada chiqarish uchun mo'ljallangan barcha qismlar tugaguniga qadar dasturiy ta'minotning tarkibiy qismlarini integratsiyalashuvini kechiktirishni o'z ichiga oladi. Incremental integratsiya an'anaviy bosqichli integratsiyaga nisbatan ko'p afzalliklarni taklif qiladi, masalan, xatolarning joylashishini osonlashtirish, rivojlanish monitoringini yaxshilash, mahsulotni erta etkazib berish va mijozlar bilan munosabatlarni yaxshilash. Incremental integratsiyada ishlab chiquvchilar dasturni kichik qismlarga yozadilar va sinab ko'radilar, so'ngra qismlarni birma-bir birlashtiradilar. Qo'shimcha integratsiyani yoqish uchun odatda qo'shimcha test infratuzilmasi, masalan, stublar, drayverlar va soxta ob'ektlar kerak bo'ladi. Bir vaqtning o'zida bitta blokni (masalan, sinf yoki komponentni) qurish va integratsiyalash orqali qurilish jarayoni ishlab chiquvchilar va mijozlarga erta fikr bildirishi mumkin. Incremental integratsiyaning boshqa afzalliklari orasida xatolarning joylashishini osonlashtirish, yaxshilangan jarayon monitoringi, to'liq sinovdan o'tgan birliklar va boshqalar kiradi.
|