I. Tổng Quan Chương Trình Kỹ Thuật Phần Mềm ĐHQGHN Điểm Nổi Bật
Ngành Kỹ thuật phần mềm đã phát triển hơn nửa thế kỷ, nhưng việc quản lý dự án phần mềm vẫn luôn là thách thức. Các vấn đề như hiểu sai yêu cầu, khó thích nghi với thay đổi, hoặc thông tin đầu vào không đồng bộ ảnh hưởng lớn đến chất lượng sản phẩm và tiến độ bàn giao. Tại Đại học Quốc gia Hà Nội (VNU), chương trình đào tạo Kỹ thuật phần mềm được thiết kế để giải quyết những thách thức này. Chương trình trang bị cho sinh viên kiến thức và kỹ năng cần thiết để phát triển phần mềm chất lượng cao, đáp ứng nhu cầu thực tế của thị trường. Chương trình cũng chú trọng đến việc áp dụng các phương pháp phát triển phần mềm hiện đại như Agile và Scrum. Điều này giúp sinh viên có khả năng thích ứng nhanh chóng với các yêu cầu thay đổi và làm việc hiệu quả trong môi trường dự án.
1.1. Giới thiệu Khoa Công Nghệ Thông Tin FIT VNU
Khoa Công nghệ Thông tin (FIT VNU) là một trong những đơn vị đào tạo và nghiên cứu hàng đầu về Công nghệ thông tin tại Việt Nam. Khoa cung cấp nhiều chương trình đào tạo chất lượng cao, bao gồm cả chương trình Kỹ thuật phần mềm. FIT VNU có đội ngũ giảng viên giàu kinh nghiệm, cơ sở vật chất hiện đại và môi trường học tập năng động. Khoa cũng có nhiều hoạt động hợp tác quốc tế, tạo cơ hội cho sinh viên giao lưu và học hỏi kinh nghiệm từ các trường đại học hàng đầu trên thế giới.
1.2. Mục tiêu đào tạo chương trình Kỹ thuật Phần mềm
Chương trình Kỹ thuật phần mềm tại Đại học Quốc gia Hà Nội hướng đến mục tiêu đào tạo ra các kỹ sư phần mềm có kiến thức chuyên môn vững chắc, kỹ năng thực hành thành thạo và khả năng làm việc độc lập, sáng tạo. Sinh viên tốt nghiệp có khả năng phân tích, thiết kế, phát triển, kiểm thử và bảo trì các hệ thống phần mềm phức tạp. Chương trình cũng trang bị cho sinh viên các kỹ năng mềm cần thiết như giao tiếp, làm việc nhóm, quản lý thời gian và giải quyết vấn đề.
II. Thách Thức Vấn Đề Trong Đào Tạo Kỹ Thuật Phần Mềm Hiện Nay
Việc triển khai các giải pháp công nghệ mới trong các tổ chức thường gặp nhiều thách thức. Các yếu tố như nhu cầu khác nhau của các bên liên quan, sự phức tạp và mâu thuẫn trong yêu cầu, và việc thiếu các quy trình khoa học có thể ảnh hưởng đến hiệu quả của hệ thống. Các mô hình yêu cầu của các bên liên quan cần được xây dựng để đảm bảo sự cân bằng giữa yêu cầu chức năng và phi chức năng. Điều này đòi hỏi việc xác định nhu cầu của tất cả các bên liên quan, bao gồm cả người sử dụng và bất kỳ ai khác bị ảnh hưởng bởi hệ thống, đặt trong bối cảnh mà hệ thống sẽ được sử dụng. Việc thu thập yêu cầu là một phần quan trọng của tất cả các phương pháp kỹ thuật phần mềm, nhưng thường hoạt động này tập trung chủ yếu vào các yêu cầu chức năng của hệ thống - những gì hệ thống phải có khả năng làm được - ít nhấn mạnh vào các vấn đề về con người, các vấn đề phi chức năng như tính khả dụng và mức độ chấp nhận được.
2.1. Vấn đề về yêu cầu người dùng và ảnh hưởng của nó
Các vấn đề liên quan đến yêu cầu người dùng có thể ảnh hưởng đến quá trình thu thập yêu cầu. Việc xác định các yếu tố này giúp người thiết kế và nhóm phát triển xây dựng các hệ thống công nghệ phần mềm phù hợp với tổ chức, đáp ứng được các yêu cầu của tổ chức đó. Dựa trên các phương pháp phân tích, người thiết kế hệ thống cần xác định những người khác nhau bị ảnh hưởng bởi việc triển khai một hệ thống hay được gọi là các bên liên quan.
2.2. Các yếu tố ảnh hưởng đến chấp nhận công nghệ trong tổ chức
Cần nghiên cứu kỹ hơn về bối cảnh sử dụng của tổ chức và thảo luận một số vấn đề chung có thể ảnh hưởng đến việc chấp nhận công nghệ trong các tổ chức. Sau đó xem xét một số cách tiếp cận để mô hình hóa bối cảnh xã hội - tổ chức và yêu cầu của các bên liên quan quan trọng trong đó.
III. Phương Pháp Agile Scrum Giải Pháp Đột Phá Cho Kỹ Thuật Phần Mềm
Trong các dự án những năm gần đây, tôi được tiếp cận với phương pháp phát triển phần mềm Agile, cụ thể là Scrum và Kanban. Sự thay đổi có thể dễ dàng nhận thấy giữa một dự án Waterfall và dự án Agile là với Agile, chúng tôi phải tổ chức rất nhiều các cuộc họp, bao gồm các cuộc họp nội bộ nhóm phát triển và các cuộc họp với các bên liên quan. Quá trình này lặp đi lặp lại qua các Sprint nhằm thúc đẩy sự phát triển mối quan hệ bền vững giữa ban lãnh đạo, các thành viên đội phát triển và người dùng. Việc duy trì một nhịp độ liên tục không giới hạn các buổi họp này giúp chúng tôi và các bên liên quan có chung một tầm nhìn về sản phẩm.
3.1. Kỹ thuật yêu cầu trong Agile Scrum
Trong Agile Scrum, kỹ thuật yêu cầu được thực hiện một cách linh hoạt và liên tục. Các yêu cầu được thu thập và điều chỉnh trong suốt quá trình phát triển, dựa trên phản hồi từ khách hàng và các bên liên quan. Product Backlog được sử dụng để quản lý các yêu cầu, và User Stories được sử dụng để mô tả các yêu cầu từ góc độ của người dùng.
3.2. Vai trò của Product Owner trong Scrum
Product Owner là người chịu trách nhiệm chính trong việc quản lý Product Backlog và đảm bảo rằng các yêu cầu được ưu tiên đúng cách. Product Owner cũng là người giao tiếp chính với khách hàng và các bên liên quan, và đảm bảo rằng các yêu cầu được hiểu rõ và đáp ứng đúng cách.
3.3. Các sự kiện và quy trình trong Scrum
Scrum bao gồm các sự kiện và quy trình như Sprint Planning, Daily Scrum, Sprint Review và Sprint Retrospective. Các sự kiện này giúp nhóm phát triển làm việc hiệu quả và liên tục cải tiến quy trình làm việc.
IV. Mô Hình Hóa UML Trong Dự Án Agile Cách Tiếp Cận Hiệu Quả
Trong quá trình thực hiện dự án, việc sử dụng các công cụ mô hình hóa như UML (Unified Modeling Language) đóng vai trò quan trọng trong việc trực quan hóa và hiểu rõ hệ thống. UML giúp các thành viên trong nhóm dự án, cũng như các bên liên quan, có thể dễ dàng hình dung và trao đổi về các khía cạnh khác nhau của hệ thống. Tuy nhiên, trong môi trường Agile, việc sử dụng UML cần được điều chỉnh để phù hợp với tính linh hoạt và thay đổi liên tục của dự án.
4.1. Phân loại nhóm mô hình KEEPS và TEMPS
Trong Agile, có hai nhóm mô hình chính được sử dụng: KEEPS (Keep Everything Explicitly, Persistently, and Systematically) và TEMPS (Temporarily, Exploratory, and Minimally Precise). KEEPS là các mô hình được duy trì và cập nhật liên tục trong suốt dự án, trong khi TEMPS là các mô hình được sử dụng tạm thời để khám phá và hiểu rõ các yêu cầu.
4.2. Sử dụng KEEPS trong nhóm Scrum mở rộng
Trong nhóm Scrum mở rộng, KEEPS có thể được sử dụng để mô tả kiến trúc hệ thống, mô hình miền và các trường hợp sử dụng chính. Các mô hình này giúp các thành viên trong nhóm có cái nhìn tổng quan về hệ thống và dễ dàng trao đổi thông tin.
V. Ứng Dụng Thực Tế Xây Dựng Hệ Thống Hỗ Trợ Giảng Dạy Kịch Hát Dân Tộc
Luận văn này tập trung vào việc nghiên cứu và áp dụng các phương pháp Agile và UML trong dự án xây dựng hệ thống phần mềm hỗ trợ giảng dạy theo mô hình "vai mẫu" đối với kịch hát dân tộc. Dự án này được thực hiện tại Trường Đại học Sân khấu Điện ảnh Hà Nội, với sự tham gia của các giảng viên, sinh viên và các chuyên gia trong lĩnh vực kịch hát dân tộc. Mục tiêu của dự án là tạo ra một hệ thống phần mềm trực quan, dễ sử dụng và đáp ứng được các yêu cầu đặc thù của việc giảng dạy và học tập kịch hát dân tộc.
5.1. Thu thập yêu cầu từ các bên liên quan
Quá trình thu thập yêu cầu được thực hiện thông qua các buổi phỏng vấn, thảo luận nhóm và khảo sát với các giảng viên, sinh viên và các chuyên gia trong lĩnh vực kịch hát dân tộc. Các yêu cầu được ghi lại dưới dạng User Stories và được quản lý trong Product Backlog.
5.2. Thiết kế hệ thống bằng UML
Hệ thống được thiết kế bằng UML, với các sơ đồ lớp, sơ đồ trình tự và sơ đồ trạng thái. Các sơ đồ này giúp các thành viên trong nhóm dự án hiểu rõ cấu trúc và hoạt động của hệ thống.
5.3. Triển khai và kiểm thử hệ thống
Hệ thống được triển khai và kiểm thử theo phương pháp Agile, với các Sprint ngắn và các buổi Sprint Review thường xuyên. Phản hồi từ người dùng được thu thập và sử dụng để cải tiến hệ thống.
VI. Kết Luận Tương Lai Phát Triển Kỹ Thuật Phần Mềm Tại ĐHQGHN
Luận văn đã trình bày một cách tiếp cận hiệu quả để xây dựng hệ thống phần mềm hỗ trợ giảng dạy kịch hát dân tộc, bằng cách kết hợp các phương pháp Agile và UML. Kết quả của dự án cho thấy rằng phương pháp này có thể giúp các nhóm phát triển phần mềm làm việc hiệu quả hơn, đáp ứng được các yêu cầu thay đổi và tạo ra các sản phẩm chất lượng cao. Trong tương lai, Đại học Quốc gia Hà Nội sẽ tiếp tục đầu tư vào việc phát triển các chương trình đào tạo Kỹ thuật phần mềm chất lượng cao, đáp ứng nhu cầu của thị trường lao động và đóng góp vào sự phát triển của ngành công nghiệp phần mềm Việt Nam.
6.1. Đánh giá kết quả và bài học kinh nghiệm
Quá trình thực hiện dự án đã mang lại nhiều bài học kinh nghiệm quý giá về việc áp dụng các phương pháp Agile và UML trong thực tế. Các bài học này sẽ được sử dụng để cải tiến quy trình phát triển phần mềm và nâng cao chất lượng đào tạo tại Đại học Quốc gia Hà Nội.
6.2. Hướng phát triển trong tương lai
Trong tương lai, Đại học Quốc gia Hà Nội sẽ tiếp tục nghiên cứu và phát triển các phương pháp phát triển phần mềm mới, cũng như tăng cường hợp tác với các doanh nghiệp trong ngành công nghiệp phần mềm. Mục tiêu là tạo ra một môi trường học tập và nghiên cứu năng động, sáng tạo và đáp ứng được các yêu cầu của thị trường lao động.