Thực hành tốt nhất để sử dụng Shall và phải trong khi viết yêu cầu


22

Tôi đã gửi một email trước đó nhắc nhở các nhà phát triển của chúng tôi rằng, việc sử dụng từ 'Shall', trong các yêu cầu xuất phát của bạn không nên tuân theo các yêu cầu chức năng của bạn. Khi viết các yêu cầu chức năng, từ 'Phải', được sử dụng để mô tả chức năng mà một yêu cầu xuất phát phải thực hiện.
Xuất phát = Hệ thống Sẽ được yêu cầu
Chức năng = Hệ thống phải thực hiện yêu cầu

Nó đã được gửi lại bởi một trong những Người cao niên của chúng tôi rằng, điều đó là sai và nên được sử dụng trong mọi yêu cầu.

Tôi có sai ở đây không và nên sử dụng trong mọi yêu cầu. Tôi đã không thể tìm thấy bất cứ điều gì để sao lưu nó.


Chúng tôi sử dụng "sẽ" trong mọi yêu cầu bắt buộc. Nhưng "sẽ" và "phải" có nghĩa ít nhiều giống nhau. Xem thêm tynerblain.com/blog/2009/04/22/dont-use-shall
Robert Harvey

4
Có lẽ bạn đang nghĩ về MUSTvs SHOULDtrong RFC? ietf.org/rfc/rfc2119.txt
dùng10326


Euh, không phải là người dự tiệc, nhưng bạn sẽ chiến thắng điều gì khi mọi người sử dụng từ đúng trong tình huống chính xác?
Peter

Câu trả lời:


43

RFC 2119 "Các từ khóa được sử dụng trong RFC để chỉ ra các mức yêu cầu" đi vào chi tiết cụ thể về các từ khác nhau trong yêu cầu có nghĩa gì.

Các từ khóa "PHẢI", "KHÔNG PHẢI", "BẮT BUỘC", "SALL", "SALL KHÔNG", "NÊN", "KHÔNG NÊN", "KHUYẾN NGHỊ", "CÓ THỂ" và "TÙY CHỌN" trong tài liệu này là được giải thích như được mô tả trong RFC 2119.

Từ tài liệu này:

  • MUSTtương đương REQUIREDSHALLchỉ ra rằng định nghĩa là một yêu cầu tuyệt đối.
  • MUST NOTtương đương SHALL NOTvà chỉ ra rằng đó là một sự cấm đoán tuyệt đối của thông số kỹ thuật.
  • SHOULDtương đương với RECOMMENDEDcó nghĩa là có những lý do hợp lệ để bỏ qua một yêu cầu cụ thể, nhưng các hàm ý cần phải được cân nhắc.
  • SHOULD NOTNOT RECOMMENDEDcó nghĩa là một hành vi cụ thể có thể được chấp nhận hoặc hữu ích, nhưng một lần nữa, các tác động cần phải được cân nhắc.
  • MAYcó nghĩa là OPTIONALvà yêu cầu đó là thực sự tùy chọn. Khả năng tương tác với các hệ thống khác nhau có thể hoặc không thể thực hiện một yêu cầu tùy chọn phải được thực hiện.

Theo RFC này SHOULDđược thực hiện để giúp đảm bảo tính thống nhất của giao tiếp giữa các tài liệu nội bộ của một người và thế giới tiêu chuẩn nói chung.


1
câu trả lời chắc chắn; đạo cụ để đào RFC

1
@ GlenH7 Tôi biết về nó (Tôi thích đọc RFC ngày 1 tháng 4 và một số điều hài hước nằm trong 'nên' và 'phải', và 2119 ngay cả trên trang wikipedia ) Tôi đã tìm kiếm nó, tìm thấy nó, và sau đó đọc bình luận tôi chuẩn bị thực hiện - hai bên trên là RFC một lần nữa. Vì vậy, không hoàn toàn là đạo cụ lớn để đào nó lên.

