THÔNG TIN THƯ MỤC VÀ TỔNG HỢP NỘI DUNG GIÁO TRÌNH HỌC THUẬT

  • Tên giáo trình: Nhập môn Kỹ nghệ phần mềm
  • Tác giả: Nguyễn Văn Huân, Vũ Xuân Nam
  • Đơn vị công tác/Đào tạo: Trường Đại học Công nghệ Thông tin và Truyền thông – Khoa Hệ thống Thông tin Kinh tế
  • Địa điểm & Năm xuất bản: Thái Nguyên, 2011
  • Số trang tài liệu: 161 trang

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

Giáo trình Nhập môn Kỹ nghệ phần mềm được biên soạn bởi Nguyễn Văn Huân và Vũ Xuân Nam, phát hành năm 2011 phục vụ chương trình đào tạo bậc đại học tại Khoa Hệ thống Thông tin Kinh tế thuộc Trường Đại học Công nghệ Thông tin và Truyền thông (Đại học Thái Nguyên). Trong khung chương trình đào tạo ngành Công nghệ Thông tin và Hệ thống Thông tin Kinh tế, môn học này giữ vị trí học phần cơ sở ngành bắt buộc, đóng vai trò bản lề giúp người học chuyển tiếp từ tư duy lập trình đơn lẻ sang tư duy phát triển hệ thống phần mềm có quy chuẩn, phương pháp luận và kiểm soát chất lượng.

Mục tiêu học tập cốt lõi của giáo trình là trang bị cho sinh viên bức tranh tổng thể về ngành công nghệ phần mềm; giúp người học phân biệt rõ các công đoạn trong quy trình phát triển; nắm được phương pháp thu thập, phân tích và đặc tả yêu cầu; làm chủ kỹ thuật thiết kế kiến trúc, thiết kế dữ liệu, thiết kế giao diện; hiểu các nguyên tắc cài đặt chương trình và phương pháp kiểm thử phần mềm. Kết thúc môn học, sinh viên có khả năng tham gia trực tiếp vào các nhóm dự án phần mềm với những vai trò cụ thể tương ứng với từng giai đoạn trong chu kỳ sống của sản phẩm.

