logo

TARQATILGAN DASTURIY TA'MINOT TIZIMLARIGA KIRISH

Загружено в:

12.08.2023

Скачано:

0

Размер:

204.82421875 KB
 “TARQATILGAN DASTURIY TA'MINOT TIZIMLARIGA
KIRISH” 
Reja:
1. Dasturiy ta’minot jarayonlari
2. Tizim uchun talablarni shakllantirish
3. Dasturiy ta’minotni modellashtirish
4. Dasturiy ta’minotning arxitekturaviy dizayni
5. Dasturiy   ta’minotni   testlash.   Dasturiy   ta’minot
evolutsiyasi
6. Dasturiy   ta’minot   ishonchliligi.   Dasturiy   ta’minot
xavfsizligi 1. Dasturiy ta’minot jarayonlari
Biz zamonaviy dunyoni dasturiy ta’minotsiz tasavvur qila olmaymiz. Milliy
infrastrukturalar   va   utilitalar   kompyuterga   asoslangan   tizimlar   tomonidan   nazorat
qilinadi   va   ko’pgina   elektrli   mahsulotlar   o’z   ichiga   kompyuter   va   nazorat
dasturlarni   oladi.   Sanoatda   ishlab   chiqarish   va   tarqatish   to’liq
kompyuterlashtirilgan. Musiqa sanoati, kompyuter o’yinlari, film va televizorlarda
dasturiy   ta’minotdan   foydalanishadi.   Shu   sababli   dasturiy   injiniring   milliy   va
xalqaro   jamiyatlar   funksionalligi   uchun   muhimdir.   Dasturiy   ta’minot   tizimlari
mavhum va nomoddiy bo’lib ular materiallarning xususiyatlari yoki fizik qonunlar
bilan   chegaralanmagan.   Dasturiy   ta’minotning   potensialiga   hech   qanday   tabiiy
cheklanuvlar yo’q.
Professional dasturiy ta’minotni ishlab chiqish
Ko’p odamlar dasturlar yozishadi. Odamlar ishda o’z ishlarini osonlashtirish
uchun elektron jadval ko’rinishli dasturlar tuzushadi, tadqiqotchilar va injinerlar
ilmiy   tajribaga   oid   ma’lumotlarga   ishlov   berish   uchun   dasturlar   tuzishadi,   yoki
qiziqish   sabab   dasturlar   tuzishadi.   Professional   dasturiy   ta’minot   bu   dasturchidan
tashqari   boshqa   insonlar   ham   foydalanishi   maqsadida   ishlab   chiqiladi   va   odatda
individual bo’lib emas guruh bo’lib ishlanadi.
Dasturiy   injiniring   professional   dasturiy   ta’minotni   qo’llab   quyyatlashga
yo’naltirilgan   bo’lib   u   dasturning   o’ziga   xos   xususiyatlari,   dizayni   va
evolutsiyasini ta’minlovchi usullarni o’z ichiga oladi. 
Ikki xil turdagi dasturiy mahsulotlar mavjud:
1. Umumiy   mahsulotlar   Bular   autonom   tizimlardir   ya’ni   ishlab   chiqarish
tashkiloti   tomonidan   ishlab   chiqiladi   va   ochiq   bozorda   sotib   ola   biladigan mijozlarga sotiladi. Bu turdagi dasturiy mahsulotlarga shaxsiy kompyuterlar
uchun   dasturiy   ta’minotlar   masalan   ma’lumot   bazalari,   matn   tahrirlovchi,
rasmlar   chizish,   loyihalarni   boshqarish   uskunalari   kabi   dasturlarni   misol
qilib olishimiz mumkin.
2. Buyurtma mahsulotlar Bular alohida mijozlar tomonidan buyurtma qilingan
tizimlardir.   Bu   turdagi   dasturiy   mahsulotlarga   elektronik   qurilmalar   uchun
nazorat   tizimlari,   maxsus   ish   jarayonlariga   yordam   berish   uchun   yozilgan
tizimlarni misol qilib olishimiz mumkin.
Bu   ikki   turdagi   mahsulotlarning   asosiy   farqi   shundaki,   umumiy
mahsulotlarda   dasturiy   ta’minot   xususiyatlarini   dasturiy   ta’minotni   ishlab
chiqaruvchi   tashkilot   nazorat   qiladi.   Buyurtma   mahsulotlarda   mahsulotni   sotib
oluvchi tashkilot dasturiy ta’minot xususiyatlarini ishlab chiqadi va nazorat qiladi.
Biroq hozirgi kunga kelib bu ikki turdagi mahsulotlar orasidagi farq tobora
kamayib   boryapti,   chunki   ko’pgina   tizimlar   umumiy   mahsulot   sifatida   qurilyapti
va mijozlar qaladiga qarab moslashtirilyapti. Enterprise Resource Planning (ERP)
tizimlar, masalan SAP tizimi bunga yaqqol misol bo’lishi mumkin. 
Dasturiy injiniring ba’zida dasturiy ta’minot jarayoni ham deyiladi. Dasturiy
ta’minot   jarayoni   dasturiy   mahsulotni   ishlab   chiqish   faoliyatlari   ketma-ketligidir.
Barcha   dasturiy   ta’minotlar   uchun   umumiy   bo’lgan   to’rtta   asosiy   faoliyat   bor.
Bular:
1. Dasturiy ta’minot xususiyati
2. Dasturiy ta’minotni ishlab chiqish
3. Dasturiy ta’minotni tekshirish
4. Dasturiy ta’minot evolutsiyasi
Dasturiy ta’minot jarayoni
Dasturiy   ta’minot   bu   dasturiy   mahsulotni   tayyor   holatga   olib   kelish
faoliyatilari   to’plamidir.   Bu   faoliyatlar   Java   yoki   C   kabi   standart   dasturlash
tillarida dasturlarni ishlab chiqishni o’z ichiga olishi mumkin. Dasturiy   ta’minot   jarayoni   modeli   bu   dasturiy   ta’minot   jarayonining
soddalashtirilgan ko’rinishidir.
Jarayon modellari:
1. Sharshara modeli
2. Ortib borish modeli
3. Qaytib foydalanishga mo’ljallangan dasturiy injiniringi
Sharshara modeli
Sharshara   modeli   birinchi   bo’lib   e’lon   qilingan   dasturiy   ta’minotni   ishlab
chiqish jarayoni modelidir (Royce, 1970).
Sharshara modeli asosiy  bosqichlari bevosita dasturiy
ta’minotni rivojlantirish bosqichini aks ettiradi:
Requirements   analysis   and   definition   Tizim   foydalanuvchilari   bilan
maslahatlashib tizimning servislari, chegaraklari va maqsadlari belgilab olinadi
System and software design Tizim dizayni jarayonida tizim arxitekturasini tashkil
qilish   orqali   apparat   yoki   dasturiy   tizimlarga   talablar   belgilanadi.   Dasturiy
ta’minot   dizayni   fundamental   dasturiy   ta’minot   tizimlari   mavhumliklari   va
ularning munosabatlarini identifikatsiyalash va tasvirlashni o’z ichiga oladi. Implementation and unit testing Bu bosqichda dasturiy ta’minot dizayni dasturlar
to’plami   yoki   dastur   bo’limlar   ko’rinishda   amalga   oshiriladi.   Bo’lim   testlash
jarayonida har bir bo’lim alohida testlanadi.
Integration   and   system   testing   Individual   dastur   bo’limlari   yoki   dasturlar
birlashtiriladi   va   to’liq   tizim   ko’rinishida   testlanadi.   Testlashdan   keyin   dasturiy
ta’minot tizimi foydalanuvchiga yetkaziladi.
Operation   and   maintenance   Bu   eng   uzun   hayot   sikli   fazasi   hisoblanadi.
Tizim   o’rnatiladi   va   amaliy   foydalanishga   qo’yiladi.   Maintance   o’z   ichiga   hayot
siklining   oldingi   bosqichlarida   tuzaqtilmagan   xatoliklarni   tuzatish,   tizim
bo’limlarining   amaliy   ko’rinishlarini   yaxshilash   va   tizim   servislarini   yangi
talablarga mos ravishda yaxshilashni o’z ichiga oladi.
Ortib borish modeli
Incremental (ortib borish) ishlab chiqish dastlabki  amaliy ko’rinishni ishlab
chiqish   g’oyasiga   asoslangan.   Foydalanuvchi   izohlariga   qarab   tizimning   keyingi
versiyalari ishlab chiqiladi.
Qayta foydalanishga mo’ljallangan dasturiy injiniring
Ko’pgina   dasturiy   ta’minot   loyihalarida   bir   nechta   qayta   foydalaniladigan
dasturiy ta’minotlar mavjuv.
Qayta   foydalanishga   mo’ljallangan   jarayonlarda   foydalanish   mumkin
bo’lgan uch xil turdagi dasturiy ta’minot komponentalari bor:
1. Veb servislar servis standartlariga ko’ra ishlab chiqilgan
2. .NET yoki J2EE kabi componenta freymvorklarga integratsiya
qilinadigan paketlangan obyektlar kolleksiyasi
3. Maxsus muhitlarda foydalanish uchun sozlangan autonom dasturiy ta’minot
tizimlari.
Sifatli va tezkor dasturiy ta’minot ishlab chiqish Tezkor dasturiy ta’minot ishlab chiqish jarayoni foydali dasturiy ta’minotni
tezda tayyorlashga mo’ljallangan.
Tezkor   dasturiy   ta’minot   ishlab   chiqishning   bir   nechta   yondashuvlari
mavjud bo’lsada ularning asosiy xarakteristikalari mavjud:
1. Xususiyatlarni   aniqlash,   dizaynlash   va   amaliy   ko’rinishga   keltirish
jarayonlari birlashtirilgan. Tizimning xususiyatlari batafsil keltirilmaydi va dizayn
hujjatlari minimumlashtirilgan. Foydalanuvchi talablari hujjatlari tizimning muhim
xarakteristikasi hisoblanadi.
2. Tizim bir necha talqinda ishlab chiqariladi. Foydalanuvchi  yangi talablarini
qondirish maqsadida dasturiy ta’minotning novbatdagi talqini ishlab chiqariladi.
3. Tizimning   foydalanuvchi   interfeysini   tezda   tayyorlash   maqsadida   IDS
(integrated development system)
2. Tizim uchun talablarni shakllantirish
Tizim uchun talablar bu tizim nima ish bajarish lozimligini tasvirlashdir.
Talablar tizim mijozlarini ehtiyojlarini aks ettiradi.
Talablar   injiniringi   jarayonida   ko’pgina   muammolar   ko’tariladi.
Foydalanuvchi   talablari’   va   ‘tizim   talablari’   terminlari   orasida   farq   mavjud.
Foydalanuvchi talablari va tizim talablari quyidagicha izohlanishi mumkin:
1. Foydalanuvchi   talablari   bu   diagrammalar   bilan   tabiiy   tildagi
bayonotlar.
2. Tizim   talablari   bu   dasturiy   ta’minot   tizimi   funksiyalari,   servislari   va
operativ cheklanishlarining batafsil tasvirlanishi. Siz talablarni turli xil darajada yozishingiz kerak chunki turli xil o’quvchilar
turli xil yo’lda foydalanishadi.
Dasturiy   ta’minot   tizimi   talablari   funksional   va   funksional   bo’lmagan   talablar
sinflariga ajratiladi.
1. Funksional   talablar   Bu   tizim   taminlashi   lozim   bo’lgan   servislarning
bayonoti.   Kiritilgan   ma’lumotlarga   tizim   qanday   reaksiya   ko’rsatishi
lozim, tizim o’zini bunday holatlarda qanday tutushi lozim
2. Funksional   bo’lmagan   talablar   Bu   tizim   tomonidan   taklif   qilinayotgan
servislar   va   funksiyalardagi   cheklovlar.   U   o’z   ichiga   vaqt   cheklanishi,
ishlab   chiqarish   jarayoni   cheklanishi,   beriladigan   standartlar   tomonidan
cheklanishlarni olishi mumkin.
Dasturiy ta’minot talablari hujjati
Dasturiy   ta’minot   hujjati   bu   tizimni   ishlab   chiquvchilar   nimani   oshirishi
lozimligini   ifodalovchi   rasmiy   hujjatdir.   U   tizim   uchun   foydalanuvchi   talablarini
ham   tizim   talablarining   batafsil   spesifikatsiyasini   ham   o’z   ichiga   oladi.   Bazida
foydalanuvchi   va   tizim   talablari   bitta   qilib   tavsiflanadi.   Bazi   hollarda   esa foydalanuvchi   talablari   hujjatning   kirish   qismi   va   tizim   talablari   asosiy   qismni
tashkil qiladi.
Talablar hujjatidan foydalanuvchilar
Tizim   mijozlari Talablarni   ko’rsatish   va   talablar   bajarilganligiga
tekshirish   uchun   o’qish.   Mijozlar   shuningdek
talablarni   o’zgartirishi   mumkin.
Boshqaruvchilar Tizimni   narxlash   va   ishlab   chiqishni   rejalashritish
uchun   talablar   hujjatidan   foydalanish.
Tizim   injinerlari Ishlab   chiqarilayotgan   tizimni   tushunish   uchun  
talablardan foydalanish.
Tizimni   testlovchi  
injinerlar Tizimni   haqiqiylikka   tekshirish   uchun   tizm  
talablaridan foydalanish.
Tizimga   xizmat  
ko’rsatuvchi   injinerlar Tizim va uning qismlari munosabatini  
tushunish   uchun   talablardan   foydalanadi.
Talablar hujjatining strukturasi
Bo’lim Tavsifi
Muqaddima Hujjatni kutilgan o’quvchilarini aniqlash   lozim
Kirish Tizim muhimligini tasvirlash. Tizim  
funksionalligi   qisqacha   tasvirlanadi.
Glossariy Hujjatda foydalanilgan texnik terminlarni   aniqlash
Foydalanuvchi  
talablari Foydalanuvchi   uchun   taminlangan   servislarni   tasvirlash
Tizim   arxitekturasi Kutilgan   tizim   arxitekturasini   yuqori-darajali   ko’rinishi
Tizim   talablari Funksional va funksional bo’lmagan   talablarning 
batafsil   ko’rinishi Tizim   modellari Tizim componentalari orasidagi  
munosabatlarni   grafik   tizimini   ko’rsatish
Tizim   evolutsiyasi Tizimga   asoslanib   fundamental   taxminlarni   tasvirlash
Ilova Ishlab   chiqarilayotgan   ilova   haqida   batafsil   ma’lumotlar;
masalan,   apparat   ta’minot   va   ma’lumotlar   bazasi
Index Hujjat   indekslari
3. Dasturiy ta’minotni modellashtirish
Modellar talablar injiniringi jarayonida tizim uchun talablarni hosil qilishda
foydalaniladi.   Siz   mavjud   tizimlarning   modelini   va   ishlab   chiqarilayotgan
tizimning modelini tuishingiz mumkin.
1. Mavjud   tizim   modellari   talablar   injiringi   mobaynida   foydalaniladi.   Ular
mavjud tizimning nima ish bajarishini aniqlashtiradi va tizimning kuchli
va kuchsiz tomonlarini muhokama qilishga asos bo’ladi. Bu yangi tizim
uchun talablar ishlab chiqishga olib keladi.
2. Yangi tizim modellari talablar injiniringi davomida yordam berish uchun
ishlatiladi.   Injinerlar   dizayn   bo’yicha   takliflarni   muhokama   qilishda
modellardan foydalanadi.
Tizim modelining eng muhim tomoni shundaki unda tizim haqidagi batafsil
ma’lumotlar   tashlab   ketiladi.   Model   o’rganilayotgan   tizimning   mavhum
ko’rinishidir.
Siz   tizimni   turli   xil   ko’rinishlarini   ko’rsatish   uchun   turli   xil   modellarni
ishlab chiqishingiz mumkin. Masalan:
1. Tashqi ko’rinish, tizimning konteksti yoki muhitini modellashtirish.
2. O’zaro   munosabatlar   ko’rinishi,   tizim   bilan   muhit   yoki   tizim
komponentalari o’rtasidagi o’zaro munosabatni modellashtirish. 3. Strukturaviy ko’rinish, tizim tomonidan ishlov berilayotgan ma’lumotlar
strukturasi yoki tizim tashkilotini modellashtirish.
4. Xatti   harakatlar   ko’rinishi,   tizimning   dinamik   xatti   harakatlari   va
hodisalarga qanday javob berishini modellashtirish.
Tizimning turli xil modellarini yaratish uchun UML bir nechta
diagrammalarga ega.
1. Faoliyat diagrammalari, jarayondagi faoliyatlarni ko’rsatadi.
2. Foydalanish holati diagrammari, tizim va uning muhiti   o’rtasidagi
munosabatni ko’rsatadi.
3. Ketma-ketlik diagrammalari, shaxs va tizim va tizim komponentalari orasidagi
munosabatlarni ko’rsatadi.
4. Sinf diagrammalari, tizimdagi obyektlar sinflari va   ularning
o’zaro munosabatini ko’rsatadi
5. Holat diagrammari, tizimning ichki va tashqi hodisalarga ta’sirini ko’rsatadi.
UML   (Unified   Modeling   Language)   -   birlashgan   modellashtirish   tili   dasturiy
ta’minot tizimlarini modellashda 13 ta turli xil diagramma turlaridan foydalanadi.
UML   dasturiy   ta’minot   tizimlarini   modelini   yaratishda   standart   yondashuv   deb
qabul qilingan.
Konteks modellar
Konteks   modellar   tizimning   tezkor   kontekstini   ko’rsatishda   foydalaniladi.
Arxitekturaviy   modellar   tizim   va   uning   boshqa   tizimlar   bilan   munosabatini
ko’rsatadi.
Tizim chegaralari
Tizim   chegaralari   nima   tizim   ichida   va   nima   tizim   tashqarisidaligini
ko’rsatadi.   Ular   ishlab   chiqarilayotgan   tizimda   foydalanilayotgan   yoki   bog’liq
bo’lgan boshqa tizimlarni ko’rsatadi. Konteks   modellar   muhitdagi   ishlab   chiqarilayotgan   tizimni   emas   balki
muhitdagi boshqa tizimlarni ko’rsatadi.
Jarayon   modellar   ishlab   chiqarilayotgan   modellarni   ko’rsatadi.   UML
diagrammalar jarayon modellarda foydalaniladi.
4. Dasturiy ta’minotning arxitekturaviy dizayni
Dasturiy   ta’minotning   arxitekturaviy   dizayn,   tizimning   umumiy   tuzilishi
dizayni va uni qanday tashkillashtirish tushunchalari bilan bog’liqdir.
Siz   dasturiy   ta’minot   arxitekturasini   ikkita   ajralmas   bosqichlarda
dizaynlashtira olasiz. Bular, kichik arxitektura va katta arxitektura:
1. Kichik arxitekturaga shaxsiy dasturlarning arxitekturalarini o’z ichiga oladi.
2. Katta arxitektura boshqa tizimlarni, dasturlarni va dasturiy komponentalarni
qamrab oladigan murakkab korxona tizimlari arxitekturasini o’z ichiga oladi.
Dasturiy ta’minot arxitekturasi tizimni ishlab chiqishda muhim o’rin tutadi,
sababi u tizimni ishlab chiqilishiga, ishonchliligiga, keng ko’lamda qo’llanilishiga
va  qayta  ishlab   chiqilishiga  ta’sir   qiladi.  Shaxsiy  komponentalar   funksional  tizim
talablarini bajaradi. Nofunksional talablar tizim arxitekturasidan kelib chiqadi – bu
komponentalar   tashkil   qilinadigan   va   bir-biriga   bog’lanadigan   yo’ldir.   Ko’plab
tizimlarda, nofunksional talablar ham shaxsiy komponentalar tomonidan bajariladi,
lekin bu yerda shubxasiz tizim arxitekturasi ustuvor hisoblanadi.
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. 
5. Dasturiy ta’minotni testlash.  Dasturiy ta’minot evolutsiyasi
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   tizimdagi   nuqsonlarni
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.
Tekshirishlarni   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.   Validatsiya   muhim   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 tiklanishiga 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   kutadilar,
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.
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
Sakllantirilhan   amalga   oshirilgan   va   test   qilingan   sistemani
takrorlantiradigan yaratilish larayonining 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. Dastruni   tushunish   bosqichi   davomida   siz   dasturning   tuzilish   strukturasini,
dasturga   yaxshi   tasir   qiladigan   o’zgartirishlarni   qanday   taklif   qilishni   va   uning
funksiyonalligini qanday taminlab berishni tushunishingiz shart.
Zarur o’zgarishlar talablari
Zarur o’zgarishlar dasturiy enginering jarayoning barcha bosqichlarida ham
amalga oshirish shart bo’lmasligi mumkin
• Jiddiy tizim xatosi normal amaliyot davom ettirishga imkon berishni tuzatish
kerak bo’lganda
• Agar sistema muhiti uchun kutilmagan tasirlar bo’lsa
• Agar tezda javob qaytarishni talab qiladigan bizness talablar bo’lsa.
6. Dasturiy ta’minot ishonchliligi. Dasturiy ta’minot xavfsizligi
Dasturiy ta’minot ishonchliligi
Dasturiy   ta'minot   tizimlarining   hajmi   va   murakkabligi   oshib   borgani   sari,
dasturiy   injiniring   sohasida   uchraydigan   eng   muhim   talab   bu   -   biz   tizimga
ishonishimiz   mumkinligini   ta'milash   ekanligi   oydinlashmoqda.   Biz   biror   tizimga
ishonishimiz   uchun   bu   tizim   talab   qilingan   ishga   mos   kelishi   va   bu   ishni   to'g'ri
bajarishi kafolatlanmog'i  lozim. Buning ustiga tizim xavfsiz bo'lsin, ya'ni  bizning
PC   larimiz   yoki   ma'lumotlarimiz   bu   tizim   orqali   xavf   ostida   qolmasin.   Bizning
ushbu   ma'ruzamiz   ishonchlilik   va   xavfsizlik   borasidagi   muhim   ma'lumotlarni   o'z
ichiga oladi.
Hisoblash   tizimlari   shaxsiy   hayotimiz   hamda   ishlarimizga   chuqur   kirib
borgani   sari   tizim   va   dasturiy   ta'minot   nosozligi   oqibatida   kelib   chiqadigan
muammolar   ham   ortib   bormoqda.   Masalan,   elektron   tijorat   bilan   shug'ullanuvchi
kompaniyaning serveri dasturiy ta'minotida paydo bo'lgan nosozlik ko'p miqdorda
yillik daromad boy berilishi, mijozlarning yo'qotilishiga sabab bo'ladi.
Hozirda   dasturiy   ta'minot   intensiv   tizimlari   hukumat,   kompaniyalar   va
jismoniy   shaxslar   uchun   juda   ham   zarur,   shuning   uchun   keng   qo'llanadigan dasturiy   ta'minotlarga   qo'yiladigan   eng   muhim   talablardan   biri   bu   ishonchlilik
bo'ladi.   Dasturiy   ta'minot   talab   qilingan   vaqtda   javob   berishi   ,   vazifani   to'g'ri
bajarishi   hamda   autorizatsiyalanmagan   ma'lumotlarni   oshkor   etilishi   kabi   ishning
maqsadiga to'g'ri kelmaydigan ta'sirlardan yiroq bo'lishi kerak. 'dependability' ya'ni
'ishonchlilik'   termini   1995   -   yilda   Lepray   tomonidan   tizimining   tayyorlik,
mustahkamlik,   xavfsizlik   va   himoyalanganlik   xususiyatlarini   qamrab   oluvchi
atama sifatida taklif etilgan edi.
Quyidagi   sabablarda   ko'ra   tizimlar   ishonchliligi   hozirda   ularning   barcha
funsionalligidan ko'ra muhimdir:
1. Tizim   nosozligi   ko'p   sondagi   insonlarga   zarar   keltiradi .   Ko'pgina
tizimlarning   ichki   funksionalligi   kam   ishlatiladi.   Agar   bu   funksionalliklar
ya'ni   xizmatlardan   biri   tizimdan   olib   tashlansa   oz   miqdordagi
foydaanuvchilar   zarar   ko'radi.   Tizim   yaroqliligiga   zarar   yetkazuvchi
nosozlik   esa   bu   tizimdan   foydalanayotgan   barcha   iste'molchilarga   zarar
ketirishi mumkin. Nosozlik vaqtida normal ish yuritib bo'lmay qoladi.
2. Foydalanuvchilar   odatda   mustahkam   bo'lmagan,   himoyalanmagan   yoki
xavfsiz   bo'lmagan   tizimlarni   rad   etadilar.   Agar   foydalanuvchilar   tizimni
ishonchsiz va himoyalanmagan deb topsalar, uni ishlatishdan bosh tortadilar.
Bu   narsa   esa   keyinchalik   ushbu   tizimni   ishlab   chiqargan   kompaniyaning
boshqa   mahsulotlariga   nisbatan   ham   foydalanuvchilar   ishonchining
so'nishiga olib keladi.
3. Tizim   nosozligi   juda   qimmatga   tushishi   mumkin .   Yadro   reaktorini   nazorat
qilish yoki  airoplanlarni  boshqaruvchi  tizimlarga o'xshash  tizimlarda paydo
bo'ladigan   nosozliklardan   keladiga   zarar,   ularni   boshqarishga   sarflangan
xarajatlar qiymatidan ham o'tib tushadi.
4. Ishonchsiz   tizimlar   axborot   yo'qotilishiga   sabab   bo'lishi   mumkin .   Gohida
hisoblash   tizimiga   joylashtirilgan   ma'lumotlar   shu   tizimning   o'zidan-da
qimmat bo'ladi. Yo'qotilgan ma'lumotlarni qayta tiklash esa yanada qimmat
turadi. Ishonchli tizimni loyihalashda quyidagilarni e'tiborga olmoq lozim:
1. Apparat   ta'minotidagi   nosozliklar.   Tizim   apparat   ta'minoti   o'zining
qurilishidagi xatolar yoki biror ehtiyot qismning o'z vazifasini o'tab bo'lgani
sababidan nosozlikka duchor bo'ladi.
2. Dasturiy   ta'minot   nosozligi.   Tizim   dasturiy   ta'minoti   uning   tavsifidagi,
loyihasidagi   yoki   realizatsiyasidagi   xatoliklar   tufayli   nosoz   bo'lib   qolishi
mumkin.
3. Faoliyatdagi nosozlklar . Insonlar tizimdan to'g'ri foydalanishda va uni to'g'ri
qo'llashda   xato   qilishlari   mumkin.   Apparat   va   dasturiy   ta'minotlar   ancha
mustahka   bo'lgan   hozirgi   davrda   faoliyatdagi   nosozliklar   tizim
nosozlilarining ko'pchiligini tashkil etadi deyish mumkin.
Bu   nosozliklar   ko'pincha   bir-biriga   bo'g'langan   bo'ladi:   nosoz   apparat
ta'minoti   tizim   operatorlariga   qo'shimcha   ishlar   yuklashi   ularni   qiyin   ahvolga
tushirib   qo'yishi   mumkin.   Bu   narsa   esa   ulani   asabiylashishiga   sabab   bo'ladi,
insonning  asabiylashganida   xato qilishi   esa  tabiiy  holdir.  Nosoz  dasturiy ta'minot
bilan ham shunday holatni kuzatish mumkin.
Hisoblash tizimi ishonchliligi - bu tizimga qanchalik ishonish mumkinligini
o'zida   aks   ettiruvchi   xususiyatdir.   Bu   bilan   ishonchlilikni   raqamlarda   ifodalashni
ko'zda   tutmayapmiz.   Balki   nu   o'rinda   "ishonchsiz",   "ishonchli",   "juda   ishonchli"
kabi atamalar tzizm ishonchliligini aks ettirish uchun qo'llaniladi.
Ishonchlilikning to'rtta asosiy qismi bor:
1. Tayyorlik . Bu xususiyat tizim foydalanuvchi talab qilgan har qanday vaqtda
oz' xizmatlarini taqdim eta olishidir.
2. Mustahkamlik .   Bu   xususiyat   tizim   o'ziga   berilgan   vazifani   bexato,
tavsiflarda keltirilganidek bajarishidir.
3. Himoyalanganlik .   Bu   tizim   kishilarga   yoki   o'z   muhitiga   qanchalik   ziyon
yekazishi mumkinligini ko'rsatadigan xususiyat. 4. Xavfsizlik .   Bu   tizimning   qasddan   qilingan   yoki   tasodifiy   tahdidlarga
qanchalik qarshilik ko'rsata olishini aks ettiradigan xususiyatdir.
Bu   asosiy   qismlarga   qo'shimcha   ravishda   quyidagi   xususiyatlarni   ham
ishonchlilikning tarkibiga kiritish mumkin:
1. Tuzatilish .   Tizim   nosozliklari   muqarrar   hodisadir,   lekin   nosozlik   natijasida
kelib   chiqqan   buzilish   agar   tizimni   tezda   tuzatish   imkoniyati   bo'lsa
minimallashtirilishi mumkin. Ochiq kodli dasturiy ta'minotlarda bu ish ancha
oson,   lekin   komponentalarni   qayta   qo'llayverish   buni   qiyinlashtirishi
mumkin.
2. Qo'llab   -   quvvatlanish.   Tizim   ishlatilgani   sari   unga   yangi   talablar   qo'tib
boriladi,   shuning   uchun   talablar   asosida   tizimning   yangi   versiyalari   ishlab
chiqarilishi orqali uni qo'llab-quvvatlash muhimdir.
3. Saqlanib   qolish.   Bu   Internetga   asoslangan   tizimlar   uchun   muhim   xossadir.
Saqlanib qolish bu - tizimning biror hujum ostida, hatto biror qismi o'chirib
qo'yilganda ham ishda davom eta olish xususiyatidir. Albatta bunda minimal
xizmat   ko'rsata   olish   nazarda   tutilmoqda.   Saqlanib   qolishni   kuchaytirish
uchun   3   ta   strategiya   qo'llaniladi   -   hujumga   qarshilik   qilish,   hujumni
aniqlash va hujum natijasida ko'rilgan ziyondan qayta tiklanish.
4. Xatolarga   chidamlilik .   Bunda   ko'pincha   foydalanuvchi   xato   ma'lumotlar
kiritganida,   iloji   bo'lsa   ularni   tuzatish   yo'qsa   foydalanuvchiga   bu   haqdagi
xabarni yetkazish tushiniladi.
Dasturiy ta’minot xavfsizligi
Biz   yuqorida   xavfsizlik   bu   tizimning   tashqi   qasddan   uyushtirilgan   yoki
tasodifiy   hujumlardan   o'znin   himoyalay   olish   xususiyati   ekanligi   haqida   so'z
yuritgan   edik.   Bu   tashqi   hujumlar   muqarrardir,   chunki   ko'pchilik   kompyuterlar
hozirda   internetga   ulanadi   va   bu   bilan   tashqi   tomondan   nishonga   aylanishi   hech
gap   emas.   Bunday   hujumlarga   viruslar   tushishi,   tizim   xizmatlaridan   ruxsatsiz
foydalanish,   tizimga   uatorizatsiyasiz   ulanib   uning   ma'lumotlarini   o'zgartirish
kabilarni   misol   tariqasida   keltirish   mumkin.   Agar   siz   haqiqatdan   xavfsiz   tizimda ishlashni   xohlasangiz,   unda   yaxshisi   internetga   ulanamay   qo'ya   qoling.   Shunda
agar   autorizatsiya   qilingan   foydalanuvchilar   ishonchli   bo'lsa   sizning   xavfsizlik
bo'yicha   muammolaringiz   o'z   yechimini   topadi.   Amalda   esa   katta   tizimlar   online
rejimida ishlagani uchun yuqori darajada foyda ko'radilar, internetdan uzilish ular
uchun daromadlarning keskin pasayishiga sabab bo'ladi.
Ko'pgina   tizimlar   uchun   xavfsizlik   bu   ishonchlilikning   asosiy   mezonidir.
Harbiy   tizimlar,   elektron   savdo   uchun   yaratilgan   tizimlar   hamda   o'ta   maxfiy
ma'lumotlarga   ishlov   berish   bilan   shug'ullanuvchi   tizimlar   yuqori   darajada
xavfsizlik   ta'minlangan   holda   loyihalashtirilishi   zarur.   Masalan,   agar   havo
tarnsportlariga   chiptalarni   buyurtma   qiluvchi   tizimda   tayyorlik   xususiyati   past
bo'lsa,   bu   ishonchning   yo'qolishi   hamda   ba'zi   chiptalardagi   kechikishga   sabab
bo'lishi mumkin. Agar bu tizim xavfsizligi past bo'lsa unda hujum qiluvchilar unga
kirib barcha buyurtmalarni o'chirib tashlashlari, buning natijasida esa normal havo
yo'llari   harakatlarini   davom   ettirishga   imkoniyat   bo'lmay   qolishi   mumkin.
Ishonchlilikning  boshqa   qismlari   kabi   xavfsizlik   ham   o'zining  maxsu   atamalariga
ega.
Pflegeer tomonidan muhim atamalar quyidagicha ta'riflanadi:
Mulk (asset)  - himoyalanadigan va biror qiymatga ega bo'lgan narsa. Mulk
bu   dasturiy   ta'minot   tizimining   o'zi   yoki   bu   tizim   tomonidan   ishlatiladigan
ma'lumot bo'lishi mumkin.
Zararlanish (exposure) - Hisoblash tizimi zaralanishi yoki undagi elementlar
yo'qotilishi   bo'lishi   mumkin.   Bunda   zarar   yoki   yo'qotish   ma'lumotlarda,   vaqtda
yoki xavfsizlik buzilganda keyingi tiklash ishlariga ketgan mehnatda ko'rinadi.
Zaif   himoyalanganlik   (vulnerability)   -   Hisoblash   tizimi   zaifligi,   bundan
foydalanib tizimga zarar yetkazilishi mumkin.
Hujum (attack)  - Tizimning himoyasi  zaifligidan foydalanib qolish. Odatda
bu tashqi tarafdan bo'ladi va bunda zarar qasddan yetkazilishi nazarda tutiladi. Tahdidlar   (threats)   -   zarar   yetkazishi   mumkin   bo'lgan   holatlar,   vaziyat   va
sharoitlar.   Bularga   tizimga   hujum   uchun   yo'l   ochib   beruvchi   zaif   himoyaga
qaragandek qarash lozim.
Nazorat   (Control)   -   tizim   himoyasi   zaifligini   ketkazuvchi   chora.   Bunga
shifrlashni misol qilib keltirish mumkin.
Ixtiyoriy tarmoqqa ulangan  tizimda, uch xil  asosiy  xavfsizlikka qilinadigan
tahdidlar uchraydi:
1. Tizim   va   uning   ma'lumotlari   maxfiyligiga   tahdidlar .   Bular   axborotlarning
autorizatsiyadan   o'tmagan   shaxslar   yoki   dasturlarga   ochilishiga   sabab   bo'lishi
mumkin.
2. Tizim va uning ma'lumotlari sofligiga tahdid . Bu tahdidlar dasturiy ta'minot
yoki ma'lumotlarga zarar yekazishi, ularni buzishi mumkin.
3. Tizim   va   uning   ma'lumotlari   tayyorligiga   tahdidlar .   Bu   tahdidlar
autorizatsiyadan   o'tgan   foydalanuvchilarga   ruxsatlarni   chegaralab   qo'yishi
mumkin.
Albatta   bu   tahdidlar   o'zaro   ichki   bog'lanishga   ega   Agar   hujum   tizim
tayyorligiga   zarar   yetkazsa,   unda   siz   vaqt   o'tishi   bilan   o'zgarib   turadigan
axborotlarni yangilay olmaysiz. Bu o'z navbatida tizim sofligini yo'qqa chiqaradi.
Shunday qilib zararlar bir - biriga ulanib ketadi.
Amalda,   sotsialtexnik   tizimlardagi   ko'pchilik   himoya   zaifligi   texnik
muammolardan   ko'ra   ko'proq   insonlarning   xatolari   natijasida   paydo   bo'ladi.
Odamlar   oson   parollar   tanlaydilar,   yoki   parollarini   topib   olish   oson   bo'lgan
joylarga   yozib   qo'yadilar,   tizim   administratorlari   ruxsatlarni   belgilashda   yoki
fayllarni   joylashtirishda   xato   qiladilar   bundan   tashqari   foydalanuvchilar
himoyalovchi dasturiy ta'minotlarni qo'llamaydilar.
Siz   tizim   xavfsizligini   kuchaytirish   uchun   qo'yishingiz   mumkin   bo'lgan
nazoratlar quyidagilardir: 1. Himoya zaifligidan chetlanish. Qilinayotgan hujumlar muvaffaqiyatsiz
bo'lishiga   ishonch   hosil   qilish   uchun   qo'yiladigan   nazoratlar.   Bu   yerda   strategiya
tizimni   xavfsizlikka   oid   muammolardan   chetda   loyihalashdan   iborat.   Masalan,
harbiy   tizimlar   mahalliy   tarmoqlarga   ulanmagan   bo'ladi,   shuning   uchun   ularga
tashqi kirish yo'llari berkdir. Ma'lumotlarni shifrlashni ham bu turdagi nazoratlarga
kiritish mumkin. Shifrlangan ma'lumotga har  qanday autorizatsiyasiz  kirishda, bu
ma'lumot  hujumchilar  tomonidan o'qib  bo'lmaydigan ko'rinishda bo'ladi. Amalda,
kuchli   shifrlangan   ma'lumotlarni   deshifrlash   ko'p   vaqt   talab   qiladi   va   qimmatga
tushadi.
2. Hujumni   aniqlash   va   uni   bartaraf   etish.   Bu   turdagi   nazoratlar
hujumlarni   aniqlab   ularni   yo'q   qilishga   mo'ljallangan.   Bu   nazoratlar   tizimda
bajarilayotgan   amallarni   kuzatib   turadi   va   g'ayrioddiy   holatni   aniqlaganda   chora
ko'radi: tizimning ushbu qismini o'chirib qo'yishi yoki aniqlangan foydalanuvchiga
kirish yo'lini yopib qo'yishi mumkin.
3. Chegaralar   qo'yish   va   tiklash.   Bu   nazoratlar   muammolardan   keyin
qayta tiklanishni qo'llab-quvvatlaydi.
Talabga   javob   beradigan   xavfsizliksiz,   biz   tizimning   tayyorligi,
mustahkamligi hamda himoyalanganligiga ishonolmaymiz.
Tizimni   ishlab   chiqarishdagi   xatoliklar   keyinchalik   xavfsizlikni   aylanib
o'tilishiga   olib   kelishi   mumkin.   Agar   tizim   ko'zda   tutilmagan   kiruvchi
parametrlarga   javob   bermasa   yoki   kiritilayotgan   massiv   ko'riniishidagi
ma'lumotlarning   chegarasi   aniqlanmasa,   hujumchilar   bu   zaifliklardan   tizimga
ruxsatsiz   kirish   uchun   foydalanishlari   mumkin.   Asosiy   xavfsizlik   buzilish
hodisalari ushbu zaifliklar orqali kelib chiqadi. C# tilida tuzilgan dasturlar massiv
chegarasini   tekshirishni   o'z   ichiga   olmaydi,   bu   esa   tizimga   ruxsatsiz   kirish   orqali
xotiraning biror qismini qayta yozishga imkon yaratadi. 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.
Foydalanilgan saytlar:
1. http://www.SoftwareEngineering-9.com
2. http://www.pearsonhighered.com/sommerville

