TỔNG QUAN HỌC THUẬT VÀ NỘI DUNG GIÁO TRÌNH CÔNG CỤ VÀ MÔI TRƯỜNG PHÁT TRIỂN PHẦN MỀM

  • Tên giáo trình: Giáo trình Công cụ và Môi trường Phát triển Phần mềm
  • Chủ biên: TS. Trần Tiến Dũng; Tham gia biên soạn: Nguyễn Vân Tỉnh, Nguyễn Thái Cường
  • Đơn vị công tác: Trường Đại học Công nghiệp Hà Nội
  • Nhà xuất bản: Nhà xuất bản Thống kê (Năm xuất bản: 2019)

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

Giáo trình Công cụ và Môi trường Phát triển Phần mềm do TS. Trần Tiến Dũng chủ biên cùng các đồng tác giả Nguyễn Vân Tỉnh và Nguyễn Thái Cường (Trường Đại học Công nghiệp Hà Nội) biên soạn, được Nhà xuất bản Thống kê ấn hành năm 2019. Tài liệu này được thiết kế phục vụ khối kiến thức chuyên ngành trong Chương trình đào tạo Đại học ngành Kỹ thuật phần mềm và Công nghệ thông tin.

Về chuẩn đầu ra (learning outcomes), giáo trình được xây dựng theo định hướng tiếp cận CDIO (Conceive – Design – Implement – Operate). Mục tiêu học tập cốt lõi là trang bị cho người học năng lực nhận biết, đánh giá, phân loại và ứng dụng các công cụ hỗ trợ tự động hóa vào từng công đoạn của vòng đời phát triển phần mềm; đồng thời hình thành kỹ năng làm việc nhóm kỹ thuật và giải quyết các bài toán công nghệ thông tin thực tế.

Cấu trúc giáo trình gồm 4 chương, triển khai theo logic tuyến tính từ lý thuyết tổng quan, kỹ thuật lập kế hoạch và thiết kế thượng nguồn, quy trình cài đặt và kiểm thử hạ nguồn, đến việc làm chủ một môi trường phát triển tích hợp (IDE) chuyên sâu. Cách tiếp cận của tài liệu là gắn kết giữa lý thuyết công nghệ phần mềm tiêu chuẩn với các thao tác kỹ thuật có hướng dẫn từng bước (step-by-step).

Điểm đặc thù của giáo trình nằm ở việc tích hợp hệ thống công cụ đa dạng từ nguồn mở đến thương mại, gắn liền các bài tập dự án nhóm theo khung năng lực CDIO cuối mỗi chương và sử dụng tiêu chí Rubrics để đánh giá năng lực học tập.


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

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

