Tập bài giảng Công nghệ phần mềm đượ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. Mời các bạn cùng tham khảo.
Tập 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 TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM 1.1 Các khái niệm 1.2 Kỹ sƣ phần mềm 1.3 Nhân tố ngƣời ngành công nghiệp phần mềm 1.4 Phân loại nghề nghiệp 1.4.1 Mức độ kinh nghiệm 1.4.2 Loại hình cơng việc 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 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 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ò ngƣời dùng giai đoạn phát triển phần mềm 26 CÂU HỎI VÀ BÀI TẬP CHƢƠNG 28 CHƢƠNG TIÊU CHUẨN CỦA SẢN PHẨM PHẦN MỀM 33 2.1 Mục tiêu công nghệ phần mềm 33 2.2 Tiêu chuẩn sản phẩm phần mềm 34 2.2.1 Tính 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 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 tồn 37 2.2.8 Tính tồn vẹn 38 2.2.9 Tính đối xứng đầy đủ chức 38 2.2.10 Tính tiêu chuẩn 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 49 CHƢƠNG 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ị khởi động dự án 58 3.3.2 Các giai đoạn thực 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 lập lịch dự án 64 3.6 Quản lý công việc 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 kiểm soát 72 3.10 Hồ sơ dự án 77 CÂU HỎI VÀ BÀI TẬP CHƢƠNG 79 CHƢƠNG 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 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 kỹ thuật thu thập yêu cầu 101 4.3 Đánh giá yêu cầu 104 ii Phạm Hùng Phú-Nguyễn Văn Thẩm Tập 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 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 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 118 CHƢƠNG THIẾT KẾ PHẦN MỀM .124 5.1 Đặc điểm 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 .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ế sở liệu 136 5.4.1 Cách tổ chức lƣu trữ liệu 136 5.4.2 Xây dựng sơ đồ logic liệu 138 5.4.3 Cách phƣơng pháp thiết kế sở liệu 139 5.4.4 Yêu cầu chất lƣợng thiết kế sở 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 thiết kế giao diện .144 5.5.3 Phân loại hình 147 5.5.4 Thiết kế hình 148 5.5.5 Thiết kế hình giới thiệu 152 5.5.6 Thiết kế hình đăng nhập 153 5.5.7 Thiết kế hình nhập liệu lƣu trữ 158 5.5.8 Thiết kế hình xử lý tính tốn 166 5.5.9 Thiết kế hình kết .166 5.5.10 Thiết kế hình thơng báo .169 5.5.11 Thiết kế 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 179 CHƢƠNG CÀI ĐẶT PHẦN MỀM 184 Phạm Hùng Phú -Nguyễn Văn Thẩm iii Tập 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ỹ lập trình 184 6.2.1 Tài liệu chƣơng trình 184 6.2.2 Khai báo liệu 185 6.2.3 Xây dựng câu lệnh 185 6.2.4 Kỹ thuật vào 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 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 phân loại 193 6.5.1 Công cụ CASE 193 6.5.2 Phân loại 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án lập trình 198 CÂU HỎI VÀ BÀI TẬP CHƢƠNG 199 CHƢƠNG 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 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 phần mềm 203 7.2.3 Một số đánh giá độ tin cậy 203 7.2.4 Lập trình độ 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 tình kiểm thử (Test Case) 208 7.3.3 Xây dựng thủ tục kiểm thử (Test script) 210 7.3.4 Thực thủ tục kiểm thử 211 7.3.5 Đánh giá kết 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 giảng Công nghệ phần mềm 7.5.1 Khái niệm 230 7.5.2 Đặc điểm kiểm thử 231 7.5.3 Phân loại số công cụ kiểm thử tự động 232 7.6 Vai trị cơng việc cán kiểm thử (Tester) .234 7.6.1 Vai trò cán kiểm thử 234 7.6.2 Công việc cán kiểm thử .234 CÂU HỎI VÀ BÀI TẬP CHƢƠNG 235 CHƢƠNG 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ì hồn thiện 247 8.2.4 Bảo trì phịng ngừa 247 8.3 Đặc điểm 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ữ 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 đị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 259 CHƢƠNG ĐÓ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 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 quyền ứng dụng 271 9.2.7 Thiết lập lựa chọn 272 9.2.8 Đóng gói liệu 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 276 TÀI LIỆU THAM KHẢO I vi Phạm Hùng Phú-Nguyễn Văn Thẩm Tập giảng Công nghệ phần mềm BẢNG KÍ HIỆU Kí hiệu CNTT DBA Ý nghĩa Công nghệ thông tin Database Administrator EIS Excutive Information System DSS GDSS Decision Supports System Group DSS ES RAD Expert Systems Rapid Application Development FPA DFD Function point analysis Data Flow Diagram ERD FHD LTCT LTHĐT EP BVA CFG Entity - Relation Diagram Function Hiarachy Diagram Lập trình cấu trúc Lập trình hƣớng đối tƣợng Equivalence Partitioning Boundary Value Analysis Control Flow Graph Phạm Hùng Phú -Nguyễn Văn Thẩm vii Tập 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 Hình 1.2 Tầng quy trình (process) Hình 1.3 Phân loại nghề nghiệp Hình 1.4 Mối liên hệ đƣờng nghề nghiệp cho mức khác Hình 1.5 Mối liên hệ liệu 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 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 thành phần 25 Hình 2.1 Bậc thang tính 35 Hình 2.2 Ví dụ tính 35 Hình 2.3 Ví dụ tính khoa học 36 Hình 2.4 Các chức đối xứng 38 Hình 2.5 Chƣơng trình giải phƣơng trình bậc 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 yêu cầu phi chức 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 quy trình xác định yêu cầu 87 Hình 5.1 Tầm quan trọng trình thiết kế 124 Hình 5.2 Mối liên quan giai đoạn thiết kế với 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 liệu 131 Hình 5.7 Kiến trúc CASE tích hợp 131 Hình 5.8 Mơ hình kho liệu 132 Hình 5.9 Kiến trúc thƣ viện phim 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 hệ thống quản lý phiên 133 Hình 5.12 Kiến trúc ứ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 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 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 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 hình đăng nhập 153 Hình 5.24 Màn hình đăng nhập hệ thống quản lý liệu 154 Hình 5.25 Màn hình đăng nhập Gmail 154 Hình 5.26 Mẫu 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 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 với Server VPN 158 Hình 5.35 Mẫu hình nhập 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 hình nhập 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 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 liệu dạng phiếu 162 Hình 5.42 Mẫu 2-Màn hình nhập liệu dạng phiếu 162 Hình 5.43 Mẫu 3-Màn hình nhập liệu dạng phiếu 162 Hình 5.44 Mẫu 4-Màn hình nhập 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 liệu hồ sơ sử dụng Tab Control 164 Hình 5.48 Màn hình nhập 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 liệu hóa đơn 165 Hình 5.51 Màn hình nhập liệu hóa đơn liên kết đến hình khác 165 Phạm Hùng Phú -Nguyễn Văn Thẩm ix Tập giảng Cơng nghệ phần mềm Hình 5.52 Màn hình nhập liệu khách hà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 tra cứu dùng thơng báo 167 Hình 5.56 Kết 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 danh sách 169 Hình 5.60: Mẫu 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 hình tra cứu 171 Hình 5.63 Ví dụ 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 hình tra cứu với hình thức 172 Hình 5.66 Màn hình tra cứu nhân viên 173 Hình 5.67 Màn hình 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 yêu cầu 195 Hình 6.3 Mức độ áp dụng mẫu 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ử 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ỏ 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 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 bảo trì có cấu trúc 248 Hình 8.3 Chi phí 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 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 đóng gói 263 Hình 9.2 Các thành phần ứng dụng Window Web 263 Hình 9.3 Tổ chức 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 ... gửi 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 giảng. .. thực chậm Phạm Hùng Phú -Nguyễn Văn Thẩm Tập giảng Công nghệ phần mềm + Không chuyển đổi liệu phần mềm - Việc tăng vọt số lƣợng phần mềm điều hợp lý tiếp diễn - Các khuyết điểm phần mềm có nguồn... trì phần mềm Phạm Hùng Phú -Nguyễn Văn Thẩm Tập giảng Công nghệ phần mềm Công nghệ phần mềm (Software Engineering) hoạt động bao gồm: phát triển, đƣa vào hoạt động, bảo trì, loại bỏ phần mềm