TỔNG QUAN HỌC THUẬT VÀ NỘI DUNG GIÁO TRÌNH NHẬP MÔN KỸ NGHỆ PHẦN MỀM

Tổng quan về giáo trình (250-300 từ)

Giáo trình Nhập môn Kỹ nghệ phần mềm do TS. Nguyễn Văn Huân và ThS. Vũ Xuân Nam biên soạn năm 2011, trực thuộc Khoa Hệ thống Thông tin Kinh tế, Trường Đại học Công nghệ Thông tin và Truyền thông – Đại học Thái Nguyên. Tài liệu được thiết kế làm giáo trình cơ sở ngành cho sinh viên theo học các chuyên ngành Công nghệ thông tin và Hệ thống thông tin kinh tế ở bậc đại học.

Mục tiêu học tập của giáo trình là trang bị cho người học bức tranh toàn cảnh về ngành công nghệ phần mềm, bao gồm các quy trình phát triển, ý nghĩa và mối liên hệ giữa các công đoạn kỹ thuật, cách thức trình bày tài liệu kỹ thuật (sưu liệu), cùng vai trò của từng vị trí nhân sự trong nhóm dự án. Thông qua nội dung giảng dạy, người học nắm được các phương pháp thu thập yêu cầu, phân tích mô hình hóa, thiết kế kiến trúc – dữ liệu – giao diện, cài đặt mã nguồn và kiểm thử hệ thống.

Về cấu trúc và cách tiếp cận, giáo trình gồm 7 chương được sắp xếp tuần tự theo chu kỳ sống của phần mềm (Software Development Life Cycle - SDLC). Cách tiếp cận tập trung vào việc mô hình hóa phần mềm dựa trên kiến trúc 3 thành phần cốt lõi: thành phần giao tiếp (giao diện), thành phần dữ liệu và thành phần xử lý.

Điểm đặc sắc của giáo trình là tính cụ thể hóa trong phương pháp luận: chuyển đổi các quy định nghiệp vụ từ thế giới thực sang các bảng đặc tả kỹ thuật, hệ thống biểu mẫu và ma trận quy tắc tính toán có thể cài đặt trực tiếp trên máy tính.


Nội dung kiến thức cốt lõi (500-600 từ)

                       QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (SDLC)

Các chương và chủ đề chính

  • Chương 1: Tổng quan về công nghệ phần mềm: Trình bày định nghĩa chương trình, phần mềm, phân loại phần mềm (hệ thống và ứng dụng) và 9 lớp phần mềm nghiệp vụ. Phân tích 6 yếu tố chất lượng phần mềm (tính đúng đắn, tính tiến hóa, tính hiệu quả, tính tiện dụng, tính tương thích, tính tái sử dụng). Trình bày lịch sử cuộc khủng hoảng phần mềm thập niên 1960; các định nghĩa học thuật của F.L. Bauer (1969), C. Ghezzi (1991), I. Sommerville (1995), M. Kawamura (1995), R.S. Pressman (1995). Giới thiệu các mô hình phát triển (Thác nước các biến thể từ 2 đến 5 giai đoạn, Mô hình Bản mẫu, Mô hình Xoắn ốc) và hệ thống công cụ CASE.
  • Chương 2: Phân tích và đặc tả yêu cầu: Hướng dẫn phân tích phạm vi dự án, hạ tầng hiện hành, bảo mật theo vai trò, hiệu năng (giao dịch mỗi phút - TPM, băng thông, điểm nút thắt). Phân loại 21 nhóm yêu cầu chức năng và phi chức năng. Quy trình khảo sát và chuẩn hóa bảng đặc tả chức năng nghiệp vụ, bảng quy định/công thức và hệ thống biểu mẫu.
  • Chương 3: Thiết kế phần mềm: Trình bày kỹ thuật thiết kế kiến trúc phần mềm, thiết kế giao diện hội thoại (dialog window), phương pháp thiết kế hướng chức năng và hướng đối tượng.
  • Chương 4: Thiết kế dữ liệu: Trình bày kết quả và quy trình thiết kế dữ liệu bằng phương pháp trực tiếp và gián tiếp; tối ưu hóa tính đúng đắn, tốc độ truy xuất và dung lượng lưu trữ.
  • Chương 5: Thiết kế giao diện: Phân loại màn hình, quy trình thiết kế màn hình chính dạng thực đơn (menu), màn hình tra cứu (tiêu chuẩn, kết quả, thao tác) và màn hình nhập liệu.
  • Chương 6: Cài đặt: Phân tích tiêu chuẩn ngôn ngữ lập trình, tính mô đun hóa, giá trị sưu liệu, cấu trúc dữ liệu, phong cách lập trình cấu trúc và kỹ thuật đánh giá thiết kế – mã nguồn (Design and Code Review).
  • Chương 7: Kiểm thử phần mềm: Trình bày kỹ thuật kiểm thử hộp đen (phân vùng tương đương, bảng quyết định) và kiểm thử hộp trắng (bao phủ dòng lệnh, nhánh); các chiến lược kiểm thử đơn vị, tích hợp, hệ thống, chấp nhận và kiểm thử beta.

