TỔNG QUAN TÀI LIỆU HỌC TẬP CÔNG NGHỆ PHẦN MỀM (MÃ HỌC PHẦN: CMP101)

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

Tài liệu học tập Công nghệ phần mềm (mã học phần: CMP101) do ThS. Dương Thành Phết biên soạn, được phát hành năm 2019 phục vụ công tác đào tạo tại Trường Đại học Công nghệ TP.HCM (HUTECH). Trong chương trình đào tạo ngành Công nghệ thông tin, học phần giữ vị trí khối kiến thức cơ sở ngành, thiết lập mối liên kết giữa kỹ năng lập trình căn bản với năng lực thiết kế, tổ chức và quản lý các dự án phần mềm ở quy mô thực tế.

Mục tiêu học tập của giáo trình tập trung trang bị cho người học hệ thống tri thức cơ sở về các đối tượng chính yếu trong kỹ nghệ phần mềm: quy trình công nghệ, phương pháp kỹ thuật thực hiện, phương pháp tổ chức quản lý, cùng hệ thống công cụ và môi trường triển khai. Sau khi hoàn thành học phần, sinh viên có khả năng phân tích, lựa chọn và vận dụng linh hoạt các mô hình vòng đời phát triển phần mềm, hiện thực hóa các giải pháp phần mềm đáp ứng nhu cầu thực tiễn của doanh nghiệp.

Giáo trình có kết cấu gồm 10 bài học lý thuyết, 3 phụ lục (Phụ lục A, Phụ lục B về tài liệu tham khảo mở rộng, Phụ lục C về quy trình RUP) và danh mục tài liệu tham khảo học thuật. Nội dung tiếp cận tuyến tính theo chu kỳ sống của phần mềm, bắt đầu từ giai đoạn xác định yêu cầu, phân tích mô hình hóa, thiết kế kiến trúc, tổ chức dữ liệu, xây dựng chương trình, kiểm thử, bảo trì, đến công tác quản trị dự án và chuẩn hóa quy trình. Điểm đặc thù của tài liệu là phân rã cấu trúc phần mềm thành ba thành phần kỹ thuật tương ứng (thành phần giao tiếp, thành phần dữ liệu, thành phần xử lý), gắn chặt lý thuyết với công cụ CASE và chuẩn mực đạo đức nghề nghiệp.


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

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

Cấu trúc giáo trình phân bổ qua 10 bài học chuyên đề, trong đó các khối kiến thức trọng tâm gồm:

  • Bài 1: Giới thiệu: Trình bày định nghĩa phần mềm, lớp phần mềm, 6 thuộc tính chất lượng phần mềm, nguồn gốc cuộc khủng hoảng phần mềm năm 1968, các mô hình chu kỳ sống (Thác nước, Bản mẫu, Xoắn ốc), phương pháp tiếp cận và chuẩn mực đạo đức nghề nghiệp của kỹ sư phần mềm.
  • Bài 2: Tác vụ phân tích & đặc tả yêu cầu: Khảo sát 11 khía cạnh phân tích hệ thống (phạm vi, nghiệp vụ mở rộng, bảo mật phân quyền theo vai trò, tốc độ phản hồi qua thông số TPM và băng thông, chi phí vận hành, tính sẵn dùng, yếu tố con người, tích hợp cơ sở dữ liệu, quy mô và hạ tầng mạng); phân loại yêu cầu chức năng và phi chức năng; kỹ thuật lập mô hình hóa (FDD, DFD, Prototype, mô hình hướng đối tượng).
  • Bài 3 & Bài 4: Tác vụ thiết kế phần mềm và tổ chức dữ liệu: Trình bày kiến trúc phần mềm, phương pháp thiết kế hướng chức năng, hướng đối tượng; quá trình chuyển giao từ mô hình dữ liệu quan niệm sang mô hình luận lý và vật lý bằng phương pháp trực tiếp hoặc gián tiếp thông qua sơ đồ thực thể kết hợp (ERD).
  • Bài 5: Tác vụ thiết kế giao diện: Nguyên tắc phân loại và xây dựng màn hình thực đơn chính (menu), cấu trúc chuẩn hóa cho màn hình tra cứu thông tin và các hình thức màn hình nhập liệu (dạng danh sách, hồ sơ, phiếu ghi nhận).
  • Bài 6 & Bài 7: Xây dựng chương trình và kiểm thử phần mềm: Tiêu chí đánh giá môi trường lập trình (tính mô-đun hóa, cấu trúc dữ liệu, tài liệu kỹ thuật); quy trình rà soát mã nguồn (Design and Code Review); các kỹ thuật kiểm thử hộp đen, hộp trắng, hộp xám cùng các cấp độ kiểm thử chức năng, tích hợp, hệ thống và chấp nhận (Acceptance Test).
  • Bài 8, Bài 9 & Bài 10: Vận hành, quản trị dự án và quy trình phần mềm: Quy trình lập kế hoạch bảo trì; hoạt động quản trị dự án gồm ước lượng kích thước phần mềm, quản lý cấu hình, kiểm soát rủi ro; giới thiệu các khung quy trình tiêu chuẩn công nghiệp gồm ISO, CMM/CMMI và Rational Unified Process (RUP).