Nội dung giáo trình được phân bổ qua 4 chương lớn với trật tự tiếp cận từ tổng quan đến chuyên sâu:

  • Chương 1: Tổng quan về công cụ và môi trường phát triển phần mềm (Trang 15 – 30): Trình bày định nghĩa phần mềm gồm ba thành phần (chương trình, tài liệu, dữ liệu); 5 đặc trưng cơ bản (không có tính khấu hao, tính phức hợp, tính linh hoạt, chịu sự thay đổi chủ quan, phân loại ứng dụng); nhận diện và phản biện 10 quan niệm sai lệch về phần mềm từ góc độ nhà quản lý, khách hàng và lập trình viên. Phân tích các mô hình vòng đời: mô hình 3 giai đoạn (Xác định bài toán – Phát triển – Hỗ trợ), mô hình hướng đối tượng 4 pha (Inception, Elaboration, Construction, Transition) và chu trình SDLC 7 giai đoạn theo Kendall & Kendall. Trình bày hệ thống phân loại công cụ theo mức hỗ trợ (trên, dưới, tích hợp), 13 nhóm công cụ theo chức năng, khảo sát 23 môi trường phát triển tích hợp (IDE) và 4 tiêu chuẩn lựa chọn công cụ.
  • Chương 2: Lập kế hoạch, phân tích và thiết kế phần mềm (Trang 31 – 65): Phân tích 7 nguyên tắc lập kế hoạch dự án; hướng dẫn xây dựng Cấu trúc phân chia công việc (WBS), xác định quan hệ phụ thuộc (tiến, lùi), quản lý ràng buộc tài nguyên/tiến trình, xác lập mốc thời gian (Milestones) và lập lịch qua biểu đồ Gantt. Khảo sát 9 phần mềm quản lý dự án (MyCollab, Odoo, Taiga, OrangeScrum, Tuleap Open ALM, Agilefant, Redmine, ]project-open[, Microsoft Project). Trình bày phương pháp phân tích thiết kế hướng đối tượng qua khung tiến trình RUP (Rational Unified Process) trên 2 chiều: thời gian (4 pha) và nội dung (6 luồng chính, 3 luồng hỗ trợ); giới thiệu công cụ mô hình hóa Rational Rose và chuẩn UML.
  • Chương 3: Cài đặt và kiểm thử phần mềm (Trang 66 – 84): Trình bày quy trình cài đặt phần mềm trên các môi trường Desktop, Server, Mobile (Android/iOS) và cơ sở dữ liệu MySQL; giới thiệu các trình soạn thảo mã nguồn (Rapid PHP, NetBeans, Visual Studio 2017, PhpStorm, XAMPP). Đi sâu vào quy trình xử lý lỗi, biểu mẫu TestCase và công cụ kiểm thử tự động Selenium.
  • Chương 4: Môi trường phát triển tích hợp Microsoft Visual Studio (Trang 85 – 136): Phân tích kiến trúc Visual Studio IDE; quản lý giải pháp và dự án; hệ thống quản lý phiên bản với Team Foundation Server (TFS) và Visual Studio Team Services (VSTS) qua các thao tác Check In, Changeset, ánh xạ Workspace; công cụ mô hình hóa UML trên bản Enterprise; tính năng soạn thảo thông minh (IntelliSense, cảnh báo lỗi Squiggles, Object Browser, Error List); kỹ thuật gỡ lỗi nâng cao với IntelliTrace và kiểm thử tự động qua Test Explorer; tích hợp cơ sở dữ liệu với SQL Server Object Explorer; mở rộng qua Visual Studio SDK cùng hai khung làm việc nền tảng là .NET Framework và Xamarin/Xamarin.Forms.

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

  • Lý thuyết nền tảng (Fundamental theories): Chu trình vòng đời phát triển hệ thống SDLC (System Development Life Cycle); mô hình tiến trình RUP hai chiều; nguyên lý hướng đối tượng (Đối tượng, Đóng gói, Kế thừa).
  • Nguyên lý cốt lõi (Core principles): 7 nguyên tắc lập kế hoạch dự án bao gồm Phân rã (Compartmentalization), Phụ thuộc, Phân bổ thời gian, Đánh giá nguồn lực, Xác định trách nhiệm, Xác định kết quả và Xác định mốc thời gian.
  • Khung tham chiếu chuẩn (Essential frameworks): Khung tiến trình RUP, kiến trúc .NET Framework, khung làm việc di động đa nền tảng Xamarin, khung chương trình đào tạo CDIO.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Thao tác lập kế hoạch, tạo WBS, gán quan hệ phụ thuộc và xuất biểu đồ Gantt trên Microsoft Project; mô hình hóa biểu đồ UML trên Rational Rose và Visual Studio Enterprise; quản lý mã nguồn, phân nhánh và kiểm soát phiên bản bằng TFVC/TFS; thiết kế kịch bản kiểm thử tự động trên Selenium; cấu hình biên dịch và phát triển ứng dụng di động qua Xamarin.Forms.
  • Kỹ năng phân tích (Analytical skills): Phân tích và phản biện 10 định kiến sai lầm trong sản xuất phần mềm; đánh giá và lựa chọn công cụ kỹ thuật dựa trên 4 tiêu chuẩn (Phương pháp, Tính linh hoạt, Tính cộng tác, Khả năng thẩm định biểu đồ); phân rã cấu trúc hệ thống phức tạp thành các đơn vị công việc độc lập.
  • Năng lực thực tiễn (Practical competencies): Năng lực tổ chức và vận hành nhóm phát triển 3-5 thành viên; kỹ năng thiết lập hồ sơ quản lý, xây dựng kênh trao đổi trực tuyến, đánh giá chéo bằng phiếu Rubrics; năng lực tiếp cận doanh nghiệp để khảo sát bài toán thực tế và soạn thảo đề xuất dự án.

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

Giáo trình Công cụ và Môi trường Phát triển Phần mềm áp dụng mô hình sư phạm kết hợp giữa diễn dịch nguyên lý và thực hành trực quan theo khung năng lực CDIO. Cách tiếp cận sư phạm đi từ khái niệm bản chất, phân loại tổng thể đến hướng dẫn kỹ thuật cụ thể có ảnh chụp màn hình minh họa giao diện phần mềm qua từng bước thực thi.

Về mặt bài tập và nghiên cứu tình huống (case studies), giáo trình sử dụng các ca điển hình mang tính ứng dụng cao. Tiêu biểu là mô hình Cấu trúc phân chia công việc (WBS) cho dự án "Xây dựng ứng dụng chỉnh sửa ảnh" ở Chương 2, đi qua 6 hạng mục chi tiết: Khởi động, Khảo sát yêu cầu người dùng, Phân tích chức năng, Thiết kế cơ sở dữ liệu, Thiết kế cơ sở dữ liệu vật lý và Thiết kế giao diện. Dữ liệu này đóng vai trò mẫu chuẩn để người học thực hành thiết lập quan hệ phụ thuộc và phân bổ tiến độ.

