logo

Dasturiy ta’minot haqida

Загружено в:

12.08.2023

Скачано:

0

Размер:

236.943359375 KB
Mundarija
1. Umumiy ma’lumotlar
1.1. Dasturiy ta'minotning muhim ta'riflari quyidagilarni
 o'z ichiga oladi………………………………………………………..2
1.2. Dasturiy ta’minotni ishlab chiqish………………………………7
1.3. IEEE standarti………………………………………………..…..15
2. Loyihalash jarayoni
2.1. Munosabatlar jadvalini hosil qilish jarayoni …………….....….16
3. Ilovalar……………………………………………………………18
 
4. Xulosa……………………………………………………………..22
1 I. Umumiy ma’lumotlar
Dasturiy ta'minotning muhim ta'riflari quyidagilarni o'z ichiga oladi:
 "dasturiy ta'minotni loyihalash, tatbiq etish, sinovdan o'tkazish va hujjatlarni 
rasmiylashtirishda ilmiy va texnologik bilimlarni, usullarni va tajribani muntazam ravishda 
qo'llash" - Mehnat statistikasi byurosi -   IEEE   tizimlari va dasturiy ta'minot muhandisligi - 
Lug'at   [18]
 "   Dasturiy ta'minotni   ishlab chiqish, ishlatish va unga xizmat ko'rsatishda tizimli, intizomli, 
miqdoriy yondashuvni qo'llash   " -   IEEE   dasturiy ta'minot muhandisligi terminologiyasining 
standart lug'ati   [19]
 "dasturiy ta'minot ishlab chiqarishning barcha jihatlari bilan bog'liq bo'lgan muhandislik 
intizomi" -   Yan Sommervil   [20]
 "ishonchli va haqiqiy mashinalarda samarali ishlaydigan dasturiy ta'minotni iqtisodiy 
jihatdan olish uchun ovozli muhandislik tamoyillarini o'rnatish va ulardan foydalanish" 
-   Fritz Bauer   [21]
 "murakkab   kompyuter dasturlarini   loyihalash, amalga oshirish va ularga xizmat ko'rsatish 
bilan shug'ullanadigan informatika bo'limi   " -   Merriam-Vebster   [22]
 "" dasturiy ta'minot muhandisligi "nafaqat kod yozish aktini, balki tashkilot ushbu kodni 
yaratish va saqlash uchun vaqt davomida ishlatadigan barcha vositalar va jarayonlarni o'z 
ichiga oladi. [...] Dasturiy ta'minotni" vaqt o'tishi bilan birlashtirilgan dasturlash "deb 
hisoblash mumkin. .  '"-   Google'da dasturiy ta'minot muhandisligi   [23]
Ushbu atama rasmiy ravishda kamroq ishlatilgan:
 ilgari   kompyuter dasturlash   va   tizimlarni tahlil qilish   deb nomlangan keng ko'lamli faoliyat 
uchun norasmiy zamonaviy atama sifatida   ;   [24]
 rasmiy ravishda   informatika fanining   sub-intizomi sifatida o'rganilayotgan kompyuter 
dasturlash   nazariyasidan   farqli o'laroq, kompyuter dasturlash   amaliyotining   barcha jihatlari 
uchun keng atama   sifatida   ;   [25]
 kompyuter dasturlash uchun o'ziga xos yondashuvni   himoya   qilishni   o'z ichiga olgan atama 
sifatida,   unga san'at yoki hunarmandchilik emas, balki   muhandislik   intizomi   sifatida   qarashni
talab qiladi   va tavsiya etilgan amaliyotlarni   kodifikatsiyalashni yoqlaydi   .   [26]
Dastur talablari   [   tahrirlash   ]
Asosiy maqola:   Dasturiy ta'minotga talablar
Talablar muhandislik   bo'yicha yuzaga chiqarish, tahlil qilish, xususiyatlari, va tekshirish 
haqida   talablari   uchun   dasturiy ta'minot   .
Dasturiy ta'minot dizayni   [   tahrirlash   ]
Asosiy maqola:   Dasturiy ta'minot dizayni
Dasturiy ta'minot dizayni   - bu tizim yoki komponentning arxitekturasini, tarkibiy qismlarini, 
interfeyslarini va boshqa xususiyatlarini aniqlash jarayoni.   Bunga   dasturiy ta'minot 
arxitekturasi   ham deyiladi   .
Dasturiy ta'minotni ishlab chiqish   [   tahrirlash   ]
Asosiy maqola:   Dasturiy ta'minotni ishlab chiqish
Dasturiy ta'minot ishlanmasi   , asosiy faoliyat   dasturi qurish   ,   [1]   [27]
  uyg'unligi 
hisoblanadi   dasturlash   , tekshirish,   dastur sinov   va   nosozliklarni tuzatish   .   A   dasturiy ta'minot 
ishlab chiqish jarayoni   [1]   [27]
  dasturiy ta'minot hayot aylanishi jarayoni o'zi belgilash, amalga 
oshirish, baholash, o'lchash, boshqarish, o'zgarish va takomillashtirish hisoblanadi.   Bu   dasturiy 
2 ta'minotni konfiguratsiya boshqaruvidan   juda ko'p foydalanadi   [1]   [27]
bu konfiguratsiyadagi 
o'zgarishlarni muntazam ravishda nazorat qilish va tizimning butun tsikli davomida 
konfiguratsiya va kodning yaxlitligi va izlenebilirliğini saqlash haqida.   Zamonaviy 
jarayonlarda   dasturiy ta'minot versiyasi qo'llaniladi   .
Dasturiy ta'minotni sinash   [   tahrirlash   ]
Asosiy maqola:   Dasturiy ta'minotni sinovdan o'tkazish
Dasturiy ta'minotni sinovdan o'tkazish   [1]   [27]
  - bu manfaatdor tomonlarga sinovdan 
o'tkazilayotgan mahsulot yoki xizmat sifati to'g'risida ma'lumot berish uchun o'tkazilgan empirik,
texnik tekshiruv,   birlik sinovi   va   integratsiyalashgan test   kabi turli xil yondashuvlar   .   Bu   dasturiy
ta'minot sifatining   bir jihati   .
Dasturlarga xizmat ko'rsatish   [   tahrirlash   ]
Asosiy maqola:   Dasturlarga xizmat ko'rsatish
Dasturiy ta'minotga xizmat ko'rsatish   [1]   [27]
  dasturiy mahsulotni jo'natgandan keyin iqtisodiy 
jihatdan qo'llab-quvvatlashni ta'minlash uchun zarur bo'lgan faoliyatni anglatadi.
Dasturiy ta'minotni loyihalashtirish   - bu   vositachining   ibtidoiy komponentlar to'plamidan 
foydalangan holda va   cheklovlarga   bo'ysungan holda   maqsadlarni   bajarish uchun 
mo'ljallangan   dasturiy ta'minot artefaktining   spetsifikatsiyasini yaratish   jarayoni   .   [1]
  Dasturiy 