Logic triển khai nội dung tuân thủ chặt chẽ tiến trình kỹ thuật hệ thống: tiếp nhận bài toán nghiệp vụ thế giới thực $\rightarrow$ mô hình hóa yêu cầu $\rightarrow$ thiết kế giải pháp $\rightarrow$ hiện thực mã nguồn $\rightarrow$ kiểm chứng chất lượng $\rightarrow$ bàn giao vận hành và chuẩn hóa quản lý.

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

Giáo trình xây dựng hệ thống lý thuyết dựa trên các định nghĩa học thuật kinh điển về Công nghệ phần mềm của F. L. Bauer (1969), C. Ghezzi (1991), tiêu chuẩn IEEE (1993), I. Sommerville (1995), M. Kawamura (1995) và R. S. Pressman (1995). Các nguyên lý cốt lõi được định hình xuyên suốt tài liệu bao gồm: nguyên lý "chia để trị" (divide-and-conquer) trong phân rã chức năng; nguyên lý che giấu thông tin (information hiding) và đóng gói dữ liệu trong thiết kế hướng đối tượng; cấu trúc trừu tượng hóa ba thành phần phần mềm (Giao diện - Xử lý - Dữ liệu) cùng cơ chế luân chuyển dữ liệu giữa bộ nhớ chính và bộ nhớ phụ. Về mặt quản trị, giáo trình xác lập khung tham chiếu đối chuẩn năng lực tổ chức phần mềm dựa trên các mô hình CMM/CMMI, ISO và quy trình RUP.

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 (FDD), sơ đồ luồng dữ liệu (DFD), sơ đồ thực thể kết hợp (ERD) và sơ đồ lớp đối tượng (Class Diagram); thiết kế biểu mẫu nhập/xuất và cơ chế tra cứu dữ liệu; áp dụng kỹ thuật kiểm thử hộp đen/hộp trắng để phát hiện lỗi mã nguồn.
  • Kỹ năng phân tích (Analytical skills): Phân tích ranh giới phạm vi dự án; bóc tách quy tắc nghiệp vụ (business rules); định lượng yêu cầu phi chức năng về tốc độ, bảo mật, thời gian đáp ứng; phân tích điểm nghẽn cổ chai (bottleneck) hệ thống bằng công cụ giám sát hiệu năng.
  • Năng lực thực tiễn (Practical competencies): Thực hiện quy trình khảo sát hiện trạng thực tế bằng phương pháp quan sát, phỏng vấn và thu thập biểu mẫu; lập tài liệu đặc tả yêu cầu; tham gia quy trình rà soát thiết kế, lập trình và quản lý phiên bản trong môi trường phát triển chuyên nghiệp.

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 tiếp cận sư phạm kết hợp giữa diễn giải nguyên lý kỹ thuật và mô hình hóa trực quan. Các khối kiến thức trừu tượng được cụ thể hóa bằng lưu đồ quy trình, bảng biểu đối chiếu và sơ đồ kiến trúc, cho phép người học nắm bắt bản chất mối quan hệ giữa thông tin đầu vào, thao tác xử lý và kết quả chuyển giao qua từng giai đoạn phát triển phần mềm.

