Cả hai đều mô tả tính nhất quán của hành vi của ứng dụng, nhưng "độ mạnh" mô tả phản ứng của ứng dụng với đầu vào của ứng dụng , trong khi "khả năng chịu lỗi" mô tả phản ứng của ứng dụng với môi trường của ứng dụng .
Một ứng dụng mạnh mẽ khi nó có thể hoạt động ổn định với dữ liệu không nhất quán. Ví dụ: một ứng dụng bản đồ rất mạnh khi có thể phân tích địa chỉ theo các định dạng khác nhau với nhiều lỗi sai chính tả và trả về một vị trí hữu ích. Trình phát nhạc mạnh mẽ khi có thể tiếp tục giải mã MP3 sau khi gặp phải khung không đúng định dạng. Trình chỉnh sửa hình ảnh mạnh mẽ khi nó có thể sửa đổi hình ảnh với siêu dữ liệu EXIF được nhúng mà nó có thể không nhận ra - đặc biệt là nếu nó có thể thay đổi hình ảnh mà không làm hỏng dữ liệu EXIF.
Một ứng dụng có khả năng chịu lỗi khi nó có thể hoạt động ổn định trong môi trường không nhất quán. Một ứng dụng cơ sở dữ liệu có khả năng chịu lỗi khi nó có thể truy cập vào một phân đoạn thay thế khi không có sẵn bản chính. Một ứng dụng web có khả năng chịu lỗi khi nó có thể tiếp tục xử lý các yêu cầu từ bộ đệm ngay cả khi máy chủ API không thể truy cập được. Một hệ thống con lưu trữ có khả năng chịu lỗi khi nó có thể trả về kết quả được tính từ tính chẵn lẻ khi một thành viên đĩa ngoại tuyến.
Trong cả hai trường hợp, ứng dụng được dự kiến sẽ duy trì ổn định, hoạt động đồng đều, bảo toàn tính toàn vẹn dữ liệu và cung cấp kết quả hữu ích ngay cả khi gặp lỗi. Nhưng khi đánh giá độ mạnh, bạn có thể tìm thấy các tiêu chí liên quan đến dữ liệu, trong khi khi đánh giá khả năng chịu lỗi, bạn sẽ tìm thấy các tiêu chí liên quan đến thời gian hoạt động.
Người này không nhất thiết phải dẫn đến người khác. Một ứng dụng nhận dạng giọng nói trên thiết bị di động có thể rất mạnh mẽ, cung cấp khả năng kỳ lạ để nhận dạng giọng nói một cách nhất quán trong nhiều giọng nói khu vực với lượng nhiễu nền lớn. Nhưng nếu nó vô dụng nếu không có kết nối dữ liệu di động nhanh, thì nó không có khả năng chịu lỗi. Tương tự, một ứng dụng xuất bản web có thể chịu lỗi rất lớn, với nhiều mức dự phòng ở mọi cấp độ, có khả năng mất toàn bộ trung tâm dữ liệu mà không bị lỗi, nhưng nếu nó làm rơi bảng người dùng và gặp sự cố khi lần đầu tiên ai đó đăng ký dấu nháy đơn , nó không mạnh mẽ chút nào.
Nếu bạn đang tìm kiếm tài liệu học thuật để giúp mô tả sự khác biệt, bạn có thể tìm trong các lĩnh vực cụ thể sử dụng phần mềm, thay vì nói chung là phần mềm. Nghiên cứu ứng dụng phân tán có thể là mảnh đất màu mỡ cho các tiêu chí chịu lỗi và Google đã công bố một số nghiên cứu của họ có thể có liên quan. Nghiên cứu mô hình hóa dữ liệu có khả năng giải quyết các câu hỏi về độ mạnh, vì các nhà khoa học đặc biệt quan tâm đến các tính chất của độ mạnh mang lại kết quả có thể lặp lại. Bạn có thể tìm thấy các bài báo mô tả các ứng dụng thống kê có thể hữu ích, như trong mô hình khí hậu, mô hình lan truyền RF hoặc giải trình tự bộ gen. Bạn cũng sẽ tìm thấy các kỹ sư thảo luận về "thiết kế mạnh mẽ" trong những thứ như hệ thống điều khiển.
Bảng trắng của Hệ thống tệp Google mô tả cách tiếp cận của họ đối với các vấn đề về khả năng chịu lỗi, thường liên quan đến các giả định rằng lỗi thành phần là thường xuyên và do đó ứng dụng phải thích ứng với chúng:
Dự án này cho một lớp học tại Rutgers hỗ trợ định nghĩa "lỗi thành phần" theo định hướng "khả năng chịu lỗi":
- http : //www.ece.rutgers.edu/ ~ các thành phần bị lỗi hoặc che giấu các thành phần thất bại cho người dùng ")
Có rất nhiều bài viết về "mô hình hóa XYZ mạnh mẽ", tùy thuộc vào lĩnh vực bạn điều tra. Hầu hết sẽ mô tả các tiêu chí của họ về "mạnh mẽ" trong bản tóm tắt và bạn sẽ thấy tất cả đều liên quan đến cách mô hình xử lý đầu vào.
Bản tóm tắt này từ một nhà khoa học khí hậu của NASA mô tả sự mạnh mẽ là một tiêu chí để đánh giá các mô hình khí hậu:
Bài viết này của một nhà nghiên cứu MIT kiểm tra các ứng dụng giao thức không dây, một miền trong đó có khả năng chịu lỗi và độ mạnh chồng chéo, nhưng các tác giả sử dụng "mạnh mẽ" để mô tả các ứng dụng, giao thức và thuật toán, trong khi chúng sử dụng "khả năng chịu lỗi" liên quan đến cấu trúc liên kết và các thành phần: