Các phương pháp đánh giá phần mềm

I. Tổng quan các phương pháp đánh giá phần mềm

Đánh giá phần mềm có thể được tạo ra trong một số kiểu khác nhau. Theo thứ tự tăng của tính chính xác, có 6 phương pháp đánh giá phần mềm dưới đây được sử dụng bởi các tập đoàn và tổ chức phần mềm được chia làm 2 nhóm chính:

  • Phương pháp đánh giá thủ công:

    • Đánh giá mức dự án thủ công sử dụng quy tắc ngón tay cái
    • Đánh giá mức giai đoạn sử dụng tỉ lệ và tỉ lệ phần trăm
    • Đánh giá mức hoạt động sử dụng cấu trúc phân tích công việc
  • Phương pháp đánh giá tự động:

    • Đánh giá ở mức dự án
    • Đánh giá ở mức giai đoạn
    • Đánh giá theo hoạt động hoặc mức độ công việc

II. Các phương pháp đánh giá phần mềm thủ công

  • Đánh giá thủ công các dự án phần mềm sử dụng quy tắc ngón tay cái đã tạo nên mẫu đánh giá đầu tiên của đánh giá chi phí phần mềm và phương pháp này được sử dụng rộng rãi nhất, mặc dù nó khác xa với phương pháp đánh giá chính xác nhất. Điều duy nhất của loại đánh giá đơn giản này là nó dễ làm. Tuy nhiên, đánh giá đơn giản sử dụng quy tắc ngón tay cái không nên dùng như là một cơ sở hợp đồng hay ngân sách chính thức cho dự án phần mềm.

  • Đánh giá theo giai đoạn sử dụng tỷ lệ và tỷ lệ phần trăm cũng là hình thức phổ biến và tồn tại lâu dàu của đánh giá phần mềm. thông thường sẽ có 5 đến 8 pha và các công việc cụ thể như:

    • (1) thu thập yêu cầu
    • (2) phân tích và thiết kế
    • (3) coding
    • (4) kiểm thử
    • (5) cài đặt và bảo trì. Đánh giá theo giai đoạn thường bắt đầu với một đánh giá dự án tổng quan và sau đó phân chia tỷ lệ và tỷ lệ phần trăm cho các pha riêng biệt. Đánh giá thủ công ở mức giai đoạn có chút hữu dụng hơn so với đánh giá tổng quan dự án và dễ dàng cho việc chuẩn bị. Tuy nhiên, chúng chưa đủ cho vấn đề hợp đồng, ngân quỹ và những mục đích kinh doanh quan trọng.
  • Loại đánh giá thủ công thứ 3 là đánh giá dựa trên hoạt động hay nhiệm vụ sử dụng cấu trúc phân tích công việc, khác xa với tính chính xác nhất của phương pháp thủ công. Phương pháp đánh giá nghiêm ngặt này xuất hiện vào những năm 1960 cho các dự án phần mềm quân đội lớn và đã được chứng minh là một phương pháp mạnh mẽ và có hiệu quả hỗ trợ các hình thức quản lí dự án. Nhược điểm của đánh giá thủ công dựa trên cấu trúc phân chia công việc là quá cặn kẽ, nó chi phối thời gian đánh giá ban đầu, và khó sửa đổi khi yêu cầu thay đổi hoặc điều chỉnh phạm vi của dự án.

