Dasturiy ta’minot haqida
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_1.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_2.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_3.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_4.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_5.png)
![ 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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_6.png)
![ 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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_7.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_8.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_9.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_10.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_11.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_12.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_13.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_14.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_15.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_16.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_17.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_18.png)
![</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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_19.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_20.png)
![</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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_21.png)
![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](/data/documents/b422d9b3-80b2-47cc-81b4-37b2dc778d91/page_22.png)
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