Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, việc ứng dụng các giải pháp phần mềm trực tuyến vào lĩnh vực dịch vụ giải trí – đặc biệt là hoạt động kinh doanh rạp chiếu phim – đóng vai trò thiết yếu nhằm nâng cao trải nghiệm khách hàng và tối ưu hóa quy trình vận hành. Đề tài "Hệ Thống Đặt Vé Xem Phim Theo Tiến Trình Scrum" được thực hiện trong khuôn khổ môn học Công nghệ phần mềm nâng cao tại Khoa Công nghệ Thông tin, Trường Đại học Ngoại ngữ - Tin học Thành phố Hồ Chí Minh (HUFLIT).

Mục tiêu chính và các nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm:

  1. Xây dựng một hệ thống website cho phép người dùng tìm kiếm thông tin phim, xem trailer, tra cứu lịch chiếu, lựa chọn ghế ngồi và thực hiện đặt vé xem phim trực tuyến.
  2. Thiết kế hệ thống quản trị hỗ trợ nhân viên và nhà quản lý quản lý danh mục phim, thể loại, phòng chiếu, xuất chiếu, lịch chiếu, thông tin khách hàng, nhân viên và thống kê doanh thu hóa đơn.
  3. Vận dụng toàn diện khung làm việc Scrum (thuộc phương pháp luận Agile) vào việc quản trị tiến trình dự án: từ việc phân tích yêu cầu, xây dựng Product Backlog, ước lượng Story Point, lập kế hoạch Sprint, theo dõi tiến độ qua GitHub Projects cho đến việc bàn giao các bản phát hành (Release).
  4. Đảm bảo các yêu cầu về tính toàn vẹn dữ liệu, kiểm thử phần mềm qua từng chu kỳ Sprint và quản lý phiên bản mã nguồn chặt chẽ.

Đối tượng nghiên cứu của đề tài là quy trình quản lý dự án phần mềm theo tiến trình Scrum và hệ thống phần mềm thương mại điện tử phục vụ đặt vé xem phim trực tuyến (sản phẩm lấy tên thương hiệu là M.C - Multiverse Of Cinema). Phạm vi triển khai được thực hiện bởi nhóm tác giả gồm 03 sinh viên dưới sự hướng dẫn của giảng viên chuyên trách, với thời gian thực hiện kéo dài trong 10 tuần (từ ngày 04/09/2023 đến ngày 10/11/2023).


Cơ sở lý thuyết và phương pháp

Đề tài kết hợp giữa lý thuyết phát triển phần mềm linh hoạt (Agile Software Development) và kỹ thuật phân tích, thiết kế hệ thống thông tin hướng web:

1. Khung lý thuyết Agile và mô hình Scrum

Nhóm nghiên cứu căn cứ vào Tuyên ngôn Agile (Agile Manifesto) với 4 giá trị cốt lõi và 12 nguyên tắc thực hành. Mô hình Scrum được lựa chọn làm phương pháp quản trị xuyên suốt nhờ khả năng thích ứng linh hoạt với các thay đổi yêu cầu, chia nhỏ khối lượng công việc thành các chu kỳ ngắn hạn (Sprint) lặp đi lặp lại.

Tiêu chí Mô hình SCRUM Mô hình truyền thống (Waterfall)
Phương pháp hoạt động Linh hoạt, lặp lại qua từng Sprint Tuần tự, cố định theo các giai đoạn đóng
Sự tham gia của khách hàng Liên tục trong suốt quá trình phát triển Chủ yếu ở giai đoạn đầu và bàn giao cuối
Yêu cầu dự án Có thể điều chỉnh, làm mịn liên tục Khó thay đổi sau khi đã chốt tài liệu
Hình thức phát hành Tăng trưởng theo từng Sprint Toàn bộ sản phẩm ở giai đoạn cuối
Hoạt động kiểm thử Thực hiện liên tục trong từng Sprint Tiến hành tập trung ở giai đoạn cuối
Quản lý đội nhóm Tự tổ chức, hợp tác liên chức năng Phân cấp, phụ thuộc, làm việc riêng biệt

