Dasturlarni konstruksiyalash

|
Dasturlarni konstruksiyalash
|
bet | 32/38 | Sana | 19.05.2024 | Hajmi | 0,95 Mb. | | #243559 |
Bog'liq Amaliyot SQL da dasturlashuslubiy ko\'rsatmaDasturlarni konstruksiyalash
Dasturiy ta'minot konstruktsiyasi atamasi kodlash, tekshirish, birlik testi, integratsiya testi va disk raskadrovka kombinatsiyasi orqali ishlaydigan, mazmunli dasturiy ta'minotni batafsil yaratishni anglatadi.
Dasturiy ta'minot konstruktsiyasi boshqa barcha dasturiy ta'minot muhandisligi bilan bog'liq bo'lib, dasturiy ta'minotni loyihalash va dasturiy ta'minotni sinovdan o'tkazish bilan bog'liq. Buning sababi, dasturiy ta'minotni yaratish jarayonining o'zi muhim dasturiy ta'minotni loyihalash va sinov faoliyatini o'z ichiga oladi. Shuningdek, u dizayn natijalaridan foydalanadi va sinov uchun kirishlardan birini ta'minlaydi, dizayn ham, sinov ham faoliyatdir. Dizayn, qurilish va sinov o'rtasidagi batafsil chegaralar (agar mavjud bo'lsa) loyihada qo'llaniladigan dasturiy ta'minotning hayot aylanishi jarayonlariga qarab o'zgaradi.
Qurilishdan oldin ba'zi batafsil loyihalash amalga oshirilishi mumkin bo'lsa-da, ko'p loyihalash ishlari qurilish faoliyati doirasida amalga oshiriladi. Shunday qilib, dasturiy ta'minot konstruktsiyasi dasturiy ta'minot dizayni bilan chambarchas bog'liq.
Qurilish davomida dasturiy ta'minot muhandislari o'z ishlarini birlik va integratsiya sinovidan o'tkazadilar. Shunday qilib, dasturiy ta'minot konstruktsiyasi dasturiy ta'minotni sinovdan o'tkazish bilan ham chambarchas bog'liq.
Dasturiy ta'minot konstruktsiyasi odatda dasturiy ta'minot loyihasida boshqarilishi kerak bo'lgan konfiguratsiya elementlarining eng yuqori hajmini ishlab chiqaradi (manba fayllari, kontent, test holatlari va boshqalar). Shunday qilib, dasturiy ta'minot konfiguratsiyasi dasturiy ta'minot konfiguratsiyasini boshqarish bilan ham chambarchas bog'liq.
Dasturiy ta'minotni qurish asoslari
Dasturiy ta'minotni qurish asoslari quyidagilardan iborat:
Murakkablikni minimallashtirish
O'zgarishlarni kutish
Tekshirish uchun qurilish
Qurilish standartlari
Birinchi uchta kontseptsiya dizaynga ham, qurilishga ham tegishli. Quyidagi bo'limlar ushbu tushunchalarni belgilaydi va ularning qurilishga qanday tatbiq etilishini tavsiflaydi.
Murakkablikni minimallashtirish
Odamlar kompyuterga niyatlarini qanday etkazishining asosiy omili odamlarning murakkab tuzilmalarni va ma'lumotlarni ish xotiralarida, ayniqsa uzoq vaqt davomida saqlash qobiliyatining keskin cheklanganligidir. Bu dasturiy ta'minotni yaratishda eng kuchli drayverlardan biriga olib keladi: murakkablikni minimallashtirish. Murakkablikni kamaytirish zarurati dasturiy ta'minotni qurishning deyarli barcha jihatlariga taalluqlidir va dasturiy ta'minot konstruktsiyalarini tekshirish va sinovdan o'tkazish jarayoni uchun ayniqsa muhimdir.
Dasturiy ta'minotni yaratishda murakkablikni kamaytirishga aqlli emas, balki oddiy va o'qilishi mumkin bo'lgan kod yaratishga urg'u berish orqali erishiladi.
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 muqarrar ravishda o'zgaruvchan tashqi muhitning bir qismidir va bu tashqi muhitdagi o'zgarishlar dasturiy ta'minotga turli yo'llar bilan ta'sir qiladi.
O'zgarishlarni oldindan ko'rish ko'plab maxsus usullar bilan qo'llab-quvvatlanadi:
Aloqa usullari (masalan, hujjat formatlari va mazmuni standartlari)
Dasturlash tillari (masalan, Java va C++ kabi tillar uchun til standartlari)
Platformalar (masalan, operatsion tizim qo'ng'iroqlari uchun dasturchi interfeysi standartlari)
Asboblar (masalan, UML (Unified Modeling Language) kabi yozuvlar uchun diagrammatik standartlar)
Tasdiqlash uchun qurilish
Tasdiqlash uchun konstruksiya deganda dasturiy ta’minotni shunday yaratish tushuniladiki, unda nosozliklar dasturiy ta’minotni yozuvchi dasturiy ta’minot muhandislari tomonidan, shuningdek, mustaqil sinov va operatsion faoliyat davomida osongina bartaraf etilishi mumkin. Tekshirish uchun qurilishni qo'llab-quvvatlaydigan o'ziga xos usullarga kodni ko'rib chiqishni qo'llab-quvvatlash uchun quyidagi kodlash standartlari, birlik testi, avtomatlashtirilgan testni qo'llab-quvvatlash uchun kodni tashkil qilish va murakkab yoki tushunish qiyin til tuzilmalaridan cheklangan foydalanish va boshqalar kiradi.
Qurilishdagi standartlar
Qurilish masalalariga bevosita ta'sir ko'rsatadigan standartlarga tashqi standartlardan foydalanish kiradi. Qurilish qurilish tillari, qurilish asboblari, texnik interfeyslar va dasturiy ta'minotni qurish va boshqa dasturiy ta'minot muhandisligi o'rtasidagi o'zaro aloqalar uchun tashqi standartlardan foydalanishga bog'liq. Standartlar ko'plab manbalardan, jumladan Object Management Group (OMG) kabi apparat va dasturiy interfeys spetsifikatsiyalari va IEEE yoki ISO kabi xalqaro tashkilotlardan 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.
Qurilishni boshqarish
Qurilish modellari
Dasturiy ta'minotni ishlab chiqish uchun ko'plab modellar yaratilgan, ularning ba'zilari boshqalardan ko'ra ko'proq qurilishga urg'u beradi.
Ba'zi modellar qurilish nuqtai nazaridan ko'proq chiziqli, masalan, sharshara 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 bo'linishlarni yaratadi. Ushbu modellarda qurilishning asosiy urg'u kodlash bo'lishi mumkin.
Boshqa modellar evolyutsion prototiplash, Ekstremal dasturlash va Scrum kabi iterativdir. Ushbu yondashuvlar qurilishni boshqa dasturiy ta'minot ishlab chiqish faoliyati, jumladan talablar, dizayn va rejalashtirish bilan bir vaqtda sodir bo'ladigan yoki ularni bir-biriga mos keladigan faoliyat sifatida ko'rib chiqadi. Ushbu yondashuvlar dizayn, kodlash va sinov faoliyatini aralashtirishga moyil bo'lib, ular ko'pincha faoliyat kombinatsiyasini qurilish sifatida ko'rib chiqadilar.
Binobarin, "qurilish" deb hisoblangan narsa ma'lum darajada ishlatiladigan hayot tsikli modeliga bog'liq.
Qurilishni rejalashtirish
Qurilish usulini tanlash qurilishni rejalashtirish faoliyatining asosiy jihati hisoblanadi. Qurilish usulini tanlash qurilishning dastlabki shartlarini bajarish darajasiga, ularni bajarish tartibiga va qurilish ishlari boshlanishidan oldin bajarilishi kutilayotgan darajaga ta'sir qiladi.
Qurilishga yondashuv loyihaning murakkabligini kamaytirish, o'zgarishlarni oldindan bilish 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 ham ta'sir qiladi.
Qurilishni rejalashtirish, shuningdek, tanlangan usul bo'yicha komponentlarni yaratish va birlashtirish tartibini, dasturiy ta'minot sifatini boshqarish jarayonlarini, aniq dasturiy ta'minot muhandislariga topshiriqlarni taqsimlashni va boshqa vazifalarni belgilaydi.
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 jarayonida sifatni ta'minlash, qurilish jarayonini yaxshilash, shuningdek, boshqa sabablarga ko'ra foydali bo'lishi mumkin.
Amaliy mulohazalar
Qurilish - bu dasturiy ta'minot o'zboshimchalik va xaotik real dunyo cheklovlari bilan kelishib olishi va buni aniq bajarishi kerak bo'lgan faoliyatdir. Haqiqiy dunyo cheklovlariga yaqinligi sababli, qurilish ba'zi boshqa KAlarga qaraganda ko'proq amaliy fikrlarga asoslangan va dasturiy ta'minot muhandisligi qurilish sohasida eng hunarmandchilikka o'xshaydi.
Qurilish loyihasi
Ba'zi loyihalar qurilishga ko'proq dizayn faoliyatini ajratadi; boshqalar aniq dizaynga qaratilgan bosqichga. Aniq taqsimlashdan qat'i nazar, qurilish darajasida ba'zi bir batafsil loyihalash ishlari amalga oshiriladi va bu loyihalash ishi dasturiy ta'minot tomonidan hal qilinayotgan real dunyo muammosi tomonidan qo'yilgan ko'chmas 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 tillari
Qurilish tillari aloqaning barcha shakllarini o'z ichiga oladi, ular yordamida inson kompyuterda bajariladigan muammo echimini ko'rsatishi 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'la oladi va ba'zi dastur generatorlarining menyu uslubi tanlash ro'yxati boshqasini tashkil qiladi.
Asboblar to'plami tillari asboblar to'plamidan (ilovaga xos qayta ishlatiladigan qismlarning birlashtirilgan to'plami) ilovalar yaratish uchun ishlatiladi va konfiguratsiya tillariga qaraganda ancha murakkab. Asboblar to'plami tillari aniq amaliy dasturlash tillari sifatida belgilanishi mumkin (masalan, skriptlar) yoki oddiygina asboblar to'plamining interfeyslari to'plami bilan nazarda tutilishi mumkin.
Dasturlash tillari qurilish tillarining eng moslashuvchan turi hisoblanadi. Ular, shuningdek, muayyan dastur sohalari va ishlab chiqish jarayonlari haqida eng kam ma'lumotni o'z ichiga oladi va shuning uchun samarali foydalanish uchun eng ko'p ta'lim va ko'nikmalarni talab qiladi.
Dasturlash tillari uchun notalashning uchta umumiy turi qo'llaniladi, xususan:
Lingvistik belgilar, xususan, murakkab dasturiy konstruksiyalarni ifodalash uchun matnning soʻzga oʻxshash qatorlaridan foydalanishi va bunday soʻzga oʻxshash qatorlarning jumlaga oʻxshash sintaksisga ega boʻlgan qoliplarga birlashtirilishi bilan ajralib turadi. To'g'ri foydalanilganda, har bir bunday qator kuchli semantik ma'noga ega bo'lishi kerak, bu esa dasturiy ta'minotning asosiy 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 qurilish yozuvlari va rasmiy usullar tizim dasturlashning aksariyat shakllarining markazida bo'lib, bu erda aniqlik, vaqt harakati va sinovdan o'tish qobiliyati tabiiy tilda xaritalash qulayligidan muhimroqdir. Rasmiy konstruksiyalar, shuningdek, ko'pgina tabiiy til konstruktsiyalarining noaniqligini oldini oladigan belgilarni birlashtirishning aniq belgilangan usullaridan foydalanadi.
Vizual belgilar ham lingvistik, ham rasmiy konstruktsiyaning matnga yo'naltirilgan 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 displeyda faqat vizual ob'ektlar harakatidan foydalangan holda "murakkab" bayonotlar qilish qiyinligi bilan cheklangan. Shu bilan birga, u asosiy dasturlash vazifasi shunchaki oldindan batafsil tavsiflangan dasturning vizual interfeysini yaratish va "sozlash" bo'lgan hollarda ham kuchli vosita bo'lishi mumkin.
Ob'ektga yo'naltirilgan tillar
Bugungi kunda deyarli yigirmaga yaqin asosiy ob'ektga yo'naltirilgan dasturlash tillari qo'llanilmoqda. Lekin yetakchi tijorat oo tillari soni ancha kam. Bular:
C++
Kichik munozarasi
Java
C++
C++ bu C tilining obyektga yoʻnaltirilgan versiyasidir. U C bilan mos keladi (u aslida superset), shuning uchun mavjud C kodini C++ dasturlariga kiritish mumkin. C++ dasturlari tez va samarali bo'lib, ular C tilini juda mashhur dasturlash tiliga aylantirishga yordam berdi. Biroq, samarali bo'lish uchun u biroz moslashuvchanlikni qurbon qiladi. C++ kompilyatsiya vaqtini bog'lashdan foydalanadi, ya'ni dasturchi ob'ektning o'ziga xos sinfini yoki hech bo'lmaganda ob'ekt tegishli bo'lishi mumkin bo'lgan eng umumiy sinfni ko'rsatishi kerak. Bu yuqori ish vaqti samaradorligini va kichik kod hajmini ta'minlaydi, lekin u sinflarni qayta ishlatish uchun ba'zi kuchlarni almashtiradi.
C++ shu qadar mashhur bo'ldiki, ko'pchilik yangi C kompilyatorlari aslida C/C++ kompilyatorlaridir. Biroq, ob'ektga yo'naltirilgan dasturlashdan to'liq foydalanish uchun C emas, balki C++ da dasturlash (va o'ylash!) kerak. Bu ko'pincha tajribali C dasturchilari uchun katta muammo bo'lishi mumkin. Ko'pgina dasturchilar C++ da kodlashmoqda, deb o'ylashadi, lekin buning o'rniga tilning ob'ektga yo'naltirilgan kuchining kichik bir qismidan foydalanmoqda.
|
| |