Sự khác biệt giữa yêu cầu chức năng và không chức năng là gì? [đóng cửa]


282

Sự khác biệt giữa các yêu cầu chức năngphi chức năng trong bối cảnh thiết kế một hệ thống phần mềm là gì?

Cho ví dụ cho từng trường hợp.



@TravisJ Một lần nữa, chúng ta hãy giữ thẻ cho các câu hỏi cho đến khi chúng ta hoàn thành giai đoạn đầu tiên của quá trình ghi thẻ.
TylerH

Câu trả lời:


524

Một yêu cầu chức năng mô tả những gì một hệ thống phần mềm nên làm, trong khi các yêu cầu phi chức năng đặt ra các ràng buộc về cách hệ thống sẽ làm như vậy.

Hãy để tôi giải thích.

Một ví dụ về yêu cầu chức năng sẽ là:

  • Một hệ thống phải gửi email bất cứ khi nào một điều kiện nhất định được đáp ứng (ví dụ: đơn hàng được đặt, khách hàng đăng ký, v.v.).

Một yêu cầu phi chức năng liên quan cho hệ thống có thể là:

  • Email nên được gửi với độ trễ không quá 12 giờ từ một hoạt động như vậy.

Yêu cầu chức năng là mô tả hành vi của hệ thống vì nó liên quan đến chức năng của hệ thống. Yêu cầu phi chức năng xây dựng một đặc tính hiệu suất của hệ thống.

Thông thường các yêu cầu phi chức năng rơi vào các lĩnh vực như:

  • Khả năng tiếp cận
  • Công suất, hiện tại và dự báo
  • Tuân thủ
  • Tài liệu
  • Phục hồi thảm họa
  • Hiệu quả
  • Hiệu quả
  • Khả năng mở rộng
  • Chịu lỗi
  • Khả năng tương tác
  • Bảo trì
  • Riêng tư
  • Tính di động
  • Chất lượng
  • độ tin cậy
  • Khả năng phục hồi
  • Thời gian đáp ứng
  • Mạnh mẽ
  • Khả năng mở rộng
  • Bảo vệ
  • Ổn định
  • Khả năng hỗ trợ
  • Khả năng kiểm tra

Một danh sách đầy đủ hơn có sẵn tại mục của Wikipedia cho các yêu cầu phi chức năng .

Các yêu cầu phi chức năng đôi khi được xác định theo các số liệu (nghĩa là một cái gì đó có thể được đo lường về hệ thống) để làm cho chúng hữu hình hơn. Các yêu cầu phi chức năng cũng có thể mô tả các khía cạnh của hệ thống không liên quan đến việc thực hiện nó, mà thay vào đó là sự phát triển của nó theo thời gian (ví dụ: khả năng bảo trì, khả năng mở rộng, tài liệu, v.v.).


Tất nhiên tôi sẽ nói với bạn về danh tiếng và lịch sử làm việc chuyên nghiệp của bạn (mà tôi đã xem trước khi viết bài này): ví dụ yêu cầu phi chức năng của bạn có thể được coi là một hành vi không? Hoặc là quan điểm của bạn nhiều hơn đến thực tế là các yêu cầu phi chức năng mô tả các ràng buộc xung quanh các hành vi?
Thomas

1
Để làm rõ câu hỏi của tôi một chút (và nó có thể không trả lời được): có cách nào để làm rõ hơn ranh giới của những gì cấu thành hành vi?
Thomas

cộng 1 cho ví dụ đẹp về hệ thống email. :)
Ahtisham

33

Yêu cầu chức năng là những điều chính mà người dùng mong đợi từ phần mềm, ví dụ nếu ứng dụng là ứng dụng ngân hàng, ứng dụng đó có thể tạo tài khoản mới, cập nhật tài khoản, xóa tài khoản, v.v. trong thiết kế hệ thống

Yêu cầu phi chức năng không chuyển tiếp yêu cầu của hệ thống mà nó liên quan đến khả năng sử dụng (theo một cách nào đó), ví dụ đối với ứng dụng ngân hàng, một yêu cầu phi chức năng chính sẽ có sẵn, ứng dụng phải có sẵn 24/7 mà không có thời gian chết nếu có thể.


27

Yêu cầu chức năng

  1. Các yêu cầu chức năng chỉ định một chức năng mà một hệ thống hoặc thành phần hệ thống phải có thể thực hiện. Nó có thể được ghi nhận theo nhiều cách khác nhau. Những cái phổ biến nhất là mô tả bằng văn bản trong các tài liệu và các trường hợp sử dụng.

  2. Các trường hợp sử dụng có thể là danh sách liệt kê văn bản cũng như sơ đồ, mô tả hành động của người dùng. Mỗi ca sử dụng minh họa các kịch bản hành vi thông qua một hoặc nhiều yêu cầu chức năng. Tuy nhiên, thông thường, một nhà phân tích sẽ bắt đầu bằng cách gợi ra một tập hợp các trường hợp sử dụng, từ đó nhà phân tích có thể rút ra các yêu cầu chức năng phải được thực hiện để cho phép người dùng thực hiện từng trường hợp sử dụng.

  3. Yêu cầu chức năng là những gì một hệ thống được cho là hoàn thành . Nó có thể

    • Tính toán
    • Chi tiết kỹ thuật
    • Thao tác dữ liệu
    • Xử lí dữ liệu
    • Chức năng cụ thể khác
  4. Một yêu cầu chức năng điển hình sẽ chứa một tên và số duy nhất, một bản tóm tắt ngắn gọn và một lý do. Thông tin này được sử dụng để giúp người đọc hiểu tại sao yêu cầu là cần thiết và để theo dõi yêu cầu thông qua sự phát triển của hệ thống.

những yêu cầu vô lý