2. Các thành phần Scrum được vận dụng

  • Nhân sự (Roles):
    • Product Owner (PO): Nguyễn Phan Thanh Phước (Nhóm trưởng) chịu trách nhiệm xác định tính năng, xây dựng và ưu tiên Product Backlog, lập kế hoạch và ước lượng chi phí.
    • Scrum Master (SM): Nguyễn Quốc Trường đảm bảo quy trình Scrum được tuân thủ, điều phối và tổ chức các cuộc họp Scrum.
    • Development Team: Nguyễn Phan Thanh Phước, Bùi Huy Phước, Nguyễn Quốc Trường trực tiếp phân tích, thiết kế cơ sở dữ liệu, lập trình giao diện, viết mã xử lý, kiểm thử và sửa lỗi.
    • Mentor / Customer: Giảng viên Nguyễn Thanh Trung hướng dẫn, giám sát và đánh giá sản phẩm.
  • Vật phẩm (Artifacts): Product Backlog, Sprint Backlog và biểu đồ Burndown Chart.
  • Sự kiện (Meetings): Sprint Planning (Kế hoạch Sprint), Daily Scrum (Họp ngắn hằng ngày), Sprint Review (Sơ kết Sprint) và Sprint Retrospective (Cải tiến Sprint).

3. Phương pháp ước lượng chi phí và nỗ lực

Nhóm tác giả sử dụng dãy số Fibonacci ($1, 2, 3, 5, 8$) để chấm điểm độ phức tạp (Story Point) cho từng User Story dựa trên ma trận 4 yếu tố: Mức độ nỗ lực (Effort), Thời gian cần thiết (Time), Độ phức tạp công việc (Complexity) và Rủi ro công việc (Risk).

Công thức tính toán khối lượng công việc tổng thể và chi phí dựa trên các tham số:

  • Tổng điểm Story Point toàn dự án: $REP = 114$ points.
  • Vận tốc trung bình (Velocity): $(30 + 33 + 27) / 3 = 30$ points/Sprint.
  • Số lượng Sprint dự kiến: $114 / 30 \approx 4$ Sprint (thực tế triển khai 3 Sprint chính thức).
  • Đội ngũ phát triển: 3 người; Hệ số tập trung (Focus Factor - FF): $45% = 0.45$.
  • Hệ số quy đổi: $PM = 5$ ($1\text{ point} \leftrightarrow 5\text{ man-days}$).
  • Tổng khối lượng ngày công: $114 / (5 \times 0.45) \approx 51\text{ man-days}$.
  • Đơn giá ước tính: $50.000\text{ VNĐ/ngày công} \rightarrow \text{Tổng chi phí ước tính} = 51 \times 50.000\text{ VNĐ}$.

Thiết kế và triển khai

1. Kiến trúc hệ thống và công nghệ sử dụng

  • Kiến trúc phần mềm: Mô hình MVC (Model - View - Controller), phân tách rõ ràng giữa tầng dữ liệu / nghiệp vụ (Model), tầng giao diện (View) và tầng điều phối luồng công việc (Controller).
  • Ngôn ngữ và Nền tảng: C#, ASP.NET MVC trên nền tảng .NET.
  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server (phiên bản 2019 / 2022) với tập tin cơ sở dữ liệu nguồn CNPMNC_DATA1.sql.
  • Môi trường phát triển: Microsoft Visual Studio (phiên bản 2019 / 2022).
  • Quản lý phiên bản và mã nguồn: GitHub Repository (CNPMNC_REPORT.git), quản lý nhiệm vụ bằng GitHub Projects và đánh dấu phát hành qua thẻ Releases/Tags.

2. Thiết kế cơ sở dữ liệu (Database Schema)

Cơ sở dữ liệu của hệ thống bao gồm 17 bảng quan hệ được chuẩn hóa nhằm lưu trữ đầy đủ các thông tin của hệ thống bán vé:

Tên bảng Khóa chính (PK) Khóa ngoại (FK) Chức năng lưu trữ chính
KHACHHANG MaKH MaLoaiKH Thông tin tài khoản người dùng, email, mật khẩu, điểm thưởng, trạng thái
LOAIKH MaLoaiKH Không Danh mục loại khách hàng và tỷ lệ chiết khấu giảm giá
NHANVIEN MaNV Không Thông tin tài khoản nhân viên, họ tên, email, mật khẩu, trạng thái
PHIM MaPhim MaGHT Tên phim, tóm tắt, ngày công chiếu, thời lượng, lượt xem, ảnh, trailer, giá
GIOIHANTUOI MaGHT Không Các mức giới hạn độ tuổi xem phim (tên giới hạn, mô tả)
BINHLUAN MaBL MaPhim, MaKH Nội dung bình luận, ghi chú, trạng thái kiểm duyệt, ngày tạo
THELOAIP MaTL Không Danh mục thể loại phim (tên thể loại, mô tả)
TL_P MaTLP MaPhim, MaTL Bảng trung gian liên kết quan hệ nhiều - nhiều giữa phim và thể loại
PHONGCHIEU MaPC MaLPC Tên phòng chiếu, số lượng ghế thường, số lượng ghế VIP, loại phòng
LOAIPC MaLPC Không Định nghĩa phân loại phòng chiếu (2D, 3D, mô tả)
XUATCHIEU MaXC Không Định nghĩa ca chiếu và khung giờ xuất chiếu
LICHCHIEU MaLC MaXC, MaPC, MaPhim Lịch chiếu phim theo ngày, trạng thái lịch chiếu, số vé đã đặt
LOAIGHE MaGhe Không Phân loại ghế (ghế thường, ghế VIP) và đơn giá tương ứng
GHECUAPC Không MaPC, MaGhe Danh sách cấu hình ghế thực tế trong từng phòng chiếu và trạng thái ghế
VEPHIM MaVe MaLC, MaKH Thông tin vé đã đặt, ngày đặt, trạng thái thanh toán, hạn dùng, giá vé
HOADON MaHD MaKH, MaNV Hóa đơn thanh toán, tổng tiền gốc, tổng tiền sau giảm, tỷ lệ giảm giá
CHITIETHD Không MaVe, MaHD Chi tiết liên kết giữa vé phim và hóa đơn, số lượng vé, thành tiền
VE_GHE MaVG MaVe Thông tin chi tiết vị trí ghế ngồi cụ thể gán cho từng vé đã đặt

Nội dung chính theo từng chương

Chương 1: Tổng quan dự án

Chương này xác định tầm nhìn sản phẩm (Product Vision), định vị website M.C là ứng dụng phục vụ khách hàng trong nước với điểm nhấn tích hợp xem video trailer trực tiếp và quy trình đặt vé tinh gọn. Hệ thống bao gồm 15 nhóm tính năng (Features) chính phân bổ theo 3 nhóm đối tượng: Khách vãng lai, Thành viên, Nhân viên và Quản lý. Lộ trình sản phẩm (Product Roadmap) được cấu trúc qua 3 cột mốc:

  • Release V1 (Tuần 7): Quản lý phim, thể loại, giới hạn tuổi, xem chi tiết và trailer phim.
  • Release V2 (Tuần 9): Quản lý phòng chiếu, lịch chiếu, nhân viên, khách hàng, đặt vé trực tuyến và quản lý hóa đơn.
  • Release V3 (Tuần 11): Quản lý bình luận, quản lý thông tin cá nhân và tìm kiếm phim nâng cao.

Kế hoạch 10 tuần làm việc được phân bổ chi tiết từ việc thiết lập tài liệu Scrum, thiết kế cơ sở dữ liệu, ước tính chi phí đến 3 chu kỳ phát triển mã nguồn và kiểm thử phát hành.

Chương 2: Nguyên tắc Agile và SCRUM

Chương 2 trình bày cơ sở lý luận về Agile và các yếu tố cấu thành của mô hình Scrum. Nội dung đi sâu phân tích cơ chế phối hợp giữa các vai trò (Product Owner, Scrum Master, Development Team), cấu trúc của các tạo tác quản lý (Product Backlog, Sprint Backlog, Burndown Chart) và quy trình tổ chức 4 phiên họp bắt buộc trong một chu kỳ Sprint.

Chương 3: Lập kế hoạch và thực hiện dự án theo tiến trình SCRUM

Chương này là phần trọng tâm về quản trị dự án, bao gồm bảng Product Backlog chi tiết được đánh mã định danh theo Feature ID và theo mức độ ưu tiên (Priority), gắn kèm điểm Story Point theo Fibonacci. Toàn bộ tiến trình thực thi được chia thành 3 Sprint cụ thể:

  • Sprint 1 (30 Story Points - 14 Tasks: SP101 đến SP114): Tập trung xây dựng hạ tầng cơ sở dữ liệu trên SQL Server, cấu hình dự án MVC, thiết kế giao diện trang chủ, trang chi tiết phim, giao diện quản trị Admin cơ bản và các chức năng CRUD danh mục phim, thể loại, phòng chiếu; thực hiện kiểm thử giao diện và sửa các lỗi phát sinh (Spike/Bug).
  • Sprint 2 (33 Story Points - 16 Tasks: SP201 đến SP216): Xây dựng module quản lý xuất chiếu, lịch chiếu, tài khoản nhân viên, khách hàng; hiện thực hóa luồng người dùng đặt vé trực tuyến, sơ đồ chọn ghế, tính toán thanh toán giỏ hàng, đăng ký/đăng nhập và lập trình biểu đồ báo cáo doanh thu; kiểm thử và sửa lỗi giỏ hàng, giá tiền, ngày giờ.
  • Sprint 3 (27 Story Points - 11 Tasks: SP301 đến SP311): Phát triển tính năng cập nhật thông tin cá nhân, xem lịch sử mua vé, công cụ tìm kiếm phim theo tên, module bình luận/xóa bình luận phim, tính năng áp dụng chiết khấu vào hóa đơn mua vé và hoàn thiện giao diện quản trị hóa đơn chi tiết; tiến hành kiểm thử liên thông.

Chương 4: Thiết kế dữ liệu và giao diện

Chương 4 cung cấp sơ đồ quan hệ thực thể (ERD) hoàn chỉnh và bảng mô tả chi tiết 17 thực thể dữ liệu. Đồng thời, chương này minh họa trực quan thiết kế giao diện người dùng qua từng luồng tác vụ:

  • Giao diện khách hàng: Danh mục phim Now Showing, Coming Soon, Most Watching; trang chi tiết phim tích hợp trailer YouTube; ma trận sơ đồ ghế (Screen, ghế thường, ghế VIP, trạng thái đã đặt); quy trình tạo vé và giỏ hàng thanh toán; trang thông tin cá nhân và khu vực bình luận.
  • Giao diện quản trị (Admin): Module quản lý danh sách phim (thêm mới, chỉnh sửa thông tin trực tiếp, cập nhật poster/trailer), module quản lý hóa đơn, màn hình báo cáo thống kê hiển thị số lượng vé bán theo khách hàng và theo phim.

Chương 5: Kết luận và hướng mở rộng đề tài

Đánh giá tổng kết các kết quả đạt được về mặt tính năng phần mềm và khả năng làm chủ tiến trình Scrum trong việc lập kế hoạch, theo dõi tiến độ và kiểm soát chất lượng. Đồng thời, chương trình bày thẳng thắn các tồn đọng về mặt kỹ thuật, quản lý Backlog và đề xuất các giải pháp nâng cấp trong tương lai.

Phụ lục: Quản lý Sprint và Ghi chú phát hành (Release Notes)

  • Phụ lục 1: Minh chứng quản lý Sprint Backlog trực quan trên giao diện bảng Kanban của GitHub Projects.
  • Phụ lục 2 - Release Note 1 (v1.1, ngày 23/10/2023): Công bố các tính năng CRUD phim, phòng chiếu, lịch chiếu, tài khoản; sửa các lỗi trùng khóa chính, lỗi hiển thị trailer, lỗi danh sách trang chủ. Cung cấp hướng dẫn cấu hình chuỗi kết nối connectionString trong SQLData.cs kết nối với SQL Server localhost.
  • Phụ lục 3 - Release Note 2 (v2.2, ngày 03/11/2023): Bổ sung chức năng thống kê mua bán, đặt vé online, lịch sử mua vé; khắc phục các lỗi tính tiền khi chọn ghế, lỗi ngày giờ đặt vé, lỗi giỏ hàng rỗng (null). Cung cấp tài khoản quản trị mặc định (admin / adminpad).
  • Phụ lục 4 - Release Note 3 (v3.2, ngày 10/11/2023): Bổ sung chức năng quản lý bình luận, cập nhật hồ sơ cá nhân, tìm kiếm phim; khắc phục lỗi xóa/thêm bình luận và lỗi hiển thị lịch sử hóa đơn.

Kết quả và đóng góp

1. Kết quả thực nghiệm phần mềm

Đề tài đã hoàn thành và bàn giao 3 bản phát hành mã nguồn mở trên kho lưu trữ GitHub với 13 nhóm tính năng hoàn chỉnh:

  • Hệ thống đặt vé trực quan cho phép người dùng chọn suất chiếu, chọn ghế trên sơ đồ rạp theo thời gian thực và quản lý vé trong giỏ hàng.
  • Tích hợp phát trailer trực tiếp từ giao diện chi tiết phim.
  • Hệ thống phân quyền cơ bản giữa khách hàng, thành viên và quản trị viên hệ thống.
  • Module báo cáo thống kê doanh thu và sản lượng vé bán trực quan cho ban quản lý.

2. Đóng góp về mặt phương pháp luận và quản lý dự án

  • Hiện thực hóa thành công mô hình Scrum vào một dự án phần mềm có quy mô vừa và nhỏ trong môi trường học thuật, tuân thủ nghiêm ngặt chu kỳ Sprint 2 tuần.
  • Xây dựng ma trận tính điểm Story Point rõ ràng và hệ thống hóa 41 nhiệm vụ cụ thể từ Product Backlog sang Sprint Backlog (bao gồm việc phân loại rõ ràng giữa Task, Spike nghiên cứu kỹ thuật và Bug sửa lỗi).
  • Thiết lập quy trình phát hành chuyên nghiệp thông qua việc lập Release Notes chi tiết và kiểm thử hồi quy qua từng vòng đời phát triển.

Hạn chế và hướng nghiên cứu tiếp

1. Hạn chế còn tồn tại

Căn cứ theo đánh giá tự thân của nhóm tác giả tại Chương 5, đề tài còn một số điểm chưa hoàn thiện:

  • Về tính năng phần mềm: Chưa hiện thực hóa chức năng quản lý danh mục phim yêu thích; chưa xây dựng phân hệ quản lý chương trình khuyến mãi; chưa áp dụng điểm thưởng tích lũy vào khấu trừ tiền vé; chưa hỗ trợ cơ chế đăng nhập một lần (SSO) qua Google hoặc Facebook; luồng thanh toán mới dừng ở mức mô phỏng giỏ hàng nội bộ, chưa tích hợp cổng thanh toán trực tuyến chính thức (Pay Online) hoặc thanh toán qua mã QR.
  • Về quy trình quản lý Scrum: Việc phân bổ khối lượng công việc giữa các thành viên đôi lúc chưa đồng đều; khâu quản lý và làm mịn Product Backlog chưa đạt độ tối ưu; sai số trong việc ước lượng chi phí ban đầu so với biến động thực tế.

2. Hướng phát triển

  • Tích hợp cổng thanh toán trực tuyến (Payment Gateway) và thanh toán tự động qua mã quét QR tĩnh/động.
  • Tích hợp giao thức OAuth 2.0 để hỗ trợ đăng nhập nhanh bằng tài khoản mạng xã hội (Google, Facebook).
  • Hoàn thiện hệ thống bảo mật dữ liệu, phân quyền đa cấp chuyên sâu (Role-Based Access Control) và tối ưu hóa hệ thống để đưa vào khai thác thương mại thực tế.

Giá trị tham khảo

Tài liệu khóa luận môn học này mang lại giá trị thực tiễn cao cho:

  1. Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Là tài liệu tham khảo cụ thể về cách lập tài liệu dự án theo chuẩn Scrum, cách viết Product Roadmap, Product Vision, phân rã User Story và xây dựng bảng Sprint Backlog chuẩn mực.
  2. Nhóm phát triển phần mềm theo mô hình MVC: Cung cấp thiết kế cơ sở dữ liệu quan hệ mẫu gồm 17 bảng cho bài toán rạp chiếu phim, cùng giải pháp tổ chức kiến trúc ứng dụng ASP.NET MVC kết nối Microsoft SQL Server.
  3. Người học quản trị dự án công nghệ: Tham khảo phương pháp định lượng chi phí dự án thông qua điểm nỗ lực Story Point, hệ số tập trung (Focus Factor) và vận tốc nhóm (Velocity).

Câu hỏi thường gặp

