Cara modern kanggo njlentrehake syarat fungsional kanggo sistem. Alistair Coburn. Review saka buku lan tambahan

Buku menika ngandharaken salah satunggaling metode kangge nyerat perangan dudutan masalah, inggih menika metode use case.

Opo iki? Iki minangka gambaran saka skenario interaksi pangguna karo sistem (utawa karo bisnis). Ing kasus iki, sistem tumindak minangka kothak ireng (lan iki ndadekake iku bisa kanggo dibagi tugas desain Komplek menyang ngrancang interaksi lan mesthekake interaksi iki). Ing wektu sing padha, standar notasi dienal, sing njamin gampang maca, kalebu kanggo non-peserta, lan ngidini sawetara mriksa kanggo jangkep lan tundhuk karo tujuan para pemangku kepentingan.

Gunakake conto kasus

Kaya apa skenario kasebut, nggunakake conto wewenang ing situs liwat email:

(Sistem) Mlebu menyang situs web kanggo ngakses akun pribadhi. ~~ (muka laut)

Konteks: Klien sing ora sah mlebu ing situs kasebut supaya situs kasebut ngenali dheweke lan nuduhake informasi pribadhi kanggo dheweke: riwayat browsing, riwayat tuku, nomer bonus saiki, lsp, nggunakake email minangka login. 
Tingkat: goal pangguna
Karakter utama: klien (pengunjung toko online kita)
Cakupan: Interaksi klien karo situs web toko online
Stakeholders lan kapentingan:

  • pemasar pengin jumlah maksimum pengunjung situs diidentifikasi kanggo jangkoan luwih saka surat pribadi,
  • spesialis keamanan pengin mesthekake yen ora ana kasus akses ora sah menyang data pribadhi pengunjung, kalebu nyoba ngira sandhi kanggo siji akun utawa nggoleki akun kanthi tembung sandhi sing lemah,
  • penyerang pengin entuk akses menyang bonus korban,
  • pesaing pengin ninggalake review negatif babagan produk,
  • Botnet pengin entuk basis pelanggan toko lan nggunakake serangan kanggo nggawe situs kasebut ora bisa digunakake.

Prasyarat: pengunjung kudu ora duwe wewenang.
Jaminan minimal: pengunjung bakal ngerti apa nyoba wewenang iku sukses utawa ora kasil.
Jaminan sukses: pengunjung wis sah.

Skenario utama:

  1. Klien miwiti wewenang.
  2. Sistem kasebut nandheske yen klien ora sah lan ora ngluwihi jumlah usaha wewenang sing ora kasil saka sesi tartamtu (nelusuri tembung sandhi sing lemah kanggo sawetara akun) miturut "Aturan Keamanan No. 23".
  3. Sistem nambah counter kanggo nomer usaha wewenang.
  4. Sistem nampilake formulir wewenang kanggo klien.
  5. Klien ngetik email lan sandhi.
  6. Sistem kasebut nandheske ananΓ© klien karo email kasebut ing sistem lan sandhi sing cocog lan jumlah upaya login menyang akun iki ora ngluwihi miturut "Aturan Keamanan No. 24".
  7. Sistem menehi wewenang klien, nambah riwayat telusuran lan kranjang sesi iki karo sesi pungkasan akun klien iki.
  8. Sistem nampilake pesen sukses wewenang lan pindhah menyang langkah skrip saka ngendi klien diselani kanggo wewenang. Ing kasus iki, data ing kaca diisi ulang kanthi njupuk data akun pribadhi.

Ekstensi:
2.a. Klien wis sah:
 2.a.1. Sistem kasebut menehi kabar marang klien babagan kasunyatan wewenang sing wis ditindakake sadurunge lan nawakake kanggo ngganggu skrip utawa pindhah menyang langkah 4, lan yen langkah 6 wis rampung, banjur langkah 7 ditindakake kanthi klarifikasi:
 2.a.7. Sistem deactorizes klien ing akun lawas, wewenang klien ing akun anyar, nalika sajarah browsing lan cart sesi interaksi iki tetep ing akun lawas lan ora pindhah menyang anyar. Sabanjure, pindhah menyang langkah 8.
2.b Jumlah usaha wewenang wis ngluwihi ambang miturut "Aturan Keamanan No. 23":
 2.b.1 Pindhah menyang langkah 4, captcha tambahan ditampilake ing formulir wewenang
 2.b.6 Sistem nandheske entri captcha bener
    2.b.6.1 Captcha salah ngetik:
      2.b.6.1.1. sistem mundhak counter saka usaha wewenang kasil kanggo akun iki uga
      2.b.6.1.2. sistem nampilake pesen gagal lan bali menyang langkah 2
