Dasturiy taʼminot yaratish. Dasturiy taʼminotni yaratish – dasturiy injiniring sohasining bir yoʻnalishi boʻlib, kodlash, tekshirish, modul testlari, integratsiya testlari va nosozliklarni bartaraf etish orqali batafsil ishlaydigan, maʼnoli dasturiy ta’minotni yaratish jarayoni. Bu yoʻnalish boshqa barcha dasturiy injiniring sohalari bilan bogʻliq boʻlib, ayniqsa dasturiy taʼminotni loyihalash va sinovdan oʻtkazish bilan chambarchas aloqador. Asoslar. Murakkablikni minimallashtirish. Murakkablikni minimallashtirish zarurati, asosan, koʻpchilik odamlarning murakkab tuzilmalar va ma’lumotlarni oʻzlarining ishchi xotiralarida saqlash qobiliyati cheklanganligi bilan bogʻliq. Murakkablikni minimallashtirish uchun aqlli emas, balki oddiy va tushunarli kod yaratishga eʼtibor qaratiladi. Murakkablikni minimallashtirish standartlardan foydalanish va kodlashning turli xil maxsus usullarini qoʻllash orqali amalga oshiriladi va bu jarayon qurilishga yoʻnaltirilgan sifat texnikalaridan foydalanish bilan ham qoʻllab-quvvatlanadi. Kutilayotgan oʻzgarishlar. Oʻzgarishlarni oldindan koʻra bilish dasturiy ta’minot muhandislariga kengaytiriladigan dasturiy taʼminotni yaratishga yordam beradi va ular asosiy tuzilmani buzmasdan dasturiy mahsulotni takomillashtira oladilar . 25 yil davomida olib borilgan tadqiqotlar shuni koʻrsatdiki, qayta ishlash xarajatlari talablarni birinchi marta toʻgʻri belgilashga nisbatan 10 barobardan 100 barobargacha (kichikroq loyihalar uchun 5 barobardan 10 barobargacha) qimmatroq boʻlishi mumkin. Tasdiqlash uchun konstruksiyalash. Tasdiqlash uchun konstruksiyalash deganda dasturiy taʼminot muhandislari tomonidan, shuningdek, mustaqil sinov va operatsion faoliyat davomida nosozliklarni osonlik bilan aniqlash mumkin boʻlgan tarzda dasturiy taʼminot yaratish tushuniladi. Tasdiqlash uchun qurilishni qoʻllab-quvvatlaydigan oʻziga xos usullar kodni koʻrib chiqishni qoʻllab-quvvatlash uchun kodlash standartlariga rioya qilish, birliklarni sinovdan oʻtkazish, avtomatlashtirilgan sinovlarni qoʻllab-quvvatlash uchun kodni tashkil etish va murakkab yoki qiyin tushuniladigan til tuzilmalaridan cheklangan foydalanish va boshqalar kiradi. Qayta ishlatish. Tizimli qayta foydalanish dasturiy taʼminotning unumdorligi, sifati va narxini sezilarli darajada yaxshilashga imkon beradi. Qayta foydalanish ikkita bir-biri bilan chambarchas bogʻliq jihatlarga ega: Yaratishdagi standartlar. Tashqi (xalqaro tashkilotlar tomonidan yaratilgan) yoki ichki (korporativ darajada yaratilgan) qurilish masalalariga bevosita taʼsir koʻrsatadigan standartlarga quyidagilar kiradi: Bosqichlari. Dasturiy ta'minot ishlab chiqish jarayoni bir necha asosiy bosqichlarga bo'linadi: Jarayonni boshqarish. Yaratish modeli. Dasturiy ta’minotni ishlab chiqish uchun koʻplab modellar yaratilgan boʻlib, ularning baʼzilari boshqalaridan koʻra koʻproq qurilishga urgʻu beradi. Baʼzi modellar qurilish nuqtai nazaridan chiziqliroqdir, masalan, sharshara va bosqichma-bosqich yetkazib berish hayotiy sikli modellari. Ushbu modellarda qurilishga faqat muhim zaruriy ishlar – batafsil talablar boʻyicha ishlar, keng koʻlamli loyihalash ishlari va batafsil rejalashtirishdan keyin sodir boʻladigan faoliyat sifatida qaraladi. Jarayonni rejalashtirish. Dasturiy taʼminotni yaratish usulini tanlash jarayonni rejalashtirish faoliyatining asosiy jihatidir. Yaratish usulini tanlash jarayon shart-sharoitlarining qay darajada ekanligiga taʼsir qiladi (masalan. Talablar tahlili, Dasturiy ta’minotni loyihalash va boshqalar) amalga oshiriladi, ular qanday tartibda bajariladi va qurilish ishlari boshlanishidan oldin ular qanday darajada bajarilishi kutiladi. Jarayonni hisoblash. Koʻpgina yaratish jarayoni faoliyati va artefaktlarni oʻlchash mumkin, jumladan kod ishlab chiqilgan, kod oʻzgartirilgan, kod qayta ishlatilgan, kod vayron qilingan, kod murakkabligi, kod tekshiruvi statistikasi, nosozliklarni tuzatish va nosozliklarni topish stavkalari, kuch va rejalashtirish. Ushbu oʻlchashlar jarayonni boshqarish, qurilishda sifatni taʼminlash, yaratish jarayonini takomillashtirish maqsadlarida va boshqa sabablarga koʻra foydali boʻlishi mumkin. Amaliy maslahatlar. Dasturiy taʼminotni yaratish koʻplab amaliy mulohazalarga asoslanadi: Dasturiy taʼminot dizayni. Dasturiy taʼminot dizaynidagi kutilmagan boʻshliqlarni hisobga olish uchun dasturiy taʼminotni yaratish vaqtida dasturiy taʼminot dizaynining tafsilotlarini toʻldirish uchun kichikroq yoki kattaroq miqyosda baʼzi dizayn modifikatsiyalari amalga oshirilishi kerak. Dasturiy taʼminot tillari. Konstruksiya tillari muloqotning barcha shakllarini oʻz ichiga oladi, ular orqali inson kompyuterga bajariladigan muammoning yechimini aniqlashi mumkin. Ularga konfiguratsiya tillari, asboblar toʻplami tillari va dasturlash tillari kiradi: Uch yil va undan ortiq vaqt davomida ishlatayotgan tilda ishlaydigan dasturchilar, xuddi shu tilda yangi boʻlgan tajribaga ega dasturchilarga qaraganda, taxminan 30 foizga koʻproq mahsuldir. C++, Java, Smalltalk va Visual Basic kabi yuqori darajadagi tillar assembly va C kabi quyi darajadagi tillarga qaraganda 5-15 baravar yuqori mahsuldorlik, ishonchlilik, soddalik va tushunarlilikni beradi. Dasturlash. Quyidagi mulohazalar dasturiy taʼminot konstruktsiyasini kodlash faoliyatiga tegishli: Dasturiy taʼminotni testlash. Qurilmani sinovdan oʻtkazishdan maqsad buzilishlarni kodga kiritish vaqti bilan buzilishlarni aniqlash vaqti oʻrtasidagi farqni kamaytirishdir. Baʼzi hollarda qurilish sinovlari kod yozilgandan soʻng amalga oshiriladi. Test-first dasturlashda test keyslari kod yozilishidan oldin yaratiladi. Qurilish sinovning ikki shaklini oʻz ichiga oladi, ular koʻpincha kodni yozgan dasturiy taʼminot muhandisi tomonidan amalga oshiriladi: Qayta ishlatish. Dasturiy taʼminotdan qayta foydalanishni amalga oshirish nafaqat aktivlar kutubxonalarini yaratish va ulardan foydalanishni oʻz ichiga oladi. Bu qayta foydalanish jarayonlari va faoliyatini dasturiy taʼminotning hayotiy sikliga integratsiya qilish orqali qayta foydalanish amaliyotini rasmiylashtirishni talab qiladi. Kodlash va testlash jarayonida dasturiy taʼminotni yaratishda qayta foydalanish bilan bogʻliq vazifalar quyidagilardan iborat: Dasturiy taʼminot sifati. Kodni yaratishda uning sifatini taʼminlash uchun ishlatiladigan asosiy usullar quyidagilardan iborat: Tadqiqotlar shuni koʻrsatdiki, nuqsonlarni aniqlashning yuqori darajasiga erishish uchun ushbu usullarning kombinatsiyasidan foydalanish kerak. Boshqa tadqiqotlar shuni koʻrsatdiki, turli odamlar turli nuqsonlarni topishga moyil. Bir tadqiqot shuni koʻrsatdiki, juft dasturlashning ekstremal dasturlash amaliyoti, stolda tekshirish, birliklarni sinovdan oʻtkazish, integratsiyani sinovdan oʻtkazish va regressiya sinovidan oʻtkazish 90% nuqsonlarni aniqlash darajasiga erishishi mumkin. Tajribali dasturchilar ishtirokida oʻtkazilgan tajriba shuni koʻrsatdiki, ular test orqali 15 ta xatodan oʻrtacha 5 tasini (eng yaxshi holatda 9) topa olishdi. 80% xatolar loyiha mashgʻulotlari va dasturlarining 20% da toʻplangan. 50% xatolik loyiha sinflarining 5% ida topiladi. IBM 425 ta sinfdan faqat 31 tasini tuzatish yoki qayta yozish orqali mijoz tomonidan eʼlon qilingan kamchiliklarni oʻn baravarga bir baravarga kamaytirishga va oʻzining IMS tizimida texnik xizmat koʻrsatish byudjetini 45 foizga kamaytirishga muvaffaq boʻldi. Loyiha dasturlarining taxminan 20 foizi ishlab chiqish xarajatlarining 80 foizini tashkil qiladi. IBM tomonidan oʻtkazilgan klassik tadqiqot shuni koʻrsatdiki, OS/360 ning kam sonli xatolarga moyil dasturlari eng qimmat obyektlar edi. Ularda 1000 ta kod satriga taxminan 50 ta nuqson bor edi va ularni tuzatish butun tizimni ishlab chiqish uchun kerak boʻlganidan 10 baravar qimmatga tushadi. Integratsiya. Qurilish jarayonidagi asosiy faoliyat alohida qurilgan tartiblar, sinflar, komponentlar va quyi tizimlarning integratsiyalashuvidir. Bundan tashqari, maʼlum bir dasturiy tizim boshqa dasturiy yoki apparat tizimlari bilan integratsiya qilinishi kerak boʻlishi mumkin. Qurilish integratsiyasi bilan bogʻliq muammolarga komponentlar integratsiya qilinadigan ketma-ketlikni rejalashtirish, dasturiy taʼminotning oraliq versiyalarini qoʻllab-quvvatlash uchun poydevor yaratishdan oldin komponentlar boʻyicha sinov darajasi va sifatli ishlarni aniqlash kiradi. Dasturiy taʼminot texnologiyalari. Obyektga yoʻnaltirilgan ishlash vaqti muammolari. Obyektga yoʻnaltirilgan tillarda maʼlumotlarni abstraksiyalash, enkapsulyatsiya, modullilik, irsiyat, polimorfizm va aks ettirish kabi dasturlarning moslashuvchanligi va moslashuvchanligini oshiruvchi bir qator ishlash vaqti mexanizmlari qoʻllab-quvvatlanadi.