Bài giảng Kỹ thuật phần mềm
MỤC LỤC CHƯƠNG 1 - Phần mềm và kỹ nghệ phần mềm 1 1.1 Tầm quan trọng và sự tiến hóa của phần mềm 1 1.1.1 Tiến hóa của phần mềm 1 a. Những năm đầu (từ 1950 đến 1960): 1 b. Thời kỳ trải rộng từ những năm 1960 đến giữa những năm 1970: 1 c. Thời kỳ từ giữa những năm 1970 đến đầu những năm 1990: 2 d. Thời kỳ sau 1990: 2 1.1.2 Sự ứng dụng của phần mềm 2 a. Phần mềm hệ thống 2 b. Phần mềm thời gian thực 3 c. Phần mềm nghiệp vụ 3 d. Phần mềm khoa học và công nghệ 3 e. Phần mềm nhúng 3 f. Phần mềm máy tính cá nhân 3 g. Phần mềm trí tuệ nhân tạo 4 1.2 Khó khăn, thách thức đối với phát triển phần mềm 4 1.2.1 Phần mềm và phần mềm tốt 4 1.2.2 Đặc trưng phát triển và vận hành phần mềm 5 a. Phần mềm không được chế tạo theo nghĩa cổ điển 5 b. Phần mềm không hỏng đi nhưng thoái hóa theo thời gian 6 c. Phần lớn phần mềm đều được xây dựng từ đầu, ít khi được lắp ráp từ thành phần có sẵn 6 1.2.3 Nhu cầu và độ phức tạp 6 1.3 Kỹ nghệ phần mềm 7 1.3.1 Định nghĩa 7 a. Các phương pháp 7 b. Các công cụ 7 c. Các thủ tục 8 1.3.2 Mô hình vòng đời cổ điển 8 a. Kỹ nghệ và phân tích hệ thống 8 b. Phân tích yêu cầu phần mềm 8 c. Thiết kế 8 d. Mã hóa 9 e. Kiểm thử 9 f. Bảo trì 9 1.3.3 Mô hình làm bản mẫu 10 1.3.4 Mô hình xoắn ốc 11 1.3.5 Kỹ thuật thế hệ thứ tư 13 1.3.6 Mô hình lập trình cực đoan 14 a) Tạo các ca thử nghiệm trước tiên 14 b) Lập trình đôi 14 1.3.7 Tổ hợp các mô hình 15 1.3.8 Tính khả thị của quá trình kỹ nghệ 15 1.3.9 Vấn đề giảm kích cỡ của phần mềm 16 1.4 Cái nhìn chung về kỹ nghệ phần mềm 17 Chương 2 - Phân tích và đặc tả yêu cầu 20 2.1 Đại cương về phân tích và đặc tả 20 2.2 Nghiên cứu khả thi 21 2.3 Nền tảng của phân tích yêu cầu 23 2.3.1 Các nguyên lý phân tích 23 2.3.2 Mô hình hóa 24 2.3.3 Người phân tích 26 2.4 Xác định và đặc tả yêu cầu 27 2.4.1 Xác định yêu cầu 27 2.4.2 Đặc tả yêu cầu 27 2.4.3 Thẩm định yêu cầu 28 2.5 Làm bản mẫu trong quá trình phân tích 29 2.5.1 Các bước làm bản mẫu 29 2.6 Định dạng đặc tả yêu cầu 31 Chương 3 - Thiết kế phần mềm 34 3.1 Khái niệm về thiết kế phần mềm 34 3.1.1 Khái niệm 34 3.1.2 Tầm quan trọng 34 3.1.3 Quá trình thiết kế 35 3.1.4 Cơ sở của thiết kế 36 3.1.5 Mô tả thiết kế 37 3.1.6 Chất lượng thiết kế 38 3.2 Thiết kế hướng chức năng 41 3.2.1 Cách tiếp cận hướng chức năng 41 3.2.2 Biểu đồ luồng dữ liệu 42 3.2.3 Lược đồ cấu trúc 42 3.2.4 Các từ điển dữ liệu 42 3.3 Thiết kế hướng đối tượng 43 3.3.1 Cách tiếp cận hướng đối tượng 43 3.3.2 Ba đặc trưng của thiết kế hướng đối tượng 43 3.3.3 Cơ sở của thiết kế hướng đối tượng 43 3.3.4 Các bước thiết kế 44 3.3.5 Ưu nhược điểm của thiết kế hướng đối tượng 45 3.3.6 Quan hệ giữa thiết kế và lập trình hướng đối tượng 45 3.3.7 Quan hệ giữa thiết kế hướng đối tượng và hướng chức năng 46 3.4 Thiết kế giao diện người sử dụng 46 3.4.1 Một số vấn đề thiết kế 48 3.4.2 Một số hướng dẫn thiết kế 48 Chương 4 - Lập trình 50 4.1 Ngôn ngữ lập trình 50 4.1.1 Đặc trưng của ngôn ngữ lập trình 50 4.1.2 Lựa chọn ngôn ngữ lập trình 51 4.1.3 Ngôn ngữ lập trình và và sự ảnh hưởng tới kỹ nghệ phần mềm 52 4.2 Phong cách lập trình 52 4.2.1 Tài liệu chương trình 53 4.2.2 Khai báo dữ liệu 53 4.2.3 Xây dựng câu lệnh 54 4.2.4 Vào/ra 54 4.3 Lập trình tránh lỗi 54 4.3.1 Lập trình thứ lỗi 56 4.3.2 Lập trình phòng thủ 56 4.4 Lập trình hướng hiệu quả thực hiện 57 4.4.1 Tính hiệu quả chương trình 57 4.4.2 Hiệu quả bộ nhớ 58 4.4.3 Hiệu quả vào/ra 58 Chương 5 - Xác minh và thẩm định 60 5.1 Đại cương 60 5.2 Khái niệm về phép thử 61 5.3 Thử nghiệm chức năng và thử nghiệm cấu trúc 61 5.3.1 Thử nghiệm chức năng 61 5.3.2 Thử nghiệm cấu trúc 62 5.4 Quá trình thử nghiệm 63 5.4.1 Thử nghiệm gây áp lực 64 5.5 Chiến lược thử nghiệm 64 5.5.1 Thử nghiệm dưới lên 64 5.5.2 Thử ngiệm trên xuống 65 Chương 6 - Quản lý dự án phát triển phần mềm 66 6.1 Đại cương 66 6.2 Độ đo phần mềm 67 6.2.1 Đo kích cỡ phần mềm 67 6.2.2 Độ đo dựa trên thống kê 68 6.3 Ước lượng 68 6.4 Quản lý nhân sự 69 6.5 Quản lý cấu hình 70 6.6 Quản lý rủi ro 71 Tài liệu tham khảo 73
Các file đính kèm theo tài liệu này:
- ky_thuat_phan_mem_7221.doc