ta'minot dizayni "murakkab tizimlarni kontseptualizatsiya qilish, shakllantirish, amalga oshirish, 
ishga tushirish va oxir-oqibat o'zgartirish bilan bog'liq barcha faoliyatni" yoki 
"   talablarga   muvofiq va   dasturlashdan   oldingi   faoliyatni   , [...] uslubidagi dasturiy 
ta'minotni   nazarda tutishi mumkin.   muhandislik jarayoni. "   [2]
Dasturiy ta'minotni loyihalash odatda muammolarni hal qilishni 
va   dasturiy   echimni   rejalashtirishni o'z ichiga oladi   .   Bunga quyi darajadagi komponent 
va   algoritm dizayni   hamda yuqori darajadagi   arxitektura   dizayni kiradi.
Umumiy   holda
Dasturiy   ta ' minotni   loyihalashtirish  -  bu   bir   yoki   bir   nechta   muammolarning   dasturiy   echimlarini  
tasavvur   qilish   va   aniqlash   jarayoni .   Dasturiy ta'minotni loyihalashning asosiy tarkibiy 
qismlaridan biri bu   dasturiy ta'minotga talablarni tahlil qilish   (SRA).   KSA bir qismidir   dasturiy 
ta'minot ishlab chiqish jarayoni   ro'yxati bu   xususiyatlari   ishlatiladigan   dasturiy ta'minot 
muhandislik   .   Agar dasturiy ta'minot "yarim avtomatlashtirilgan" yoki   foydalanuvchi markazida 
bo'lsa   , dasturiy ta'minot dizayni   ushbu xususiyatlarni aniqlashga 
yordam   beradigan   stsenariyni   yaratadigan   foydalanuvchi tajribasini loyihalashni   o'z ichiga olishi 
mumkin   .   Agar dastur to'liq   avtomatlashtirilgan bo'lsa   (   foydalanuvchi   yoki   foydalanuvchi 
interfeysi   yo'qligini anglatadi)), dasturiy ta'minot dizayni   rejalashtirilgan voqealar ketma-
ketligini tavsiflovchi   oqim sxemasi   yoki matn   kabi oddiy bo'lishi mumkin   .   Unified Modeling 
Language   va   Fundamental modellashtirish tushunchalari   kabi yarim standart usullar 
mavjud   .   Ikkala holatda ham,   rejaning   ba'zi   hujjatlari   odatda dizayn mahsulotidir.   Bundan 
tashqari, dasturiy ta'minot dizayni dizayni   uchun ishlatiladigan texnologiyaning mavjudligiga 
qarab   platformadan   mustaqil   yoki   platformaga xos   bo'lishi mumkin   .
Dasturiy ta'minotni tahlil qilish va loyihalashtirishdan asosiy farqi shundaki, dasturiy ta'minot 
tahlilining natijasi echilishi kerak bo'lgan kichik muammolardan iborat.   Bundan tashqari, tahlil 
guruhning turli a'zolari yoki guruhlari bo'yicha juda boshqacha tarzda tuzilmasligi 
kerak.   Aksincha, dizayn qobiliyatlarga e'tiborni qaratadi va shu bilan bir xil muammo uchun bir 
nechta dizayn mavjud bo'lishi mumkin va mavjud bo'ladi.   Atrof-muhitga qarab, dizayn tez-tez 
o'zgarib turadi, u ishonchli   ramkalardan yaratilganmi   yoki mos   dizayn naqshlari   bilan amalga 
3 oshirilganmi   .   Dizayn misollari orasida operatsion tizimlar, veb-sahifalar, mobil qurilmalar yoki 
hatto yangi bulutli hisoblash paradigmasi mavjud.
Dasturiy ta'minot dizayni ham jarayon, ham modeldir.   Loyihalash jarayoni - bu dizaynerga 
qurilish uchun dasturiy ta'minotning barcha jihatlarini tavsiflashga imkon beradigan bosqichlar 
ketma-ketligi.   Ijodiy mahorat, o'tmishdagi tajriba, "yaxshi" dasturiy ta'minot nimani anglatishini 
anglash va sifatga bo'lgan umumiy sadoqat vakolatli dizayn uchun muvaffaqiyatning muhim 
omillariga misoldir.   Shuni ta'kidlash kerakki, dizayn jarayoni har doim ham oddiy protsedura 
emas;   dizayn modelini me'morning uy qurish rejalari bilan taqqoslash mumkin.   U qurilishi kerak
bo'lgan narsaning umumiyligini ifodalash bilan boshlanadi (masalan, uyning uch o'lchovli 
ko'rinishi);   asta-sekin, har bir detalni qurish uchun ko'rsatma berish uchun narsalar yaxshilanadi 
(masalan, sanitariya-tesisat yotqizilgan).   Xuddi shunday,   dasturiy ta'minot uchun yaratilgan 
dizayn modeli kompyuter dasturining har xil ko'rinishini ta'minlaydi.   Dizaynning asosiy 
printsiplari dasturiy ta'minot muhandisiga dizayn jarayonida harakat qilish imkoniyatini 
beradi.   Devis [3]
  quyidagi ro'yxatda moslashtirilgan va kengaytirilgan dasturiy ta'minotni 
loyihalashtirish uchun bir qator printsiplarni taklif qiladi:
 Loyihalash jarayoni "tunnel ko'rish" dan aziyat chekmasligi kerak.   Yaxshi dizayner 
muqobil yondashuvlarni ko'rib chiqishi kerak, ularning har biri muammoning talablariga, 
ishni bajarish uchun mavjud bo'lgan resurslarga qarab baholanadi.
 Dizayn tahlil modeliga qarab kuzatilishi kerak.   Dizayn modelining bitta elementi 
ko'pincha bir nechta talablardan kelib chiqishi mumkinligi sababli, dizayn modeli tomonidan
talablarning qanday qondirilganligini kuzatadigan vosita bo'lishi kerak.
 Dizayn g'ildirakni qayta kashf etmasligi kerak.   Tizimlar dizayni naqshlari to'plami 
yordamida quriladi, ularning aksariyati ilgari duch kelgan bo'lishi mumkin.   Ushbu naqshlar 
har doim ixtiroga alternativa sifatida tanlanishi kerak.   Vaqt qisqa va resurslar 
cheklangan;   dizayn vaqtini (mavjud bo'lganda) mavjud bo'lgan naqshlarni birlashtirish orqali
(haqiqatan ham yangi) g'oyalarni namoyish etishga sarflash kerak.
 Dizayn dasturiy ta'minot bilan muammo o'rtasidagi "intellektual masofani 
minimallashtirishi" kerak, chunki u haqiqiy dunyoda mavjud.   Ya'ni, dasturiy ta'minot 
dizayni tuzilishi, iloji boricha, muammo domeni tuzilishini taqlid qilishi kerak.
 Dizayn bir xillik va birlashishni namoyish etishi kerak.   Dizayn, agar u to'liq izchil bo'lsa, 
bir xil bo'ladi.   Ushbu natijaga erishish uchun dizayn ishlari boshlanishidan oldin dizaynerlar 
guruhi uchun uslub va format qoidalari aniqlanishi kerak.   Dizayn tarkibiy qismlari orasidagi 
interfeyslarni aniqlashga e'tibor berilsa, dizayn birlashtiriladi.
 Dizayn o'zgarishni hisobga olgan holda tuzilishi kerak.   Keyingi bobda muhokama 
qilingan dizayn tushunchalari dizaynga ushbu printsipga erishish imkonini beradi.
 Noto'g'ri ma'lumotlar, hodisalar yoki ish sharoitlariga duch kelganda ham dizayn 
yumshoq tarzda pasayishi uchun tuzilgan bo'lishi kerak.   Yaxshi ishlab chiqilgan dastur 
hech qachon "bomba" tashlamasligi kerak;   u g'ayrioddiy holatlarni qondirish uchun ishlab 
chiqilgan bo'lishi kerak va agar u ishlov berishni tugatishi kerak bo'lsa, uni oqlangan tarzda 
bajarishi kerak.
 Dizayn kodlash emas, kodlash dizayn emas.   Dastur tarkibiy qismlari uchun batafsil 
protsessual dizaynlar yaratilgan taqdirda ham, dizayn modelining abstraktsiya darajasi 
manba kodidan yuqori.   Kodlash darajasida qabul qilingan yagona dizayn qarorlari 
protsessual dizaynni kodlashni ta'minlaydigan kichik dastur tafsilotlarini hal qilishi kerak.
 Dizayn haqiqatan keyin emas, balki yaratilganligi sababli sifatiga qarab baholanishi 
kerak.   Dizaynerga rivojlanish jarayonida sifatni baholashda yordam beradigan turli xil 
dizayn tushunchalari va dizayn tadbirlari mavjud.
 Kontseptual (semantik) xatolarni minimallashtirish uchun dizayn qayta ko'rib 
chiqilishi kerak.   Ba'zan dizayni ko'rib chiqilganda, daraxtlar uchun o'rmonni sog'inib, 
minutiyalarga e'tibor qaratish istagi paydo bo'ladi.   Loyihalash jamoasi dizayn modelining 
4 sintaksisidan xavotirga tushishdan oldin dizaynning asosiy kontseptual elementlarini 
(kamchiliklar, noaniqlik, nomuvofiqlik) ko'rib chiqilishini ta'minlashi kerak.
Dizayn   tushunchalari
Dizayn   tushunchalari   dasturiy   ta ' minot   dizayneriga   yanada   murakkab   usullarni   qo ' llash   mumkin  
bo ' lgan   asos   yaratadi .   Asosiy dizayn tushunchalari to'plami rivojlandi.   Ular quyidagichadir:
1. Abstraktsiya   - mavhumlik - bu faqat ma'lum bir maqsad uchun tegishli bo'lgan 
ma'lumotlarni saqlab qolish uchun kontseptsiyaning yoki kuzatiladigan hodisaning 
axborot tarkibini qisqartirish orqali umumlashtirish jarayoni yoki natijasidir.   Bu asosiy 
tafsilotlarni yoki tushuntirishlarni o'z ichiga olmagan holda muhim xususiyatlarni 
namoyish etish harakati.
2. Noziklash   - bu ishlab chiqish jarayoni.   Ierarxiya funktsiyalarning makroskopik 
bayonotini dasturlash tili bayonotlariga erishilmaguncha bosqichma-bosqich parchalash 
orqali ishlab chiqiladi.   Har bir qadamda berilgan dasturning bir yoki bir nechta 
ko'rsatmalari batafsil ko'rsatmalarga ajraladi.   Abstraktlik va aniqlik bir-birini to'ldiruvchi
tushunchalardir.
3. Modullik   - dasturiy ta'minot arxitekturasi modul deb nomlangan tarkibiy qismlarga 
bo'linadi.
4. Dastur arxitekturasi   - bu dasturiy ta'minotning umumiy tuzilishini va ushbu tizim tizim 
uchun kontseptual yaxlitlikni ta'minlash usullarini anglatadi.   Yaxshi dasturiy ta'minot 
arxitekturasi loyihaning kerakli natijalariga, masalan, ishlash, sifat, jadval va narx 
bo'yicha investitsiyalar uchun yaxshi daromad keltiradi.
5. Boshqarish   iyerarxiyasi - dastur tarkibiy qismini tashkil qilishni ifodalovchi va boshqaruv
iyerarxiyasini nazarda tutadigan dastur tuzilishi.
6. Strukturaviy   qismlarga   ajratish   - dastur tuzilishini gorizontal va vertikalga bo'lish 
mumkin.   Gorizontal bo'limlar dasturning har bir asosiy vazifasi uchun modulli 
ierarxiyaning alohida tarmoqlarini belgilaydi.   Vertikal qismlarga bo'linish shuni 
ko'rsatadiki, boshqaruv va ish dastur tuzilmasida yuqoridan pastga taqsimlanishi kerak.
7. Ma'lumotlar tarkibi   - bu ma'lumotlarning alohida elementlari orasidagi mantiqiy 
munosabatlarni aks ettirishdir.
8. Dasturiy ta'minot protsedurasi   - bu har bir modulni alohida ishlashga qaratilgan.
9. Axborotni yashirish   - modullar modul tarkibidagi ma'lumotlar bunday ma'lumotlarga 
ehtiyoj sezmaydigan boshqa modullar uchun kirish imkoni bo'lmasligi uchun aniqlanishi 
va tuzilishi kerak.
Ob'ekt modelida   Grady Booch   dasturiy ta'minotni loyihalashtirishning asosiy printsiplari sifatida 
Abstraktsiya, Enkapsulatsiya, Modularizatsiya va Ierarxiyani eslatib o'tadi.   [4]
  PHAME 
qisqartmasi (Ierarxiya, mavhumlashtirish, modullashtirish va inkapsulatsiya tamoyillari) ba'zida 
ushbu to'rt asosiy printsipga murojaat qilish uchun ishlatiladi.   [5]
Dizayn   masalalari
Dasturiy   ta ' minotni   loyihalashda   ko ' p   jihatlarni   hisobga   olish   kerak .   Har bir ko'rib chiqishning 
ahamiyati dasturiy ta'minotni yaratish uchun yaratilgan maqsadlar va kutishlarni aks ettirishi 
kerak.   Ushbu jihatlarning ba'zilari:
 Muvofiqlik   - dasturiy ta'minot boshqa mahsulot bilan o'zaro ishlashga mo'ljallangan boshqa 
mahsulotlar bilan ishlashga qodir.   Masalan, dasturiy ta'minotning o'zi eski versiyasi bilan 
orqaga qarab mos kelishi mumkin.
5  Kengayish   -   Dasturga   yangi imkoniyatlar asosiy arxitekturada katta o'zgarishlarsiz 
qo'shilishi mumkin.
 Modullik   - natijada yaratilgan dasturiy ta'minot yaxshi aniqlangan, mustaqil tarkibiy 
qismlardan iborat bo'lib, ular yanada yaxshi ishlashga olib keladi.   Keyinchalik kerakli 
dasturiy ta'minot tizimini yaratish uchun tarkibiy qismlar birlashtirilgunga qadar amalga 
oshirilishi va alohida sinovdan o'tkazilishi mumkin edi.   Bu dasturiy ta'minotni ishlab chiqish 
loyihasida ishni taqsimlashga imkon beradi.
 Xatolarga bardoshlik   - dasturiy ta'minot komponentlarning ishdan chiqishiga chidamli va 
ularni tiklashga qodir.
 Ta'minlash qobiliyati   - xatolarni tuzatish yoki funktsional o'zgartirishlarni qanchalik 
osonlik bilan amalga oshirish mumkinligi o'lchovi.   Yuqori parvarishlash modullik va 
kengayishning mahsuli bo'lishi mumkin.
 Ishonchlilik   (   dasturiy ta'minotning chidamliligi   ) - dasturiy ta'minot belgilangan muddat 
davomida belgilangan shartlarda kerakli funktsiyani bajarishi mumkin.
 Qayta foydalanish   qobiliyati - Dastlabki dasturiy ta'minotning ba'zi jihatlaridan yoki 
barchasini boshqa loyihalarda ozgina o'zgarishsiz foydalanish qobiliyati.
 Sog'lomlik   - dasturiy ta'minot stress ostida ishlashga yoki oldindan aytib bo'lmaydigan yoki 
yaroqsiz kirishga toqat qila oladi.   Masalan, u past xotira sharoitlariga chidamlilik bilan ishlab
chiqilishi mumkin.
 Xavfsizlik   - dasturiy ta'minot dushmanlik harakatlariga va ta'siriga qarshi tura oladi va 
ularga qarshi tura oladi.
 Foydalanish imkoniyati   - dasturiy ta'minot   foydalanuvchi interfeysi   maqsadli 
foydalanuvchi / auditoriya uchun foydalanishi kerak.   Parametrlar uchun standart qiymatlarni 
tanlash kerak, shunda ular ko'pchilik foydalanuvchilar uchun yaxshi tanlov bo'ladi.   [6]
 Ishlash   - dasturiy ta'minot o'z vazifalarini foydalanuvchi uchun maqbul bo'lgan vaqt 
oralig'ida bajaradi va ortiqcha xotirani talab qilmaydi.
 Portativlik   - Dasturiy ta'minot turli xil sharoit va muhitlarda ishlatilishi kerak.
 Miqyosliligi   - dasturiy ta'minot ma'lumotlarning ko'payishi yoki qo'shilgan xususiyatlar yoki
foydalanuvchilar soniga yaxshi mos keladi.
Modellashtirish   tili
A   modellashtirish   tili   qoidalarini   izchil   majmui   tomonidan   belgilab   bir   tarkibida   axborot ,  bilim  
va   tizimlarini   ifoda   qilish   uchun   foydalanish   mumkin   bo ' lgan   har   qanday   sun ' iy   tildir .   Ushbu 
qoidalar strukturadagi tarkibiy qismlarni izohlash uchun ishlatiladi.   Modellashtirish tili grafik 
yoki matnli bo'lishi mumkin.   Dasturiy ta'minotni loyihalash uchun grafik modellashtirish 
tillariga misollar:
 Arxitektura ta'rifi tili   (ADL) -   bu   dasturiy ta'minot tizimining   dasturiy ta'minot 
arxitekturasini   tavsiflash va ifodalash uchun ishlatiladigan til   .
 Biznes jarayonlarini modellashtirish yozuvlari   (BPMN) - bu   jarayonni 
modellashtirish   tilining   namunasi   .
 EXPRESS   va EXPRESS-G (ISO 10303-11) - bu xalqaro standart umumiy   ma'lumotni 
modellashtirish   tili.
 Kengaytirilgan korxonalarni modellashtirish tili   (EEML) odatda bir qator qatlamlarda biznes 
jarayonlarini modellashtirish uchun ishlatiladi.
 Oqim   diagrammasi - bu algoritmlarni yoki boshqa bosqichma-bosqich jarayonlarning 
sxematik ko'rinishlari.
 Fundamental Modeling Concepts   (FMC) - bu dasturiy ta'minotni talab qiladigan tizimlar 
uchun modellashtirish tilidir.
6  IDEF   - bu modellashtirish tillari oilasi bo'lib, ularning eng 
e'tiborga   loyiqlari   orasida   funktsional modellashtirish uchun   IDEF0   ,   axborotni 
modellashtirish uchun   IDEF1X   va   modellashtirish uchun   IDEF5   ontologiyalar mavjud   .
 Jekson Strukturali Dasturlash   (JSP) - bu ma'lumotlar oqimi tuzilishi va dastur tuzilishi 
o'rtasidagi yozishmalar asosida tuzilgan dasturlash usuli.
 LePUS3   - bu   ob'ektga yo'naltirilgan   vizual dizayn ta'rifi tili va   asosan   spetsifikatsiya   tili 
bo'lib, u asosan ob'ektlarga yo'naltirilgan (   Java   ,   C ++   ,   C #   ) dasturlari va   dizayn 
naqshlarini   modellashtirishga mos keladi   .
 Birlashtirilgan modellashtirish tili   (UML) - bu dasturiy ta'minotni tarkibiy va xulq-atvor 
jihatidan tavsiflash uchun umumiy modellashtirish tili.   U grafik yozuvga ega va   profil 
(UML)   bilan kengaytirilishiga imkon beradi   .
 Qotishma (spetsifikatsiya tili)   - bu dasturiy ta'minot tizimidagi murakkab tarkibiy cheklovlar 
va xatti-harakatlarni ifodalash uchun umumiy maqsadli spetsifikatsiya tili.   Bu birinchi 
darajali munosabat mantig'iga qisqacha til bazasini beradi.
 Tizimlarni modellashtirish tili   (SysML) - bu   tizim muhandisligi uchun   yangi   umumiy 
maqsadli modellashtirish   tili.
 Xizmatga yo'naltirilgan modellashtirish doirasi (SOMF)   [7]
Dasturiy ta’minotni ishlab chiqish
Dasturiy ta'minotni ishlab chiqish   - bu   dasturlar   ,   ramkalar   yoki boshqa dasturiy ta'minot 
tarkibiy qismlarini   yaratish va ularga xizmat ko'rsatishda ishtirok etish   , tasavvur qilish, 
aniqlashtirish, loyihalash,   dasturlash   ,   hujjatlashtirish   ,   sinovdan o'tkazish   va   xatolarni 
tuzatish   jarayoni   .   Dasturiy ta'minotni ishlab chiqish -   bu   manba kodini   yozish 
va   saqlash   jarayoni   , ammo keng ma'noda, kerakli dasturiy ta'minot kontseptsiyasi bilan dasturiy 
ta'minotning yakuniy namoyon bo'lishigacha, ba'zida rejalashtirilgan va   tuzilgan   jarayon   bilan 
bog'liq bo'lgan barcha narsalarni o'z ichiga oladi   .   [1]
Shu sababli, dasturiy ta'minotni ishlab 
chiqish tadqiqot, yangi ishlab chiqish, prototip yaratish, o'zgartirish, qayta ishlatish, qayta qurish,
texnik xizmat ko'rsatish yoki dasturiy mahsulotlarni keltirib chiqaradigan boshqa har qanday 
faoliyatni o'z ichiga olishi mumkin.   [2]
Dastur turli maqsadlar uchun ishlab chiqilishi mumkin, eng keng tarqalgan uchta narsa - bu 
ma'lum bir mijoz / biznesning ehtiyojlarini qondirish (   odatiy dasturiy ta'minot   bilan bog'liq 
holda   ), ba'zi potentsial   foydalanuvchilar   to'plamining ehtiyojlarini qondirish uchun   (   tijorat   bilan
bog'liq holda)   yoki   ochiq manbali dasturiy ta'minot   ) yoki shaxsiy foydalanish uchun (masalan, 
olim oddiy vazifani avtomatlashtirish uchun dastur yozishi mumkin).   O'rnatilgan dasturiy 
ta'minotni ishlab chiqish   , ya'ni   iste'mol dasturini boshqarish uchun ishlatiladigan   dasturiy 
ta'minotni   ishlab chiqish, ishlab chiqilayotgan jarayonni   boshqariladigan jismoniy mahsulotni 
ishlab chiqish bilan   birlashtirishni   talab qiladi   .   Tizim dasturi   dasturlar va dasturlash jarayonining
asosida yotadi va ko'pincha alohida ishlab chiqiladi.
Dasturiy ta'minotni ishlab chiqish jarayonini   sifat jihatidan   yaxshiroq   nazorat 
qilish   zarurati   dasturiy ta'minot muhandisligi   intizomini vujudga   keltirdi, bu   esa dasturiy 
ta'minotni ishlab chiqish jarayonida   muhandislik   paradigmasida   keltirilgan sistematik 
yondashuvni qo'llashga   qaratilgan.
Dasturiy ta'minotni ishlab chiqish hayot tsikli modellari, metodologiyalari, jarayonlari yoki 
modellari deb nomlanadigan dasturiy   ta'minot loyihalarini boshqarish bo'yicha   ko'plab 
yondashuvlar mavjud   .   Sharshara model   yanada so'nggi yangilik bilan qarama-qarshi bo'lgan 
an'anaviy versiya, deb   chaqqon dasturiy ta'minot ishlab chiqish   .
7 A   dasturiy ta'minot ishlab chiqish jarayoni   (shuningdek, bir dasturiy ta'minot ishlab chiqish 
metodologiyasi, modeli, yoki hayot tsikli deb nomlanuvchi) uchun foydalaniladigan 
ramkaga   tuzilishi   ,   rejasi   va rivojlantirish jarayonini nazorat   axborot tizimlari .   Bunday 
tuzilmalarning xilma-xilligi yillar davomida rivojlanib bordi, ularning har biri o'ziga xos kuchli 
va zaif tomonlariga ega edi.   Dasturiy ta'minotni ishlab chiqishda bir nechta turli xil yondashuvlar
mavjud: ba'zilari dasturiy ta'minotni ishlab chiqishga nisbatan ko'proq tuzilgan, muhandislik 
asosidagi yondashuvni, boshqalari esa dasturiy ta'minot parcha-parcha bo'lib rivojlanib 
boradigan bosqichma-bosqich yondashishi mumkin.   Bitta tizimni ishlab chiqish metodologiyasi 
barcha loyihalar uchun mos bo'lishi shart emas.   Mavjud metodologiyalarning har biri turli xil 
texnik, tashkiliy, loyihaviy va jamoaviy mulohazalarga asoslangan muayyan turdagi loyihalarga 
mos keladi.   [3]
Ko'pgina metodologiyalar dasturiy ta'minotni ishlab chiqishning quyidagi bosqichlarini 
birlashtirgan:
 Muammoni tahlil qilish
 Bozor tadqiqotlari
 Tavsiya etilgan dasturiy ta'minotga talablarni yig'ish
 Dasturiy ta'minot uchun reja yoki dizayn ishlab chiqish
 Dasturiy ta'minotni amalga oshirish (kodlash)
 Dasturiy ta'minotni sinovdan o'tkazish
 Joylashtirish
 Xizmat   va   xatolarni tuzatish
Ushbu bosqichlar ko'pincha birgalikda dasturiy ta'minotni ishlab chiqish hayot davri yoki SDLC 
deb nomlanadi.   Dasturiy ta'minotni ishlab chiqishda turli xil yondashuvlar ushbu bosqichlarni 
turli tartibda amalga oshirishi yoki ko'p yoki ozroq vaqtni turli bosqichlarga ajratishi 
mumkin.   Dasturiy ta'minotni ishlab chiqishning har bir bosqichida ishlab chiqarilgan 
hujjatlarning tafsilotlari darajasi ham har xil bo'lishi mumkin.   Ushbu bosqichlar o'z navbatida 
ham amalga oshirilishi mumkin ("palapartishlik" ga asoslangan yondashuv) yoki ular turli 
tsikllar yoki takrorlanishlar (ko'proq "o'ta" yondashuv) bo'yicha takrorlanishi 
mumkin.   Keyinchalik ekstremal yondashuv odatda rejalashtirish va hujjatlashtirishga kam 
vaqtni, kodlash va   avtomatlashtirilgan testlarni   ishlab chiqishga ko'proq vaqt sarflashni o'z ichiga
oladi.   Ko'proq "ekstremal" yondashuvlar rivojlanishning butun tsikli davomida uzluksiz 
sinovlarni o'tkazishga, shuningdek har doim ishlaydigan (yoki xatosiz) mahsulotga ega bo'lishga 
yordam beradi.   Ko'proq tuzilgan yoki "   palapartishlik   " ga asoslangan yondashuvlar aksariyat 
xatarlarni baholashga va dasturiy ta'minotni   amalga oshirish   (kodlash) boshlanishidan   oldin 
batafsil rejasini ishlab chiqishga harakat qiladi   va dasturiy ta'minotni ishlab chiqarishning hayot 
tsiklini rejalashtirishning keyingi bosqichlarida dizayndagi jiddiy o'zgarishlardan va qayta 
kodlashdan qochadi. .
Turli metodologiyalarda sezilarli afzalliklar va kamchiliklar mavjud va dasturiy ta'minot 
yordamida muammoni hal qilishning eng yaxshi yondashuvi ko'pincha muammo turiga bog'liq 
bo'ladi.   Agar muammo yaxshi tushunilgan bo'lsa va ishni muddatidan oldin samarali 
rejalashtirish mumkin bo'lsa, "sharshara" ga asoslangan yondashuv eng yaxshi natijani berishi 
mumkin.   Agar boshqa tomondan, muammo o'ziga xos bo'lsa (hech bo'lmaganda ishlab 
chiquvchilar guruhi uchun) va dasturiy ta'minotning tuzilishini osongina tasavvur qilish mumkin 
bo'lmasa, unda ko'proq "o'ta" bosqichma-bosqich yondashish yaxshi samara berishi mumkin.
Dasturiy ta'minotni ishlab chiqish faoliyati   [   tahrirlash   ]
Ehtiyojni aniqlash   [   tahrirlash   ]
8 Dasturiy mahsulotlar uchun g'oyalar manbalari juda ko'p.   Ushbu g'oyalar   bozor tadqiqotlari,   shu 
jumladan   potentsial yangi mijozlar   demografikasi   , mavjud mijozlar, mahsulotni rad etgan savdo 
istiqbollari, boshqa ichki dasturiy ta'minot ishlab chiqaruvchi xodimlar yoki ijodiy uchinchi 
shaxslardan kelib chiqishi mumkin.   Dasturiy mahsulotlar uchun g'oyalar odatda   marketing 
bo'yicha   xodimlar tomonidan iqtisodiy maqsadga muvofiqligi, mavjud kanallarni taqsimoti, 
mavjud mahsulot turlariga ta'sir ko'rsatishi, kerakli   xususiyatlar bo'yicha   baholanadi.va 
kompaniyaning marketing maqsadlariga muvofiq.   Marketingni baholash bosqichida xarajatlar va
vaqt taxminlari baholanadi.   Marketing va rivojlanish xodimlari tomonidan ishlab chiqilgan 
batafsil ma'lumotlarga asoslanib, loyihani davom ettirish kerakligi to'g'risida birinchi 
bosqichning boshida qaror qabul qilinadi.   [4]
Kitobida   "Buyuk Dastur Debatlar"   ,   Alan M. Devis   bobida deyilgan   "talablar"   , sub-
bobda   "Dastur rivojlantirish Missing parcha"
Muhandislik talabalari muhandislikni o'rganadilar va moliya yoki marketing bilan kamdan-kam 
uchraydilar.   Marketing talabalari marketingni o'rganadilar va kamdan-kam moliya yoki 
muhandislik bilan shug'ullanadilar.   Ko'pchiligimiz faqat bitta yo'nalish bo'yicha mutaxassis 
bo'lamiz.   Vaziyatni murakkablashtirish uchun, ozchiligimiz ishchi kuchida intizomga oid 
odamlar bilan uchrashamiz, shuning uchun taqlid qiladigan rollar kam.   Shunga qaramay, 
dasturiy mahsulotni rejalashtirish rivojlanishning muvaffaqiyati uchun juda muhimdir va bir 
nechta fanlarni bilishni talab qiladi.   [5]
Dasturiy ta'minotni ishlab chiqish mijoz tomonidan talab qilinadigan narsadan voz kechishni 
yoki undan tashqariga chiqishni o'z ichiga olishi mumkinligi sababli, dasturiy ta'minotni ishlab 
chiqish loyihasi   inson resurslari   ,   risklarni boshqarish   ,   intellektual mulk   ,   byudjetni 
shakllantirish   ,   inqirozni boshqarish   va boshqalar   kabi kamroq texnik muammolarga   duch   kelishi
mumkin.   dasturiy ta'minotni ishlab   chiqish   bilan ustma-ust   keladigan   biznesni 
rivojlantirishning   roli   .
Rejalashtirish jarayoni   [   tahrirlash   ]
Rejalashtirish - bu har qanday faoliyatning maqsadi, bu erda biz loyihaga tegishli narsalarni 
kashf etmoqchimiz.   Dasturiy ta'minotni yaratishda muhim vazifa   talablar   yoki   talablarni tahlil 
qilishdir   .   [6]
  Mijozlar odatda yakuniy natija sifatida nimani xohlashlari haqida mavhum 
tasavvurga ega bo'ladilar, ammo   dasturiy ta'minot   nima   qilish kerakligini bilishmaydi.   Malakali 
va tajribali dasturiy ta'minot muhandislari hozirgi paytda to'liq bo'lmagan, noaniq yoki hatto 
qarama-qarshi talablarni tan olishadi.   Jonli kodni tez-tez namoyish qilish talablarning noto'g'ri 
ekanligi xavfini kamaytirishga yordam beradi.
"Garchi talablar bosqichida talablarning to'liq va izchil bo'lishini ta'minlash uchun juda ko'p kuch
sarflangan bo'lsa-da, kamdan-kam hollarda shunday bo'ladi; yangi yoki o'zgaruvchan 
talablarning ta'sirini minimallashtirish to'g'risida gap ketganda dasturiy ta'minotni 
loyihalashtirish bosqichini eng ta'sirchan deb qoldiring. Talablarning o'zgaruvchanligi Bu qiyin, 
chunki ular kelajakdagi yoki rivojlanayotgan sa'y-harakatlarga ta'sir qiladi. "   [7]
Mijozdan umumiy talablar yig'ilgandan so'ng, rivojlanish ko'lami tahlili aniqlanishi va aniq 
bayon qilinishi kerak.   Bu ko'pincha ko'lam hujjati deb nomlanadi.
Loyihalash   [   tahrirlash   ]
Asosiy maqolalar:   Dasturiy ta'minot dizayni   va   tizimlarni loyihalash
Talablar o'rnatilgandan so'ng,   dasturiy ta'minot dizayni dasturiy ta'minotni loyihalash 
hujjatida   o'rnatilishi mumkin   .   Bu   asosiy modullarning   dastlabki yoki   yuqori darajadagi dizayni   , 
uning qismlari bir-biriga qanday mos kelishini   umumiy rasmini (masalan,   blok diagrammasi   )   o'z
ichiga oladi   .   Til, operatsion tizim va apparat qismlarining barchasi hozircha ma'lum bo'lishi 
kerak.   Keyinchalik batafsil yoki past darajadagi dizayn yaratiladi, 
ehtimol   prototipni   kontseptsiya isboti sifatida yoki talablarni kuchaytirish uchun.
9 Amalga oshirish, sinovdan o'tkazish va hujjatlashtirish   [   tahrirlash   ]
Amalga oshirish   jarayonining bir qismi bo'lgan   dasturiy ta'minot 
muhandislari   aslida   dasturlashingiz   loyihasi uchun kod.
Dasturiy ta'minotni sinovdan o'tkazish   dasturiy ta'minotni ishlab chiqish jarayonining ajralmas va
muhim bosqichidir.   Jarayonning ushbu qismi   nuqsonlarni   iloji boricha tezroq tan 
olinishini   ta'minlaydi   .   Odatda,   sinov asosida ishlab   chiqilgan   deb nomlanuvchi ba'zi bir 
jarayonlarda   testlar amalga oshirilishidan oldin ishlab chiqilishi va amalga oshirishning to'g'riligi
uchun qo'llanma bo'lib xizmat qilishi mumkin.
Kelajakda texnik xizmat ko'rsatish va takomillashtirish maqsadida dasturiy ta'minotning ichki 
dizaynini   hujjatlashtirish   rivojlanish davomida amalga oshiriladi.   Bunga   tashqi yoki ichki 
bo'lsin   ,   API   yozilishi ham kirishi mumkin   .   Rivojlanayotgan guruh tomonidan tanlangan 
dasturiy ta'minot muhandislik jarayoni ichki hujjatlar (agar mavjud bo'lsa) qanchalik zarurligini 
aniqlaydi.   Rejaga asoslangan modellar (masalan,   palapartishlik   ) 
odatda   Agile   modellariga   qaraganda ko'proq hujjatlarni ishlab chiqaradi   .
Joylashtirish va texnik xizmat ko'rsatish   [   tahrirlash   ]
Joylashtirish   to'g'ridan-to'g'ri kod tegishli sinovdan o'tkazilgandan so'ng 
boshlanadi,   chiqarilishi   uchun tasdiqlangan   va sotilgan yoki boshqa usul bilan ishlab chiqarish 
muhitiga tarqatilgan.   Bu o'rnatish, sozlash (masalan, mijozning qiymatiga parametrlarni 
o'rnatish), sinovdan o'tkazish va ehtimol uzoq muddatli baholashni o'z ichiga olishi 
mumkin.   [   iqtibos kerak   ]
Dasturiy ta'minotni o'qitish va   qo'llab-quvvatlash   muhim ahamiyatga ega, chunki dastur to'g'ri 
ishlatilgan taqdirdagina samarali bo'ladi.   [   iqtibos kerak   ]
Yangi kashf etilgan   xatolar   yoki talablarni   engish uchun dasturiy ta'minotni   saqlash   va 
takomillashtirish   katta vaqt va kuch sarf qilishi mumkin, chunki o'tkazib yuborilgan talablar 
dasturiy ta'minotni qayta ishlashga majbur qilishi mumkin.   [   iqtibos kerak   ]
  .   Aksariyat hollarda, xabar 
qilingan muammolarni bartaraf etish va dasturiy ta'minotning ishlashini ta'minlash uchun texnik 
xizmat muntazam ravishda talab qilinadi.
Subtopiklar   [   tahrirlash   ]
Modelni ko'rish   [   tahrirlash   ]
10 TEAF   Views va istiqbollari bo'yicha Matritsa.
A   view model   beradi bir ramkaga   fikr   ustida   tizimi   va uning   atrof-muhit   , foydalanish 
uchun   dasturiy ta'minot ishlab chiqish jarayoni   .   Bu ko'rinishning asosiy semantikasining grafik 
tasviri.
Nuqtai nazar va qarashlarning maqsadi - bu inson muhandislariga juda   murakkab 
tizimlarni   tushunishga   va muammo elementlarini   tajriba   sohalari atrofida tartibga   solishga imkon
berishdir   .   In   muhandislik   jismonan intensiv tizimlari, fikrlar ko'pincha muhandislik tashkilot 
doirasida qobiliyatlari va vazifalarini mos.   [8]
Ko'pgina murakkab tizim spetsifikatsiyalari shunchalik kengki, hech kim individual 
xususiyatlarning barcha jihatlarini to'liq anglay olmaydi.   Bundan tashqari, biz barcha berilgan 
tizimida turli manfaatlari va o'rganish uchun turli sabablari bor   tizimi   "s   texnik 
xususiyatlarga   .   A   ish   ijro etuvchi bir tizim muhofaza ortiq edi, bir sistemaga pardozlar turli 
savol beraman.   Shuning uchun nuqtai nazarlar ramkasining kontseptsiyasi, ma'lum bir murakkab 
tizimning spetsifikatsiyasiga alohida qarashlarni taqdim etishdan iborat.   Ushbu qarashlar 
tinglovchilarni tizimning ba'zi jihatlariga qiziqish bilan qondiradi.   Har bir nuqtai nazar bilan 
bog'liq bo'lgan nuqtai nazar tili, ushbu nuqtai nazardan tinglovchilar uchun so'z boyligi va 
taqdimotni optimallashtiradi.
Biznes jarayoni va ma'lumotlarni modellashtirish   [   tahrirlash   ]
Axborotning hozirgi holatini   grafik tasviri   foydalanuvchilarga ham, tizim   ishlab 
chiquvchilariga   ham ma'lumot taqdim etish uchun juda samarali vositani taqdim etadi   .
biznes jarayoni va ma'lumotlar modellari o'rtasidagi o'zaro ta'sirning misoli.   [9]
 A   ish modeli   ish jarayoni modellashtirish bilan bog'liq vazifalarni va bu vazifalarni amalga 
tashkilotlarni ko'rsatilgan.   Faoliyat va axborot oqimlarini tasvirlash orqali jarayonning 
mohiyatini tasavvur qilish, aniqlash, tushunish va tasdiqlash uchun asos yaratiladi.
 A   ma'lumotlar modeli   ma'lumotlar tafsilotlarni saqlanishi uchun beradi va yakuniy mahsulot 
kompyuter avlod bo'lganda asosiy foydalanish hisoblanadi   dasturiy kodi   ilova yoki 
kompyuter dasturi yordam uchun funktsional spetsifikatsiyasi tayyorlash uchun   make-yoki-
buy qaror   .   Biznes jarayonlari va ma'lumotlar modellari o'rtasidagi o'zaro ta'sirga misol 
uchun o'ngdagi rasmga qarang.   [9]
Odatda,   biznesni tahlil qilish   deb ataladigan suhbat o'tkazilgandan so'ng model 
yaratiladi   .   Suhbat bir jarayonni tavsiflovchi kerakli ma'lumotlarni to'plash uchun mo'ljallangan 
11 bir qator savollarni beradigan yordamchidan iborat.   Suhbatdosh ma'lumot beruvchi ishtirokchilar
ekanligini ta'kidlash uchun yordamchi deb nomlanadi.   Fasilitator qiziqish jarayoni haqida bir oz 
ma'lumotga ega bo'lishi kerak, ammo bu jarayon mutaxassisi tomonidan savollar beriladigan 
tuzilgan metodologiyaga ega bo'lish kabi muhim emas.   Uslubiyat muhim ahamiyatga ega, chunki
odatda murabbiylar guruhi bino bo'ylab ma'lumot to'playdi va barcha intervyuerlardan olingan 
ma'lumotlar natijalari to'ldirilgandan so'ng bir-biriga mos kelishi kerak.   [9]
Modellar jarayonning hozirgi holatini belgilovchi sifatida ishlab chiqilgan bo'lib, u holda 
yakuniy mahsulot "mavjud" surati modeli yoki jarayon nimani o'z ichiga olishi kerakligi 
haqidagi g'oyalar to'plami deb nomlanadi, natijada "nima mumkin" -be "modeli.   Jarayon va 
ma'lumotlar modellarini yaratish orqali mavjud jarayonlar va axborot tizimlari sog'lom ekanligini
va faqat kichik o'zgartirishlar yoki yaxshilanishlarga ehtiyoj borligini yoki tuzatish uchun qayta 
qurish zarurligini aniqlash uchun foydalanish mumkin.   Biznes modellarini yaratish bu sizning 
axborot jarayoningizni ko'rish yoki avtomatlashtirishning bir usuli emas.   Tahlil sizning 
biznesingiz yoki tashkilotingiz o'z faoliyatini olib borish uslubini tubdan o'zgartirish uchun 
ishlatilishi mumkin.   [9]
Kompyuter yordamida dasturiy ta'minot muhandisligi   [   tahrirlash   ]
Kompyuter-quvvat berish   (Case), maydon ichida   dasturiy ta'minot muhandislik   , rivojlantirish 
uchun dasturiy ta'minot vositalari va usullari majmui ilmiy dasturi   dasturiy   qaysi sifatli, 
aybingizni-erkin va faoliyatiga dasturiy mahsulotlar natijalar.   [10]
  Shuningdek   , bu dasturiy 
ta'minotni ishlab chiqish jarayonida ishlatilishi mumkin bo'lgan avtomatlashtirilgan vositalar 
bilan birgalikda   axborot tizimlarini   ishlab chiqish usullariga ishora qiladi   .   [11]
  "Kompyuter 
yordamida dasturiy ta'minot muhandisligi" (CASE) atamasi   tizim dasturiy 
ta'minotini   avtomatlashtirilgan ravishda ishlab chiqish uchun foydalaniladigan   dasturni   anglatishi
mumkin., ya'ni kompyuter kodi.   CASE funktsiyalari tahlil, loyihalash va dasturlashni o'z ichiga 
oladi.   CASE vositalari kerakli   dasturlash tilida   tuzilgan kompyuter kodlarini loyihalash, 
hujjatlashtirish va ishlab chiqarish usullarini avtomatlashtiradi   .   [12]
Dasturiy ta'minot tizimining kompyuter tomonidan ta'minlanganligi (CASE) ning ikkita asosiy 
g'oyalari:   [13]
 Dasturiy ta'minotni ishlab chiqish va   dasturiy ta'minotga xizmat 
ko'rsatish   jarayonlarida   kompyuter yordami   va
 Dasturiy ta'minotni ishlab chiqish va texnik xizmat ko'rsatishga muhandislik yondashuvi.
Odatda CASE vositalari   konfiguratsiyani boshqarish   ,   ma'lumotlarni modellashtirish   ,   modelni 
o'zgartirish   ,   qayta ishlash   ,   manba kodini yaratish uchun mavjud   .
Integratsiyalashgan rivojlanish muhiti   [   tahrirlash   ]
12 Anjuta   , GNOME muhiti uchun C va C ++ IDE
An   Integrated Development Environment   (edi), shuningdek ma'lum   integratsiya dizayn, atrof-
muhit   , yoki   atrof-muhit nosozliklarni integratsiya   bir hisoblanadi   dasturlar dasturi   uchun har 
tomonlama qulayliklar beradi   kompyuter dasturchilar   dasturiy ta'minot ishlab chiqish uchun.   IDE
odatda quyidagilardan iborat:
 Manba kod muharriri   ,
 Tuzuvchi   yoki   tarjimon   ,
 Avtomatlashtirish   vositalarini   yaratish   va
 Xatolarni tuzatuvchi   (odatda).
IDE'lar shu kabi   foydalanuvchi interfeyslari   bilan mahkam bog'langan komponentlarni taqdim 
etish orqali dasturchi samaradorligini maksimal darajada oshirish uchun mo'ljallangan   .   Odatda 
IDE   tilning        dasturlash paradigmalariga      eng mos keladigan funktsiyalar to'plamini taqdim 
etish   uchun ma'lum bir   dasturlash tiliga   bag'ishlangan   .
Modellashtirish tili   [   tahrirlash   ]
A   modellashtirish tili   har qanday bo'ladi   sun'iy til   ifoda qilish uchun foydalanish 
mumkin   ma'lumot   yoki   bilimlarni   yoki   tizimlar   bir yilda   tuzilishi   qoidalar izchil majmui bilan 
belgilanadi.   Qoidalar tarkibidagi tarkibiy qismlarning ma'nosini izohlash uchun 
ishlatiladi.   Modellashtirish tili grafik yoki matnli bo'lishi mumkin.   [14]
  Grafik modellashtirish 
tillarida   diagramma metodlaridan foydalaniladi ramzlarni bog'laydigan tushunchalar va 
chiziqlarni ifodalovchi va cheklovlarni ifodalash uchun munosabatlar va boshqa turli xil grafik 
izohlarni aks ettiruvchi nomlangan belgilar bilan.   Matnni modellashtirish tillari odatda 
kompyuter tomonidan izohlanadigan iboralarni yaratish uchun parametrlar bilan birga 
standartlashtirilgan kalit so'zlardan foydalanadi.
Dasturiy injiniring sohasidagi grafik modellashtirish tillariga quyidagilar kiradi:
 Biznes jarayonlarini modellashtirish yozuvlari   (   BPMN   va   XML   forma BPML) bu   jarayonni 
modellashtirish   tiliga   misol   .
 EXPRESS   va EXPRESS-G (ISO 10303-11) - bu xalqaro standart umumiy   ma'lumotni 
modellashtirish   tili.
 Kengaytirilgan korxonalarni modellashtirish tili   (EEML) odatda qatlamlar bo'ylab biznes 
jarayonlarini modellashtirish uchun ishlatiladi.
 Oqim   diagrammasi bu algoritm yoki bosqichma-bosqich jarayonning sxematik tasviri,
 Dasturiy ta'minotni talab qiladigan tizimlar uchun   fundamental modellashtirish 
tushunchalari   (FMC) modellashtirish tili.
 IDEF   - bu modellashtirish tillari oilasi bo'lib, ularning eng 
diqqatga   sazovorlari   orasida   funktsional modellashtirish 
uchun   IDEF0   ,   axborotni   modellashtirish   uchun   IDEF1X   va   modellashtirish ontologiyalari 
uchun   IDEF0   mavjud   .
 LePUS3   - bu   ob'ektga yo'naltirilgan   vizual dizayn ta'rifi tili va   asosan   spetsifikatsiya   tili 
bo'lib, u asosan ob'ektlarga yo'naltirilgan (   Java   ,   C ++   ,   C #   ) dasturlari va   dizayn 
naqshlarini   modellashtirishga mos keladi   .
 Spetsifikatsiya va tavsiflash tili   (SDL) - bu reaktiv va taqsimlangan tizimlarning xatti-
harakatlarini aniq belgilashga va tavsiflashga yo'naltirilgan spetsifikatsiya tili.
 Birlashtirilgan modellashtirish tili   (UML) - bu   dasturiy ta'minotni talab qiladigan tizimlarni 
belgilash uchun sanoat standarti   bo'lgan   umumiy maqsadli modellashtirish   tili.   UML 2.0, 
joriy versiyasi, o'n uch xil diagramma texnikasini qo'llab-quvvatlaydi va keng vositalarni 
qo'llab-quvvatlaydi.
13 Modellashtirish tillarining hammasi ham bajarib bo'lmaydigan va ulardan foydalanish 
dasturchilar endi kerak emas degani emas.   Aksincha, bajariladigan modellashtirish tillari 
malakali dasturchilarning mahsuldorligini oshirishga qaratilgan bo'lib, ular   parallel 
hisoblash   va   taqsimlangan tizimlar   kabi murakkab muammolarni hal qilishlari mumkin   .
Dasturlash paradigmasi   [   tahrirlash   ]
A   dasturlash paradigma   asosiy uslub hisoblanadi   kompyuter dasturlash   odatda (masalan, 
sharshara yoki tezkor kabi) loyiha boshqaruv metodikasi tomonidan aytib emas.   Paradigmalar 
dastur elementlarini (masalan, ob'ektlar, funktsiyalar, o'zgaruvchilar, cheklovlar) ifodalash uchun
ishlatiladigan tushunchalar va abstraktsiyalar va hisoblashni o'z ichiga olgan qadamlar (masalan, 
tayinlash, baholash, davom etish, ma'lumotlar oqimi) bilan farq qiladi.   Ba'zan paradigma 
tomonidan tasdiqlangan tushunchalar yuqori darajadagi tizim arxitekturasini loyihalashda 
birgalikda qo'llaniladi;   boshqa hollarda, dasturlash paradigmasi doirasi ma'lum bir dastur yoki 
modulning ichki tuzilishi bilan cheklangan.
A   dasturlash tili   qo'llab-quvvatlash mumkin   nechta paradigmalar   .   Masalan,   C ++   yoki   Object 
Pascal        tillarida      yozilgan dasturlar   sof   protsessual   yoki faqat   ob'ektga yo'naltirilgan bo'lishi   yoki 
ikkala paradigmaning elementlarini o'z ichiga olishi mumkin.   Dasturiy ta'minot dizaynerlari va 
dasturchilari ushbu paradigma elementlaridan qanday foydalanishni hal qilishadi.   In   ob'ekt 
yo'naltirilgan dasturlash   esa, dasturchilar, o'zaro ob'ektlarni bir to'plam sifatida dasturning deb 
o'ylayman mumkin   Funktsional dasturlash   dasturi fuqaroligi bo'lmagan funktsiya baholash bir 
ketma-ketlikda sifatida tushunilishi mumkin.   Ko'p protsessorli kompyuterlar yoki 
tizimlarni   dasturlashda jarayonga yo'naltirilgan dasturlash dasturchilarga dasturlar haqida 
mantiqiy ravishda birgalikda   tuzilmalar   asosida ishlaydigan bir vaqtning o'zida amalga 
oshiriladigan jarayonlar to'plami sifatida qarashga imkon beradi   .
Dasturiy injiniringning   turli guruhlari   turli   metodologiyalarni   qo'llab-quvvatlagani kabi   , turli 
xil   dasturlash tillari ham   turli xil   dasturlash paradigmalarini   himoya qiladi   .   Ba'zi tillar bitta 
paradigmani qo'llab-quvvatlashga mo'ljallangan (   Smalltalk   ob'ektga yo'naltirilgan 
dasturlashni,   Haskell   funktsional dasturlashni qo'llab-quvvatlaydi), boshqa dasturlash tillari bir 
nechta paradigmalarni qo'llab-quvvatlaydi (masalan,   Object Pascal   ,   C ++   ,   C #   ,   Visual 
Basic   ,   Common Lisp   ,   Scheme   ,   Python   ,   Ruby   va   Oz   ).
Ko'pgina dasturlash paradigmalari, qanday usullarni   taqiqlagani   va imkon beradigan   narsalari 
bilan yaxshi tanilgan   .   Masalan, sof funktsional dasturlash   yon ta'sirlardan   foydalanishni 
taqiqlaydi   ;   tuzilgan dasturlash        goto      so'zlaridan   foydalanishni taqiqlaydi   .   Qisman shu sababli, 
yangi paradigmalar ko'pincha ilgari uslublarga o'rganib qolganlar tomonidan doktriner yoki o'ta 
qattiq deb qaraladi.   [
  zikr qilish   kerak   ]
  Ba'zi usullardan qochish dasturning to'g'riligi haqidagi 
teoremalarni isbotlashni yoki uning xatti-harakatlarini tushunishni osonlashtirishi mumkin.
Yuqori darajadagi paradigmalarga quyidagilar kiradi:
 Aspektga yo'naltirilgan dasturiy ta'minotni ishlab chiqish
 Domenga xos modellashtirish
 Modelga asoslangan muhandislik
 Ob'ektga yo'naltirilgan dasturlash   metodologiyalari
o Grady Booch   "s   ob'ekt yo'naltirilgan dizayn   , shuningdek, ob'ekt yo'naltirilgan tahlil va 
dizayn (OOAD) sifatida ma'lum bo'lgan (OOD).   Booch modeli oltita diagrammani o'z 
ichiga oladi: sinf, ob'ekt, holatga o'tish, o'zaro ta'sir, modul va jarayon.   [15]
 Qidiruvga asoslangan dasturiy ta'minot
 Xizmatga yo'naltirilgan modellashtirish
 Tarkibiy dasturlash
 Yuqoridan pastga va pastdan yuqoriga qarab loyihalash
14 o Yuqoridan pastga dasturlash   : 1970-yillarda IBM tadqiqotchisi   Xarlan Mills   (va   Niklaus 
Virt   ) tomonidan ishlab chiqilgan   tizimli dasturlashda   rivojlangan   .
Dasturiy ta'minotni qayta ishlatish   [   tahrirlash   ]
Ushbu bo'lim   Vikipediyaning   sifat standartlariga   mos 
kelishi   uchun   qayta yozilishi   kerak bo'lishi mumkin   .   Siz yordam 
bera olasiz   .   Muhokama   sahifasida   takliflar bo'lishi mumkin.   (   2016 
yil may   )
Dasturiy ta'minotni qayta ishlatish   ta'rifi   oldindan belgilangan dasturiy ta'minot tarkibiy 
qismlaridan dasturiy ta'minotni yaratish jarayonidir.   Dasturiy ta'minotni qayta ishlatish 
yondashuvi   dasturiy ta'minotni ishlab chiqish   davridagi mavjud dasturiy ta'minotdan 
foydalanishni ko'paytirish yoki maksimal darajada oshirishga intiladi   .
Quyida ba'zi bir keng tarqalgan dasturiy ta'minotni qayta ishlatish usullari keltirilgan:
 A   dasturi kesish   bir dasturiy ta'minot tizimi yoki quyi tizimi uchun, qayta foydalanish 
