Xem mẫu
- Tập bài giảng Công nghệ phần mềm
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
Phạm Hùng Phú-Nguyễn Văn Thẩm i
- Tập bài giảng Công nghệ phần mề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 CHƢƠ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 CHƢƠ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
ii Phạm Hùng Phú-Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
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 CHƢƠ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 CHƢƠNG 5 ...........................................................................179
CHƢƠNG 6 CÀI ĐẶT PHẦN MỀM .........................................................................184
Phạm Hùng Phú -Nguyễn Văn Thẩm iii
- Tập bài giảng Công nghệ phần mề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 mã ............................ 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 CHƢƠ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
iv Phạm Hùng Phú-Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
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 CHƢƠ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 CHƢƠ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
Phạm Hùng Phú -Nguyễn Văn Thẩm v
- Tập bài giảng Công nghệ phần mềm
9.2. Công cụ đóng gói phần mềm................................................................................ 266
9.2.1. Tạo dự án ....................................................................................................... 267
9.2.2. Thiết lập thông tin ứng dụng ......................................................................... 268
9.2.3. Thiết lập kiến trúc ứng dụng ......................................................................... 269
9.2.4. Thiết lập tập tin ứng dụng ............................................................................. 270
9.2.5. Tạo Short cut cho ứng dụng .......................................................................... 271
9.2.6. Thiết lập bản quyền ứng dụng ....................................................................... 271
9.2.7. Thiết lập các lựa chọn ................................................................................... 272
9.2.8. Đóng gói dữ liệu đi kèm ứng dụng ............................................................... 273
9.3. Viết tài liệu hƣớng dẫn ......................................................................................... 275
CÂU HỎI VÀ BÀI TẬP CHƢƠNG 9........................................................................... 276
TÀI LIỆU THAM KHẢO ................................................................................................I
vi Phạm Hùng Phú-Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
BẢNG KÍ HIỆU
Kí hiệu Ý nghĩa
CNTT Công nghệ thông tin
DBA Database Administrator
EIS Excutive Information System
DSS Decision Supports System
GDSS Group DSS
ES Expert Systems
RAD Rapid Application Development
FPA Function point analysis
DFD Data Flow Diagram
ERD Entity - Relation Diagram
FHD Function Hiarachy Diagram
LTCT Lập trình cấu trúc
LTHĐT Lập trình hƣớng đối tƣợng
EP Equivalence Partitioning
BVA Boundary Value Analysis
CFG Control Flow Graph
Phạm Hùng Phú -Nguyễn Văn Thẩm vii
- Tập bài giảng Công nghệ phần mềm
CÁC DANH MỤC HÌNH
Hình 1.1. Mô hình ba tầng ................................................................................................ 4
Hình 1.2. Tầng quy trình (process) .................................................................................. 4
Hình 1.3. Phân loại nghề nghiệp ...................................................................................... 7
Hình 1.4. Mối liên hệ của con đƣờng nghề nghiệp cho các mức khác nhau .................... 9
Hình 1.5. Mối liên hệ giữa dữ liệu và xử lý ................................................................... 14
Hình 1.6. Mô hình tuyến tính ......................................................................................... 19
Hình 1.7. Mô hình chữ V ............................................................................................... 20
Hình 1.8. Mô hình mẫu .................................................................................................. 20
Hình 1.9. Mô hình tiến hóa............................................................................................. 21
Hình 1.10. Mô hình lặp và tăng dần ............................................................................... 22
Hình 1.11. Mô hình xoắn ốc ........................................................................................... 23
Hình 1.12. Mô hình đài phun nƣớc ................................................................................ 24
Hình 1.13. Mô hình phát triển dựa trên thành phần ....................................................... 25
Hình 2.1. Bậc thang về tính đúng ................................................................................... 35
Hình 2.2. Ví dụ về tính đúng .......................................................................................... 35
Hình 2.3. Ví dụ về tính khoa học ................................................................................... 36
Hình 2.4. Các chức năng đối xứng ................................................................................. 38
Hình 2.5. Chƣơng trình giải phƣơng trình bậc nhất ....................................................... 49
Hình 2.6. Chƣơng trình giải phƣơng trình bậc hai ......................................................... 50
Hình 2.7. Chƣơng trình quản lý độc giả ......................................................................... 50
Hình 4.1. Phân loại các yêu cầu phi chức năng .............................................................. 84
Hình 4.2. Quy trình xác định yêu cầu ............................................................................ 86
Hình 4.3. Mô hình xoắn ốc của quy trình xác định yêu cầu........................................... 87
Hình 5.1. Tầm quan trọng của quá trình thiết kế.......................................................... 124
Hình 5.2. Mối liên quan của giai đoạn thiết kế với các giai đoạn khác ....................... 125
Hình 5.3. Các giai đoạn thiết kế ................................................................................... 125
Hình 5.4. Các giai đoạn thiết kế theo khía cạnh kỹ thuật ............................................. 126
Hình 5.5. Tiến trình thiết kế ......................................................................................... 127
Hình 5.6. Mô hình kho dữ liệu ..................................................................................... 131
Hình 5.7. Kiến trúc của một bộ CASE tích hợp ........................................................... 131
Hình 5.8. Mô hình kho dữ liệu ..................................................................................... 132
Hình 5.9. Kiến trúc của một thƣ viện phim và hình ảnh .............................................. 132
Hình 5.10. Mô hình máy trừu tƣợng ............................................................................ 133
Hình 5.11. Kiến trúc của hệ thống quản lý phiên bản .................................................. 133
Hình 5.12. Kiến trúc của ứng dụng doanh nghiệp........................................................ 133
Hình 5.13. Mô hình gọi - trả lời ................................................................................... 134
viii Phạm Hùng Phú-Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
Hình 5.14. Mô hình quản lý ......................................................................................... 134
Hình 5.15. Mô hình phát tin ......................................................................................... 135
Hình 5.16. Mô hình điều khiển ngắt ............................................................................ 135
Hình 5.17. Mô hình luồng dữ liệu ................................................................................ 136
Hình 5.18. Quy trình thiết kế giao diện ........................................................................ 143
Hình 5.19. Màn hình chính phần mềm quản lý ngân hàng câu hỏi.............................. 151
Hình 5.20. Màn hình dùng sơ đồ ................................................................................. 152
Hình 5.21. Màn hình giới thiệu phần mềm Microsoft HTML Help Image Editor ...... 152
Hình 5.22. Màn hình giới thiệu phần mềm Quản lý ngân hàng câu hỏi thi ................. 153
Hình 5.23. Mẫu màn hình đăng nhập ........................................................................... 153
Hình 5.24. Màn hình đăng nhập hệ thống quản lý dữ liệu ........................................... 154
Hình 5.25. Màn hình đăng nhập Gmail ........................................................................ 154
Hình 5.26. Mẫu màn hình đăng nhập với khóa bí mật ................................................. 154
Hình 5.27. Màn hình đăng nhập với Password và Secret Key ..................................... 154
Hình 5.28. Đăng nhập sử dụng SafeNet ....................................................................... 155
Hình 5.29. Màn hình đăng nhập sử dụng SafeNet ....................................................... 155
Hình 5.30. Các ứng dụng bảo mật ................................................................................ 155
Hình 5.31. RSA SecurID .............................................................................................. 156
Hình 5.32. Hybird USB Smartcard Token ................................................................... 156
Hình 5.33. Quản lý đăng nhập hệ thống ....................................................................... 157
Hình 5.34. Khóa bí mật đƣợc đồng bộ với Server VPN .............................................. 158
Hình 5.35. Mẫu màn hình nhập dữ liệu dạng danh sách .............................................. 159
Hình 5.36. Màn hình nhập thể loại sách ....................................................................... 160
Hình 5.37. Mẫu màn hình nhập dữ liệu dạng hồ sơ ..................................................... 160
Hình 5.38. Màn hình nhập hồ sơ học sinh ................................................................... 161
Hình 5.39. Màn hình nhập thông tin sách mới ............................................................. 161
Hình 5.40. Màn hình nhập thông tin đội bóng ............................................................. 161
Hình 5.41. Mẫu 1-Màn hình nhập dữ liệu dạng phiếu ................................................. 162
Hình 5.42. Mẫu 2-Màn hình nhập dữ liệu dạng phiếu ................................................. 162
Hình 5.43. Mẫu 3-Màn hình nhập dữ liệu dạng phiếu ................................................. 162
Hình 5.44. Mẫu 4-Màn hình nhập dữ liệu dạng phiếu ................................................. 163
Hình 5.45. Màn hình nhập phiếu mƣợn sách ............................................................... 163
Hình 5.46. Màn hình nhập danh mục tên nƣớc ............................................................ 163
Hình 5.47. Màn hình nhập dữ liệu hồ sơ sử dụng Tab Control.................................... 164
Hình 5.48. Màn hình nhập dữ liệu khen thƣởng sử dụng Tab Control ........................ 164
Hình 5.49. Màn hình nhập danh mục tên nƣớc ............................................................ 164
Hình 5.50. Màn hình nhập dữ liệu hóa đơn.................................................................. 165
Hình 5.51. Màn hình nhập dữ liệu hóa đơn liên kết đến màn hình khác ..................... 165
Phạm Hùng Phú -Nguyễn Văn Thẩm ix
- Tập bài giảng Công nghệ phần mềm
Hình 5.52. Màn hình nhập dữ liệu khách hàng bằng cách Import ............................... 165
Hình 5.53. Màn hình tính lƣơng ................................................................................... 166
Hình 5.54. Màn hình lập phiếu mua hàng .................................................................... 166
Hình 5.55. Kết quả tra cứu dùng thông báo ................................................................. 167
Hình 5.56. Kết quả tra cứu dạng danh sách.................................................................. 167
Hình 5.57. Màn hình tra cứu dùng nhiều danh sách..................................................... 168
Hình 5.58. Màn hình tra cứu dùng nhiều danh sách..................................................... 168
Hình 5.59. Màn hình tra cứu dùng cây danh sách ........................................................ 169
Hình 5.60: Mẫu màn hình thông báo ............................................................................ 170
Hình 5.61. Màn hình thông báo .................................................................................... 170
Hình 5.62. Mẫu màn hình tra cứu ................................................................................ 171
Hình 5.63. Ví dụ về màn hình tra cứu .......................................................................... 171
Hình 5.64. Màn hình tra cứu tiếp nhận bƣu điện, bƣu phẩm ....................................... 172
Hình 5.65. Mẫu màn hình tra cứu với hình thức cây ................................................... 172
Hình 5.66. Màn hình cây tra cứu nhân viên ................................................................. 173
Hình 5.67. Màn hình cây tra danh mục nhân viên ....................................................... 173
Hình 5.68. Màn hình tra cứu tích hợp .......................................................................... 173
Hình 6.1. Kiến trúc Case .............................................................................................. 193
Hình 6.2. Các công cụ theo dõi các yêu cầu ................................................................ 195
Hình 6.3. Mức độ áp dụng mẫu trong quá trình phát triển phần mềm ......................... 196
Hình 7.1. Qui trình kiểm thử phần mềm ...................................................................... 207
Hình 7.2. Kiểm thử màn hình đăng nhập ..................................................................... 209
Hình 7.3. Kiểm thử Black-box ..................................................................................... 213
Hình 7.4. Chƣơng trình tìm số lớn nhất và nhỏ nhất trong 3 số ................................... 216
Hình 7.5. Kiểm thử White-box ..................................................................................... 221
Hình 7.6. Kiểm thử đột biến ......................................................................................... 228
Hình 7.7. Kiểm thử Top-down ..................................................................................... 229
Hình 7.8. Kiểm thử Top-down ..................................................................................... 230
Hình 8.1. So sánh chi phí cho các giai đoạn phát triển phần mềm .............................. 245
Hình 8.2. Bảo trì không cấu trúc và bảo trì có cấu trúc ............................................... 248
Hình 8.3. Chi phí của việc phát triển phần mềm không có phƣơng pháp .................... 250
Hình 8.4. Cơ cấu bảo trì ............................................................................................... 251
Hình 8.5. Báo cáo các lỗi phần mềm............................................................................ 251
Hình 8.6. Báo cáo thay đổi phần mềm ......................................................................... 252
Hình 9.1. Các thành phần cơ bản trong bản đóng gói .................................................. 263
Hình 9.2. Các thành phần trong ứng dụng Window và Web ....................................... 263
Hình 9.3. Tổ chức cây thƣ mục .................................................................................... 264
Hình 9.4. Đóng gói sử dụng DLL ................................................................................ 265
x Phạm Hùng Phú-Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
Hình 9.5. Đóng gói có dữ liệu sử dụng DLL ............................................................... 265
Hình 9.6. Đóng gói sử dụng OCX ................................................................................ 266
Hình 9.7. Giao diện chính của InstallShield ................................................................ 267
Hình 9.8. Tạo dự án ...................................................................................................... 267
Hình 9.9. Các giai đoạn đóng gói ................................................................................. 268
Hình 9.10. Thiết lập thông tin ứng dụng ...................................................................... 268
Hình 9.11. Thiết lập kiến trúc ứng dụng ...................................................................... 269
Hình 9.12. Thiết lập thuộc tính cho đặc tính cài đặt .................................................... 269
Hình 9.13. Thiết lập tập tin ứng dụng .......................................................................... 270
Hình 9.14. Thêm tệp tin ứng dụng vào bộ cài đặt ........................................................ 270
Hình 9.15. Thêm thành công tập tin ứng dụng............................................................. 271
Hình 9.16. Tạo Short cut cho ứng dụng ....................................................................... 271
Hình 9.17. Thiết lập bản quyền ứng dụng .................................................................... 272
Hình 9.18. Chọn tệp tin *reg ........................................................................................ 272
Hình 9.19. Thiết lập các lựa chọn ................................................................................ 273
Hình 9.20. Đóng gói dữ liệu đi kèm ứng dụng ............................................................ 273
Hình 9.21. Chọn tệp tin Script ..................................................................................... 274
Hình 9.22. Tạo bộ đĩa cài đặt ....................................................................................... 274
Hình 9.23. Các loại tài liệu hƣớng dẫn......................................................................... 275
Phạm Hùng Phú -Nguyễn Văn Thẩm xi
- Tập bài giảng Công nghệ phần mềm
CÁC DANH MỤC BẢNG
Bảng 2.1. Các phép đánh giá tính hiệu quả .................................................................... 41
Bảng 2.2. Các phép đánh giá tính năng suất .................................................................. 42
Bảng 2.3. Các phép đánh giá tính an toàn ...................................................................... 45
Bảng 2.4. Các phép đánh giá tính thỏa mãn ................................................................... 47
Bảng 3.1. Lựa chọn chiến lƣợc cài đặt ........................................................................... 71
Bảng 4.1. Mối liên hệ giữa các kiểu ứng dụng và các đặc tính dữ liệu ......................... 92
Bảng 4.2. Phỏng vấn có cấu trúc và không có cấu trúc.................................................. 97
Bảng 4.3. Các hành vi của ngƣời đƣợc phỏng vấn và hoạt động tƣơng ứng ................. 98
Bảng 4.4. Tính phù hợp của các kỹ thuật thu thập yêu cầu với đặc tính của dữ liệu ... 102
Bảng 4.5. Tính phù hợp của các kỹ thuật thu thập dữ liệu với các kiểu ứng dụng ...... 104
Bảng 4.6. Các công việc của cán bộ phân tích ............................................................. 115
Bảng 5.1. Kết quả của các giai đoạn thiết kế theo khía cạnh kỹ thuật ......................... 126
Bảng 5.3. Danh mục các loại màn hình ........................................................................ 147
Bảng 5.4. Danh sách các biến cố .................................................................................. 176
Bảng 5.5. Danh sách các hàm xử lý ............................................................................. 176
Bảng 5.6. Các công việc của cán bộ thiết kế ................................................................ 178
Bảng 6.1. Ngôn ngữ lập trình và ứng dụng .................................................................. 193
Bảng 6.2. Một số CASE thông dụng ............................................................................ 197
Bảng 7.1. Kiểm thử màn hình đăng nhập ..................................................................... 210
Bảng 7.2. Bảng liệt kê các lớp tƣơng đƣơng ................................................................ 214
Bảng 7.3. Bảng liệt kê các lớp tƣơng đƣơng của chƣơng trình nhập điểm .................. 215
Bảng 7.4. Bảng liệt kê các giá trị cận để kiểm thử ....................................................... 217
Bảng 7.5. Các trƣờng hợp xảy ra với EP và BVA ....................................................... 218
Bảng 7.6. Các trƣờng hợp kiểm thử với EP và BVA ................................................... 218
Bảng 7.7. Các ký hiệu trong đồ thị nguyên nhân – kết quả ........................................ 219
Bảng 7.8. Các qui tắc trong bảng quyết định ............................................................... 220
Bảng 7.9. Các nguyên nhân và kết quả của bài toán tính thuế ..................................... 220
Bảng 7.10. Bảng quyết định của bài toán tính thuế...................................................... 221
Bảng 7.11. Công việc của cán bộ kiểm thử phần mềm ................................................ 234
xii Phạm Hùng Phú-Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
LỜI NÓI ĐẦU
Ngày nay, tất cả các nƣớc phát triển đều phụ thuộc chủ yếu vào các hệ thống phần
mềm. Và càng ngày càng có nhiều hệ thống đƣợc kiểm soát bởi phần mềm. Do đó,
việc xây dựng và bảo trì hệ thống phần mềm một cách hiệu quả là yêu cầu cần thiết đối
với nền kinh tế toàn cầu và của từng quốc gia. Môn học Công nghệ phần mềm là môn
học cung cấp cho sinh viên các kiến thức cơ bản về lý thuyết và thực tiễn của công
nghệ phần mềm. Để giúp sinh viên các ngành thuộc lĩnh vực Công nghệ thông tin
trƣờng Đại học Sƣ phạm Kỹ thuật Nam Định học tốt hơn môn học này và vận dụng để
triển khai xây dựng một phần mềm hoàn thiện thì việc xuất bản “Tập bài giảng Công
nghệ phần mềm” là rất cần thiết.
Tập bài giảng đƣợc chia làm 9 chƣơng:
Chƣơng 1. Tổng quan về Công nghệ phần mềm
Chƣơng 2. Tiêu chuẩn của sản phẩm phần mềm
Chƣơng 3. Quản lý dự án
Chƣơng 4. Xác định và phân tích yêu cầu
Chƣơng 5. Thiết kế phần mềm
Chƣơng 6. Cài đặt phần mềm
Chƣơng 7. Kiểm tra chất lƣợng phần mềm
Chƣơng 8. Bảo trì phần mềm và quản lý thay đổi phần mềm
Chƣơng 9. Đóng gói phần mềm
Mỗi chƣơng trong tập bài giảng đều hệ thống hóa các kiến thức cơ bản, cần
thiết. Tƣơng ứng với mỗi nội dung kiến thức đều có các ví dụ minh họa cụ thể, gán với
các ứng dụng thực tiễn. Đặc biệt, cuối tập bài giảng, tác giả đƣa ra một số bài tập làm
thêm để sinh viên vận dụng củng cố lại kiến thức và kỹ năng.
Với phần lý thuyết chi tiết, đầy đủ đƣợc trình bày một cách khoa học, logic và
phần bài tập để củng cố kiến, chúng tôi hy vọng rằng tập bài giảng này sẽ mang lại cho
bạn đọc nhiều điều bổ ích.
Trong quá trình biên soạn, tập bài giảng không tránh khỏi những sai sót, rất
mong đồng nghiệp và các em sinh viên góp ý kiến để tập bài giảng ngày càng đƣợc
hoàn thiện hơn. Mọi sự đóng góp ý kiến xin gửi về Văn phòng Khoa Công nghệ thông
tin-Trƣờng Đại học Sƣ phạm Kỹ thuật Nam Định-Phƣờng Lộc Hạ-Tp Nam Định.
Nhóm biên soạn
Phạm Hùng Phú- Nguyễn Văn Thẩm
Phạm Hùng Phú -Nguyễn Văn Thẩm xiii
- Tập bài giảng Công nghệ phần mềm
Chƣơng 1
TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM
Khái niệm về công nghệ phần mềm đƣợc đƣa ra lần đầu tiên vào năm 1968 tại hội
nghị thảo luận về khủng hoảng phần mềm. Công nghệ phần mềm đề cập tới các lý
thuyết, phƣơng thức và công cụ để xây dựng phần mềm chuyên nghiệp, mang lại lợi
nhuận cao.
Trong chƣơng đầu tiên, chúng ta sẽ tìm hiểu về một số khái niệm cơ bản có liên
quan tới phần mềm và công nghệ phần mềm. Từ đó, chúng ta có những hiểu biết cơ
bản để tiếp tục nghiên cứu các chƣơng tiếp theo. Ngoài ra, quy trình xây dựng phần
mềm đòi hỏi phải tuân thủ các nguyên tắc vô cùng chặt chẽ. Do đó, chúng ta sẽ tìm
hiểu về những yêu cầu căn bản đối với một kỹ sƣ phần mềm.
1.1. Các khái niệm cơ bản
Các giai đoạn phát triển sản phẩm phần mềm
- Giai đoạn 1 (từ 1950 đến giữa 1960): Xử lý theo lô, xử lý tập trung, ít xử lý phân
tán, ít sửa đổi phần mềm.
- Giai đoạn 2 (từ giữa 1960 đến giữa 1970)
+ Hệ thống đa chƣơng trình và đa nguời dùng
+ Bắt đầu cuộc “khủng hoảng” phần mềm
- Giai đoạn 3 (từ giữa 1970 đến giữa 1980)
+ Sự phát triển và sử dụng rộng rãi máy tính cá nhân
+ Sự phát triển của các công ty phần mềm
- Giai đoạn 4 (từ giữa 1980 đến nay)
+ Phần cứng ngày càng phát triển
+Hệ thống phần mềm ngày càng đa dạng, phong phú, xử lý ngày càng phức tạp,
công nghệ ngày càng phát triển…
Ngày nay, sự phát triển phần mềm ngày càng thực sự khó kiểm soát đƣợc; các dự
án phần mềm thƣờng kéo dài và vƣợt quá chi phí cho phép. Những nhà lập trình
chuyên nghiệp phải cố gắng hoàn thành các dự án phần mềm một cách có chất lƣợng,
đúng hạn trong chi phí cho phép. Cuộc khủng hoảng phần mềm xảy ra là do:
- Số lƣợng các phần mềm tăng vọt (do sự phát triển của phần cứng: tăng khả năng,
giá thành hạ)
- Có quá nhiều khuyết điểm trong các phần mềm đƣợc dùng trong xã hội:
+ Thực hiện không đúng yêu cầu (tính toán sai, không ổn định…)
+ Thời gian bảo trì nâng cấp quá lâu, chi phí cao, hiệu quả thấp
+ Khó sử dụng, thực hiện chậm
Phạm Hùng Phú-Nguyễn Văn Thẩm 1
- Tập bài giảng Công nghệ phần mềm
+ Không chuyển đổi dữ liệu giữa các phần mềm
- Việc tăng vọt số lƣợng phần mềm là điều hợp lý và sẽ còn tiếp diễn
- Các khuyết điểm của phần mềm có nguồn gốc chính từ phƣơng pháp, cách thức
và quy trình tiến hành xây dựng phần mềm:
+ Cảm tính: mỗi ngƣời theo một phƣơng pháp riêng
+ Thô sơ, đơn giản: chỉ tập trung vào việc lập trình mà ít quan tâm đến các công
việc cần làm khác (khảo sát hiện trạng, phân tích yêu cầu, thiết kế…)
+ Thủ công: còn thiếu các công cụ hỗ trợ quy trình phát triển.
Mục tiêu của công nghệ phần mềm là tạo ra những phần mềm tốt, giảm đến tối
thiểu những may rủi có thể gây cho các ngƣời liên quan. Trong quá trình đề cập, chúng
ta sử dụng các thuật ngữ:
Phần mềm là gì ? Đƣợc xem xét ở hai góc độ:
Phần mềm dƣới góc nhìn của ngƣời sử dụng: Chƣơng trình thực thi đƣợc trên máy
tính hoặc các thiết bị chuyên dụng khác. Nhằm hỗ trợ cho các nhà chuyên môn trong
từng lĩnh vực chuyên ngành thực hiện tốt hơn các thao tác nghiệp vụ của mình.
- Môi trƣờng triển khai phần mềm:
+ Máy tính: Desktop, Laptop, Tablet PC…
+ Thiết bị chuyên dụng: Thiết bị di động: PDA, Pocket PC, ĐTDĐ; Các thiết bị
chuyên dụng khác: set-top box, router,...
- Hỗ trợ làm tốt hơn các thao tác nghiệp vụ:
+ Tin học hóa nghiệp vụ hiện đang làm thủ công
+ Cải tiến chức năng nghiệp vụ hiện đang đƣợc thực hiện trên máy tính
+ Đề ra, xây dựng và triển khai chức năng nghiệp vụ mới
Phần mềm dƣới góc nhìn của chuyên viên Tin học. Đây là một hệ thống bao gồm
ba thành phần cơ bản:
- Thành phần giao tiếp (Thành phần giao diện):
+ Cho phép tiếp nhận các yêu cầu về việc sử dụng phần mềm từ ngƣời sử dụng, từ
các thiết bị thu thập dữ liệu, hoặc từ các phần mềm khác.
+ Cho phép trình bày các kết quả của việc thực hiện các yêu cầu cho ngƣời dùng
(kết quả của công việc khi thực hiện trên máy tính) hoặc điều khiển hoạt động các thiết
bị điều khiển (đóng/mở cửa, dừng hay cho chuyển động…)
+ Một cách tổng quát, thành phần giao tiếp cho phép nhập/xuất thông tin cùng với
hình thức trình bày/giao tiếp tƣơng ứng.
+ Mục tiêu chính của thành phần này là đƣa thông tin từ thế giới thực bên ngoài
phần mềm (ngƣời sử dụng, các thiết bị, phần mềm khác…) vào bên trong, hoặc ngƣợc
lại.
- Thành phần xử lý:
2 Phạm Hùng Phú-Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
+ Kiểm tra tính hợp lệ của thông tin nguồn đƣợc cung cấp từ ngƣời dùng theo các
quy định ràng buộc trong thế giới thực. Ví dụ: chỉ cho mƣợn tối đa 3 quyển sách, mỗi
lớp học không quá 50 học sinh,…
+ Tiến hành xử lý cho ra kết quả mong đợi theo quy định tính toán có sẵn trong thế
giới thực hoặc tiến hành xử lý theo thuật giải tự đề xuất.
+ Việc xử lý dựa trên thông tin nguồn từ ngƣời sử dụng cung cấp. Ví dụ: tính
nghiệm phƣơng trình bậc 2 dựa trên các hệ số nhập vào hoặc dữ liệu lƣu trữ có sẵn;
tính tiền phạt dựa trên ngày trả sách đƣợc nhập vào và thông tin về loại sách đã đƣợc
lƣu trữ.
+ Việc xử lý cho ra kết quả có thể dùng để xuất cho ngƣời dùng xem qua thành
phần giao diện, hay lƣu trữ lại qua thành phần lƣu trữ, hoặc cả hai.
+ Một cách tổng quát, thành phần xử lý là hệ thống chuyên xử lý tính toán, biến đổi
dữ liệu. Dùng thông tin nguồn từ thành phần giao diện (chức năng nhập) hay thành
phần dữ liệu (chức năng đọc); Kiểm tra tính hợp lệ (chức năng kiểm tra) và sau đó tiến
hành xử lý (chức năng xử lý) - nếu cần thiết. Để cho ra kết quả sẽ đƣợc trình bày thông
qua thành phần giao diện (chức năng xuất) hoặc lƣu trữ lại trong thành phần dữ liệu
(chức năng ghi)
- Thành phần lƣu trữ (thành phần dữ liệu):
+ Cho phép lƣu trữ lại (chức năng ghi) các kết quả đã xử lý. Ví dụ: Việc mƣợn
sách đã đƣợc kiểm tra hợp lệ, bảng lƣơng tháng đã đƣợc tính trên bộ nhớ phụ với tổ
chức lƣu trữ đƣợc xác định trƣớc; Tập tin có cấu trúc, tập tin nhị phân, cơ sở dữ liệu
+ Cho phép truy xuất lại (chức năng đọc) các dữ liệu đã lƣu trữ phục vụ cho các
hàm xử lý tƣơng ứng
+ Một cách tổng quát thành phần dữ liệu là hệ thống chuyên đọc ghi dữ liệu cùng
với mô hình tổ chức lƣu trữ dữ liệu tƣơng ứng. Mục tiêu chính của thành phần này là
chuyển đổi dữ liệu giữa bộ nhớ chính và bộ nhớ phụ. Do đó, cần đƣợc xây dựng để
thực hiện theo yêu cầu của ngƣời sử dụng.
Phần mềm (software): là một tập hợp các câu lệnh đƣợc viết bằng một hoặc nhiều
ngôn ngữ lập trình, nhằm tự động thực hiện một số các chức năng giải quyết một bài
toán nào đó.
Công nghệ (engineering): là cách sử dụng các công cụ, các kỹ thuật trong cách giải
quyết một vấn đề nào đó.
Công nghệ phần mềm (Software Engineering): là việc áp dụng các công cụ, các kỹ
thuật một cách hệ thống trong việc phát triển các ứng dụng dựa trên máy tính. Đó
chính là việc áp dụng các quan điểm, các tiến trình có kỷ luật và lƣợng hoá đƣợc, có
bài bản và hệ thống để phát triển, vận hành và bảo trì phần mềm.
Phạm Hùng Phú -Nguyễn Văn Thẩm 3
- Tập bài giảng Công nghệ phần mềm
Công nghệ phần mềm (Software Engineering) là các hoạt động bao gồm: phát
triển, đƣa vào hoạt động, bảo trì, và loại bỏ phần mềm một cách có hệ thống. Các kỹ
sƣ phần mềm sẽ đƣợc cung cấp với các kỹ thuật, công cụ cơ bản nhằm phát triển các
hệ thống phần mềm.
Nhƣ vậy, công nghệ phần mềm là lĩnh vực nghiên cứu của tin học, nhằm đề xuất
các nguyên lý, phƣơng pháp, công cụ, cách tiếp cận và phƣơng tiện phục vụ cho việc
thiết kế và cài đặt các sản phẩm phần mềm có chất lƣợng.
Theo quan điểm của nhiều nhà nghiên cứu, có thể nhìn công nghệ phần mềm là
một mô hình đƣợc phân theo ba tầng mà tất cả các tầng này đều nhằm tới mục tiêu
chất lƣợng, chi phí, thời hạn phát triển phần mềm.
Mô hình đƣợc phân theo ba tầng của công nghệ phần mềm đƣợc mô tả nhƣ sau:
Hình 1.1. Mô hình ba tầng
Ở đây tầng quy trình (process) liên quan tới vấn đề quản trị phát triển phần mềm
nhƣ lập kế hoạch, quản trị chất lƣợng, tiến độ, chi phí, mua bán sản phẩm phụ, cấu
hình phần mềm, quản trị sự thay đổi, quản trị nhân sự (trong môi trƣờng làm việc
nhóm), việc chuyển giao, đào tạo, tài liệu. Nhƣ vậy, tầng quy trình bao gồm hệ thống
các giai đoạn mà quá trình phát triển phần mềm phải trải qua, với mỗi giai đoạn cần
xác định rõ: Mục tiêu, kết quả nhận từ giai đoạn trƣớc đó, kết quả chuyển giao cho giai
đoạn kế tiếp. Các giai đoạn có thể đƣợc mô tả nhƣ sau
Hình 1.2. Tầng quy trình (process)
4 Phạm Hùng Phú-Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
+ Phân tích: Mô tả mức phát thảo các thành phần của phần mềm (đã có yêu cầu)
+ Thiết kế: Mô tả mức chi tiết các thành phần của phần mềm (đã có yêu cầu)
+ Lập trình: Thực hiện các thành phần của phần mềm (đã thiết kế)
+ Kiểm tra: kiểm chứng các thành phần của phần mềm (đã thực hiện)
Tầng phƣơng pháp (methods) hay cách thức, công nghệ, kỹ thuật để làm phần
mềm: liên quan đến tất cả các công đoạn phát triển hệ thống nhƣ nghiên cứu yêu cầu,
thiết kế, lập trình, kiểm thử và bảo trì. Phƣơng pháp dựa trên những nguyên lý cơ bản
nhất cho tất cả các lĩnh vực công nghệ kể cả các hoạt động mô hình hoá và kỹ thuật
mô tả. Nhƣ vậy, tầng phƣơng pháp bao gồm hệ thống các hƣớng dẫn cho phép từng
bƣớc thực hiện một giai đoạn nào đó trong quy trình phần mềm.
Tầng công cụ (tools) liên quan đến việc cung cấp các phƣơng tiện hỗ trợ tự động
hay bán tự động cho các tầng quá trình và phƣơng pháp (công nghệ). Nhƣ vậy, tầng
công cụ bao gồm hệ thống các phần mềm trợ giúp trong lĩnh vực xây dựng phần mềm,
hỗ trợ các chuyên viên tin học trong các bƣớc xây dựng phần mềm theo một phƣơng
pháp nào đó với một quy trình đƣợc chọn trƣớc.
Qua sơ đồ trên, ta thấy rõ công nghệ phần mềm là một khái niệm đề cập không chỉ
tới các công nghệ và công cụ phần mềm mà còn tới cả cách thức phối hợp công nghệ,
phƣơng pháp và công cụ theo các quy trình nghiêm ngặt để làm ra sản phẩm có chất
lƣợng.
1.2. Kỹ sƣ phần mềm
Quy trình xây dựng phần mềm đƣợc thực hiện trong một môi trƣờng chuyên
nghiệp và đòi hỏi tuân thủ các nguyên tắc một cách chính xác. Do đó, những kỹ sƣ
phần mềm phải coi công việc của họ là trách nhiệm to lớn, chứ không đơn thuần chỉ là
việc ứng dụng kỹ thuật.
Kỹ sƣ phần mềm phải ứng xử trung thực và cách làm của họ phải rất chuyên
nghiệp và đúng quy tắc. Một số nguyên tắc cần thiết mà một kỹ sƣ phần mềm phải
thực hiện:
- Sự tin cậy: Kỹ sƣ phần mềm phải tạo đƣợc sự tin cậy từ phía nhân viên và khách
hàng.
- Năng lực: Kỹ sƣ phần mềm không nên trình bày sai khả năng của mình, không
nên nhận những công việc vƣợt quá khả năng của mình.
- Các quyền về tài sản trí tuệ: Kỹ sƣ phần mềm nên quan tâm về các tài sản trí tuệ
đƣợc bảo hộ nhƣ: bằng sáng chế, quyền tác giả, … để đảm bảo rằng tất cả tài sản trí
tuệ của nhân viên và khách hàng đều đƣợc bảo hộ.
- Lạm dụng máy tính: Kỹ sƣ phần mềm không nên sử dụng các kỹ năng của mình
để gây ảnh hƣởng tới ngƣời khác. Lạm dụng máy tính có thể đƣợc hiểu là những việc
Phạm Hùng Phú -Nguyễn Văn Thẩm 5
- Tập bài giảng Công nghệ phần mềm
tầm thƣờng. Ví dụ chơi điện tử trên máy tính của ngƣời khác đến những vấn đề
nghiêm trọng, chẳng hạn phát tán virus.
Vấn đề về tính chuyên nghiệp và đúng quy tắc đối với kỹ sƣ phần mềm quan trọng
tới mức một số tổ chức ở Mỹ đã hợp tác để phát triển bản Code of Ethics gồm 8 quy
tắc liên quan đến ứng xử và cách ra quyết định của các kỹ sƣ phần mềm chuyên
nghiệp.
Kỹ sƣ phần mềm (Software engineer): là một ngƣời biết cách áp dụng rộng rãi
những kiến thức về cách phát triển ứng dụng vào việc tổ chức phát triển một cách có
hệ thống các ứng dụng. Công việc của ngƣời kỹ sƣ phần mềm là: đánh giá, lựa chọn,
sử dụng những cách tiếp cận có tính hệ thống, chuyên biệt, rõ ràng trong việc phát
triển, đƣa vào ứng dụng, bảo trì, và thay thế phần mềm.
Do đặc điểm nghề nghiệp, ngƣời kỹ sƣ phần mềm phải có những kỹ năng cơ bản
nhƣ:
- Định danh, đánh giá, cài đặt, lựa chọn một phƣơng pháp luận thích hợp và các
công cụ CASE.
- Biết cách sử dụng các mẫu phần mềm (prototyping).
- Biết cách lựa chọn ngôn ngữ, phần cứng, phần mềm.
- Quản lý cấu hình, lập sơ đồ và kiểm soát việc phát triển của các tiến trình.
- Lựa chọn ngôn ngữ máy tính và phát triển chƣơng trình máy tính.
- Đánh giá và quyết định khi nào loại bỏ và nâng cấp các ứng dụng.
Mục tiêu của kỹ sƣ phần mềm là sản xuất ra các sản phẩm có chất lƣợng cao và
phù hợp với các quy trình phát triển chuẩn mực. Các quy trình bao gồm:
- Việc phát triển (Development): Đƣợc bắt đầu từ khi quyết định phát triển sản
phẩm phần mềm và kết thúc khi sản phẩm phần mềm đƣợc chuyển giao cho ngƣời sử
dụng.
- Việc sử dụng (Operations): Là việc xử lý, vận hành hằng ngày sản phẩm phần
mềm.
- Việc bảo trì (Maintenance): Thực hiện những thay đổi mang tính logic đối với hệ
thống và chƣơng trình để chữa những lỗi cố định, cung cấp những thay đổi về công
việc, hoặc làm cho phần mềm đƣợc hiệu quả hơn.
- Việc loại bỏ (Retirement): Thƣờng là việc thay thế các ứng dụng hiện thời bởi các
ứng dụng mới.
1.3. Nhân tố con ngƣời trong ngành công nghiệp phần mềm
Đối với một sản phẩm phần mềm, một ngƣời không thể hoàn thành mà là kết quả
lao động của một nhóm ngƣời, gọi đó là nhóm phát triển phần mềm. Mỗi thành viên
trong nhóm không đƣợc vị kỷ, thành quả lao động của nhóm đƣợc xen nhƣ là thành
quả chung và phải tuyệt đối trung thành với nhóm.
6 Phạm Hùng Phú-Nguyễn Văn Thẩm
nguon tai.lieu . vn