Пазете изискванията проследими при промени в софтуера
ЗавършеноСвържете потребителски резултат с решения, критерии за приемане, реализация и доказателства. Обновявайте връзките при промяна на предположенията.
Проверете разбирането сиСпецификацията се променя след подготовката на архитектурата и тестовете. Какво трябва да се случи?Направете упражнението
Какво ще научите
- Напишете наблюдаемо изискване с изрични граници.
- Проследете изискване през промяна и нейните проверки.
- Определете последващите документи, засегнати от променено предположение.
Опишете поведение, което някой може да провери
„Създайте модерен клиентски експорт“ оставя важни решения отворени. Не определя потребители, записи, полета или поведение при неуспех. Агент трябва или да попита, или да направи предположения. Незаписаните предположения са трудни за по-късен преглед.
Използвайте измислено изискване с ясна граница: удостоверен мениджър може да експортира активни клиенти от собствената си организация. Експортът съдържа идентификатор на клиента и показвано име. Изключва данни за контакт и архивирани записи. Потребител без роля на мениджър не получава експорт.
Това все още изисква решения за формат, обем, време за отговор и обработка на неуспехи. Отбелязвайте неизвестните изрично. Полезна спецификация показва несигурността, вместо да я скрива в уверен текст.
Разграничете изискванията от избора на реализация
Потребителят се нуждае от разрешен набор записи в използваем формат. Заявката към базата данни, библиотеката и структурата на endpoint-а са избори на реализация. Свържете ги с изискването, без да третирате всеки текущ избор като постоянна бизнес нужда.
Запишете решение с важни последствия заедно с контекста, алтернативите и причината. Например синхронен експорт може да е подходящ за малки обеми. По-голям обем може да изисква фонова задача и отделна проверка на правото за изтегляне.
Пазете изискването стабилно, когато е възможно, като версионирате промененото решение. Това помага на проверяващите да разграничат различна реализация от различно обещание към потребителите.
Създайте кратка верига от доказателства
Използвайте идентификатори, които остават разбираеми при преглед. В този пример EXPORT-01 може да означава границата на организацията. Името е илюстративно, а не задължителна система за номерация.
| Връзка | Пример |
|---|---|
| Изискване | EXPORT-01: само записи в организацията на мениджъра |
| Проектно решение | Наложете условие за членство на сървъра, не в браузъра |
| Реализация | PR променя заявката към данните и пътя за проверка на правата |
| Проверка | Заявка за записи на друга организация получава отказ |
| Доказателства за пускане | Резултатът от проверката определя приетия commit и артефакт |
Веригата трябва да сочи към реални доказателства. Име на тест с идентификатор на изискването не доказва, че проверяваното условие го тества. Прегледайте теста и пътя през продукционния код, който той изпълнява.
SSDF на NIST дава контекст за изискванията и проверките в сигурната разработка. Използвайте проследимостта, за да направите тези дейности достъпни за преглед, вместо да създавате документация заради самата нея. Прочетете рамката.
Прегледайте въздействието на променено предположение
Да предположим, че бизнесът вече се нуждае от архивирани клиенти. Тази промяна засяга повече от флаг в заявката. Проверете правилата за съхранение, правата, очаквания обем, обясненията за потребителите и значението на съществуващите отчети.
Отбележете засегнатите документи и проверки за преглед. Запазете предишното решение, за да може оператор да обясни по-стара версия. Не пренаписвайте неявно историята, за да изглежда последният проект неизбежен.
Агент може да помогне да се намерят препратки и да предложи обновявания. Съответните отговорници трябва да разрешат противоречащите си изисквания и да приемат промененото поведение. Списък с файлове, отговарящи на търсенето, е отправна точка, а не пълна оценка на въздействието.
Поддържайте записа достатъчно малък за употреба
Записвайте решенията, които влияят на реализацията, проверката и експлоатацията. Избягвайте да повтаряте едно изискване в много несвързани документи. Предпочитайте връзки към един поддържан източник.
Преди да приемете промяна, попитайте дали проверяващ може да проследи целта ѝ до действителните доказателства. Преди експлоатация попитайте дали отговорникът за услугата може да намери съответната граница и решението за възстановяване. Това са практически проверки за полезна проследимост.
Направете упражнението
Напишете изискване мениджър да експортира активни клиенти. Включете разрешените потребители, границата на организацията, полетата, поведението при неуспех и измеримо условие за завършване. Свържете го с измислен тест и пусната версия. После променете изискването, за да включва архивирани клиенти, и избройте засегнатите решения.
Изтеглете работния лист (Markdown)Премахването на тази отметка изтрива целия напредък, запазен в този браузър.
Напредъкът остава в този браузър. Без акаунт и проследяване.
Източници и допълнително четене
- NIST: Secure Software Development Framework ↗
- Google Engineering Practices: What to look for in a code review ↗