Hệ thống bài tập thực hành (practical exercises) yêu cầu người học thao tác trực tiếp trên các phần mềm chuyên dụng:

  1. Thực hành thiết lập lịch làm việc dự án, nhập tác vụ, phân cấp Indent Task và liên kết phụ thuộc (Ctrl+F2) trên Microsoft Project 2007.
  2. Thực hành tạo nhóm dự án, tạo Workspace, thực hiện Check In mã nguồn và so sánh phiên bản Changeset trên Team Foundation Server (TFS/VSTS).
  3. Thiết lập biểu mẫu TestCase và cấu hình thanh công cụ tự động hóa Selenium để ghi nhận, kiểm tra kịch bản kiểm thử lỗi.

Phương pháp đánh giá (assessment methods) bao gồm hai cấu phần: hệ thống câu hỏi tự luận lý thuyết cuối mỗi chương và phần đánh giá thực hành nhóm. Hiệu quả làm việc nhóm được đo lường định lượng thông qua bảng điểm Rubrics, áp dụng cho từng thành viên dựa trên các mốc kết quả chuyển giao.

Về chỉ dẫn tự học (self-study guidelines), giáo trình định hướng sinh viên tự triển khai cài đặt các phần mềm nguồn mở và thương mại được liệt kê (như XAMPP, NetBeans, MS Project, Selenium, Visual Studio); bám sát progression logic của quy trình kỹ thuật để tự xây dựng các đồ án phần mềm quy mô nhỏ.


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

Giáo trình tích hợp các nội dung cập nhật phản ánh bối cảnh công nghệ thông tin trong giai đoạn Cách mạng Công nghiệp 4.0:

  • Bối cảnh công nghệ và tính thời đại: Mở đầu giáo trình, tác giả xác định vị trí của phần mềm trong các trụ cột công nghệ 4.0 như Trí tuệ nhân tạo (AI), Internet vạn vật (IoT), Dữ liệu lớn (Big Data), Người máy, Xe tự lái và Máy in 3D. Giáo trình trích dẫn số liệu thống kê thu nhập của lập trình viên năm 2017 từ Challengerocket đối với các ngôn ngữ C++ (102.000 USD/năm), Python (105.000 USD/năm), Objective-C (112.000 USD/năm) và Java (130.000 USD/năm) nhằm minh chứng cho xu thế gia tăng thù lao dựa trên khả năng hỗ trợ phát triển ứng dụng đa nền tảng và thiết bị thông minh.
  • Tích hợp các xu hướng quản trị hiện đại: Bên cạnh mô hình quản lý dự án thác nước (Waterfall), giáo trình giới thiệu hệ sinh thái công cụ hỗ trợ quy trình linh hoạt (Agile, Scrum, Kanban) thông qua các phần mềm quản lý như Taiga, OrangeScrum, Tuleap Open ALM, Agilefant và Redmine.
  • Cập nhật quy trình hạ nguồn và kiểm thử: Giáo trình chuyển trọng tâm từ kiểm thử thủ công sang kiểm thử tự động với công cụ Selenium; bổ sung giải pháp phát triển ứng dụng di động đa nền tảng bằng kiến trúc Xamarin và thư viện Xamarin.Forms trong hệ sinh thái Microsoft Visual Studio.
  • Gắn kết thực tiễn công nghiệp: Giáo trình cung cấp dữ liệu định lượng về chu kỳ một dự án phần mềm công nghiệp trung bình kéo dài từ 4 đến 9 tháng: giai đoạn Yêu cầu & Thiết kế (2-4 tuần), giai đoạn Lập kế hoạch - Kiến trúc - Thi công (3-6 tháng, trong đó Lập kế hoạch 2-3 ngày, xác định Kiến trúc 1-2 tuần, Thi công 3-6 tháng), giai đoạn Kiểm thử (3-6 tuần). Điều này giúp sinh viên định hình rõ tiến độ thực tế trước khi tham gia thị trường lao động.

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

