
NHẬP MÔN CÔNG NGHỆ
PHẦN MỀM
TÀI LIỆU ĐỌC
HÀ NỘI, 10/2023
TẬP THỂ TÁC GIẢ:
TS. VŨ THỊ HƯƠNG GIANG
TS. BÙI THỊ MAI ANH
TS. NGUYỄN NHẤT HẢI
TS. TRẦN NHẬT HOÁ
TS. TRỊNH THÀNH TRUNG
THS. NGUYỄN MẠNH TUẤN
ĐƠN VỊ: KHOA KHOA HỌC MÁY TÍNH
TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN
THÔNG
ĐẠI HỌC BÁCH KHOA HÀ NỘI

Nhập môn Công nghệ phần mềm – Tài liệu đọc
2
MỤC LỤC
MỤC LỤC 2
DANH MỤC HÌNH VẼ ...........................................................................................5
DANH MỤC BẢNG ..............................................................................................10
Chương 1 TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM ...............................11
1.1 Khái niệm và các đặc trưng của phần mềm ..............................................11
1.2 Các khái niệm trong Công nghệ phần mềm ..............................................14
1.3 Vai trò của Công nghệ phần mềm ............................................................18
1.4 Các vấn đề trong Công nghệ phần mềm ...................................................23
Chương 2 VÒNG ĐỜI PHẦN MỀM ..................................................................28
2.1 Tổng quan vòng đời phần mềm ................................................................28
2.2 Tổng quan về quy trình phát triển phần mềm ...........................................32
2.3 Một số mô hình phát triển phần mềm phổ biến ........................................36
Chương 3 PHƯƠNG PHÁP AGILE ...................................................................43
3.1 Tổng quan về phương pháp Agile ............................................................43
3.2 Các nguyên lý, nguyên tắc cơ bản của Agile ............................................49
3.3 Ưu – nhược điểm của phương pháp Agile ................................................53
3.4 Giới thiệu về Scrum ..................................................................................57
Chương 4 QUẢN LÝ DỰ ÁN PHẦN MỀM ......................................................63
4.1 Tổng quan về quản lý dự án phần mềm ....................................................63
4.2 Quy trình quản lý dự án phần mềm ..........................................................75
4.3 Lập kế hoạch dự án phần mềm .................................................................87
4.4 Quản lý rủi ro dự án phần mềm ................................................................94
Chương 5 QUẢN LÝ CẤU HÌNH PHẦN MỀM .............................................105
5.1 Khái niệm quản lý cấu hình phần mềm ......................................................105
5.2 Quy trình quản lý cấu hình phần mềm ........................................................116

Nhập môn Công nghệ phần mềm – Tài liệu đọc
3
5.3 Quản lý phiên bản .......................................................................................123
5.4 Ví dụ và bài tập ...........................................................................................134
Chương 6 KỸ NGHỆ YÊU CẦU PHẦN MỀM ...............................................142
6.1 Khái niệm và tầm quan trọng của yêu cầu phần mềm ............................142
6.2 Quy trình phân tích yêu cầu phần mềm ..................................................147
6.3 Tổng quan về mô hình hóa trong phát triển phần mềm ..........................151
6.4 Các công cụ mô hình hoá yêu cầu phần mềm.........................................154
6.5 Hướng dẫn bài tập: Mô hình hoá yêu cầu phần mềm bằng biểu đồ UC .171
6.6 Hướng dẫn bài tập: Mô hình hoá yêu cầu phần mềm bằng biểu đồ AD .181
Chương 7 THIẾT KẾ PHẦN MỀM ..................................................................187
7.1 Tổng quan về thiết kế phần mềm ............................................................187
7.2 Các khái niệm trong thiết kế phần mềm ................................................195
7.3 Tính móc nối (Coupling) và tính kết dính (Cohesion)............................205
7.4 Thiết kế kiến trúc phần mềm ..................................................................206
7.5 Thiết kế chi tiết phần mềm .....................................................................212
7.6 Ví dụ và bài tập .......................................................................................216
7.7 Thiết kế giao diện người dùng ................................................................223
Chương 8 XÂY DỰNG PHẦN MỀM ..............................................................251
8.1 Các khái niệm trong xây dựng phần mềm ..............................................251
8.2 Phong cách lập trình ...............................................................................260
8.3 Tái cấu trúc mã nguồn ............................................................................269
8.4 Ví dụ và bài tập .......................................................................................274
Chương 9 ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM ......................................280
9.1 Các khái niệm cơ bản về đảm bảo chất lượng phần mềm ......................280
9.2 Phương pháp kiểm thử hộp trắng ............................................................283
9.3 Bài tập kiểm thử hộp trắng với luồng điều khiển ...................................289
9.4 Phương pháp kiểm thử hộp đen ..............................................................293
9.5 Bài tập kiểm thử hộp đen với phân lớp tương đương .............................295

