Yêu cầu mà bạn đã viết không có các đặc điểm của một yêu cầu tốt . Cụ thể, nó không gắn kết, nó không nguyên tử, và nó không mơ hồ. Do thiếu các đặc điểm này, nó cũng không dễ kiểm chứng.
Yêu cầu trạng thái ban đầu của bạn là:
Tên tệp đã tải xuống có thể chứa các ký tự không phải ASCII và việc xử lý này sẽ không làm hỏng ứng dụng
Tôi khuyên bạn nên xóa "... và xử lý việc này sẽ không làm hỏng ứng dụng". Nếu bạn có một yêu cầu rằng một phần mềm cần phải làm một cái gì đó, tôi nghĩ sẽ ổn khi đưa ra giả định rằng nó nên làm điều đó mà không làm hỏng phần mềm.
Điều này biến đổi yêu cầu thành:
Tên tệp đã tải xuống có thể chứa các ký tự không phải ASCII
Bây giờ, bạn có một yêu cầu gắn kết và nguyên tử. Tuy nhiên, tôi không chắc rằng nó không rõ ràng. Trong câu hỏi của bạn, bạn đề cập đến một số định dạng khác nhau. Có một vài lựa chọn.
Một số sẽ đề xuất một yêu cầu riêng biệt và duy nhất cho mỗi mã hóa tên tệp phải được hỗ trợ. Điều này sẽ hỗ trợ tốt nhất cho các yêu cầu gắn kết, nguyên tử, có thể truy nguyên, không mơ hồ và có thể kiểm chứng. Nó cũng sẽ giúp dễ dàng hơn để xác định tầm quan trọng của từng yêu cầu - có lẽ hỗ trợ cho một số mã hóa là quan trọng hơn hoặc cần thiết sớm hơn.
Những người khác có thể đề xuất một bảng các định dạng được hỗ trợ và yêu cầu này sẽ liên kết với một bảng. Nó sẽ ít hoàn thiện hơn (bạn có một câu văn bản và một bảng được duy trì), nhưng chúng sẽ nằm trong cùng một tài liệu hoặc cơ sở dữ liệu. Tuy nhiên, nếu bạn định thực hiện liên kết trong một công cụ quản lý yêu cầu, chúng có thể được liên kết với nhau để những thay đổi thành một sẽ làm nổi bật yêu cầu được liên kết. Nó cũng sẽ cho phép văn bản chảy sang các gói phần mềm khác, nhưng với một bảng khác cho các bảng mã khác nhau.
Làm thế nào bạn ghi lại các yêu cầu phụ thuộc vào nhu cầu cụ thể của bạn, mặc dù.