“TARQATILGAN DASTURIY TA'MINOT TIZIMLARIGA KIRISH” Reja: 1. Dasturiy ta’minot jarayonlari 2. Tizim uchun talablarni shakllantirish 3. Dasturiy ta’minotni modellashtirish 4. Dasturiy ta’minotning arxitekturaviy dizayni 5. Dasturiy ta’minotni testlash. Dasturiy ta’minot evolutsiyasi 6. Dasturiy ta’minot ishonchliligi. Dasturiy ta’minot xavfsizligi

1. Dasturiy ta’minot jarayonlari Biz zamonaviy dunyoni dasturiy ta’minotsiz tasavvur qila olmaymiz. Milliy infrastrukturalar va utilitalar kompyuterga asoslangan tizimlar tomonidan nazorat qilinadi va ko’pgina elektrli mahsulotlar o’z ichiga kompyuter va nazorat dasturlarni oladi. Sanoatda ishlab chiqarish va tarqatish to’liq kompyuterlashtirilgan. Musiqa sanoati, kompyuter o’yinlari, film va televizorlarda dasturiy ta’minotdan foydalanishadi. Shu sababli dasturiy injiniring milliy va xalqaro jamiyatlar funksionalligi uchun muhimdir. Dasturiy ta’minot tizimlari mavhum va nomoddiy bo’lib ular materiallarning xususiyatlari yoki fizik qonunlar bilan chegaralanmagan. Dasturiy ta’minotning potensialiga hech qanday tabiiy cheklanuvlar yo’q. Professional dasturiy ta’minotni ishlab chiqish Ko’p odamlar dasturlar yozishadi. Odamlar ishda o’z ishlarini osonlashtirish uchun elektron jadval ko’rinishli dasturlar tuzushadi, tadqiqotchilar va injinerlar ilmiy tajribaga oid ma’lumotlarga ishlov berish uchun dasturlar tuzishadi, yoki qiziqish sabab dasturlar tuzishadi. Professional dasturiy ta’minot bu dasturchidan tashqari boshqa insonlar ham foydalanishi maqsadida ishlab chiqiladi va odatda individual bo’lib emas guruh bo’lib ishlanadi. Dasturiy injiniring professional dasturiy ta’minotni qo’llab quyyatlashga yo’naltirilgan bo’lib u dasturning o’ziga xos xususiyatlari, dizayni va evolutsiyasini ta’minlovchi usullarni o’z ichiga oladi. Ikki xil turdagi dasturiy mahsulotlar mavjud: 1. Umumiy mahsulotlar Bular autonom tizimlardir ya’ni ishlab chiqarish tashkiloti tomonidan ishlab chiqiladi va ochiq bozorda sotib ola biladigan

