Ước lượng một kích thước lớn hơn

Một phần của tài liệu quy trình PSP (Trang 48 - 51)

Trong khi cách tiếp cận trong bảng 2.5.3 làm tốt cho các chương trình nhỏ của loại mà bạn đã viết trước đây, nó lại không hoạt động tốt đối với chương trình lớn hơn hay các chương trình mới. Lý do là ngay cả những chương trình khá nhỏ cũng thường chứa một tập hợp các hàm và thủ tục. Vì vậy với các chương trình lớn hơn, bạn sẽ càng gặp nhiều rắc rối khi liên hệ chương trình mới với các chương trình đã phát triển trước đây.

Một cách tiếp cận cho vấn đề này là sử dụng biểu mẫu như trong bảng 2.5.4. Ởđây, các chương trình hay hàm và thủ tục khác nhau được liệt kê ra. Với dữ liệu của một số các chương trình, bạn có thể chia một danh sách thành các loại như sinh viên Y làm trong bảng 2.5.5. Mục đích là để xây dựng một hồ sơ lịch sử các thành phần được viết trước đây với các dữ liệu là số dòng lệnh mà chúng chứa đựng. Khi xem xét các hàm trong một chương trình mới, bạn có thể ước lượng kích thước của mỗi hàm và cộng tất cả những ước lượng hàm này để lấy được ước lượng tổng cộng cho chương trình.

Với các chương trình nhỏ, liệt kê mỗi chương trình như bảng 2.5.5. Khi chương trình trở nên lớn hơn, chúng sẽ bao gồm nhiều chức năng và hàm. Bằng cách liệt kê mỗi hàm và thủ tục riêng rẽ nhau, bạn có thể nhanh chóng xây dựng được một cơ sở cho dữ liệu ước lượng lịch sử. Với nhiều dữ liệu hơn, để giữ một biểu mẫu riêng rẽ giống bảng 2.5.4 cho mỗi loại chương trình sẽ rất có ích. Bạn có thể có một biểu mẫu cho tính toán và một cái khác cho các hàm quản lý văn bản, một cho điều khiển, và v..v… Trên mỗi biểu mẫu, liệt kê các hàm chương trình theo trật tự kích thước và bao gồm tên hoặc số của chương trình chứa đựng nó.

Sinh viên Ngày

Người hướng dẫn Lớp

Chương trình lSệốnh dòng trCác chước đứây c năng lHàm ượng ước Nhnhấỏt Trung bình Lnhớấn t

Ước lượng

Lời chú giải:

Sinh viên Sinh viên Y Ngày 30/9/96

Người hướng dẫn Ông Z Lớp CS1

Chương

trình Sốl dòng ệnh Các chtrướức c nđây ăng Hàm lượng ước nhNhấỏt Trung bình nhLớấn t

Vòng lặp 4 10 Vòng lặp while đơn giản 5 14 Repeat-until trung bình Repeat- until 7 11 4 Case

2 11 Câu trường hợp nhỏ trường hợp 5 8 11 3 14 Câu trường hợp lớn hơn Dữ liệu 6 18 Danh sách liên kết nhỏ Tính toán 1 20 Tính toán nhỏ Tính toán 10 15 20 Ước lượng 22 34 45

Lời chú giải: Chương trình này có một câu trường hợp đơn giản, 1 vòng lặp, và 1 tính toán. Giả sử rằng, tối đa nó sẽ chiếm tổng các kích thước tiêu biểu này, hay 11+14+20=45 dòng lệnh

Tối thiểu, giả sử rằng những hàm này có thể được phối hợp hiệu quả hơn khi chúng được viết riêng rẽ. Vì vậy, lấy 22 dòng lệnh là tối thiểu. 34 dòng lệnh là điểm giữa của

chúng.

Bảng 2.5.5 Các ước lượng kích thước chương trình của sinh viên Y

Một ví dụ về cách ước lượng theo cách này được thể hiện trong bảng 2.5.5. Ởđây, sinh viên Y đã nhóm dữ liệu trong một số chương trình thành các loại khác nhau. Tuy nhiên vì các chương trình này khá nhỏ, cô chỉ liệt kê các chương trình hoàn chỉnh. Đểước

lượng số dòng lệnh của một chương trình mới, cô phán đoán chương trình cần bao nhiêu dòng lệnh cho mỗi loại hàm.

Sinh viên Y làm điều này bằng cách ban đầu kiểm tra các yêu cầu cho chương trình mới và thiết lập một chiến lược chung về cách xây dựng nó. Cô nghĩ rằng sẽ sử dụng một vòng lặp repeat-until, một câu case đơn giản và một tính toán khá đơn giản. Tuy nhiên, trong việc ước lượng này, cô không hoàn toàn chắc chắn mỗi phần của chương trình sẽ lớn bao nhiêu, vì vậy cô ước lượng một kích thước nhỏ nhất, kích thước lớn nhất và sau đó là kích thước trung bình cho mỗi chức năng. Tuy cô hay sử dụng các kích thước trung bình trong ước lượng của mình, luyện tập về cách nghĩ về kích thước nhỏ nhất và lớn nhất sẽ giúp tránh đưa ra các ước lượng quá nhỏ hoặc quá lớn.

Tuy đây không phải là một ước lượng kích thước hết sức rõ ràng nhưng vẫn tốt hơn là đoán. Khi bạn viết các chương trình bạn cũng có thể thêm danh sách này vào các tiến trình. Việc lớn lên của dữ liệu lịch sử khi đó sẽ giúp bạn đưa ra được những ước lượng phù hợp hơn.

Không có phương pháp nào cam đoan cho việc ước lượng kích thước tốt. Ước lượng kích thước là một kỹ năng. Bí quyết là có một lượng đáng kể các dữ liệu lịch sử, đưa ra nhiều ước lượng kích thước, thường xuyên so sánh các kết quả của bạn với các ước lượng.

Một phần của tài liệu quy trình PSP (Trang 48 - 51)