Sačuvajte sljedivost zahtjeva dok se softver mijenja
ZavršenoPovežite korisnički ishod s odlukama, kriterijima prihvatanja, implementacijom i dokazima. Ažurirajte veze kada se pretpostavke promijene.
Objavljuje TaigaKako pišemo
Provjerite razumijevanjeSpecifikacija se mijenja nakon pripreme arhitekture i testova. Šta treba uraditi?Uradite vježbu
Šta ćete naučiti
- Napišite uočljiv zahtjev s izričitim granicama.
- Pratite zahtjev kroz promjenu i njene provjere.
- Utvrdite dokumente kasnijih faza na koje utječe promijenjena pretpostavka.
Opišite ponašanje koje neko može provjeriti
„Napravite moderan izvoz podataka o klijentima“ ostavlja važne odluke otvorenim. Ne određuje korisnike, zapise, polja ni ponašanje pri neuspjehu. Agent mora ili pitati ili pretpostaviti. Nezabilježene pretpostavke kasnije je teško pregledati.
Koristite izmišljeni zahtjev s jasnom granicom: autentifikovani menadžer može izvoziti podatke o aktivnim klijentima iz vlastite organizacije. Izvoz sadrži ID klijenta i prikazano ime. Isključuje kontaktne podatke i arhivirane zapise. Korisnik bez uloge menadžera ne dobija izvoz.
I dalje su potrebne odluke o formatu, količini, vremenu odgovora i obradi neuspjeha. Izričito označite nepoznanice. Korisna specifikacija otkriva neizvjesnost umjesto da je skriva uvjerljivim tekstom.
Odvojite zahtjeve od izbora implementacije
Korisnik treba dozvoljeni skup zapisa u upotrebljivom formatu. Upit baze podataka, biblioteka i struktura krajnje tačke izbori su implementacije. Povežite ih sa zahtjevom bez tretiranja svakog trenutnog izbora kao trajne poslovne potrebe.
Zabilježite važnu odluku uz kontekst, alternative i razlog. Naprimjer, sinhroni izvoz može odgovarati malim količinama. Veća količina može zahtijevati pozadinski zadatak i zasebnu provjeru autorizacije preuzimanja.
Zadržite zahtjev stabilnim gdje je moguće, uz verzionisanje promijenjene odluke. To pomaže osobama koje pregledaju rad da razlikuju drugačiju implementaciju od drugačijeg obećanja korisnicima.
Napravite kratak niz dokaza
Koristite identifikatore koji ostaju razumljivi tokom pregleda. U ovom primjeru EXPORT-01 može označavati granicu organizacije. Naziv je ilustrativan, a ne obavezan sistem numerisanja.
| Veza | Primjer |
|---|---|
| Zahtjev | EXPORT-01: samo zapisi u organizaciji menadžera |
| Dizajnerska odluka | Provedite uslov članstva na serveru, a ne u pregledniku |
| Implementacija | PR mijenja upit i put autorizacije |
| Provjera | Zahtjev za zapise druge organizacije se odbija |
| Dokazi izdanja | Rezultat provjere navodi prihvaćeni commit i artefakt |
Niz mora upućivati na stvarne dokaze. Naziv testa koji sadrži ID zahtjeva ne dokazuje da njegova tvrdnja provjerava taj zahtjev. Pregledajte test i put produkcijskog koda koji ispituje.
NIST-ov SSDF daje kontekst za zahtjeve i provjeru u sigurnom razvoju. Koristite sljedivost da ove aktivnosti učinite dostupnim za pregled, umjesto izrade dokumentacije radi nje same. Pročitajte okvir.
Pregledajte utjecaj promijenjene pretpostavke
Pretpostavite da poslovanju sada trebaju i arhivirani podaci o klijentima. Ta promjena utječe na više od zastavice u upitu. Provjerite pravila čuvanja, autorizaciju, očekivanu količinu, objašnjenja korisnicima i značenje postojećih izvještaja.
Označite zahvaćene dokumente i provjere za pregled. Sačuvajte prethodnu odluku kako bi osoba zadužena za operativni rad mogla objasniti starije izdanje. Nemojte prešutno prepisivati historiju da najnoviji dizajn izgleda neizbježan.
Agent može pomoći pronaći reference i predložiti ažuriranja. Odgovorne osobe moraju riješiti suprotstavljene zahtjeve i prihvatiti promijenjeno ponašanje. Lista pronađenih fajlova početna je tačka, a ne potpuna procjena utjecaja.
Ograničite zapis tako da se može koristiti
Zabilježite odluke koje utječu na implementaciju, provjeru i operativni rad. Izbjegavajte ponavljanje istog zahtjeva u mnogo nepovezanih dokumenata. Dajte prednost vezama prema jednom održavanom izvoru.
Prije prihvatanja promjene pitajte može li osoba zadužena za pregled pratiti njenu svrhu do stvarnih dokaza. Prije početka operativnog rada pitajte može li osoba odgovorna za uslugu pronaći relevantnu granicu i odluku o oporavku. To su praktične provjere korisne sljedivosti.
Uradite vježbu
Napišite zahtjev da menadžer može izvoziti podatke o aktivnim klijentima. Uključite dozvoljene korisnike, granicu organizacije, polja, ponašanje pri neuspjehu i mjerljiv uslov završetka. Povežite ga s izmišljenim testom i izdanjem. Zatim promijenite zahtjev tako da uključuje arhivirane podatke o klijentima i navedite zahvaćene odluke.
Preuzmite radni list (Markdown)Isključivanjem ove opcije briše se sav napredak sačuvan 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 ↗