mijozlarga sotiladi. Bu turdagi dasturiy mahsulotlarga shaxsiy kompyuterlar uchun dasturiy ta’minotlar masalan ma’lumot bazalari, matn tahrirlovchi, rasmlar chizish, loyihalarni boshqarish uskunalari kabi dasturlarni misol qilib olishimiz mumkin. 2. Buyurtma mahsulotlar Bular alohida mijozlar tomonidan buyurtma qilingan tizimlardir. Bu turdagi dasturiy mahsulotlarga elektronik qurilmalar uchun nazorat tizimlari, maxsus ish jarayonlariga yordam berish uchun yozilgan tizimlarni misol qilib olishimiz mumkin. Bu ikki turdagi mahsulotlarning asosiy farqi shundaki, umumiy mahsulotlarda dasturiy ta’minot xususiyatlarini dasturiy ta’minotni ishlab chiqaruvchi tashkilot nazorat qiladi. Buyurtma mahsulotlarda mahsulotni sotib oluvchi tashkilot dasturiy ta’minot xususiyatlarini ishlab chiqadi va nazorat qiladi. Biroq hozirgi kunga kelib bu ikki turdagi mahsulotlar orasidagi farq tobora kamayib boryapti, chunki ko’pgina tizimlar umumiy mahsulot sifatida qurilyapti va mijozlar qaladiga qarab moslashtirilyapti. Enterprise Resource Planning (ERP) tizimlar, masalan SAP tizimi bunga yaqqol misol bo’lishi mumkin. Dasturiy injiniring ba’zida dasturiy ta’minot jarayoni ham deyiladi. Dasturiy ta’minot jarayoni dasturiy mahsulotni ishlab chiqish faoliyatlari ketma-ketligidir. Barcha dasturiy ta’minotlar uchun umumiy bo’lgan to’rtta asosiy faoliyat bor. Bular: 1. Dasturiy ta’minot xususiyati 2. Dasturiy ta’minotni ishlab chiqish 3. Dasturiy ta’minotni tekshirish 4. Dasturiy ta’minot evolutsiyasi Dasturiy ta’minot jarayoni Dasturiy ta’minot bu dasturiy mahsulotni tayyor holatga olib kelish faoliyatilari to’plamidir. Bu faoliyatlar Java yoki C kabi standart dasturlash tillarida dasturlarni ishlab chiqishni o’z ichiga olishi mumkin.