Giáo trình Công cụ và Môi trường Phát triển Phần mềm được biên soạn nhằm đáp ứng trực tiếp nhu cầu đào tạo và tham khảo kỹ thuật cho các nhóm đối tượng:

  • Sinh viên đại học: Giáo trình hướng tới đối tượng chính là sinh viên năm thứ hai, năm thứ ba và năm thứ tư thuộc các ngành Kỹ thuật phần mềm, Công nghệ thông tin, Hệ thống thông tin của Trường Đại học Công nghiệp Hà Nội và các cơ sở giáo dục đại học khác đào tạo theo chuẩn CDIO.
  • 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ở ngành bao gồm: Lập trình cơ bản (ngôn ngữ C/C++, Java hoặc C#), Cấu trúc dữ liệu và giải thuật, Cơ sở dữ liệu và Nhập môn Công nghệ phần mềm để có thể tiếp thu và thực hành hiệu quả các nội dung trong tài liệu.
  • Giảng viên chuyên ngành: Giảng viên có thể khai thác tài liệu làm giáo trình chính khóa; sử dụng hệ thống hình ảnh minh họa quy trình từng bước, hệ thống 10 câu hỏi/bài tập cuối chương và khung đánh giá Rubrics để xây dựng đề cương bài giảng lý thuyết, bài thực hành tại phòng lab và phân công đồ án môn học.
  • Tự học và tham khảo: Kỹ sư phần mềm mới bắt đầu làm việc (junior developers), các nhóm kỹ thuật khởi nghiệp cần tài liệu chuẩn hóa quy trình sử dụng công cụ quản lý dự án (Microsoft Project), kiểm soát phiên bản (TFS/VSTS), thiết kế UML (Rational Rose) và kiểm thử tự động (Selenium).

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

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

Giáo trình được thiết kế chuẩn hóa cho sinh viên đại học ngành Kỹ thuật phần mềm và Công nghệ thông tin học tập theo chương trình tiếp cận CDIO. Ngoài ra, tài liệu phù hợp cho các lập trình viên muốn hệ thống hóa quy trình sử dụng các công cụ công nghệ phần mềm chuyên nghiệp.

2. Cần kiến thức nền nào trước khi tiếp cận giáo trình?

Người học cần trang bị kiến thức nền tảng về lập trình (C++, C#, Java hoặc Python), có hiểu biết về hệ điều hành, cấu trúc cơ sở dữ liệu quan hệ và các khái niệm ban đầu về chu trình phát triển phần mềm (SDLC).

3. Điểm khác biệt của giáo trình này so với các tài liệu công nghệ phần mềm khác là gì?

Khác với các tài liệu thuần lý thuyết quy trình, giáo trình tập trung phân loại và hướng dẫn thao tác cụ thể trên hệ thống công cụ công nghiệp thực tế (Microsoft Project, TFS, Rational Rose, Selenium, Visual Studio Enterprise). Đồng thời, tài liệu cung cấp danh mục phản biện 10 quan niệm sai lầm về phần mềm và tích hợp bài tập dự án nhóm theo chuẩn CDIO có tiêu chí chấm Rubrics.

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

Người học nên kết hợp đọc lý thuyết với việc cài đặt trực tiếp các phần mềm được hướng dẫn trong sách (như MS Project, Visual Studio, Selenium, NetBeans). Cần thực hành tuần tự các bài tập mẫu: tạo WBS, lập lịch biểu đồ Gantt, tạo Workspace kết nối TFS và tự động hóa TestCase trên Selenium.

5. Giáo trình có những tài liệu bổ trợ nào đi kèm?

Giáo trình bao gồm hệ thống danh mục từ viết tắt chuẩn (GCC, RUP, SDLC, TFVC, TFS, VS, VSTS, UML), danh mục hình vẽ hướng dẫn giao diện từng bước, danh mục bảng biểu luồng công việc RUP và danh mục tài liệu tham khảo chuyên ngành tại trang 137.


7. Kết luận (150 từ)

Giáo trình Công cụ và Môi trường Phát triển Phần mềm của TS. Trần Tiến Dũng (Chủ biên) cung cấp hệ thống tri thức hoàn chỉnh về việc tự động hóa và hỗ trợ kỹ thuật trong suốt vòng đời phát triển phần mềm. Giá trị học thuật cốt lõi của tài liệu nằm ở cấu trúc phân loại công cụ khoa học (theo mức hỗ trợ và 13 nhóm chức năng), kết hợp các nguyên lý công nghệ phần mềm tiêu chuẩn (SDLC, RUP, CDIO) với kỹ năng thực hành trên các nền tảng công nghiệp phổ biến.

Lộ trình học tập được thiết kế mạch lạc: từ việc nắm vững khái niệm, loại bỏ quan niệm sai lệch và phân loại công cụ (Chương 1) $\rightarrow$ thành thạo kỹ thuật lập kế hoạch và phân tích thiết kế hướng đối tượng (Chương 2) $\rightarrow$ thực hành quy trình cài đặt và kiểm thử tự động (Chương 3) $\rightarrow$ làm chủ môi trường tích hợp chuyên sâu Visual Studio cùng khung ứng dụng đa nền tảng .NET/Xamarin (Chương 4). Người học có thể mở rộng kiến thức qua danh mục tài liệu tham khảo ở cuối sách và hệ thống tài liệu kỹ thuật trực tuyến từ Microsoft và Selenium.