3-bo‘lim

Talablarni yig'ish va tahlil qilish

Funksional va nofunksional talablar, foydalanuvchi hikoyalari, qabul mezonlari va talablarni hujjatlashtirish.

🕑 11 daqiqa o‘qish 📄 1 137 so‘z 👁 6 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. Talab nima?
  2. Nofunksional talablar turlari
  3. Talablarni yig'ish usullari
  4. Yaxshi talab qanday bo'ladi?
  5. Foydalanuvchi hikoyalari
  6. Qabul mezonlari
  7. Gherkin formati
  8. INVEST mezonlari
  9. Foydalanish holatlari
  10. Talablarni ustuvorlashtirish
  11. MoSCoW usuli
  12. Qiymat va murakkablik matritsasi
  13. Talablar hujjati
  14. Talablarni tekshirish
  15. Talablarning o'zgarishi
  16. Xulosa

Loyihalarning muvaffaqiyatsizlik sabablari orasida birinchi o'rinda noaniq talablar turadi. Bu bo'lim shu muammoga bag'ishlangan.

Talab nima? #

Talab - tizim nima qilishi kerakligini yoki qanday xususiyatga ega bo'lishi kerakligini bildiruvchi bayonot.

Ikki turdagi talablar Funksional Tizim NIMA qiladi • Foydalanuvchi ro'yxatdan o'tadi • Savatga mahsulot qo'shiladi • Buyurtma tasdiqlanadi • Admin hisobot yuklab oladi • Parolni tiklash xati yuboriladi Ko'pincha oson aniqlanadi Nofunksional Tizim QANDAY ishlaydi • Sahifa 2 soniyada ochiladi • 10 000 foydalanuvchi bir vaqtda • Ish vaqtining 99.9 foizi ishlaydi • Parollar xeshlangan holda saqlanadi • Mobil qurilmada ishlaydi Ko'pincha unutiladi
Nofunksional talablar arxitekturaga ko'proq ta'sir qiladi
Nofunksional talablarni unutmang

"Sayt ishlaydi" - lekin 100 foydalanuvchi kirganda qulaydi. "Ma'lumot saqlanadi" - lekin parollar ochiq matnda.

Bu talablar keyin qo'shib bo'lmaydi - ular arxitekturaga kiritilishi kerak.

Kechikkan misol: loyiha tugagach "bizga 50 000 foydalanuvchi kerak" deyilsa, ko'pincha butun tizimni qaytadan yozishga to'g'ri keladi.

Nofunksional talablar turlari #

KategoriyaMisol
Ishlash tezligiSahifa 2 soniyada ochilsin
Kengaytiriluvchanlik10 000 bir vaqtdagi foydalanuvchi
MavjudlikYiliga 8 soatdan ko'p to'xtamasin
XavfsizlikMa'lumot TLS orqali uzatilsin
QulaylikYangi foydalanuvchi 5 daqiqada o'rgansin
MoslikChrome, Firefox, Safari oxirgi 2 versiyasi
QonuniyShaxsiy ma'lumotlar mamlakat ichida saqlansin
Qo'llab-quvvatlanuvchanlikYangi to'lov usuli 1 haftada qo'shilsin

Talablarni yig'ish usullari #

UsulQachon foydali
SuhbatChuqur tushunish kerak bo'lganda
So'rovnomaKo'p foydalanuvchi bo'lganda
KuzatishFoydalanuvchi o'zi tushuntira olmaganda
Mavjud hujjatlarni o'rganishEski tizim almashtirilayotganda
PrototipTalab noaniq bo'lganda
Ishchi seminarKo'p manfaatdor tomon bo'lganda
Raqobatchilarni tahlil qilishBozor standartini bilish uchun
Kuzatish - eng kuchli usul

Foydalanuvchidan "qanday ishlaysiz?" deb so'rasangiz, u ideal jarayonni tasvirlaydi.

Uni kuzatib tursangiz, haqiqiy jarayonni ko'rasiz: Excel fayl, qo'lda ko'chirish, qog'ozga yozib qo'yish, hamkasbga qo'ng'iroq.

Aynan shu joylarda avtomatlashtirish uchun eng katta imkoniyat bor.

Yaxshi talab qanday bo'ladi? #

