Održavajte sljedivost zahtjeva dok se softver mijenja
DovršenoPovežite ishod za korisnika s odlukama, kriterijima prihvaćanja, implementacijom i dokazima. Ažurirajte veze kada se pretpostavke promijene.
Objavljuje TaigaKako pišemo
Provjerite razumijevanjeSpecifikacija se promijeni nakon pripreme arhitekture i testova. Što treba učiniti?Napravite vježbu
Što ćete naučiti
- Napisati zahtjev čiji se ishod može opažati, s izričitim granicama.
- Pratiti zahtjev kroz promjenu i njezine provjere.
- Prepoznati povezane dokumente na koje utječe promijenjena pretpostavka.
Opišite ponašanje koje netko može provjeriti
Zahtjev „izradite moderan izvoz podataka o klijentima” ostavlja važne odluke otvorenima. Ne definira korisnike, zapise, polja ni ponašanje pri pogrešci. Agent mora pitati ili pretpostaviti. Nezabilježene pretpostavke kasnije je teško pregledati.
Upotrijebite izmišljeni zahtjev s jasnom granicom: autentificirani voditelj može izvesti aktivne klijente iz svoje organizacije. Izvoz sadrži ID klijenta i naziv za prikaz. Isključuje kontaktne podatke i arhivirane zapise. Korisnik bez uloge voditelja ne dobiva izvoz.
Još treba odlučiti o formatu, količini podataka, vremenu odgovora i obradi pogrešaka. Izričito označite nepoznanice. Korisna specifikacija otkriva neizvjesnost umjesto da je skriva iza samouvjerenog teksta.
Odvojite zahtjeve od odluka o implementaciji
Korisnik treba dopušten skup zapisa u upotrebljivom formatu. Upit prema bazi podataka, biblioteka i struktura krajnje točke odluke su o implementaciji. Povežite ih sa zahtjevom bez pretpostavke da je svaki trenutačni izbor trajna poslovna potreba.
Zabilježite važnu odluku zajedno s kontekstom, alternativama i razlogom. Primjerice, sinkroni izvoz može odgovarati malim količinama podataka. Veća količina može zahtijevati pozadinski zadatak i zasebnu provjeru autorizacije pri preuzimanju.
Gdje je moguće, zadržite stabilan zahtjev, a promijenjenu odluku zabilježite u novoj verziji. Tako osobe koje pregledavaju mogu razlikovati drukčiju implementaciju od drukčijeg obećanja korisnicima.
Uspostavite kratak lanac dokaza
Upotrijebite identifikatore koji ostaju razumljivi pri pregledu. U ovom primjeru EXPORT-01 može označavati granicu organizacije. Naziv služi kao primjer, a nije obvezan sustav numeriranja.
| Veza | Primjer |
|---|---|
| Zahtjev | EXPORT-01: samo zapisi u organizaciji voditelja |
| Odluka o dizajnu | Provesti kontrolu članstva na poslužitelju, a ne u pregledniku |
| Implementacija | PR mijenja upit i tijek autorizacije |
| Provjera | Zahtjev za zapise druge organizacije odbijen je |
| Dokazi o izdanju | Rezultat provjere identificira prihvaćeni commit i artefakt |
Lanac mora upućivati na stvarne dokaze. Naziv testa koji sadrži ID zahtjeva ne dokazuje da ga tvrdnja u testu provjerava. Pregledajte test i put kroz produkcijski kod koji izvršava.
NIST-ov SSDF daje kontekst za zahtjeve i provjeru unutar sigurnog razvoja. Sljedivost treba omogućiti pregled tih aktivnosti, a ne proizvoditi dokumentaciju radi dokumentacije. Pročitajte okvir.
Pregledajte učinak promijenjene pretpostavke
Pretpostavimo da poslovanju sada trebaju i arhivirani klijenti. Ta promjena utječe na više od parametra upita. Provjerite pravila zadržavanja podataka, autorizaciju, očekivanu količinu, objašnjenja korisnicima i značenje postojećih izvješća.
Označite zahvaćene dokumente i provjere za pregled. Sačuvajte prethodnu odluku kako bi osoba koja upravlja uslugom mogla objasniti starije izdanje. Nemojte prešutno prepisivati povijest da bi najnoviji dizajn izgledao neizbježan.
Agent može pomoći pronaći reference i predložiti ažuriranja. Odgovorne osobe moraju razriješiti proturječne zahtjeve i prihvatiti promijenjeno ponašanje. Popis pronađenih datoteka početna je točka, a ne potpuna procjena učinka.
Neka zapis bude dovoljno kratak za upotrebu
Zabilježite odluke koje utječu na implementaciju, provjeru i rad sustava. Izbjegavajte ponavljanje istog zahtjeva u mnogo nepovezanih dokumenata. Dajte prednost poveznicama na jedan održavan izvor.
Prije prihvaćanja promjene provjerite može li osoba koja je pregledava slijediti njezinu svrhu do stvarnih dokaza. Prije početka rada provjerite može li osoba odgovorna za uslugu pronaći relevantnu granicu i odluku o oporavku. To su praktične provjere korisne sljedivosti.
Napravite vježbu
Napišite zahtjev prema kojem voditelj može izvesti aktivne klijente. Uključite dopuštene korisnike, granicu organizacije, polja, ponašanje pri pogrešci i mjerljiv uvjet dovršetka. Povežite ga s izmišljenim testom i izdanjem. Zatim promijenite zahtjev tako da uključuje arhivirane klijente i navedite odluke na koje to utječe.
Preuzmi radni list (Markdown)Uklanjanje ove oznake briše sav napredak spremljen u ovom pregledniku.
Napredak ostaje u ovom pregledniku. Bez računa i praćenja.
Izvori i dodatno čitanje
- NIST: Secure Software Development Framework ↗
- Google Engineering Practices: What to look for in a code review ↗