Kiến thức nền tảng được xây dựng

Giáo trình xây dựng nền tảng lý thuyết vững chắc dựa trên 3 trụ cột:

  1. Lý thuyết chu kỳ sống phần mềm: Bản chất phần mềm là sự mô phỏng các hoạt động của thế giới thực trên máy tính. Chu kỳ sống gồm các pha xác định, phát triển, kiểm thử và bảo trì với ranh giới chuyển giao đầu vào/đầu ra rõ ràng.
  2. Nguyên lý phân rã và mô hình hóa: Nguyên lý "chia để trị" trong phân tích hướng chức năng thông qua sơ đồ dòng dữ liệu (DFD), mô hình hóa dữ liệu quan hệ (ERD) và nguyên lý đóng gói thông tin trong hướng đối tượng (UML).
  3. Các độ đo kỹ thuật hệ thống: Xác định hiệu năng qua chỉ số TPM, độ trễ băng thông mạng, tài nguyên bộ nhớ chính/phụ và mức độ rủi ro bảo mật cho phép.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Xây dựng sơ đồ phân rã chức năng, vẽ DFD, thiết kế cơ sở dữ liệu quan hệ, thiết kế giao diện form/menu chuẩn và lập mã nguồn có cấu trúc mô đun hóa.
  • Kỹ năng phân tích (Analytical skills): Phân tích phạm vi dự án, xác định nút thắt hệ thống bằng công cụ giám sát hiệu năng, bóc tách quy tắc nghiệp vụ từ khảo sát thực tế và phân loại 21 nhóm yêu cầu phần mềm.
  • Kỹ năng thực hành (Practical competencies): Lập tài liệu đặc tả yêu cầu kỹ thuật theo mẫu chuẩn, thiết kế ma trận kiểm thử phần mềm (test case) cho kiểm thử hộp đen/hộp trắng và thực hiện rà soát mã nguồn.

Phương pháp giảng dạy và học tập (300-350 từ)

Giáo trình áp dụng phương pháp sư phạm kỹ thuật tuyến tính kết hợp đối sánh thực tiễn. Mỗi giai đoạn trong quy trình phát triển phần mềm đều được định nghĩa rõ ràng về ba yếu tố: Mục tiêu cần đạt, Kết quả nhận từ giai đoạn trước và Kết quả chuyển giao cho giai đoạn kế tiếp. Cách tiếp cận này giúp sinh viên hiểu rõ tính kế thừa dữ liệu giữa các khâu phân tích, thiết kế, lập trình và kiểm thử.

