Trọng tâm của câu hỏi này: Một số phần mềm thực hiện "công việc phụ" để tăng khả năng có kết quả "cuối cùng thành công / thỏa đáng", mặc dù có một hoặc nhiều lỗi nội bộ trong phần mềm, đòi hỏi thời gian thực hiện lâu hơn khi những lỗi đó xảy ra. Tất cả những điều này xảy ra mà không có kiến thức của người dùng nếu kết quả thành công.
Định nghĩa phần mềm phức tạp:
- Chứa mã được viết bởi (đóng góp từ) hơn 10 nhà phát triển trong suốt vòng đời của nó và không được viết trong cùng khung thời gian
- Phụ thuộc vào hơn 10 thư viện bên ngoài, mỗi thư viện đều có cảnh báo
- Một tác vụ phần mềm thông thường (để tạo kết quả mà người dùng muốn) yêu cầu 10 tham số đầu vào trở lên, trong đó hầu hết chúng có giá trị mặc định nhưng có thể định cấu hình nếu người dùng cần điều khiển.
- Quan trọng nhất, phần mềm có độ phức tạp phù hợp liên quan đến nhiệm vụ đang được thực hiện, tức là không phức tạp không cần thiết .
Chỉnh sửa: Thế nào là phức tạp? Xin vui lòng xem Có một sự khác biệt lớn giữa Phức tạp và phức tạp . (đương dân trực tiêp)
Định nghĩa về sự dư thừa / mạnh mẽ trong câu hỏi này :
(Đã thêm tính mạnh mẽ dựa trên ý kiến)
- Nếu tác vụ phần mềm không thành công khi bộ tham số hiện tại được sử dụng, hãy thử các tham số khác nhau.
- Rõ ràng, phải có kiến thức bên trong rằng các tham số "khác nhau" đó sử dụng một đường dẫn mã khác nhau, có thể dẫn đến một kết quả khác (hy vọng tốt hơn).
- Đôi khi những đường dẫn mã khác nhau này được chọn dựa trên sự quan sát của các thư viện bên ngoài.
- Cuối cùng, nếu tác vụ thực tế được thực hiện hơi khác so với thông số kỹ thuật của người dùng, người dùng sẽ nhận được báo cáo nêu chi tiết về sự khác biệt.
- Cuối cùng, giống như các tham số cấu hình 10 cộng, dự phòng và báo cáo cũng có thể định cấu hình.
Ví dụ về phần mềm như vậy:
- Di chuyển cơ sở dữ liệu
- Cơ sở dữ liệu kinh doanh
- Cơ sở dữ liệu kiểm soát nguồn, v.v.
- Chuyển đổi hàng loạt giữa tài liệu Word và tài liệu OpenOffice, PowerPoint và OpenOffice Draw, v.v.
- Tự động dịch toàn bộ trang web
- Phân tích tự động gói phần mềm, chẳng hạn như Doxygen, nhưng trong đó phân tích cần phải đáng tin cậy hơn (không chỉ là một công cụ tài liệu)
- Giao tiếp mạng, nơi các gói có thể bị mất và một số lần thử lại được mong đợi
Câu hỏi này ban đầu được lấy cảm hứng từ Làm thế nào để bạn đối phó với mã xấu cố ý?
nhưng bây giờ chỉ tập trung vào một trong những nguyên nhân gây phình to phần mềm. Câu hỏi này không giải quyết bất kỳ nguyên nhân nào khác của sự phình to phần mềm, chẳng hạn như bổ sung các tính năng mới.
Có thể liên quan: