Murakkab programma tizimlarini ishlab chiqish muammolari. programma ta’minotining hayotiy sikli. programma ta’minotining arxitekturasi

MURAKKAB PROGRAMMA TIZIMLARINI ISHLAB CHIQISH
MUAMMOLARI. PROGRAMMA TA’MINOTINING HAYOTIY SIKLI.
PROGRAMM A  TA’MINOTINING ARXITEKTURASI .
Reja:
1.1. Kirish. Dasturiy ta'minot jarayonlari
1.2. Sifatli va tezkor dasturiy ta'minot ishlab chiqish
1.3. Tizim uchun talablarni shakllantirish
1.4. Dasturiy ta'minotni modellashtirish Ushbu   ma'ruzaning   maqsadi   dasturiy   injiniringa   kirish,   dasturiy   ta'minot
jarayonlari   va   agile   metodlar   kabi   muhim   tushunchalar   va   dasturiy   ta'minotni
ishlab chiqish jarayoni ahamiyatini tushuntirishdan iborat.
1.1. Kirish. Dasturiy ta'minot jarayonlari
1
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.
Dasturiy injiniring tarixi
“Dasturiy injiniring” atamasi 1968 - yil konfrensiyada taklif qilingan. 1970 -
1980 - yillarda strukturali dasturlash va obyektga yo'naltirilgan ishlab chiqish kabi
dasturiy   injiniring   usullari   va   metodlari   ishlab   chiqildi.   Standard   atamalar   ishlab
chiqildi va hozirgi kunda keng qo'llanilmoqda.
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.   Dasturiy   injiniring   nimaligi   haqida   sizga
kengroq   tushuntirish   maqsadida   quyida   ko'p   so'ralgan   savollarga   qisqacha
javoblarni havola etamiz (Jadval 1.1)
Savol Javob
Dasturiy ta'minot nima? Kompyuter   dasturlari   va   unga   bog'liq
hujjatlar.   Dasturiy   mahsulotlar   olohida
mijozlar   uchun   yoki   umumiy   bozor
uchun ishlab chiqarilishi mumkin. Yaxshi dasturiy ta'minotning
attributlari nima? Yaxshi   dasturiy   ta'minot   talab   qilingan
funksionallikka   ega,   foydalanuvchiga
qulay,   ishonchli   va   davomiy   bo'lishi
lozim.
Dasturiy injiniring nima? Dasturiy   injiniring   bu   dasturiy
mahsulotni   ishlab   chiqishning   barcha
qirralari bilan bog'liq muhandislik.
Dasturiy   injiniringni   asosiy   faoliyatlari
nima? Dastur   xususiyatlari,   dasturiy   ta'minot
ishlab   chiqish,   dasturiy   ta'minotni
tekshirish,   va   dasturiy   ta'minot
evolyutsiyasi.
Dasturiy   injiniring   va   kompyuter   ilmi
o'rtasida qanday farq bor? Kompyuter ilmi nazariya va
tushunchalarga   e'tiborni   qaratadi;
dasturiy   injiniring   amaliy   ishlab   chiqish
va   foydali   dasturiy   ta'minotni   yetkazib
berishga e'tibor qaratadi.
Dasturiy   injiniring   va   tizim   injiniring
o'rtasida qanday farq bor? Tizim   injiniring   bu   apparat   ta'minot,
dasturiy   ta'minot   va   jarayon   injiniringni
o'z ichiga oluvchi kompyuter asosli
tizimlarni   ishlab   chiqish.   Dasturiy
injiniring ushbu umumiy jarayonning bir
qismidir.
Dasturiy injiniringni narxi qancha? Taxminan   60%   xarajatlar   ishlab
chiqarish uchun va 40% xarajatlar
testlash uchun sarf bo'ladi.
Eng   yaxshi   dasturiy   injiniring   usuli   va
metodi qaysi? Barcha   dasturiy   ta'minot   loyihalari
professional   tarzda   boshqarilishi   va
ishlab chiqilishi kerak, turli xil tizimlar
uchun mos bo'lgan turli xil usulllar
qo'llaniladi. Dasturiy   injiniringa   veb   qanday   xilma-
xillik olib keldi? Veb   dasturiy   servislarni   va   yuqori
taqsimlangan   servisga   asoslangan
tizimlarni ishlab chiqishni olib kirdi.
Jadval 1.1.
Dasturiy injinerlar dasturiy mahsulotni ishlab chiqish bilan shug'ullanadilar.
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:
1.   Requirements   analysis   and   definition   Tizim   foydalanuvchilari   bilan
maslahatlashib tizimning servislari, chegaraklari va maqsadlari belgilab olinadi
2.   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.
3.   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.
4.   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. 5.   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.
1.2. Sifatli va tezkor dasturiy ta'minot ishlab chiqish
2
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)
1.3. Tizim uchun talablarni shakllantirish
3
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
Dasturiy ta'minotni modellashtirish
4
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.
Strukturaviy   ko'rinish,   tizim   tomonidan   ishlov   berilayotgan   ma'lumotlar
strukturasi yoki tizim tashkilotini modellashtirish.
3. 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. 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.SoftwareEngmeering-9 .com
5. http://www.pearsonhighered.com/sommerville