a) Ưu điểm
Mô hình có thuật toán rất rõ ràng, và chúng ta có thể xem cách nó hoạt động cụ thể như thế nào để tự động hóa quá trình đánh giá.
Các Yếu tố điều chỉnh là khá đầy đủ, có tính đến cả các yếu tố Nhân lực thực hiện dự án, một bổ sung so với FPA. Các Yếu tố được cho điểm chi tiết, điều này giúp ích tốt cho việc đánh giá mức độ ảnh hưởng của mỗi yếu tố để điều chỉnh giá của dự án
b) Nhược điểm
Nhược điểm lớn nhất của COCOMO là việc đánh giá số dòng lệnh của chương trình sớm trong vòng đời sản phẩm là một công việc khó khăn và có vẻ không khả thi, khó có thể đưa ra một đánh giá sớm và đáng tin cậy. Điều này phụ thuộc công nghệ được dùng để triển khai. Việc lựa chọn ngôn ngữ lập trình nào ảnh hưởng rất lớn đến số dòng lệnh. Hơn nữa, ngày nay việc xây dựng các giao diện người – máy cho hệ thống
Chương 2
21
nhận được sự hỗ trợ rất lớn từ nhiều công cụ kéo thả giao diện. Đánh giá số dòng lệnh để ước lượng giá theo mô hình COCOMO trong trường hợp này không còn đúng nữa vì các lệnh được sinh ra tự động chứ không phải do con người viết.
Mô hình COCOMO chỉ quan tâm đến số lượng dòng lệnh để tính toán. Tức là với một số lượng dòng lệnh cho trước, dù là thuộc ngôn ngữ nào, sẽ cho một giá sản phẩm (nỗ lực và thời gian phát triển) cụ thể, dù giá này có thể được điều chỉnh bằng các yếu tố điều chỉnh, thì giá trị điều chỉnh là không đáng kể. Điều này là không hợp lý khi lượng tri thức chứa trong một số lượng dòng lệnh cho trước của các ngôn ngữ khác nhau là rất khác nhau, dẫn đến nỗ lực phát triển lượng dòng lệnh đó bởi các ngôn ngữ khác nhau là khác nhau. Hơn nữa, ngay cả trong cùng 1 ngôn ngữ thì các đoạn mã khác nhau mà có cùng số lượng dòng cũng chứa lượng tri thức khác nhau, tức là nỗ lực phát triển khác nhau
Việc phân biệt 3 phương thức phát triển dự án có lẽ là hợp lý ở thời điểm mà COCOMO được đưa ra nhưng hiện nay, cách phân biệt như vậy là không rõ ràng và dễ gây nhầm lẫn. Cụ thể, có thể có những dự án nhỏ, có lẽ thuộc chế độ organic, nhưng lại có những yêu cầu khắt khe và dự án phải xây dựng một cách cẩn thận từ đầu mà không nhận được sự hỗ trợ từ dữ liệu lịch sử, giống với kiểu embedded.