Hệ thống bài tập và nghiên cứu tình huống được xây dựng dựa trên các lớp bài toán thực tế được phân loại cụ thể tại Bài 1, bao gồm: hệ thống quản lý mượn/trả sách thư viện trường học, bài toán phân quyền người dùng (quản trị, thủ thư, độc giả), quản lý cửa hàng kinh doanh dược phẩm/vật liệu xây dựng, xếp lịch biểu thi đấu và trò chơi logic. Các bài tập thực hành yêu cầu sinh viên trực tiếp vẽ sơ đồ DFD, thiết kế thực thể ERD, thiết lập ràng buộc nghiệp vụ cho biểu mẫu nhập liệu và viết kịch bản kiểm thử (test case) cho các hàm xử lý tính toán.

Phương pháp đánh giá học phần CMP101 được xác định rõ ràng với hai cấu phần:

  • Điểm quá trình (trọng số 30%): Do giảng viên trực tiếp quyết định dựa trên mức độ chuyên cần, kết quả thực hiện bài tập trên lớp, bài tập về nhà và các hoạt động đánh giá định kỳ theo quy chế đào tạo.
  • Điểm thi kết thúc học phần (trọng số 70%): Tổ chức dưới hình thức thi trắc nghiệm khách quan trong thời lượng 60 phút, nội dung bao quát toàn diện các kiến thức từ Bài 1 đến Bài 10.

Để tiếp nhận nội dung học phần hiệu quả, tài liệu đưa ra chỉ dẫn tự học cụ thể: sinh viên cần đọc trước mục tiêu và phần tóm tắt của từng bài trước khi lên lớp; hoàn thành việc trả lời các câu hỏi ôn tập sau mỗi mục nội dung; giải quyết các bài tập rèn luyện ở cuối bài học và tự mở rộng tra cứu thêm các chủ đề liên quan trong phần phụ lục.


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

Tài liệu học tập thể hiện tính cập nhật và giá trị học thuật thông qua việc hệ thống hóa toàn diện các công cụ hỗ trợ công nghệ phần mềm (CASE tools) và môi trường phát triển phần mềm (SDE) phổ biến trong công nghiệp. Giáo trình phân loại cụ thể công cụ tương ứng với từng giai đoạn tác vụ:

  • Giai đoạn phân tích và mô hình hóa: WinA&D, Analyst Pro, Rational Rose.
  • Giai đoạn thiết kế dữ liệu và cấu trúc: Power Designer, Oracle Designer, Rational Rose.
  • Giai đoạn lập trình và quản lý phiên bản: Microsoft Visual Studio .NET (Basic, C#, C++), Borland.
  • Giai đoạn kiểm chứng và tự động hóa kiểm thử: WinRunner, QuickTestPro.
  • Giai đoạn tổ chức và quản trị dự án: Microsoft Project, Microsoft Visio.

Nội dung giáo trình phản ánh các xu hướng công nghệ thực tiễn khi đi sâu phân tích các bài toán phần mềm phân tán, tối ưu hóa giao dịch trên hệ quản trị cơ sở dữ liệu lớn (như chuyển dịch từ MS Access sang MS SQL Server), kỹ thuật kết nối dữ liệu kế thừa qua ODBC, và phương pháp xác định điểm nghẽn hiệu năng hệ thống bằng công cụ Windows NT Performance Monitor.

Đặc biệt, tài liệu tích hợp chuẩn mực quản lý chất lượng quốc tế với việc trình bày mô hình độ trưởng thành năng lực CMM/CMMI, tiêu chuẩn ISO, đồng thời dành riêng Phụ lục C để mô tả chi tiết quy trình phát triển hợp nhất RUP (Rational Unified Process). Song song với khía cạnh kỹ thuật, tài liệu cập nhật 8 quy tắc ứng xử chuẩn mực (Code of Ethics) do các tổ chức nghề nghiệp quốc tế ban hành, định hướng kỹ sư phần mềm về năng lực, sự tin cậy, tôn trọng tài sản trí tuệ và chống lạm dụng hệ thống máy tính.


Đố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ụ trực tiếp cho sinh viên bậc đại học thuộc các ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin tại Trường Đại học Công nghệ TP.HCM (HUTECH). Học phần CMP101 thường được bố trí trong giai đoạn năm thứ hai hoặc năm thứ ba của khung chương trình đào tạo.

Để tiếp thu tốt nội dung tài liệu, người học bắt buộc phải đáp ứng các yêu cầu về kiến thức tiền đề bao gồm: đã hoàn thành các học phần về ngôn ngữ lập trình căn bản, có kinh nghiệm cài đặt các ứng dụng phần mềm cơ bản, hiểu và vận dụng được cấu trúc dữ liệu và giải thuật, đồng thời nắm vững các khái niệm nền tảng về kiến trúc máy tính và mạng máy tính.

Đối với giảng viên, tài liệu là căn cứ khung để xây dựng đề cương chi tiết bài giảng, thiết kế kế hoạch giảng dạy 10 bài học trên lớp, tổ chức các bài tập kiểm tra đánh giá quá trình và xây dựng ngân hàng câu hỏi phục vụ kỳ thi trắc nghiệm kết thúc học phần 60 phút. Đối với người tự học và kỹ sư phần mềm mới bắt đầu, giáo trình cung cấp hệ thống thuật ngữ chuẩn hóa, các mô hình quy trình và phương pháp luận kỹ thuật phục vụ việc tra cứu, chuẩn hóa quy trình phân tích và thiết kế hệ thống thông tin.


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

1. Giáo trình này phù hợp với ai?
Tài liệu được thiết kế chuyên biệt cho sinh viên đại học ngành Công nghệ thông tin theo học học phần Công nghệ phần mềm (CMP101), đồng thời phù hợp làm tài liệu tham khảo cho người học cần hệ thống hóa các nguyên lý phân tích, thiết kế, kiểm thử và quản trị dự án phần mềm theo quy chuẩn kỹ thuật.

2. Cần kiến thức nền nào để học?
Người học cần tích lũy các kiến thức tiền đề về ngôn ngữ lập trình, kỹ năng xây dựng chương trình ứng dụng cơ bản, nắm vững cấu trúc dữ liệu - giải thuật, có hiểu biết về kiến trúc máy tính và nguyên lý hoạt động của mạng máy tính.

3. Điểm khác biệt với giáo trình khác?
Giáo trình mô hình hóa cấu trúc phần mềm rất chi tiết thành 3 thành phần kỹ thuật gắn liền với hệ thống hàm chuyên biệt (hàm nhập/xuất, hàm đọc/ghi, hàm kiểm tra/xử lý); bóc tách cụ thể 11 khía cạnh phân tích yêu cầu; đồng thời kết hợp đối chiếu hệ thống công cụ CASE thương mại xuyên suốt mọi giai đoạn vòng đời phần mềm.

4. Làm sao để tự học hiệu quả?
Người học cần tuân thủ quy trình đọc trước mục tiêu và tóm tắt bài học, nghiên cứu nội dung chi tiết, trả lời các câu hỏi ôn tập sau mỗi mục, thực hiện đầy đủ bài tập thực hành cuối bài và nghiên cứu các chuyên đề mở rộng tại các phần phụ lục.

5. Có tài liệu bổ trợ nào kèm theo?
Tài liệu tích hợp sẵn hệ thống bài tập tại Phụ lục A, tài liệu đọc thêm tại Phụ lục B, hướng dẫn chi tiết về quy trình RUP tại Phụ lục C và danh mục các sách chuyên khảo tham khảo của các tác giả như R. S. Pressman, I. Sommerville ở cuối sách.


Kết luận (150 từ)

Tài liệu học tập Công nghệ phần mềm (CMP101) của ThS. Dương Thành Phết xác lập một hệ thống tri thức học thuật hoàn chỉnh, chuẩn hóa về mặt phương pháp luận trong việc xây dựng và quản trị sản phẩm phần mềm. Giá trị cốt lõi của giáo trình thể hiện ở sự cân bằng giữa lý thuyết nền tảng kỹ nghệ phần mềm và các chuẩn mực thực tế của ngành công nghiệp công nghệ thông tin.

Lộ trình học tập đề xuất cho người học bắt đầu từ việc nắm vững bản chất chu kỳ sống phần mềm (Bài 1), rèn luyện kỹ năng phân tích và mô hình hóa yêu cầu (Bài 2), làm chủ các kỹ thuật thiết kế kiến trúc, dữ liệu và giao diện (Bài 3-5), thực thi lập trình và kiểm chứng chất lượng (Bài 6-7), tiến tới quản trị vận hành, ước lượng dự án và áp dụng các mô hình quy trình chuẩn CMM/CMMI, RUP (Bài 8-10, Phụ lục C). Để hỗ trợ quá trình học tập, người học có thể khai thác các công cụ CASE hỗ trợ và gửi phản hồi chuyên môn trực tiếp về ban biên tập tài liệu học tập của nhà trường qua địa chỉ tailieuhoctap@hutech.vn.