Đối với lần lấy trước, xem Bản sửa đổi 1 của câu trả lời này . Tuy nhiên, các ý kiến và chỉnh sửa cho câu hỏi làm rõ hơn những gì câu hỏi đang tìm kiếm và cho phép tôi rõ ràng hơn.
Vâng, kỹ thuật phần mềm dựa trên bằng chứng (EBSE) là một điều. Dường như có một vài nỗ lực đối với cơ sở dữ liệu EBSE, chẳng hạn như cơ sở dữ liệu này tại Đại học Durham và SEED, được bắt đầu bởi một giáo sư tại Cal Poly . Tất cả những nỗ lực này, cũng như những nỗ lực được thảo luận trong một số bài báo có thể được tìm thấy thông qua máy chủ IEEE Xplore hoặc Thư viện số ACM(đăng ký hoặc mua yêu cầu cho nhiều giấy tờ trong cả hai), được dựa trên thuốc dựa trên bằng chứng. Họ cung cấp các đánh giá tài liệu về dữ liệu thực nghiệm (quan sát và thử nghiệm) được công bố. Trên thực tế, bao gồm cả "đánh giá tài liệu" trong chuỗi tìm kiếm trên bất kỳ tìm kiếm xuất bản nào cũng mang lại thông tin về hầu hết các chủ đề - hơn 14000 lượt truy cập trên ACM và hơn 1000 trên cơ sở dữ liệu của IEEE (khi chỉ giới hạn ở các chủ đề điện toán).
Nhìn vào các loại chủ đề chung được thảo luận trong các cơ sở dữ liệu và đánh giá tài liệu EBSE này, tôi thấy một chủ đề chung - chúng có xu hướng độc lập với công nghệ. Sự nhấn mạnh dường như chủ yếu tập trung vào quy trình và phương pháp hơn là các công cụ cụ thể được sử dụng để tiến hành công nghệ phần mềm.
Vì vậy, khái niệm này tồn tại trong công nghệ phần mềm. Academia nhận thức được khái niệm dựa trên bằng chứng và có thể áp dụng thành công nó vào công nghệ phần mềm.
Cụ thể, câu hỏi giải quyết việc áp dụng các kỹ thuật EBSE cho việc lựa chọn mô hình có vẻ khó khăn, do số lượng biến số liên quan, buộc phải đưa ra các giả định cũng như giảm khả năng lặp lại thí nghiệm hoặc quan sát. Điều đó được nói ngay trong câu hỏi - "mô hình nào được đưa ra là" câu trả lời đúng "có thể phụ thuộc vào số liệu mà một nghiên cứu cụ thể chú ý đến, về những điều kiện mà nghiên cứu giữ không đổi hoặc thay đổi, và không nghi ngờ gì về các yếu tố khác nữa" . Mặc dù điều đó không có nghĩa là nghiên cứu mô hình nào là "tốt nhất" trong một tình huống nhất định, nhưng điều đó làm cho bất kỳ loại đánh giá tài liệu nào về các tài liệu này cực kỳ khó hoàn thành và vẫn trích xuất thông tin trên chúng.
Chắc chắn không có giải pháp "quay quây" để chọn mô hình.
Đưa ra một mô hình lập trình, bạn có thể tìm thấy các nghiên cứu trong các cơ sở dữ liệu học thuật và công nghiệp khác nhau về cách mô hình đó ảnh hưởng đến các khía cạnh khác nhau của phát triển phần mềm - chất lượng, khiếm khuyết, hiệu quả, v.v. - trong các điều kiện cụ thể khác nhau, từ kiến thức và kinh nghiệm của nhóm đến miền vấn đề. Bất kỳ bài viết nghiêm ngặt nào cũng cần xác định rõ các điều kiện theo đó dữ liệu được thu thập và các giả định. Vấn đề trở nên cố gắng cô lập các yếu tố làm cho nó tốt trong từng điều kiện đó.
Về mặt học thuật, có một số tuyên bố rất dễ nghiên cứu. Ví dụ, tuyên bố rằng mô hình chức năng rất phù hợp với các ứng dụng yêu cầu đồng thời xuất phát từ định lý Church-Rosser . Do đó, có khả năng một hệ thống phần mềm được viết bằng ngôn ngữ chức năng sẽ có ít lỗi hơn liên quan đến đồng thời so với cùng một hệ thống được viết bằng ngôn ngữ hướng thủ tục hoặc hướng đối tượng.
Tuy nhiên, từ quan điểm thực tế, một nhóm phần mềm không thể luôn sử dụng công cụ hoặc kỹ thuật "tốt nhất" cho công việc chỉ vì nghiên cứu chỉ ra điều đó. Mặc dù chúng tôi cố gắng sản xuất các hệ thống phần mềm chất lượng cao nhất, chúng tôi vẫn hoạt động trong các hạn chế. Thông thường, tôi thấy các ràng buộc này được giảm thiểu (hoặc thậm chí loại bỏ khỏi phương trình) khi thảo luận về hiệu quả của bất kỳ phương pháp nào.
Là một học viên, khi tôi tham gia vào việc lựa chọn công nghệ để sử dụng, tôi cố gắng xác định các công cụ tốt nhất có thể. Nhưng sau đó, tôi buộc mình vào những gì được biết và hiểu rõ bởi đội ngũ mà tôi có. Quay trở lại ví dụ trước của tôi, nếu tôi có một đội ngũ thành thạo trong việc xây dựng các ứng dụng đồng thời trong C ++ và không có kinh nghiệm về Haskell, thì sẽ không có ý nghĩa gì khi đề xuất xây dựng hệ thống trong Haskell vì tôi có thể sẽ không thể thực hiện được lịch trình và hạn chế về ngân sách, và chất lượng của tôi có thể sẽ bị ảnh hưởng do thiếu kinh nghiệm trong chuỗi công cụ.
Tóm lại, kỹ thuật phần mềm dựa trên bằng chứng nói chung là một điều tốt tồn tại và các đánh giá tài liệu tồn tại và có sẵn. Tuy nhiên, có những khía cạnh của công nghệ phần mềm nơi áp dụng các phương pháp dựa trên bằng chứng cung cấp rất ít giá trị. Việc lựa chọn một mô hình lập trình cho một nỗ lực phát triển quy mô lớn là một trong những điều này.
Nếu bạn muốn tìm hiểu về cách giải quyết vấn đề hướng tới đối tượng hoặc lỗi trong lập trình chức năng - bạn sẽ dễ dàng tìm thấy các ấn phẩm về những điều đó. Tuy nhiên, tôi đã không tìm thấy (tôi cũng không đặt niềm tin vào) một ấn phẩm có thể giải quyết hiệu quả việc lựa chọn mô hình trên phạm vi rộng của các dự án kỹ thuật phần mềm trong thế giới thực.