Phân Tích Thư Mục Và Nội Dung Giáo Trình: Cơ Sở Công Nghệ Phần Mềm

Tổng quan về giáo trình

Giáo trình Cơ sở Công nghệ Phần mềm do Nhà xuất bản Khoa học và Kỹ thuật ấn hành, do TS. Lương Mạnh Bá chủ biên cùng tập thể tác giả: Lương Thanh Bình, Cao Tuấn Dũng, Nguyễn Thị Thu Trang và Lê Đức Trung biên soạn. Công trình này được hình thành dưới sự hỗ trợ chuyên môn của Bộ môn Công nghệ Phần mềm và Viện Công nghệ Thông tin và Truyền thông – Trường Đại học Bách khoa Hà Nội, với sự định hướng học thuật ban đầu từ PGS. TS. Nguyễn Ngọc Bình. Trong chương trình đào tạo bậc đại học khối ngành Công nghệ Thông tin, môn học giữ vị trí kiến thức cơ sở ngành cốt lõi, chuyển tiếp từ kỹ năng lập trình căn bản sang kỹ nghệ chế tác hệ thống phần mềm quy mô lớn.

Mục tiêu học tập của giáo trình nhằm trang bị cho người học hệ thống lý thuyết nền tảng và phương pháp luận kỹ thuật trong lĩnh vực công nghệ phần mềm; bao gồm các khái niệm bản chất, quy trình phát triển, các mô hình vòng đời chế tác, cũng như phương pháp quản lý dự án theo các chuẩn kỹ thuật quốc tế.

Giáo trình có cấu trúc tổng thể gồm 6 phần với 13 chương. Phương pháp tiếp cận đi từ việc định nghĩa bản chất sản phẩm phần mềm, phân tích quy trình và mô hình phát triển, mở rộng sang quản lý dự án (mô hình 4P), sau đó đi tuần tự qua các giai đoạn kỹ thuật: phân tích yêu cầu, thiết kế kiến trúc - chương trình, kiểm thử và bảo trì, cuối cùng là các tiêu chuẩn công nghiệp hiện đại.

Điểm đặc sắc của giáo trình là hệ thống hóa các tài liệu giảng dạy và nghiên cứu quốc tế (chủ yếu là các Textbook tiếng Anh) kết hợp bộ bài giảng được hiệu chỉnh liên tục từ năm 2001 tại Đại học Bách khoa Hà Nội, mang lại một tài liệu tiếng Việt cô đọng, bám sát các tiêu chuẩn học thuật của IEEE, ISO và CMMI.


Nội dung kiến thức cốt lõi

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

Cấu trúc nội dung 13 chương của giáo trình được tổ chức tuần tự theo logic phát triển và quản trị hệ thống phần mềm:

  • Phần 1: Khái niệm về phần mềm và Quy trình chế tác phần mềm (Chương 1 và Chương 2): Phân tích định nghĩa phần mềm theo Pressman [Pres97] (bao gồm mã lệnh chương trình, cấu trúc dữ liệu và tài liệu kỹ thuật); mô hình cấu trúc 4 phần của phần mềm; hai góc nhìn cấu trúc (phân cấp và thủ tục); các tiêu chí đánh giá chất lượng (tiêu chí cơ bản, hiệu quả xử lý thời gian/không gian, tính dễ hiểu); 14 biểu hiện của cuộc khủng hoảng phần mềm. Chương 2 định nghĩa công nghệ phần mềm theo Bauer [BAU69] và chuẩn IEEE [IEEE93]; mô hình 4 tầng công nghệ phần mềm (Chất lượng, Quy trình, Phương pháp, Công cụ); giới thiệu 10 mô hình phát triển phần mềm tiêu biểu (Mô hình tuyến tính/thác nước của Boehm, Bản mẫu/Prototyping, RAD, Gia tăng/Incremental, Xoắn ốc/Spiral, Phát triển đồng thời, Lắp ráp thành phần, Kỹ thuật thế hệ 4/4GT, Phương pháp hình thức/CleanRoom).
  • Phần 2: Quản lý dự án phần mềm và Các kỹ năng thực tiễn (Chương 3 và Chương 4): Xây dựng khung quản trị 4P (Con người - People, Sản phẩm - Product, Quy trình - Process, Dự án - Project). Trình bày 5 nhóm tác nhân tham gia dự án; 3 mô hình tổ chức đội của Mantei (DD, CD, CC) và 4 mô hình của Constantine (Closed, Random, Open, Synchronous); cấu trúc Chief Programmer Team của Harlan Mills và Baker; kỹ thuật điều phối theo nghiên cứu của Kraut và Streeter; nguyên tắc quản trị W52H của Boehm. Chương 4 đi sâu vào quy trình quản lý rủi ro (đo lường bộ ba $[r_i, l_i, x_i]$), quản lý chất lượng, quản lý cấu hình và quản lý phiên bản.
  • Phần 3: Phân tích và mô hình hóa yêu cầu (Chương 5 và Chương 6): Trình bày lý thuyết hệ thống, các phương pháp tiếp cận mô hình hóa hệ thống, kỹ thuật thu thập, phân tích và đặc tả yêu cầu người dùng, cùng các công cụ hỗ trợ đặc tả.
  • Phần 4: Quá trình thiết kế hệ thống (Chương 7 và Chương 8): Phân chia thành hai giai đoạn kỹ thuật độc lập: thiết kế kiến trúc tổng thể hệ thống (Chương 7) và thiết kế chi tiết chương trình, thuật toán, giao diện (Chương 8).
  • Phần 5: Kiểm thử và bảo trì phần mềm (Chương 9 và Chương 10): Trình bày quy trình, chiến lược và kỹ thuật kiểm thử logic bên trong và chức năng bên ngoài (Chương 9); các hình thức và phương pháp bảo trì phần mềm nhằm duy trì vòng đời hệ thống (Chương 10).
  • Phần 6: Các tiêu chuẩn và quy trình phát triển mở rộng (Chương 11, 12, 13): Khảo sát các tiêu chuẩn ISO về chế tác phần mềm, mô hình năng lực CMMI, Quy trình phát triển hợp nhất (Rational Unified Process - RUP) và quy trình linh hoạt (Agile).

Progression logic (logic tiến trình) của tài liệu vận hành chặt chẽ: Định hình nhận thức về bản chất sản phẩm và quy trình $\rightarrow$ Thiết lập tổ chức quản trị dự án $\rightarrow$ Thu thập yêu cầu $\rightarrow$ Thiết kế cấu trúc $\rightarrow$ Kiểm thử, bàn giao $\rightarrow$ Bảo trì và chuẩn hóa chất lượng.

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

  • Lý thuyết nền tảng (Fundamental theories): Lý thuyết vòng đời phần mềm (Software Life Cycle); lý thuyết khủng hoảng phần mềm do chênh lệch chi phí phần cứng/phần mềm; lý thuyết hệ thống thông tin.
  • Nguyên tắc cốt lõi (Core principles): Nguyên tắc tiếp cận phân tầng trong công nghệ phần mềm; nguyên tắc phân rã vấn đề (chia để trị); nguyên tắc W52H (Why, What, When, Who, Where, How, How much); mối quan hệ nhân quả và chu kỳ dịch chuyển giữa mô thức Sản phẩm và mô thức Quy trình.
  • Khung làm việc chuẩn (Essential frameworks): Khung quy trình chung (Common process framework) với các hoạt động khung và hoạt động hỗ trợ (umbrella activities); khung phân loại cấu trúc tổ chức nhân sự của Mantei và Constantine; khung phân tích rủi ro dựa trên xác suất và mức độ tác động.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Kỹ năng lựa chọn và áp dụng mô hình phát triển phần mềm phù hợp với tính chất dự án; kỹ năng phân rã và thiết kế kiến trúc/thủ tục phần mềm; kỹ năng lập tài liệu kỹ thuật đạt chuẩn (đặc tả yêu cầu, thiết kế, điều kiện kiểm thử).
  • Kỹ năng phân tích (Analytical skills): Kỹ năng đánh giá định tính và định lượng các tiêu chí chất lượng phần mềm; kỹ năng nhận diện và phân loại rủi ro (dự án, kỹ thuật, nghiệp vụ); kỹ năng phân tích luồng thông tin nghiệp vụ.
  • Kỹ năng thực hành (Practical competencies): Kỹ năng tổ chức và điều phối nhân sự theo các mô hình đội dự án; kỹ năng quản lý cấu hình, theo dõi lỗi và quản lý phiên bản mã nguồn trong môi trường nhóm.

Phương pháp giảng dạy và học tập

Phương pháp tiếp cận sư phạm (Pedagogical approach)