Nhập môn Công nghệ phần mềm – Tài liệu đọc
4
9.6 Quy trình đảm bảo chất lượng phần mềm ..............................................298
9.7 Bảo trì phần mềm ....................................................................................302
TÀI LIỆU THAM KHẢO ....................................................................................307

Nhập môn Công nghệ phần mềm – Tài liệu đọc
5
DANH MỤC HÌNH VẼ
Hình 1-1: Các mức độ công việc ngành Công nghệ thông tin.................................... 22
Hình 2-1: Ví dụ các bước trong mô hình truyền thống – thác nước ........................... 29
Hình 2-2: Đặc tính chất lượng theo ISO/IEC JT1/SC2 9126, JIS X0129 - 1994 ....... 33
Hình 2-3: Ví dụ mô tả các bước theo workflow ......................................................... 36
Hình 2-4: Các bước trong mô hình thác nước cải tiến (Modified Waterfall) ............. 38
Hình 2-5: Mô hình mẫu thử (prototyping model) ....................................................... 40
Hình 2-6: Mô hình tăng trưởng (incremental model) ................................................. 41
Hình 2-7: Mô hình phát triển phần mềm nhanh (RAD) ............................................. 42
Hình 3-1: Biểu đồ mức độ ưa chuộng sử dụng các phương pháp Agile trong doanh
nghiệp ......................................................................................................................... 50
Hình 3-2: Biểu đồ Value Driven-Development (VDD) ............................................. 52
Hình 3-3: Quy trình của Agile .................................................................................... 53
Hình 3-4: Vai trò của Scrum Master với các đối tượng khác ..................................... 59
Hình 3-5: Vai trò của Scrum Master với các đối tượng khác ..................................... 60
Hình 4-1: Các mức độ thành công của dự án ............................................................. 67
Hình 4-2: Các ràng buộc về chất lượng dự án ............................................................ 68
Hình 4-3: Bài toán quản lý dự án................................................................................ 77
Hình 4-4: Quan hệ giữa các tiến trình quản lý dự án phần mềm ................................ 78
Hình 4-5: quy trình quản lý rủi ro ............................................................................... 98
Hình 5-1: Cấu hình phần mềm ................................................................................. 106
Hình 5-2: Những thay đổi của phần mềm ................................................................ 107
Hình 5-3: Các đối tượng cấu hình phần mềm ........................................................... 111
Hình 5-4: Các baseline trong tiến trình phần mềm ................................................... 112
Hình 5-5: Các mục cấu hình phần mềm (SCIs) và cơ sở dữ liệu dự án ................... 113
Hình 5-6: Kho lưu trữ SCM và các hoạt động .......................................................... 114
Hình 5-7: Các lớp trong quy trình quản lý cấu hình phần mềm ............................... 117
Hình 5-8: Phát triển phần mềm nhiều phiên bản ...................................................... 125
Hình 5-9: Thao tác với kho lưu trữ dự án và không gian làm việc........................... 126