6.a. Ora ana akun karo email iki sing ditemokake:
 6.a.1 Sistem nampilake pesen babagan kegagalan lan nawakake pilihan kanggo pindhah menyang langkah 2 utawa pindhah menyang skenario "Registrasi Pangguna" lan nyimpen email sing dilebokake,
6.b. Tembung sandhi kanggo akun sing nganggo email iki ora cocog karo sing dilebokake:
 6.b.1 Sistem mundhak counter saka gagal login nyoba kanggo akun iki.
 6.b.2 Sistem nampilake pesen babagan kegagalan lan nawakake pilihan kanggo pindhah menyang skenario "Pamulihan Sandi" utawa pindhah menyang langkah 2.
6.c: Counter nyoba mlebu kanggo akun iki wis ngluwihi batesan kanggo "Aturan Keamanan No. 24."
 6.c.1 Sistem nampilake pesen babagan pamblokiran login akun sajrone X menit lan nerusake menyang langkah 2.

Apa apik

Priksa kelengkapan lan kepatuhan karo tujuan, yaiku, sampeyan bisa menehi syarat kanggo analis liyane kanggo verifikasi, nggawe kesalahan sing luwih sithik ing tahap perumusan masalah.

Nggarap sistem kothak ireng ngijini sampeyan kanggo misahake pembangunan lan koordinasi karo customer apa bakal otomatis saka cara implementasine.

Iki minangka bagean saka jalur analis, salah sawijining bagean utama kegunaan. Skenario pangguna nemtokake dalan utama gerakane, sing nyuda kebebasan milih kanggo desainer lan pelanggan lan mbantu nambah kacepetan pangembangan desain.

Aku seneng banget karo papan ing katrangan ing ngendi pangecualian kanggo saben langkah interaksi diidentifikasi. Sistem IT sing lengkap kudu nyedhiyakake sawetara jinis pangecualian, sawetara kanthi manual, sawetara kanthi otomatis (kaya ing conto ing ndhuwur).

Pengalaman nuduhake manawa penanganan pengecualian sing ora dipikirake bisa gampang ngowahi sistem dadi sistem sing ora trep. Aku elinga crita nalika ing jaman Soviet, kanggo njaluk kaputusan, sampeyan kudu njaluk sawetara persetujuan saka layanan beda, lan carane nglarani iku nalika layanan pungkasan ngandika - nanging aplikasi sampeyan salah jeneng utawa sawetara kesalahan liyane ing. tandha wacan, gawe maneh kabeh lan koordinasi maneh kabeh.

Aku kerep nemoni kahanan ing ngendi logika operasi sistem sing ora dipikirake kanggo pengecualian mbutuhake reworking sistem sing signifikan. Amarga iki, bagean paling gedhe saka karya analis digunakake kanggo nangani pangecualian.

Notasi teks, minangka lawan diagram, ngidini luwih akeh pengecualian kanggo diidentifikasi lan ditutupi.

Tambahan saka cara saka laku

Kasus panggunaan ora minangka bagean prioritas saka statement kasebut, ora kaya crita pangguna.

Ing skenario ndhuwur, nimbang pengecualian "6.a. Ora ana akun karo email iki sing ditemokake. lan langkah sabanjure "6.a.1 Sistem nampilake pesen gagal lan nerusake menyang langkah 2." Apa perkara negatif sing ditinggalake? Kanggo klien, bali apa wae sing padha karo kasunyatan manawa kabeh karya sing ditindakake nglebokake data dibuwang menyang TPA. (Iku mung ora katon ing script!) Apa bisa rampung? Gawe maneh skrip supaya ora kedadeyan. Apa bisa nindakake iki? Sampeyan bisa - minangka conto, deleng skrip wewenang Google.

Optimasi skenario

Buku kasebut ngomong babagan formalisasi, nanging ora ujar babagan cara kanggo ngoptimalake skenario kasebut.

Nanging bisa uga nguatake cara kasebut kanthi ngoptimalake skenario, lan metode formalisasi kasus panggunaan ngidini iki ditindakake. Khusus, sampeyan kudu mikir babagan saben pangecualian sing kedadeyan, nemtokake sababe, lan mbangun maneh skrip supaya bisa nyingkirake pangecualian utawa nyilikake perjalanan pelanggan.

Nalika nggawe pesenan saka toko online, sampeyan kudu ngetik kutha pangiriman. Bisa uga toko ora bisa ngirim barang menyang kutha sing dipilih dening klien amarga ora ngirim ing kana, amarga watesan ukuran, utawa amarga kekurangan barang ing gudang sing cocog.