Talab qanday bo'lishi kerak? Aniq bir xil tushuniladi O'lchanadigan tekshirish mumkin Erishiladigan real imkoniyat Zarur haqiqatan kerak Ziddiyatsiz boshqasiga qarshi emas Kuzatiladigan manbasi ma'lum Qochish kerak bo'lgan so'zlar "tez", "qulay", "zamonaviy", "oson", "ko'p", "yaxshi", "iloji boricha" Bu so'zlarni har kim boshqacha tushunadi
Talab tekshirilishi mumkin bo'lsagina, u talab hisoblanadi
Yomon talabYaxshi talab
Sayt tez ishlasinKatalog sahifasi 95% hollarda 2 soniyada ochilsin
Interfeys qulay bo'lsinYangi foydalanuvchi buyurtmani 3 qadamda bersin
Ko'p foydalanuvchini ko'tarsin5000 bir vaqtdagi sessiya, javob vaqti 500 ms dan oshmasin
Xavfsiz bo'lsinParollar bcrypt bilan xeshlansin, sessiya 30 daqiqada tugasin
Hisobot chiqarsinAdmin oylik savdo hisobotini CSV formatida yuklab olsin

Foydalanuvchi hikoyalari #

Agile da talablar foydalanuvchi tilida yoziladi.

Natija
Men [rol] sifatida
[maqsad] ni xohlayman,
chunki [sabab].
Natija
Men xaridor sifatida
savatimdagi mahsulot sonini o'zgartira olishni xohlayman,
chunki fikrimni o'zgartirganda hammasini qaytadan qo'shishni istamayman.
Natija
Men admin sifatida
oxirgi oydagi buyurtmalar hisobotini yuklab olishni xohlayman,
chunki har oy uni qo'lda tayyorlash 3 soat vaqt oladi.
"Chunki" qismi eng muhim

Sabab yozilsa:

  1. Dasturchi haqiqiy ehtiyojni tushunadi
  2. Ba'zan oddiyroq yechim topiladi
  3. Ustuvorlikni belgilash oson bo'ladi

Yuqoridagi ikkinchi misolda: agar sabab "3 soat vaqt ketadi" bo'lsa, ehtimol hisobotni avtomatik email bilan yuborish yanada yaxshiroq yechim bo'lar.

Qabul mezonlari #

Hikoya - bu suhbat uchun eslatma. Qabul mezonlari uni aniq qiladi.

Natija
Hikoya: Xaridor savatdagi mahsulot sonini o'zgartira oladi

Qabul mezonlari:
1. Savat sahifasida har bir mahsulot yonida son maydoni bor
2. Sonni 1 dan omborda mavjud miqdorgacha o'zgartirish mumkin
3. Son o'zgarganda jami summa avtomatik qayta hisoblanadi
4. Son 0 ga tushirilsa, mahsulot savatdan olib tashlanadi
5. Omborda yetarli mahsulot bo'lmasa, xabar ko'rsatiladi
6. Sahifa qayta yuklanmasdan yangilanadi

Gherkin formati #

GHERKIN
Xususiyat: Savatdagi mahsulot sonini o'zgartirish

  Ssenariy: Sonni oshirish
    Nazarda tutilgan savatda 2 dona "Klaviatura" bor
    Va omborda 10 dona mavjud
    Qachonki foydalanuvchi sonni 5 ga o'zgartirsa
    U holda savatda 5 dona ko'rsatiladi
    Va jami summa qayta hisoblanadi

  Ssenariy: Omborda yetarli emas
    Nazarda tutilgan savatda 2 dona "Klaviatura" bor
    Va omborda 3 dona mavjud
    Qachonki foydalanuvchi sonni 5 ga o'zgartirsa
    U holda "Omborda faqat 3 dona bor" xabari ko'rsatiladi
    Va savatdagi son 2 bo'lib qoladi
Gherkin nima uchun qulay?

Bu format biznes tili va avtomatik test o'rtasidagi ko'prik.

Mijoz uni o'qiy oladi, dasturchi esa uni to'g'ridan-to'g'ri testga aylantiradi (Behat, Cucumber, pytest-bdd).

INVEST mezonlari #

Yaxshi foydalanuvchi hikoyasi:

HarfMa'nosiIzoh
IIndependentBoshqa hikoyalarga bog'liq emas
NNegotiableMuhokama qilinishi mumkin
VValuableFoydalanuvchiga qiymat beradi
EEstimableBaholash mumkin
SSmallBitta sprintga sig'adi
TTestableTekshirish mumkin
Juda katta hikoyalarni bo'ling
Natija
YOMON (epik):
"Foydalanuvchi to'lov qila oladi"