Hệ thống bài tập và nghiên cứu tình huống (case studies) được xây dựng xuyên suốt dựa trên các bài toán nghiệp vụ điển hình:

  • Hệ thống Quản lý thư viện: Phân rã chi tiết thành các vai trò Thủ thư (TT), Độc giả (ĐG), Quản lý độc giả (QLĐG); kèm theo các quy định kiểm tra thẻ, giới hạn số lượng mượn, công thức phạt trễ hạn theo khung thời gian (1.000đ/ngày từ ngày 1-5; 3.000đ/ngày từ ngày thứ 6 trở đi) và các biểu mẫu cụ thể như Phiếu mượn sách (TT_BM 1), Giấy báo quá hạn (TT_BM 2), Phiếu đăng ký làm thẻ (QLDG_BM 1).
  • Hệ thống tính lương: Xây dựng công thức tính lương văn phòng theo ngày công chuẩn và lương sản xuất theo đơn giá 3 công đoạn gia công.
  • Hệ thống xử lý toán học: Xây dựng quy tắc giải phương trình bậc hai và chuẩn hóa biểu thức phân số.

Về phương pháp đánh giá, giáo trình định hướng kiểm tra năng lực thông qua sản phẩm chuyển giao ở từng chặng: hồ sơ phân tích yêu cầu, bản thiết kế giao diện – dữ liệu, mã nguồn hoàn thiện và báo cáo kết quả kiểm thử lỗi. Đối với việc tự học, sinh viên sử dụng bảng phân loại chức năng và biểu mẫu quy định làm khung kiểm tra chéo (checklist) nhằm đánh giá độ đầy đủ của phần mềm tự phát triển.


Điểm nổi bật và cập nhật (250-300 từ)

Giáo trình tổng hợp và hệ thống hóa nhiều nội dung kỹ thuật mang tính thực tế cao tại thời điểm biên soạn:

                            HỆ THỐNG CÔNG CỤ CASE & SDE
  • Hệ thống hóa bảng phân loại lớp phần mềm: Giáo trình phân chia chi tiết 9 lớp phần mềm ứng dụng thực tế (Hỗ trợ giải bài tập, Trò chơi, Xếp lịch biểu, Xét tuyển, Bình chọn, Quản lý học sinh, Bán hàng, Quản lý thuê bao, Cho mượn).
  • Chuẩn hóa 21 nhóm yêu cầu phần mềm: Cung cấp cây phân loại hoàn chỉnh từ yêu cầu chức năng nghiệp vụ (lưu trữ, tra cứu, tính toán, kết xuất), yêu cầu chức năng hệ thống (môi trường, mô phỏng, tự động, phân quyền, sao lưu) đến yêu cầu phi chức năng (tiến hóa, tiện dụng, hiệu quả, tương thích, tái sử dụng, bảo trì).
  • Tích hợp kiến trúc kỹ thuật thực tế: Trình bày giải pháp giao tiếp phần mềm kế thừa qua trình điều khiển kết nối cơ sở dữ liệu ODBC, quản lý tải ứng dụng phân tán bằng Microsoft Transaction Server và công cụ kiểm soát nút thắt hệ thống Windows NT Performance Monitor.
  • Định danh chi tiết các công cụ CASE: Phân định rõ ràng các phần mềm hỗ trợ theo từng pha chuyên biệt: WinA&D và Analyst Pro cho phân tích; QuickUML, Power Designer, Oracle Designer cho thiết kế; Visual Studio/C++ cho lập trình; WinRunner cho kiểm thử; MS Project và Visio cho lập kế hoạch quản lý.

Đối tượng sử dụng giáo trình (200-250 từ)

