Живая формулировка — и что с ней не так. Недоспрошенное требование дороже любой ошибки в коде.
«Менеджер должен видеть все заказы клиента и мочь их отменить»
Нужно, чтобы менеджер видел все заказы клиента и мог их отменить.
«Все заказы» — чьи все? Клиента у этого менеджера, или клиента вообще, включая заказы через другой филиал и другого продавца?
«Отменить» — на любой стадии? Оплаченный заказ отменяется так же, как черновик? Кто возвращает деньги?
Не сказано, что видит менеджер, которому этот клиент не принадлежит. Права описаны только через «видит», и дыра в доступе останется незамеченной.
Нет ни одного отрицательного случая: заказ уже отгружен, заказ отменён другим, клиент удалён.
Что происходит с уже оплаченным заказом при отмене — и кто отвечает за возврат денег? Не выяснив это, вы получите требование, которое пройдёт приёмку и сломается на первом возврате.
Остаток — это то, что лежит на складе. Что тут описывать.
Слово «остаток» здесь означает минимум три разных числа: физическое, доступное к продаже и то, что видит менеджер. Спецификация, где оно не разведено, обречена.
«Лежит» — в какой момент? Возврат уже приехал, но не принят; брак найден, но списывается в пятницу.
Не сказано, где лежит: склад может быть не один, и второй может не существовать в системе.
Единица измерения не названа. Один товар живёт и в штуках, и в коробках.
Зарезервированное под заказ входит в число, которое видит менеджер? Это один вопрос, и от ответа зависит вся формула.