“DaSTURIY INJINIRINGI va raqamli iqtisodiyot” fakultetining
“Dastur injiniring” yo’nalishi
Dasturiy ta’minot qurilmasi va evolutsiyasi
652-20 guruh talabasi Umurzaqov asliddin
fanidan tayyorlagan
Mustaqil ish
Topshirdi: Umurzaqov A
Qabul qildi: Ro’zaliyev A
MAVZU: Dasturiy ta’minotning arxitekturasi. Dasturiy ta’minot tizimlari arxitekturasining variantlari.
Reja:
2.1. Dasturiy ta’minotning arxitekturasi
2.2. Dasturiy ta’minot dizaynini qurish va moslashtirish
2.3. Dasturiy ta’minotni testlash
2.4. Dasturiy ta’minot evolutsiyasi
Kalit so’zlar: arxitektura, dizayn, testlash, evolutsiya, xavfsizlik, ishinchlilik, barqarorlilik, servis, uml, talab, servis.
Ushbu ma’ruzaning maqsadi dasturiy ta’minot arxitekturasi va arxitekturaviy dizayn tushunchalariga kirish, dasturiy ta’minot dizaynini yaratish va uni tizimga moslashtirish, daturiy ta’minotni testlash hamda dasturiy ta’minot evolyutsiyalarini ko’rib chiqishdan iborat.
Bass va boshqalar(2003) dasturiy ta’minot arxitekturasini ochiq loyihalashtirish va hujjjatlashtirishning uchta afzalliklarini muhokama qilishdi:
1.Manfaatdor aloqalar. Arxitektura tizimning yuqori darajadagi taqdimoti bo’lib, bir qator turli manfaatdor tomonlar tomonidan muhokama qilish uchun bir muammo markazi sifatida foydalaniladi.
2.Tizim tahlili. Tizimni ishlab chiqishning erta bosqichlarida tizim arxitekturasini yaratish bir qancha tahlillarni talab qiladi. Arxitekturaviy loyiha yechimlari tizimning ishlab chiqilish, ishonchlilik, keng ko’lamda qo’llanilish va qayta ishlab chiqilish talablarini qondira olishiga chuqur ta’sir ko’rsatadi.
3. Keng ko’lamli qayta qo’llash. Tizim arxitekturasi modeli tizimning qanday tashkil qilingani va komponentalar qanday o’zaro ta’sir qilishini ixcham, boshqarilga ta’rifidir.
Dasturiy tizim arxitekturasi alohida arxitekturaviy shablonlar va stillarga
asoslangan. Arxitekturaviy shablonlar xuddi klient - server tashkillanishi yoki
bosqichlangan arxitektura kabi tizimni tashkillashtirish tushunchasidir.
Arxitekturaviy shablonlar turli dasturiy tizimlarda qo’llanilgan arxitekturalar
jamlanmasini o’z ichiga oladi. Tizim uchun arxitektura tanlashda ehtiyotkorlik bilan qaror qabul qilishingiz lozim.
Nofunksiyaviy talablar va dastur arxitekturasi o’rtasida yaqin bog’liqliklar
bo’lganligi sababli, siz tanlayotgan arxitekturaviy stil va tizim, nofunksional tizim
talablaridan kelib chiqqan holda tanlanishi lozim:
1.Ishlab chiqish. Ishlab chiqish bu muhim talabi bo'lsa, arxitektura kichik komponentlar soni doirasida muhim operatsiyalarini mahalliylashtirishga mo'ljallangan bo'lishi kerak, bu komponentlar bilan hammasi bitta kompyuterda yozilgan, butun tarmoq bo'ylab tarqalmagan bo’lishi lozim.
2. Xavfsizlik. Agar xavfsizlik muhim talab bo’lsa, arxitektura uchun qatlamli tuzilishi chuqur qatlamlarda himoyalangan eng muhim aktivlardan foydalanish kerak, bu qatlamlar uchun xavfsizlikni tekshirish yuqori darajada qo'llaniladi.
3. Ichonchlilik. Agar ishonchlilik muhim talab bo'lsa, arxitektura shunday mo'ljallangan bo'lishi kerakki, bunda xavfsizlik bilan bog'liq operatsiyalarning barchasi yoki yagona komponentada yoki kichik sonli komponentlarda joylashgan bo’lishi kerak. Bu xavfsizlik tekshirish xarajatlarni va muammolarini kamaytiradi va qobiliyatsiz taqdirda tizimini xavfsiz yopilishiga imkon beradigan tegishli himoya tizimlarini taqdim qiladi.
4. Mavjudlik. Agar mavjudlik muhim talab bo'lsa, arxitektura tizimi to'xtamasdan komponentlarini yangilash va almashtirish imkoniga ega ortiqcha komponentlarini o'z ichiga olgan bo'lishi kerak.
5. Barqarorlik. Agar barqarorlik muhim talab bo’lsa, tizim arxitekturasi tez- tez o’zgarib turishi mumkin bo’lgan nozik, o’z-o’zini tarkibidagi komponentalardan foydalangan holda qurilishi lozim. Ma'lumotlar ishlab chiqaruvchilar iste'molchi lardan ajratilgan bo'lishi kerak va birgalikda ma'lumotlar tuzilmalari yo'l qo'ymaslik lozim.
2.2 .Dasturiy ta’minot dizaynini qurish va moslashtirish
Dasturiy ta’minot dizayni va uni ishlab chiqish bajariladigan dasturiy ta'minot tizimi ishlab chiqiladigan dasturiy injiniring jarayonidagi bosqichdir.
Ba'zi oddiy tizimlar uchun, dasturiy ta'minot dizayni va dasturni ishlab chiqish
dasturiy injiniringdir, va boshqa barcha faoliyatlar bu jarayonda bilan birlashgan.
Shu bilan birga, katta tizimlar uchun, dasturiy ta'minot dizayni va dasturni ishlab
chiqish dasturiy injiniringda ishtirok etadigan jarayonlar majmuidan biridir.
Dasturiy ta’minot dizayni va dasturiy ta’minotni ishlab chiqish faoliyati
o’zgarishsiz ketma - ketlikda kelmoqda. Dasturiy ta’minot dizayni foydalanuvchi
talablariga asoslangan dasturiy ta’minot komponentalari va ularning o’zaro bog’liqligi ta’minlashda yaratiladigan faoliyatdir. Dasturiy ta’minotni ishlab chiqish bu dizaynni dasturga moslab joriy etish jarayonidir. Ba’zi hollarda, bo’lingan dizayn bosqichlari ham mavjud va bu dizayn modellashtirilgan va dokumentlashtirilgan bo’ladi. Boshqa hollarda esa, dizayn dasturchi miyasida yoki doskada yoki qog’ozlarda aks etadi. Dizaynlashtirish bu muammoni qanday bartaraf etishdir, shuning uchun har doim dizaynlash jarayoni mavjuddir. Shunga qaramasdan, UML yoki boshqa dizayn yaratuvchi tillardan foydalanishda dizaynni tushuntirish bu doimo muhim yoki mos ravishda bo’lmaydi.
Dizaynlashtirish jarayonidagi eng muhim bosqich bu sizga kerak bo’lgan
dizayn modellari va ularda talab qilingan detallarning bosqichlari ustida qarorlar
qabul qilishdir. Bu ayni vaqtda ishlab chiqilayotgan tizim turidan kelib chiqadi.
Tizim loyihasini umumiylikdan detallarigacha ishlab chiqishda, obyektga
yo’naltirilgan dizaynda quyidagi bir qanch narsalarni bilishingiz lozim:
1.Tizim bilan bo’ladigan tashqi ta’sirlar va kontekstni aniqlash va ularni tushunish.
2.Tizim arxitekturasini loyihalash.
3.Tizimdagi asosiy obyektlarni birlashtirish.
4.Loyiha modellarini rivojlantirish.
5.Interfeyslarni aniqlash.
Dastur dizaynini ishlab chiqishda UMLdan foydalanganingizda, siz ikki turdagi dizayn modellarini normal holda ishlab chiqasiz:
1.Tizimli modellar. Ular obyekt sinflari va ularning o’zaro bog’liqligidan
foydalanadigan tizimning dinamik tuzilmasini tasvirlaydi.
2.Dinamik modellar. Ular tizimning dinamik tuzilmasini tasvirlaydi va tizim obyektlari o’rtasidagi o’zaro ta’sirlarni ko’rsatadi. O’zaro ta’sirlar obyektlar tomonidan bajarilgan xizmat so’rovlarining ketma -ketligini o’z ichiga olgan holda hujjatlashtirilgan bo’lishi mumkin. Ishlab chiqish jarayonining bir qismida, siz qanday qilib ishlab chiqilgan dasturiy ta’minot maqsaddagi platformada qanday tarqalgan bo’lishi haqida qarorlar qabul qilishingiz lozim. Tarqalgan tizimlar uchun tarqaladigan komponentalar mavjud maxsus platformalar ustida qaror qabul qilishingiz lozim bo’ladi. Qaror qabul qilishda ko’rib chiqishingiz kerak bo’lgan muammolar:
1. Komponentning qurilma va dasturiy talablari. Agar component maxsus
qurilma arxitekturasi uchun loyihalashtirilgan bo’lsa, yoki boshqa dasturiy
ta’minot tizimlarida qo’llanilsa, bu shubhasiz talab qilingan qurilma va
dasturni qo’llab quvvatlovchi platformada tarqatiladi.
2.Tizim mavjudligi talablari. Yuqori -mavjud tizimlar bittadan ko’p platformada tarqalgan komponentalarni talab qilishi mumkin. Bu shuni anglatadiki, platform inkor qilgan holatda komponentning alternative ishlab chiqilishi mavjud.
3.Kommunikatsiya komponentlari. Agar komponentlar orasida yuqori darajali aloqa trafigi bo’sa, unda ularni o’sha platformada yoki fizik jihatdan bir - biriga yaqin bo’lgan platformalarda aralashtirish kerak. Bu aloqa ushlanib qolishini, vaqtlar orasidagi ushlanishni kamaytiradi, xabar bitta component tomonidan jo’natiladi va boshqasi tomonidan qabul qilinadi.
2.3.Dasturiy ta’minotni testlash
Testlash, dasturiy ta’minotni foydalanishga qo’yishdan oldin dastur nuqsonlarini topish va ularni to’g’irlashga mo’ljallangan dasturlarni ko’rsatishga mo’ljallangan. Siz dasturiy ta’minotni testlagan chog’ingizda, sun’iy ma’lumotlardan foydalanib dasturni ishga tushirasiz. Siz dasturni testlash natijalarini xatolarga, anomaliya(normal holatdan chetlashish)ga yoki dasturning
nofunksional sifatlari haqida ma’lumotga tekshirasiz.
Testlash jarayonida ikkita alohida maqsadlar mavjud:
1.Ishlab chiqaruvchi va buyurtmachiga ularning dasturiy ta’minoti talablari
bajarilayotganini namoyish etish. Buyurtma qilingan dasturiy ta’minot uchun hujjatdagi talablarning har biri uchun kamida bitta testlash bo’lishi lozim. Umumiy dasturiy ta’minot mahsulotlari uchun esa, tizimning barcha funksiyalari uchun, shuningdek, tayyor mahsulotda ishlatiladigan funksiyalar aralashmasi uchun testlashlar bo’lishi kerak.
2.Dasturiy ta’minot noto’g’ri, ishonarsiz yoki spetsifikatsiyalarga mos kelmagan hollarni aniqlash. Ular dasturiy ta’minotning nuqsonlari hisoblanadi. Nuqsonlarni testlash keraksiz tizimlarning nuqsonlariga barham berish bilan bog’liq, masalan, tizimning to’xtab qolishi, boshqa tizimlar bilan keraksiz bo’g’lanishi, ma’lumotlarning noto’g’ri hisoblanishi va buzilishi.
Birinchi maqsad bu ishlatilishi kutilayotgan tizim tekshirishlarini testlashdir.
Bunda ishlatilishi kutilayotgan tizimni tekshiruvchilarni berilgan testlar
jamlanmasidan to’g’ri foydalangan holda testlash lozim.
Ikkinchi maqsad, tizim nuqsonlarini testlashga olib keladi. Bunda tizim nuqsonlarini ko’rsatishi uchun nazorat misollari qo’yilgan bo’ladi. Albatta, testlashning bu ikki yo’li o’rtasida aniq bir chegara yoq. Tekshiruvlarni testlash vaqtida siz tizimdaginuqsonlarni topasiz;
Nuqsonlarni testlash vaqtida bazi testlar dasturiy ta’minot ularning talablari javob
berayotganini ko’rsatadi. Rasmda ko’rsatilgan sxema, tekshirishlarni testlash va nuqsonlarni testlash orasidagi farqlarni tushunishga yordam beradi.Testlovchi tizimingizni qora quti deb tasavvur qiling. I deb o’rnatilgan kiruvchi signallardan tizim kiruvchi signallar qabul qiladi va chiquvchi signallarni O deb o’rnatilgan chiqishga uzatadi. Chiqishlarning ba’zilari xatolikka tutilishi mumkin. Bular Oye jamlanmasidagi chiquvchilardir, ular Ie jamlanmasidagi kiruvchi signallarga javoban ishlab chiqilgandir. Nuqsonlarni testlashda birinchi o’rinda Ie da o’rnatilgan kiruvchilarni topishdir, chunki ular tizim bilan bog’liq muammolarni ochib beradi. Tekshir ishlarni testlash Ie dan tashqarida joylashgan to’g’ri kiruvchilar bilan teslashni o’z ichiga oladi. Ular kutilayotgan to’g’ri natijalarni olish uchun tizimni kuchaytiradi.
Testlash dasturiy ta’minotning nuqsonlarga egaligi yoki bir aniq vaqtda u o’zini ko’rsatilgandek tutishini namoyon qilmaydi. Siz kuzatayotgan test kelgusida tizim bilan yuz beradigan muammolarni topishi imkoniyati doimo mavjud.
Verifikatsiya va validatsiya jarayonlari odamlar pul to’laydigan dasturiy ta’minotning funksional imkoniyatlarini ta’minlash va uning shartlariga mos kelishini tekshirish bilan bog’liq. Bu tekshirish jarayonlari talablar mavjud hollarda
va ular ishlab chiqarish jarayonlarining barcha bosqichlarini davom ettirish vaqtida boshlanadi.
Verifikatsiyaning maqsadi dasturiy ta’minot unga qo’yilgan funksional va
nofunksional talablarga javob berishini tekshirishdir. Verifikatsiya umumiy jarayon hisoblanadi.
Validatsiyaning maqsadi dasturiy ta’minot buyurtmachi kutayotgan natijalarga mosligini ta’minlashdir. Validatsiyamuhim rol o’ynaydi, sababi, ma’lumotlarni tasniflash talablari har doim ham mijozlar va foydalanuvchilar talablari va istaklarini amalga oshiravermaydi.
Varifikatsiya va validatsiya jarayonining yakuniy maqsadi esa daturiy ta’minot tizimi “maqsadga mos kelishi” ga ishonchni o’rnatishdir. Yetarli darajadagi ishonch bosqichi, tizimning maqsadi,tizim foydalanuvchilarning talablaridan, shuningdek, tizim uchun joriy marketing muhitidan kelib chiqadi:
1.Dasturiy ta’minot.
Dasturiy ta’minotning eng kritik, eng muhimligi bu uning ishonchliligidir. Masalan, tanqidiy tizimlarni ehtiyot qilishni boshqarish uchun qo’llaniladigan dasturiy ta’minot uchun kerak bo’lgan ishonch darajasi, mahsulotni yangi g’oyalarini namoyon etish uchun ishlab chiqilgan prototip uchun bo’ladigan talabdan ancha yuqoridir.
2.Foydalanuvchi kutayotgan natijalar.
Ularning buglar bilan, ishonarsiz dasturiy ta’minot bilan tajribalari bo’lganligi tufayli, ko’plab foydalanuvchilar sifatli dasturiy ta’minotni uqadar kutadilar. Ular dasturiy ta’minot ishdan chiqishidan hayratga tushmaydilar. Yangi tizimni o’rnatayotganlarida foydalanuvchilar muvoffaqiyatsizlikka ham chidashadi, sababi dasturiy ta’minotdan foydalanish dasturni to’xtashlaridan keyingi qayta tiklani shiga ketgan harajatlarni ustunroq keladi. Bu kabi holatlarda dasturiy ta’minotni testlashga ko’p vaqt ajratishingiz kerak bo’lmaydi. Biroq, dasturiy ta’minot tugallanishga yetishi bilan foydalanuvchilar uning ishonchli, ular xoxlaganidek bo’lishini kutadi lar, shuning uchun dasturiy ta’minotni ishlab chiqishni oxirgi bosqichlarida ko’proq testlash talab qilinishi mumkin.
3.Marketing muhiti.
Tizim bozorga chiqqanida, tizimni sotuvchilar raqobatchi mahsulotlarni, sotib oluvchilar to’lashga tayyor bo’lgan narxlarni, shuningdek, ushbu tizimni yetkazilib berilishi uchun talab qilinadigan grafikni inobatga olishlari lozim. Raqobatbardosh muhitda, dasturiy ta’minotni ishlab chiqaradigan korxonalar, uni umumiy testlanishidan oldin dasturni foydalanishga topshirishga qaror qabul qiladilar, sababi ular bozorda birinchi o’rinda turishni xoxlaydilar. Agar dasturiy ta’minot judayam arzon baholangan bo’lsa, foydalanuvchilar uning ishonarsizligiga sabr qilishga tayyor bo’ladilar.
2.4.Dasturiy maxsulotning evolutisiyasi
Dasturiy maxsulotning o’zgarishi muqarrar
Dasturiy maxsulotdan foydalanilayotganda yangi talablar yuzaga keladi
Biznes muhitning o’zgadi
Xatoliklarning tamirlanish majburiyati
Yangi kompyuter va jihozlarning sistemaga qo’shilishi
Sistemaning ish bajarishi yoki ishonchliligini oshirishga majbur bo’lish
Barcha tashkilotlar uchun asosiy muammo ularning mavjud dasturiy taminoti
uchun o’zgarishlarni amalga oshirish va boshqarishdir
Evoulutsiyaning ahamiyati
Tashkilolarning dasturiy taminot tizimlarida juda katta investitsiyasi bo’lishi
bu katta mulkdir
Bu mulkni biznesda qiymatini saqlab qolish uchun ular o’zgartirilishi va
yangilanib borishi lozim
Katta kompaniyalardagi dasturiy maxsulot mablag’ining katta qismi yangi
dasturiy taminot yaratgandan ko’ra mavjjud dasturiy taminotni rivojlantirish
va o’zgartirishga sarflanadi.
Evalutsiya va servis xizmat
Evolutsiya
Bu dasturiy taminot hayot siklining shunday bosqichiki bunda u tezkor
oshlatishda bo’ladi va taklif qilingan yangi talablar bosqichma - bosqich
shaklanadi.hamda sistemada amaga oshiriladi.
Servis xizmat ko’rsatish
Bu bosqichda dasturiy maxsulot foydali bo’lib qoladi lekin faqatgina o’zgarishlar uning tezligini oshirish maqsadida qo’shiladi ya’ni dasturiy taminotda muhitida xatolarni to’grilash va o’zo’zgarishlarni tasvirlash amalga oshiriladi. Yangi funksiyalar esa qo’shilmaydi.
Bosqichdan chiqish
Dasturiy taminot haligacha ishlatiladi lekin uni hosil qilish uchun yangi o’zgartirishlar kiritilmaydi
Elolutsiya jarayoni Dasturiy maxsulot evolutsiyasi quyidagilarga bog’liq:
- Saqlanib kelayotgan dasturiy maxsulotning turi
- Foydalanilayotgan qurilish jarayoni
- Loyihaga jalb qilingan ishchilarning tajribasi va qobilyati
O’zgarishlar uchun takliflar tizim evolutsiyasi uchun asosiy hisoblanadi
Inedtifikatsiya va evolutsiyaning o’zgarishi tizimning butun hayot sikli mobanida
davom etadi.
Evolutsiya va identifikatsiya o’zgarish jarayonlari
Amalga oshirishning o’zgarishi
Sakllantirilgan amalga oshirilgan va test qilingan sistemani takrorlantiradigan yaratilish jarayonining qaytishi(takrorlanishi). Muhim farq shundaki amalga oshirish o’zgarishining birinchi bosqichi o’z ichiga dasturni tushunishni oladi. ayniqsa bu holathaqiqiy tizim tashkilotchilari amalga oshirishga javobgar bo’lmaganlaridasodir bo’ladi.
XULOSA:
Dasturiy ta’minot arxitekturasi, dasturlar va tizimlarni yaratishda va ularni boshqarishda qo'llaniladigan umumiy qonunlar, printsip va usullarni ifodalaydi. Ushbu arxitektura, dasturlar va tizimlar o'rtasidagi aloqani, ularga foydalanuvchilar, ma'lumotlar, va resurslarni boshqarish usullarini belgilaydi. Mavzu quyidagi asosiy arxitektura variantlari bilan bog'liq. Monolit arxitektura, dastur barcha qismi bitta modul (monolit) ichida joylashgan holda yaratiladi. Bu oddiy va to'liq dasturlarni ishlab chiqishda qulay bo'lishi mumkin, lekin katta dasturlarda o'zgartirishlarni amalga oshirishni qiyinlashtirishi mumkin. Mikroservis arxitekturasi, tizimni kichik mikroservislarga ajratib, har bir mikroservisning o'z funktsionalini bajarishiga asoslanadi. Ushbu arxitektura, tizimni yengil, o'zgartirishga qodir va qo'shimcha resurslardan samarali foydalanishga olib keladi.
Foydalanilgan adabiyotlar
1.“Software Engineering”, by Ian Sommerville, 2015, pages – 790.
2.Holdener, A. T. (2008). Ajax: The Definitive Guide. Sebastopol, Ca.: O’Reilly and Associates.
3.Abrial, J. R. (2005). The B Book: Assigning Programs to Meanings.
Cambridge, UK: Cambridge University Press.
4.http://www.SoftwareEngineering -9.com
Dostları ilə paylaş: |