III. Các phương pháp đánh giá phần mềm tự động

  • Hai mẫu đầu tiên của phương pháp đánh giá tự động khá giống với hình thức đánh giá thủ công, nhưng nó nhanh hơn, dễ dàng sử dụng hơn. Hình thức đánh giá tự động bắt đầu với công thức của nhân lực, nỗ lực, và yêu cầu tiến độ của dự án phần mềm hoàn chỉnh được định nghĩa là macro đánh giá.

  • Công cụ macro đánh giá thường hỗ trợ hai mức độ chi tiết:

    • (1)ước tính đến mức độ hoàn thiện dự án
    • (2) ước tính đến mức độ giai đoạn
  • Sử dụng xây dựng giả định cho tỷ lệ và tỷ lệ phần trăm gán cho mỗi giai đoạn.

  • Mặc dù công cụ macro-estimation là bản sao của đánh giá thủ công nhưng nhiều trong số chúng cung cấp một số tính năng có giá trị bổ sung vượt quá giới hạn của phương pháp đánh giá thủ công.

  • Công cụ đánh giá phần mềm tự động được xây dựng trên cơ sở kiến thức của hàng trăm, hàng nghìn dự án phần mềm. Cơ sở kiến thức này cho phép các công cụ tính toán tự động để thực hiện điều chỉnh dự toán các phương trình cơ bản để đáp ứng với những yếu tố chính có ảnh hưởng đến kết quả dự án phần mềm.

  • Nhược điểm của các macro-estimate là chúng không cung cấp đánh giá chi tiết để hỗ trợ tất cả các hoạt động phần mềm quan trọng. ví dụ như sản xuất tài liệu hướng dẫn người dùng, nỗ lực của nhân viên đảm bảo chất lượng, quản trị cơ sở dữ liệu, …

  • Ưu điểm:

    • Dữ liệu chi tiết thuận lợi cho việc làm hợp đồng và ngân sách.
    • Sai sót nếu có là sai sót cục bộ một nhiệm vụ, không phải toàn dự án
    • Có thể sửa hoặc thêm hoạt động
    • Hoạt động không được thực hiện cho một dự án cụ thể có thể được sao lưu
    • Có thể thấy được nỗ lực của việc viết tài liệu kĩ thuật
    • Xác nhận đánh giá là đơn giản vì không có gì mập mờ
    • Micro-estimate thích hợp cho những dự án Agile
  • Một khía cạnh quan trọng của ước lượng phần mềm là biểu đồ tài khoản sử dụng hoặc tập hợp các hoạt động mà tài nguyên và dữ liệu chi phí được ước tính. Các hoạt động có trong trong ước lượng phần mềm có 4 cấp độ chính:

    • Cấp dự án
    • Cấp giai đoạn
    • Cấp hoạt động
    • Cấp nhiệm vụ
  • Không có giới hạn về các activity sử dụng cho các dự án phần mềm, nhưng trong khoảng từ 15-50 key deliverables tạo thành một phạm vi trung bình đối với mục đích ước lượng phần mềm. Các hoạt động khác nhau từ các giai đoạn trong đó chúng ko mang trình tự thời gian, nhiều hoạt động tìm thấy trong bất kì giai đoạn nhất định.

IV. So sánh giữa hai phương pháp ước lượng

  • Một cuộc thử nghiệm với dự án khoảng 5000 điểm chức năng được thực hiện để so sánh giữa 50 ước lượng thủ công và 50 ước lượng tự động. các nhà quản lí phần mềm thực hiện 50 ước lượng thủ công với máy tính và bảng tính. Các nhân viên thực hiện ước lượng tự động với các công cụ đánh giá phần mềm thương mại. Kết quả là chỉ có 4 ước lượng thủ công dưới 10% thực tế, 17 ước tính đạt 10%-30% thực tế, 29% dự án đạt hơn 30%. Điều đó nói lên ước tính thủ công dự toán chi phí thấp hơn và ngắn hơn so với lịch trình thực sự. Với ước tính tự động 22 ước tính dưới 10% kết quả thực tế. 24 ước tính đạt 10% - 25%. 3 ước tính là hơn 25%, chỉ 1 ước tính trên 25%.

  • Điều thú vị là, dự toán thủ công và dự toán tự động là khá gần về dự đoán mã hóa hoặc nỗ lực lập trình.

  • Nhưng dự toán hướng rất lạc quan khi dự đoán nhu cầu tăng trưởng, nỗ lực thiết kế, nỗ lực tài liệu, nỗ lực quản lý, nỗ lực thử nghiệm và sửa chữa và nỗ lực làm lại. Kết luận của so sánh là cả hai ước tính thủ công và tự động là tương đương với chương trình thực tế, nhưng dự toán tự động là tốt hơn để dự đoán các hoạt động không mã hoá.

  • Đây là một vấn đề quan trọng để ước lượng các ứng dụng phần mềm lớn. Cho các dự án phần mềm dưới đây khoảng 1000 điểm chức năng, lập trình chi phối chi phí lớn nên ước tính chính xác để mã hóa là vấn đề quan trọng. Nhưng đối với các dự án trên 10.000 điểm chức năng, loại bỏ những khiếm khuyết và sản xuất các tài liệu giấy tốn kém hơn so với mã hóa. Do đó dộ chính xác trong việc ước tính các chủ để này là một yếu tố quan trọng.

  • Tất nhiên, ước lượng chi phí phần mềm và lịch trình phải chính xác. Nhưng nếu họ làm khác với kết quả thực tế, nó là an toàn hơn. Một trong những khiếu nại lớn về các dự án phần mềm đều là về quá chi phí và lịch trình dự kiến. Thật không may cả khác hàng và giám đốc điều hành phía trên đều gây áp lực với nhà quản lí và nhân viên tính toán theo ước tính lạc quan. Do đó, một hệ quả tất yếu của ước tính thành công là ước tính phải phòng thủ. Phòng thủ tốt nhất là một tập dữ liệu từ các dự án tương tự trước kia.

V. Kết luận

Trên đây là tìm hiểu về một số phương pháp đánh giá phần mềm thông dụng có tính chính xác cao. Dựa vào đó ta có thể đánh giá được phần mềm một cách hiệu quả. Hi vọng bài viết có thể giúp các bạn có được cách nhìn tổng quan về các phương pháp đánh giá phần mềm tốt nhất.

Cảm ơn đã theo dõi