Giáo trình áp dụng phương pháp tiếp cận diễn dịch từ nguyên lý tổng quát đến kỹ thuật chi tiết. Các khái niệm trừu tượng trong kỹ nghệ phần mềm được trực quan hóa thông qua hệ thống sơ đồ: mô hình phân tầng, biểu đồ phân cấp hệ thống, sơ đồ khối quy trình (khung quy trình chung, mô hình RAD, mô hình xoắn ốc, quy trình quản lý rủi ro). Nội dung đi kèm việc đối sánh lý thuyết giúp người học hiểu rõ ưu nhược điểm và phạm vi áp dụng của từng phương pháp luận.

Bài tập và phân tích tình huống (Case studies & Practical exercises)

  • Nội dung tình huống: Tích hợp 14 bài toán khó khăn thực tế trong sản xuất phần mềm và 10 nguyên nhân cốt lõi gây thất bại dự án làm cơ sở cho các buổi thảo luận tình huống quản trị.
  • Bài tập thực hành: Phân rã phạm vi phần mềm theo phương pháp "chia để trị"; thiết lập ma trận rủi ro theo bộ ba $[r_i, l_i, x_i]$; xây dựng cấu trúc tổ chức đội dự án dựa trên 7 yếu tố quyết định của Mantei; lựa chọn mô hình vòng đời phát triển cho các bài toán nghiệp vụ cụ thể.

Phương pháp đánh giá và hướng dẫn tự học

  • Phương pháp đánh giá: Kết hợp đánh giá lý thuyết qua các kỳ thi tự luận/vấn đáp về khái niệm chuẩn hóa và đánh giá thực hành thông qua bài tập lớn (xây dựng tài liệu đặc tả yêu cầu SRS, tài liệu thiết kế kiến trúc ADD, kế hoạch quản lý dự án mô phỏng).
  • Hướng dẫn tự học: Người học cần nghiên cứu nội dung tuần tự từ Phần 1 đến Phần 6; sử dụng danh sách câu hỏi kiểm tra rủi ro (Risk item checklist theo đề xuất của Boehm) để tự rà soát kiến thức; đối chiếu kiến thức lý thuyết trong giáo trình với các tài liệu chuẩn quốc tế và bài giảng trực tuyến của các trường đại học lớn theo gợi ý của nhóm tác giả.

Điểm nổi bật và cập nhật

  • Bối cảnh biên soạn và tính chuẩn hóa: Giáo trình được xây dựng trên cơ sở chỉnh lý tài liệu giảng dạy liên tục từ năm 2001 tại Viện Công nghệ Thông tin và Truyền thông – Đại học Bách khoa Hà Nội. Sách giải quyết vấn đề thiếu hụt tài liệu chuyên khảo bằng tiếng Việt có hệ thống chuẩn mực vào đầu thế kỷ XXI.
  • Hệ thống hóa các trường phái lý thuyết quốc tế: Tài liệu trích dẫn và tổng hợp trực tiếp các công trình kinh điển trong ngành kỹ nghệ phần mềm:
    • Định nghĩa và phân loại của Pressman (1997), Bauer (1969), chuẩn IEEE (1993).
    • Mô hình thác nước, mô hình xoắn ốc và nguyên tắc quản trị W52H của Barry Boehm.
    • Các mô hình cấu trúc tổ chức đội phần mềm của Marilyn Mantei, Larry Constantine, Harlan Mills và Terry Baker.
    • Kết quả nghiên cứu thực nghiệm trên 65 dự án phần mềm của Robert Kraut và Lynn Streeter về hiệu quả của các kỹ thuật điều phối và giao tiếp.
  • Tích hợp xu hướng kỹ thuật hiện đại: Ngoài các mô hình truyền thống, giáo trình cập nhật các phương pháp luận tiên tiến gồm: Kỹ thuật phát triển ứng dụng nhanh (RAD), Kỹ thuật lắp ráp hướng thành phần, Phương pháp hình thức (CleanRoom), chuẩn CMM/CMMI, Quy trình Hợp nhất RUP và phương pháp phát triển phần mềm linh hoạt (Agile).
  • Liên hệ thực tiễn sản xuất phần mềm: Đưa ra các phân tích cụ thể về sự chuyển dịch chi phí giữa phần cứng và phần mềm từ năm 1955 đến sau 1970, phân loại chi tiết các loại rủi ro nghiệp vụ và đưa ra 10 nguyên tắc trong quản trị dự án thực tế.

