Tóm tắt luận văn
Ngày nay, công nghệ phần mềm đóng vai trò quan trọng trong hầu hết các lĩnh vực.
Hầu như những hệ thống tiên tiến quan trọng đều có sự tham gia, hỗ trợ của các hệ thống
phần mềm. Chính vì vậy mà chi phí, lịch biểu và chất lượng phần mềm cũng là các yếu tố
mà cả những tổ chức sử dụng phần mềm và những tổ chức phát triển phần mềm đều rất
quan tâm.
Xuất phát từ những nhu cầu trên, nhiều nỗ lực cải tiến quy trình đã được thực hiện.
CMM (Capability Maturity Model) ra đời, đã thể hiện là một mô hình cải tiến độ trưởng
thành phần mềm hữu dụng. Tuy nhiên, mô hình này chỉ áp dụng cho tổ chức và nó vẫn còn
nhiều hạn chế về mặt phương pháp thực hiện. Hơn nữa, khi các tổ chức tiếp cận và chuyển
lên cấp độ 3 của CMM (CMM có 5 cấp độ), họ nhận thấy rằng sự hoàn chỉnh hơn nữa phụ
thuộc vào sự phát triển của quy trình phần mềm cá nhân. Chính vì thế, từ năm 1989, PSP
đã được phát triển bởi Watts S. Humphrey để đáp ứng việc phát triển liên quan đến việc
làm thế nào để đưa một tổ chức vượt xa hơn cấp độ 2 của CMM. Cuối năm 1994, CMU và
SEI (Carnegie Mellon University and Software Engineering Institute) đã công bố qui trình
phần mềm cá nhân (Personal Software Process – PSP) như là một mô hình hỗ trợ việc phát
triển qui trình cho từng kỹ sư phát triển phần mềm.
Qui trình phần mềm cá nhân tập trung vào việc cải thiện hiệu quả làm việc và chất
lượng công việc của kỹ sư. Hai khía cạnh chính mà PSP tập trung hỗ trợ là:
Quản lý thời gian và kế hoạch – quy trình lên kế hoạch
Quản lý chất lượng sản phẩm – quy trình quản lý sai sót
Về cả 2 mặt lý thuyết và thực tế, qui trình phần mềm cá nhân cải thiện rất nhiều
trong chất lượng làm việc của kỹ sư. Tuy nhiên, việc thực hiện rộng rãi PSP ở phạm vi cá
nhân và trong môi trường công nghiệp còn khó khăn vì mức độ nghiêm ngặt của nó.
Nhưng dù sao đi nữa, PSP cũng hứa hẹn sẽ được sử dụng rộng rãi vì tính hiệu quả của nó
không những cho các cá nhân làm phần mềm mà còn cho tất cả mọi người.
MỤC LỤC
Lời mở đầu
Chương 1. Tổng quan
1.1 Qui trình PSP là gì? .2
1.2 Lịch sử ra đời của PSP .2
1.3 Cấu trúc tổng quan quy trình PSP 3
1.4 Các cấp độ của PSP .4
1.5 Ưu và khuyết điểm của PSP 7
1.5.1 Ưu điểm .7
1.5.2 Khuyết điểm .7
1.6 Mối liên hệ giữa CMM, TSP và PSP [3]
Chương 2. Các phương pháp luận trong PSP về quy trình lập kế hoạch [4] 9
2.1 Nguyên lý quản lý thời gian .9
2.1.1 Logic của quản lý thời gian .9
2.1.2 Hiểu cách mình sử dụng thời gian .10
2.2 Theo dõi thời gian 11
2.2.1 Tại sao phải theo dõi thời gian? .11
2.2.2 Ghi lại số liệu thời gian 11
2.2.3 Đơn vị đo thời gian của bạn .12
2.2.4 Sử dụng bản ghi chép thời gian (Time Recording Log) 12
2.2.5 Quản lý các gián đoạn 14
2.2.6 Theo dõi các công việc đã hoàn tất 15
2.2.7 Gợi ý về việc ghi chép thời gian 15
2.3 Lập kế hoạch sản phẩm và kế hoạch giai đoạn 16
2.3.1 Các kế hoạch sản phẩm và giai đoạn .16
2.3.2 Bản tổng kết hoạt động hàng tuần .17
2.3.3 Tính toán khoảng thời gian và tốc độ 19
2.3.4 Sử dụng bản tổng kết hoạt động hàng tuần 21
2.4 Lập kế hoạch sản phẩm 22
2.4.1 Nhu cầu về các kế hoạch sản phẩm .22
2.4.2 Tại sao các kế hoạch sản phẩm lại có ích 23
2.4.3 Một kế hoạch sản phẩm là gì? .23
2.4.4 Cách lập kế hoạch sản phẩm trong tài liệu này 24
2.4.5 Lập kế hoạch các công việc nhỏ 24
2.4.6 Bản ghi số công việc 25
2.4.7 Một vài lời khuyên về cách sử dụng bản ghi số công việc 30
2.4.8 Sử dụng dữ liệu tốc độ và thời gian sản phẩm .31
2.5 Kích thước sản phẩm .32
2.5.1 Phép đo kích thước 32
2.5.2 Một vài chú ý khi sử dụng các độ đo kích thước .33
2.5.3 Kích thước chương trình 33
2.5.4 Các độ đo kích thước khác .35
2.5.5 Ước lượng kích thước chương trình 35
2.5.6 Ước lượng một kích thước lớn hơn .36
2.5.7 Sử dụng các đơn vị đo kích thước trong bản ghi số công việc 39
2.6 Quản lý thời gian .42
2.6.1 Các yếu tố trong quản lý thời gian .42
2.6.2 Phân loại các hoạt động của bạn 42
2.6.3 Đánh giá việc phân bổ thời gian của bạn .43
2.6.4 Tạo quỹ thời gian .43
2.6.5 Thiết lập các qui tắc cơ bản .46
2.6.6 Đặt độ ưu tiên cho thời gian của bạn .48
2.6.7 Quản lý quỹ thời gian của bạn .49
2.6.8 Mục tiêu quản lý thời gian .50
2.7 Quản lý cam kết .51
2.7.1 Định nghĩa 51
2.7.2 Các lời cam kết được thực hiện hợp lý 52
2.7.3 Ví dụ về một lời cam kết 52
2.7.4 Giải quyết các cam kết bị bỏ lỡ .54
2.7.5 Hậu quả của việc không quản lý cam kết 55
2.7.6 Cách quản lý cam kết .56
2.8 Quản lý thời gian biểu 57
2.8.1 Sự cần thiết của thời gian biểu .57
2.8.2 Biểu đồ Gantt .57
2.8.3 Lập thời gian biểu 58
2.8.4 Điểm mốc .59
2.8.5 Theo dõi các kế hoạch của dự án .60
2.9 Lập kế hoạch cho dự án .63
2.9.1 Sự cần thiết phải lập kế hoạch cho dự án .63
2.9.2 Bản tổng kết kế hoạch 63
2.9.3 Đánh giá độ chính xác .68
Chương 3. Các phương pháp luận trong PSP về quy trình quản lý sai sót [4]
3.1 Quy trình phát triển phần mềm 69
3.1.1 Tại sao chúng ta sử dụng quy trình 69
3.1.2 Kịch bản quy trình .70
3.1.3 Điểm mốc và pha .71
3.1.4 Bản tổng kết các kế hoạch dự án cập nhật .72
3.1.5 Một ví dụ về lên kế hoạch 74
3.1.6 Một ví dụ về tính toán giá trị Đến ngày .77
3.2 Sai sót (defects) 79
3.2.1 Chất lượng phần mềm là gì? 80
3.2.2 Sai sót và chất lượng 80
3.2.3 Sai sót là gì? .81
3.2.4 Các loại sai sót .82
3.2.5 Hiểu được các sai sót .83
3.2.6 Bản ghi ghi chép sai sót (Defect Recording Log) 84
3.2.7 Đếm sai sót .88
3.2.8 Sử dụng bản ghi ghi chép sai sót .89
3.2.9 Bản tổng kết kế hoạch đề án cập nhật 90
3.3 Tìm kiếm sai sót .92
3.3.1 Các bước trong tìm kiếm sai sót 92
3.3.2 Những cách để tìm và chỉnh sửa lỗi .92
3.3.3 Xem xét lại code 93
3.3.4 Tại sao cần phải tìm sai sót sớm? 94
3.3.5 Chi phí của việc tìm và sửa lỗi .95
3.3.6 Sử dụng xem xét lại để tìm sai sót .96
3.3.7 Lý do xem xét lại trước khi biên dịch 97
3.3.8 Các dạng xem lại khác .98
3.4 Danh sách kiểm tra (checklist) xem lại code .98
3.4.1 Tại sao checklist lại có ích? .98
3.4.2 Một checklist ví dụ 99
3.4.3 Sử dụng checklist xem lại code .100
3.4.4 Xây dựng một checklist cá nhân 102
3.4.5 Cải tiến checklist 106
3.4.6 Các chuẩn cài đặt .107
3.5 Dự đoán sai sót 109
3.5.1 Sử dụng dữ liệu sai sót .109
3.5.2 Mật độ sai sót .109
3.5.3 Dự đoán mật độ sai sót 110
3.5.4 Ước lượng sai sót .111
3.5.5 Kịch bản quy trình và bản tổng kết kế hoạch dự án cập nhật 112
3.5.6 Một ví dụ về bản tổng kết dự án 115
3.6 Tính kinh tế của việc loại bỏ sai sót .119
3.6.1 Vấn đề loại bỏ sai sót .119
3.6.2 Sự tiết kiệm của việc loại bỏ sai sót .120
3.6.3 Tính số sai sót/giờ và hiệu suất trong bản tổng kết kế hoạch .121
3.6.4 Tăng tỉ lệ loại bỏ sai sót .123
3.6.5 Giảm tỉ lệ mắc phải sai sót .124
3.7 Các sai sót thiết kế .124
3.7.1 Tính tự nhiên của sai sót thiết kế .124
3.7.2 Nhận dạng các sai sót thiết kế 125
3.7.3 Thiết kế là gì? 126
3.7.4 Quy trình thiết kế .127
3.7.5 Nguyên nhân của sai sót thiết kế .127
3.7.6 Ảnh hưởng của sai sót thiết kế .128
3.7.7 Trình bày thiết kế .129
3.8 Chất lượng sản phẩm .134
3.8.1 Nhìn nhận về bộ lọc kiểm thử 134
3.8.2 Tính toán các giá trị hiệu suất 134
3.8.3 Ước lượng hiệu suất cuối cùng 135
3.8.4 Lợi ích của hiệu suất quy trình 100% 136
3.8.5 Prototyping .137
3.9 Chất lượng quy trình 137
3.9.1 Các phép đo quy trình 137
3.9.2 Nghịch lý của việc loại trừ sai sót 138
3.9.3 Một chiến lược loại trừ sai sót .138
3.9.4 Chi phí của chất lượng .139
3.9.5 Tính toán chi phí của chất lượng .139
3.9.6 Tỉ lệ chi phi đánh giá/sai sót(A/FR – Appraisal/Failure Ratio) .141
3.9.7 Cải tiến tốc độ xem lại .144
3.9.8 Tính toán chi phí chất lượng thật sự
Chương 4. Một số kết quả áp dụng PSP vào trong thực tế
4.1 Trong môi trường công nghiệp [5] 147
4.1.1 Advanced Information Services (AIS) 147
4.1.2 Motorola Paging Products Group 151
4.1.3 Union Switch & Signal Inc 152
4.1.4 Một số nhóm phát triển phần mềm khác 153
4.2 Trong các trường đại học .153
4.3 Kết quả áp dụng PSP của bản thân 158
4.3.1 Hướng áp dụng 158
4.3.2 Kết quả thu được 158
4.4 Kết luận về việc sử dụng PSP 160
Chương 5. Ứng dụng minh họa
5.1 Giới thiệu .163
5.2 Yêu cầu 163
5.3 Bảng chú giải .166
5.3.1 Giới thiệu .166
5.3.2 Các định nghĩa .166
5.4 Thiết kế 167
5.4.1 Use case .167
5.4.2 Đặc tả bổ sung 167
5.4.3 Các activity diagram chính trong ứng dụng .168
5.4.4 Các sequence diagram chính trong ứng dụng 171
5.4.5 Mô hình thực thể kết hợp
Chương 6. Một số kết luận và hướng phát triển 178
6.1 Kết quả đạt được: .178
6.1.1 Về mặt lý thuyết .178
6.1.2 Về mặt ứng dụng 178
6.2 Hướng phát triển 178
Tài liệu tham khảo .179
191 trang |
Chia sẻ: maiphuongtl | Lượt xem: 2602 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Luận văn TÌm hiểu qui trình phần mềm cá nhân (Personal Software Process – PSP) - Mô hình hỗ trợ việc phát triển qui trình cho kỹ sư phát triển phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
thiết kế
lại và kiểm thử một quy trình mới cũng là chi phí phòng ngừa. Chi phí để viết một
prototype nhỏ cũng là chi phí phòng ngừa.
3.9.5 Tính toán chi phí của chất lượng
PSP tính chi phí chất lượng theo một cách đơn giản. Vì thời gian bỏ ra khi biên
dịch bao gồm một số thời gian biên dịch không lỗi, PSP tính tất cả các thời gian biên dịch
này là chi phí sai sót. Tương tự như vậy với việc kiểm thử. Thời gian xem lại bao gồm một
số chi phí sửa chữa nhưng PSP tính tất cả thời gian xem lại là chi phí đánh giá.
Bạn có thể tính toán giá trị COQ với các phương pháp được mô tả trong phần Tính
toán chi phí chất lượng thật sự 3.9.8, nhưng nó liên quan đến rất nhiều công việc và không
thay đổi đáng kể các phép đo. Vì vậy bạn nên sử dụng các định nghĩa PSP đơn giản:
Chi phí chất lượng được tính là phần trăm của tổng thời gian phát triển. Với PSP,
chi phí đánh giá và sai sót được tính như sau:
- Chi phí đánh giá là phần trăm tổng thời gian xem lại với tổng thời gian phát
triển.
140
Sinh viên Sinh viên X Ngày 9/12/96
Chương trình Chương trình # 15
Người hướng dẫn Thầy Z Ngôn ngữ Ada
Tóm tắt Kế hoạch Thực tế Đến ngày
Phút/LOC 5.48 4.60 5.35
LOC/Giờ 10.95 13.04 11.21
Sai sót/KLOC 92.53 52.6 86.7
Hiệu suất 40.0 100.0 45.5
A/FR 0.375 1.93 0.44
Kích thước chương trình
(LOC)
Tổng mới và thay đổi 49 57 392
Kích thước tối đa 62
Kích thước tối thiểu 36
Thời gian trong pha
(phút)
Kế hoạch Thực tế Đến ngày Đến ngày %
Lên kế hoạch 17 20 140 6.7
Thiết kế 29 38 233 11.1
Cài đặt 116 119 911 43.4
Xem lại mã 21 29 174 8.3
Biên dịch 15 5 105 5.0
Kiểm thử 41 10 289 13.8
Tổng kết 30 41 247 11.7
Tổng cộng 269 262 2099 100.0
Kích thước tối đa 340
Kích thước tối thiểu 197
Sai sót mắc phải Kế hoạch Thực tế Đến ngày Đến ngày % Sai
sót/giờ
Lên kế hoạch
Thiết kế 1 5 14.7 1.29
Cài đặt 4 3 28 82.4 1.84
Xem lại mã
Biên dịch 1 2.9
Kiểm thử
Tổng cộng 5 3 34 100.0
Sai sót loại bỏ Kế hoạch Thực tế Đến ngày Đến ngày % Sai
sót/giờ
Lên kế hoạch
Thiết kế
Cài đặt
Xem lại mã 2 3 15 44.1 5.17
Biên dịch 2 13 38.2 7.43
Kiểm thử 1 6 17.1 1.25
Tổng cộng 5 3 34 100.0
Bảng 3.9.1 Ví dụ bản tổng kết kế hoạch dự án
- Chi phí sai sót là phần trăm tổng thời gian biên dịch và kiểm thử với tổng thời
gian phát triển.
141
Ví dụ, giả sử bạn có dữ liệu quy trình cho trong bảng tóm tắt kế hoạch ở bảng 3.9.1.
Bạn có thể tính chi phí đánh giá như sau:
- Tổng thời gian phát triển thực tế = 262 phút
- Thời gian xem lại code thực tế = 29 phút
- Chi phí đánh giá = 100*29/262=11.07%
Với chi phí sai sót:
- Thời gian biên dịch thực tế = 5 phút
- Thời gian kiểm thử thực tế = 10 phút
- Chi phí sai sót = 100*(5+10)/262=100*15/262=5.73%
3.9.6 Tỉ lệ chi phi đánh giá/sai sót(A/FR – Appraisal/Failure Ratio)
A/FR = chi phí đánh giá / chi phí sai sót
Trong ở ví dụ phần trên, với chi phí đánh giá là 11.07% và chi phí sai sót 5.73%
thì:
A/FR = 11.07 / 5.73 = 1.93
Cách đơn giản hơn để tính A/FR:
A/FR = thời gian xem lại code / tổng thời gian biên dịch và kiểm thử.
= 29/(5+10)=1.93 (cho kết quả tương tự như trên)
Dưới đây là các chỉ dẫn cập nhật cuối cùng cho bản tổng kết kế hoạch PSP:
Mục đích Mẫu này ghi nhận các thông tin ước lượng và thực tế của đề án
Đầu trang Nhập các thông tin:
- Tên và ngày hiện tại
- Tên và mã số chương trình
- Tên người hướng dẫn
- Ngôn ngữ sử dụng để lập trình
Tóm tắt
Phút/LOC Trước khi phát triển:
- Nhập giá trị Phút/LOC dự kiến cho đề án này. Sử dụng tốc độ Đến
ngày từ chương trình gần nhất trong bản ghi công việc hay bản tổng kết
kế hoạch dự án.
Sau khi phát triển:
- Chia tổng thời gian phát triển cho độ lớn chương trình thực tế để có
chỉ số Phút/LOC thực tế và Đến ngày
- Ví dụ, nếu dự án phát triển mất 196 phút và gồm 29 LOC, chỉ số
Phút/LOC sẽ là 196/29=6.76
LOC/Giờ Trước khi phát triển:
- Tính LOC/Giờ dự kiến bằng cách lấy 60 chia cho Phút/LOC dự kiến
Sau khi phát triển:
- Để tính LOC/Giờ thực tế và Đến ngày, lấy 60 chia cho Phút/LOC thực
142
tế Đến ngày
Ví dụ: Với chỉ số Phút/LOC thực tế là 6.76, chỉ số LOC/Giờ thực tế là
60/6.76=8.88
Sai sót/KLOC Trước khi phát triển:
- Tìm số sai sót/KLOC trong các chương trình gần đây nhất.
- Sử dụng giá trị này như là số sai sót/KLOC kế hoạch cho dự án này.
Sau khi phát triển:
- Tính số sai sót/KLOC thực tế và Đến ngày cho chương trình này.
- Với giá trị thực tế: Tổng số sai sót thực tế *1000 / Tổng LOC Mới và
Thay đổi thực tế
- Tính toán tương tự cho giá trị Đến ngày
- Ví dụ: với 17 sai sót Đến ngày và 153 LOC Mới và Thay đổi thì chỉ số
sai sót/KLOC Đến ngày là = 1000*17/153 = 111.11
Hiệu suất Tính hiệu suất kế hoạch, thực tế và Đến ngày.
Hiệu suất = 100 * (sai sót loại bỏ trước khi biên dịch) / (sai sót mắc phải
trước khi bên dịch)
Với 5 sai sót mắc phải và 4 sai sót loại bỏ, hiệu suất = 100*4/5=80.8%
A/FR Tính giá trị A/FR kế hoạch, thực tế và Đến ngày.
Ví dụ với A/FR thực tế = (Thời gian xem lại code thực tế) / (Tổng thời
gian biên dịch và kiểm thử thực tế)
Với thời gian biên dịch 29 phút, thời gian biên dịch 5 phút và kiểm
thử là 10 phút, A/FR = 29/(5+10)=1.93
Độ lớn chương
trình (LOC)
Trước khi phát triển:
- Nhập giá trị Tổng cộng, Tối đa và tối thiểu của LOC Mới & Thay đổi
Sau khi phát triển:
- Đếm và nhập giá trị LOC Mới & Thay đổi thực tế.
- Với Đến ngày, cộng thêm LOC Mới và Thay đổi thực sự với LOC
mới và Thay đổi Đến ngày của chương trình trước đó.
Thời gian bỏ ra
ở từng giai
đoạn
Kế hoạch Đối với Tổng thời gian phát triển (Total Development time), nhân LOC
Mới & Thay đổi với Phút/LOC
Đối với Thời gian tối đa, nhân độ lớn tối đa (Maximum size) với
Phút/LOC.
Đối với Thời gian tối thiểu, nhân độ lớn tối thiểu (Minimum size) với
Phút/LOC.
Từ bản tổng kết kế hoạch dự án của chương trình gần nhất, tìm giá trị
Đến ngày % cho mỗi pha.
Sử dụng Đến ngày % từ chương trình trước đó, tính toán thời gian kế
hoạch cho mỗi pha.
Thực tế Sau khi hoàn tất, nhập thời gian thực tế tính theo phút trong mỗi pha
phát trỉển.
Lấy dữ liệu này từ Bản ghi nhận thời gian
Đến ngày Với mỗi pha, điền vào tổng thời gian thực tế và thời gian Đến ngày từ
chương trình gần nhất.
Đến ngày % Với mỗi pha, điền vào (thời gian Đến ngày * 100) / Tổng thời gian Đến
143
ngày.
Sai sót mắc
phải
Kế hoạch Trước khi phát triển, ước lượng tổng số sai sót sẽ có thể mắc phải trong
chương trình: sai sót/KLOC kế hoạch * LOC Mới và Thay đổi kế hoạch
của chương trình / 1000
Ví dụ, với sai sót/KLOC kế hoạch là 75.9 và LOC Mới và Thay đổi là
75, tổng số sai sót kế hoạch = 75.9*75/1000 = 5.96, làm tròn thành 6.
Trước khi phát triển, ước lượng sai sót mắc phải trong từng pha bằng
cách sử dụng tổng sai sót ước lượng và sự phân bố sai sót mắc phải
Đến ngày % của chương trình trước.
Thực tế Sau khi phát triển, tìm và điền số lượng sai sót thực tế mắc phải trong
mỗi pha
Đến ngày Với mỗi pha, nhập vào tổng số sai sót thực tế và sai sót Đến ngày từ
chương trình gần nhất.
Đến ngày % Với mỗi pha, nhập vào 100*(Sai sót Đến ngày của pha đó)/(Tổng sai
sót Đến ngày)
Sai sót loại bỏ
Kế hoạch Ở dòng tổng cộng, điền vào tổng số sai sót ước lượng.
Sử dụng các giá trị Đến ngày từ chương trình gần nhất, tính toán sai sót
kế hoạch loại bỏ được trong mỗi pha.
Thực tế Sau khi phát triển, tìm và điền số lượng sai sót thực tế loại bỏ trong mỗi
pha
Đến ngày Với mỗi pha, nhập vào tổng số sai sót thực tế và sai sót Đến ngày từ
chương trình gần nhất.
Đến ngày % Với mỗi pha, nhập vào 100*(Sai sót Đến ngày của pha đó)/(Tổng sai
sót Đến ngày)
Bảng 3.9.2 Chỉ dẫn cho bản tổng kết kế hoạch
A/FR đo lượng thời gian tiêu tốn tương đối trong việc tìm lỗi trước khi biên dịch
lần đầu. Khi A/FR<1, việc kiểm thử chương trình thường tìm ra nhiều lỗi. Mặc dù điều này
là không bảo đảm, hầu hết các chương trình nằm trong giới hạn này có một số lượng khá
cao sai sót kiểm thử/KLOC. Ngoài ra, các quy trình với A/FR>2 có ít lỗi hơn là quy trình
có A/FR=2 để tạo ra sản phẩm
không lỗi.
Sử dụng giá trị A/FR
Để đạt được A/FR trên 2.0, hãy xem lại thời gian kiểm thử và biên dịch lịch sử, lên
kế hoạch để dùng ít nhất 2 lần lượng thời gian đó trong việc xem lại code lần tới. Bạn có
thể làm tăng A/FR bằng cách chỉ việc dùng nhiều thời gian hơn trong việc xem lại code.
Tuy nhiên, chỉ trừ khi bạn tìm thấy sai sót, còn nếu không nó sẽ không cải tiến chất lượng
chương trình.
144
Chừng nào mà hiệu suất của bạn chưa đạt được giới hạn 80% đến 100%, hãy tiếp
tục tăng A/FR lên. Tuy nhiên bạn không được làm điều này bằng cách chỉ đơn thuần thực
hiện nhiều thời gian hơn mà còn phải xem lại dữ liệu sai sót cho các chương trình phát
triển gần đây và nghĩ ra cách để tìm thấy tất cả các sai sót mà bạn thường hay bỏ sót. Sau
đó, thêm vào các bước thích hợp trong danh sách xem lại code. Cuối cùng, theo các bước
xem lại khi bạn thực hiện xem lại code. Nếu bạn làm như vậy, bạn sẽ mất thời gian hơn
cho thời gian xem lại, sẽ tìm ra nhiều lỗi hơn và sẽ tăng A/FR, đồng thời giảm số sai sót
bạn tìm thấy trong biên dịch và kiểm thử. Điều này sẽ tiết kiệm rất nhiều thời gian kiểm
thử, giảm chi phí sai sót và tạo ra sản phẩm có chất lượng cao hơn.
Chú ý rằng khi chỉnh sửa các chương trình lớn hơn, thường cần kiểm thử nhiều hơn
cho dù không có sai sót nào. Trong những trường hợp này, giá trị A/FR thường sẽ thấp
hơn.
3.9.7 Cải tiến tốc độ xem lại
Đừng quan tâm đến tốc độ xem lại sai sót/giờ cho đến khi bạn tìm thấy hầu hết các
lỗi trước khi biên dịch và kiểm thử một cách ổn định.
Tuy nhiên, một khi bạn đã tìm ra hầu hết lỗi trong xem lại code, hãy nghĩ đến việc
cải tiến tốc độ xem lại bằng cách: nhận diện bất cứ bước xem lại nào mà không tìm thấy lỗi
cũng như là bỏ sót lỗi. Kế đó, kiểm tra lại các lý do tại sao ban đầu bạn đưa các bước này
vào. Nếu các vấn đề này không còn là vấn đề nữa thì bỏ qua các bước này. Mặt khác, nếu
bạn nghĩ chúng vẫn còn quan trọng, kết hợp một vài trong số chúng để bạn có thể thực
hiện chúng nhanh chóng. Với mỗi chương trình, tiếp tục giám sát dữ liệu sai sót và phục
hồi lại các bước xem lại đã bắt được lỗi mà sau đó bạn đã bỏ sót. Tuy nhiên, khi các bước
không hiệu quả, đừng do dự bỏ chúng.
3.9.8 Tính toán chi phí chất lượng thật sự
Với PSP, các tính toán chi phí chất lượng đơn giản là thích hợp. Tuy nhiên, khi bạn
làm việc với các dự án phát triển lớn, bạn có thể muốn sử dụng phép đo chi phí chất lượng
chính xác hơn.
Để thực hiện, bạn phải chia các thời gian xem lại, biên dịch và kiểm thử thành các
thành phần đánh giá và sai sót tương ứng. Ví dụ, chúng ta có thể ghi nhãn cho thời gian
biên dịch khi không có sai sót được tìm thấy là biên dịch đánh giá hay CA và thời gian vá
lỗi suốt quá trình biên dịch là biên dịch sai sót hay CF. Vì vậy, CF + CA = C (tổng thời gian
145
biên dịch). Với thời gian xem lại và kiểm thử, RF + RA = R (tổng thời gian xem lại), và TF
+ TA = T (tổng thời gian kiểm thử).
Tính toán như sau:
Chi phí chất lượng đánh giá = 100*(RA + CA + TA )/(tổng thời gian phát
triển)
Chi phí chất lượng sai sót = 100*(RF + CF + TF )/(tổng thời gian phát triển)
Loại sai
sót
10 Sưu liệu 60 Kiểm tra
20 Cú pháp 70 Dữ liệu
30 Xây dựng, đóng gói 80 Chức năng
40 Chỉ định 90 Hệ thống
50 Giao diện 100 Môi trường
Sinh viên Sinh viên X Ngày 9/12/96
Người hướng dẫn Thầy Z Chương trình # 15
Ngày Số Loại Mắc phải Loại bỏ T/g sửa chữa Sai sót sửa chữa
12/9 1 40 cài đặt xem lại 2
Mô tả Thiếu khai báo Set_X
Ngày Số Loại Mắc phải Loại bỏ T/g sửa chữa Sai sót sửa chữa
2 80 thiết kế xem lại 8
Mô tả quên rằng chỉ tiến lên 1 bước trong vòng lặp while nếu lẻ
Ngày Số Loại Mắc phải Loại bỏ T/g sửa chữa Sai sót sửa chữa
3 20 cài đặt xem lại 1
Mô tả thiếu “;”
Ngày Số Loại Mắc phải Loại bỏ T/g sửa chữa Sai sót sửa chữa
Mô tả
Ngày Số Loại Mắc phải Loại bỏ T/g sửa chữa Sai sót sửa chữa
Mô tả
Bảng 3.9.3 Ví dụ bản ghi ghi chép sai sót
Ví dụ sau sử dụng dữ liệu trong bảng tóm tắt kế hoạch dự án trong bảng 3.9.1 và
bản ghi ghi chép sai sót trong bảng 3.9.3. Đầu tiên tính các giá trị RA, CA, TA, RF, CF, TF
như sau:
146
- RF: tính từ bản ghi ghi chép sai sót, là tổng của thời gian vá các lỗi trong xem
lại code: RF = 2+8+1=11
- RA = R-RF = 29-11=18
- Vì không có lỗi được tìm thấy trong biên dịch nên tất cả thời gian là thời gian
đánh giá: CA = 5 và CF = 0
- Vì không có lỗi được tìm thấy trong kiểm thử, tất cả thời gian kiểm thử là thời
gian đánh giá, vì vậy TA = 10 và TF = 0
Với các giá trị này, chúng ta tính các giá trị đánh giá và sai sót như sau:
Chi phí chất lượng đánh giá = 100*(RA + CA + TA )/(tổng thời gian phát
triển)
= 100*(18+5+10)/262 = 100*33/262 = 12.60%
Chi phí chất lượng sai sót = 100*(RF + CF + TF )/(tổng thời gian phát triển)
= 100*(11+0+0)/262 = 100*11/262 = 4.20%
Các giá trị này hơi khác so với các giá trị được tính trước đây. Chúng cũng đưa ra một giá
trị A/FR cao hơn đáng kể là 3.0 thay vì 1.93. Vì các giá trị A/FR và COQ chính xác hơn
này khá nhạy với thời gian sửa lỗi nên bạn không nên sử dụng phương pháp này trừ khi
bạn đo thời gian sửa lỗi bằng đồng hồ bấm giờ. Bạn cũng sẽ muốn đưa ra một mục tiêu
A/FR khác vì A/FR có giá trị là 2.0 bây giờ có thể dẫn đến quá nhiều sai sót kiểm thử.
147
Chương 4. Một số kết quả áp dụng PSP vào trong
thực tế
4.1 Trong môi trường công nghiệp [5]
Mặc dù PSP đã được giới thiệu khá nhiều về mặt lý thuyết, nhưng về mặt thực tế áp
dụng thì vẫn còn khá ít công ty, tổ chức sử dụng nó. Nguyên nhân là do việc đem áp dụng
rộng rãi PSP vào trong các kỹ sư đòi hỏi phải có thời gian và sự nỗ lực. Bên cạnh đó, PSP
cũng đòi hỏi phải có những dữ liệu lịch sử. Đó chính là điểm hạn chế mà cho đến hiện nay,
những số liệu sử dụng hiệu quả PSP còn khá ít.
Tuy nhiên, có 3 nhóm phát triển phần mềm đã sử dụng PSP và đã ghi nhận lại các
số liệu chứng minh tính hiệu quả của việc sử dụng nó. Ba nhóm này là: Advanced
Information Services, Motorola Paging Products Groups và Union Switch & Signal Inc.
Mỗi nhóm này đã huấn luyện một đội ngũ các kỹ sư sử dụng PSP và đo kết quả của một
vài dự án có sử dụng PSP.
Ngôn ngữ sử dụng trong các dự án của 3 công ty trên đều là C và C++.
4.1.1 Advanced Information Services (AIS)
4.1.1.1 Giới thiệu
AIS có trụ sở chính đặt tại Illinois và một bộ phận hỗ trợ đặt tại Madras, Ấn Độ, là
một công ty phần mềm chuyên phát triển những sản phẩm phần mềm, các dịch vụ mạng và
huấn luyện qui trình.
Để thử nghiệm tính hiệu quả của PSP, AIS đã gửi những kỹ sư của công ty đến
viện SEI để học tập và sử dụng qui trình này. Sau khi kết thúc khoá học, các kỹ sư đã áp
dụng những điều đã học vào trong quá trình thực hiện công việc của mình. AIS đã ghi nhận
số liệu của 7 dự án có sử dụng qui trình PSP.
4.1.1.2 Kết quả thu được
4.1.1.2.1 Dự án A
Dự án đầu tiên có sử dụng PSP vào năm 1995 có sự tham gia các của các kỹ sư ở
Illinois và Madras. Các thành phần (component) trong dự án này có kích thước từ 500 đến
2200 LOC. Trước tháng 4 năm 1995, các kỹ sư đã hoàn tất các thành phần 1, 2 và 3 nhưng
dự án vẫn không thực hiện đúng như ngày đã lập kế hoạch. Do đó, dự án A đã phải lên kế
hoạch lại và công ty phải thương lượng với khách hàng về thời gian bàn giao sản phẩm.
148
Đến thời điểm này, người trưởng dự án đã quyết định sử dụng PSP. Các kỹ sư trong
nhóm phát triển lúc này sẽ tự lên kế hoạch và phát triển các thành phần từ 4 đến 9.
Hình 4.1.1 Ước lượng kế hoạch cho dự án A của AIS
Trong hình trên, ở các thành phần từ 1 đến 3, mức độ chênh lệch giữa số tuần ước
lượng và số tuần thực tế đã thực hiện chênh lệch khá nhiều. Tuy nhiên, ở những thành phần
sau, sự chênh lệch giảm dần và đặc biệt ở thành phần 8, sự ước lượng và thực tế là bằng
nhau.
Hình 4.1.2 Tỉ lệ chênh lệch kế hoạch trong dự án A của AIS
Hình trên cho thấy, trước khi sử dụng PSP, tỉ lệ sai sót trong ước lượng là 394%
(thành phần 1) nhưng ở thành phần 4 tỉ lệ này còn – 10.4%.
149
Hình 4.1.3 Chất lượng của dự án A
Trong hình trên, ở Illinois (location 1), trong những thành phần đầu (từ 1 đến 3), do
các kỹ sư không sử dụng PSP, tỉ lệ sai sót là 0.76 sai sót/1000LOC (Location 1 Non –
PSP). Nhưng sau khi áp dụng PSP, từ các thành phần 4 đến 9, tỉ lệ sai sót là 0.17 sai
sót/1000LOC => chất lượng đã tăng 78%. Ở Madras (location 2), các kỹ sư không được
huấn luyện PSP, tỉ lệ sai sót là 0.85 sai sót/1000 LOC.
Hình 4.1.4 Hiệu quả làm việc của các kỹ sư
Hình trên mô tả, ở Illinois (Location 1), trước khi sử dụng PSP, hiệu suất làm việc
của các kỹ sư là 7.99 LOC/giờ. Sau khi huấn luyện PSP (Location 1 - PSP), hiệu suất tăng
lên 8.58 LOC/giờ, nghĩa là tăng 7.4%. Với các kỹ sư ở Madras (location 2) hiệu suất chỉ là
6.4 LOC/giờ.
4.1.1.2.2 Dự án B, C, D, E, F, G
Dự án B sử dụng 3 kỹ sư và cả 3 kỹ sư này đều được huấn luyện PSP. Tổng số sai
sót trong quá trình kiểm tra là 1 và không có những sai sót do khách hàng báo lại. Dự án
kết thúc sớm hơn so với kế hoạch, do đó đáp ứng đúng yêu cầu thời hạn giao sản phẩm cho
khách hàng.
150
Dự án Kỹ sư
được
huấn
luyện
PSP
Kỹ sư
không
được huấn
luyện PSP
Kích thước
sản phẩm
Kế
hoạch/Thực tế
(Tháng)
Số sai sót
trong pha
kiểm tra
Số sai sót
trong quá
trình khách
hàng sử dụng
B 3 0 24 yêu cầu 7/5 1 0
C 0 3 19 yêu cầu 2/5 11 1
D 0 3 30 yêu cầu 10/19 6 14
E 1 0 2255 LOC 6/6 0 0
F 1 0 1400 LOC 2/2 0 0
G 2 1 6196 LOC 2/2 0 3
Bảng 4.1.1 bản tổng kết của các dự án B, C, D, E, F, G
Dự án C sử dụng tổng cộng 3 kỹ sư và 3 kỹ sư này chưa được huấn luyện PSP. Tuy
nhiên, dự án B và C được đánh giá là tương tự nhau về các mặt ngôn ngữ lập trình, độ
phức tạp của yêu cầu… Ba kỹ sư sử dụng trong dự án này là những người có kinh nghiệm
hàng đầu trong công ty. Kết quả là dự án C trễ thời hạn giao cho khách hàng. Sai sót trong
pha kiểm tra là 11 và sau khi bàn giao sản phẩm vẫn còn 1 sai sót do khách hàng báo lại.
Các dự án E, F sử dụng đội ngũ kỹ sư đều được huấn luyện PSP thì kết quả rất tốt.
Giao sản phẩm đúng lịch với khách hàng, sai sót trong pha kiểm tra và những sai sót do
khách hàng báo lại không có. Trong khi đó, dự án G, sử dụng 2 kỹ sư được huấn luyện PSP
và một kỹ sư không được huấn luyện PSP, kết quả là phần mềm vẫn kịp thời gian giao cho
khách hàng nhưng sau khi bàn giao vẫn còn 3 sai sót do khách hàng báo lại.
Hình dưới cho thấy, nhóm 1 gồm những dự án mà các kỹ sư không được huấn
luyện PSP, tỉ lệ sai sót/KLOC cao. Nhóm 2 gồm những dự án có một số phần kỹ sư được
huấn luyện PSP, số còn lại không được huấn luyện thì tỉ lệ sai sót thấp hơn so với nhóm 1
nhưng vẫn còn ở mức cao. Trong khi đó nhóm 2 với những dự án sử dụng 100% kỹ sư
được huấn luyện PSP thì tỉ lệ này rất thấp và có khi đạt được giá trị là 0.
Hình 4.1.5 Chất lượng của các dự án B, C, D, E, F, G
151
Ngoài những lợi ích đã bàn ở trên, khi sử dụng PSP trong quá trình phát triển phần
mềm, các tổ chức phần mềm cũng đã giảm thiểu khá lớn thời gian kiểm tra hệ thống. Dữ
liệu cụ thể như sau:
Kích thước Thời gian kiểm tra hệ thống
Dự án không sử dụng kỹ sư được
huấn luyện PSP
A1 15800 LOC 1.5 tháng
C 19 yêu cầu 3 vòng kiểm tra (test cycles)
D 30 yêu cầu 2 tháng
H 30 yêu cầu 2 tháng
Dự án có sử dụng kỹ sư được huấn
luyện PSP
A2 11700 LOC 1.5 tháng
B 24 yêu cầu 5 ngày
E 2300 LOC 2 ngày
F 1400 LOC 4 ngày
G 6200 LOC 4 ngày
I 13300 LOC 2 ngày
Bảng 4.1.2 Một số dữ liệu về thời gian kiểm tra hệ thống
Trước khi sử dụng PSP, thời gian dành cho việc kiểm tra hệ thống tốn khá nhiều.
Tuy nhiên với những dự án có sử dụng đội ngũ kỹ sư được huấn luyện PSP thì thời gian
kiểm tra hệ thống giảm xuống rất nhiều. Trong dự án A2, thời gian kiểm tra hệ thống nhiều
vì dự án này phải được kiểm tra kết hợp với dự án A1.
4.1.2 Motorola Paging Products Group
4.1.2.1 Giới thiệu
Motorola Paging Products Group là một công ty chuyên sản xuất các thiết bị di
động hay máy nhắn tin… Trụ sở của công ty đặt tại bãi biển Boynton, Florida.
Ba người quản lý của Motorola và 2 giáo sư từ đại học Embry – Riddle
Aeronautical đã giới thiệu PSP vào trong công ty. Cho đến nay thì Motorola đã tổ chức 3
lớp huấn luyện PSP, huấn luyện được 40 kỹ sư và 22 người quản lý. Motorola đánh giá khá
cao quy trình này và đã sử dụng khoảng 8 giờ/tuần cho việc huấn luyện và 4 giờ khác cho
việc tập luyện cải tiến quy trình. Bên cạnh đó, để khuyến khích các kỹ sư sử dụng PSP, ban
giám đốc còn xây dựng logo cho các đội thể thao của công ty mang biểu tượng PSP.
Những cá nhân hoàn thành tốt khoá học PSP đều có thưởng về tài chính và được tham gia
câu lạc bộ PSP hoạt động vào hàng tháng.
152
4.1.2.2 Kết quả thu được
Số dự
án
Kích thước
(LOC)
Số tháng sử
dụng
Tổng sồ sai
sót
Sai sót trong
quá trình kiểm
tra
Sai sót trong
quá trình sử
dụng
1 463 18 13 5 0
2 5465 NA 69 10 0
3 1571 NA 47 8 0
4 3381 NA 69 22 0
5 5 9 0 0 0
6 22 5 2 0 0
7 1 18 1 0 0
8 2081 10 34 0 1
9 114 8 15 2 0
10 364 NA 29 2 0
11 7 5 0 0 0
12 620 3 12 2 0
13 720 NA 9 2 0
14 3894 NA 20 2 0
15 2075 NA 79 27 0
16 1270 NA 20 1 0
17 467 NA 17 3 0
18 3494 8 139 50 0
Tổng
cộng
25114 NA 575 136 1
Bảng 4.1.3 Dữ liệu của 18 dự án trong quá trình thử nghiệm hiệu quả của PSP
Trong dự án 1, thời gian thực tế nhiều hơn thời gian lập kế hoạch, nhưng do thời
gian sử dụng trong pha kiểm tra giảm 60% so với những dự án trước (không sử dụng PSP)
nên tổng thời gian sử dụng cho toàn dự án ít hơn 44% so với thời gian kế hoạch.
Trong dự án 2, tổng cộng sai sót trong dự án là 69, tuy nhiên phần lớn các sai sót
này đều đã được tìm thấy và loại bỏ từ các pha trước. Đến pha kiểm tra thì chỉ còn lại 10
sai sót do đó dự án đã giảm được hơn 80% sai sót trước khi đến pha kiểm tra.
Những giá trị NA trong cột số tháng sử dụng là những số mà Motorola không xác
định được.
4.1.3 Union Switch & Signal Inc
4.1.3.1 Giới thiệu
Công ty Union Switch & Signal (US & S) chuyên sản xuất nhiều sản phẩm phẩn
cứng phục vụ cho các ngành công nghiệp vận chuyển. Công ty chuyên phát triển và lắp đặt
các hệ thống điều khiển thời gian thực. Trụ sở của công ty đặt tại Pittsburgh và có khoảng
100 nhân viên phần mềm.
153
US & S đã tổ chức 3 lớp học PSP cho 9 người quản lý và 25 kỹ sư phần mềm.
4.1.3.2 Kết quả thu được
Sau khi huấn luyện PSP, các kỹ sư đã thực hiện 5 dự án và con số thực tế thu thập
được sau khi thực hiện 5 dự án này như sau:
Sản phẩm LOC Số tháng sử
dụng
Số sai sót trong
tìm thấy trong pha
kiểm tra
Số sai sót tìm thấy
trong khi sử dụng
M45 193 9.0 4 0
M10 453 7.5 2 0
M77 6133 4.0 25 0
M54 477 3.5 5 0
M53 1160 1.0 21 0
Tổng cộng 8416 NA 57 0
Bảng 4.1.4 Dữ liệu thực tế của các dự án sau khi kỹ sư được huấn luyện PSP
4.1.4 Một số nhóm phát triển phần mềm khác
Ngoài cuộc khảo sát kết quả sử dụng của 3 công ty trên do sự phối hợp của 3 công
ty với viện SEI, nhiều tổ chức đã áp dụng PSP và cũng thu được những kết quả khả quan.
Công ty FIDA: một công ty được chứng nhận ISO 9001 chuyên sản xuất các điều
khiển số học. FIDA bắt đầu sử dụng PSP vào tháng 4/1997. Trước khi sử dụng PSP, việc
ước lượng trong dự án chủ yếu dựa vào sự tương tự. Nghĩa là, công ty xem xét dự án mới
có gần giống với những dự án nào trước đó và tính ra được thời gian và chi phí. Tuy nhiên,
sau khi sử dụng PSP, công ty đã sử dụng mối quan hệ giữa kích thước và thời gian để ước
lượng. Thêm vào đó, hiệu quả công việc, tỉ lệ sai sót cũng giảm thiểu đáng kể. [6]
Teradyne sử dụng qui trình PSP, xây dựng một hệ thống gồm tổng cộng 90000
LOC. Sau khi hoàn thành, thời gian lúc đầu dự kiến là 77 tuần nhưng khi thực hiện chỉ 71
tuần (sớm hơn 8%), chất lượng phần mềm tăng 100 lần so với những dự án trước đó, mật
độ sai sót là 0.02 sai sót/KLOC. [7]
Căn cứ quân sự hàng không Hill đã phát triển một dự án gồm 25820 LOC. Sản
phẩm hoàn thành trước thời gian là 1 tháng, chi phí gần bằng với chi phí ước lượng, việc
chênh lệch trong lịch biểu giảm từ 22% xuống còn 2.7%. [7]
4.2 Trong các trường đại học
Năm 1997, viện SEI tổ chức 1 khoá dạy PSP gồm 298 sinh viên (trong đó có cả kỹ
sư). Quy trình huấn luyện cũng đi từ PSP0 đến PSP2. Sau khi kết thúc khoá học, Watt
S.Humphrey đã thu thập được dữ liệu từ hơn 30000 chương trình viết có sử dụng PSP:
154
Hình 4.2.1 Độ chính xác trong ước lượng kích thước
Trong hình trên, ở những giai đoạn đầu khi làm quen với PSP, việc ước lượng còn
chưa được chính xác. Mức độ chênh lệch giữa ước lượng và thực tế còn cao. Lí do là lúc
này các kỹ sư vẫn chưa có nhiều dữ liệu kích thước của chương trình cũ. Công việc ước
lượng dựa chủ yếu trên sự phán đoán. Càng ở những giai đoạn về sau (cấp độ PSP sau),
các kỹ sư đã có dữ liệu nên khả năng ước lượng chính xác hơn.
Hình 4.2.2 Độ chính xác trong ước lượng thời gian
155
Trong hình trên, ở những qui trình PSP0, số các chương trình có phần ước lượng
sai sót so với thực tế rất nhiều và sự chênh lệch cũng cao (biểu hiện bằng phần bên trái trục
Kích thước nhiều hơn rất nhiều bên phải trục kích thước). Ở cấp độ PSP1, số lượng các
chương trình sai sót trong dự đoán kích thước đã giảm xuống và đến cấp độ thì cả hai phần
xấp xỉ gần bằng nhau.
Hình 4.2.3 Số sai sót/KLOC được loại bỏ trong pha biên dịch
Trong hình trên, trục X biểu thị số sai sót/KLOC, còn trục đứng (y) biểu diễn số kỹ
sư báo về mật độ sai sót ở một giá trị x. Cũng tương tự như những đánh giá ở trên, về mặt
tổng thể càng ở những cấp độ sau thì số sai sót/KLOC được loại bỏ trong pha biên dịch
cũng giảm xuống và số kỹ sư phạm phải nhiều sai sót cũng giảm đáng kể.
Hình 4.2.4 Số sai sót/KLOC được loại bỏ trong pha kiểm chứng
156
Hình 4.2.5 Chất lượng qui trình
Mean Yield: hiệu suất trung bình với chương trình không sử dụng phương pháp PSP.
PSP Level Yield: hiệu suất của những chương trình có sử dụng PSP.
Khi không sử dụng PSP, mặc dù phần trăm số sai sót được loại bỏ trước pha biên
dịch có lúc cao lúc thấp không ổn định. Còn với những chương trình có sử dụng PSP, phần
trăm tăng đều và tương đối ổn định.
Hình 4.2.6 Chất lượng sản phẩm
Hình trên mô tả số sai sót/KLOC. Những chương trình từ 1 – 3 nằm trong cấp độ
PSP0 và PSP0.1, 4 – 6 nằm trong cấp độ PSP1 và PSP1.1, từ 7 – 9 nằm trong PSP2 và
157
PSP2.1. Các chương trình còn lại là 10 – 11 nằm trong cấp độ PSP3. Như vậy ở những cấp
độ đầu thì do chưa quen nên số sai sót còn nhiều. Ở những cấp độ sau, số sai sót/KLOC
giảm xuống và có xu hướng đi vào ổn định.
Hình 4.2.7 Hiệu suất công việc
Hình trên đề cập đến hiệu suất làm việc của các kỹ sư (LOC/giờ) trong quá trình
thực hiện PSP. Ở những cấp độ đầu PSP0 và PSP0.1, hiệu suất không tăng mà có vẻ ổn
định. Ở những cấp độ về sau (từ 7 – 9 ), số LOC/giờ làm việc tăng và có xu hướng đi vào
ổn định. Tuy nhiên, với những chương trình không sử dụng PSP, số LOC/giờ làm việc có
thể cao hơn hay thấp hơn nhưng không ổn định và biến động khá nhiều.
Một ví dụ khác về hiệu quả của PSP. Trong những năm 1995 và 1996, SEI đã tổ
chức hai khoá dạy PSP (một khoá vào hè 1995 và khoá còn lại vào mùa đông năm 1996).
Sau đó viện SEI đã phân tích để đánh giá hiệu quả của PSP. Dữ liệu phân tích được lấy từ
những chương trình của 124 sinh viên trong khoá học và dữ liệu của những sinh viên này
trong vòng 6 tháng sau khi kết thúc khoá học. Kết quả như sau: [8]
Số sai sót/KLOC
Chương trình 1,2,3
(PSP0 và PSP0.1)
Số sai sót/KLOC
Chương trình 8,9,10
(PSP2 và PSP2.1)
% Sự cải tiến
Lớp 1 93 66 29
Lớp 2 50 40 20
Tổng kết 72 52 27.7
Bảng 4.2.1 Kết quả khóa học PSP
158
Với lớp 1: Ở các chương trình đầu, số sai sót là 93, còn ở các chương trình sau, sai
sót giảm xuống còn 66 => % sự cải tiến là: (93 - 66)*100%/93 = 29 %
Với lớp 2: Ở các chương trình đầu, số sai sót là 50, còn ở các chương trình sau, sai
sót giảm xuống còn 40 => % sự cải tiến là: (50 - 40)*100%/50 = 20 %
Tổng cộng, ở các chương trình đầu, số sai sót là 72, còn ở các chương trình sau, sai sót
giảm xuống còn 52 => % sự cải tiến là: (72 - 52)*100%/72 = 27.7 %
4.3 Kết quả áp dụng PSP của bản thân.
4.3.1 Hướng áp dụng
Để thử nghiệm tính hiệu quả của các phương pháp luận sử dụng trong PSP, chúng tôi
đã bắt tay vào ghi nhận thời gian thực hiện của việc: đọc tài liệu. Thời gian tiến hành thử
nghiệm bắt đầu từ ngày 1/5/2005 và kết thúc ngày 30/6/2005.
Với phần đọc tài liệu, mục tiêu của chúng tôi là:
¾ Nghiên cứu các cấp độ của PSP.
¾ Nghiên cứu phương pháp ước lượng PROBE.
¾ Nghiên cứu kết quả áp dụng PSP trong thực tiễn.
Với phần đọc tài liệu, chúng tôi sử dụng biểu mẫu sau để ghi nhận thông tin:
Tên: Trương thị Ngọc Phượng Ngày:
Công
việc #
Ngày Tiến
trình
Ước lượng Thực tế Đến ngày
Thời
gian
Đơn
vị
Thời
gian
Đơn
vị
Tốc
độ
Thời
gian
Đơn
vị
Tốc
độ
GTLN GTNN
1 Mô tả Đọc file
Bảng 4.3.1 Bản ghi thời gian
4.3.2 Kết quả thu được
4.3.2.1 Phần đọc tài liệu
Cuối tuần, chúng tôi thực hiện việc đánh giá. Việc đánh giá cho 1 tuần được thực
hiện bắng cách tính tỉ lệ chênh lệch giữa thời gian ước lượng và thời gian thực tế. Một ví
dụ về đánh giá hiệu quả cho tuần 1 (1/5/2005 đến 7/5/2005)
159
Tên: Trương thị Ngọc Phượng Ngày 1/5/2005
Công
việc
#
Tiến
trình
Ước lượng Thực tế Đến ngày
Thời
gian
Đơn
vị
Thời
gian
Đơn
vị
Tốc
độ
Thời
gian
Đơn
vị
Tốc
độ
GTLN GTNN
Đọc tài
liệu 20 25 60 25 2.4 60 25 2.4 2.4 2.4
1 Mô tả : Đọc file se_psp.pdf [9]
Đọc tài
liệu 12 6 30 6 5 90 31 2.9 5 2.4
2 Mô tả : Đọc file : KR.pdf [10]
Đọc tài
liệu 228 76 180 76 2.37 270 107 2.52 5 2.37 3
Mô tả : Đọc file Empirical Study of PSP.pdf [11]
Đọc tài
liệu 140 55 300 55 5.45 570 162 3.52 5.45 2.37 4
Mô tả : Đọc file 00tr022.pdf [12]
Đọc tài
liệu 120 34 60 34 1.76 630 196 3.21 5.45 1.76 5
Mô tả : Đọc file Tutorial Using PSP0.ppt [13]
Đọc tài
liệu 48 16 15 16 0.938 645 212 3.04 5.45 0.938 6
Mô tả : Đọc file Tutorial Using PSP0.1.ppt [14]
Đọc tài
liệu 72 24 30 24 1.25 675 236 2.86 5.45 0.938 7
Mô tả : Đọc file Tutorial Using PSP1.ppt [15]
Đọc tài
liệu 35 12 30 12 2.5 705 248 2.84 5.45 0.938 8
Mô tả : Đọc file Tutorial Using PSP1.1.ppt [16]
Đọc tài
liệu 50 18 50 18 2.78 755 266 2.84 5.45 0.938 9
Mô tả : Đọc file Tutorial Using PSP2.ppt [17]
Đọc tài
liệu 35 12 30 12 2.5 785 278 2.82 5.45 0.938 10
Mô tả : Đọc file Tutorial Using PSP2.1.ppt [18]
Kết quả thực hiện của tuần 1 như sau:
Tài liệu (Thời gian thực tế - Thời gian ước lượng)/Thời gian thực tế
1 66.67%
2 60%
3 -26.67%
4 53.33%
5 - 100%
6 - 220%
7 -140%
8 -16.67%
9 0%
10 -16.67%
Bảng 4.3.2 Kết quả thực hiện trong 1 tuần
160
Độ chênh lệch ước lượng trung bình của cả tuần: (Tổng thời gian thực tế - Tổng thời
gian ước lượng)/Tổng thời gian ước lượng = (785 – 760)*100%/785 = 3.18%
Kết quả thực hiện sau 8 tuần thực hiện
Tuần Độ chênh lệch ước lượng trung bình
1 3.18%
2 18.25%
3 2.45%
4 1.32%
5 -1.35%
6 -0.22%
7 - 0.12%
8 -0.03%
Bảng 4.3.3 Kết quả thực hiện sau 8 tuần
Mặc dù độ chênh lệch chưa đạt được giá trị 0% (ước lượng bằng thực tế) nhưng càng
ở những tuần sau thì con số ước lượng gần đúng với thực tế hơn. Mặc dù những tỉ lệ âm
không phải là tối ưu nhưng ít ra con số đó cũng phản ảnh việc chúng tôi hoàn thành công
việc trước thời gian qui định.
4.4 Kết luận về việc sử dụng PSP
Việc áp dụng PSP trong môi trường công nghiệp đem lại hiệu quả khá lớn. Tuy
nhiên, tính đến thời điểm hiện nay thì qui trình này vẫn chưa được sử dụng rỗng rãi ở mức
toàn cầu. Lý do là vì mức độ nghiêm ngặt của nó. Mặc dù PSP chỉ áp dụng trên mức độ cá
nhân, nhưng việc áp dụng PSP sẽ làm thay đổi thói quen làm việc của cá nhân nên trong
công nghiệp, việc huấn luyện cùng một lúc số lượng lớn các kỹ sư gặp khó khăn. Thêm
vào đó, một yếu tố khác ảnh hưởng đến kết quả thực hiện PSP là mức độ phức tạp của
công việc trong thực tế. Ở những khoá học dạy PSP, các kỹ sư (sinh viên) được hướng dẫn
cách thực hiện PSP trên những bài tập (chương trình nhỏ). Do đó, trong các pha phân tích,
lập kế hoạch, thiết kế dễ kiểm soát. Khi áp dụng vào trong công việc đòi hỏi kỹ sư phải có
kinh nghiệm.
Tháng 12/2000, giáo sư Alan R.Hevner kết hợp với viện SEI đã thực hiện một
cuộc khảo sát đánh giá việc sử dụng PSP trong thực tế đối với các công ty và kỹ sư đã
được huấn luyện PSP. Kết quả thu như sau: [6]
161
Giá trị
Số dự án sử dụng PSP Trung bình 24
Khoảng chênh lệch 0 – 18
PSP được sử dụng như thế nào
Chỉ những dự án quan trọng
Chỉ những dự án không quan trọng
Những dự án quan trọng và không quan trọng
36%
25%
39%
Phần trăm dự án sử dụng PSP
0%
1% đến 25%
26% đến 50%
51% đến 75%
Nhiều hơn 75%
10%
26%
13%
14%
37%
Loại dự án sử dụng PSP
Chỉ chứng minh khái niệm (proof of concept)
Chỉ những dự án nhỏ
Cả những dự án lớn và nhỏ
Chỉ những dự án lớn
Tất cả các dự án
31%
10%
28%
7%
24%
Những pha trong dự án sử dụng PSP
Pha xác định yêu cầu
Pha phân tích
Pha thiết kế
Pha thực thi chương trình
Pha kiểm chứng
Pha bảo trì
32%
40%
80%
92%
65%
24%
Bảng 4.4.1 Kết quả khảo sát đánh giá việc sử dụng PSP
Đối với cá nhân chúng tôi, sau khi thử áp dụng thực hiện phương pháp quản lý và ước
lượng thời gian của PSP, chúng tôi gặp một số khó khăn sau:
Đối với phần ước lượng: Khi đọc các file pdf sử dụng font chữ lớn số lượng trang
nhiều nhưng nội dung thì ít. Cũng có những file pdf, mặc dù ít trang nhưng font chữ nhỏ và
nội dung có đề cập đến nhiếu vấn đế quan trọng. Do đó, con số ước lượng dựa vào công
thức (số trang/phút của những tài liệu trước) * số trang của tài liệu hiện tại đôi khi cho kết
quả chênh lệch rất nhiều.
Đối với phần theo dõi thời gian thực hiện công việc: PSP sử dụng đơn vị là phút.
Trong quá trình theo dõi, đôi khi cũng có lúc quên cập nhật dữ liệu. Đến khi nhớ ra thì lúc
này con số ghi nhận chỉ ở mức độ tương đối và có thể là chênh lệch nhiều. Hơn nữa, khi sử
dụng đơn vị là phút, chúng tôi thường phải nhẩm xem tương ứng với số phút đó là bao
nhiêu giờ thì mới có thể hình dung được độ lớn của khoảng thời gian.
162
Thời gian đầu khi thực hiện công việc theo dõi, chúng tôi cảm thấy khó khăn. Vấn
đề khó khăn ở đây không hẳn chỉ là các con số ghi nhận mà việc ghi nhận là một việc hoàn
toàn mới mà trước đây chúng tôi ít dùng. Sau khoảng 2 tuần đầu, khi thực hiện đánh giá
kết quả hàng tuần chúng tôi thấy hiệu quả của việc ước lượng có được cải thiện đôi chút và
lúc này, việc ghi nhận bước đầu cũng đã dần dần không còn khó thực hiện như trước nữa.
Tuy nhiên, cần phải thực hiện trong một khoảng thời gian ít nhất là 3 tháng thì thói quen
này mới có thể hình thành được.
163
Chương 5. Ứng dụng minh họa
5.1 Giới thiệu
Qui trình phần mềm cá nhân ít nhiều đã chứng minh được hiệu quả trong việc cải
thiện chất lượng công việc của từng cá nhân.
PSP dựa trên những nguyên lý quản lý về thời gian và sai sót một cách chi tiết và tỉ
mỉ. Chính vì thế, nếu sử dụng thành thục PSP, người kỹ sư sẽ ngày càng nâng cao khả
năng kiểm soát lịch biểu và công việc của mình.
Với mong muốn có thể áp dụng các nguyên lý của PSP, chúng tôi dự định xây dựng
một ứng dụng để hỗ trợ cá nhân quản lý công việc và cũng là để minh họa cho nghiên cứu
của mình. Tuy nhiên, để phát triển một chương hoàn chỉnh theo dự định thì phải mất rất
nhiều thời gian và công sức. Hơn nữa, thời gian thực hiện của một luận văn lại không cho
phép. Do đó, chúng tôi chỉ viết một ứng dụng nhỏ minh họa và hỗ trợ một phần nào đó mà
thôi. Cụ thể chúng tôi sẽ xây dựng một ứng dụng hỗ trợ việc lên kế hoạch dự án, ghi lại dữ
liệu của việc thực hiện kế hoạch đó để làm dữ liệu lịch sử cho các ước lượng sau. Sau khi
kết thúc dự án, ứng dụng sẽ đưa ra một số nhận xét về việc lên kế hoạch của cá nhân đó.
Ứng dụng này được xây dựng trên Web để giúp các thành viên xây dựng dự án có thể
làm việc ở bất cứ nơi đâu và dễ dàng trao đổi thông tin về dự án. Hơn nữa, sau này ứng
dụng có thể được phát triển tiếp để hỗ trợ nhiều chức năng quản lý phần mềm khác trên
Web.
5.2 Yêu cầu
Ứng dụng được xây dựng có những yêu cầu sau:
1. Hệ thống được cài đặt ở một máy chủ trong phòng SELAB. Các thành viên trong
phòng khi muốn sử dụng sẽ đăng nhập vào hệ thống.
2. Đối với các thành viên của hệ thống:
a. Các user chưa có account có thể cung cấp thông tin cụ thể để đăng ký là thành viên
hệ thống.
b. Admin có thể tạo hàng loạt account cho các user.
c. Hệ thống cho phép quản lý thông tin các thành viên thuộc phòng SELAB và một số
thành viên không thuộc phòng SELAB nhưng có vai trò quan trọng trong các dự án của
phòng.
164
d. Hệ thống cho phép quản lý thông tin các nhóm đang tham gia các dự án.
e. Hệ thống chỉ phân 2 quyền: admin, user.
f. Admin có thể tạo các các group cho các dự án và chỉ định project manager.
g. Các user có thể chỉnh sửa những thông tin cá nhân thông qua hệ thống.
h. Tạo mới các template thông tin cho các email gửi cho các account.
3. Đối với các dự án:
a. Quyền hạn admin:
- Tạo mới các project kèm theo các thông tin hỗ trợ cho việc thực hiện dự án.
- Phân công việc cho các thành viên trong dự án.
- Khi gặp một dự án có một số chức năng giống như những chương trình trước,
admin có thề xem lại thông tin như thời gian thực tế, thời gian ước lượng đầu tiên, user
thực hiện để lên kế họach cho dự án mới.
- Khi bắt đầu thực hiện dự án, admin sẽ phân dự án thành các công việc nhỏ hơn và
giao cho các thành viên. Admin cũng đưa ra những con số ước lượng về thời gian thực
hiện cho từng công việc nhỏ.
- Trong quá trình thực hiện dự án, admin có thể cập nhật lại con số ước lượng.
- Khi kết thúc dự án, admin sẽ được cung cấp những thông tin: thời gian thực tế đã
sử dụng cho mỗi công việc nhỏ, số lần chỉnh sửa ước lượng. Từ những đối chiếu này,
người kỹ sư sẽ có cái nhìn tổng quan hơn về hiệu quả của việc ước lượng công việc của
mình. Và qua đó cũng sẽ nâng dần khả năng dự đóan chính xác cho những dự án sau.
- Bên cạnh đó, khi kết thúc dự án, admin có thề đưa ra các nhận xét, các ý kiến để cải
tiến hơn hiệu quả qui trình. Phần này sẽ có lợi cho bản thân và là sưu liệu cho các dự
án sau.
b. Quyền hạn user.
- Có thể xem các thông tin về dự án sẽ tham gia (không có phần phân công việc)
- Xem thông tin các dự án đã tham gia, thông tin chi tiết các công việc nhỏ hơn do
bản thân các kỹ sư đã phân ra để thực hiện dự án, kèm theo các thông tin về thời gian
thực tế và ước lượng.
- Khi nhận được công việc từ project manager, user sẽ lên danh sách các công việc
nhỏ hơn để thực hiện kèm theo các con số ước lượng. Các thông tin này sẽ được ghi
nhận vào hệ thống.
165
- Trong quá trình thực hiện, user có thể biết được tổng thời gian đã sử dụng cho mỗi
công việc tính đền thời điểm đang xét.
- Trong quá trình thực hiện, user có thể chỉnh sửa các con số ước lượng đã lưu trong
hệ thống.
- Khi kết thúc dự án, user sẽ được hệ thống đưa ra những con số thực tế đã sử dụng
cho mỗi công việc nhỏ, số lần chỉnh sửa ước lượng.
c. Ngoài ra, cả user và admin đều có thể trao đổi thắc mắc và khó khăn thông qua
forum (mỗi project sẽ có một forum).
4. Đối với việc quản lý thời gian
a. Các user, admin đều có thể lên lịch biểu cho các công việc hàng tuần của mình.
Loại công việc gồm có 3 loại: Fixtime (những công việc bắt buộc phải thực hiện đúng
giờ và thường là ít không thay đổi như ăn cơm, tham gia một lớp học trong một học
kỳ…), thời gian trong một dự án nào đó, và thời gian để thực hiện các loại công việc
khác (như xin visa, đám cưới ….)
b. Mỗi ngày, các user, admin sẽ ghi nhận lại chi tiết thời gian sử dụng vào trong hệ
thống.
c. Các user, admin có thể xem lại lịch làm việc đã lên trong ngày, trong tuần, trong
tháng.
d. Hàng tuần, user, admin có thể xem lại bảng thổng kết quỹ thời gian dùng cho các
công việc là bao nhiêu để biết được tình hình làm việc của bản thân.
5. Các chức năng khác
a. Vì việc ghi nhận thời gian là liên tục trong ngày, nếu mỗi lần ghi nhận phải truy cập
vào hệ thống thì tốn khá nhiều thời gian. Do đó, user, admin sẽ ghi thông tin vào một
ứng dụng trên Window. Sau đó sẽ Export ra XML và import vào trong server.
b. Đối với thông tin các dự án đang được thực hiện thì cũng được export từ server ra
XML và import vào trong ứng dụng Window
c. Ngoài ta các thành viên có thể trao đổi những tin nhắn với nhau qua hệ thống.
166
5.3 Bảng chú giải
5.3.1 Giới thiệu
Tài liệu này được dùng để định nghĩa các thuật ngữ đặc thù trong lĩnh vực của bài
toán, giải thích các từ ngữ có thể không quen thuộc đối với người đọc trong các mô tả use
case hoặc các tài liệu khác của dự án. Thường thì tài liệu này có thể được dùng như một từ
điển dữ liệu không chính thức, ghi lại các định nghĩa dữ liệu để các mô tả use case và các
tài liệu khác.
5.3.2 Các định nghĩa
Bảng chú giải này bao gồm các định nghĩa cho các khái niệm chính trong Hệ thống.
5.3.2.1 User
Người tham gia vào hệ thống và có khả năng thực hiện một số chức năng của hệ
thống.
5.3.2.2 Admin
Cũng là người tham gia vào trong hệ thống. Ngoài những chức năng mà user có,
admin còn có thêm một số chức năng tạo mới các account hay chấp nhận account tham gia
hệ thống.
5.3.2.3 Project manager
Cũng là người tham gia vào trong hệ thống. Ngoài những chức năng mà user có,
project manager còn có thêm một số chức năng liên quan đến việc tạo và phân bố công
việc trong các dự án cho các user.
5.3.2.4 Time recording log
Bảng ghi nhận thời gian thực hiện cho các công việc. Các công việc này có thể là
các công việc thuộc một dự án hay là một công việc mà người dùng cần thực hiện.
5.3.2.5 Weekly Activity Summary
Bảng tổng kết hoạt động trong tuần, bao gồm danh sách các công việc đã lập kế
hoạch và thời gian thực hiện được ghi nhận trong bảng Time recording log.
5.3.2.6 Task
Với mỗi dự án (project), project manager sẽ phân ra thành các module nhỏ hơn và
giao cho các user. Các module này được xem là các task đối với các user.
167
5.3.2.7 To do
Khi user nhận được các task thì họ sẽ phân ra thành các công việc nhỏ hơn cần thực
hiện để hoàn thành task. Các công việc nhỏ hơn này là To do
5.4 Thiết kế
5.4.1 Use case
Manage AccountsAdmin
Manage User group
Project Manager
New project
Project : Export XML
Calendar : Export XML
Register
Login
Record time
Maintain messages
Summarize Weekly Activity
Plan Schedule
Maintain project info
>>
View Calendars
>
User
View user info
Import XML
>
Hình 5.4.1 Mô hình use case của ứng dụng
5.4.2 Đặc tả bổ sung
Xem tập tin đính kèm: Baocaochinh\Dactabosung.doc
168
5.4.3 Các activity diagram chính trong ứng dụng
Yeu cau dang
nhap he thong
Nhap Password
Nhap
username
Xac nhan yeu cau
dang nhap
Thong bao nhap sai
username hay password
Manage
Accounts
Log out
Hien thi form
dang nhap
Doc va kiem tra
username & password
Ghi nhan trang
thai login
Khong hop le
Hop le
Kiem tra quyen
han adminDung
He thongUser : User
Hình 5.4.2 Activity Diagram - Các chức năng cho user
169
Hình 5.4.3 Activity Diagram - Chức năng cho admin
170
Hình 5.4.4 Activity Diagram - Chức năng cho project manager
171
5.4.4 Các sequence diagram chính trong ứng dụng
5.4.4.1 Log in
: Users
HomePage LoginPage UserController UserEntity
1://truy cap URL
2://hien thi login page
3://Nhap username (string)
4://Nhap password (string)
5://Chon Log in
6://KiemtraLogin(string,string)
7://Tim username va password(string,string)
8://Hien thi HomePage va ghi nhan trang thai login
Hình 5.4.5 Sequence Diagram - Log in
172
5.4.4.2 View Project info
User : Users
HomePage ProjectPage Usercontroller UserEntity
1://Chon quan ly thong tin du an
4://Hien thi trang quan ly du an
2://Doc danh sach cac du an chua hoan thahnh co user tham gia
3://doc danh sach cac du an
5://Chon du an muon xem chi tiet
6://Lay thong tin chi tiet cua du an
7://Doc thong tin chi tiet cua du an
8://hien thi thong tin du an
Hình 5.4.6 Sequence Diagram - View Project Info
173
5.4.4.3 Chình sửa thông tin dự án
User : Users
HomePage ProjectPage Usercontroller UserEntity MessageBox
1://Chon quan ly thong tin du an
2://Doc danh sach cac du an chua hoan thahnh co user tham gia
4://Hien thi trang quan ly du an
3://doc danh sach cac du an
5://Chon du an muon xem chi tiet
6://Lay thong tin chi tiet cua du an
7://Doc thong tin chi tiet cua du an
8://hien thi thong tin du an
9://Chinh sua thong tin du an
10://Chon Update
11://Chinh sua thong tin du an
12://Chinh sua thong tin du an
13://Hien thi thong bao chinh sua thanh cong
Hình 5.4.7 Sequence Diagram - Chỉnh sửa thông tin dự án
174
5.4.4.4 Thêm mớí time record
User : Users
HomePage Recordtimepage Timelogcontroller TimelogEntity
1://Chon ghi nhan thoi gian
2://Xac dinh username cua nguoi dung
4://Lay danh sach time log cua nguoi dung trong ngay
3://Lay thong tin ngay
5://Doc danh sach time log trong ngay
6://hien thi danh sach time log
7://tao moi mot time record
8://kiem tra thong tin hop le
9://Ghi thong tin time record moi
10://Ghi thong tin time record moi
Hình 5.4.8 Sequence Diagram - Thêm mới record
175
5.4.4.5 Chỉnh sửa thông tin time record
User : Users
HomePage Recordtimepag
e
Timelogcontroller TimelogEntity
1://Chon ghi nhan thoi gian
2://Xac dinh username cua nguoi dung
3://Lay thong tin ngay
4://Lay danh sach time log cua nguoi dung trong ngay
5://Doc danh sach time log trong ngay
6://hien thi danh sach time log
7://chon time record muon chinh sua
8://hien thi thong tin time record
11://Chinh sua thong tin time record
12://Chinh sua thong tin time record
9://Chinh sua thong tin time record
10://kiem tra thong tin chinh sua hop le
Hình 5.4.9 Sequence Diagram - Chỉnh sửa thông tin time record
176
5.4.4.6 Tìm kiếm thông tin dự án
User : Users
HomePage ProjectPage Usercontroller UserEntity
1://Chon quan ly thong tin du an
2://Doc danh sach cac du an chua hoan thahnh co user tham gia
4://Hien thi trang quan ly du an
3://doc danh sach cac du an
5://Chon du an muon xem chi tiet
6://Lay thong tin chi tiet cua du an
7://Doc thong tin chi tiet cua du an
8://hien thi thong tin du an
9://Nhap keyword
10://Nhap loai cong viec (project, task, to do hay all)
11://tim kiem danh sach cong viec
12://Lay danh sach cong viec
13://Hien thi danh sach cong viec
Hình 5.4.10 Sequence Diagram - Tìm kiếm thông tin dự án
5.4.4.7 Các sequence diagram khác:
Xem tập tin đính kèm: baocaochinh\diagrams.mdl
177
5.4.5 Mô hình thực thể kết hợp
Hình 5.4.11Mô hình thực thể kết hợp của ứng dụng
178
Chương 6. Một số kết luận và hướng phát triển
6.1 Kết quả đạt được:
6.1.1 Về mặt lý thuyết
¾ Tài liệu tổng hợp, phân tích PSP theo hai hướng tiếp cận: tiếp cận phương pháp
luận và tiếp cận thực hiện qui trình.
¾ Trình bày và phân tích chi tiết hai phương pháp luận chính sử dụng trong PSP:
o Quản lý thời gian và kế hoạch – quy trình lên kế hoạch
o Quản lý chất lượng sản phẩm – quy trình quản lý sai sót
¾ Trình bày và hướng dẫn cách áp dụng PSP cho từng cá nhân.
¾ Nêu ra một số kết quả của việc áp dụng PSP vào thực tế.
6.1.2 Về mặt ứng dụng
Xây dựng ứng dụng web sử dụng nguyên lý quản lý thời gian và kế hoạch của PSP để
hỗ trợ:
¾ Các nhóm phát triển phần mềm lập kế hoạch thời gian cho dự án.
¾ Các cá nhân theo dõi tiến độ thực hiện công việc.
¾ Cá nhân đánh giá độ chính xác việc ước lượng của bản thân.
6.2 Hướng phát triển
¾ Phát triển thêm các chức năng quản lý sai sót.
¾ Tăng thêm tính tiện dụng cho người dùng.
¾ Xây dựng công cụ ghi nhận thời gian trên Desktop, máy Palm, PDA và các cập
nhật thông tin này vào ứng dụng Web bằng cách đồng bộ các thông tin về dự án
theo format XML.
179
Tài liệu tham khảo
[1] Watts S. Humphrey, The Personal Software ProcessSM(PSPSM), Carnegie Mellon –
Software Engineering Institute, 11/2000, pp. 17
[2] Menegos – Stavros, Process Improvement Experiment Final Report, Computer
Logic S.A, 28/9/1998
[3] Stephen M. Shook, Personal Software ProcessSM & Team Software ProcessSM,
Illinois State University, 03/11/2004
[4] Watts S. Humphrey, Introduction to the Personal Software ProcessSM, Addison
Wesley Longman, Inc., 1999
[5] Pat Ferguson – Watts S. Humphrey – Soheil Khajenoori – Susan Macke, Results of
Applying the Personal Software Process
[6] Gina C. Green - Alan R. Hevner, The Successful Diffusion of Innovations:
Guidance for Software Development Organizations
[7] John C. Donoghue, Personal Software Process (PSP)sm, 14/12/2000
[8] Iraj Hirmanpour – Soheil Khajenoori, Personal Software Process Technology: An
Experiential Report, Department of Computing and Mathematics – Embry-Riddle
Aeronautical University
[9] Mike Grasso, Ph.D, The Personal Software Process, University of Maryland
Baltimore County
[10] Elina Koivumaki Heli Rasilainen, Personal Software Process (PSP) and quality
[11] Will Hayes & James W.Over, The Personal Software ProcessSM: An Empirical
Study of the Impact of PSP on Individual Engineers, Carnegie Mellon University,
12/1997
[12] Watt S.Humphrey, The personal Software Process, Carnegie Mellon University,
12/2000
[13] Watt S.Humphrey, Tutorial using PSP0, Carnegie Mellon University, 2/2005
[14] Watt S.Humphrey, Tutorial using PSP0.1, Carnegie Mellon University, 2/2005
[15] Watt S.Humphrey, Tutorial using PSP1, Carnegie Mellon University, 2/2005
[16] Watt S.Humphrey, Tutorial using PSP1.1, Carnegie Mellon University, 2/2005
[17] Watt S.Humphrey, Tutorial using PSP2, Carnegie Mellon University, 2/2005
[18] Watt S.Humphrey, Tutorial using PSP2.1, Carnegie Mellon University, 2/2005
Các file đính kèm theo tài liệu này:
- 35.pdf