4.1.1 Talab nima? Yuqoridagi tavsif talablarni "tahrirlashchilar tomonidan tizimning amalga oshirishini kutgan har qanday narsa" deb ta'riflash intuitiv, ammo ehtimol bir ozgina soddalikka ega bo'lishi mumkin. Dasturda turli xil "sifatlar" mavjud bo'lishi mumkin - funksional xulqat, uni qurish uslubi, foydalanuvchi interfeysi estetikasi, xavfsizligi va hokazo. Haqiqatan ham, stakeholderlar tomonidan boshqarilishi va yozilishi kerak bo'lgan ko'plab e'tiborlarni ko'rib chiqishga ehtiyoj bor.
Amaliyotda, talablarni ikkita yuqori darajadagi kategoriya bo'limiga ajratish odatiydir:
Funksional talablarga funksiyalarni va non-funksional talablarni o'z ichiga oladi. Ushbu dikhotomiya, bu ikkita talab toifasi hayotiy sikl davomida turli usullarda yakalab olinadi va boshqariladi.
Funksional talablarda (oftda foydalanish turlariga ko'ra olinadi - quyida ko'rinadi), dastur tizimining asosiy iste'dodli xulqat xususiyatlarini o'z ichiga oladi. Funksional talablar sinovlari ko'plab kirish / chiqish xulqatini amalga oshiradi; kutib turilgan (yoki kutilmagan) kirish kiriladi va ko'zlangan chiqishlar talablarga mosligini tekshirib chiqiladi.
Non-funksional talablar (soddalashtirish uchun) funksional talablar emas talablardir. Ajoyiblikka qaramasdan, tafsilotli, ma'nosiz ta'rifning topishga muammo bo'lishi odatda ko'p ehtimol (Glinzning bu masalaga oid maqolasi bu muammo haqida turli xalqlar orasidagi tarqalgan masalalarini yaxshi tasvirlaydi [58]). Sodda bo'lish uchun (va bu odatda noma'lumlik qoldirishga imkon beradi), biz non-funksional talabni oddiyroq ta'rifi sifatida ta'riflaymiz - u tizimning xulqati yoki tuzilmasining nima qilib funksional ta'tibotlarni amalga oshirishga qo'shimcha hissa qilishi kerakligini aniqlaydi.
Mashq: Mashqda, non-functional talablar, dasturlash sifati bilan bog'liq bo'lgan juda ko'p ko'rinishlarni qamrab oladi. 2-bobdagi dasturlash sifati modellari bilan tanishib chiqing va shu modellar ichidagi ko'plik mohiyatli talablar oxir-oqibat non-functional talablardir. Bu ham dasturlash sifati bo'yicha non-functional talablarning hech qanday ikkinchi darajadagi ahamiyatga ega bo'lmaganligi haqida oldindan paydo bo'lgan g'oyani olib tashlash uchun xizmat qilishi kerak.