Одржавајте следљивост захтева док се софтвер мења
ЗавршеноПовежите исход за корисника са одлукама, критеријумима прихватања, имплементацијом и доказима. Ажурирајте везе када се претпоставке промене.
Објављује TaigaКако пишемо
Проверите разумевањеСпецификација се мења после припреме архитектуре и тестова. Шта треба да се деси?Урадите вежбу
Шта ћете научити
- Напишите проверљив захтев са изричитим границама.
- Пратите захтев кроз промену и њене провере.
- Утврдите на које касније документе утиче промењена претпоставка.
Опишите понашање које неко може да провери
„Направите модеран извоз података о клијентима” оставља важне одлуке отвореним. Не дефинише кориснике, записе, поља или понашање при отказу. Агент мора или да пита или да претпостави. Незабележене претпоставке касније је тешко прегледати.
Користите измишљен захтев са јасном границом: аутентификовани руководилац може да извезе податке о активним клијентима своје организације. Извоз садржи ID клијента и приказано име. Изоставља контакт податке и архивиране записе. Корисник без улоге руководиоца не добија извоз.
И даље су потребне одлуке о формату, обиму, времену одговора и обради отказа. Изричито означите непознате ставке. Корисна спецификација открива неизвесност уместо да је скрива у увереном тексту.
Раздвојите захтеве од избора имплементације
Кориснику је потребан дозвољен скуп записа у употребљивом формату. Упит базе, библиотека и структура endpoint интерфејса избори су имплементације. Повежите их са захтевом, али не третирајте сваки тренутни избор као трајну пословну потребу.
Забележите одлуку са значајним последицама, њен контекст, алтернативе и разлог. На пример, синхрони извоз може да одговара малим количинама. Већа количина може да захтева позадински посао и засебну проверу ауторизације за преузимање.
Нека захтев остане стабилан где је могуће, а промењену одлуку верзионишите. То помаже особама које прегледају рад да разликују другачију имплементацију од другачијег обећања корисницима.
Направите кратак ланац доказа
Користите идентификаторе који остају разумљиви при прегледу. У овом примеру EXPORT-01 може да означава границу организације. Назив је илустративан, а не обавезан систем нумерисања.
| Веза | Пример |
|---|---|
| Захтев | EXPORT-01: само записи из организације руководиоца |
| Одлука о дизајну | Спроводити ограничење приступа према чланству на серверу, а не у прегледачу |
| Имплементација | PR мења упит и путању ауторизације |
| Провера | Захтев за записе друге организације је одбијен |
| Докази објављивања | Резултат провере идентификује прихваћени commit и артефакт |
Ланац мора да води до стварних доказа. Назив теста који садржи ID захтева не доказује да га тест проверава. Испитајте тест и продукциону путању коју извршава.
NIST SSDF даје контекст за захтеве и проверу у безбедном развоју. Користите следљивост да омогућите испитивање тих активности, уместо прављења документације саме ради себе. Прочитајте оквир.
Прегледајте утицај промењене претпоставке
Претпоставимо да су пословању сада потребни и архивирани клијенти. Та промена утиче на више од једног параметра упита. Проверите правила задржавања, ауторизацију, очекивани обим, објашњења корисницима и значење постојећих извештаја.
Означите погођене документе и провере за преглед. Сачувајте претходну одлуку да би особа задужена за оперативни рад могла да објасни старију верзију. Не преписујте прећутно историју да би најновији дизајн изгледао неизбежно.
Агент може да помогне у проналажењу референци и предлагању ажурирања. Одговорне особе морају да разреше противречне захтеве и прихвате промењено понашање. Списак одговарајућих датотека је полазна тачка, а не потпуна процена утицаја.
Нека запис остане довољно мали за употребу
Бележите одлуке које утичу на имплементацију, проверу и оперативни рад. Избегавајте понављање истог захтева у много неповезаних докумената. Дајте предност везама ка једном одржаваном извору.
Пре прихватања промене питајте да ли особа која је прегледа може да прати њену сврху до стварних доказа. Пре оперативног рада питајте да ли особа одговорна за сервис може да пронађе релевантну границу и одлуку о опоравку. То су практичне провере корисне следљивости.
Урадите вежбу
Напишите захтев да руководилац извози податке о активним клијентима. Укључите дозвољене кориснике, границу организације, поља, понашање при отказу и мерљив услов завршетка. Повежите га са измишљеним тестом и објављеном верзијом. Затим промените захтев тако да укључује архивиране клијенте и наведите погођене одлуке.
Преузми радни лист (Markdown)Искључивање ове опције брише сав напредак сачуван у овом прегледачу.
Напредак остаје у овом прегледачу. Без налога и праћења.
Извори и додатно читање
- NIST: Secure Software Development Framework ↗
- Google Engineering Practices: What to look for in a code review ↗