Về cấu trúc và cách tiếp cận, tài liệu được tổ chức thành 7 chương tương ứng chặt chẽ với chu trình phát triển phần mềm (Software Development Life Cycle - SDLC): từ tổng quan khái niệm, khảo sát đặc tả yêu cầu, thiết kế hệ thống, thiết kế dữ liệu, thiết kế giao diện, đến cài đặt mã nguồn và kiểm thử. Điểm đặc sắc mang tính học thuật của giáo trình là mô hình hóa cấu trúc phần mềm thành 3 thành phần cốt lõi: thành phần giao tiếp (giao diện), thành phần xử lý và thành phần dữ liệu, kết hợp với phương pháp chuẩn hóa tài liệu qua hệ thống bảng biểu, mẫu phiếu nghiệp vụ và quy tắc tính toán có cấu trúc rõ ràng.


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

                       CHU TRÌNH PHÁT TRIỂN PHẦN MỀM

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

  • Chương 1: Tổng quan về công nghệ phần mềm (Trang 4 – 25): Phân tích bối cảnh lịch sử ra đời của ngành từ "Cuộc khủng hoảng phần mềm" thập niên 1960. Trình bày các định nghĩa kinh điển về kỹ nghệ phần mềm của F. L. Bauer (1969), C. Ghezzi (1991), I. Sommerville (1995), M. Kawamura (1995) và R. S. Pressman (1995). Giới thiệu 6 tiêu chuẩn đánh giá 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); kiến trúc 3 thành phần; các mô hình vòng đời phát triển (mô hình thác nước các biến thể 2, 3, 4, 5 giai đoạn, mô hình bản mẫu Prototype, mô hình xoắn ốc Spiral Model); các phương pháp tiếp cận (từ trên xuống - Top-down, từ dưới lên - Bottom-up); và phân loại công cụ CASE (WinA&D, Analyst Pro, QuickUML, Power Designer, Visual Studio, WinRunner, MS Project).
  • Chương 2: Phân tích và đặc tả yêu cầu (Trang 26 – 59): Hệ thống hóa quy trình khảo sát hiện trạng (quan sát, phỏng vấn, thu thập tài liệu); phương pháp xác định phạm vi dự án; phân loại yêu cầu thành yêu cầu chức năng nghiệp vụ, yêu cầu chức năng hệ thống và yêu cầu phi chức năng. Chuẩn hóa phương pháp lập hồ sơ yêu cầu thông qua bảng biểu nghiệp vụ, quy định tính toán và các biểu mẫu thực tế (phiếu mượn sách, giấy báo đòi sách). Phân tích các ràng buộc kỹ thuật: bảo mật dựa trên vai trò (Role-based security), nhật ký kiểm soát, đo lường tốc độ giao dịch (TPM), băng thông, nút thắt hệ thống bằng công cụ Windows NT Performance Monitor và năng lực mở rộng quy mô với Microsoft Transaction Server.
  • Chương 3: Thiết kế phần mềm (Trang 60 – 76): Giới thiệu nguyên lý thiết kế tổng thể, kỹ thuật thiết kế giao tiếp người dùng, cấu trúc cửa sổ hội thoại (dialog window), phương pháp thiết kế hướng chức năng, thiết kế hướng đối tượng và kiến trúc phân tầng của phần mềm.
  • Chương 4: Thiết kế dữ liệu (Trang 77 – 97): Trình bày phương pháp thiết kế dữ liệu trực tiếp và gián tiếp; thiết lập cấu trúc dữ liệu đảm bảo tính đúng đắn; tối ưu hóa cấu trúc bảng nhằm đáp ứng yêu cầu chất lượng về tốc độ truy xuất, dung lượng lưu trữ trên bộ nhớ phụ và khả năng tiến hóa của dữ liệu.
  • Chương 5: Thiết kế giao diện (Trang 98 – 115): Phân loại các dạng màn hình giao diện; mô tả quy trình thiết kế màn hình chính sử dụng hệ thống thực đơn (menu), màn hình tra cứu (tiêu chuẩn tra cứu, thể hiện kết quả, thao tác xử lý) và màn hình nhập liệu dạng form trực quan.
  • Chương 6: Cài đặt (Trang 116 – 125): Tiêu chuẩn lựa chọn ngôn ngữ lập trình; tính mô-đun hóa; giá trị sưu liệu trong mã nguồn; chuẩn phong cách lập trình có cấu trúc; kỹ thuật hiện thực tăng cường và quy trình đánh giá lại thiết kế - chương trình (Design and Code Review).
  • Chương 7: Kiểm thử phần mềm (Trang 126 – 160): Yêu cầu kỹ thuật trong kiểm thử; phương pháp kiểm thử hộp đen (Black-box / Functional Testing) và phương pháp kiểm thử hộp trắng (White-box / Structural Testing); các cấp độ kiểm thử bao gồm kiểm thử đơn vị (Unit Test), kiểm thử tích hợp (Integration Test), kiểm thử chấp nhận (Acceptance Test), kiểm thử Beta và kiểm thử hệ thống (System Test).

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

Giáo trình thiết lập hệ thống lý thuyết nền tảng dựa trên các trụ cột chính:

  1. Lý thuyết chu kỳ sống phần mềm (Software Life Cycle): Xác định không gian hoạt động của phần mềm từ giai đoạn hình thành bài toán, phân tích, thiết kế, lập trình, kiểm thử đến bảo trì và vận hành thực tế.
  2. Nguyên lý kiến trúc 3 thành phần:
    • Thành phần giao diện: Hệ thống các hàm nhập/xuất, chịu trách nhiệm tiếp nhận dữ liệu nguồn và hiển thị kết quả.
    • Thành phần dữ liệu: Hệ thống các hàm đọc/ghi, chuyển đổi dữ liệu giữa bộ nhớ chính (RAM) và bộ nhớ phụ (tập tin, cơ sở dữ liệu).
    • Thành phần xử lý: Hệ thống các hàm kiểm tra tính hợp lệ và các hàm tính toán biến đổi dữ liệu theo quy tắc nghiệp vụ.
  3. Mô hình hóa hệ thống: Sử dụng sơ đồ phân rã chức năng, sơ đồ luồng dữ liệu (Data Flow Diagram - DFD) với các ký hiệu chuẩn (tiến trình, luồng dữ liệu, kho dữ liệu, tác nhân ngoài), mô hình thực thể kết hợp (Entity Relationship Diagram - ERD) và mô hình hóa hướng đối tượng bằng ngôn ngữ UML.
                  KIẾN TRÚC 3 THÀNH PHẦN CỦA PHẦN MỀM

Kỹ năng phát triển cho người học

  • Kỹ năng kỹ thuật (Technical Skills): Khảo sát và lập bảng quy tắc nghiệp vụ; vẽ lược đồ DFD, ERD; thiết kế các biểu mẫu nhập/xuất và cơ sở dữ liệu quan hệ; phân tích các nút thắt hiệu năng hệ thống; áp dụng quy tắc viết mã nguồn có cấu trúc; thiết kế các bộ dữ liệu thử nghiệm (test cases) cho phương pháp kiểm thử hộp đen và hộp trắng.
  • Kỹ năng phân tích (Analytical Skills): Phân tích phạm vi và phân rã chức năng hệ thống theo nguyên lý "chia để trị"; đánh giá mức độ rủi ro kỹ thuật; phân loại các nhóm người dùng để thiết lập ma trận phân quyền bảo mật; phân tích đánh giá cấu trúc mã nguồn thông qua hoạt động Code Review.
  • Năng lực thực hành nghề nghiệp (Practical Competencies): Kỹ năng sử dụng các công cụ CASE hỗ trợ quản lý dự án (MS Project) và mô hình hóa hệ thống (Power Designer, QuickUML); năng lực lập hồ sơ sưu liệu kỹ thuật phục vụ chuyển giao và bảo trì phần mềm.

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

Giáo trình áp dụng phương pháp sư phạm tiếp cận theo quy trình kỹ thuật hệ thống kết hợp hướng dẫn mẫu biểu thực hành (Form-based Learning). Nội dung lý thuyết không trình bày trừu tượng mà luôn đi kèm với các bảng định dạng chuẩn để sinh viên có thể áp dụng trực tiếp vào bài tập tình huống.

       QUY TRÌNH PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU NGHIỆP VỤ

Case study trung tâm được triển khai xuyên suốt là hệ thống Quản lý thư viện, phân tích chi tiết từng đối tượng tham gia:

  • Bộ phận Thủ thư (Mã số: TT): Công việc cho mượn sách (Quy định TT_QĐ1, Biểu mẫu TT_BM1); nhận trả sách; tính tiền phạt trả trễ (quy tắc phạt: 1.000 đồng/ngày từ ngày thứ 1 đến ngày thứ 5; 3.000 đồng/ngày từ ngày thứ 6 trở đi); tính tiền đền sách mất; tra cứu sách theo tên, tác giả, nhà xuất bản, năm xuất bản; gửi giấy báo đòi sách mượn quá hạn 3 ngày (Biểu mẫu TT_BM2).
  • Bộ phận Độc giả (Mã số: ĐG): Tìm kiếm sách; đăng ký mượn sách.
  • Bộ phận Quản lý độc giả (Mã số: QLĐG): Làm thẻ độc giả cho người từ 18 tuổi trở lên có chứng minh thư, lệ phí 5.000 đồng/thẻ (Biểu mẫu QLDG_BM1, QLDG_BM2); gia hạn thẻ độc giả (không quá hạn 3 tháng); hủy thẻ độc giả quá hạn trên 3 tháng.