Đối tượng sử dụng giáo trình

  • Sinh viên đại học: Giáo trình được biên soạn chuyên biệt cho sinh viên năm thứ ba và năm thứ tư chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Hệ thống Thông tin và Khoa học Máy tính.
  • Yêu cầu kiến thức tiên quyết (Prerequisites): Người học cần hoàn thành các học phần cơ sở:
    • Kỹ thuật lập trình và ngôn ngữ lập trình (hướng thủ tục hoặc hướng đối tượng).
    • Cấu trúc dữ liệu và giải thuật.
    • Cơ sở dữ liệu và Kiến trúc máy tính căn bản.
  • Giảng viên: Sử dụng làm giáo trình chính hoặc tài liệu tham khảo khung để xây dựng đề cương chi tiết, bài giảng lý thuyết và hệ thống đồ án môn học cho các môn Công nghệ Phần mềm, Nhập môn Kỹ nghệ Phần mềm, Quản lý Dự án Công nghệ Thông tin.
  • Kỹ sư và người tự học: Tài liệu cung cấp tài liệu tham khảo cho các kỹ sư phần mềm (practitioners), trưởng nhóm kỹ thuật và nhà quản lý dự án trong doanh nghiệp muốn chuẩn hóa quy trình sản xuất theo các tiêu chuẩn quốc tế (IEEE, ISO, CMMI).

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

1. Giáo trình này phù hợp với ai?
Tài liệu được thiết kế làm giáo trình học tập chính khóa cho sinh viên năm thứ ba và năm thứ tư ngành Công nghệ Thông tin, đồng thời là tài liệu tham khảo chuẩn cho giảng viên và kỹ sư phần mềm đang làm việc tại các doanh nghiệp.

2. Cần chuẩn bị những kiến thức nền tảng nào trước khi học?
Người học cần nắm vững kỹ năng lập trình, cấu trúc dữ liệu, giải thuật và các khái niệm cơ bản về hệ cơ sở dữ liệu để có thể tiếp thu các phương pháp thiết kế và mô hình hóa hệ thống.

3. Điểm khác biệt của giáo trình so với các tài liệu dịch tóm lược là gì?
Giáo trình tổng hợp có hệ thống các lý thuyết quốc tế chuẩn mực (Pressman, Boehm, IEEE), tích hợp dữ liệu nghiên cứu thực nghiệm (Kraut & Streeter) và đúc kết kinh nghiệm giảng dạy từ năm 2001 tại Đại học Bách khoa Hà Nội, trình bày bằng tiếng Việt cô đọng, có cấu trúc chặt chẽ.

4. Làm thế nào để tự học giáo trình này đạt hiệu quả cao?
Người học nên học tuần tự theo 6 phần; kết hợp vẽ lại các sơ đồ kiến trúc/quy trình; ứng dụng các nguyên tắc (như 4P, W52H, công thức rủi ro) vào các bài tập phân tích tình huống thực tế hoặc các bài tập lớn mô phỏng dự án.

5. Có tài liệu bổ trợ nào được khuyến nghị kèm theo giáo trình không?
Nhóm tác giả khuyến nghị người học tham khảo thêm các bộ Textbook chuyên sâu bằng tiếng Anh (như các ấn bản của Roger S. Pressman, Ian Sommerville), tài liệu chuẩn IEEE/ISO, cùng các nguồn học liệu từ website của các trường đại học quốc tế.


Kết luận

Giáo trình Cơ sở Công nghệ Phần mềm của nhóm tác giả Lương Mạnh Bá (Chủ biên), Lương Thanh Bình, Cao Tuấn Dũng, Nguyễn Thị Thu Trang và Lê Đức Trung là một tài liệu học thuật có giá trị chuẩn hóa cao trong đào tạo ngành Công nghệ Thông tin tại Việt Nam. Tác phẩm đã hệ thống hóa toàn diện các tri thức cốt lõi từ bản chất sản phẩm, mô hình vòng đời, kỹ thuật phân tích - thiết kế - kiểm thử đến phương pháp luận quản trị dự án 4P và các tiêu chuẩn công nghiệp quốc tế.

Lộ trình học tập đề xuất: Bắt đầu từ việc nắm vững bản chất phần mềm và 10 mô hình quy trình (Phần 1) $\rightarrow$ Tiếp cận phương pháp quản trị dự án và rủi ro (Phần 2) $\rightarrow$ Thực hành phân tích, đặc tả và thiết kế hệ thống (Phần 3 & 4) $\rightarrow$ Nắm vững quy trình kiểm thử, bảo trì (Phần 5) $\rightarrow$ Nghiên cứu các chuẩn nâng cao ISO, CMMI, RUP, Agile (Phần 6). Để hoàn thiện kiến thức, người học nên kết hợp giáo trình này với các Textbook chuyên ngành quốc tế và các bài tập dự án thực tế.