1. Dự án sử dụng công thức và những tham số nào để tính toán chi phí và thời gian thực hiện?

Dự án xác định tổng điểm toàn dự án là $REP = 114$ Story Points, vận tốc trung bình qua các Sprint là $30\text{ points/Sprint}$, suy ra thời gian dự kiến là 4 Sprint (tương đương 2 tháng). Với đội ngũ 3 thành viên, hệ số tập trung $FF = 0.45$ và hệ số quy đổi $1\text{ point} = 5\text{ man-days}$, tổng chi phí ngày công được tính bằng công thức: $114 / (5 \times 0.45) = 51\text{ man-days}$. Với đơn giá $50.000\text{ VNĐ/ngày công}$, chi phí ước tính là $51 \times 50.000\text{ VNĐ}$.

2. Ba bản phát hành (Release) của đề tài được phân chia mục tiêu như thế nào?

  • Release 1 (v1.1 - 23/10/2023): Hoàn thiện các tính năng cốt lõi cho quản trị viên (quản lý phim, phòng chiếu, lịch chiếu, người dùng) và cho phép khách hàng xem chi tiết phim cùng trailer.
  • Release 2 (v2.2 - 03/11/2023): Bổ sung chức năng đặt vé online, chọn ghế, quản lý giỏ hàng, xem lịch sử đặt vé và báo cáo thống kê doanh thu.
  • Release 3 (v3.2 - 10/11/2023): Hoàn thiện các tính năng nâng cao gồm quản lý bình luận phim, cập nhật hồ sơ cá nhân và tìm kiếm phim theo tên.

3. Cấu trúc cơ sở dữ liệu giải quyết bài toán đặt ghế rạp chiếu phim bằng các bảng nào?

Hệ thống sử dụng tổ hợp 5 bảng quan hệ gồm: PHONGCHIEU (thông tin phòng), LOAIPC (loại phòng 2D/3D), LOAIGHE (đơn giá theo loại ghế thường/VIP), GHECUAPC (cấu hình sơ đồ ghế vật lý trong từng phòng) và VE_GHE (vị trí ghế cụ thể được gắn với từng mã vé VEPHIM của khách hàng).

4. Những chức năng nào đã có trong kế hoạch (User Story/Planning) nhưng chưa được hoàn thiện trong 3 Sprint?

Các tính năng chưa được hiện thực hóa bao gồm: Đánh dấu danh mục phim yêu thích (TV004), Quản lý đánh giá/bình luận nâng cao cho quản lý (QL004), Đổi mật khẩu tài khoản (TV009), Tích hợp cổng thanh toán trực tuyến (Pay Online), Áp dụng điểm thưởng và Đăng nhập bằng Google/Facebook.

5. Yêu cầu môi trường và các bước cài đặt để chạy thử nghiệm phần mềm là gì?

Hệ thống yêu cầu cài đặt Microsoft SQL Server (2019 hoặc 2022) và Microsoft Visual Studio (bản 2019 được khuyến nghị). Quy trình khởi chạy gồm: thực thi tệp tin CNPMNC_DATA1.sql để khởi tạo CSDL, mở giải pháp CNPMNC_REPORT1.sln, cập nhật tên máy chủ tại chuỗi kết nối trong tệp Models/SQLData.cs, sau đó nhấn F5 để chạy ứng dụng. Tài khoản quản trị mặc định là admin với mật khẩu adminpad.


Kết luận

Đề tài "Hệ Thống Đặt Vé Xem Phim Theo Tiến Trình Scrum" đã hoàn thành việc xây dựng một ứng dụng web bán vé xem phim trực tuyến hoàn chỉnh dựa trên kiến trúc ASP.NET MVC và CSDL Microsoft SQL Server. Thông qua 3 chu kỳ Sprint kéo dài trong 10 tuần, nhóm tác giả đã vận dụng bài bản các nguyên tắc của khung làm việc Scrum từ khâu lập Product Backlog, ước lượng Story Point đến việc bàn giao và viết Release Notes cho 3 bản phát hành. Dù vẫn còn một số hạn chế về tích hợp cổng thanh toán thực tế và các tính năng mở rộng, báo cáo là tài liệu tham khảo có cấu trúc chặt chẽ và giá trị ứng dụng cao cho sinh viên ngành Công nghệ thông tin.