Nếu vấn đề là một vấn đề phổ biến như, viết trình biên dịch hoặc trình duyệt, thì các yêu cầu được đưa ra khá nhiều dưới dạng tiêu chuẩn ngôn ngữ, hệ điều hành đích và phần cứng đích, v.v.
Đối với những thứ như GNU Emacs, rất nhiều thứ bên cạnh việc hoàn thành xuất sắc mục tiêu ban đầu là trở thành một trình soạn thảo văn bản, tôi nghĩ rằng các yêu cầu có ý nghĩa vì phạm vi rộng lớn để mở rộng nó. Trò chuyện, email, nhóm tin tức, chỉnh sửa mã, kiểm soát phiên bản xuất hiện trong tâm trí. Có một nhà khoa học nghiên cứu về Emacspeak. Tôi nghĩ những điều tương tự có thể được nói về trình duyệt và những thứ khác cho phép mở rộng.
Nếu phần mềm đang bắt kịp một chức năng chỉ có sẵn trong phần mềm không nguồn mở, thì yêu cầu này lại được đưa ra khá nhiều.
BIÊN TẬP:
Khi phần mềm nguồn mở tiếp tục bảo trì và các yêu cầu ban đầu ít hơn vẫn chưa được đáp ứng, hầu hết các yêu cầu có thể đến từ các lỗi, cần phải thích ứng với các nền tảng mới như CPU đa lõi và phần cứng khác cung cấp hiệu suất tốt hơn khi khai thác và như vậy.
Trong một dự án hoàn toàn dựa trên nghiên cứu như GNU Hurd, tôi nghĩ rằng các yêu cầu đến từ kết quả nghiên cứu và tài liệu.
Tóm lại,
khi bắt đầu, các yêu cầu đối với phần mềm cố gắng giải quyết các vấn đề phổ biến có thể đến từ các tài liệu tiêu chuẩn
đối với phần mềm bắt kịp với phần mềm hiện có khác, các yêu cầu có thể là sản xuất tất cả hoặc hầu hết bộ tính năng của phần mềm hiện có và một số tính năng khác mà nhà phát triển / người dùng thấy thú vị
cho các dự án nghiên cứu, bài báo và các ấn phẩm khác có thể đặt ra các yêu cầu
Khi bảo trì, lỗi, cần thích nghi với môi trường mới hơn có thể là nguồn chính cho các yêu cầu