Tập bài giảng Công nghệ phần mềm
Phạm Hùng Phú-Nguyễn Văn Thẩm i
MỤC LỤC
MỤC LỤC ....................................................................................................................... I
BẢNG KÍ HIỆU .......................................................................................................... VII
CÁC DANH MỤC HÌNH .......................................................................................... VIII
CÁC DANH MỤC BẢNG .......................................................................................... XII
LỜI NÓI ĐẦU ............................................................................................................ XIII
CHƢƠNG 1 TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM ....................................... 1
1.1. Các khái niệm cơ bản ............................................................................................... 1
1.2. Kỹ sƣ phần mềm ....................................................................................................... 5
1.3. Nhân tố con ngƣời trong ngành công nghiệp phần mềm ......................................... 6
1.4. Phân loại nghề nghiệp .............................................................................................. 7
1.4.1. Mức độ kinh nghiệm.......................................................................................... 7
1.4.2. Loại hình công việc ........................................................................................... 9
1.5. Sản phẩm phần mềm .............................................................................................. 13
1.5.1. Các đặc tính phần mềm ................................................................................... 13
1.5.2. Tính đáp ứng .................................................................................................... 15
1.5.3. Phân loại phần mềm ........................................................................................ 15
1.6. Một số mô hình xây dựng phần mềm ..................................................................... 18
1.6.1. Mô hình tuyến tính (The linear sequential model) .......................................... 18
1.6.2. Mô hình chữ V ................................................................................................. 19
1.6.3. Mô hình mẫu (Prototyping model) .................................................................. 20
1.6.4. Mô hình tiến hóa (Evolutionary model) .......................................................... 21
1.6.5. Mô hình lặp và tăng dần .................................................................................. 22
1.6.7. Mô hình phát triển nhanh ................................................................................ 23
1.6.8. Mô hình xoắn ốc (The spiral model) ............................................................... 23
1.6.9. Mô hình đài phun nƣớc ................................................................................... 24
1.6.10. Mô hình phát triển dựa trên thành phần ........................................................ 24
1.7. Các phƣơng pháp phát triển phần mềm ................................................................. 25
1.8. Vai trò của ngƣời dùng trong giai đoạn phát triển phần mềm ................................ 26
CÂU HỎI VÀ BÀI TẬP CHƢƠNG 1 .......................................................................... 28
CHƢƠNG 2 TIÊU CHUẨN CỦA SẢN PHẨM PHẦN MỀM .................................... 33
2.1. Mục tiêu của công nghệ phần mềm ........................................................................ 33
2.2. Tiêu chuẩn của sản phẩm phần mềm ...................................................................... 34
2.2.1. Tính đúng ......................................................................................................... 34
2.2.2. Tính khoa học .................................................................................................. 36
2.2.3. Tính hữu hiệu ................................................................................................... 36
Tập bài giảng Công nghệ phần mềm
ii Phạm Hùng Phú-Nguyễn Văn Thẩm
2.2.4. Tính tin cậy ...................................................................................................... 37
2.2.5. Tính kiểm thử đƣợc ......................................................................................... 37
2.2.6. Tính sáng tạo ................................................................................................... 37
2.2.7. Tính an toàn ..................................................................................................... 37
2.2.8. Tính toàn vẹn ................................................................................................... 38
2.2.9. Tính đối xứng và đầy đủ chức năng ................................................................ 38
2.2.10. Tính tiêu chuẩn và tính chuẩn ....................................................................... 38
2.2.11. Tính độc lập ................................................................................................... 39
2.2.12. Tính dễ phát triển, hoàn thiện........................................................................ 39
2.2.13. Tính thỏa mãn ................................................................................................ 39
2.2.14. Một số tiêu chuẩn khác .................................................................................. 40
CÂU HỎI VÀ BÀI TẬP CƠNG 2............................................................................. 49
CHƢƠNG 3 QUẢN LÝ DỰ ÁN PHẦN MỀM ........................................................... 57
3.1. Định nghĩa quản lý dự án phần mềm ..................................................................... 57
3.2. Phân loại dự án phần mềm ..................................................................................... 57
3.3. Các giai đoạn dự án ................................................................................................ 58
3.3.1. Chuẩn bị và khởi động dự án .......................................................................... 58
3.3.2. Các giai đoạn thực hiện dự án ........................................................................ 59
3.3.3. Kết thúc dự án ................................................................................................. 59
3.4. Lập kế hoạch dự án ................................................................................................ 60
3.5. Đánh giá khối lƣợng và lập lịch dự án ................................................................... 64
3.6. Quản lý công việc và tiến độ ................................................................................. 67
3.7. Nghiên cứu tính khả thi dự án ................................................................................ 68
3.8. Lựa chọn giải pháp ................................................................................................. 70
3.9. Giám sát và kiểm soát ............................................................................................ 72
3.10. Hồ sơ dự án .......................................................................................................... 77
CÂU HỎI VÀ BÀI TẬP CƠNG 3............................................................................. 79
CHƢƠNG 4 XÁC ĐỊNH VÀ PHÂN TÍCH YÊU CẦU .............................................. 80
4.1. Xác định yêu cầu .................................................................................................... 80
4.1.1. Mô tả yêu cầu .................................................................................................. 80
4.1.2. Phân loại yêu cầu ............................................................................................. 81
4.1.3. Quy trình xác định yêu cầu ............................................................................. 85
4.2. Thu nhập yêu cầu ................................................................................................... 92
4.2.1. Đặc tính dữ liệu ............................................................................................... 92
4.2.2. Các kỹ thuật thu nhập yêu cầu ........................................................................ 95
4.2.3. Đánh giá tính phù hợp của các kỹ thuật thu thập yêu cầu ............................. 101
4.3. Đánh giá các yêu cầu ............................................................................................ 104
Tập bài giảng Công nghệ phần mềm
Phạm Hùng Phú -Nguyễn Văn Thẩm iii
4.4. Phân tích yêu cầu .................................................................................................. 105
4.4.1. Mục đích của giai đoạn phân tích yêu cầu .................................................... 105
4.4.2. Các nguyên lý phân tích ................................................................................ 106
4.4.3. Phân tích khả thi ............................................................................................ 107
4.4.4. Thiết lập mô hình ........................................................................................... 108
4.4.5. Đặc tả yêu cầu................................................................................................ 113
4.4.6. Các công việc vủa cán bộ phân tích .............................................................. 115
4.5. Tƣ liệu hóa yêu cầu phần mềm ............................................................................. 115
CÂU HỎI VÀ BÀI TẬP CƠNG 4 ........................................................................... 118
CHƢƠNG 5 THIẾT KẾ PHẦN MỀM ....................................................................... 124
5.1. Đặc điểm của quá trình thiết kế phần mềm .......................................................... 124
5.2. Chiến lƣợc thiết kế................................................................................................ 127
5.2.1. Thiết kế hƣớng chức năng ............................................................................. 127
5.2.2. Thiết kế hƣớng đối tƣợng .............................................................................. 128
5.3. Thiết kế kiến trúc ứng dụng .................................................................................. 129
5.3.1. Khái niệm ...................................................................................................... 129
5.3.2. Các mô hình thiết kế ứng dụng ...................................................................... 130
5.4. Thiết kế cơ sở dữ liệu ........................................................................................... 136
5.4.1. Cách tổ chức lƣu trữ dữ liệu .......................................................................... 136
5.4.2. Xây dựng sơ đồ logic dữ liệu ........................................................................ 138
5.4.3. Cách phƣơng pháp thiết kế cơ sở dữ liệu ...................................................... 139
5.4.4. Yêu cầu về chất lƣợng thiết kế cơ sở dữ liệu ................................................ 141
5.5. Thiết kế giao diện ................................................................................................. 143
5.5.1. Quy trình thiết kế giao diện ........................................................................... 143
5.5.2. Kết quả của thiết kế giao diện ....................................................................... 144
5.5.3. Phân loại màn hình ........................................................................................ 147
5.5.4. Thiết kế màn hình chính ................................................................................ 148
5.5.5. Thiết kế màn hình giới thiệu.......................................................................... 152
5.5.6. Thiết kế màn hình đăng nhập ........................................................................ 153
5.5.7. Thiết kế màn hình nhập dữ liệu lƣu trữ ......................................................... 158
5.5.8. Thiết kế màn hình xử lý tính toán ................................................................. 166
5.5.9. Thiết kế màn hình kết quả ............................................................................. 166
5.5.10. Thiết kế màn hình thông báo ....................................................................... 169
5.5.11. Thiết kế màn hình tra cứu ............................................................................ 170
5.6. Thiết kế xử lý ........................................................................................................ 174
CÂU HỎI VÀ BÀI TẬP CƠNG 5 ........................................................................... 179
CHƢƠNG 6 CÀI ĐẶT PHẦN MỀM ......................................................................... 184
Tập bài giảng Công nghệ phần mềm
iv Phạm Hùng Phú-Nguyễn Văn Thẩm
6.1. Giai đoạn cài đặt phần mềm ................................................................................. 184
6.2. Kỹ năng lập trình .................................................................................................. 184
6.2.1. Tài liệu chƣơng trình ..................................................................................... 184
6.2.2. Khai báo dữ liệu ............................................................................................ 185
6.2.3. Xây dựng câu lệnh ......................................................................................... 185
6.2.4. Kỹ thuật vào ra .............................................................................................. 185
6.3. Các phƣơng pháp lập trình ................................................................................... 186
6.4. Ngôn ngữ lập trình ............................................................................................... 187
6.4.1. Nền tảng của ngôn ngữ lập trình ................................................................... 187
6.4.2. Các lớp ngôn ngữ lập trình ............................................................................ 189
6.4.3. Một số ngôn ngữ lập trình ............................................................................. 189
6.4.4. Chọn ngôn ngữ cho ứng dụng ....................................................................... 192
6.5. Công cụ trợ giúp và phân loại .............................................................................. 193
6.5.1. Công cụ CASE .............................................................................................. 193
6.5.2. Phân loại các công cụ Case ........................................................................... 194
6.5.3. Một số công cụ đƣợc cung cấp tự động cho việc sinh ............................ 197
6.6. Các công việc của cán bộ lập trình ....................................................................... 198
CÂU HỎI VÀ BÀI TẬP CƠNG 6........................................................................... 199
CHƢƠNG 7 KIỂM TRA CHẤT LƢỢNG PHẦN MỀM ........................................... 201
7.1. Chất lƣợng phần mềm .......................................................................................... 201
7.2. Độ tin cậy của phần mềm ..................................................................................... 202
7.2.1. Các lỗi thƣờng gặp ........................................................................................ 202
7.2.2. Khái niệm độ tin cậy của phần mềm ............................................................. 203
7.2.3. Một số đánh giá về độ tin cậy ....................................................................... 203
7.2.4. Lập trình vì độ tin cậy ................................................................................... 205
7.3. Các giai đoạn kiểm thử phần mềm ....................................................................... 206
7.3.1. Lập kế hoạch kiểm thử (Test plan) ............................................................... 207
7.3.2. Xây dựng các tình huống kiểm thử (Test Case) ............................................ 208
7.3.3. Xây dựng các thủ tục kiểm thử (Test script) ................................................. 210
7.3.4. Thực hiện các thủ tục kiểm thử ..................................................................... 211
7.3.5. Đánh giá kết quả kiểm thử (Test Result)....................................................... 212
7.4. Chiến lƣợc kiểm thử phần mềm ........................................................................... 212
7.4.1. Kiểm thử Black-box ...................................................................................... 213
7.4.2. Kiểm thử White-box ...................................................................................... 221
7.4.3. Kiểm thử Top-down ...................................................................................... 228
7.4.4. Kiểm thử Bottom-up ..................................................................................... 229
7.5. Kỹ thuật kiểm thử phần mềm ............................................................................... 230
Tập bài giảng Công nghệ phần mềm
Phạm Hùng Phú -Nguyễn Văn Thẩm v
7.5.1. Khái niệm ...................................................................................................... 230
7.5.2. Đặc điểm của kiểm thử .................................................................................. 231
7.5.3. Phân loại một số công cụ kiểm thử tự động .................................................. 232
7.6. Vai trò và công việc của cán bộ kiểm thử (Tester)............................................... 234
7.6.1. Vai trò của cán bộ kiểm thử .......................................................................... 234
7.6.2. Công việc của cán bộ kiểm thử ..................................................................... 234
CÂU HỎI VÀ BÀI TẬP CƠNG 7 ........................................................................... 235
CHƢƠNG 8 BẢO TRÌ PHẦN MỀM VÀ QUẢN LÝ THAY ĐỔI PHẦN MỀM ..... 245
8.1. Khái niệm bảo trì phần mềm ................................................................................ 245
8.2. Hoạt động bảo trì phần mềm ................................................................................ 245
8.2.1. Bảo trì hiệu chỉnh .......................................................................................... 246
8.2.2. Bảo trì tiếp hợp .............................................................................................. 246
8.2.3. Bảo trì hoàn thiện .......................................................................................... 247
8.2.4. Bảo trì phòng ngừa ........................................................................................ 247
8.3. Đặc điểm của bảo trì phần mềm ........................................................................... 247
8.3.1. Bảo trì không cấu trúc ................................................................................... 248
8.3.2. Bảo trì có cấu trúc .......................................................................................... 248
8.3.3. Giá thành bảo trì ............................................................................................ 249
8.3.4. Một số vấn đề khác ........................................................................................ 250
8.4. Công việc bảo trì phần mềm ................................................................................. 251
8.4.1. Cơ cấu bảo trì ................................................................................................ 251
8.4.2. Báo cáo .......................................................................................................... 251
8.4.3. Lƣu giữ các hồ sơ .......................................................................................... 252
8.4.4. Xác định giá bảo trì ....................................................................................... 253
8.5. Một số hình thức bảo trì phần mềm ...................................................................... 253
8.5.1. Bảo trì mã chƣơng trình xa lạ ........................................................................ 253
8.5.2. Công nghệ phản hồi ....................................................................................... 254
8.5.3. Công nghệ tái sử dụng ................................................................................... 254
8.5.4. Bảo trì phòng ngừa ........................................................................................ 254
8.5.5. Chiến lƣợc phần mềm thành phần ................................................................. 255
8.6. Quản lý thay đổi phần mềm .................................................................................. 255
8.6.1. Các thủ tục quản lý thay đổi .......................................................................... 256
8.6.2. Ghi quyết định theo thời gian ........................................................................ 258
8.6.3. Quản lý thay đổi tài liệu ................................................................................ 258
CÂU HỎI VÀ BÀI TẬP CƠNG 8 ........................................................................... 259
CHƢƠNG 9 ĐÓNG GÓI PHẦN MỀM ...................................................................... 262
9.1. Quy trình đóng gói phần mềm .............................................................................. 262