- Là một quá trình mang tính chất lặp.- Ngay trong giai đoạn xác định, để có thể viết kế hoạch dự án ban đầu, chúng ta đã phải tiến hành ước lượng lần thứnhất.. - Trong lập trình, đó có
Trang 1ThS Nguyễn Khắc Quốc
IT Department – Tra Vinh Univ ersity
Trang 2- Là một quá trình mang tính chất lặp.
- Ngay trong giai đoạn xác định, để có thể viết kế hoạch dự
án ban đầu, chúng ta đã phải tiến hành ước lượng lần thứnhất
- Tuy nhiên, kinh nghiệm của các công ty phần mềm lớn chothấy ước lượng ở giai đoạn này thường sai số từ 50% đến100%
- Sau khi lập kế hoạch ở giai đoạn phân tích, chúng ta phảixem lại các ước lượng này và chỉnh lại kế hoạch dự án banđầu thành kế hoạch dự án cuối cùng
Trang 3- Sang giai đoạn này, ước lượng phải chính xác lên gấp đôi:sai số chỉ được còn từ 25% đến 50%.
- Sau khi hoàn thành thiết kế mức trung gian, chúng ta xét lạilần nữa các ước lượng
- Với hiểu biết thu được vào lúc đó, sai số phải giảm xuốngcòn 10%
- Bất kỳ ở giai đoạn nào, cũng cần chỉnh lại các ước lượngcủa mình mỗi khi có thêm hiểu biết mới về dự án
- Điều cơ bản là phải có một cấu trúc phân chia công việc tốttrước khi ước lượng
Trang 4Có ba kỹ thuật chính:
+ Đánh giá của chuyên gia,+ Qui trình lịch sử,
+ Dùng công thức
Sử dụng đánh giá chuyên gia
-Cần một người rất có kinh nghiệm lập trình cho các đơn thểsinh báo cáo
- Yêu cầu người đó ước lượng phải mất bao lâu để lập trìnhcho thiết kế này
- Sau khi khảo cứu thiết kế khoảng năm phút, người lập trình
nhắm mắt lại năm phút nữa (không phải anh ta ngủ, mà là
Trang 5Ưu điểm:
+ Rất nhanh+ Nếu là một chuyên gia, thì ước lượng rất chính xác
+ Việc chỉ dựa vào ý kiến và hiểu biết chủ quan của
số ít chuyên gia, cũng là một điều nguy hiểm
Trang 6Quy trình lịch sử
- Viết ra mỗi công việc cần bao lâu để hoàn thành và ai làngười chịu trách nhiệm
- So sánh công việc cần đánh giá với những công việc tương
tự đã được thực hiện trong quá khứ và đi tới một ước lượng
- Cần chia dự án thành những công việc thường hay lặp lại
và dễ so sánh
- Trong lập trình, đó có thể là việc sinh ra biểu mẫu đưa vào,sinh báo cáo, tính toán một công thức phức tạp,
Trang 7- Trên thực tế, các công ty thường có khuynh hướng xâydựng các kiểu dự án tương tự nhau.
- Chúng ta hãy tìm những khối xây dựng cơ sở và tài liệuhiện thời và xây dựng các khối này theo kiểu để sau này còn
sử dụng lại được
- Chúng ta có thể ước lượng việc tái sử dụng chính xác hơn
là việc viết lại
- Để so sánh được chính xác hai công việc như nhau, chúng
ta cần để ý ai là người thực hiện việc các công việc đó
- Thống kê của các công ty IBM và DEC chỉ ra rằng tỉ lệ hiệusuất có thể đạt tới 8 trên 1 giữa các nhà chuyên môn giỏinhất và kém nhất
Trang 8Sử dụng công thức
- Công thức nổi tiếng nhất có thể có tên là COCOMO
- Công thức này có thể được dùng để ước lượng giá thành
dự án, ngày công (người tháng), lịch biểu (tháng), và biên chế (số nhân viên) cho từng giai đoạn sau:
+ Thiết kế chi tiết (DD) - là giai đoạn Thiết kế+ Lập trình và kiểm thử (CUT) - Như của chúng ta+ Kiểm thử hệ thống (ST) - là giai đoạn Chấp nhận+ Kiểm thử Hệ thống
Trang 9Có ba kiểu đầu vào cho COCOMO:
+ Chi phí hàng tháng cho đội ngũ nhân viên
+ Các kiểu nhân viên có thể là người lập trình, nhàphân tích, người kiểm thử, nhân viên hành chính, người viếttài liệu kỹ thuật
+ Các nhân tố chỉ ra độ phức tạp chung của phầnmềm, kích cỡ và máy tính có sẵn được dùng cho việc pháttriển, khả năng và kinh nghiệm của đội ngũ nhân viên và cácthực tế và công cụ lập trình được sử dụng
Trang 10Mẫu mốt ước lượng
Trang 12- COCOMO thực hiện ước lượng tuyệt vời vì các khoảnmục ở đây dường như đúng là những yếu tố xác định độ dài
dự án
- Một khó khăn: mục cuối cùng của COCOMO yêu cầu biết
số dòng chương trình gốc (LOSC)
Trang 13Công thức điểm chức năng
- Cách tiếp cận COCOMO được cải tiến bằng những sảnphẩm tính các hàm cho LOSC nêu trên, rồi lập kết quả vàocông thức của COCOMO
- Một trong những sản phẩm như vậy là Before You Leap(BYL) của Nhóm Gordon
- Màn hình BYL nhắc người dùng về các điểm chức năng vàngôn ngữ được dùng
- Kết quả do BYL cho lại là tương tự như kết quả củaCOCOMO, ngoài ra có thể được trình bày bằng đồ thị sơ đồmúi hay thanh
Trang 14- Một sản phẩm khác cũng nên xét ở đây là estimac của
Hiệp hội Máy tính (Computer associatess).
- CA-estimac cho phép chúng ta tìm giá thành, ngày công,lịch biểu, và biên chế như trong COCOMO, nhưng có thêm
các yêu cầu phần cứng (hướng IBM), phân tích chia theo sự
kiện tài chính, phân tích rủi ro và giá bảo hành cho cả cácmôi trường một và nhiều dự án
- CA-estimac có thể tính tới cả các công cụ phát triển hệthống hiện đại như bộ sinh chương trình hay bộ tạo bảnmẫu
- Nó thậm chí còn có thể ước lượng các lộ trình được muahay phát triển theo yêu cầu
- Kiểu của các nhân tố đưa vào cho CA-estimac được liệt kê
Trang 15Ước lượng việc lập trình
- Một cách tiếp cận công thức rất thành công cho việc ướclượng giai đoạn lập trình là cách tiếp cận điểm chức năngđơn giản
- Về cơ bản chỉ có hai nhân tố ảnh hưởng tới thời gian đểthực hiện một công việc:
+ Độ phức tạp của công việc (C)+ Hiệu năng của người thực hiện
- Hiệu năng của người phụ thuộc vào:
+ Số năm kinh nghiệm nói chung (G)+ Tri thức về một công việc đã cho (J)
Trang 16Dưới dạng công thức điều này có thể được diễn đạt là:
Trang 17Độ phức tạp
- Để suy ra nhân tố độ phức tạp ta chia nó ra thành cácchức năng nhỏ nhất lặp lại được và bổ sung thêm độ phứctạp của từng chức năng
- Đối với một công việc lập trình, chúng được gọi là cácđiểm chức năng
- Các điểm chức năng có thể là người dùng đưa vào, ngườidùng hiển thị, thiết bị ngoại vi vào/ra, cấu trúc lại dữ liệu,kiểm tra điều kiện, tính toán, nhảy và gọi,
- Độ phức tạp của chương trình phụ thuộc vào ngôn ngữđược dùng và độ phức tạp của từng thời điểm chức năng
(Xem Hình 9.4.)
Trang 18- Hiệu năng chịu ảnh hưởng bởi những năm kinh nghiệmnói chung và hiểu biết về công việc.
Trang 19- Tốc độ mà một nhà chuyên môn sẽ tạo ra sản phẩm phụ thuộckhông chỉ vào kinh nghiệm chung (G)
- Còn phụ thuộc không chỉ vào kinh nghiệm đối với một công việchiện đang làm và với các công việc có liên quan
- Khối lượng tri thức thực tế cần tới nên được đưa thành mộtnhân tố
- Có thể dùng bảng sau đây để định tính cho tri thức này (J)
Trang 21Kết luận về phương pháp công thức.
- Phương pháp này dùng được nếu chúng ta xây dựng cácnhân tố chính xác
- Cái hay của cách tiếp cận này là ở chỗ ta có thể dùng nócho bất kỳ công việc nào, dù đó là lập trình hay xây nhà
- Lưu ý rằng phương pháp này, như bất kỳ phương pháp ướclượng nào khác, đều tuỳ thuộc vào việc phân chia nhỏ côngviệc như thế nào
Trang 22- Ước lượng việc phân tích là điều rất khó vì đó là dạng hoạtđộng hướng con người.
- Phương pháp này tuỳ thuộc vào việc chia công việc thànhcác phần nhỏ
Trang 23- Ước lượng việc phân tích là điều rất khó vì đó là dạng hoạtđộng hướng con người.
- Phương pháp này tuỳ thuộc vào việc chia công việc thànhcác phần nhỏ