Tôi nghĩ rằng các yêu cầu / yêu cầu chức năng phải yêu cầu tất cả các chức năng đối với một đối tượng dẫn xuất sẽ tồn tại. Nhưng được đưa ra sẽ và phải định nghĩa và cách mọi người khác sử dụng chúng Tôi đã sai
Tim Lieberman

6

Không chắc chắn nơi bạn đã đi đến kết luận đó shallmustthuộc các cấp tài liệu riêng biệt. Đó là một sự khác biệt khá độc đoán không được hỗ trợ bởi bất kỳ nguồn nào tôi biết.

Shallmusttương đương về mặt từ vựng. Đó là một hành động được yêu cầu.

Việc bạn sử dụng shallhay mustthực sự phụ thuộc vào phần còn lại của tài liệu mà bạn đang viết bên trong và điều gì có ý nghĩa ngữ pháp cho câu cụ thể đó.

Vì vậy, có, bạn sai. Nhưng bạn cũng sai khi luôn luôn sử dụng shallthay vì must. Họ đại diện cho cùng một mức độ nghĩa vụ.


3
Shouldmaykhông hoàn toàn tương đương. Cả hai đều biểu thị các tính năng tùy chọn, nhưng should, không giống như may, ngụ ý rằng bạn cần phải có lý do chính đáng để không triển khai nó. Tôi đồng ý với bạn về shallvs must, mặc dù.
Keith Thompson

@KeithThndry - đó là một điểm tốt, và bạn đã đúng. Tôi kéo dòng đó từ câu trả lời.

1
Suy nghĩ của tôi trở thành yêu cầu chức năng nên sử dụng phải bởi vì, Nếu một đối tượng dẫn xuất phải tồn tại thì tất cả chức năng của nó phải hoạt động.
Tim Lieberman

Tôi đoán tại một số điểm tôi đã nhúng vào như một đối tượng mới trong đầu và phải là chức năng.
Tim Lieberman

@TimLieberman - đó không phải là một cách nhìn xấu về mọi thứ, đặc biệt là vì nó liên kết hai lớp thông số kỹ thuật. Loại thực sự hữu ích, vì một số dân gian bị nhầm lẫn bởi ngữ nghĩa của các điều khoản. Đặc biệt là vì tôi đã sửa các tài liệu quy trình trong đó "sẽ" thường xuyên hơn không được sử dụng thay thế cho "nên". Tuy nhiên, nó không đủ hữu ích để yêu cầu điều đó như một tiêu chuẩn cụ thể.

2

Nếu bạn tình cờ làm việc trong khuôn khổ của hướng dẫn DO-178 hoặc DO-254 , những điều này có định nghĩa riêng cho các yêu cầu chung và yêu cầu xuất phát . Tuy nhiên, các hướng dẫn này không chỉ định từ nào, ví dụ , nên, phải , nên được sử dụng để chỉ định các yêu cầu.

Nếu bạn dụng cụ yêu cầu quản lý không tự động chỉ ra yêu cầu có nguồn gốc cho bạn, làm cho những khác biệt so với yêu cầu chức năng bằng cách sử dụng một bắt buộc thay vì sẽ có thể có lợi, ví dụ để chứng minh rằng các mục tiêu xác minh cho các yêu cầu có nguồn gốc cũng đã được đáp ứng. Đây có thể là một lý do có thể cho yêu cầu tài liệu dường như tùy tiện.

Lưu ý rằng trong yêu cầu xuất phát DO-178 và DO-254 thực sự có nghĩa là một yêu cầu chưa được xuất phát từ yêu cầu cấp cao hơn. Do đó, một yêu cầu xuất phát về cơ bản bắt đầu một chuỗi truy xuất nguồn gốc mới.

Cả DO-178 và DO-254 đều là tài liệu hướng dẫn thương mại được sử dụng cho phát triển phần mềm và điện tử hàng không, và chỉ có sẵn với một khoản phí từ www.rtca.org .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.