LBushkin đã giải thích thêm về các yêu cầu phi chức năng. Tôi sẽ thêm nhiều hơn nữa.

  1. Yêu cầu phi chức năng là bất kỳ yêu cầu nào khác ngoài yêu cầu chức năng. Đây là các yêu cầu chỉ định các tiêu chí có thể được sử dụng để đánh giá hoạt động của một hệ thống, thay vì các hành vi cụ thể .

  2. Các yêu cầu phi chức năng ở dạng "hệ thống sẽ" , một thuộc tính tổng thể của hệ thống nói chung hoặc về một khía cạnh cụ thể và không phải là một chức năng cụ thể. Các đặc tính tổng thể của hệ thống thường đánh dấu sự khác biệt giữa việc dự án phát triển đã thành công hay thất bại.

  3. Yêu cầu phi chức năng - có thể được chia thành hai loại chính:

    • Chất lượng thực thi , chẳng hạn như bảo mật và khả năng sử dụng, có thể quan sát được trong thời gian chạy.
    • Các phẩm chất tiến hóa , như khả năng kiểm tra, khả năng bảo trì, khả năng mở rộng và khả năng mở rộng, được thể hiện trong cấu trúc tĩnh của hệ thống phần mềm.
  4. Các yêu cầu phi chức năng đặt ra các hạn chế đối với sản phẩm đang được phát triển, quy trình phát triển và chỉ định các ràng buộc bên ngoài mà sản phẩm phải đáp ứng.
  5. Các IEEE-Std 830 - 1993 danh sách yêu cầu 13 không hoạt động được bao gồm trong một Phần mềm Yêu cầu tài liệu.
  1. Các yêu cầu thực hiện
  2. Yêu cầu giao diện
  3. Yêu cầu hoạt động
  4. Yêu cầu tài nguyên
  5. Yêu cầu xác minh
  6. Yêu cầu chấp nhận
  7. Yêu cầu về tài liệu
  8. Yêu cầu bảo mật
  9. Yêu cầu về tính di động
  10. Yêu cầu chất lượng
  11. Yêu cầu về độ tin cậy
  12. Yêu cầu bảo trì
  13. Yêu cầu an toàn

Việc một yêu cầu được thể hiện là một yêu cầu chức năng hay không chức năng có thể phụ thuộc hay không:

  • về mức độ chi tiết được đưa vào tài liệu yêu cầu
  • mức độ tin cậy tồn tại giữa khách hàng hệ thống và nhà phát triển hệ thống.

Ví dụ. Một hệ thống có thể được yêu cầu để trình bày cho người dùng với màn hình hiển thị số lượng hồ sơ trong cơ sở dữ liệu. Đây là một yêu cầu chức năng. Làm thế nào cập nhật [cập nhật] số này cần phải là một yêu cầu phi chức năng. Nếu số lượng cần được cập nhật theo thời gian thực, các kiến ​​trúc sư hệ thống phải đảm bảo rằng hệ thống có khả năng cập nhật số lượng bản ghi [được hiển thị] trong một khoảng thời gian ngắn có thể chấp nhận của số lượng hồ sơ thay đổi.

Người giới thiệu:

  1. Yêu cầu về chức năng
  2. Yêu cầu phi chức năng
  3. Định lượng và truy xuất nguồn gốc của các yêu cầu

1
giải thích tốt. Cảm ơn!
Arslan Ramay

1
Câu trả lời tốt đẹp với tài liệu tham khảo tốt. Tôi chỉ muốn thêm tiêu chuẩn cập nhật hơn, vì IEEE 830-1993 đã được thay thế. Tiêu chuẩn gần đây nhất là ISO / IEC / IEEE 29148: 2018 "Kỹ thuật phần mềm và hệ thống - Quy trình vòng đời - Kỹ thuật yêu cầu" ( iso.org/st Chuẩn / 72089.html )
đăng xuất

8

Các yêu cầu chức năng là những yêu cầu liên quan đến chức năng kỹ thuật của hệ thống.

yêu cầu phi chức năng là một yêu cầu quy định các tiêu chí có thể được sử dụng để đánh giá hoạt động của một hệ thống trong các điều kiện cụ thể, thay vì các hành vi cụ thể.

Ví dụ: nếu bạn xem xét một trang web mua sắm, thêm các mặt hàng vào giỏ hàng, duyệt các mặt hàng khác nhau, áp dụng các ưu đãi và giao dịch và đặt hàng thành công theo yêu cầu chức năng.

Khi hiệu suất của hệ thống vào giờ cao điểm, thời gian để hệ thống lấy dữ liệu từ DB, bảo mật dữ liệu người dùng, khả năng xử lý của hệ thống nếu số lượng lớn người dùng đăng nhập không theo yêu cầu chức năng.


Câu trả lời tuyệt vời.
Iftekhar

3

YÊU CẦU CHỨC NĂNG các hoạt động mà hệ thống phải thực hiện

  • doanh nghiệp sử dụng các chức năng người dùng thực hiện
  • sử dụng ví dụ trường hợp nếu bạn đang phát triển một hệ thống tính lương yêu cầu chức năng
  • tạo chuyển tiền điện tử
  • số tiền hoa hồng tính toán
  • tính thuế biên chế
  • báo cáo khấu trừ thuế cho IRS

2

Tôi nghĩ rằng yêu cầu chức năng là từ phía khách đến phía nhà phát triển liên quan đến chức năng cho người dùng bởi phần mềm và yêu cầu phi chức năng là từ nhà phát triển đến khách hàng, nghĩa là yêu cầu không được cung cấp bởi khách hàng nhưng nó được nhà phát triển cung cấp để chạy hệ thống trơn tru, vd an toàn, bảo mật, linh hoạt, khả năng mở rộng, sẵn có, vv

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.