Uploaded by 7diyorbek

Dasturiy Ta'minot Talablarini Ishlab Chiqish Ma'ruzasi

advertisement
Amaliy dars 2. Dasturiy ta'minot talablarini ishlab chiqish.
Darsning maqsadi:
Talabalarni dasturiy ta'minotga qo'yiladigan talablarni yozish, tahlil qilish va
hujjatlashtirish va ularning mahsulot sifatini ta'minlashdagi ahamiyatini tushunishni
o'rgatish.
Darsning vazifalari:
1. Dasturiy ta'minot talablarining turlarini (funktsional, funktsional bo'lmagan
va foydalanuvchi) o'rganish.
2. Talablarni ishlab chiqishning asosiy usullari va yondashuvlarini tushunish
(intervyu, aqliy hujum, hujjatlar tahlili).
3. Talablarni rasmiylashtirish tamoyillarini va ularning rivojlanishning keyingi
bosqichlariga ta'sirini ko'rib chiqing.
4. Talablarning qarama-qarshiliklari va to'liqsizligini aniqlashni o'rganing.
5. Talablarni
hujjatlashtirish
vositalari
va
shablonlarini
foydalanuvchi hikoyalari yoki SRS) amalda qo'llang.
1
(masalan,
Nazariy qism
1. Dasturiy ta'minotni ishlab chiqish jarayonida talablarning ahamiyati
1.1. Dasturiy ta'minot talablari qanday?
Dasturiy ta'minot talablari - bu dasturiy mahsulot bajarishi yoki taqdim etishi kerak
bo'lgan funktsiyalar va xususiyatlarning tavsifi. Ular belgilaydilar:

Nimani amalga oshirish kerak (masalan, foydalanuvchi hisobini yaratish).

Mahsulot o'zini qanday tutishi kerak (masalan, so'rovlarga 2 soniya ichida
javob berish).
Talablar dasturiy ta'minotning hayot aylanishining barcha bosqichlari, jumladan
dizayn, kodlash, sinovdan o'tkazish va texnik xizmat ko'rsatish uchun asosdir.
1.2. Dasturiy ta'minot sifatini ta'minlashda talablarning roli
1. Rivojlanish uchun asos : Talablar tizimning arxitekturasi, dizayni va amalga
oshirilishi uchun asos bo'lib xizmat qiladi. Agar talablar aniq va to'liq bo'lsa, bu
xatolar xavfini kamaytiradi.
2. Resurslarni rejalashtirish : loyihaning kuchini, vaqtini va narxini aniqlashga
yordam beradi.
3. Sifat nazorati : Sinov va tekshirish tizim foydalanuvchi kutganlariga mos
kelishini aniqlaydigan talablarga asoslanadi.
4. Xatolarni tuzatish xarajatlarining kamayishi : Talablar bilan bog'liq xatolarni
dastlabki bosqichlarga qaraganda operatsion bosqichda tuzatish ancha qimmatga
tushadi.
Talab xatosiga misol:
Kompaniya xodimlarni boshqarish tizimini ishlab chiqdi, ammo talablar
xodimni ishdan bo'shatish stsenariysini hisobga olmadi. Ushbu ishni amalga oshirish
kerak bo'lganda, ma'lumotlar bazasi va interfeys mantig'ini sezilarli darajada qayta
ishlash kerak edi, bu esa katta xarajatlarga olib keldi.
1.3.
Nima
uchun
talablar
ustida
yaxshi
ishlash
muhim,
agar talablar bo'yicha ishlar yomon bajarilsa, bu quyidagilarga olib kelishi mumkin?

Rivojlanish vaqtining ko'payishi.
2

Byudjetning ortishi.

Mahsulotning past sifati.

Mijozlar va foydalanuvchilarning noroziligi.
Standish Group ma'lumotlariga ko'ra ):

Loyihalarning 40 foizi noto'g'ri belgilangan talablar tufayli muvaffaqiyatsizlikka
uchraydi.

Dasturiy ta'minotdagi nuqsonlarning 70% talab xatolariga bog'liq.
2. Talablarning tasnifi
Dasturiy ta'minot talablari uchta asosiy guruhga bo'lingan:
2.1. Funktsional talablar
Tavsif:
Funktsional talablar tizimning harakatini belgilaydi va u foydalanuvchilarga taqdim
etishi kerak bo'lgan funktsiyalarni tavsiflaydi.
Xususiyatlari:

Maxsus va o'lchanadigan.

Tizim qanday amallarni bajarishi kerakligini tasvirlab bering.

To'g'ridan-to'g'ri foydalanuvchi vazifalari bilan bog'liq.
Misollar:
1. Foydalanuvchi veb-interfeys orqali faylni yuklay olishi kerak.
2. Ma'lumotlarni qayta ishlash tugagandan so'ng tizim elektron pochta
xabarnomalarini yuborishi kerak.
3. Avtorizatsiya qilishda foydalanuvchilar login va parolni kiritishlari kerak.
Funktsional talablar bilan ishlashda xatolar:

Funktsiyalarning to'liq tavsifi.

Misol: "Tizim vazifalarni boshqarishga ruxsat berishi kerak", lekin
"boshqarish" nimani anglatishini ko'rsatilmagan.

Qarama-qarshiliklar: bir talab foydalanuvchini majburiy ro'yxatdan o'tkazishni
talab qiladi, ikkinchisi esa ro'yxatdan o'tmasdan kirish imkonini beradi.
2.2. Funktsional bo'lmagan talablar
3
Tavsif:
Funktsional bo'lmagan talablar tizimning ishlash sifatini va uning funktsiyalarini
bajarishi kerak bo'lgan shartlarni tavsiflaydi.
Xususiyatlari:

Ular tizim qanday ishlashi kerak degan savolga javob berishadi.

Ko'pincha ular miqdoriy shaklda shakllantiriladi.
Misollar:
1. Ishlash: sahifa 100 ta bir vaqtda foydalanuvchi bilan 2 soniyadan ko'p bo'lmagan
vaqt ichida yuklanishi kerak.
2. Ishonchlilik: tizim 99,9% vaqtda mavjud bo'lishi kerak.
3. Masshtablilik: tizim unumdorlikni pasaytirmasdan ma'lumotlar hajmini 50% ga
oshirishni qo'llab-quvvatlashi kerak.
4. Xavfsizlik: barcha foydalanuvchi ma'lumotlari shifrlangan bo'lishi kerak.
Funktsional bo'lmagan talablar toifalari:

Ishlash : javob vaqti, o'tkazish qobiliyati.

Ishonchlilik : tizimning nosozliklar va xatolarga chidamliligi.

Foydalanish qulayligi : intuitiv interfeys, mavjud hujjatlar.

Masshtablilik : tizimni ortib borayotgan yukga moslash qobiliyati.

Moslik : Muayyan operatsion tizimlar va qurilmalarni qo'llab-quvvatlaydi.
Funktsional bo'lmagan talablar bilan ishlashda xatolar:

O'lchovning etishmasligi: "Odatdagi vazifani bajarish uchun ketadigan vaqt 3
daqiqadan oshmasligi kerak" o'rniga "tizim foydalanuvchi uchun qulay bo'lishi
kerak".

Xavfsizlikning ahamiyatiga e'tibor bermaslik, ayniqsa moliyaviy va sog'liqni
saqlash dasturlarida.
2.3. Foydalanuvchi talablari
Tavsif:
Foydalanuvchi talablari oxirgi foydalanuvchilarning tizimga nisbatan kutganlari va
maqsadlarini tavsiflaydi. Bu talablarning eng umumiy va tavsiflovchi darajasi bo'lib,
ko'pincha foydalanish holatlari shaklida ifodalanadi.
4
Format:
Foydalanuvchi so’zlari tez-tez ishlatiladi :

Shablon: "[rol] sifatida men [maqsadga] erishish uchun [funktsiya] qilishni
xohlayman."

Misol: "Menejer sifatida men kerakli odamni tezda topishim uchun barcha
xodimlarning qidiriladigan ro'yxatini ko'rishni xohlayman."
Foydalanuvchi talablariga misollar:
1. Foydalanuvchi istalgan vaqtda parolni o'zgartirish imkoniyatiga ega bo'lishi
kerak.
2. Ilova turli ekran o'lchamlari bo'lgan qurilmalarda to'g'ri ishlashi kerak.
Oddiy muammolar:

Talablar foydalanuvchilarning xilma-xilligi va ularning malaka darajasini
hisobga olmaydi.

Foydalanuvchilarning taxminlari, agar ular tizimning haqiqiy imkoniyatlariga
moslashtirilmasa, ortiqcha bo'lishi mumkin.
Talablar tasnifining yakuniy tuzilishi:
Talab turi
Funktsional
Funktsional
bo'lmagan
Maxsus
Savollarga javob
berildi
Dasturiy ta'minot nima
qilishi kerak?
Misollar
Vazifalarni yaratish,
hisobotlarni yuborish
qobiliyati
Dasturiy ta'minot
Sahifani yuklash
qanday ishlashi kerak?
tezligi, tizim ishonchliligi
Foydalanuvchilar
nimani kutmoqda?
5
Intuitiv interfeys, mobil
qurilmalarni qo'llabquvvatlash
3. Talablarni yig'ish va tahlil qilish usullari
Ishlab chiquvchilar va tahlilchilarga talablarni samarali to'plashda yordam
beradigan turli usullar mavjud:
3.1. Intervyu

Mijozlar va foydalanuvchilar bilan ularning taxminlarini aniqlash uchun
intervyu o'tkazish.

Misol savol: "Tizim bilan qanday vazifalarni avtomatlashtirishni xohlaysiz?"
3.2. Aqliy hujum

Potentsial tizim xususiyatlari ro'yxatini yaratish uchun g'oyalarni miya hujumi
usuli.
3.3. Mavjud tizimlar va hujjatlarni tahlil qilish

Foydalanuvchilar tomonidan qo'llaniladigan joriy echimlarni o'rganish.

Misol: mijoz yangilamoqchi bo'lgan CRM tizimini tahlil qilish.
3.4. Foydalanuvchi talablari

Yakuniy foydalanuvchi diqqat markazida bo'lgan talablar tavsifi formati:

Shablon: "[rol] sifatida men [funktsiyani] xohlayman, shunda [maqsad]"
.

Misol: "Foydalanuvchi sifatida men eng muhimlarini ko'rish uchun
vazifalarni muddati bo'yicha saralashni xohlayman."
3.5. Diagrammalar

Talablarni vizual ko'rsatish uchun UML diagrammalaridan foydalanish
(masalan, foydalanish holatlari diagrammasi).
6
4. Talablar bilan ishlash tamoyillari
4.1. SMART mezonlari
Talablar quyidagilar bo'lishi kerak:

Maxsus : Talab vazifani aniq tasvirlab beradi.

O'lchanadigan : Natijani tekshirish mumkin.

Achievable (erishish mumkin) : Talab real tarzda bajarilgan.

Tegishli : Loyiha maqsadlariga mos keladi.

Vaqt chegarasi (cheklangan vaqt) : Belgilangan muddat.
4.2. Noaniqlikning yo'qligi

Talablar aniq bo'lishi kerak.

Noto'g'ri misol: "Tizim tez bo'lishi kerak."

To'g'ri misol: "1000 ta so'rovni qayta ishlashda tizimning o'rtacha javob
vaqti 1 soniyadan oshmasligi kerak."
4.3. O'zgarishlarni boshqarish

Rivojlanish jarayonida talablar o'zgarishi mumkin. O'zgarishlarni qayd etish va
ularni jamoa bilan kelishish muhim.
5. Hujjatlashtirish talablari
Talablar rasmiy hujjatlar shaklida tuziladi.

SRS (Dasturiy ta'minot talablari Spetsifikatsiya )

Barcha funktsional va funktsional bo'lmagan talablarning tavsifini o'z
ichiga olgan rasmiy hujjat.

Foydalanuvchi talablari


Agile metodologiyalarida mashhur bo'lgan kamroq rasmiy yondashuv .
Diagrammalar
7

Grafik tasvirlar (masalan, sinf diagrammalari, ma'lumotlar oqimlari).
6. Talablar bilan ishlashda tipik xatolar
1. To'liq bo'lmagan talablar : muhim tafsilotlarni o'tkazib yuborish.

Misol: tizim yukining cheklovlari hisobga olinmadi.
2. Qarama-qarshi : turli talablar bir-biriga zid keladi.

Misol: bitta talab real vaqtda ma'lumotlarni sinxronlashtirishni, ikkinchisi
esa oflayn qo'llab-quvvatlashni belgilaydi.
3. Murakkablik va ortiqcha yuk : Talablar tushunishni qiyinlashtiradigan
ortiqcha tafsilotlarni o'z ichiga oladi.
7. Talablar bilan ishlash vositalari

Jira , Trello : foydalanuvchi hikoyalarini boshqarish uchun.

IBM DOORS, Microsoft Excel : SRS hujjatlari bilan ishlash uchun.

Lucidchart , Draw.io : UML diagrammalarini yaratish uchun.
8
Amaliy qism
Misol:
Foydalanuvchidan kitob (nom, muallif, ISBN) haqida ma’lumot so‘rab, uni faylga
saqlaydigan Python dasturini ishlab chiqing. Dastur quyidagi talablarga javob berishi
kerak:

Funktsional talablar :

Dastur foydalanuvchidan kitob nomi, muallifi va ISBN-ni so'rashi kerak.

Dastur kiritilgan ma'lumotlarning to'g'riligini tekshirishi kerak (masalan,
ISBN raqam bo'lishi kerak).

Dastur kitob haqidagi ma'lumotlarni CSV formatidagi faylga saqlashi
kerak.

Funktsional bo'lmagan talablar :

Dasturdan foydalanish oson bo'lishi kerak (foydalanuvchi uchun aniq
xabarlar, xatolarni qayta ishlash).

Dastur ishonchli bo'lishi kerak (ma'lumotlarni noto'g'ri kiritishdan himoya
qilish, istisnolarni qayta ishlash).
import csv
def get_book_info():
""" Asks the user for information about a book."""
while True:
title = input("Enter the title of the book:")
if not title:
print("Book title cannot be empty.")
continue
break
while True:
author = input("Enter the author of the book:")
9
if not author:
print("The author of the book cannot be empty.")
continue
break
while True:
isbn = input("Enter the ISBN of the book:")
if not isbn.isdigit():
print("ISBN must consist of numbers.")
continue
break
return title, author, isbn
def save_book_info(title, author, isbn):
"""Saves information about a book to a file."""
with open("books.csv", "a", newline="") as file:
writer = csv.writer(file)
writer.writerow([title, author, isbn])
if __name__ == "__main__":
while True:
title, author, isbn = get_book_info()
save_book_info(title, author, isbn)
add_another_book = input("Add another book? (yes/no):")
if add_another_book.lower() != "yes":
break
10
 get_book_info () funktsiyasi foydalanuvchidan kitob nomi, muallifi va ISBNni so'raydi.
 save_book_info () funksiyasi kitob ma'lumotlarini books.csv faylida CSV
formatida saqlaydi.
 Dasturning asosiy qismida while tsikli foydalanuvchiga bir nechta kitob qo'shish
imkonini beradi.
1. Tayyorgarlik bosqichi
Ish uchun materiallar:

Vazifa: Shaxsiy moliyani boshqarish uchun ariza uchun talablarni ishlab chiqish.

Foydalanuvchi hikoyalariga misollar (User Stories ).

Talablar hujjatlari shabloni (masalan, SRS hujjati).

Google Sheets yoki Excel.
Vazifa tavsifi:
11
Tasavvur qiling-a, siz shaxsiy moliya boshqaruvi ilovasini ishlab chiquvchi
jamoada tahlilchi sifatida ishlayapsiz. Mijoz unga kerak bo'lgan narsaning umumiy
tavsifini taqdim etdi. Sizning vazifangiz:
1. Foydalanuvchi talablarini aniqlang.
2. Funktsional va funktsional bo'lmagan talablarni yarating.
3. To'liqlik, nomuvofiqlik va o'lchovga bo'lgan talablarni tekshiring.
1-topshiriq: Foydalanuvchi talablarini aniqlash
1. Foydalanuvchi hikoyasi shablonidan foydalanib, mijozlarning taxminlarini
aniqlang.
2. Foydalanuvchi hikoyalarining minimal ro'yxati (misol):