Bên cạnh đó, các bài tập tình huống mở rộng gồm có: tính lương nhân viên văn phòng và nhân viên sản xuất theo công đoạn (công đoạn 1: 200đ, công đoạn 2: 400đ, công đoạn 3: 300đ/sản phẩm); tính điểm trung bình học sinh; xếp hạng giải bóng đá; quản lý bán hàng (thuốc tây, vật liệu xây dựng, máy tính).

Phương pháp đánh giá học phần được thiết kế dựa trên:

  1. Đánh giá quá trình: Kiểm tra việc thực hiện các biểu mẫu khảo sát, lập lược đồ DFD/ERD theo nhóm bài tập lớn.
  2. Đánh giá kỹ thuật: Khả năng thực hiện Design and Code Review, kiểm tra tính tương đương giữa thuật toán và mã nguồn.
  3. Đánh giá thực nghiệm: Khả năng thiết kế kịch bản kiểm thử hộp đen, hộp trắng và báo cáo kết quả phát hiện lỗi.

Đối với việc tự học, giáo trình hướng dẫn người học tuân thủ quy trình đọc hiểu lý thuyết từng chương, đối chiếu trực tiếp với các bảng mẫu đặc tả trong Chương 2, sau đó tự giải quyết các bài toán phân tích thiết kế hệ thống tương đương được gợi ý trong bảng phân loại lớp phần mềm.


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

  • Hệ thống hóa học thuyết kỹ nghệ phần mềm: Giáo trình tổng hợp và đối sánh các định nghĩa, quan điểm học thuật chuẩn mực từ các tác giả uy tín trên thế giới (Bauer, Ghezzi, Sommerville, Kawamura, Pressman), giúp sinh viên nắm vững bản chất khoa học của ngành.
  • Tích hợp các công cụ CASE chuyên dụng: Tài liệu phân loại rõ ràng các công cụ tự động hóa hỗ trợ từng giai đoạn phát triển phần mềm:
    • Phân tích: WinA&D, Analyst Pro.
    • Thiết kế: QuickUML, Power Designer, Oracle Designer.
    • Lập trình: Visual Studio, Visual Basic, Visual C++.
    • Kiểm chứng tự động: WinRunner.
    • Quản lý và lập lịch dự án: MS Project, Visio.
  • Phản ánh ràng buộc kỹ thuật trong môi trường ứng dụng phân tán: Giáo trình đưa vào các nội dung thực tế về kiến trúc hệ thống như kết nối cơ sở dữ liệu qua ODBC, quản lý giao tác phân tán qua Microsoft Transaction Server, đo lường thông lượng TPM, phân tích băng thông mạng và giám sát nút thắt phần cứng bằng Windows NT Performance Monitor.
  • Tính thực tiễn trong phân tích nghiệp vụ tại Việt Nam: Toàn bộ các ví dụ và bảng mẫu (mẫu phiếu mượn sách, bảng quy định định mức, tính lương theo ca, quản lý bán hàng) được xây dựng sát với thực tế vận hành của các tổ chức, doanh nghiệp, giúp sinh viên làm quen trực tiếp với ngôn ngữ nghiệp vụ thực tế.

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

  • Sinh viên chuyên ngành: Giáo trình được thiết kế chuẩn hóa cho sinh viên đại học từ năm thứ 2 hoặc năm thứ 3 thuộc các ngành Hệ thống Thông tin Kinh tế, Công nghệ Thông tin, Kỹ thuật Phần mềm và Khoa học Máy tính.
  • 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ở bao gồm:
    • Nhập môn Lập trình / Kỹ thuật lập trình: Hiểu cú pháp, cấu trúc điều khiển và tư duy thuật toán.
    • Cấu trúc dữ liệu và giải thuật: Nắm vững các cấu trúc lưu trữ dữ liệu cơ bản.
    • Cơ sở dữ liệu: Hiểu mô hình quan hệ, các phép toán đại số quan hệ và ngôn ngữ truy vấn SQL cơ bản.
  • Giảng viên: Sử dụng làm tài liệu giảng dạy chính khóa, khung tham chiếu để xây dựng đề cương chi tiết môn Nhập môn Kỹ nghệ phần mềm, hướng dẫn thực hành bài tập lớn và đồ án môn học.
  • Đối tượng tự học và tham khảo: Kỹ sư phần mềm mới bắt đầu làm việc trong các doanh nghiệp CNTT, nhân viên phân tích nghiệp vụ (Business Analyst - BA), kiểm thử viên (Tester) cần củng cố kiến thức nền tảng về chu trình SDLC và phương pháp lập tài liệu sưu liệu kỹ thuật.

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

1. Giáo trình này phù hợp với ai?

Giáo trình phục vụ trực tiếp cho sinh viên đại học ngành Hệ thống Thông tin Kinh tế và Công nghệ Thông tin đang theo học học phần Kỹ nghệ phần mềm căn bản; đồng thời phù hợp cho các lập trình viên muốn chuẩn hóa kiến thức về quy trình và tài liệu phân tích thiết kế hệ thống.

2. Cần kiến thức nền nào trước khi học giáo trình này?

Người học cần có kiến thức nền tảng về kỹ thuật lập trình (ngôn ngữ C/C++, Visual Basic hoặc tương đương), hiểu biết về cấu trúc dữ liệu và nắm được các khái niệm cốt lõi của cơ sở dữ liệu quan hệ.

3. Điểm khác biệt của giáo trình này so với các tài liệu lập trình thông thường là gì?

Tài liệu không thuần túy hướng dẫn cú pháp viết mã nguồn mà tập trung vào toàn bộ vòng đời phát triển phần mềm (SDLC): từ kỹ thuật khảo sát hiện trạng, phân loại và đặc tả yêu cầu, thiết kế kiến trúc 3 thành phần (Giao diện - Xử lý - Dữ liệu), tối ưu hóa lưu trữ, đến quy trình Code Review và các kỹ thuật kiểm thử phần mềm (hộp đen, hộp trắng).

4. Làm sao để tự học và áp dụng giáo trình hiệu quả?

Người học nên đọc tuần tự 7 chương theo đúng trình tự chu kỳ sống của phần mềm; kết hợp nghiên cứu kỹ case study Quản lý thư viện ở Chương 2 để nắm cách thức lập bảng yêu cầu và quy tắc nghiệp vụ; sau đó tự chọn một bài toán thực tế (như Quản lý bán hàng hoặc Quản lý nhân sự) để tự thực hành toàn bộ các bước lập hồ sơ phân tích - thiết kế.

5. Có tài liệu bổ trợ nào được đề xuất kèm theo giáo trình?

Để nghiên cứu sâu hơn về khía cạnh quản trị, giáo trình khuyến nghị người học tham khảo thêm giáo trình Quản lý dự án xây dựng các hệ thống thông tin, kết hợp với các tài liệu chuẩn quốc tế về Kỹ nghệ phần mềm của Roger S. Pressman và Ian Sommerville được nêu trong phần Tài liệu tham khảo.


Kết luận

Giáo trình Nhập môn Kỹ nghệ phần mềm của nhóm tác giả Nguyễn Văn Huân và Vũ Xuân Nam là tài liệu học thuật hoàn chỉnh, cung cấp hệ thống kiến thức nền tảng về phương pháp luận và quy trình phát triển phần mềm theo chuẩn mực công nghệ. Giáo trình xác lập lộ trình học tập logic: bắt đầu từ việc nhận thức các tiêu chuẩn chất lượng và mô hình chu kỳ sống; tiến hành phân tích đặc tả yêu cầu bằng biểu mẫu; thiết kế chi tiết kiến trúc 3 thành phần; cài đặt chương trình theo phong cách cấu trúc; đến tổ chức kiểm thử toàn diện trên các cấp độ đơn vị, tích hợp và hệ thống. Đây là nguồn tài liệu tham khảo có giá trị cao trong công tác đào tạo và nghiên cứu kỹ nghệ phần mềm tại các trường đại học.