Sự tiết kiệm của việc loại bỏ sai sót

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

Một sự hiểu biết về tốc độ loại bỏ sai sót thì quan trọng trong các dự án lớn và nó có thể có ích cho cá nhân các kỹ sư phần mềm. Khi phát triển một chương trình kích thước vừa phải, và giả sử như dữ liệu của bạn tương tự với các kỹ sư khác, bạn sẽ mắc phải khoảng 100 sai sót/KLOC và tìm thấy khoảng 50 sai sót mỗi KLOC trong biên dịch và tìm ra 40 sai sót nữa cho mỗi KLOC trong kiểm thửđơn vị.

500 LOC 10000 LOC

Không có

PSP Với PSP Không có PSP PSP Với

Sai sót

Tổng số sai sót 50 25 1000 500

Tìm thấy trong xem lại code 0 15 0 300

Sai sót còn lại 50 10 1000 200

Tìm thấy trong biên dịch 25 5 500 100

Tìm thấy trong kiểm thửđơn vị 20 4 400 80

Sai sót còn lại 5 1 100 20

Thời gian (giờ)

Thời gian xem lại code 0 2.5 0 50

Thời gian biên dịch 2 0.5 40 10

Thời gian kiểm thửđơn vị 10 2 200 40

Thời gian loại bỏ sai sót cá nhân 12 5 240 100 Thời gian kiểm thử tích hợp và

kiểm thử hệ thống

1000 200

Tổng thời gian loại bỏ sai sót 12 5 1240 300

Bảng 3.6.1 Ví dụ về việc mắc phải và loại bỏ sai sót

Như trong bảng trên, điều này có nghĩa rằng 1 chương trình 500 LOC sẽ có tổng cộng khoảng 50 sai sót. Trong số này, 25 sai sót sẽ được tìm thấy trong biên dịch và, nếu may mắn, 20 sai sót nữa sẽđược tìm thấy trong kiểm thửđơn vị. Nếu bạn không thực hiện xem lại code, bạn có thể mất khoảng 2 giờđể biên dịch sạch lỗi và tìm ra 25 sai sót này.

Kiểm thửđơn vị sẽ chiếm khoảng 10 giờđể tìm thấy 20 sai sót kia. Tổng cộng cần có 12 giờđồng hồđể loại bỏ sai sót.

Sau khi học PSP, bạn sẽ chỉ mắc phải khoảng 50 sai sót/KLOC. Nếu xem lại code, bạn có thể sẽ tìm ra được 60% đến 70% các sai sót này trước khi biên dịch lần đầu tiên. Lúc này, biên dịch chỉ chiếm khoảng 30 phút và chỉ còn 4 đến 5 sai sót cần phải tìm ra trong kiểm thửđơn vị. Kiểm thử vì vậy cần khoảng 2 giờ. Giả sử bạn bỏ ra 2.5 giờ trong xem lại code, tổng thời gian loại bỏ sai sót bây giờ chỉ là 5 giờ, tiết kiệm được 7 giờ.

Dường như không đáng để nỗ lực nhiều chỉ để cắt giảm thời gian loại bỏ sai sót xuống 7 giờđồng hồ với một công việc mà việc thực hiện với khoảng vài ngày, nhưng hãy xem xét đến việc những con số này tăng lên như thế nào khi kích thước chương trình tăng lên.

Để thấy được điều này có ý nghĩa như thế nào trong thực tiễn, giả sử bạn và 4 kỹ sư khác định phát triển một sản phẩm phần mềm 50000 LOC. Mỗi người dựđịnh phát triển một thành phần 10000 LOC và sau đó tích hợp lại và kiểm thử toàn bộ hệ thống. Dựa vào dữ liệu điển hình của các kỹ sư, bạn và các đồng sự có thể sẽ mắc phải khoảng 100 sai sót/KLOC, nghĩa là sẽ có 5000 sai sót cần được tìm thấy và sửa chữa. Sử dụng các tỉ lệđã nói ở trên, có khoảng 2500 sai sót sẽđược tìm thấy trong biên dịch và 2000 sai sót trong kiểm thửđơn vị. Như vậy còn 500 sai sót cần tìm thấy trong kiểm thử tích hợp và kiểm thử hệ thống. Giả sử như sản phẩm của bạn đơn giản hơn Microsoft’s NT, bạn có thể tìm được các sai sót này với chi phí trung bình chỉ khoảng 10 giờ. Loại bỏ các sai sót này vì vậy sẽ chiểm mất của đội gồm 5 kỹ sư của bạn khoảng 5000 giờ. Nếu cảđội không làm gì khác trong 40 giờ một tuần thì sẽ chiếm hết 6 tháng. Tuy nhiên, nếu nhóm của bạn xem lại theo cá nhân và sau đó thanh-tra-nhóm chương trình của bạn thì bạn có thể tiết kiệm được ít nhất 5 tháng kiểm thử. Với một dự án 2 năm, sự khác biệt trong thời gian kiểm thử này sẽ là sự khác nhau giữa chuyển giao sản phẩm đúng thời hạn và việc bị trễ một cách trầm trọng.

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