Текст автоматически извлечён из PDF-файла, поэтому форматирование может быть нарушено. Откройте PDF-копию для корректного отображения.
bosqichning asosiy vazifasi jimlik, fon shovqinlari va boshqa keraksiz qismlarni olib tashlash orqali
tizimning samaradorligini oshirishdir[10]. Bu jarayonlarda eng ko‘p qo‘llaniladigan usullar energybased VAD hamda deep learning-based VAD bilan birgalikda fitrlash algoritmlaridan ham
foydalaniladi. Nutq signallarini nostatsionar signallar bo‘lgani uchun oddiy klassik fitrlar yaxshi
samara bermasligi mumkin. Shuning uchun bu jarayonda adaptiv fitrlash algoritmlardan
foydalanish tizim samaradorligini oshiradi. Jumladan LMS adaptiv filtrlash algoritm signal
fitrlashning SNR, PESQ, STOI hamda speaker diarization tizimlari uchun WER, DER
ko‘rsatkichlari bo‘yicha yaxshi samara ko‘rsatgan[11].
𝑒(𝑛) = 𝑑(𝑛) − 𝑦(𝑛)
(1)
𝑤(𝑛 + 1) = 𝑤(𝑛) + 𝜇𝑒(𝑛)𝑥(𝑛)
(2)
Bu yerda:
𝑑(𝑛) – maqsadli signal, 𝑦(𝑛) – filtr chiqish signali, 𝑒(𝑛) – xatolik signali, 𝑤(𝑛) – filtrning
koeffisentlari, 𝜇 – o‘rganish tezligi, 𝑒(𝑛) – xatolik signali, 𝑥(𝑛) – kirish signali.
Filtrlash natijasida hosil bo‘lgan signalda VAD jarayoni amalga oshiriladi. VAD algoritmi
nutq segmentlarini aniqlash uchun har bir N uzunlikdagi ramka (frame) bo‘yicha signalning
energiyasini hisoblaydi.
𝑁
1
𝐸𝑛 = √ ∑ 𝑥𝑖 2
𝑁
(3)
𝑖=1
𝑀
1
𝜃 = 𝛼 ∗ ∑ 𝐸𝑛
𝑀
(4)
𝑛=1
Bu yerda:
𝐸𝑛 – n-freymdagi enargiya, 𝑁 − freym uzunligi, 𝑥𝑖 − signalning i-diskret nuqtdagi signal
amplitudasi, 𝑀 − umumiy freymlar soni, 𝛼 − tajriba natijalariga ko‘ra tanlangan bosag‘a(threshold)
koeffienti
Agar signal energiya chegarasidan (threshold) yuqori bo‘lsa, u nutq deb hisoblanadi, aks
holda jimlik yoki shovqin deb belgilanadi.
1, 𝐸𝑛 > 𝜃
(𝑁𝑢𝑡𝑞 𝑚𝑎𝑣𝑗𝑢𝑑)
𝑆𝑛 = {
0, 𝐸𝑛 ≤ 𝜃 (𝐽𝑖𝑚𝑙𝑖𝑘 𝑦𝑜𝑘𝑖 𝑠ℎ𝑜𝑣𝑖𝑛)
Xususiyatlarni ajratib olish (ing: Feature Extraction). Nutq mevjud segmentlari aniqlanganda
so‘ng, ulardan so‘zlovchilarni farqlash uchun muhim akustik xususiyatlar ajratib olinadi. Akustik
xususiyatlar nutq signal segmentlaridan ajratib olinadi va uni metematik jihatdan tasvirlash
imkonini beradi. Nutq signallariga intellektual ishlov berish sohalarida xususan so‘zlovchilarni
ajratish jarayonlarida eng ko‘p MFCC (ing: Mel-Frequency Cepstral Coefficent), Log-Mel (ing:
Log-Mel Spectogram), BFCC (ing: Bark Frequency Cepstral Coefficent) va boshqa xususiyatlardan
foydalaniladi[12].
So‘zlovchi xususiyatlar vektorlarini hosil qilish (ing: Speaker Embedding). Bu jarayon
so‘zlovchining ovozining o‘ziga xos xususiyatlarini ifodalovchi past o‘lchamli, ixcham tarzada
belgilanadigan vektor bo‘lib, u uzluksiz va o‘zgaruvchan uzunlikdagi nutq signalni doimiy
uzunlikdagi latent fazoda tasvirlaydi. Bugungi kunda so‘zlovchilarni aniqlash, tekshirish va ularni
ajratish jarayonlarida keng qo‘llanilmoqda. U bevosita xususiyatlarni ajratib olish jarayonlariga
bog‘liq bo‘lib, shu xususiyatlar asosida so‘zlovchining xususiyatlar vektorlarini shakllantiriladi.
60
Xususiyatlarga ajratish jarayonlarida olingan xususiyatlar koeffientlari kamroq farqlovchi ajratish
belgilariga ega, so‘zlovchining xususiyatlar vektorlarini hosil qilish esa yuqori aniqlikdagi
farqlovchi imkoniyatlarni taqdim etadi[13]. So‘zlovchining xususiyatlar vektorlarini hosil
qilishning eng keng tarqalgan i-vector, d-vector, x-vector va ECAPA-TDNN usullari mavjud.
Zamonaviy so‘zlovchilarni ajratish tizimlarida x-vector va ECAPA-TDNN modellaridan
foydalaniladi[6,14].
2-rasm. So‘zlovchi xususiyatlar vektorlarini hosil qilish jarayoni umumiy tuzilishi
X-vectorni hosil qilish jarayoni quyidagi formulaga asoslanadi. Shu orqali xususiyatlar
vektori shakllandi va keying jarayon uchun uzatiladi.
𝑥𝑣 = 𝑓(𝑊 ∗ 𝑥 + 𝑏)
(5)
bu yerda:
𝑊 − Neyron tarmoqning o‘rganilgan og‘irliklari, 𝑥 − nutq segmentining akustik
xususiyatlari(MFCC), 𝑏 − bias parametrlari, 𝑓( ) − aktivatsiya funksiyasi
ECAPA-TDNN (ing: Emphasized Channel Attention, Propagation, and Aggregation in
TDNN) bu x-vector modelining takomillashgan versiyasi bo‘lib, speaker embedding olishda
Transformer darajasidagi natijalarni bera oladi. U Time-Delay Neural Network (TDNN) asosida
ishlaydi va turli modifikatsiyalar bilan takomillashgan.
Klasterlash (ing: Clustering). Bu jarayonning asosiy maqsadi bir xil so‘zlovchiga tegishli
bo‘lgan nutq segmentlarini aniqlash hamda ularni so‘zlovchining yorliqlarini bilan belgilashdan
iborat. Klasterlash jarayonlarini asosan ikki xil yo‘nalishda ya’ni so‘zlovchilar soni avvalda ma’lum
bo‘lgan holatda (intervyular, suhbatlar) hamda so‘zlovchilarni soni avvaldan ma’lum bo‘lmagan
holat uchun amalga oshiriladi. Klasterlash algoritmlari sifatida esa K-means, Spektral klasterlash,
AHC (ing: Agglomerative Hierarchical Clustering) algoritmlaridan foydalaniladi. AHC
algoritmlari eng keng tarqalgan klasterlash usullaridan biri bo‘lib, u “pastdan yuqoriga” (bottom-up)
tamoyili asosida ishlaydi. Ushbu usulda har bir so‘zlovchi xususiyatlar vektorlari alohida klaster
sifatida qabul qilinadi, o‘zaro o‘xshash bo‘lgan klasterlar bosqichma-bosqich birlashtiriladi va
oldindan belgilangan bo‘sag‘a qiymatlari (ing: threshold) bo‘yicha so‘zlovchilarga ajratiladi.
Buning o‘ziga xos tomonlari ovoz segmentlari soniga umuman bog‘liq emas. Umumlashtirish
jarayonlarida yaxshi samara beradi.
Qo‘shimcha ishlov berish (ing: Post-Processing). So‘zlovchilarni ajratish jarayonining
yakuniy bosqichi bo‘lib, natijalarni yaxshilash uchun qo‘shimcha ishlov berish. Bu bosqich
quyidagilarni o‘z ichiga oladi:
a.
Klasterlarni tozalash (ing: Cluster Purification). Tajribalar davomida klasterlash
natijalari har doim ham to‘g‘ri chiqmasligi mumkin, ya’ni bir so‘zlovchining nutq signallari
alohida guruhlarga ajratilib yuborilishi mumkin. Klasterlarni tozalash jarayonida aniq natijalarni
olish uchun qayta klasterlash, ishonchli embeddinglarni saqlash amalga oshiriladi.
b.
So‘zlovchilar sonini aniqlash . Juda ko‘p hollarda so‘zlovchilarning soni avvaldan
ma’lum emas. Bu esa model aniqligiga ta’sir qiladi. Shuning uchun bu bosqichda so‘zlovchilarni
aniqlash uchun BIC algoritmlarini ishlatish tavsiya qilinadi.
61
c.
Qo‘shma nutqni hal qilish (Handling Overlapping Speech). Bir vaqtning o‘zida bir
nechta so‘zlovchilarning nutqlari ustma-ust tushib qoladi. Bun muammo diarizatsiyani amalga
oshirishni murakkablashtirib yuboradi. Bundan muammolarda zamonaviy tizimlar End to end
neural diarization(EEND) kabi chuqur o‘rganish modellaridan foydalaniladi.
So‘zlovchilarni ajratish tizimlarini ishlab chiqish jarayonlarida uning aniqliklarini to‘g‘ri
baholash asosiy jarayonlardan biri hisoblanadi. Bu jarayonda baholash usullari asosida tizimining
ishlash samaradorligi aniqlanadi va tizimning parametrlarini tahlil qilinadi. Tahlil qilingan
maqolalarda so‘zlovchilarni ajratish tizimlarining samaradorligini baholash uchun turli xil usullar
qo‘llanilgan. Jumladan DER(ing: Diarization Error Rate), SER(ing: Speaker Error Rate), JI(ing:
Jackard Index), NMI(ing: Normalized Mutual Information) va boshqalar tizimlarning
samaradorligni baholashda keng foydalaniladi[4-8].
DER bu so‘zlovchilarni ajratish tizimlarining umumiy xatolik darajasini ko‘rsatadigan asosiy
metrikalardan biri. DER qanchalik kichik bo‘lsa tizim shuncha yaxshi ishlaydi. Shuning uchun
tajribalar natijasida olingan DER ko‘rsatkichlari solishtiriladi va parametrlari mos ravishda
yangilanadi. DER quyidagi formular yordamida aniqlanadi.
𝐷𝐸𝑅 =
𝐹𝐴+𝑀𝐼𝑆𝑆+𝐸𝑅𝑅𝑂𝑅
𝑇𝑂𝑇𝐴𝐿
(6)
Bu yerda:
𝐹𝐴(𝑓𝑎𝑙𝑠𝑒 𝑎𝑙𝑎𝑟𝑚) − noto‘g‘ri nutq aniqlash, 𝑀𝐼𝑆𝑆 − nutq bo‘lishiga qaramay aniqlanmagan
segmentlar, 𝐸𝑅𝑅𝑂𝑅 − noto‘g‘ri spikerga tegishli segmentlar, 𝑇𝑂𝑇𝐴𝐿 − umumiy audio uzunligi.
Jaccard Index (JI) so‘zlovchi ajratish tizimi aniqlagan segmentlar va ground-truth
annotatsiyalar o‘rtasidagi o‘xshashlik darajasini o‘lchaydi. JI qiymati 1 ga yaqin bo‘lsa, speaker
diarization tizimi mukammal ishlaydi.
|𝐴∩𝐵|
𝐽(𝐴, 𝐵) = |𝐴∪𝐵|
(7)
Bu yerda: A va B - avvalgi hamda keying segment annoatsiyalari.
Natijalar
Yuqorida keltirilgan usullar yordamida speaker diarizationni amalga oshiriladi va ularning
samaradorliklari baholanadi. Dastlab, audio signalidan MFCC va uning delta qiymatlari olinadi.
Ushbu xususiyatlar nutqni spikerga xos jihatlarini saqlab qolgan holda past o‘lchamli vektor
fazosida ifodalash imkonini beradi. Nutq segmentlari to‘rt xil klasterlash usuli orqali tahlil qilinadi:
K-means, Spektral Klasterlash, AHC, DBSCAN (ing: Density-Based Spatial Clustering). Har bir
algoritm uchun natijalar mustaqil hisoblanib, RTTM formatida saqlanadi.
3-rasm. Annotatsiya fayllarining tuzilishi
62
Ishlab chiqilgan tizim bir nechta usullarni qo‘llab ularning orasidan samaralirog‘ini tanlab
olish uchun mo‘ljallangan. Mavjud datasetdan foydalanib turli usullarni sinab ko‘riladi. Natijalarni
grafik ko‘rinishida ekranga chiqariladi. Bunda alohida so‘zlovchilarning nutq signallari vaqt o‘qi
bo‘yicha nutqlarining ajratilganligini tasvirlanadi. Annotatsiya faylida qaysi so‘zlovchining qachon
gapirganini ko‘rish mumkin. Bitta so‘zlovchiga tegishli audiolar tizim so‘ngida tahlil qilish uchun
birlashtiriladi. Dastlab klasterlash algoritmlarining turli usullari bo‘yicha natijalar tahlil qilinadi.
4-rasm. So‘zlovchilarni segmentlash jarayonlarida turli klasterlash algoritmlaridan foydalanish
Olingan natijalarga ko‘ra xususiyatlarni o‘zgartirilganda so‘zlovchilarni ajratish masalasida
K-means hamda Agglomerativ klasterlash usullari deyarli yaqin natijalar qayd etmoqda.
Ma’lumotlar to‘plami sifatida dialog ko‘rinishida hosil qilingan audio signallar va ularga tegishli
annotatsiyalar asosida ishlab chiqildi. Ishlab chiqilgan ma’lumotlar to‘plamida 30000 mingdan ortiq
kichik suhbatlar bor. Har bir suhbat uzunligi turlicha 3s-20s bo‘lib unda 2 tadan 4 tagacha
so‘zlovchilarning nutq yozuvlari mavjud.
1-jadval. So‘zlovchining ajratish jarayonlarining baholash jadvali
Klasterlash
Model
DER
JI
usuli
K-means
MFCC,X-vector
25.61
89.14
Spectral
26.65
88.13
Agglomerativ
24.65
90.15
DBSCAN
27.65
87.23
20.48
90.17
24.01
89.22
e
K-means
MFCC+Log Mel+PLP,X-vector
Spectral
63
Agglomerativ
21.65
92.12
DBSCAN
24.65
88.53
20.01
90.84
23.12
90.02
Agglomerativ
19.45
92.45
DBSCAN
24.01
89.14
e
K-means
Spectral
MFCC+Log Mel, ECAPATDNN
e
Xulosa
Xulosa qilib aytganda, so‘zlovchilarni ajratish bu audio tahlili va ovoz tanish sohasida muhim
rol o‘ynaydigan murakkab jarayondir. Ushbu jarayon avvalo VAD modeli yordamida audioni
alohida nutq segmentlariga ajratishdan boshlanadi. Segmentatsiyadan so‘ng har bir segment uchun
o‘ziga xos so‘zlovchilarni xususiyatlar vektorlari ajratib olinadi, bu esa har bir so‘zlovchining
ovoziga xos xususiyatlarni ifodalaydi. Keyin spektral klasterlash orqali ushbu segmentlar o‘zaro
o‘xshashlik darajasiga qarab guruhlanadi, shu tariqa individual so‘zlovchilar aniqlanadi.
So‘zlovchilarni ajratish tizimini aniq baholash uchun u yerda mavjud bo‘lgan ma’lumotlar to‘plami
bilan taqqoslanadi, odatda bu baholash DER kabi metrikalar yordamida amalga oshiriladi. DER
ning pastroq qiymati ajratish jarayonining aniqroq ekanligini bildiradi. Ushbu jarayon turli
sohalarda, masalan, matnli transkripsiya xizmatlari yoki ovoz bilan boshqariladigan yordamchilarda
qo‘llaniladi, chunki spikerlarni ajratish va tanish juda muhimdir. So‘zlovchilarni ajratish bo‘yicha
olib borilayotgan uzluksiz tadqiqot va rivojlanishlar ushbu texnologiyaning imkoniyatlarini
kengaytirib, zamonaviy ovozga asoslangan tizimlarning ajralmas qismiga aylantirmoqda.
Olib borilgan tadqiqot ishida eng past DER (19.45) va eng yuqori JI (92.45) natijalari
MFCC+Log Mel va ECAPA-TDNN kombinatsiyasida AHC usuli ishlatilganda kuzatildi. Bu shuni
anglatadiki, ECAPA-TDNN modeli kengroq akustik xususiyatlarni hisobga olib, optimal so‘zlovchi
xususiyat vektorlarini hosil qilishda samarali ishlaydi.
Foydalanilgan adabiyotlar
1. K. Shukurov, T. Boburkhon and U. Khasanov, “Implementation of speech processing
algorithms based on Singular Value Decomposition and Hidden Markov Model,” 2021
International Conference on Information Science and Communications Technologies (ICISCT),
Tashkent, Uzbekistan, 2021, pp. 01-03, doi: 10.1109/ICISCT52966.2021.9670357.
2. S. Kamoliddin Elbobo ugli, K. Shokhrukhmirzo Imomali ugli and K. Umidjon Komiljon ugli,
“Uzbek speech commands recognition and implementation based on HMM,” 2020 IEEE 14th
International Conference on Application of Information and Communication Technologies
(AICT), Tashkent, Uzbekistan, 2020, pp. 1-6, doi: 10.1109/AICT50176.2020.9368591.
64
Shukurov, Kamoliddin. “Analysis of algorithms and implementation of real time speaker
identification system.” Bulletin of TUIT: Management and Communication Technologies 4.4
(2021): 2.
4. Dehak, N., Kenny, P. J., Dehak, R., Dumouchel, P., & Ouellet, P. (2011). Front-end factor
analysis for speaker verification. IEEE Transactions on Audio, Speech, and Language
Processing, 19(4), 788-798. https://doi.org/10.1109/TASL.2010.2064307
5. Snyder, D., Garcia-Romero, D., Sell, G., Povey, D., & Khudanpur, S. (2018). X-vectors:
Robust DNN embeddings for speaker recognition. Proceedings of the IEEE International
Conference on Acoustics, Speech, and Signal Processing (ICASSP), 5329-5333.
https://doi.org/10.1109/ICASSP.2018.8461375
6. Bredin, H., Yin, R., Coria, J. M., Gelly, G., Korshunov, P., Lavechin, M., Fustes, D., Titeux,
H., Bouaziz, W., & Gill, M.-P. (2020). Pyannote.audio: Neural building blocks for speaker
diarization. ICASSP 2020 - IEEE International Conference on Acoustics, Speech and Signal
Processing, 7124-7128. https://doi.org/10.1109/ICASSP40776.2020.9052942
7. Tawara, N., Delcroix, M., Ando, A., & Ogawa, A. (2024). NTT speaker diarization system for
CHiME-7: Multi-domain, multi-microphone end-to-end and vector clustering diarization.
ICASSP 2024 - IEEE International Conference on Acoustics, Speech and Signal Processing.
https://doi.org/10.1109/ICASSP48485.2024.10447817
8. Wang, Y., Xue, K., & Li, P. (2024). Active learning based constrained clustering for speaker
diarization. IEEE Transactions on Audio, Speech, and Language Processing.
9. Li, H., Ma, X., & Liu, Y. (2023). Clustering driven multi-hop graph attention network for
speaker diarization. IEEE Transactions on Neural Networks and Learning Systems.
10. K. Shukurov, U. Xasanov (2025). Faol nutq segmentlarini aniqlash: VAD texnologiyalari
tahlili. “Kompyuter lingvistikasi: muammo va yechimlar” mavzusidagi xalqaro miqyosdagi
ilmiy-amaliy konferensiya.
11. K. Shukurov, U. Berdanov, U. Khasanov, S. Kholdorov and B. Turaev, "The role of adaptive
filters in the recognition of speech commands," 2021 International Conference on Information
Science and Communications Technologies (ICISCT), Tashkent, Uzbekistan, 2021, pp. 1-4,
doi: 10.1109/ICISCT52966.2021.9670084.
12. K.E. SHukurov, U.K. Xasanov, Sh.A. Javliyev (2024). Nutq signallarini xususiyatlarini ajratib
olishda parallel qayta ishlashning ahamiyati. “Scientific foundations of raising the use of
information texhnologies to a new level and modern problems of automation” III –
international scientific conference. November 20, 2024.
13. Zhang, C., Wang, Q., & Zhang, Y. (2024). A cluster purification algorithm for speaker
diarization system. Proceedings of the IEEE International Conference on Acoustics, Speech,
and Signal Processing (ICASSP).
14. Garcia-Romero, D., Villalba, J., & Povey, D. (2023). Analysis of clustering algorithms for
speaker diarization using LSTM. Proceedings of the IEEE International Conference on
Acoustics, Speech, and Signal Processing (ICASSP).
15. Kunešová, M., Meignier, S., & Barras, C. (2022). End-to-end speaker diarization as postprocessing. Interspeech 2022, 4821-4825.
3.
65
16. Wang, Q., Downey, C., Wan, L., Mansfield, P., & Moreno, I. L. (2018). Speaker diarization
with LSTM. Proceedings of the IEEE International Conference on Acoustics, Speech, and
Signal Processing (ICASSP), 5239-5243. https://doi.org/10.1109/ICASSP.2018.8461714
66
O‘ZBEK MATNLARI SENTIMENT TAHLIL TIZIMI: ARXITEKTURA VA
LOYIHALASH
Botir Elov; Abdulla Abdullayev
Texnika fanlari falsafa doktori, dotsent. ToshDO’TAU
Annotatsiya. Ushbu maqolada o‘zbek tilidagi matnlarni avtomatik sentiment tahlil qilishga
mo‘ljallangan axborot tizimining arxitekturasi va uning komponentlarini loyihalash bosqichlari
tahlil qilinadi. Tizim uch qavatli model (frontend, backend, ma’lumotlar bazasi) asosida ishlab
chiqilgan bo‘lib, Flask asosidagi REST API orqali foydalanuvchi interfeysi bilan
integratsiyalashgan. Backend qismida transformer modellariga asoslangan chuqur o‘rganish
algoritmlari (masalan, XLM-RoBERTa) orqali sentiment klassifikatsiyasi amalga oshiriladi.
Ma’lumotlar bazasi sifatida SQLServer tanlangan bo‘lib, tizim docker konteyner orqali
joylashtirilgan. Shuningdek, maqolada tizimning UML diagrammalari, modul tuzilmasi, ishlov
berish oqimi va foydalanuvchi interfeysi dizayni yoritilgan. Ilmiy va amaliy natijalar asosida ishlab
chiqilgan arxitektura real vaqtli tahlil uchun barqaror va masshtablanuvchan yechim sifatida
baholanadi.
Kalit so‘zlar: sentiment tahlil, tizim arxitekturasi, REST API, Flask, React, SQLServer,
Transformer modeli, SDLC, Docker, XLM-RoBERTa, UML.
Kirish
Hozirgi raqamli davrda matnlardagi fikr-mulohazalarni avtomatik ravishda tahlil qilish
(sentiment tahlil) – axborot texnologiyalari va sun’iy intellekt sohalarining muhim yo‘nalishiga
aylandi. Sentiment tahlil yordamida foydalanuvchilarning matnlarda ifodalagan kayfiyati va
munosabatini (ijobiy, salbiy yoki betaraf) aniqlash imkoniyati paydo bo‘lib, bu turli sohalarda,
ijtimoiy tarmoqlar tahlilidan tortib, mijozlar fikrlarini o‘rganish va hatto siyosiy kayfiyatni
bashoratlashgacha keng qo‘llanmoqda. So‘nggi yillarda sun’iy intellekt va mashinali o‘qitish
usullarining jadal rivojlanishi natijasida sentiment tahlil texnologiyasi yanada takomillashib,
ko‘plab tillar uchun yuqori samaradorlikka erishilmoqda. Biroq, o‘zbek tilidagi matnlarni avtomatik
baholash masalasi hali to‘liq yechimini topmagan va dolzarb muammo bo‘lib qolmoqda. O‘zbek
tilining boy morfologik qurilishi, so‘z yasalishining affiksal tabiati va gap tuzilishidagi o‘ziga
xosliklar sentiment tahlilni qiyinlashtiradi. Masalan, bir so‘zning turli grammatik shakllari va
ma’nodagi o‘zgarishlari uning hissiy bo‘yoğini aniqlashni murakkablashtiradi. Natijada, jahon
miqyosida keng qo‘llanilayotgan ba’zi metodlar o‘zbek tilida kutilgan darajada samarali natija
bermasligi mumkin.
Shunga qaramay, o‘zbek tili uchun ham sentiment tahlil sohasida dastlabki ilmiy izlanishlar
boshlangan. Xususan, ayrim tadqiqotlarda ijtimoiy tarmoqlar va sharhlar korpusi yig‘ilib, mashinali
o‘qitish modellari yordamida yuqori aniqlikka erishilganligi xabar berilgan [1]. Bu yutuqlar o‘zbek
tilida sentiment tahlil usullarini qo‘llash mumkinligini ko‘rsatadi. Biroq, mavjud ishlanmalar asosan
algoritmik yechimlar va dastlabki prototiplar darajasida bo‘lib, to‘liq funksional axborot tizimi
shaklida joriy etilmagan. Hali o‘zbek tilida sentiment tahlilini amalga oshiruvchi, foydalanuvchiga
qulay interfeysga ega va yuqori samarali komponentlardan tashkil topgan integrallashgan tizimlar
kam uchraydi.
67
Ushbu maqolada aynan o‘zbek matnlari uchun sentiment tahlil axborot tizimini ishlab
chiqishga e’tibor qaratiladi. Tadqiqotning maqsadi – o‘zbek tilidagi matnlardan foydalanuvchi
fikrlarini avtomatik tahlil qilib, ularning hissiy rangini aniqlovchi tizim arxitekturasini loyihalash va
prototipini yaratishdir. Tizimni loyihalashda uning ko‘p moduldan iborat arxitekturasi, ma’lumotlar
oqimini boshqaruvchi biznes jarayonlar modeli, dasturiy ta’minot kod tuzilmasi hamda
foydalanuvchi uchun qulay interfeys elementlarini puxta o‘ylash talab etiladi. Maqolada aynan shu
jihatlar tizimning umumiy arxitekturasi va qatlamlari, UML kabi modellashtirish vositasi
yordamida loyihalash metodologiyasi, dasturiy yechimlar tanlovi, ishlab chiqish bosqichlari va
yakuniy foydalanuvchi interfeysi ilmiy asosda yoritib beriladi. O‘zbekistonda bunday tizimni
yaratish masalasi dolzarb bo‘lib, u milliy axborot resurslaridan samarali foydalanish, davlat va
jamiyat ehtiyojlariga moslashtirilgan til texnologiyalarini rivojlantirishda muhim ahamiyat kasb
etadi.
Adabiyotlar sharhi
Dunyo miqyosida sentiment tahlil tizimlarining arxitekturasi odatda ko‘p qatlamli va modular
tuzilishga ega bo‘lib, u bosqichma-bosqich matnni qayta ishlash jarayonini aks ettiradi. Ilmiy
manbalarda sentiment tahlil tizimlari odatda ma’lumotni kiritish, matnni oldindan qayta ishlash,
klassifikatsiya (model) va natijalarni chiqish kabi asosiy komponentlardan tashkil topishi
ta’kidlangan [2]. Xususan, Zamoto kabi restoran sharhlarida sentiment tahlil qilish bo‘yicha
yaratilgan integrallashgan tizim misolida ikki asosiy qatlamli arxitektura taklif qilingan: birinchisi,
matnlarni tahlil qiluvchi NLP pipeline (oldindan qayta ishlash – tokenizatsiya, tozalash,
vektorlashtirish va klassifikatsiya); ikkinchisi esa foydalanuvchilar bilan o‘zaro aloqada bo‘ladigan
veb-ilova qatlami. Bunday yondashuvda tahlil qilish moduli alohida komponent sifatida offline
tarzda ishlaydi va o‘z natijalarini saqlaydi, veb-qism esa ushbu natijalarni foydalanuvchiga taqdim
etadi va real vaqt rejimida yangi kiritilayotgan matnlarni ham yengil tahlil qilish imkonini beradi.
Bunday modullik tamoyili tizimni kengaytirish va yangilashni yengillashtiradi va kelgusida matn
hajmi oshsa yoki klassifikatsiya usullarini chuqur o‘rganishga (deep learning) almashtirish zarurati
tug‘ilsa, arxitektura shunga mos holda o‘zgartirilishi mumkin.
O‘zbekistonda ham axborot tizimlarini loyihalashda shunga o‘xshash arxitektura
tamoyillariga rioya etilgan ishlar mavjud. Masalan, o‘zbek tilida gaplar semantik tahliliga doir
yaratilgan tizim Django veb-frameworki asosida MVT (Model-View-Template) arxitekturasida
ishlab chiqilgan [3,4]. Tadqiqotchilar dastlab tizim uchun konseptual model va biznes jarayonlarini
ishlab chiqqan holda, keyinchalik Django platformasi imkoniyatlaridan foydalangan holda,
ma’lumotlar modeli (Model), amalga oshirish qismi (View) va taqdimot qatlami (Template)ni
ajratgan holda dasturiy realizatsiyani amalga oshirishgan [5]. Natijada yaratilgan prototip tizim
polifunksional so‘zlarni aniqlash masalasini hal qilishga mo‘ljallangan bo‘lsa-da, uning
arxitekturaviy yechimi boshqa sentiment tahlil tizimlariga ham o‘xshash tarzda ko‘p qatlamli
tuzilgan. Umuman, tajriba shuni ko‘rsatadiki, uch qavatli arxitektura (ma’lumotlar bazasi, biznes
mantiq va prezentatsiya qatlamlari) yoki maxsus holatlarda ikki asosiy modulga bo‘lingan
arxitektura (tahlil moduli + interfeys moduli) sentiment tahlil tizimlarida samarali qo‘llanishi
mumkin [6]. Bu modulli yondashuv yangi funksiyalar qo‘shish, algoritmlarni takomillashtirish yoki
tizimni kengaytirishda katta qulaylik yaratadi.
Keng ko‘lamli dasturiy tizimlarni ishlab chiqishda Unified Modeling Language (UML) va
Business Process Model and Notation (BPMN) kabi standartlashtirilgan modellashtirish
68
vositalaridan foydalanish jahon tajribasida keng tarqalgan. UML dasturiy ta’minot arxitekturasi va
komponentlari o‘rtasidagi munosabatlarni grafik shaklda tasvirlashga xizmat qilsa, BPMN biznes
jarayonlarning oqimlarini tartibli ravishda aks ettiradi. Sentiment tahlil axborot tizimi singari
murakkab tuzilishga ega loyihalarni bosqichma-bosqich loyihalashda ushbu vositalar katta yordam
beradi [7]. Xususan, UML ning use-case diagrammalari, klass diagrammalari va faoliyat
diagrammalari tizim qanday ishlashini, foydalanuvchi va dastur o‘rtasidagi aloqalarni va dasturiy
modul va sinflarning tarkibini ko‘rsatib beradi. BPMN esa foydalanuvchi so‘rovini qayta ishlashdan
boshlab natijani taqdim etishgacha bo‘lgan ish jarayonini ketma-ket bosqichlar sifatida ifodalaydi.
Ilmiy adabiyotlarda o‘zbek tilidagi matnlarni tahlil qiluvchi tizimlar loyihasida aynan BPMN
modellashtirishidan foydalanilgan misollar ham uchraydi. Masalan, polifunksional so‘zlarni
aniqlashga doir yaratilgan axborot tizimi loyihasida tadqiqotchilar tizimning har bir funksional
jarayonini tahlil qilib, ularni BPMN notatsiyasida alohida biznes jarayon modellari shaklida
ifodalashgan. Natijada, tizimda yuz beruvchi jarayonlar (masalan, matnni kiritish, uni qismlarga
ajratish, so‘z turkumini aniqlash, natijani bazaga saqlash va hokazo) alohida sxemalar ko‘rinishida
tasvirlanib, ularni oson tushunish va tahlil qilish imkoni yaratilgan [8]. Bundan tashqari, loyihalash
jarayonida BPMN diagrammalari orqali turli modullar o‘rtasidagi o‘zaro aloqa va ma’lumotlar
oqimi aniq belgilab olinganligi kelgusida dasturlash bosqichida xatoliklarni kamaytirishga xizmat
qilgan [9]. Xulosa qilib aytganda, UML va BPMN metodologiyalari sentiment tahlil tizimini
loyihalashda ham muhim yordamchi vositalar bo‘lib, ular yordamida tizimning konseptual
tuzilmasini boshidanoq to‘g‘ri rejalashtirish va manfaatdor tomonlar (dasturchilar, buyurtmachilar)
bilan samarali aloqa o‘rnatish mumkin.
Tizim arxitekturasi (modul va qatlamlar)
Tizimning umumiy arxitekturasi uch qavatli modelga asoslanadi: tashqi (frontend) qatlami,
ilova (backend) qatlami va ma’lumotlar qatlami [10]. Frontend qatlami foydalanuvchi uchun
grafik interfeys (React asosida veb-ilova)ni ta’minlaydi va brauzerda ishlaydi. Backend qatlami esa
Flask yordamida yaratilgan REST API xizmatidan iborat bo‘lib, biznes mantiqini bajaradi va
foydalanuvchidan kelgan so‘rovlarni qayta ishlaydi [11]. Ma’lumotlar qatlami sifatida
SQLServer2022 ma’lumotlar bazasi qo‘llanilib, tahlil qilingan matnlar va ularning natijalari shu
yerda saqlanadi. Shu qatlamlar o‘rtasida integratsiya xizmati (ichki API so‘rovlar yoki xabarlar
tizimi) orqali o‘zaro ma’lumot almashinuvi yo‘lga qo‘yiladi. ML modeli alohida modul sifatida
backend ichiga kiritilgan bo‘lib, matnlarni baholash uchun chaqiriladi. Bunday arxitekturaviy
ajratish tizimning har bir qatlami mustaqil ishlab chiqilishi va kerak bo‘lsa alohida o‘lchamda
masshtablanishini ta’minlaydi [12]. Frontend va backend o‘rtasidagi aloqalar HTTP(s) protokoli
orqali JSON formatdagi so‘rovlar va javoblar shaklida tashkil etiladi. Quyidagi 1-rasmda o‘zbek
matnlari sentiment tahlil tizim komponentlari va ularning o‘zaro aloqasi aks etgan arxitektura
keltirilgan.
Bu arxitekturada foydalanuvchi brauzer orqali tizimga murojaat qiladi va frontend
komponenti orqali matnlarni kiritadi. Frontend UI komponenti kiritilgan ma’lumotni REST API
orqali backend serveriga uzatadi. Backend esa kelgan so‘rovni qabul qilib, avvalo matnni oldindan
tayyorlash (preprocessing) moduliga yuboradi va bu modul matndagi keraksiz belgilarni tozalash,
normalizatsiya va tokenizatsiya kabi ishlarni bajaradi. Tozalangan matn so‘ng ML modeliga
beriladi, u matnning sentymentini aniqlaydi. Natijada hosil bo‘lgan ijobiy, salbiy yoki neytral baho
qiymati backend tomonidan qayta ishlanadi va ma’lumotlar bazasida natijalar saqlanadi.
69
Integratsiya xizmati agar tizim boshqa tashqi servislar (masalan, ijtimoiy tarmoqlardan ma’lumot
olish yoki messenjer botiga ulanish) bilan bog‘lanishi zarur bo‘lsa, buni amalga oshiradi. Matnlarni
Twitter API orqali yig‘ish moduli yoki natijalarni chat-bot orqali yuborish xizmati shunday
integratsion komponent sifatida qo‘shilishi mumkin. Yakunda backend olingan sentiment natijasini
frontendga JSON javob ko‘rinishida qaytaradi. Frontend esa foydalanuvchiga natijani qulay
ko‘rinishda, matnning umumiy sentimenti va ehtimoliy baholari bilan ekranga chiqaradi.
Foydalanuvchi
(Browser)
Natijani
ko`rsatish
HTTP(s)
so rovi
Frontend
(React UI)
API natijasi
(JSON)
REST API
chaqiruvi
Backend API
(Flask)
Matnni
baholash
Ma`lumotlarni
olish
Sentiment
tahlil natijasi
Natijalarni
saqlash
Ma`lumotlar bazasi
(SQL Server)
ML modeli
(RoBERTa)
1-rasm. O‘zbek matnlari sentiment tahlil tizim arxitekturasi.
Tizimni loyihalash jarayonida Unified Modeling Language (UML) vositalari yordamida
uning tarkibi va xatti-harakatlari modellashtiriladi. UML – bu dasturiy tizimlar arxitekturasini
vizuallashtirish, belgilash, qurish va hujjatlashtirish uchun xizmat qiluvchi standartarashgan grafik
modellash tili hisoblanadi. Ushbu tizim uchun bir nechta asosiy diagrammalar tuziladi:
1) Foydalanish holatlari diagrammasi (Use Case diagram);
2) Oqim diagrammasi (Flowchart yoki Activity diagram);
3) Komponentlar diagrammasi (Component diagram).
Foydalanish holatlari diagrammasi tizimdan foydalanuvchi va tizimning o‘zaro aloqalarini
ssenariy shaklida aks ettiradi. Masalan, foydalanuvchi uchun “Matn kiritish”, “Tahlil natijasini
ko‘rish” kabi use-case’lar shakllantirilib, ular ushbu diagrammada foydalanuvchi aktori va tegishli
use-case oval shakllari bilan ko‘rsatiladi. Use-case diagramma foydalanuvchining tizim orqali
bajarishi mumkin bo‘lgan barcha asosiy funksional holatlarni umumiy ko‘rinishda beradi.
Aktivlik (oqim) diagrammasi esa sentiment tahlil jarayonining bosqichma-bosqich oqimini
ifodalaydi. Bunda ma’lumot oqimi va amallar ketma-ketligi bloklar va o‘qlar yordamida chizilib,
masalan: “Matnni yuklash → Oldindan qayta ishlash → ML modelda baholash → Natijani
chiqarish” kabi ketma-ketlik shaklida tasvirlanadi. Oqim diagrammasi bosqichlar orasidagi shartlar
va tarmoqlanishlarni ham ko‘rsatib, tizimning ichki ishlash jarayonini yaxlit tushunishga yordam
beradi.
70
Ma’lumotlar oqimi diagrammasi vositasida matnlar qanday manbadan olinishi, qanday qayta
ishlanib, natijalar qayerga yuborilishi ketma-ketlikda tasvirlanadi: “Foydalanuvchi sharhini
yig‘ish → Polaritetini aniqlash → Natijani bazaga yozish → Vizualizatsiya” oqimi.
Tadqiqotlarda keltirilishicha, bunday diagramma sentiment tahlil jarayonining bosqichlarini aniq
tushunishga yordam beradi.
Komponentlar diagrammasi tizimning moddiy tuzilishini, ya’ni dasturiy modullar va ularning
bog‘lanishlarini ko‘rsatadi. Bizning holatda komponentlar diagrammasida quyidagilar bo‘ladi:
Foydalanuvchi interfeysi moduli (frontend), REST API moduli (backend), ML model moduli,
ma’lumotlar bazasi va Integratsiya xizmati. Ushbu diagrammada har bir modul alohida blok
bilan ifodalanib, ular orasidagi bog‘lanishlar frontend → backend, backend → ML model,
backend → MB o‘qlar bilan ko‘rsatiladi. Komponentlar diagrammasi tizim arxitekturasi haqida
yuqori darajadagi tasavvur berib, dasturiy ta’minot qismlari qanday tashkil etilganini
hujjatlashtiradi.
O‘zbek matnlari sentiment tahlil tizimi ishlab chiqish bosqichlari
Dasturiy ta’minotni ishlab chiqishning hayotiy sikli (Software Development Life Cycle,
SDLC) – bu dasturiy mahsulotni konsepsiyadan to to‘liq ishga tushirishgacha bo‘lgan bosqichmabosqich rivojlantirish jarayonidir. SDLC dasturiy ta’minot sifati va ishlab chiqish samaradorligini
oshirishga qaratilgan bo‘lib, u orqali loyiha bosqichlari aniq belgilab chiqiladi. Natijada, yuqori
sifatli va foydalanuvchi talablariga javob beruvchi mahsulotni belgilangan muddat va byudjet
doirasida yaratish imkoniyati ortadi. SDLC, xuddi binoni qurishdagi me’moriy reja singari,
dasturiy loyihani oldindan puxta rejalash va boshqarish imkonini beradi. Bu jarayon axborot
tizimlari, tabiiy tilni qayta ishlash (NLP) kabi murakkab loyihalarda ayniqsa muhim. NLP tizimini
ishlab chiqishda dastlab til korpusini tayyorlash va talablarni aniqlash, keyin esa model
arxitekturasini loyihalash va bosqichma-bosqich sinovdan o‘tkazish zarur bo‘ladi. SDLC 7 asosiy
bosqichdan iborat:
1) Rejalashtirish (Planning)
2) Talablarni tahlil qilish (Analysis)
3) Loyihalash (Design)
4) Dasturlash (Development)
5) Sinovdan o‘tkazish (Testing)
6) Joriy etish (Deployment)
7) Texnik qo‘llab-quvvatlash (Maintenance)
Quyida ushbu bosqichlarning mazmun-mohiyati va ularning axborot tizimlarini yaratishdagi
o‘rni bosqichma-bosqich tahlil qilinadi.
Akademik nuqtai nazardan, SDLC – bu tizimli metodologiya bo‘lib, har bir bosqichda
bajariladigan jarayonlar va yaratiladigan hujjatlar jamlanmasini o‘z ichiga oladi.
Har qanday axborot tizimi kabi, sentiment tahlil tizimini yaratish ham bir necha bosqichli
jarayondan iborat bo‘lib, har bosqichda turli vazifalar hal etiladi. Jahon amaliyotida keng
qo‘llaniladigan dasturiy ta’minotni ishlab chiqish hayotiy davri modeliga ko‘ra, tizim yaratish
jarayoni quyidagi asosiy bosqichlarni o‘z ichiga oladi:
71
Talablarni
tahlil qilish
Foydalanuvchi
testlari
Sinov keyslari (test cases)
Validatsiya
Tizimli
testlar
Sinov keyslari
Validatsiya
Loyihalash
Arxitekturani
loyihalash
Integratsiya
testi
Sinov keyslari
Validatsiya
Tizim
modullarini
ishlab chiqish
Sinov keyslari
Validatsiya
Funksional
testlar
Verifikatsiya
Validatsiya
Unit
testlari
Kod yozish
Joriy etish
(Implementatsiya)
2-rasm. O‘zbek matnlari sentiment tahlil tizimi ishlab chiqish bosqichlari
1. Rejalashtirish bosqichi. Rejalashtirish – SDLC ning birinchi va eng muhim bosqichi
bo‘lib, loyiha muvaffaqiyatining poydevorini yaratadi. Ushbu bosqichda bajariladigan asosiy ishlar:
− Muammoni aniqlash va maqsadni belgilash: Dasturiy ta’minot yechmoqchi bo‘lgan
asosiy muammo va undan kutilayotgan foyda aniqlanadi. Sentiment tahlil tizimi yaratishdan
maqsad – matnlardagi sentiment hissiyot skori (bahosi)ni aniqlash.
− Loyiha doirasini va cheklovlarini belgilash: Kelajakdagi dasturiy ta’minotning
funksional imkoniyatlari, ko‘lam (scope) va chegaralari belgilanadi. Bu jarayonda loyiha hajmi va
murakkabligi baholanadi.
− Texnik va iqtisodiy imkoniyatlarni o‘rganish (feasibility study): Loyihani amalga
oshirish uchun zarur texnologiyalar va resurslar, dasturchilar jamoasi tajribasi va byudjet taxminan
baholanadi. Shuningdek, loyiha oldidagi xavf-xatarlar (risklar) ro‘yxati tuziladi va ularning ehtimoli
hamda ta’siri tahlil qilinadi.
− Ish rejasi va jadval tuzish: Loyiha bosqichlari bo‘yicha ish reja (projekt rejasi) hamda
taxminiy muddatlar grafigi tuziladi. Unda muhim bosqichiy vazifalar va milestonelar belgilanadi.
Bu reja loyiha davomida bajarilayotgan ishlarni nazorat qilish imkonini beradi.
Rejalashtirish bosqichining yakuniy natijasi sifatida odatda loyiha konseptsiyasi (Project
Charter) va Dasturiy talablarlarni aniqlash hujjati (Software Requirement Specification,
SRS) ishlab chiqiladi. Shu bilan birga dastlabki iqtisodiy modellash amalga oshiriladi. COCOMO
72
(Constructive Cost Model) modeli yordamida dastur hajmi va kod qatorlari soniga qarab mehnat
hajmi (Effort E) baholanadi. Bunday hisob-kitoblar rejalashtirish bosqichida loyiha narxi va
davomiyligini prognoz qilish, byudjet ajratish hamda resurslarni rejalashtirishda qo‘l keladi.
2. Talablarni tahlil qilish bosqichi. Talablarni yig‘ish va tahlil qilish – dasturiy mahsulotdan
foydalanuvchilar va buyurtmachi kutayotgan funksional va funksional bo`lmagan talablarni
aniqlash bosqichidir. Bu bosqichda, sentiment tahlil tizimi qaysi turdagi matnlar bilan ishlashi, til
modeli qamrovi, natijalarni ko‘rinish shakli kabi jihatlar belgilanadi. Ushbu bosqichda loyiha
jamoasi quyidagilarni amalga oshiradi:
− Manfaatdor tomonlar bilan muloqot: Tizimdan foydalanuvchilari, buyurtmachilar, tizim
analitiklari va boshqa manfaatdor shaxslar (stakeholders) bilan intervyu, so‘rovnomalar va fokusguruhlar orqali aloqa o‘rnatiladi. Masalan, NLP asosida ishlovchi matnni tahlil qilish tizimi
yaratayotgan bo‘lsak, lingvist-mutaxassislar va potensial foydalanuvchilarning istaklari o‘rganiladi.
− Talablarni hujjatlashtirish: Olingan barcha ehtiyoj va istaklar tahlil qilinib, zarur va
ikkinchi darajali funksiyalar ajratiladi. Bu jarayonda “zarur” (must-have) va “yaxshi bo‘lardi”
(nice-to-have) funksiyalar farqlanadi. Foydalanuvchi talablarining to‘liq ro‘yxati va ularning
ustuvorlik darajasi aniqlanadi.
− Talablar spetsifikatsiyasi (SRS)ni tuzish: Barcha yig‘ilgan talablar asosida Talablar
spetsifikatsiyasi hujjati ishlab chiqiladi. Ushbu hujjatda dasturiy ta’minotning maqsadi, vazifalari,
funksional imkoniyatlari, ishlash unumdorligi, xavfsizlik talableri, interfeys talablarigacha batafsil
bayon etiladi. Talablar hujjati loyiha jamoasi uchun kelgusida yo‘l xaritasi bo‘lib xizmat qiladi va
loyiha miqyosini aniq belgilaydi.
− Talablarni verifikatsiya va tasdiqlash: Yozib chiqilgan talablar buyurtmachi va
foydalanuvchilar tomonidan qayta ko‘rib chiqilib, tasdiqlanadi. Bu bosqich talablarning to‘liq va
to‘g‘ri tushunilganini tekshirish uchun muhim, aks holda keyingi bosqichlarda noaniqliklar yuzaga
kelishi mumkin.
Talablarni tahlil qilish bosqichining muvaffaqiyati butun loyiha muvaffaqiyatini belgilaydi.
To‘g‘ri va aniq aniqlangan talablar natijasida yaratilgan dasturiy mahsulot foydalanuvchilarning
ehtiyojlarini qondiradi yoki hatto ularning kutilmalaridan oshadi. Aksincha, noto‘g‘ri yoki noaniq
talablar loyiha davomida jiddiy muammolarga va qayta ishlashga olib kelishi mumkin. Shu sababli,
bu bosqichda manbalarga boy tahlil va muvofiqlashtirilgan muloqot katta ahamiyatga ega.
3. Loyihalash bosqichi. Loyihalash bosqichida dasturiy tizimning umumiy tuzilishi va
yechimning “qurilishi” rejalashtiriladi. Agar talablar bosqichida nima qilish kerakligi belgilangan
bo‘lsa, loyihalash bosqichida qanday qilish kerakligi aniqlashtiriladi. Belgilangan talablar asosida
tizimning arxitekturasi, ma’lumotlar bazasi strukturalari, modullar va ularning o‘zaro aloqasi
loyihalashtiriladi. Bu bosqichda yuqorida ta’kidlanganidek UML diagrammalari, konseptual
sxemalar tuziladi va kelajakdagi dasturiy strukturaning “qurilishi” rejalashtiriladi. Bu bosqichda
quyidagi masalalar hal etiladi:
− Arxitektura tuzilmasi: Tizimning yuqori darajadagi arxitekturasi tuziladi. Tizimning
asosiy komponentlar (modullar)i va ularning o‘zaro aloqasi aniqlanadi. Masalan, veb-ilova uchun
“mijoz-server” arxitekturasi yoki NLP tizimi uchun modullar (matnni oldindan ishlov berish
moduli, ML modeli, foydalanuvchi interfeysi va h.k.) o‘rtasidagi bog‘liqliklar chizib chiqiladi.
− Ma’lumotlar bazasi va ma’lumotlar modeli tuzilmasi: Sentiment tahlil tizimi
ma’lumotlar tuzilmasi va obyektlar o‘rtasidagi bog‘lanishlar (ER-diagramma) loyihalashtiriladi. Bu
73
yerda muhim ma’lumot obyektlari va ularning atributlari, o‘zaro munosabatlari ko‘rsatiladi.
Shuningdek, ma’lumotlar oqimi diagrammalari (DFD) tuzilib, tizim ichida ma’lumotlar qanday
oqib o‘tishi tasvirlanadi.
− Interfeys dizayni va foydalanish qulayligi (UX/UI): Foydalanuvchi interfeysi
elementlari, navigatsiya sxemalari, dasturiy ta’minotning ko‘rinishi va funksional imkoniyatlarining
foydalanuvchi uchun qulayligi rejalashtiriladi. Masalan, veb-ilovaning sahifalari uchun wireframe
va mockuplar chiziladi, NLP tizimi uchun esa foydalanuvchidan matn kiritish va natijani ko‘rsatish
jarayonining soddaligi ta’minlanadi.
− Texnik yechimlar va integratsiya nuqtalarini aniqlash: Tizim qaysi dasturlash tilida
yozilishi, qanday kutubxona va freymvorklardan foydalanilishi, agar mavjud tizimlar bilan
integratsiya qilinishi lozim bo‘lsa, bunday bog‘lanish nuqtalari aniqlanadi. Masalan, kompyuter
lingvistikasi tizimida mavjud til resurslari (lug‘atlar, korpuslar) bilan ishlash uchun tegishli API’lar
belgilanadi.
Loyihalash bosqichining yakunida Dasturiy tuzilma hujjati (Software Design Document,
SDD) tayyorlanadi. Ushbu hujjatda tizim arxitekturasi, ma’lumotlar bazasi sxemasi, modul va
komponentlarning vazifalari, ularning o‘zaro aloqasi va interfeyslari batafsil bayon etiladi. Tuzilma
hujjati keyingi kod yozish bosqichida dasturchilar uchun yo‘l xaritasi vazifasini o‘taydi. Loyihalash
bosqichi – bu talablar bilan ijro (kodlash) o‘rtasidagi ko‘prikdir: to‘g‘ri loyihalangan tizim nafaqat
foydalanuvchi talablariga mos keladi, balki kelgusida oson kengaytiriladigan va xizmat ko‘rsatishga
qulay tizim bo‘lishini ham ta’minlaydi.
4. Kodlash (ishlab chiqish) bosqichi. Kodlash bosqichi (ba’zan ishlab chiqish bosqichi deb
ham yuritiladi) – bevosita dasturiy ta’minotni yaratish, ya’ni kod yozish jarayonidir. Ushbu
bosqichda dasturchilar jamoasi loyihalashda belgilab olingan reja va blueprintlarga amal qilgan
holda, tizim funksiyalarini dasturlashni boshlaydilar. Agar tizim murakkab bo‘lsa, ayrim qismi yoki
algoritmlarini matematik modellashtirish, prototip dasturlar yaratib sinab ko‘riladi. Ilmiy ishlarda,
xususan, o‘zbek tilida sentiment tahlil qilish tizimini yaratishda tadqiqotchilar avvalo matematik va
lingvistik modellarni ishlab chiqqan holda, ularning samaradorligini kichik tajriba dasturlari orqali
sinab ko‘rishgan. Bu bosqich kelgusida to‘liq tizimni ishlab chiqishda xatolarni barvaqt ko‘rib
chiqish va yechimini topishga imkon beradi. Bunda oldingi bosqichlarda ishlab chiqilgan loyiha
asosida alohida modullar (masalan, matnni tozalash, so‘zlarni belgilash, klassifikatsiya modeli,
natija chiqarish, foydalanuvchi interfeysi) alohida dasturlanadi va so‘ngra yagona tizimga
integratsiya qilinadi. Bir necha mahalliy loyiha va ilmiy ishlar tajribasida dasturlash uchun Python
tili va uning sun’iy intellekt kutubxonalari tanlangan, natijada prototip tizim tayyor bo‘lgach, u
Django veb-dasturi bilan integratsiya qilinadi. Kodlash bosqichining asosiy xususiyatlari:
− Standartga amal qilgan holda kod yozish: Dasturchilar oldindan kelishilgan kod yozish
standartlari (koding standartlari) va nomlash konvensiyalariga amal qilgan holda kod yozadilar. Bu
source kodning yagona uslubda bo‘lishini, turli jamoa a’zolari yozgan kodning o‘zaro mos va
tushunarli chiqishini ta’minlaydi. Masalan, barcha dasturchilar funksiyalar va o‘zgaruvchilarni
nomlashda bir xil konvensiyaga rioya qilishadi, kodning tuzilishi yakdil qoidalarga bo‘ysunadi.
− Modullar bo‘yicha ishlab chiqish: Katta dasturiy tizim bo‘limlarga (modullarga)
bo‘linib, har bir dasturchi yoki kichik guruh aniq bir modul ustida ishlaydi. Bu modul tamoyili
kodni tartibli va boshqariladigan holda yozishga yordam beradi.
74
− Versiya nazorati va integratsiya: Dasturchilar versiya nazorati tizimlari (masalan, Git)
orqali o‘zgarishlarni boshqarib boradilar. Har bir yozilgan kod bo‘lagi (commit) tizimga
integratsiya qilinadi va dasturiy ta’minotning ishchi talqini muntazam yangilanib boradi. Bu CI
(Continuous Integration) amaliyotiga mos keladi va jamoa kodni birlashtirib borar ekan,
integratsion muammolar erta bosqichda aniqlanadi.
− Kod tekshiruvi (Code Review): Jamoa ichida yozilgan kod o‘zaro tekshirib boriladi va
bir dasturchi yozgan kodni boshqa hamkasbi ko‘rib chiqadi, potensial xatolar, kamchiliklar yoki
yaxshilash imkoniyatlari yuzasidan fikr bildiradi. Bunday kod revyu jarayoni dasturiy ta’minot
sifatini oshiradi, xatolarni erta bosqichda bartaraf etish va eng yaxshi amaliyotlarni joriy etishga
xizmat qiladi.
− Ichki sinov va prototiplash: Kodlash jarayonida har bir modul yozilgach, dasturchilar
tomonidan dastlabki ichki testlar o‘tkaziladi. Ya’ni, modul asosiy funktsiyani bajarayotganbajarmayotganini tezkor tekshirish (unit-test) amalga oshiriladi. Shuningdek, agar loyiha prototiplar
orqali iterativ rivojlantirilayotgan bo‘lsa, kodlash bosqichida ishlab chiqilgan dastlabki prototip
foydalanuvchilarga yoki buyurtmachiga namoyish etib boriladi va bu feedback olib, kerak bo‘lsa,
dizayn yoki talablarni tezda o‘zgartirish imkonini beradi.
Kodlash bosqichi yakunida dasturiy ta’minotning ishlaydigan versiyasi (yoki minimal
ishchi mahsulot – Minimum Viable Product, MVP) hosil bo‘ladi. Bu hali to‘liq xatolardan xoli
bo‘lmasligi mumkin, ammo u oldingi bosqichlarda belgilangan funksional talablarning asosiy
qismini amalda bajarib turadi. Axborot tizimlari va NLP loyihalarida kodlash bosqichi ayniqsa
ijodiy jarayon bo‘lib, algoritmlar va modellarning bevosita hayotga tatbiq etilishidir. Masalan, NLP
tizimi uchun bu bosqichda matnni tozalash va pars qilish algoritmlari, mashina o‘rganish modeli
arxitekturasi kodda yoziladi, va dastlabki natijalar olinadi. Kodlash bosqichi – bu oldingi
bosqichlardagi reja va loyihalarning “jonlanishi”, ya’ni real dasturiy mahsulotga aylanish
jarayonidir.
5. Sinovdan o‘tkazish bosqichi. Sinov bosqichi – yozilgan dasturiy ta’minotni sifat
nazoratidan o‘tkazish, xatolarni aniqlash va tuzatish bosqichidir. Bu bosqichni ishlab chiqarish
tarmoqli zavodidagi mahsulot sifat tekshiruvi bilan qiyoslash mumkin. Tizimning barcha
komponentlari tayyor bo‘lgach, ularni funksional va yuklama bo‘yicha sinovdan o‘tkazish bosqichi
keladi. Bu yerda tizimga turli test ma’lumotlar kiritilib, uning to‘g‘ri ishlashiga ishonch hosil
qilinadi; xatolar aniqlansa, tegishli tuzatishlar kiritiladi. Sentiment tahlil tizimi uchun sinov
bosqichida har xil ko‘rinishdagi matnlar (ijobiy, salbiy, neytral, turli uzunlik va uslubdagi) sinab
ko‘riladi va modelning aniqlik, to‘g‘rilik kabi ko‘rsatkichlari baholanadi. Ayrim manbalarda o‘zbek
tilidagi model sinovlari natijasida 92–93% aniqlikka erishilgani qayd etilgan bo‘lib, sinovlar
jarayonida aniqlangan zaif joylar asosida modelga tuzatishlar kiritilgan. Sinov bosqichida quyidagi
jarayonlar amalga oshiriladi:
− Test rejasi va test holatlari (test case) ishlab chiqish: Dasturiy ta’minotning talablariga
mos holda sinov strategiyasi belgilanadi. Qaysi funksiyalarni qanday sharoitlarda tekshirish
kerakligi, kutilayotgan natijalar nimalardan iborat bo‘lishi lozimligi aniqlanadi. Buning uchun test
holatlari yoziladi va har bir test holatida dasturga beriladigan kiruvchi ma’lumotlar va kutilayotgan
chiqishlar ko‘rsatiladi. Masalan, matn tarjimasi tizimi uchun bir necha turdagi jumlalar (oddiy,
murakkab, idiomatik) kiritilib, tarjima natijasi inson tarjimasi bilan solishtiriladi.
75
− Turli xil test turlarini o‘tkazish: Dasturiy ta’minotning barcha jihatlarini qamrab olish
uchun bir necha bosqichli test sinovlari amalga oshiriladi. Jumladan:
− Birlik testi (unit testing): Dasturiy ta’minotni tashkil etuvchi alohida modullar va
funksiyalar izolyatsiya holda test qilinadi. Har bir modul o‘z vazifasini to‘g‘ri bajarayotgani
tekshiriladi.
− Integratsiya testi: Modullar birgalikda ishlaganda yuzaga keluvchi muammolarni aniqlash
uchun o‘zaro bog‘liq qismlar birlashtirilib sinovdan o‘tkaziladi.
− Tizim testi: Tizim to‘liq majmua holida ishga tushirilib, yakuniy foydalanuvchi nuqtai
nazaridan barcha funksiyalarining to‘g‘ri ishlashi tekshiriladi.
− Qabul testi (acceptance testing): Buyurtmachi yoki oxirgi foydalanuvchilar ishtirokida
dasturiy mahsulot real foydalanish sharoitiga yaqin muhitda sinovdan o‘tadi. Agar bu testdan
muvaffaqiyatli o‘tsa, dasturiy ta’minot qabul qilinishga tayyor hisoblanadi.
− Xavfsizlik testi: Tizimning xavfsizlik talablariga javob berishi, ma’lumotlar
himoyalanganligi, ruxsatsiz kirishlardan holi ekanligi sinovdan o‘tadi (agar dasturiy ta’minot uchun
bu dolzarb bo‘lsa).
− Yuklama va stress testi: Tizim ko‘p foydalanuvchilar, katta ma’lumotlar oqimi yoki
chegaraviya holatlar (masalan, server resurslari kamayganda)da barqaror ishlash-qilmasligi
tekshiriladi.
− Xatolarni qayd etish va tuzatish: Har bir muvaffaqiyatsiz test holati natijasida
aniqlangan xato va kamchiliklar batafsil hujjatlashtiriladi. Xatolikning alomati, qanday sharoitda
sodir bo‘lishi, dasturiy ta’minotga ta’siri kabi ma’lumotlar qayd qilinadi. Ushbu xatolar
dasturchilarga yetkazilib, kodni tuzatish ishlari amalga oshiriladi. Tuzatish kiritilgach, tegishli
testlar takrorlanadi va xato bartaraf etilgunga qadar bu jarayon davom etadi.
− Sinov natijalarini tahlil qilish: Barcha testlar bajarilgach, umumiy natijalar ko‘rib
chiqiladi. Agar jiddiy xatolar qolmagan bo‘lsa va dastur belgilangan talablarga muvofiq ish bersa,
loyiha keyingi bosqichga o‘tadi. Aks holda, kerak bo‘lsa, ayrim talablar qayta ko‘rib chiqilishi yoki
orqaga kodlash bosqichiga qaytilishi ham mumkin.
Sinov bosqichi dasturiy ta’minot sifatini ta’minlashda hal qiluvchi ahamiyatga ega. Ayniqsa,
axborot tizimlari uchun, tizimning ishonchliligi va barqaror ishlashi muhim. Shu bois puxta test
qilingan tizimgina iste’molchi qo‘liga topshiriladi. NLP tizimlari misolida, sinov bosqichida
modelning aniqlik, to‘g‘rilik (precision/recall) kabi ko‘rsatkichlari baholanadi, turli sinov
korpuslarida model ishlashi tekshiriladi va zarurat tug‘ilsa, model qayta o‘qitilib, natijalar
takomillashtiriladi.
6. Joriy etish va ishga tushirish bosqichi. Joriy etish (deployment) bosqichi – dasturiy
mahsulotni ishchi muhitga (production muhitiga) o‘tkazish va foydalanuvchilarga yetkazish
bosqichidir. Sinovlardan muvaffaqiyatli o‘tgan tizim real muhitga joriy etiladi, foydalanuvchilar
uchun foydalanish yo‘riqnomalari ishlab chiqiladi. Shuningdek, ushbu bosqichda tizimning
ekspluatatsiya jarayonida monitoringi, foydalanuvchi fikr-mulohazalarini yig‘ish va keyingi
versiyalar uchun takomillashtirish rejalari tuziladi. Bu bosqichga kelib dasturiy ta’minot
sinovlardan o‘tgan va qabulga tayyor deb topilgan bo‘ladi. Joriy etish bosqichida:
− Ishchi muhitga o‘tkazish: Dasturiy mahsulot ishlab chiqarish muhitiga o‘rnatiladi va
ishga tushiriladi. Ko‘p hollarda kompaniyalar dasturiy ta’minotni bir yo‘la barcha
foydalanuvchilarga emas, balki bosqichma-bosqich o‘tkazadilar. Masalan, dastlab sinov muhitida
76
(staging) yoki sandbox muhitida ishga tushirib ko‘rishadi, so‘ngra cheklangan foydalanuvchilar
guruhiga beta-versiya sifatida taqdim etishadi, oxirida esa to‘liq produktsion muhitga joylashadi.
Bunday yondashuv dasturiy ta’minotni real muhitda ham tekshirib ko‘rish va kutilmagan
muammolarni keng auditoriyaga chiqmasdan oldin tuzatish imkonini beradi.
− Joylashtirish strategiyasini tanlash: Loyihaning xususiyatlariga qarab, joriy etishning
turli strategiyalari qo‘llanadi. Masalan, “Big Bang” – mahsulotni bir zumda hamma
foydalanuvchilarga ishga tushirish; “Blue-Green” – eski versiya (blue) yonida yangi versiya (green)
parallel ishga tushirib, sinovdan so‘ng trafikni yangi versiyaga o‘tkazish; yoki “Kanareyka (Canary)
joriy etish” – foydalanuvchilarning kichik qismida yangi versiyani sinab ko‘rib, so‘ng bosqichmabosqich ulushini oshirish. Bunday usullar foydalanuvchi tajribasiga minimal ta’sir bilan
yangilanishlarni tatbiq etish imkonini beradi.
− Foydalanuvchi qo‘llanmasi va o‘qitish: Yangi tizim foydalanuvchilarga taqdim
etilayotganda, ularga yo‘riqnoma va qo‘llanmalar beriladi. Zarur hollarda trening va seminarlar
o‘tkazilib, foydalanuvchilarga tizimdan foydalanish qoidalari o‘rgatiladi. Ayniqsa, korporativ
axborot tizimlarini joriy etishda bu bosqich muhim va xodimlar yangi tizimga moslashishi va uning
imkoniyatlaridan to‘liq foydalana olishi lozim.
− Texnik infratuzilmani sozlash: Mahsulotni ishga tushirishda serverlar, ma’lumotlar
bazasi, tarmoq sozlamalari kabi infratuzilma komponentlari tayyorlanadi. Agar bu bulutli servis
bo‘lsa, DevOps jarayonlari (CI/CD pipeline) orqali avtomatlashtirilgan deploy qilinadi.
− Foydalanuvchi fikr-mulohazalarini yig‘ish: Mahsulot ishga tushirilgach, dastlabki
foydalanuvchilardan fikr va mulohazalar olinadi. Bu ma’lumotlar keyingi yangilanishlarda hisobga
olinishi uchun jamlanadi.
Joriy etish bosqichi mahsulotning loyiha rejimidan ishchi rejimga o‘tishini anglatadi. Ushbu
bosqich yakunida dasturiy ta’minot real foydalanuvchilar qo‘lida o‘z vazifasini bajara boshlaydi. Bu
bosqich yakuniy nuqta emas, balki yangi bosqich, ya’ni texnik xizmat va qo‘llab-quvvatlash
bosqichining boshlanish nuqtasidir. Misol tariqasida, NLP modeli asosidagi xizmatni ishga
tushirganimizda, real foydalanuvchi matnlarini qayta ishlash jarayonida model qanday natija
berayotgani kuzatiladi, foydalanuvchilarning qoniqish darajasi tahlil qilinadi.
7. Texnik xizmat ko‘rsatish (qo‘llab-quvvatlash) bosqichi. Texnik xizmat va qo‘llabquvvatlash – dasturiy ta’minotni ishlab chiqishning yakuniy va doimiy davom etuvchi bosqichi
bo‘lib, mahsulot ishga tushirilgandan so‘ng uning barqaror ishlashi, yangilanishi va takomillashtirib
borilishini nazarda tutadi. Bu bosqichda quyidagilar amalga oshiriladi:
− Xatolarni tuzatish: Foydalanuvchilar tizimdan foydalana boshlagach, avval topilmagan
ba’zi xatolar (baglar) aniqlanishi mumkin. Texnik xizmat ko‘rsatish jarayonida ishlab chiquvchilar
bunday nosozliklarni bartaraf etishadi va dasturiy yamalar (patch) tarzida tizimga joriy qilishadi. Bu
doimiy monitoring va tezkor reaksiyani talab qiladi. Xususan, agar yangi versiya jiddiy xatoga ega
bo‘lsa, hot-fix tarzida zudlik bilan tuzatish chiqarilishi zarur.
− Funktsional imkoniyatlarni kengaytirish: Vaqt o‘tishi bilan foydalanuvchilarning yangi
talab va ehtiyojlari paydo bo‘lishi mumkin, yoki bozor talabiga ko‘ra dasturga yangi funksiyalar
qo‘shish zaruriyati tug‘iladi. Qo‘llab-quvvatlash bosqichida tizimga yangilanishlar va versiyalar
orqali yangi funksiyalar qo‘shib boriladi. Bu aslida SDLC jarayonining yana dastlabki bosqichlariga
ma’lum ma’noda qaytishni bildiradi. Ya’ni, yangi qo‘shimchalar uchun mini-rejalashtirish, dizayn,
kodlash va testdan o‘tish jarayonlari takrorlanadi (spiral tarzda rivojlantirish).
77
− Ishlash sifatini oshirish va optimizatsiya: Mahsulot ishlayotgan davrida uning ishlash
ko‘rsatkichlari (performance) kuzatib boriladi. Masalan, veb-tizim bo‘lsa, uning javob berish vaqti,
server yuklamasi, foydalanuvchi kirishlari soniga qarab ko‘rsatkichlari monitoring qilinadi.
Zaruriyat tug‘ilganda, kod optimizatsiya qilinadi yoki server resurslari kengaytiriladi. NLP tizimi
uchun, vaqt o‘tishi bilan modelni yangi ma’lumotlarda qayta o‘qitish (retraining) ham optimizatsiya
turiga kiradi. Chunki til ma’lumotlari yangilanib boradi yoki dastlabki modelda yetarlicha hisobga
olinmagan holatlar paydo bo‘lishi mumkin.
− Xavfsizlik yangilanishlari: Dasturiy ta’minot uchun xavfsizlik juda muhim, ayniqsa
axborot tizimlarida. Qo‘llab-quvvatlash bosqichida yangi aniqlangan kiberxavfsizlik xatarlari
bo‘yicha tizim doimiy yangilanadi, xavfsizlik yamalari chiqariladi va foydalanuvchilarga o‘z
dasturlarini yangilab borish tavsiya etiladi.
− Foydalanuvchilarni qo‘llab-quvvatlash: Texnik xizmat tarkibiga foydalanuvchilarga
yordam berish, ularning savollariga javob berish ham kiradi. Ko‘pincha maxsus texnik support
jamoasi 24/7 rejimida ishlaydi, foydalanuvchilardan murojaatlar tushsa, muammoni hal qilishda
ko‘mak beradi. Bu dasturiy mahsulotga bo‘lgan ishonch va qoniqishning muhim qismi sanaladi.
− Mahsulotning hayotiy siklini yakunlash (sunsetting): Vaqt o‘tib tizim eskirganda yoki
yangiroq platformaga o‘tish rejalashtirilganda, mahsulotni qo‘llab-quvvatlashni to‘xtatish haqida
qaror qabul qilinishi mumkin. Bu bosqichda foydalanuvchilarga oldindan e’lon qilinadi, muqobil
yechimlar taklif etiladi va tizim bosqichma-bosqich yopiladi. Misol uchun, eski versiyadagi dastur
uchun oxirgi yangilanish va xavfsizlik yamasi chiqarilib, foydalanuvchilarga ma’lum muddatdan
keyin ushbu versiya endi qo‘llab-quvvatlanmasligi haqida xabar beriladi.
Qo‘llab-quvvatlash bosqichi eng uzoq davom etadigan bosqich bo‘lib, dasturiy ta’minotning
butun foydalanish davomiyligini qamrab oladi. To‘g‘ri yo‘lga qo‘yilgan texnik xizmat dasturiy
mahsulotning umrini uzaytiradi, foydalanuvchilarning qoniqishini yuqori darajada ushlab turadi va
mahsulotning bozordagi raqobatbardoshligini ta’minlaydi.
Yuqoridagi bosqichlar ketma-ket sanalgan bo‘lsa-da, zamonaviy metodologiyalarda ular
iterativ tarzda takrorlanishi ham mumkin. Ya’ni kichik qism ishlab chiqilib sinovdan o‘tgach,
navbatdagisiga o‘tiladi va tizim bosqichma-bosqich kengaytiriladi. Adabiyotlarda sentiment tahlil
tizimini ishlab chiqishda ham xuddi shunday takrorlanuvchi yondashuv samarali ekani ta’kidlanadi,
chunki dastlabki model natijalari va foydalanuvchi fikri asosida tizimni tezkor takomillashtirish
imkoniyati bo‘ladi. Muhimi, rivojlanish bosqichlarida puxta rejalashtirish va har bir jarayonni
hujjatlashtirish yakunda barqaror va sifatli axborot tizimini yaratishga zamin bo‘ladi.
Axborot tizimlarini ishlab chiqishning hayotiy sikli – SDLC konsepsiyasi dasturiy mahsulot
yaratish jarayonini nazariy va amaliy jihatdan asoslashga xizmat qiladi. SDLC doirasida ishlash:
1. Loyihani puxta rejalash va risklarni boshqarish imkonini beradi.
2. Talablar va dizaynda aniqlikni ta’minlaydi.
3. Ishlab chiqish jarayonida sifat nazoratini kuchaytiradi.
4. Yakuniy mahsulotni o‘z vaqtida va sifatli topshirishga zamin yaratadi.
SDLC turli rollardagi mutaxassislarni (analitiklar, dasturchilar, testerlar, foydalanuvchilar)
yagona maqsad sari birlashtiradi va ularning har bir bosqichdagi ishtirokini aniqlab beradi.
SDLCning bir qator modellari mavjud bo‘lib, ularning har biri ma’lum sharoitda maqsadga
muvofiqdir – bu haqda munozara qismida sharhlab o‘tildi. SDLC bosqichlarini ongli ravishda
qo‘llash va mos modelni tanlash dasturiy mahsulot yaratuvchilariga ijodiy yondashuv va tizimli
78
nazoratni birlashtirishga imkon beradi. Bu ayniqsa bugungi kunda tez o‘zgaruvchan IT sohasida
juda muhim: yangi texnologiyalar (sun’iy intellekt, katta ma’lumotlar) shiddat bilan rivojlanar ekan,
ular bilan bog‘liq loyihalarni muvaffaqiyatli amalga oshirish intizomli yondashuvni talab qiladi.
SDLC esa aynan shunday intizom va izchillik uchun nazariy va amaliy poydevor bo‘lib xizmat
qiladi. Shunday ekan, SDLC tamoyillariga rioya qilgan holda, dasturiy injiniring va axborot
tizimlari sohasida yanada ishonchli, samarali va foydalanuvchi talablari darajasidagi yechimlarni
yaratish lozim.
SDLC nuqtai nazaridan, texnik xizmat bosqichi eng uzoq davom etadigan va ko‘p resurs talab
qiladigan bosqich. Tadqiqotlar ko‘rsatadiki, dasturiy ta'minotga sarflanadigan umumiy resurs va
xarajatlarning katta qismi aynan uning texnik xizmat ko‘rsatish davriga to‘g‘ri keladi. Shu sabab,
dasturiy mahsulotni loyihalashda kelgusidagi texnik xizmatni yengillashtiradigan yechimlarni
tanlash (masalan, kodning o‘qilishi oson bo‘lishi, hujjatlarning to‘liq yozilishi, modulning
mustaqilligini saqlash) juda muhim. Axborot tizimlari va NLP mahsulotlari uchun muntazam
yangilanish chiqarmasdan iloji yo‘q. NLP modellari yangi ma’lumotlar bilan qayta o‘qitilishi yoki
til qoidalariga mos ravishda yangilanib turishi kerak. Texnik xizmat bosqichi mohiyatiga ko‘ra
“loyiha boshidan boshlangan takomillashtirish jarayoni”ning davomidir. Ya’ni, dasturiy mahsulot
hayotga kelgach ham, uni doimiy ravishda parvarishlash zarur. Aks holda, dasturiy mahsulot tez
orada eskirolishi, foydalanuvchilarni qoniqtirmay qo‘yishi va natijada foydalanilmay qolishi
mumkin. Yuqorida bayon etilgan SDLC bosqichlarini sarhisob qilar ekanmiz, quyidagi jadval
ularning har birida bajariladigan asosiy vazifalar, ishlab chiqiladigan hujjatlar va bosqich
yakunidagi natijani umumlashtirib ko‘rsatadi (1-jadval):
1-jadval. SDLC bosqichlari bo‘yicha bajariladigan asosiy ishlar va natijalar
Bosqich
Asosiy ishlar (vazifalar)
Hujjat va natijalar
1. Rejalashtirish
Loyiha maqsadini aniqlash; texnikiqtisodiy asoslash; risklarni baholash;
jadval tuzish; resurslarni rejalashtirish;
loyiha doirasini belgilash.
Loyiha kontsepsiyasi;
Loyiha rejasi; Dastlabki
SRS (talablar ro‘yxati).
2. Talablar tahlili
Foydalanuvchi va buyurtmachi talablarini
yig‘ish; ularni tahlil qilish va
ustuvorliklarini belgilash; aniq va
tekshiriladigan talablar shakllantirish;
talablarni hujjatlashtirish va tasdiqlatish.
Talablar spetsifikatsiyasi
(SRS) hujjati – dasturga
qo‘yiladigan barcha
talablar ro‘yxati.
3. Loyihalash
Tizim arxitekturasi va komponentlarini
aniqlash; ma’lumotlar modeli va interfeys
dizaynini ishlab chiqish; DFD, ER
diagrammalar tuzish; texnik yechimlarni
(algoritmlar, platformalar) tanlash;
integratsiya nuqtalarini belgilash.
Dasturiy dizayn hujjati
(SDD) – arxitektura
tavsifi, komponentlar va
ularning o‘zaro aloqa
sxemasi, UI maketlar.
4. Dasturlash
Kod yozish (modullarni dasturlash);
versiya nazorati ostida hamkorlikda ishlab
chiqish; kod standartlariga rioya qilish;
Ishlovchi dasturiy
ta’minotning dastlabki
versiyasi (prototip yoki
79