Yen kita mung njlèntrèhaké skenario interaksi ing tataran registrasi, kita bisa nulis "ngabari klien sing pangiriman iku mokal lan nawakake kanggo ngganti kutha utawa isi cart" (lan akeh analis anyar mandheg ana). Nanging yen ana akeh kasus kaya ngono, skenario kasebut bisa dioptimalake.

Wangsulan: Bab ingkang pisanan sampeyan kudu nindakake iku supaya sampeyan milih mung kutha ngendi kita bisa ngirim. Nalika nindakake iki? Sadurunge milih produk ing situs web (autodeteksi kutha liwat IP kanthi klarifikasi).

Kapindho, kita kudu menehi pilihan mung saka barang sing bisa dikirim menyang klien. Nalika nindakake iki? Ing wayahe pilihan - ing kothak produk lan kertu produk.

Rong owah-owahan iki adoh banget kanggo ngilangi pangecualian iki.

Requirements kanggo pangukuran lan metrik

Nalika nimbang tugas minimalake penanganan pangecualian, sampeyan bisa nyetel tugas nglaporake (kasus panggunaan ora diterangake). Pira pangecualian ana, ing kasus apa sing kedadeyan, ditambah pira skenario sing bakal ditindakake kanthi sukses.

Nanging sayang. Pengalaman nuduhake yen syarat nglaporake skenario ing wangun iki ora cukup; perlu kanggo nimbang syarat nglaporake kanggo proses sing diterangake utamane ora ing wangun kasus panggunaan.

Akses kanggo Usability

Ing praktik kita, kita wis nggedhekake formulir deskripsi kasus panggunaan kanthi deskripsi atribut khusus entitas lan data kanggo klien nggawe keputusan, sing nambah kegunaan sabanjure.

Kanggo desain migunani, kita nambah bagean input - tampilan data.

Ing skenario kanthi wewenang, iki minangka kasunyatan manawa klien diwenehi wewenang ing sistem kasebut. Yen klien wis sah, banjur nuduhake bebaya babagan ngoper riwayat navigasi lan cart menyang akun anyar sawise otorisasi sukses.

UmumΓ©, iki minangka tampilan informasi sing dibutuhake kanggo klien supaya bisa nggawe keputusan babagan tumindak luwih lanjut miturut skenario (sampeyan bisa takon apa data iki cukup kanggo klien, apa maneh sing dibutuhake, informasi apa sing ditindakake. klien kudu nggawe keputusan).  
Sampeyan uga kudu dibagi informasi sing dilebokake menyang kolom input yen diproses kanthi kapisah lan kanthi pambentukan pengecualian sing beda.

Ing conto karo wewenang klien, yen sampeyan misahake informasi sing dilebokake menyang login lan sandhi, mula kudu ngganti skrip wewenang kanggo nyorot tahapan ngetik login sing kapisah lan sandhi sing kapisah (lan iki ditindakake ing Yandex, Google, nanging ora rampung ing paling toko online).

Tekan transformasi data sing dibutuhake

Sampeyan uga bisa ngekstrak syarat kanggo algoritma konversi data saka skrip.

conto:

  • Kanggo nggawe keputusan kanggo tuku produk ing toko online, klien kudu ngerti ing kertu produk kemungkinan, biaya, wektu pangiriman menyang kutha prodhuk iki (sing diwilang dening algoritma adhedhasar kasedhiyan produk ing gudang lan parameter rantai pasokan).
  • Nalika ngetik frase menyang baris panelusuran, klien ditampilake saran panelusuran miturut algoritma (sing digawe dening algoritma ...).

Total

UmumΓ©, sawise maca buku, sayangΓ©, iku ora cetha carane pindhah kabeh cara saka Analyst kanggo masalah bisnis kanggo specification technical formal kanggo pangembang. Buku kasebut mung nyritakake bagean saka proses kasebut, kanthi langkah input ora jelas lan langkah sabanjure ora jelas. Kasus panggunaan dhewe paling asring ora minangka pernyataan lengkap kanggo pangembang.

Nanging, iki minangka cara sing apik kanggo ngresmikake lan ngolah skenario interaksi antarane obyek lan subyek, nalika interaksi kasebut nyebabake owah-owahan ing subyek. Iki minangka salah sawijining cara nulis sawetara sing ngidini syarat sing bisa diverifikasi kanthi titik telusuran sing eksplisit.

Buku kasebut kudu diwaca kanggo para analis kanggo miwiti nulis drama sing bisa diuji.

Source: www.habr.com

Add a comment