Dasturiy ta’minot jarayoni modeli bu dasturiy ta’minot jarayonining soddalashtirilgan ko’rinishidir. Jarayon modellari: 1. Sharshara modeli 2. Ortib borish modeli 3. Qaytib foydalanishga mo’ljallangan dasturiy injiniringi Sharshara modeli Sharshara modeli birinchi bo’lib e’lon qilingan dasturiy ta’minotni ishlab chiqish jarayoni modelidir (Royce, 1970). Sharshara modeli asosiy bosqichlari bevosita dasturiy ta’minotni rivojlantirish bosqichini aks ettiradi: Requirements analysis and definition Tizim foydalanuvchilari bilan maslahatlashib tizimning servislari, chegaraklari va maqsadlari belgilab olinadi System and software design Tizim dizayni jarayonida tizim arxitekturasini tashkil qilish orqali apparat yoki dasturiy tizimlarga talablar belgilanadi. Dasturiy ta’minot dizayni fundamental dasturiy ta’minot tizimlari mavhumliklari va ularning munosabatlarini identifikatsiyalash va tasvirlashni o’z ichiga oladi.

Implementation and unit testing Bu bosqichda dasturiy ta’minot dizayni dasturlar to’plami yoki dastur bo’limlar ko’rinishda amalga oshiriladi. Bo’lim testlash jarayonida har bir bo’lim alohida testlanadi. Integration and system testing Individual dastur bo’limlari yoki dasturlar birlashtiriladi va to’liq tizim ko’rinishida testlanadi. Testlashdan keyin dasturiy ta’minot tizimi foydalanuvchiga yetkaziladi. Operation and maintenance Bu eng uzun hayot sikli fazasi hisoblanadi. Tizim o’rnatiladi va amaliy foydalanishga qo’yiladi. Maintance o’z ichiga hayot siklining oldingi bosqichlarida tuzaqtilmagan xatoliklarni tuzatish, tizim bo’limlarining amaliy ko’rinishlarini yaxshilash va tizim servislarini yangi talablarga mos ravishda yaxshilashni o’z ichiga oladi. Ortib borish modeli Incremental (ortib borish) ishlab chiqish dastlabki amaliy ko’rinishni ishlab chiqish g’oyasiga asoslangan. Foydalanuvchi izohlariga qarab tizimning keyingi versiyalari ishlab chiqiladi. Qayta foydalanishga mo’ljallangan dasturiy injiniring Ko’pgina dasturiy ta’minot loyihalarida bir nechta qayta foydalaniladigan dasturiy ta’minotlar mavjuv. Qayta foydalanishga mo’ljallangan jarayonlarda foydalanish mumkin bo’lgan uch xil turdagi dasturiy ta’minot komponentalari bor: 1. Veb servislar servis standartlariga ko’ra ishlab chiqilgan 2. .NET yoki J2EE kabi componenta freymvorklarga integratsiya qilinadigan paketlangan obyektlar kolleksiyasi 3. Maxsus muhitlarda foydalanish uchun sozlangan autonom dasturiy ta’minot tizimlari. Sifatli va tezkor dasturiy ta’minot ishlab chiqish