YAXSHI (bo'lingan):
1. Foydalanuvchi karta bilan to'lay oladi
2. Foydalanuvchi to'lovni bekor qila oladi
3. Foydalanuvchi to'lov cheki oladi
4. Foydalanuvchi saqlangan kartani ishlata oladi

Katta hikoya - epik deb ataladi va u bo'linishi kerak.

Foydalanish holatlari #

Murakkab jarayonlar uchun batafsilroq shakl:

Natija
Nomi:            Buyurtma berish
Aktyor:          Ro'yxatdan o'tgan xaridor
Oldindan shart:  Foydalanuvchi tizimga kirgan, savatda mahsulot bor

Asosiy oqim:
  1. Foydalanuvchi "Buyurtma berish" tugmasini bosadi
  2. Tizim yetkazish manzillarini ko'rsatadi
  3. Foydalanuvchi manzilni tanlaydi
  4. Tizim yetkazish narxini hisoblaydi
  5. Foydalanuvchi to'lov usulini tanlaydi
  6. Tizim buyurtmani yaratadi va tasdiqlash yuboradi

Muqobil oqimlar:
  3a. Manzil yo'q:
      3a1. Foydalanuvchi yangi manzil qo'shadi
      3a2. 4-qadamga qaytiladi

  6a. To'lov rad etildi:
      6a1. Tizim xato xabarini ko'rsatadi
      6a2. Buyurtma "to'lanmagan" holatida saqlanadi
      6a3. 5-qadamga qaytiladi

Yakuniy shart: Buyurtma yaratilgan, ombor kamaytirilgan
Muqobil oqimlar - eng qimmatli qism

Asosiy oqimni hamma o'ylaydi. Xatolar esa deyarli har doim muqobil oqimlarda yashiringan bo'ladi:

  • Internet uzildi
  • To'lov yarim yo'lda to'xtadi
  • Mahsulot boshqa xaridor tomonidan sotib olindi
  • Foydalanuvchi ikki marta tugma bosdi

Talablarni ustuvorlashtirish #

MoSCoW usuli #

MoSCoW - talablarni ustuvorlashtirish Must bo'lishi shart Usiz mahsulot ishlamaydi. Kirish, katalog, savat, to'lov. Should bo'lgani yaxshi Muhim, lekin vaqtincha muqobil yo'l bor. Qidiruv filtri. Could bo'lsa bo'ldi Yoqimli qo'shimcha. Sevimlilar ro'yxati, tungi rejim. Won't hozircha yo'q Bu relizda qilinmaydi. Keyingi versiyaga qoldiriladi.
"Won't" ni yozib qo'yish "Must" ni yozish kabi muhim
"Won't" ni aniq yozing

Nima qilinmasligini yozib qo'yish nizolarning oldini oladi.

"Biz buni kelishgan edik-ku?" degan bahsni tugatish uchun hujjatda "bu relizda qilinmaydi" deb turishi kerak.

Qiymat va murakkablik matritsasi #

OsonQiyin
Yuqori qiymatDarhol qilingRejalashtiring
Past qiymatVaqt qolsaQilmang

Talablar hujjati #

MARKDOWN
# Buyurtma modulining talablari

## 1. Maqsad
Xaridor onlayn buyurtma bera olishi va uning holatini kuzatishi.

## 2. Doira
**Kiradi:** savat, buyurtma berish, holat kuzatuvi, bekor qilish
**Kirmaydi:** qaytarish, ayirboshlash, chegirma kuponlari

## 3. Manfaatdor tomonlar
| Rol | Manfaati |
|-----|----------|
| Xaridor | Tez va tushunarli buyurtma |
| Operator | Buyurtmalarni ko'rish va boshqarish |
| Buxgalter | To'lov hisobotlari |

## 4. Funksional talablar

### FT-01 Savatga qo'shish
Foydalanuvchi katalogdan mahsulotni savatga qo'sha oladi.
- Ustuvorlik: Must
- Qabul mezonlari: ...

### FT-02 Buyurtma berish
...

## 5. Nofunksional talablar

### NFT-01 Ishlash tezligi
Buyurtma yaratish 3 soniyadan oshmasin (95-protsentil).

### NFT-02 Xavfsizlik
To'lov ma'lumotlari saqlanmasin, to'lov tizimiga yo'naltirilsin.

## 6. Cheklovlar
- PHP 8.2, MySQL 8.0
- Mavjud to'lov provayderi API si

## 7. Farazlar
- Foydalanuvchida internet bor
- Ombor ma'lumoti real vaqtda yangilanadi

## 8. Ochiq savollar
- Buyurtmani necha soat ichida bekor qilish mumkin?
- Qisman yetkazish qo'llab-quvvatlanadimi?
"Ochiq savollar" bo'limi majburiy

Har bir loyihada javobsiz savollar bo'ladi. Ularni yozib qo'yish kerak - aks holda dasturchi o'zicha taxmin qiladi va bu taxmin noto'g'ri chiqadi.

Talablarni tekshirish #

Har bir talab uchun savollar
  1. Bu talab kimga kerak?
  2. Nima uchun kerak?
  3. Uni qanday tekshiramiz?
  4. Boshqa talabga zid emasmi?
  5. Uni bajarish mumkinmi?
  6. Nima bo'lsa muvaffaqiyat hisoblanadi?

Agar birontasiga javob topilmasa - talab hali tayyor emas.

Talablarning o'zgarishi #

O'zgarish - normal holat

Talablar o'zgaradi. Bu muvaffaqiyatsizlik emas - bu tabiiy jarayon.

Muhimi - o'zgarishni boshqarish:

  1. O'zgarish so'rovi rasman qayd etiladi
  2. Ta'siri baholanadi (vaqt, byudjet, boshqa modullar)
  3. Qaror qabul qilinadi va yozib qo'yiladi
  4. Reja yangilanadi

Boshqarilmagan o'zgarish "doira kengayishi" (scope creep) deb ataladi va loyihalarni o'ldiradigan asosiy sabablardan biri.

Natija
O'zgarish so'rovi #14

Talab qiluvchi:  Marketing bo'limi
Sana:            2026-07-15
Tavsif:          Buyurtmaga sovg'a o'rash imkoniyatini qo'shish

Ta'siri:
  - Savat interfeysi:      2 kun
  - Buyurtma modeli:       1 kun
  - Narx hisobi:           1 kun
  - Testlar:               1 kun
  - Jami:                  5 kun

Xavflar: buyurtma modeli o'zgargani uchun mavjud testlar qayta ko'riladi

Qaror:  Tasdiqlandi, 4-sprintga kiritildi
Imzo:   Mahsulot menejeri
Amaliy topshiriq
  1. "Talabalar davomatini hisobga oluvchi tizim" uchun 8 ta funksional talab yozing.
  2. Shu tizim uchun 5 ta nofunksional talab yozing.
  3. Uchtasini foydalanuvchi hikoyasi formatiga o'tkazing.
  4. Ularning har biriga 4 tadan qabul mezoni yozing.
  5. Bitta hikoya uchun Gherkin ssenariylarini yozing (asosiy + xato holati).
  6. Talablarni MoSCoW bo'yicha ustuvorlashtiring.
  7. "Buyurtma berish" uchun foydalanish holatini yozing, kamida 2 ta muqobil oqim bilan.
  8. Quyidagi talabni yaxshilang: "Tizim tez va qulay bo'lishi kerak".
  9. O'zgarish so'rovi shablonini to'ldiring.
  10. Loyihangiz uchun 5 ta "ochiq savol" yozing.

Xulosa #

  • Funksional talablar - tizim nima qiladi; nofunksional - qanday qiladi.
  • Nofunksional talablar arxitekturaga ta'sir qiladi va keyin qo'shib bo'lmaydi.
  • Yaxshi talab: aniq, o'lchanadigan, erishiladigan, ziddiyatsiz, tekshiriladigan.
  • "Tez", "qulay", "zamonaviy" kabi so'zlar talabni buzadi.
  • Foydalanuvchi hikoyasi rol, maqsad va sababni o'z ichiga oladi.
  • Qabul mezonlari hikoyani aniq va tekshiriladigan qiladi.
  • INVEST mezonlari hikoya sifatini baholaydi.
  • Muqobil oqimlar - eng ko'p xato yashiringan joy.
  • MoSCoW bilan ustuvorlashtiring; "Won't" ni ham yozing.
  • O'zgarish normal, lekin u boshqarilishi kerak.

Keyingi bo'limda Agile va Scrum ni batafsil ko'ramiz.

Xatolik topdingizmi?

Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.