Giáo trình được biên soạn phục vụ các nhóm đối tượng cụ thể trong đào tạo học thuật và ứng dụng kỹ thuật:

  • Sinh viên đại học: Dành cho sinh viên năm thứ hai hoặc năm thứ ba thuộc các ngành Công nghệ thông tin, Hệ thống thông tin, Kỹ thuật phần mềm và Khoa học máy tính bắt đầu tiếp cận môn học chuyên ngành kỹ nghệ phần mềm.
  • Điều kiện tiên quyết (Prerequisites): Người học cần hoàn thành các học phần nền tảng gồm Tin học đại cương, Cơ sở lập trình (ngôn ngữ C/C++ hoặc Visual Basic), Cấu trúc dữ liệu và giải thuật, và Cơ sở dữ liệu.
  • Giảng viên chuyên ngành: Sử dụng làm tài liệu giảng dạy chính thức, cung cấp khung cấu trúc chuẩn cho bài giảng lý thuyết, ngân hàng câu hỏi thảo luận và định hướng hướng dẫn sinh viên làm bài tập lớn, đồ án môn học.
  • Người tự học và chuyên viên phân tích tập sự: Cung cấp tài liệu tham khảo chuẩn mực về cách thiết lập tài liệu đặc tả yêu cầu, lập bảng quy tắc nghiệp vụ và phương pháp thiết kế màn hình/dữ liệu trong các dự án phát triển phần mềm ứng dụng.

Câu hỏi thường gặp (250-300 từ)

1. Giáo trình này phù hợp nhất với đối tượng người học nào?

Giáo trình phù hợp trực tiếp với sinh viên đại học ngành Công nghệ thông tin và Hệ thống thông tin kinh tế đang học môn Nhập môn Kỹ nghệ phần mềm hoặc Công nghệ phần mềm cơ bản.

2. Người học cần chuẩn bị kiến thức nền tảng nào trước khi học?

Cần nắm vững kỹ năng lập trình căn bản (hiểu về hàm, mảng, cấu trúc điều khiển), kiến thức về cơ sở dữ liệu quan hệ (bảng, khóa chính, khóa ngoại) và cấu trúc dữ liệu lưu trữ.

3. Điểm khác biệt của giáo trình so với các tài liệu lý thuyết khác là gì?

Giáo trình tập trung mạnh vào phương pháp luận biểu mẫu và quy tắc nghiệp vụ thực tế; hướng dẫn chi tiết cách lập bảng đặc tả yêu cầu, bảng quy định tính toán và chuyển hóa trực tiếp thành cấu trúc màn hình/hàm xử lý.

4. Làm thế nào để tự học giáo trình này hiệu quả?

Người học nên chọn một đề tài cụ thể (như Quản lý thư viện hoặc Quản lý bán hàng), sau đó bám sát quy trình từ Chương 1 đến Chương 7 để hoàn thiện lần lượt từng sản phẩm chuyển giao: Bảng đặc tả -> Mô hình DFD/ERD -> Thiết kế giao diện -> Kịch bản kiểm thử.

5. Giáo trình có đề xuất tài liệu bổ trợ nào không?

Giáo trình đề xuất học phần bổ trợ "Quản lý dự án xây dựng các hệ thống thông tin" cho mảng phương pháp tổ chức nhân sự, ước lượng chi phí rủi ro; đồng thời viện dẫn các tài liệu kinh điển của Sommerville, Pressman, Ghezzi và Bauer.


Kết luận (150 từ)

Giáo trình Nhập môn Kỹ nghệ phần mềm (Nguyễn Văn Huân, Vũ Xuân Nam, 2011) cung cấp một hệ thống tri thức hoàn chỉnh, chuẩn hóa về toàn bộ quy trình công nghệ phát triển phần mềm theo tiêu chuẩn kỹ thuật.

Lộ trình học tập đề xuất là tiếp cận tuần tự theo vòng đời phát triển hệ thống: từ việc nắm vững khái niệm chất lượng và mô hình chu kỳ sống (Chương 1), tiến hành phân tích và lập bảng đặc tả yêu cầu (Chương 2), thiết kế kiến trúc – dữ liệu – giao diện (Chương 3, 4, 5), đến chuẩn hóa phong cách cài đặt mã nguồn (Chương 6) và thực thi kiểm thử đa tầng (Chương 7).

Để mở rộng kiến thức, người học cần kết hợp nghiên cứu các tài liệu tham khảo chuyên sâu về kỹ nghệ phần mềm quốc tế cùng việc thực hành ứng dụng các công cụ CASE chuyên dụng trong môi trường dự án thực tế.