Xem mẫu

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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