"Foydalanuvchi sifatida men o'z mablag'larimni nazorat qilish uchun
hisoblarimning umumiy qoldig'ini ko'rishni xohlayman."

"Foydalanuvchi sifatida men xarajatlarimni kuzatib borish uchun
daromad va xarajatlarni qo'shmoqchiman."

"Foydalanuvchi sifatida men toifalar bo'yicha xarajatlarimni tahlil qilish
uchun sarf-xarajatlar jadvalini ko'rmoqchiman."
3. O'zingizning foydalanuvchi hikoyalaringizni yozing.
Format:
Rol
Funktsiya
Maqsad
Foydalanuvchi
Men toʻlov eslatmalarini
Muhim to'lovni o'tkazib
sifatida
koʻrmoqchiman
yubormaslik uchun
Vazifa 2: Funktsional talablarni ishlab chiqish
1. Foydalanuvchi hikoyalari asosida funktsional talablarni yarating.
2. Funktsional talablarga misol:
12

Foydalanuvchi daromad va xarajatlar yozuvlarini qo'shish, o'chirish va
tahrirlash imkoniyatiga ega bo'lishi kerak.

Ilova rejalashtirilgan to'lovlar haqida eslatmalar yuborishi kerak.

Tizim tranzaksiya ma'lumotlarini ma'lumotlar bazasida saqlashi kerak.
3. Jadvalga funktsional talablarni yozing:
Funktsional talab
Eslatmalar
Daromad va xarajatlarni qo'shish
Veb-interfeys yoki dastur orqali
imkoniyati
Sozlanishi mumkin bo'lgan bildirishnoma
Toʻlov eslatmalarini yuborish
chastotasi
Bir nechta valyutalarni qo'llab-
Ma'lumotlar real vaqtda yangilanadi
quvvatlash
3-topshiriq: Funktsional bo'lmagan talablarni ishlab chiqish
1. Tizim o'z vazifalarini qanday bajarishi kerakligini tavsiflovchi xususiyatlar
ro'yxatini tuzing .
2. Funktsional bo'lmagan talablarga misol:

Ishlash: Ilova so'rovlarni 1 soniyadan kamroq vaqt ichida qayta ishlashi
kerak.

Masshtablilik: Ilova bir vaqtning o'zida 10 000 tagacha faol
foydalanuvchini qo'llab-quvvatlashi kerak.

Xavfsizlik:
Barcha
ma'lumotlar
AES-256
protokoli
yordamida
shifrlangan bo'lishi kerak.
3. Funktsional bo'lmagan talablarni yozish uchun jadvaldan foydalaning:
13
Funktsional bo'lmagan talab
Turkum
So'rovni ko'rib chiqish vaqti 1
Ishlash
soniyadan kam bo'lishi kerak
Foydalanuvchi ma'lumotlari
Xavfsizlik
shifrlangan bo'lishi kerak
Interfeys intuitiv bo'lishi kerak
Eslatmalar
Bir vaqtning o'zida 100 ta
foydalanuvchi
AES-256 protokolidan
foydalaning
Foydalanish
Haqiqiy foydalanuvchilar
qulayligi
bilan sinov
4-topshiriq: Talablarni tahlil qilish va sozlash
1. To'liqlik uchun talablarni tekshiring:

Ular ilovaning barcha jihatlarini qamrab oladimi?

Ular haqiqiy foydalanish holatlarini hisobga oladimi?
2. Mos kelmaslik uchun talablarni tekshiring:

Funktsional va funktsional bo'lmagan talablar o'rtasida ziddiyat bormi?
3. O'lchovga qo'yiladigan talablarni tekshiring:

Funktsional bo'lmagan talablar aniqmi?
Misol tahlili:
Talab
Muammo
Tuzatish
"Tizim tez bo'lishi
Noaniq
kerak"
tavsif
"Tizim intuitiv
Subyektiv
"10 foydalanuvchi bilan test o'tkazing. 80%
bo'lishi kerak"
talab
foydalanish mumkinligini tasdiqlashi kerak."
"Tizimning javob vaqti < 1 soniya bo'lishi kerak."
14
5-topshiriq: Yakuniy hujjat
1. Barcha turdagi talablarni yagona formatga birlashtiring (masalan, SRS hujjati).
2. Tavsiya etilgan tuzilmadan foydalaning:

Kirish.

Foydalanuvchi talablari.

Funktsional talablar.

Funktsional bo'lmagan talablar.

Cheklovlar (masalan, faqat ma'lum qurilmalar uchun qo'llab-quvvatlash).
Nazorat savollari
1. Dasturiy ta'minot talablari nima va nima uchun ularni ishlab chiqish dasturiy
ta'minotni ishlab chiqish jarayonida muhim qadam hisoblanadi?
2. Funktsional, funktsional bo'lmagan va foydalanuvchi talablari o'rtasidagi farq
nima? Har bir tur uchun misollar keltiring.
3. Nima uchun to'liq talablar loyiha muvaffaqiyatsizlikka olib kelishi mumkin?
Amaliyotdan misollar keltiring.
4. Talablarni to'plash uchun qanday usullardan foydalanish mumkin va tegishli
usulni qanday tanlash mumkin?
5. Foydalanuvchi hikoyasi formatini tushuntiring. Nima uchun talablarni tavsiflash
foydali?
6. Talablarning to'g'ri va aniq shakllantirilganligini qanday tekshirish mumkin?
Ushbu tekshirish uchun qanday vositalardan foydalanish mumkin?
7. SMART mezonlari nima va ular talablarni ishlab chiqishda qanday qo'llaniladi?
8. Funktsional talablar bilan ishlashda qanday xatolar yuzaga kelishi mumkin?
Qanday qilib ularni oldini olish mumkin?
9. Talablarning o'lchanishi nimani anglatadi va nima uchun bu funktsional
bo'lmagan talablar uchun muhim?
10.Funktsional bo'lmagan talablarni yozishda qanday jihatlarga e'tibor berish
kerak? Misollar keltiring.
15
11.Talablardagi nomuvofiqliklarni aniqlash uchun qanday yondashuvlardan
foydalanish mumkin?
12.Ishlash va kengayish talablari dasturiy ta'minot dizayniga qanday ta'sir qiladi?
13.SRS hujjati nima va uning tuzilishi qanday? U qanday turdagi talablarni o'z
ichiga oladi?
14.Loyihani ishlab chiqish jarayonida talablarning o'zgarishi loyihaga qanday ta'sir
qilishi mumkin? Ushbu o'zgarishlarni boshqarish uchun qanday qadamlar
qo'yilishi mumkin?
15.To'liqlik va izchillik uchun talablarni tahlil qilish nima uchun muhim? Ushbu
qadamni e'tiborsiz qoldirish qanday oqibatlarga olib keladi?
Adabiyotlar
1. Chernikov B. V. Dasturiy ta'minot sifatini boshqarish [Elektron resurs]: Darslik
/ B. V. Chernikov. – Moskva: "FORUM" nashriyoti, 2022. – 240 b.
2. Chernikov B. V. Dasturiy ta'minot sifatini baholash: Seminar [Elektron resurs]:
o'quv qo'llanma. – Moskva: "FORUM" nashriyoti, 2012. – 400 b.
3. Kirillov V. I. Texnik tizimlarni metrologik ta'minlash: Darslik / V. I. Kirillov. –
M.: NIC INFRA-M; Mn.: noyabr. Bilim, 2013 yil.
4. Dubovoy N. D. Metrologiya, standartlashtirish va sertifikatlashtirish asoslari:
Darslik / N. D. Dubovoy, E. M. Portnov. – M.: ID FORUM: NITs INFRA-M,
2014. – 256 p.
5. Koshevaya I. P. Metrologiya, standartlashtirish, sertifikatlash: Darslik / I. P.
Koshevaya, A. A. Kanke. – M.: ID FORUM: NITs INFRA-M, 2012. – 416 p.
6. Gerasimov B. N. Sifat menejmenti: Darslik / B. N. Gerasimov, V. Churikov. –
M.: Universitet darsligi: INFRA-M, 2011. – 304 b.
7. www . gov . uz – O‘zbekiston Respublikasi Hukumat portali.
8. https :// www . intuit . ru / o'qish / kurslar /1109/204/ ma'lumot
9. http://ictacademy.uz/fly
16
Download