Chương I: trình bày tổng quan về ước lượng dự án phần mềm. Chương II: trình bày một số phương pháp ước lượng dự án phần mềm truyền thống, đặc biệt là phương pháp COCOMO. Chương III: trình bày phương pháp ước lượng dự án “điểm ca sử dụng”, dành riêng cho các dự án phần mềm phát triển hướng đối tượng. Chương IV: phát triển chương trình ứng dụng dựa trên phương pháp đã trình bày và thử nghiệm với một ví dụ đã cho.
Cuối cùng là tài liệu tham khảo và phụ lục. 12 TIEU LUAN MOI download : skknchat@gmail.com CHƢƠNG 1: TỔNG QUAN VỀ ƢỚC LƢỢNG DỰ ÁN PHẦN MỀM 1.1 Khái niệm về ƣớc lƣợng dự án phần mềm Trong những ngày đầu của tin học, chi phí phần mềm bao gồm một phần trăm nhỏ của toàn bộ chi phí cho hệ thống dựa trên máy tính. Một lỗi lớn trong ước lượng chi phí phần mềm có thể ít ảnh hưởng đến sự thành bại của dự án. Ngày nay, phần mềm là yếu tố tốn kém nhất của nhiều hệ thống dựa trên máy tính.
Ước lượng chi phí sai có thể dẫn đến sự thất bại của nhiều dự án phần mềm. Ước lượng chi phí và công sức phần mềm chắc chắn không là một khoa học chính xác. Có quá nhiều tham số (con người, kỹ thuật, môi trường, chính trị…) ảnh hưởng tới chi phí chung cuộc của phần mềm và công sức cần để phát triển nó. Để có được các ước lượng chi phí và công sức tin cậy, một số tùy chọn sau đây được sử dụng: Trì hoãn việc ước lượng tới giai đoạn sau của dự án (có thể đạt được ước lượng chính xác 100% khi dự án đã hoàn tất).
Dùng các kỹ thuật phân rã để sinh ra ước lượng về chi phí và công sức dự án. Phát triển mô hình kinh nghiệm cho chi phí và công sức làm phần mềm. Thu được từ một hay nhiều công cụ ước lượng tự động. Tùy chọn đầu tiên là “hấp dẫn” nhưng lại không thực tế, vì các ước lượng chi phí cần phải được đưa ra ngay từ đầu làm cơ sở cho việc triển khai và quản lý dự án.
Ba cách tiếp cận còn lại chỉ có thể cho ước lượng gần đúng đối với dự án phần mềm. Có thể áp dụng các kỹ thuật tùy chọn trên nối tiếp nhau, và mỗi tùy chọn dùng như một phép kiểm tra cho tùy chọn khác. Bằng cách phân rã một dự án thành các chức năng chính và các nhiệm vụ kỹ nghệ phần mềm liên quan, việc ước lượng chi phí và nỗ lực có thể được thực hiện theo từng phần, từng bước. Các mô hình ước lượng theo kinh nghiệm (dựa trên dữ liệu lịch sử) có thể được dùng như một giải pháp bổ sung và cho một cách tiếp cận ước lượng gần với thực tế.
Mô hình này có dạng: d = f(vi) 13 TIEU LUAN MOI download : skknchat@gmail.com d: là một trong một số các giá trị ước lượng (như công sức, chi phí, thời gian,…). vi: các tham biến độc lập được chọn (LOC hoặc FP được ước lượng). Có các công cụ ước lượng tự động cài đặt cho một hay nhiều kỹ thuật phân rã (hay mô hình kinh nghiệm). Khi được tổ hợp với một giao diện tương tác người máy, cho phép chọn một tùy chọn thích hợp cho việc ước lượng.
Trong một hệ thống như vậy, các đặc trưng của tổ chức phát triển (như kinh nghiệm, môi trường,…) và phần mềm cần phát triển sẽ được mô tả, các ước lượng chi phí và nỗ lực được suy ra các từ dữ liệu này [20]. Một dự án trước khi thực hiện hoặc lập kế hoạch cần phải đánh giá được quy mô của nó, các tài nguyên cần thiết, lịch trình thực hiện với các cột mốc quan trọng như: lập các kế hoạch, kết thúc một giai đoạn, gửi tài liệu, bàn giao… Thông thường thì giá thành và lịch trình thực hiện một dự án thường mang tính rủi ro cao khi không được ước lượng đúng mức. Một số trong các lý do đó là: Giá thành và thời hạn thường được các đối tượng ngoài dự án như: khách hàng, chủ đầu tư,… quyết định trước. Công việc phân tích thiết kế không phải bao giờ cũng bao quát hết các tình huống, các yêu cầu chưa được hiểu hết, hiểu đúng.
Thường thì khách hàng không hiểu được việc phát triển phần mềm là một công việc có tính công nghệ cao với giá thành cao (và tiềm ẩn rủi ro). Quy trình ước lượng chi phí phần mềm dưới đây mô tả các bước cần thiết cho việc bắt đầu đánh giá một vòng đời phần mềm và sau đó là theo dõi, tinh chỉnh thường xuyên những đánh giá có được trong suốt thời gian thực hiện dự án. Thiết lập quy trình này càng sớm sẽ giúp cho việc đánh giá được chính xác hơn, tin cậy hơn, từ đó có thể xác định rõ ràng các nhân tố liên quan tới giá thành, thời gian hoàn thành của dự án để có một cách quản lý phù hợp, đảm bảo sự thành công cho dự án, đặc biệt các giải pháp cho việc quản lý các rủi ro liên quan tới chi phí và lịch trình dự án. Quy trình ước lượng là một quá trình liên tục gồm các hoạt động: 1.
Ước lượng kích thước (quy mô phần mềm). 14 TIEU LUAN MOI download : skknchat@gmail. Ước lượng chi phí và các nỗ lực. Ước lượng lịch trình.
Ước lượng các tài nguyên. Đánh giá rủi ro. Kiểm tra/ xác nhận. Theo dõi và báo cáo tiến độ.
Đánh giá và cải tiến quy trình. Các hoạt động ước lượng kích thước, nỗ lực và chi phí cần được thực hiện trước khi xây dựng các kế hoạch. Tuy nhiên, việc xây dựng lịch trình thường được bắt đầu thực hiện trước khi hoàn thành tất cả các công việc xác định các nỗ lực. Ngoài ra, việc sớm thiết lập bảng phân rã công việc WBS (Work Breakdown Structure) giúp việc phân chia các các công việc thành các phần việc độc lập để có thể lập lịch và sắp thứ tự ưu tiên thực hiện từng phần việc trong điều kiện cụ thể với sự hạn chế về các tài nguyên.
Sơ đồ tổng quát quy trình ước lượng dự án phần mềm cho ở hình 1. 15 TIEU LUAN MOI download : skknchat@gmail.1 Quy trình ước lượng dự án phần mềm 1.2 Ƣớc lƣợng kích thƣớc Kích cỡ của phần mềm thường được đánh giá bằng số dòng mã lệnh SLOC (Source Lines of Code) hoặc số nghìn dòng mã KSLOC (Thousands of Source Lines of Code). Phần mềm có thể được phát triển bằng cách viết mới hoàn toàn hoặc dùng một hay nhiều môđun có sẵn. Do vậy, việc ước lượng bao gồm việc ước lượng các đoạn mã mới cần viết và cả phần sử dụng lại.
Việc ước lượng kích cỡ có thể được đánh giá qua đơn vị điểm chức năng FP (Function Points) dựa trên các chức năng của phần mềm thường nhận được ngay trong pha tìm hiểu yêu cầu. Dòng mã LOC và điểm chức năng FP là những dữ liệu cơ bản để tính ra độ đo hiệu năng phát triển phần mềm. 16 TIEU LUAN MOI download : skknchat@gmail.com Ước lượng LOC và FP là các kỹ thuật ước lượng tách biệt, nhưng cả hai đều có một số đặc trưng chung. Từ một tuyên bố về phạm vi phần mềm, người lập dự án bắt đầu phân rã phần mềm thành các chức năng nhỏ hơn để có thể được áp dụng riêng biệt.
LOC và FP sẽ được ước lượng cho từng chức năng con. Các ước lượng này được tổ hợp lại để tạo ra một ước lượng tổng thể cho toàn bộ dự án. Các ước lượng LOC và FP phụ thuộc vào mức độ chi tiết của bảng phân rã công việc WBS. LOC được ước lượng trực tiếp từ WBS, còn FP được xác định gián tiếp qua số đầu vào, đầu ra, tệp dữ liệu, câu hỏi và giao diện ngoài và sử dụng 14 giá trị điều chỉnh độ phức tạp Fi bằng việc trả lời những câu hỏi sau: 1.
Hệ thống có đòi hỏi sao lưu và phục hồi không? 2. Có đòi hỏi trao đổi dữ liệu không? 3. Có chức năng xử lý phân tán không? 4. Có đòi hỏi cao về làm việc tốt không? 5.
Hệ thống có chạy trong môi trường mà nặng về vận hành tiện ích không? 6. Hệ thống có đòi hỏi việc vào dữ liệu trực tuyến không? 7. Việc vào dữ liệu trực tuyến có đòi hỏi phải xây dựng thao tác đưa vào và thông qua nhiều màn hình thao tác không? 8. Tệp chính có phải cập nhật trực tuyến không? 9.
Đầu vào, đầu ra, tệp, truy vấn có phức tạp không? 10. Xử lý bên trong có phức tạp không? 11. Mã chương trình có được thiết kế để dùng lại không? 12. Việc chuyển đổi và cài đặt có được đưa vào trong thiết kế không? 13.
Hệ thống có được thiết kế cho nhiều cài đặt trong các tổ chức khác nhau hay không? 14. Liệu ứng dụng có được thiết kế để làm thuận tiện cho việc thay đổi và dễ dàng cho người dùng không? Bất kể là tham số ước lượng nào được dùng, người lập kế hoạch dự án về cơ bản phải đưa ra một phạm vi các giá trị cho từng chức năng được phân rã. Bằng cách dùng dữ liệu lịch sử hay trực giác, người lập kế hoạch thường dùng 17 TIEU LUAN MOI download : skknchat@gmail.com ba ước lượng cho LOC hay FP là các giá trị lạc quan (a), có thể nhất (m) và bi quan (b). Ví dụ: a 4m b E= 6 Số này cho một sự tin cậy nhất định đối với ước lượng và có thể tính đến phân bố xác suất của nó.
Tại giai đoạn này, người lập kế hoạch áp dụng một trong hai cách tiếp cận sau: 1. Tất cả giá trị tham số ước lượng của các chức năng con có thể được nhân lên với hiệu năng trung bình lấy từ dữ liệu lịch sử tương ứng với tham số ước lượng đó. Chẳng hạn, giả sử ta đã ước lượng được tổng điểm chức năng là 310 FP và hiệu năng trung bình của FP từ các dự án quá khứ là 5.5 FP/người-tháng thì tổng công sức ước lượng cho dự án sẽ là: 310 Công sức = 56 người-tháng 5. Giá trị ước lượng cho từng chức năng con có thể được nhân với hiệu năng được điều chỉnh dựa vào mức độ phức tạp nhận biết được của các chức năng con: nếu nó có độ phức tạp trung bình, thì dùng độ đo hiệu năng trung bình.
Tuy nhiên, độ đo được điều chỉnh lên hay xuống đối với chức năng con cụ thể tùy thuộc vào độ phức của nó cao hơn hay thấp hơn độ phức tạp trung bình. Các ước lượng này có đúng hay không là điều chưa chắc chắn.