mumkin dizayn yoki amalga oshirish hisoblanadi.
 Komponentlarga asoslangan dasturiy ta'minot dastur   yaratish 
uchun   mavjud   komponentlarni   birlashtirishni o'z ichiga oladi   .
 Xizmatga yo'naltirilgan arxitektura   yoki   xizmatga yo'naltirilgan dasturlash        veb-   
xizmatlar   kabi tarmoq xizmatlarini taqdim etish uchun   tarkibiy qismlar   kontseptsiyasiga 
asoslanadi   .
 Dasturiy ta'minot liniyalari   ma'lum bir bozor uchun bir qator mahsulotlarni (yoki 
"dasturlarni") ishlab chiqarish uchun "asosiy" aktivlar va jarayonning umumiy to'plamiga 
asoslangan dasturiy ta'minotni ishlab chiqishga intiladi.
 API (   Dasturlarni dasturlash interfeysi   ,   kelajakdagi tuzilmalarda ishlatilishi mumkin bo'lgan 
"   dasturiy ta'riflar, protokollar va dasturiy ta'minotni yaratish uchun vositalar   " 
to'plamini   yarating.
 GitHub   kabi kutubxonalar orqali Open Source hujjatlari   dasturiy ta'minot ishlab 
chiquvchilariga qayta ishlatish va yangi ilovalar yoki dizaynlarga kiritish uchun bepul kodni 
taqdim etadi.
IEEE   dasturining hayot  sikli
SQA -   dasturiy ta'minot sifatini ta'minlash   •   IEEE 730
SCM -   Dastur konfiguratsiyasini boshqarish   •   IEEE 828
STD -   dasturiy ta'minotni sinov hujjatlari   •   IEEE 29119
SRS -   dasturiy ta'minotga talablarning spetsifikatsiyasi   •   IEEE 29148
V&V -   dasturiy ta'minotni tekshirish va tasdiqlash   •   IEEE 1012
SDD -   Dasturiy ta'minotni tavsifi   •   IEEE 1016
SPM -   Dasturiy ta'minot loyihalarini boshqarish   •   IEEE 16326
SUD -   dasturiy ta'minotni foydalanuvchi hujjatlari   •   IEEE 24748
15 II. Loyihalash jarayoni
Munosabatlar jadvalini hosil qilish jarayoni
3.1 Ishning maqsadi
Ikkilik munosabat matritsasini raqamli modellashtirish usullarini o'rganish va berilgan ikkita 
sonli to'plamlar bo'yicha binar munosabat matritsasini qurish uchun kompyuter dasturini ishlab 
chiqish.
3.2. Qisqacha nazariy ma'lumotlar [6, 9, 10]
A va B to`plamlarning dekartiy ko`paytmasi - bu barcha mumkin bo`lgan juftlarni o`z ichiga 
olgan M to`plami, unda A elementi birinchi o`rinda, B elementi ikkinchi o`rinda turadi Rasmiy 
ravishda A×B = M, M = {( ai, bj) | ai ∈
A, bj ∈
B}.
Ikki sonli A = {a1, a2, ..., am}, B = {b1, b2, ..., bm} va P  ∈
 A×B ikkilik munosabatlarni ko'rib 
chiqing. Ikkilik munosabat R ning m×n kattalikdagi matritsasini (qo'shni) [R] = (pij) quyidagi 
qoida bo'yicha aniqlaymiz:
P
ij ={
1,agar	(ai,bj)∈P,	
0,agar	(ai,b	j)∈P.
Olingan matritsa elementlar o'rtasidagi munosabatlar to'g'risida to'liq ma'lumotni o'z ichiga oladi 
va ushbu ma'lumotni kompyuterda namoyish etishga imkon beradi. Nol va birdan iborat bo'lgan 
har qanday matritsa ba'zi bir ikkilik munosabatlarning matritsasi ekanligini unutmang.
Teskari nisbat P -1
 P -1
 = {(a, b) | sifatida aniqlanadi (b, a) 	
∈ P}. Ikkilik munosabatlar P	∈ A×B va    
Q 	
∈ B × C ning tarkibi P°Q = {(x, y) | x 	∈ A, y	∈ C, 	∃ z	∈ B B (x, z) 	∈ P, (z, y) 	∈ Q}. A: P 	∈  A 2
 
to'plamdagi ikkilik munosabat bo'lsin. P munosabati barcha x,y	
∈ A uchun (x, x) 	∈ P bo'lsa, 
reflektiv deyiladi. Agar (x, y)  P dan har qanday x, y A  A uchun (y, x)  P kelib chiqsa, munosabat 
nosimmetrik deb ataladi. P -1
 = P, yoki [P] = [P]  T
. Agar $ P (x, y) -P $ va $ (y, x) -P $ dan $ x = y
$ bo'lsa, $ P $ antisimetrik deb nomlanadi. Agar P, (x, y)  P  va  (y, z)  P dan kelib chiqadigan 
bo'lsak,  P (x, z)  P , ya'ni o'tuvchi deb nomlanadi. P º P   P. Bundan tashqari, [PºP] = [P] 	
∙  [P] 
kompozitsion matritsasi, bu erda matritsani ko'paytirish odatdagidek amalga oshiriladi
matritsani ko'paytirish qoidasi, ammo qo'shilish quyidagi qoidalardan foydalanadi: 0 + 0 = 0, 1 +
1 = 1, 1 + 0 = 0 + 1 = 1.
Ba'zi bir to'plamdagi ikkilik munosabat deyiladi:
• ekvivalentlik, agar u refleksiv, nosimmetrik va o'tuvchi bo'lsa;
• bag'rikenglik, agar u aks ettiruvchi va nosimmetrik bo'lsa;
• buyurtma (yoki qisman buyurtma), agar u refleksli, antisimmetrik va tranzitiv bo'lsa;
• oldindan buyurtma (yoki kvazi-buyurtma), agar u refleksiv va o'tuvchi bo'lsa;
• agar u refleksli, antisimetrik va o'tish davri bo'lsa, qat'iy tartib;
• agar u ham refleksli, ham o'tuvchan bo'lsa, qat'iy oldindan buyurtma qilish.
16 3.3. Ish tartibi
Quyidagi ikkilik munosabatlarning matritsalarini qurish uchun kompyuter dasturini yarating:
• “a> b” (a b dan katta);
• "a   b" (a b dan katta yoki unga teng);
• “a = b” (a b ga teng);
• "a mod b = 0" (b ga bo'linadigan);
• “a mod 2 = 0 yoki b mod 2 = 0” (a yoki b - juft son);
• “a mod 2 = 0 va b mod 2 = 0” (a va b ikkala juft sonlar bir vaqtning o'zida).
Bu erda a element  А  (a A), b – B (b B). to'plamga tegishli.
Dastur kirish ma'lumotlarining tasodifiy ketma-ketligini yaratishi, kirish ma'lumotlari bo'lgan 
maydonlarni o'sish tartibida buyurtma qilishi, berilgan nisbatdagi mantiqiy matritsani dinamik 
ravishda tuzishi kerak.
Dasturni amalga oshirish:
• HTML gipermatnini belgilash tilidagi interfeys qismi [3];
• C ga o'xshash JavaScript tilidagi funktsional qism [4].
Old qism quyidagilarni o'z ichiga olishi kerak:
• asar nomi, muallif haqidagi ma'lumotlar, ishlab chiqish vaqti ko'rsatilgan sarlavha;
• ikkita to'plam uchun belgilangan maydonlar;
• boshlang'ich A va B to'plamlarining kirish ma'lumotlarining tasodifiy ketma-ketligini yaratish 
tugmalari;
• joriy munosabatlarni ko'rsatish uchun ko'rsatkich;
• ikkilik munosabat matritsasini qayta hisoblash tugmalari;
• ikkita katak ranglari bilan binarlik munosabatlari matritsasi. Shakl. 3.1 interfeysning mumkin 
bo'lgan ko'rinishini ko'rsatadi.
17 Ushbu interfeys quyidagi teglar ketma-ketligi bilan amalga oshirilishi mumkin:
<center><hr color=gold size=5><b>Автор: Иванов Иван Иванович, Группа КИТ-
66, 2007
<br> Лабораторная   работа  №2</b><hr color=gold size=2></center>
<b>  Множество  A: </b>
<input type=text name=txt1 size=66 value='' onchange='fsort(1);g()'>
<input type=button value='Random' onclick='rnd(10,30,10,1); g()'><br>
<b>  Множество  B: </b>
<input type=text name=txt2 size=66 value='' onchange='fsort(2);g()'>
<input type=button value='Random' onclick='rnd(10,30,10,2); g()'>
<center><select name=sel1 onchange=g()>
<option>a>b</option><option>a>=b</option>
<option>a=b</option><option>a mod b=0</option>
<option>a mod 2=0  или  b mod 2=0</option>
<option>a mod 2=0  и  b mod 2=0</option></select>
<input type=button name=but1 value=' Перестроить ' onclick='g()'>
18 </center><div ID="info"> </div>
Ushbu interfeysning to'g'ri ishlashi uchun ikkilik munosabatlarni qurish algoritmini amalga 
oshiradigan g funktsiyasini yozish kerak. Rnd va fsort funktsiyalari oldingi dasturdan olinishi 
mumkin.
Mumkin bo'lgan echim quyidagicha ko'rinishi mumkin:
<script language="JavaScript">
w = new Array(20);
for(i=0;i<20;i++) w[i] = new Array(20); rnd(10,30,10,1); rnd(10,30,10,2);
g();
function g() //  Строим матрицу бинарного отношения
{document.all.info.innerHTML=""; ma=document.all.txt1.value; 
mb=document.all.txt2.value; ma=ma.split(" ";);
mb=mb.split(" "); na=ma.length-1; 
nb=mb.length-1;
for   (i=0;i<na;i++)   ma[i]=1*ma[i];   for   (j=0;j<nb;j++)
mb[j]=1*mb[j]; for (i=0;i<na;i++)
for (j=0;j<nb;j++) w[i][j]=0;
k=1*document.all.sel1.selectedIndex;
for (i=0;i<na;i++) for (j=0;j<nb;j++)
{switch (k) //  Выбор   режима   расчета
{case 0: {if (ma[i] > mb[j]) w[i][j]=1; break;}
case 1: {if  (ma[i]  >= mb[j])  w[i][j]=1;   break;}
case 2: {if  (ma[i]  == mb[j])  w[i][j]=1;   break;}
case 3: {if ((ma[i] % mb[j]) ==0) w[i][j]=1; break;}
case 4: {if ( ( ma[i] % 2 ==0) || (mb[j] % 2 ==0) ) w[i][j]=1; break;}
case 5: {if ( ( ma[i] % 2 ==0) && (mb[j] % 2 ==0) ) w[i][j]=1; break;}}
} //  Формируем   таблицу   результатов   с   помощью   тегов  s="<br><table 
border=1 align=center cellpadding=3 cellspacing=0>" s+="<tr 
bgcolor=ffffcc><td rowspan="+(na+2)+"><br>A</td><td align=center 
colspan="+(nb+1)+">B</td></tr>";
19 s+="<tr bgcolor=ffffcc><td> </td>";
for (j=0;j<nb;j++) s+="<td>"+mb[j]+"</td>"; s+="</tr>"
for   (i=0;i<na;i++)
{s+="<tr><td bgcolor=ffffcc>"+ma[i]+"</td>"; for  
(j=0;j<nb;j++)
{if (w[i][j]==1) s+="<td bgcolor=ccffcc>"; if (w[i]
[j]==0)s+="<td bgcolor=ffcccc>"; s+=w[i][j]+"</td>"}
s+="</tr>";} s+="</table>";
document.all.info.innerHTML=s;}
function rnd(n1,n2,kmax,stxt) // Генератор последовательности 
случайных
{   s="   "; // натуральных чисел от n1 до  n2  kmax штук
if ((n2-n1)<kmax) kmax=n2-n1; n2-=n1; 
knum=0;
do
{s0=Math.round(Math.random() * n2) + n1 s1=""+s0+"";
if (s.indexOf(s1)==-1) {s+=s0+" ";knum++}} while 
(knum<kmax) eval("document.all.txt"+stxt+".value=s") 
fsort(stxt)}
function fsort(n) //  Сортировка числовых множеств по возрастанию
{s=eval("document.all.txt"+n+".value"); s=s.split(" ");
ns=s.length;
for (i=0;i<ns;i++) s[i]=1*s[i];
for (i=0;i<ns;i++) for (j=0;j<ns-i;j++) if 
(s[j]>s[j+1])
{p=s[j];
s[j]=s[j+1];
s[j+1]=p;}
s0="";
for (i=0;i<ns;i++)
if (s[i]>0)s0+=s[i]+" "; 
eval("document.all.txt"+n+".value=s0");}
20 </script>
Bloknot muharriri yordamida dasturning ishchi versiyasi bilan prog3.htm fayl yarating.  Dasturni 
Internet Explorer brauzerida disk raskadrovka. Dastur matnida sharhlar bo'lishi kerak. Dasturni 
sinov holatlariga qarshi sinovdan o'tkazing. Shtat o'tishlari ko'rinishidagi blokchart (ushbu sxema
turi kitobda batafsil tavsiflangan [8], mumkin bo'lgan echim 3.2-rasmda ko'rsatilgan) dasturning 
Microsoft Office to'plamiga kiritilgan Microsoft Visio dasturi yordamida rasm chizish. .
Chizilgan rasm KIT-46B guruhi Mixaylova Yuliya tomonidan amalga oshirildi.
Shakl: 3.2
Kirish ma'lumotlarini o'zgartirish, tegishli ikkilik munosabatlarning xususiyatlarini o'rganish.
21 Munosabatlar     - bu   turli	 xil   narsalarning   xususiyatlarini   va	 ularning	 o'zaro	 munosabatlarini   rasmiy	 
ravishda	
 belgilaydigan   matematik	 tuzilish   .   Matematikadagi	 munosabatlarning	 keng	 tarqalgan	 
misollari	
 -   tenglik	 (=)   ,   bo'linish   ,   o'xshashlik   ,   parallellik   va	 boshqalar.
Dekart	
 mahsulotining   kichik	 to'plami	 sifatida	 munosabatlar	 tushunchasi   to'plamlar	 
nazariyasida   rasmiylashtirilgan   va	
 uning	 barcha	 tarmoqlarida	 matematika	 tilida	 keng	 
tarqalgan.   Aloqaning	
 to'plam-nazariy	 ko'rinishi	 uni	 hajm	 jihatidan	 xarakterlaydi	 - u qanday	 
elementlarning	
 kombinatsiyasi	 bilan	 to'ldiriladi;   matematik	 mantiqda   mazmunli	 yondashuv	 ko'rib	 
chiqiladi   ,	
 bu	 erda	 munosabat   propozitsion	 funktsiya   ,	 ya'ni	 aniqlanmagan	 o'zgaruvchiga	 ega	 bo'lgan	 
ifoda,	
 uni	 haqiqiy	 yoki	 yolg'onga	 aylantiradigan	 aniq	 qiymatlarni	 almashtirishdir.   Aloqalar   universal	 
algebrada   muhim	
 rol	 o'ynaydi,	 bu	 erda	 bo'limni	 o'rganishning	 asosiy	 ob'ekti	 o'zboshimchalik	 bilan	 
operatsiyalar	
 va	 aloqalar	 to'plamiga	 ega	 to'plamdir.   Matematik	 munosabatlar	 texnikaning	 eng	 ajoyib	 
ilovalar	
 biri   ilovalar     bo'lgan   ilişkisel	 bazasi	 boshqaruv	 tizimlari   metodik	 asoslangan,   munosabatlar	 
rasmiy	
 algebra   .
Aloqalar
 odatda	 bir-biriga	 bog'langan	 ob'ektlar	 soni	 (   arity   )	 va	 ularning	 o'ziga	 xos	 xususiyatlari,	 
masalan,   simmetriya   ,   tranzitivlik   ,   refleksivlik	
 bo'yicha   tasniflanadi
O'zaro	
 munosabatlar	 xususiyatlarining	 boshqa	 kombinatsiyalari	 bo'lishi	 mumkin,	 masalan,	 o'tish	 va	 
refleksli,	
 ammo	 boshqa	 oddiy	 xususiyatlarga	 ega	 emas   ,	 odatda   raqamlar   belgisi	 bilan	 
belgilanadigan   tabiiy	
 sonlar   to'plamidagi	 bo'linish	 munosabati. ,	 u shaklning	 juftlaridan	 
iborat   qayerda     ajratadi   to'liq.   Uchlamchi	
 munosabatlarning	 misoli	 -   Pifagor	 uchligini   uch	 son	 bilan	 
hosil	
 qilish,   Pifagor	 to'rtligiga   nisbatan	 topish     to'rtinchi	 darajali	 munosabatlarga	 misoldir.
Grafika	
 nazariyasida   ikkilik	 munosabatlarning	 bo'shashgan	 xususiyatlar	 to'plamidan	 
foydalaniladi   :   yo'naltirilmagan	
 grafikni   ustiga	 simmetrik	 ikkilik	 munosabati   bo'lgan	 tepaliklar	 
to'plami   va   yo'naltirilgan	
 grafikni   o'zboshimchalik	 bilan	 ikkilik	 munosabati	 bilan	 tepaliklar	 to'plami	 
sifatida	
 aniqlash	 mumkin.
22

Mundarija 1. Umumiy ma’lumotlar 1.1. Dasturiy ta'minotning muhim ta'riflari quyidagilarni o'z ichiga oladi………………………………………………………..2 1.2. Dasturiy ta’minotni ishlab chiqish………………………………7 1.3. IEEE standarti………………………………………………..…..15 2. Loyihalash jarayoni 2.1. Munosabatlar jadvalini hosil qilish jarayoni …………….....….16 3. Ilovalar……………………………………………………………18 4. Xulosa……………………………………………………………..22 1

I. Umumiy ma’lumotlar Dasturiy ta'minotning muhim ta'riflari quyidagilarni o'z ichiga oladi:  "dasturiy ta'minotni loyihalash, tatbiq etish, sinovdan o'tkazish va hujjatlarni rasmiylashtirishda ilmiy va texnologik bilimlarni, usullarni va tajribani muntazam ravishda qo'llash" - Mehnat statistikasi byurosi - IEEE tizimlari va dasturiy ta'minot muhandisligi - Lug'at [18]  " Dasturiy ta'minotni ishlab chiqish, ishlatish va unga xizmat ko'rsatishda tizimli, intizomli, miqdoriy yondashuvni qo'llash " - IEEE dasturiy ta'minot muhandisligi terminologiyasining standart lug'ati [19]  "dasturiy ta'minot ishlab chiqarishning barcha jihatlari bilan bog'liq bo'lgan muhandislik intizomi" - Yan Sommervil [20]  "ishonchli va haqiqiy mashinalarda samarali ishlaydigan dasturiy ta'minotni iqtisodiy jihatdan olish uchun ovozli muhandislik tamoyillarini o'rnatish va ulardan foydalanish" - Fritz Bauer [21]  "murakkab kompyuter dasturlarini loyihalash, amalga oshirish va ularga xizmat ko'rsatish bilan shug'ullanadigan informatika bo'limi " - Merriam-Vebster [22]  "" dasturiy ta'minot muhandisligi "nafaqat kod yozish aktini, balki tashkilot ushbu kodni yaratish va saqlash uchun vaqt davomida ishlatadigan barcha vositalar va jarayonlarni o'z ichiga oladi. [...] Dasturiy ta'minotni" vaqt o'tishi bilan birlashtirilgan dasturlash "deb hisoblash mumkin. . '"- Google'da dasturiy ta'minot muhandisligi [23] Ushbu atama rasmiy ravishda kamroq ishlatilgan:  ilgari kompyuter dasturlash va tizimlarni tahlil qilish deb nomlangan keng ko'lamli faoliyat uchun norasmiy zamonaviy atama sifatida ; [24]  rasmiy ravishda informatika fanining sub-intizomi sifatida o'rganilayotgan kompyuter dasturlash nazariyasidan farqli o'laroq, kompyuter dasturlash amaliyotining barcha jihatlari uchun keng atama sifatida ; [25]  kompyuter dasturlash uchun o'ziga xos yondashuvni himoya qilishni o'z ichiga olgan atama sifatida, unga san'at yoki hunarmandchilik emas, balki muhandislik intizomi sifatida qarashni talab qiladi va tavsiya etilgan amaliyotlarni kodifikatsiyalashni yoqlaydi . [26] Dastur talablari [ tahrirlash ] Asosiy maqola: Dasturiy ta'minotga talablar Talablar muhandislik bo'yicha yuzaga chiqarish, tahlil qilish, xususiyatlari, va tekshirish haqida talablari uchun dasturiy ta'minot . Dasturiy ta'minot dizayni [ tahrirlash ] Asosiy maqola: Dasturiy ta'minot dizayni Dasturiy ta'minot dizayni - bu tizim yoki komponentning arxitekturasini, tarkibiy qismlarini, interfeyslarini va boshqa xususiyatlarini aniqlash jarayoni. Bunga dasturiy ta'minot arxitekturasi ham deyiladi . Dasturiy ta'minotni ishlab chiqish [ tahrirlash ] Asosiy maqola: Dasturiy ta'minotni ishlab chiqish Dasturiy ta'minot ishlanmasi , asosiy faoliyat dasturi qurish , [1] [27] uyg'unligi hisoblanadi dasturlash , tekshirish, dastur sinov va nosozliklarni tuzatish . A dasturiy ta'minot ishlab chiqish jarayoni [1] [27] dasturiy ta'minot hayot aylanishi jarayoni o'zi belgilash, amalga oshirish, baholash, o'lchash, boshqarish, o'zgarish va takomillashtirish hisoblanadi. Bu dasturiy 2

ta'minotni konfiguratsiya boshqaruvidan juda ko'p foydalanadi [1] [27] bu konfiguratsiyadagi o'zgarishlarni muntazam ravishda nazorat qilish va tizimning butun tsikli davomida konfiguratsiya va kodning yaxlitligi va izlenebilirliğini saqlash haqida. Zamonaviy jarayonlarda dasturiy ta'minot versiyasi qo'llaniladi . Dasturiy ta'minotni sinash [ tahrirlash ] Asosiy maqola: Dasturiy ta'minotni sinovdan o'tkazish Dasturiy ta'minotni sinovdan o'tkazish [1] [27] - bu manfaatdor tomonlarga sinovdan o'tkazilayotgan mahsulot yoki xizmat sifati to'g'risida ma'lumot berish uchun o'tkazilgan empirik, texnik tekshiruv, birlik sinovi va integratsiyalashgan test kabi turli xil yondashuvlar . Bu dasturiy ta'minot sifatining bir jihati . Dasturlarga xizmat ko'rsatish [ tahrirlash ] Asosiy maqola: Dasturlarga xizmat ko'rsatish Dasturiy ta'minotga xizmat ko'rsatish [1] [27] dasturiy mahsulotni jo'natgandan keyin iqtisodiy jihatdan qo'llab-quvvatlashni ta'minlash uchun zarur bo'lgan faoliyatni anglatadi. Dasturiy ta'minotni loyihalashtirish - bu vositachining ibtidoiy komponentlar to'plamidan foydalangan holda va cheklovlarga bo'ysungan holda maqsadlarni bajarish uchun mo'ljallangan dasturiy ta'minot artefaktining spetsifikatsiyasini yaratish jarayoni . [1] Dasturiy ta'minot dizayni "murakkab tizimlarni kontseptualizatsiya qilish, shakllantirish, amalga oshirish, ishga tushirish va oxir-oqibat o'zgartirish bilan bog'liq barcha faoliyatni" yoki " talablarga muvofiq va dasturlashdan oldingi faoliyatni , [...] uslubidagi dasturiy ta'minotni nazarda tutishi mumkin. muhandislik jarayoni. " [2] Dasturiy ta'minotni loyihalash odatda muammolarni hal qilishni va dasturiy echimni rejalashtirishni o'z ichiga oladi . Bunga quyi darajadagi komponent va algoritm dizayni hamda yuqori darajadagi arxitektura dizayni kiradi. Umumiy holda Dasturiy ta ' minotni loyihalashtirish - bu bir yoki bir nechta muammolarning dasturiy echimlarini tasavvur qilish va aniqlash jarayoni . Dasturiy ta'minotni loyihalashning asosiy tarkibiy qismlaridan biri bu dasturiy ta'minotga talablarni tahlil qilish (SRA). KSA bir qismidir dasturiy ta'minot ishlab chiqish jarayoni ro'yxati bu xususiyatlari ishlatiladigan dasturiy ta'minot muhandislik . Agar dasturiy ta'minot "yarim avtomatlashtirilgan" yoki foydalanuvchi markazida bo'lsa , dasturiy ta'minot dizayni ushbu xususiyatlarni aniqlashga yordam beradigan stsenariyni yaratadigan foydalanuvchi tajribasini loyihalashni o'z ichiga olishi mumkin . Agar dastur to'liq avtomatlashtirilgan bo'lsa ( foydalanuvchi yoki foydalanuvchi interfeysi yo'qligini anglatadi)), dasturiy ta'minot dizayni rejalashtirilgan voqealar ketma- ketligini tavsiflovchi oqim sxemasi yoki matn kabi oddiy bo'lishi mumkin . Unified Modeling Language va Fundamental modellashtirish tushunchalari kabi yarim standart usullar mavjud . Ikkala holatda ham, rejaning ba'zi hujjatlari odatda dizayn mahsulotidir. Bundan tashqari, dasturiy ta'minot dizayni dizayni uchun ishlatiladigan texnologiyaning mavjudligiga qarab platformadan mustaqil yoki platformaga xos bo'lishi mumkin . Dasturiy ta'minotni tahlil qilish va loyihalashtirishdan asosiy farqi shundaki, dasturiy ta'minot tahlilining natijasi echilishi kerak bo'lgan kichik muammolardan iborat. Bundan tashqari, tahlil guruhning turli a'zolari yoki guruhlari bo'yicha juda boshqacha tarzda tuzilmasligi kerak. Aksincha, dizayn qobiliyatlarga e'tiborni qaratadi va shu bilan bir xil muammo uchun bir nechta dizayn mavjud bo'lishi mumkin va mavjud bo'ladi. Atrof-muhitga qarab, dizayn tez-tez o'zgarib turadi, u ishonchli ramkalardan yaratilganmi yoki mos dizayn naqshlari bilan amalga 3

oshirilganmi . Dizayn misollari orasida operatsion tizimlar, veb-sahifalar, mobil qurilmalar yoki hatto yangi bulutli hisoblash paradigmasi mavjud. Dasturiy ta'minot dizayni ham jarayon, ham modeldir. Loyihalash jarayoni - bu dizaynerga qurilish uchun dasturiy ta'minotning barcha jihatlarini tavsiflashga imkon beradigan bosqichlar ketma-ketligi. Ijodiy mahorat, o'tmishdagi tajriba, "yaxshi" dasturiy ta'minot nimani anglatishini anglash va sifatga bo'lgan umumiy sadoqat vakolatli dizayn uchun muvaffaqiyatning muhim omillariga misoldir. Shuni ta'kidlash kerakki, dizayn jarayoni har doim ham oddiy protsedura emas; dizayn modelini me'morning uy qurish rejalari bilan taqqoslash mumkin. U qurilishi kerak bo'lgan narsaning umumiyligini ifodalash bilan boshlanadi (masalan, uyning uch o'lchovli ko'rinishi); asta-sekin, har bir detalni qurish uchun ko'rsatma berish uchun narsalar yaxshilanadi (masalan, sanitariya-tesisat yotqizilgan). Xuddi shunday, dasturiy ta'minot uchun yaratilgan dizayn modeli kompyuter dasturining har xil ko'rinishini ta'minlaydi. Dizaynning asosiy printsiplari dasturiy ta'minot muhandisiga dizayn jarayonida harakat qilish imkoniyatini beradi. Devis [3] quyidagi ro'yxatda moslashtirilgan va kengaytirilgan dasturiy ta'minotni loyihalashtirish uchun bir qator printsiplarni taklif qiladi:  Loyihalash jarayoni "tunnel ko'rish" dan aziyat chekmasligi kerak. Yaxshi dizayner muqobil yondashuvlarni ko'rib chiqishi kerak, ularning har biri muammoning talablariga, ishni bajarish uchun mavjud bo'lgan resurslarga qarab baholanadi.  Dizayn tahlil modeliga qarab kuzatilishi kerak. Dizayn modelining bitta elementi ko'pincha bir nechta talablardan kelib chiqishi mumkinligi sababli, dizayn modeli tomonidan talablarning qanday qondirilganligini kuzatadigan vosita bo'lishi kerak.  Dizayn g'ildirakni qayta kashf etmasligi kerak. Tizimlar dizayni naqshlari to'plami yordamida quriladi, ularning aksariyati ilgari duch kelgan bo'lishi mumkin. Ushbu naqshlar har doim ixtiroga alternativa sifatida tanlanishi kerak. Vaqt qisqa va resurslar cheklangan; dizayn vaqtini (mavjud bo'lganda) mavjud bo'lgan naqshlarni birlashtirish orqali (haqiqatan ham yangi) g'oyalarni namoyish etishga sarflash kerak.  Dizayn dasturiy ta'minot bilan muammo o'rtasidagi "intellektual masofani minimallashtirishi" kerak, chunki u haqiqiy dunyoda mavjud. Ya'ni, dasturiy ta'minot dizayni tuzilishi, iloji boricha, muammo domeni tuzilishini taqlid qilishi kerak.  Dizayn bir xillik va birlashishni namoyish etishi kerak. Dizayn, agar u to'liq izchil bo'lsa, bir xil bo'ladi. Ushbu natijaga erishish uchun dizayn ishlari boshlanishidan oldin dizaynerlar guruhi uchun uslub va format qoidalari aniqlanishi kerak. Dizayn tarkibiy qismlari orasidagi interfeyslarni aniqlashga e'tibor berilsa, dizayn birlashtiriladi.  Dizayn o'zgarishni hisobga olgan holda tuzilishi kerak. Keyingi bobda muhokama qilingan dizayn tushunchalari dizaynga ushbu printsipga erishish imkonini beradi.  Noto'g'ri ma'lumotlar, hodisalar yoki ish sharoitlariga duch kelganda ham dizayn yumshoq tarzda pasayishi uchun tuzilgan bo'lishi kerak. Yaxshi ishlab chiqilgan dastur hech qachon "bomba" tashlamasligi kerak; u g'ayrioddiy holatlarni qondirish uchun ishlab chiqilgan bo'lishi kerak va agar u ishlov berishni tugatishi kerak bo'lsa, uni oqlangan tarzda bajarishi kerak.  Dizayn kodlash emas, kodlash dizayn emas. Dastur tarkibiy qismlari uchun batafsil protsessual dizaynlar yaratilgan taqdirda ham, dizayn modelining abstraktsiya darajasi manba kodidan yuqori. Kodlash darajasida qabul qilingan yagona dizayn qarorlari protsessual dizaynni kodlashni ta'minlaydigan kichik dastur tafsilotlarini hal qilishi kerak.  Dizayn haqiqatan keyin emas, balki yaratilganligi sababli sifatiga qarab baholanishi kerak. Dizaynerga rivojlanish jarayonida sifatni baholashda yordam beradigan turli xil dizayn tushunchalari va dizayn tadbirlari mavjud.  Kontseptual (semantik) xatolarni minimallashtirish uchun dizayn qayta ko'rib chiqilishi kerak. Ba'zan dizayni ko'rib chiqilganda, daraxtlar uchun o'rmonni sog'inib, minutiyalarga e'tibor qaratish istagi paydo bo'ladi. Loyihalash jamoasi dizayn modelining 4

sintaksisidan xavotirga tushishdan oldin dizaynning asosiy kontseptual elementlarini (kamchiliklar, noaniqlik, nomuvofiqlik) ko'rib chiqilishini ta'minlashi kerak. Dizayn tushunchalari Dizayn tushunchalari dasturiy ta ' minot dizayneriga yanada murakkab usullarni qo ' llash mumkin bo ' lgan asos yaratadi . Asosiy dizayn tushunchalari to'plami rivojlandi. Ular quyidagichadir: 1. Abstraktsiya - mavhumlik - bu faqat ma'lum bir maqsad uchun tegishli bo'lgan ma'lumotlarni saqlab qolish uchun kontseptsiyaning yoki kuzatiladigan hodisaning axborot tarkibini qisqartirish orqali umumlashtirish jarayoni yoki natijasidir. Bu asosiy tafsilotlarni yoki tushuntirishlarni o'z ichiga olmagan holda muhim xususiyatlarni namoyish etish harakati. 2. Noziklash - bu ishlab chiqish jarayoni. Ierarxiya funktsiyalarning makroskopik bayonotini dasturlash tili bayonotlariga erishilmaguncha bosqichma-bosqich parchalash orqali ishlab chiqiladi. Har bir qadamda berilgan dasturning bir yoki bir nechta ko'rsatmalari batafsil ko'rsatmalarga ajraladi. Abstraktlik va aniqlik bir-birini to'ldiruvchi tushunchalardir. 3. Modullik - dasturiy ta'minot arxitekturasi modul deb nomlangan tarkibiy qismlarga bo'linadi. 4. Dastur arxitekturasi - bu dasturiy ta'minotning umumiy tuzilishini va ushbu tizim tizim uchun kontseptual yaxlitlikni ta'minlash usullarini anglatadi. Yaxshi dasturiy ta'minot arxitekturasi loyihaning kerakli natijalariga, masalan, ishlash, sifat, jadval va narx bo'yicha investitsiyalar uchun yaxshi daromad keltiradi. 5. Boshqarish iyerarxiyasi - dastur tarkibiy qismini tashkil qilishni ifodalovchi va boshqaruv iyerarxiyasini nazarda tutadigan dastur tuzilishi. 6. Strukturaviy qismlarga ajratish - dastur tuzilishini gorizontal va vertikalga bo'lish mumkin. Gorizontal bo'limlar dasturning har bir asosiy vazifasi uchun modulli ierarxiyaning alohida tarmoqlarini belgilaydi. Vertikal qismlarga bo'linish shuni ko'rsatadiki, boshqaruv va ish dastur tuzilmasida yuqoridan pastga taqsimlanishi kerak. 7. Ma'lumotlar tarkibi - bu ma'lumotlarning alohida elementlari orasidagi mantiqiy munosabatlarni aks ettirishdir. 8. Dasturiy ta'minot protsedurasi - bu har bir modulni alohida ishlashga qaratilgan. 9. Axborotni yashirish - modullar modul tarkibidagi ma'lumotlar bunday ma'lumotlarga ehtiyoj sezmaydigan boshqa modullar uchun kirish imkoni bo'lmasligi uchun aniqlanishi va tuzilishi kerak. Ob'ekt modelida Grady Booch dasturiy ta'minotni loyihalashtirishning asosiy printsiplari sifatida Abstraktsiya, Enkapsulatsiya, Modularizatsiya va Ierarxiyani eslatib o'tadi. [4] PHAME qisqartmasi (Ierarxiya, mavhumlashtirish, modullashtirish va inkapsulatsiya tamoyillari) ba'zida ushbu to'rt asosiy printsipga murojaat qilish uchun ishlatiladi. [5] Dizayn masalalari Dasturiy ta ' minotni loyihalashda ko ' p jihatlarni hisobga olish kerak . Har bir ko'rib chiqishning ahamiyati dasturiy ta'minotni yaratish uchun yaratilgan maqsadlar va kutishlarni aks ettirishi kerak. Ushbu jihatlarning ba'zilari:  Muvofiqlik - dasturiy ta'minot boshqa mahsulot bilan o'zaro ishlashga mo'ljallangan boshqa mahsulotlar bilan ishlashga qodir. Masalan, dasturiy ta'minotning o'zi eski versiyasi bilan orqaga qarab mos kelishi mumkin. 5