MỞ ĐẦU Ngành công nghệ phần mềm hình thành và phát triển được hơn nửa thế kỉ, tuy nhiên quá trình phát triển và quản trị các dự án phần mềm chưa bao giờ hết thách thức và một trong số đó là các vấn đề liên quan tới kỹ nghệ yêu cầu phần mềm. Việc hiểu sai yêu cầu, khó thích nghi với các thay đổi hoặc không đồng bộ các thông tin đầu vào của dự án gây ảnh hưởng sống còn tới chất lượng sản phẩm cũng như tiến độ bàn giao. Cá nhân tôi thời gian đầu của quá trình học và tham gia các dự án, tôi được tiếp cận với quy trình phát triển phần mềm truyền thống Waterfall, các dự án được lập kế hoạch cẩn thận, được tiến hành với rất nhiều khâu trung gian, và thông thường khách hàng sẽ phải chờ đợi cho tới khi hệ thống phần mềm hoàn thiện cơ bản. Các bên liên quan hầu như chỉ nhận được tài liệu dự án mà không được dùng thử, trải nghiệm và đưa ra các phản hồi cho các chức năng đã hoàn thành.
Việc không nắm được tiến độ các chức năng khiến khách hàng và các bên liên quan tỏ ra sốt ruột, lo lắng và qua thời gian họ mất dần sự quan tâm tới dự án, và kết quả tất yếu với hầu hết các dự án mới có nhiều yêu cầu nghiệp vụ đặc thù hoặc phải đấu nối phức tạp thì sản phẩm bàn giao tới người dùng cuối là không đạt yêu cầu hoặc gặp rất nhiều khó khăn trong quá trình tích hợp hoặc vận hành không ổn định. Các dự án của những năm sau đấy, tôi được tiếp cận với phương pháp phát triển phầm mềm Agile, cụ thể là Scrum và Kanban, ở một số dự án gần đây, nhóm phát triển phần mềm chúng tôi sử dụng Scrumban. 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. Trong thời gian này tôi vẫn chưa dành nhiều công sức để nghiên cứu kỹ về lý thuyết Agile, tôi chỉ tiếp cận nó theo một quy trình làm việc đã được tổ chức bởi Scrum Mater, nhưng tôi vẫn dễ dàng nhận ra được giá trị từ việc áp dụng Agile thông qua chất lượng sản phẩm và mức độ hài lòng của khách hàng qua từng dự án. Vì vậy tôi mong muốn qua luận văn này sẽ nghiên cứu sâu hơn phương pháp luận Agile và các thay đổi có giá trị mà nó tạo ra tới kỹ nghệ yêu cầu cũng như các thay đổi trong quy trình phát triển phần mềm. Mục đích và ý nghĩa của đề tài Ứng dụng khoa học, công nghệ vào việc nâng cao chất lượng giảng dạy các loại hình văn hóa nghệ thuật là một trong những mục tiêu góp phần bảo tồn và phát huy các di sản văn hóa phi vật thể trước xu thế toàn cầu hóa và hội nhập như hiện nay.
Trên thực tế đã có nhiều hệ thống phần mềm được xây dựng và áp dụng trong các trường Đại học khối Văn hóa Nghệ thuật nhưng vẫn tồn tại những hạn chế như không thỏa mãn đầy đủ các yêu cầu giảng dạy và học tập hoặc vượt quá ngân sách và thời gian. Một trong những nguyên nhân chính là các dự án không đầu tư thời gian và công sức ở khâu phân tích, thiết kế mà bắt tay vào lập trình quá sớm. Việc không nắm rõ các yêu cầu của các bên liên quan hoặc thiếu các phương pháp khoa học và yếu kém ở khả năng mô hình hóa các khối chức năng sẽ dẫn đến việc xây dựng một hệ thống không đạt được các mục tiêu của dự án hoặc không như mong đợi của người sử dụng. Tôi đã từng đảm nhiệm các vai trò khác nhau trong nhóm phát triển phần mềm vì vậy tôi muốn xây dựng cho mình các kỹ năng để trở thành một Chủ sản phẩm (Product Owner) bằng việc củng cố phương pháp luận về kỹ nghệ yêu cầu cũng như kỹ năng thiết kế hệ thống và cách thức tổ chức một dự án Agile phù hợp.
Trong luận văn này, mục tiêu thứ nhất tôi cần trình bày được các phương pháp quản lý yêu cầu người dùng bao gồm việc thu thập, quản lý các yêu cầu người dùng và áp dụng các kiến thức này trong quá trình quản lý các yêu cầu đầu vào trong dự án Scrum. Song song với kỹ năng quản lý yêu cầu người dùng, mục tiêu thứ hai tôi cần trình bày được phương pháp mô hình hóa trực quan và áp dụng hiểu quả phương pháp này trong dự án Scrum nhằm giúp các thành viên đội dự án hoặc khách hàng hiểu về hệ thống và giao tiếp với nhau một cách logic có khoa học. Tôi cũng cần áp dụng kiến thức này vào quá trình xây dựng các biểu đồ kỹ thuật và các tài liệu đặc tả. Sau quá trình phân tích yêu cầu ban đầu tôi xem xét việc sử dụng một Open Source Framework làm nền tảng để xây dựng hệ thống quản trị nội dung nhằm giúp giảm thiểu thời gian và nỗ lực của nhóm nghiên cứu đối với các yêu cầu của một hệ thống E-Learning thông thường, mặt khác phải là một framework đã trưởng thành, hoạt động ổn định và có 12 kiến trúc tốt nhằm đảm bảo quá trình phát triển tuân thủ các chuẩn và dễ dàng tích hợp, mở rộng trong tương lai.
Đối tượng và phạm vi nghiên cứu Quá trình nghiên cứu và xây dựng luận văn được tiến hành song song cùng quá trình thực hiện 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. Các khâu trong quá trình phân tích, thiết kế bao gồm: Làm việc với các bên liên quan; Quản lý yêu cầu; Theo dõi tiến độ thực hiện dự án; Tìm hiểu môi trường triển khai dự án; Tìm hiểu các hoạt động quản lý đào tạo, hoạt động dạy và học tại trường cho tới thời điểm hiệu tại và đề xuất các khâu có thể cải tiến; đều được tôi cùng nhóm nghiên cứu thực hiện đề tài khoa học công nghệ trường Đại học Công nghệ - Đại học Quốc Gia Hà Nội thảo luận cùng với đại diện người dùng tại Trường Đại học Sân khấu Điện ảnh Hà Nội. Các bước đều được thực hiện theo quy trình của các phương pháp và mô hình tôi đang nghiên cứu dựa trên sự phối hợp và thống nhất chặt chẽ cùng đại diện khách hàng cũng như người dùng cuối. Phương pháp nghiên cứu Trong quá trình xây dựng luận văn tôi sử dụng các phương pháp nghiên cứu sau: 1.
Phương pháp nghiên cứu Lý thuyết Là các phương pháp thu thập thông tin khoa học trên cơ sở nghiên cứu các văn bản, tài liệu đã có và bằng các thao tác tư duy logic để rút ra kết luận khoa học cần thiết. Phương pháp phân loại và hệ thống hóa lý thuyết: Phân loại là sắp xếp các tài liệu khoa học theo từng mặt, từng đơn vị, từng vấn đề có cùng dấu hiệu bản chất, cùng một hướng phát triển. Hệ thống hóa là sắp xếp tri thức thành một hệ thống trên cơ sở một mô hình lý thuyết làm sự hiểu biết về đối tượng đầy đủ hơn. 13 Phương pháp Mô hình hóa: Là phương pháp nghiên cứu các đối tượng bằng cách xây dựng mô hình gần giống với đối tượng, tái hiện lại đối tượng theo các cơ cấu, chức năng của đối tượng.
Phương pháp nghiên cứu Thực nghiệm Là các phương pháp tác động trực tiếp vào đối tượng có trong thực tiễn để làm rõ bản chất và các quy luật của đối tượng. Phương pháp phân tích tổng kết kinh nghiệm: Là phương pháp nghiên cứu và xem xét lại những thành quả thực tiễn trong quá khứ để rút ra kết luận bổ ích cho thực tiễn và khoa học. Phương pháp thực nghiệm khoa học: Là phương pháp mà các nhà nghiên cứu chủ động tác động vào đối tượng và theo dõi quá trình diễn biến sự kiện mà đối tượng tham gia để hướng sự phát triển của chúng theo mục tiêu dự kiến của mình. Cấu trúc luận văn “Chương 1: Giới thiệu”, trình bày nội dung 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”, trong dự án này tôi đã áp dụng các kiến thức về Kỹ nghệ yêu cầu, và phương pháp Agile là hướng tôi lựa chọn để xây dựng luận văn này.
“Chương 2: Cơ Sở Lý Thuyết”, trình bày lý thuyết Yêu cầu người dùng và các vấn đề ảnh hưởng tới quá trình thu thập yêu cầu. Tiếp theo là lý thuyết Kỹ nghệ yêu cầu truyền thống trong các mô hình Xã hội – Kỹ thuật. Sau đó tôi tập trung nói về Kỹ nghệ yêu cầu được hệ thống và sử dụng trong phương pháp Agile Scrum. Cuối cùng tôi trình bày cách thức áp dụng các kỹ thuật mô hình hóa UML trong các dự án Agile.
“Chương 3: Phương pháp thu thập yêu cầu”, trình bày kỹ thuật tiếp cận các Bên liên quan nhằm thu thập yêu cầu. Sau đó tôi liệt kê các Epic, Product Backlog và các User Story thu được sau các buổi trò chuyện, các cuộc họp với các Bên liên quan hoặc với nhóm phát triển. Tôi cũng đưa ra ví dụ về Scrum Taskboard và bảng Kanban thu được ở một thời điểm cụ thể trong quá trình thực hiện Sprint. “Chương 4: Phân tích & Thiết kế Hệ thống” là kết quả của quá trình xây dựng tài liệu dự án bao gồm: Tài liệu đặc tả yêu cầu người dùng và tài liệu đặc tả yêu cầu 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.
Sau đấy tôi triển khai nhanh các thiết kế thông qua việc xây dựng các prototype nhằm thu thập phản hồi từ người dùng. Cuối cùng là kết luận sau quá trình nghiên cứu, xây dựng luận văn và áp dụng các kiến thức này vào dự án. Cơ Sở Lý Thuyết Công nghệ đóng vai trò cầu nối trong mối quan hệ giữa người sử dụng và máy tính, nó được sử dụng trong một ngữ cảnh cụ thể và bị ảnh hưởng bởi nhiều yếu tố trong ngữ cảnh đó.