Tizimlar uchun funktsional talablarni tavsiflashning zamonaviy usullari. Alister Kobern. Kitobni ko'rib chiqish va qo'shimchalar

Kitobda muammo bayonotining bir qismini yozishning bir usuli, ya'ni foydalanish misoli usuli tasvirlangan.

Bu nima? Bu foydalanuvchining tizim (yoki biznes) bilan oΚ»zaro aloqasi stsenariysining tavsifi. Bunday holda, tizim qora quti vazifasini bajaradi (va bu murakkab dizayn vazifasini o'zaro ta'sirni loyihalash va ushbu o'zaro ta'sirni ta'minlashga bo'lish imkonini beradi). Shu bilan birga, o'qish uchun qulaylikni ta'minlaydigan, shu jumladan ishtirok etmaganlar uchun ham, manfaatdor tomonning maqsadlariga to'liqligi va muvofiqligini ba'zi tekshirishlarga imkon beruvchi notaviy standartlar joriy etiladi.

Ish misolidan foydalaning

Elektron pochta orqali saytdagi avtorizatsiya misolidan foydalanib, stsenariy qanday ko'rinadi:

(Tizim) Shaxsiy hisobingizga kirish uchun veb-saytga kiring. ~~ (dengiz sathi)

Kontekst: Ruxsatsiz mijoz saytga kiradi, shunda sayt uni taniydi va u uchun shaxsiy ma'lumotlarni ko'rsatadi: ko'rish tarixi, xaridlar tarixi, joriy bonus ballari soni va boshqalar, login sifatida elektron pochtadan foydalanadi. 
Daraja: foydalanuvchi maqsadi
Bosh qahramon: mijoz (bizning onlayn do'konimizga tashrif buyuruvchi)
Qo'llash doirasi: Onlayn do'kon veb-sayti bilan mijozning o'zaro aloqasi
Manfaatdor tomonlar va manfaatlar:

  • sotuvchi shaxsiy xabarlarni ko'proq qamrab olish uchun saytga tashrif buyuruvchilarning maksimal soni aniqlanishini xohlaydi;
  • xavfsizlik bo'yicha mutaxassis tashrif buyuruvchining shaxsiy ma'lumotlariga ruxsatsiz kirish holatlari yo'qligiga ishonch hosil qilishni xohlaydi, shu jumladan bitta hisob uchun parolni topishga urinish yoki zaif parol bilan hisobni qidirish;
  • tajovuzkor jabrlanuvchining bonuslariga kirishni xohlaydi,
  • raqobatchilar mahsulotlar haqida salbiy sharhlar qoldirishni xohlashadi,
  • Botnet do'konning mijozlar bazasini olishni va saytni ishlamaydigan qilish uchun hujumdan foydalanishni xohlaydi.

Old shartlar: tashrif buyuruvchiga ruxsat berilmasligi kerak.
Minimal kafolatlar: tashrif buyuruvchi avtorizatsiyaga urinish muvaffaqiyatli yoki muvaffaqiyatsizligini bilib oladi.
Muvaffaqiyat kafolatlari: tashrif buyuruvchiga ruxsat beriladi.

Asosiy stsenariy:

  1. Mijoz avtorizatsiya qilishni boshlaydi.
  2. Tizim mijozning avtorizatsiya qilinmaganligini tasdiqlaydi va "23-sonli xavfsizlik qoidasi" ga binoan ma'lum bir seansdan (bir nechta hisoblar uchun zaif parolni qidirish) muvaffaqiyatsiz avtorizatsiya urinishlari sonidan oshmaydi.
  3. Tizim avtorizatsiyaga urinishlar soni uchun hisoblagichni oshiradi.
  4. Tizim mijozga avtorizatsiya shaklini ko'rsatadi.
  5. Mijoz elektron pochta va parolni kiritadi.
  6. Tizim tizimda bunday elektron pochtaga ega bo'lgan mijozning mavjudligini va parolning mos kelishini va "24-sonli xavfsizlik qoidasi" ga muvofiq ushbu hisobga kirishga urinishlar soni oshib ketmasligini tasdiqlaydi.
  7. Tizim mijozga avtorizatsiya qiladi, ko'rish tarixini va ushbu seans savatini ushbu mijoz hisobining oxirgi sessiyasiga qo'shadi.
  8. Tizim avtorizatsiya muvaffaqiyati haqida xabarni ko'rsatadi va mijoz avtorizatsiya uchun to'xtatilgan skript bosqichiga o'tadi. Bunday holda, sahifadagi ma'lumotlar shaxsiy hisob ma'lumotlarini hisobga olgan holda qayta yuklanadi.

Kengaytmalar:
2.a. Mijoz allaqachon avtorizatsiya qilingan:
 2.a.1. Tizim mijozni ilgari amalga oshirilgan avtorizatsiya fakti to'g'risida xabardor qiladi va skriptni to'xtatish yoki 4-bosqichga o'tishni taklif qiladi va agar 6-bosqich muvaffaqiyatli bajarilgan bo'lsa, 7-bosqich aniqlik bilan amalga oshiriladi:
 2.a.7. Tizim eski hisob ostidagi mijozni o'chirib qo'yadi, yangi hisob bo'yicha mijozga avtorizatsiya qiladi, shu bilan birga ushbu o'zaro aloqa seansining ko'rish tarixi va savati eski hisob qaydnomasida qoladi va yangisiga o'tkazilmaydi. Keyin 8-bosqichga o'ting.
2.b β€œXavfsizlik qoidasi β„– 23”ga muvofiq avtorizatsiyaga urinishlar soni chegaradan oshib ketdi:
 2.b.1 4-bosqichga o'ting, avtorizatsiya formasida qo'shimcha ravishda captcha ko'rsatiladi
 2.b.6 Tizim to'g'ri captcha kiritishni tasdiqlaydi
    2.b.6.1 Captcha noto'g'ri kiritilgan:
      2.b.6.1.1. tizim ushbu hisob uchun muvaffaqiyatsiz avtorizatsiya urinishlari hisoblagichini ham oshiradi
      2.b.6.1.2. tizim xato haqida xabarni ko'rsatadi va 2-bosqichga qaytadi
6.a. Ushbu e-pochta bilan hech qanday hisob topilmadi:
 6.a.1 Tizim muvaffaqiyatsizlik haqida xabarni ko'rsatadi va 2-bosqichga o'tish yoki "Foydalanuvchini ro'yxatdan o'tkazish" stsenariysiga o'tish va kiritilgan elektron pochtani saqlashni tanlashni taklif qiladi,
6.b. Ushbu e-pochtadagi hisob paroli kiritilgan parolga mos kelmaydi:
 6.b.1 Tizim ushbu hisob qaydnomasiga kirish uchun muvaffaqiyatsiz urinishlar hisoblagichini oshiradi.
 6.b.2 Tizim muvaffaqiyatsizlik haqida xabarni ko'rsatadi va β€œParolni tiklash” stsenariysiga o'tish yoki 2-bosqichga o'tishni tanlashni taklif qiladi.
6.c: Bu hisob uchun kirishga urinish hisoblagichi β€œXavfsizlik qoidasi β„– 24” chegarasidan oshib ketdi.
 6.c.1 Tizim X daqiqa davomida hisob qaydnomasiga kirishni bloklash haqidagi xabarni ko'rsatadi va 2-bosqichga o'tadi.

Nima ajoyib

To'liqlik va maqsadlarga muvofiqligini tekshiradi, ya'ni muammoni shakllantirish bosqichida kamroq xatolarga yo'l qo'yib, tekshirish uchun boshqa tahlilchiga talablar qo'yishingiz mumkin.

Qora quti tizimi bilan ishlash sizga avtomatlashtiriladigan narsalarni amalga oshirish usullaridan ishlab chiqish va mijoz bilan muvofiqlashtirishni ajratish imkonini beradi.

Bu tahlilchi yo'lining bir qismi, qulaylikning asosiy qismlaridan biri. Foydalanuvchi stsenariysi uning harakatining asosiy yo'llarini belgilaydi, bu esa dizayner va mijozning tanlov erkinligini sezilarli darajada kamaytiradi va dizaynni ishlab chiqish tezligini oshirishga yordam beradi.

Tavsifdagi har bir shovqin bosqichida istisnolar aniqlangan joydan juda mamnunman. To'liq AT tizimi ba'zilari qo'lda, ba'zilari avtomatik ravishda (yuqoridagi misolda bo'lgani kabi) istisnolardan foydalanishni ta'minlashi kerak.

Tajriba shuni ko'rsatadiki, noto'g'ri o'ylangan istisnolardan foydalanish tizimni juda noqulay tizimga aylantirishi mumkin. Sovet davrida qaror qabul qilish uchun siz turli xizmatlardan bir nechta ruxsat olishingiz kerak bo'lgan voqeani eslayman va oxirgi xizmatda aytilishi qanchalik og'riqli bo'lsa - lekin arizangiz noto'g'ri nomda yoki boshqa xatoda. tinish belgilari, hamma narsani qayta bajaring va hamma narsani qayta muvofiqlashtiring.

Men istisnolar uchun o'ylamagan tizimning ishlash mantig'i tizimni sezilarli darajada qayta ishlashni talab qiladigan vaziyatlarga tez-tez duch kelaman. Shu sababli, tahlilchi ishining asosiy ulushi istisnolarni hal qilishga sarflanadi.

Matn belgilari, diagrammalardan farqli o'laroq, ko'proq istisnolarni aniqlash va qoplash imkonini beradi.

Amaliyotdan usulga qo'shimcha

Foydalanish holati, foydalanuvchi hikoyasidan farqli o'laroq, bayonotning mustaqil ravishda ustuvor qismi emas.

Yuqoridagi stsenariyda β€œ6.a. Bu e-pochta bilan hech qanday hisob topilmadi.” va keyingi qadam "6.a.1 Tizim xatolik haqida xabarni ko'rsatadi va 2-bosqichga o'tadi." Qanday salbiy narsalar sahna ortida qoldi? Mijoz uchun har qanday qaytish uning ma'lumotlarni kiritish bo'yicha qilgan barcha ishlari poligonga tashlanganiga tengdir. (Bu faqat skriptda ko'rinmaydi!) Nima qilish mumkin? Bu sodir bo'lmasligi uchun skriptni qayta tiklang. Buni qilish mumkinmi? Siz misol sifatida Google avtorizatsiya skriptini ko'rishingiz mumkin.

Stsenariyni optimallashtirish

Kitob rasmiylashtirish haqida gapiradi, lekin bunday stsenariylarni optimallashtirish usullari haqida kam aytiladi.

Ammo stsenariylarni optimallashtirish orqali usulni kuchaytirish mumkin va foydalanish holatlarini rasmiylashtirish usuli buni amalga oshirishga imkon beradi. Xususan, istisnolardan xalos bo'lish yoki mijozlar sayohatini minimallashtirish uchun yuzaga keladigan har bir istisno haqida o'ylashingiz, sababini aniqlashingiz va skriptni qayta tiklashingiz kerak.

Onlayn do'kondan buyurtma berishda siz etkazib berish shahrini kiritishingiz kerak. Ma'lum bo'lishicha, do'kon xaridor tanlagan shaharga tovarlarni etkazib bera olmaydi, chunki u erga etkazib bermaydi, o'lchamdagi cheklovlar yoki tegishli omborda tovar yo'qligi sababli.

Agar biz ro'yxatdan o'tish bosqichida o'zaro ta'sir qilish stsenariysini oddiygina tasvirlab beradigan bo'lsak, biz "mijozga etkazib berishning iloji yo'qligi haqida xabar bering va shaharni yoki aravaning tarkibini o'zgartirishni taklif qiling" deb yozishimiz mumkin (va ko'plab yangi tahlilchilar u erda to'xtashadi). Ammo bunday holatlar juda ko'p bo'lsa, stsenariyni optimallashtirish mumkin.

Sizga kerak bo'lgan birinchi narsa - biz etkazib beradigan shaharni tanlashga ruxsat berishdir. Buni qachon qilish kerak? Veb-saytda mahsulotni tanlashdan oldin (tushuntirish bilan IP orqali shaharni avtomatik aniqlash).

Ikkinchidan, biz faqat mijozga etkazib beradigan tovarlarni tanlash imkoniyatini berishimiz kerak. Buni qachon qilish kerak? Tanlov vaqtida - mahsulot kafel va mahsulot kartasida.

Ushbu ikkita o'zgarish ushbu istisnoni bartaraf etish uchun uzoq yo'lni bosib o'tadi.

O'lchovlar va ko'rsatkichlarga qo'yiladigan talablar

Istisnolardan foydalanishni minimallashtirish vazifasini ko'rib chiqayotganda, siz hisobot topshirig'ini belgilashingiz mumkin (foydalanish holati tasvirlanmagan). Qancha istisnolar bor edi, ular qanday hollarda sodir bo'ldi, shuningdek, qancha kiruvchi stsenariy muvaffaqiyatli o'tdi.

Lekin afsuski. Tajriba shuni ko'rsatadiki, ushbu shakldagi stsenariylar uchun hisobot talablari etarli emas, asosan foydalanish misolida tasvirlanmagan jarayonlar uchun hisobot talablarini hisobga olish kerak.

Foydalanish imkoniyatiga kirish

Amaliyotimizda biz foydalanish holatlari tavsifi shaklini ob'ektlarning o'ziga xos atributlari va mijoz qaror qabul qilish uchun ma'lumotlar tavsifi bilan kengaytirdik, bu esa keyingi foydalanish qulayligini oshiradi.

Foydalanish qulayligi uchun biz kiritish bo'limini qo'shdik - ma'lumotlarni ko'rsatish.

Avtorizatsiya bilan stsenariyda, bu mijozning tizimda avtorizatsiya qilinganligi. Agar mijoz oldindan avtorizatsiya qilingan bo'lsa, muvaffaqiyatli avtorizatsiyadan so'ng navigatsiya tarixi va savatni yangi hisobga o'tkazish haqida ogohlantirishni ko'rsating.

Umuman olganda, bu mijoz uchun stsenariy bo'yicha o'zining keyingi harakatlari to'g'risida qaror qabul qilishi uchun zarur bo'lgan ma'lumotlarning namoyishi (siz bu ma'lumotlar mijoz uchun etarlimi yoki yo'qligini so'rashingiz mumkin, yana nima kerak, nima ma'lumot beradi). mijoz qaror qabul qilishi kerak).  
Shuningdek, kiritilgan ma'lumotlarni kiritish maydonlariga bo'lish kerak, agar ular alohida ishlov berilsa va turli xil istisnolar shakllantirilsa.

Mijoz avtorizatsiyasi misolida, agar siz kiritilgan ma'lumotlarni login va parolga ajratsangiz, alohida login va alohida parolni kiritish bosqichlarini ta'kidlash uchun avtorizatsiya skriptini o'zgartirishga arziydi (va bu Yandex, Google-da qilingan, ammo ko'pgina onlayn-do'konlarda bajarilmaydi).

Kerakli ma'lumotlarni o'zgartirishga erishish

Bundan tashqari, skriptdan ma'lumotlarni o'zgartirish algoritmlari uchun talablarni chiqarib olishingiz mumkin.

misollar:

  • Onlayn do'konda mahsulotni sotib olish to'g'risida qaror qabul qilish uchun mijoz mahsulot kartasida ushbu mahsulotni o'z shahriga etkazib berish imkoniyatini, narxini bilishi kerak (ular mahsulotning mavjudligi asosida algoritm bo'yicha hisoblanadi). omborlar va ta'minot zanjiri parametrlari).
  • Qidiruv qatoriga iborani kiritishda mijozga algoritm bo'yicha qidiruv takliflari ko'rsatiladi (ular algoritm tomonidan yaratilgan...).

jami

Umuman olganda, kitobni o'qib chiqqandan so'ng, afsuski, tahlilchidan biznes muammolarigacha, ishlab chiquvchi uchun rasmiylashtirilgan texnik spetsifikatsiyaga qadar qanday borish kerakligi aniq emas. Kitob jarayonning faqat bir qismini aytib beradi, kiritish bosqichlari aniq emas va keyingi qadamlar noaniq. Foydalanish holatining o'zi ko'pincha ishlab chiquvchi uchun to'liq bayonot emas.

Shunga qaramay, bu ob'ekt va sub'ekt o'rtasidagi o'zaro ta'sir stsenariylarini rasmiylashtirish va qayta ishlashning juda yaxshi usuli, agar o'zaro ta'sir sub'ektdagi biror narsaning o'zgarishiga olib keladi. Bu aniq istisnolarni qidirish nuqtalari bilan tekshirilishi mumkin bo'lgan talablarga ruxsat beruvchi bir nechta yozish usullaridan biridir.

Kitob tahlilchilar uchun sinovdan o'tkaziladigan pyesalar yozishni boshlashi uchun o'qishi shart.

Manba: www.habr.com

a Izoh qo'shish