Đồ án quản lý dự án phần mềm theo mô hình Agile/Scrum - ĐH Bách khoa Hà Nội

Hướng dẫn xây dựng hệ thống quản lý dự án phần mềm theo mô hình Agile Scrum cho đồ án. Phân tích chi tiết quy trình, thiết kế và triển khai hiệu quả.

Trường đại học

Trường Đại học Bách khoa Hà Nội

Người đăng

Ẩn danh

Thể loại

Đồ án I

2023

52
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan quản lý dự án phần mềm Agile Scrum Đồ án I

Ngành công nghệ phần mềm hiện đại đòi hỏi tốc độ thích ứng cao trước sự biến động liên tục của thị trường. Các mô hình quản lý dự án truyền thống thường bộc lộ nhiều hạn chế về khả năng phản hồi thay đổi. Đề tài xây dựng hệ thống quản lý dự án phần mềm theo mô hình Agile/Scrum đồ án I tập trung giải quyết bài toán tối ưu hóa quy trình làm việc. Hệ thống số hóa toàn bộ các hoạt động quản trị, từ phân rã yêu cầu người dùng đến kiểm soát chu kỳ phát triển. Việc áp dụng khung làm việc Scrum giúp các nhóm kỹ thuật phân chia khối lượng công việc thành các chu kỳ Sprint ngắn hạn. Mỗi chu kỳ mang lại giá trị gia tăng rõ rệt thông qua các sản phẩm phần mềm có khả năng vận hành ngay lập tức. Nền tảng công nghệ Node.js và React.js cung cấp kiến trúc Client-Server hiện đại, đáp ứng yêu cầu xử lý dữ liệu thời gian thực. Sự phối hợp này đảm bảo tính minh bạch, giảm thiểu rủi ro chậm tiến độ và nâng cao chất lượng sản phẩm cuối cùng. Đồ án tạo ra tiền đề vững chắc cho việc ứng dụng công nghệ thông tin vào quản trị dự án thực tế.

1.1. Khung lý thuyết phương pháp Agile và quy trình Scrum

Agile là triết lý phát triển phần mềm linh hoạt, đề cao sự tương tác trực tiếp và khả năng thích ứng với các thay đổi yêu cầu. Quy trình Scrum hiện thực hóa triết lý này qua các chu kỳ Sprint kéo dài từ một đến bốn tuần. Mỗi Sprint bao gồm các hoạt động cốt lõi: lập kế hoạch Sprint, họp điều phối hàng ngày, sơ kết và cải tiến quy trình. Các vai trò cơ bản gồm Product Owner, Scrum Master và Development Team. Nhóm phát triển tiếp nhận danh mục sản phẩm Product Backlog, phân tách thành User Story và cam kết hoàn thành trong Sprint Backlog. Cơ chế này loại bỏ sự trì trệ của mô hình thác nước truyền thống.

1.2. Ứng dụng phương pháp đường găng Critical Path trong dự án

Phương pháp đường găng Critical Path Method là công cụ phân tích toán học dùng để xác định chuỗi công việc quyết định tổng thời gian hoàn thành dự án. Trong hệ thống quản lý phần mềm, việc kết hợp đường găng giúp người quản trị phát hiện các nút thắt cổ chai về tiến độ. Mọi sự chậm trễ trên các tác vụ thuộc đường găng đều ảnh hưởng trực tiếp đến thời điểm bàn giao sản phẩm. Thuật toán tự động tính toán thời gian bắt đầu sớm nhất, hoàn thành muộn nhất và độ trễ cho phép của từng đầu việc. Nhờ đó, việc phân bổ nguồn lực kỹ thuật và nhân sự diễn ra chính xác, hạn chế lãng phí thời gian chờ.

II. Vấn đề thực tế trong quản lý dự án phần mềm theo Agile Scrum

Mô hình phát triển thác nước truyền thống gây ra nhiều bất cập cho các dự án phần mềm tại doanh nghiệp. Khách hàng thường khó hình dung đầy đủ yêu cầu chi tiết ở giai đoạn khởi đầu dự án. Khi xuất hiện thay đổi nghiệp vụ, quy trình bắt buộc phải tái khởi động từ khâu khảo sát và thiết kế. Điều này kéo theo tình trạng bàn giao trễ hạn, phát sinh chi phí và tạo ra sản phẩm không đúng kỳ vọng thực tế. Bên cạnh đó, việc quản trị danh mục Product Backlog, User Story và trạng thái lỗi phần mềm bằng các phương pháp thủ công dễ dẫn đến sai lệch dữ liệu. Đồ án phân tích sâu thực trạng phân mảnh thông tin giữa các bộ phận trong doanh nghiệp phát triển công nghệ. Hệ thống quản lý cần giải quyết triệt để nhu cầu đồng bộ trạng thái công việc, phân quyền chức năng rõ ràng và cung cấp báo cáo trực quan. Các biểu đồ luồng dữ liệu DFD và mô hình thực thể liên kết ERD được xây dựng nhằm chuẩn hóa toàn diện cấu trúc thông tin của tổ chức.

2.1. Hạn chế của quy trình thác nước và sự cần thiết đổi mới

Mô hình thác nước thực hiện phát triển phần mềm theo trình tự tuyến tính nghiêm ngặt qua từng giai đoạn độc lập. Phương pháp này bộc lộ nhược điểm lớn khi đối mặt với các dự án có độ biến động cao. Việc kiểm thử chỉ diễn ra ở giai đoạn cuối khiến chi phí sửa lỗi tăng vọt. Thiếu sự phản hồi liên tục từ người dùng làm giảm giá trị ứng dụng thực tế. Đổi mới sang mô hình Agile/Scrum giúp chia nhỏ rủi ro và tăng cường khả năng thích ứng. Nhóm phát triển có thể bàn giao các tính năng khả dụng theo từng chặng, tiếp thu ý kiến khách hàng và điều chỉnh nhanh chóng.

2.2. Phân tích yêu cầu chức năng cho thành viên và quản lý dự án

Hệ thống xác định rõ ranh giới chức năng giữa người quản lý dự án và các thành viên trong nhóm phát triển. Quản lý dự án nắm quyền khởi tạo dự án, quản lý Product Backlog, phê duyệt kế hoạch Sprint và phân bổ nhân sự. Chức năng giám sát hỗ trợ đánh giá tiến độ qua sơ đồ đường găng và biểu đồ khối lượng công việc. Phía thành viên nhóm được cấp quyền nhận tác vụ, cập nhật trạng thái làm việc, báo cáo lỗi và ước lượng điểm Story Point. Cơ chế phân quyền chi tiết đảm bảo tính an toàn dữ liệu và tối ưu hóa luồng phối hợp nội bộ.

III. Giải pháp thiết kế hệ thống quản lý dự án phần mềm Agile Scrum

Hệ thống quản lý dự án phần mềm được hiện thực hóa qua kiến trúc Client-Server hiện đại với sự kết hợp của Node.js, React.js và PostgreSQL. Phía Backend sử dụng nền tảng Node.js nhờ khả năng xử lý bất đồng bộ và mở rộng linh hoạt theo tải hệ thống. Cơ sở dữ liệu quan hệ PostgreSQL đảm bảo tính toàn vẹn dữ liệu cho các thực thể dự án, sprint, công việc và người dùng. Phía Frontend tận dụng React.js để xây dựng giao diện tương tác động với các thành phần component có khả năng tái sử dụng cao. Bảng Kanban kỹ thuật số được tích hợp trực tiếp, cho phép thao tác kéo thả trạng thái công việc mượt mà. Hệ thống tích hợp thuật toán Critical Path để tự động biểu diễn sơ đồ mạng công việc và cảnh báo sớm các nguy cơ chậm tiến độ. Các chỉ số hiệu suất như biểu đồ Burndown Chart được trích xuất tự động từ dữ liệu nhật ký hoạt động. Giải pháp thiết kế này tạo ra một môi trường làm việc tập trung, ổn định và tối ưu trải nghiệm người dùng kỹ thuật.

3.1. Thiết kế kiến trúc kỹ thuật với Node.js React.js và PostgreSQL

Kiến trúc Client-Server phân tách độc lập tầng xử lý giao diện và tầng logic nghiệp vụ qua giao thức RESTful API. Node.js đảm nhận việc xử lý các yêu cầu nghiệp vụ phức tạp, truy vấn cơ sở dữ liệu và bảo mật phiên đăng nhập. Thư viện React.js quản lý trạng thái giao diện hiệu quả qua Virtual DOM, giúp tải trang nhanh và phản hồi tức thì. Cơ sở dữ liệu PostgreSQL lưu trữ các quan hệ dữ liệu đa chiều, duy trì tính nhất quán cho bảng dữ liệu Sprint, Task và User Story. Cấu trúc này cho phép mở rộng quy mô hệ thống dễ dàng khi số lượng người dùng tăng cao.

3.2. Hiện thực hóa các tính năng cốt lõi và thuật toán đường găng

Các tính năng cốt lõi được xây dựng bám sát quy trình Scrum chuẩn mực. Giao diện quản lý hỗ trợ tạo mới và sắp xếp thứ tự ưu tiên trong Product Backlog theo giá trị nghiệp vụ. Trong mỗi Sprint, các User Story được phân rã thành các Task cụ thể gắn liền với thành viên thực hiện. Thuật toán đường găng Critical Path được lập trình để tính toán đường đi dài nhất của chuỗi nhiệm vụ liên thuộc. Kết quả hiển thị dưới dạng sơ đồ trực quan, giúp người quản lý xác định chính xác các đầu việc cần ưu tiên nguồn lực tối đa.

IV. Kết quả và tiềm năng ứng dụng hệ thống quản lý dự án Agile Scrum

Đề tài xây dựng hệ thống quản lý dự án phần mềm theo mô hình Agile/Scrum đồ án I đã hoàn thành các mục tiêu nghiên cứu và ứng dụng thực tiễn. Phần mềm vận hành ổn định trên nền tảng web, cung cấp đầy đủ công cụ hỗ trợ quy trình Scrum chuẩn chỉnh. Việc kết hợp phương pháp đường găng Critical Path mang lại giải pháp đột phá trong việc kiểm soát tiến độ và phân bổ tài nguyên dự án. Đội ngũ phát triển phần mềm có thể nắm bắt khối lượng công việc, tương tác linh hoạt và phản hồi nhanh trước mọi thay đổi yêu cầu từ khách hàng. Giao diện thân thiện giúp rút ngắn thời gian làm quen và giảm thiểu sai sót trong thao tác quản trị hàng ngày. Kết quả nghiên cứu chứng minh tính khả thi của việc ứng dụng công nghệ JavaScript hiện đại vào việc xây dựng phần mềm quản trị doanh nghiệp. Đồ án mở ra hướng phát triển mở rộng như tích hợp trí tuệ nhân tạo để ước lượng thời gian tự động và tăng cường bảo mật dữ liệu cấp doanh nghiệp.

4.1. Đánh giá hiệu quả thực tế và lợi ích mang lại cho tổ chức

Hệ thống chứng minh tính hiệu quả vượt trội trong việc cải thiện năng suất làm việc của các nhóm kỹ thuật. Việc tự động hóa quy trình quản lý Product Backlog và Sprint Backlog loại bỏ hoàn toàn các báo cáo giấy tờ thủ công. Các chỉ số tiến độ được cập nhật theo thời gian thực giúp lãnh đạo dự án đưa ra quyết định chính xác và kịp thời. Sự kết hợp của phương pháp đường găng giúp giảm thiểu nguy cơ quá tải nguồn lực cục bộ. Tổ chức phần mềm nâng cao năng lực cạnh tranh nhờ việc bàn giao sản phẩm đúng hạn và đạt chuẩn chất lượng.

4.2. Hướng phát triển và nâng cấp hệ thống trong tương lai

Hướng phát triển tiếp theo của đề tài tập trung vào việc tối ưu hóa hiệu năng xử lý và mở rộng hệ sinh thái tính năng. Hệ thống cần tích hợp thêm các công cụ CI/CD để tự động hóa quy trình triển khai và kiểm thử phần mềm. Việc nghiên cứu ứng dụng học máy vào phân tích dữ liệu lịch sử sẽ hỗ trợ ước lượng Story Point chính xác hơn. Ngoài ra, việc phát triển ứng dụng di động đa nền tảng và tích hợp cổng thông báo thông minh sẽ giúp các thành viên duy trì kết nối liên tục, nâng cao hiệu quả cộng tác từ xa.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

15/06/2026
Xây dựng hệ thống quản lý dự án phần mềm theo mô hình agilescrum đồ án i

Trích đoạn nội dung tài liệu

Chương 1 Cơ sở lý thuyết 1.1 Tổng quan về Javascript JavaScript là một ngôn ngữ thông dịch và có tính hướng đối tượng, được sử dụng phổ biến trong phát triển website, giúp các trang web có thể tương tác trực tiếp với người dùng. Javascript lần đầu được giới thiệu dưới tên LiveScript, nhưng sau đó Netscape đã đổi tên thành JavaScript, có thể do ảnh hưởng của sự phổ biến của Java lúc bấy giờ. JavaScript lần đầu tiên xuất hiện trên trình duyệt Netscape phiên bản 2.0, dưới tên LiveScript, với mục đích chung là có thể tích hợp trên Netscape, Internet Explorer và các trình duyệt web khác. ECMA-262 đã đưa ra tiêu chuẩn cốt lõi cho các phiên bản của JavaScript như sau: • JavaScript là ngôn ngữ thông dịch và nhẹ.

• JavaScript được thiết kế để tạo ra các ứng dụng mạng. • Tích hợp với HTML • Đa nền tảng Client-Side JavaScript Client-Side JavaScript là một trong những ứng dụng phổ biến nhất của JavaScript. Các mã JavaScript sẽ được tham chiếu tới các thẻ HTML và được thực thi trên trình duyệt. Điều đó giúp cho những trang web có thể tương tác trực tiếp với người dùng.

4 Cơ chế Client-Side cung cấp nhiều lợi ích cho nhà phát triển, ví dụ như có thể sử dụng để kiểm tra dữ liệu đầu vào trước khi gửi yêu cầu xuống server. Ngoài ra, JavaScript còn có thể lắng nghe các sự kiện từ người dùng như nhấp chuột, điều hướng. từ đó thực thi các đoạn mã tương ứng.2 NodeJS Với sự phát triển mạnh mẽ của các website và sự tiện lợi của JavaScript trong việc xây dựng các trang web, các nhà phát triển mong muốn có thể sử dụng JavaScript ở phía server (Server-Side). Tuy nhiên mong muốn đó vấp phải một chướng ngại lớn khi các mã JavaScript chỉ có thể thực thi trên trình duyệt, từ đó đem lại nhiều bất cập như việc đọc và ghi file, kết nối với các hệ quản trị cơ sở dữ liệu.

NodeJS đã xuất hiện và mở ra một con đường mới cho JavaScript. NodeJS là một nền tảng phía server, được xây dựng dựa trên JavaScript Engine của Google Chrome hay còn được biết đến là V8 Engine. NodeJS giúp xây dựng các trang web nhanh chóng và dễ dàng mở rộng với kiến trúc hướng sự kiện (event-driven) và non-blocking I/O. NodeJS là một mã nguồn mở, một môi trường đa nền tảng để phát triển các ứng dụng mạng phía server.

Các ứng dụng NodeJS được viết bằng JavaScript và có thể chạy trên nhiều hệ điều hành khác nhau như OS X, Microsof Windows hay Linux. NodeJS cũng cung cấp đa dạng các thư viện của JavaScript giúp đơn giản hoá việc phát triển các ứng dụng hơn rất nhiều. NodeJS = Runtime Enviroment + JavaScript Libary 1.3 React React là một thư viện JavaScript sử dụng để xây dựng giao diện người dùng. React được phát triển dựa trên ý tưởng xây dựng các thành phần có thể sử dụng lại trên giao diện với dữ liệu của mỗi thành phần thay đổi theo thời gian.

React trừu tượng hoá DOM - Document Object Model của HTML để có thể dễ dàng cập nhật dữ liệu một cách nhanh chóng. React sử dụng Virtual DOM để cập nhật dữ liệu, sau đó so sánh Virtual DOM và DOM để thực hiện các cập nhật trên trang web.1: Virtual DOM Tính năng của React • JSX - JSX là cú pháp mở rộng của JavaScript. JSX được sử dụng để khai báo các phần tử trong React, gần giống với HTML nhưng sẽ đi kèm với tất cả các tính năng của JavaScript. • Component - Component là các thành phần có thể tái sử dụng trong React.

Mọi thứ của React đều là Component. Nó giúp cho các dự án có thể dễ dàng duy trì và mở rộng. • Luồng dữ liệu một chiều - React sử dụng dữ liệu một chiều giúp nhà phát triển có thể dễ dàng kiểm soát ứng dụng của mình.4 Hệ quản trị CSDL PostgreSQL PostgreSQL là một hệ quản trị cơ sở dữ liệu với mã nguồn mở được phát triển bởi một nhóm các lập trình viên trên toàn thế giới. PostgreSQL không bị kiểm soát bởi bất kì tập đoàn nào và được phát hành miễn phí.

Tính năng của PostgreSQL PostgreSQL có thể được triển khai trên hầu hết các hệ điều hành hiện nay, bao gồm Linux, Unix và Windows. Nó hỗ trợ dữ liệu dạng văn bản, hình ảnh, âm thanh và video, hỗ trợ interface cho đa ngôn ngữ lập trình. 6 PostgreSQL cung cấp hầu hết các tiêu chuẩn của SQL và thêm vào đó rất nhiều tính năng mới như: • Các câu truy vấn SQL phức tạp • SQL Sub-selects • Foreign keys • Trigger • Views • Transactions • Multiversion concurrency control (MVCC) • Streaming Replication (phiên bản 9.0) • Hot Standby (phiên bản 9.5 Kiến trúc Client-Server Kiến trúc Client-Server là một hệ thống lưu trữ, cung cấp và quản lý hầu hết các tài nguyên mà phía Client yêu cầu. Trong mô hình này, tất cả các yêu cầu và dịch vụ được phân phối qua một mạng và nó còn được gọi là mô hình mạng tính toán hay mạng máy chủ-máy khách.

Kiến trúc Client-Server, còn được gọi là mô hình máy khách-máy chủ, là một ứng dụng mạng chia nhỏ các tác vụ và khối lượng công việc giữa các máy khách và máy chủ nằm trên cùng một hệ thống hoặc được liên kết bởi một mạng máy tính. Kiến trúc Client-Server thường có các máy trạm, PC hoặc thiết bị khác của nhiều người dùng, được kết nối với máy chủ trung tâm thông qua kết nối Internet hoặc mạng khác. Máy khách gửi yêu cầu dữ liệu và máy chủ chấp nhận và đáp ứng yêu cầu đó, gửi lại các gói dữ liệu cho người dùng cần chúng.2: Kiến trúc Client-Server 1.6 Mô hình AGILE Phương pháp AGILE là các phương pháp để tiếp cận việc phát triển sản phẩm phù hợp với các giá trị và nguyên tắc được mô tả trong Tuyên ngôn AGILE trong việc phát triển phần mềm. Các phương pháp luận AGILE nhằm mục đích phát triển sản phẩm phù hợp với yêu cầu của khách hàng, với việc chia sản phẩm chính thành các chức năng nhỏ hơn, cho phép khách hàng thường xuyên phản hồi và chỉnh sửa khóa học khi cần thiết.

Khi làm như vậy, AGILE hướng tới việc giải quyết những vấn đề mà phương pháp tiếp cận “thác nước” truyền thống phải đối mặt trong việc phát triển các sản phẩm lớn trong thời gian dài, trong đó các yêu cầu của khách hàng thường xuyên thay đổi, dẫn đến khó khăn trong việc phát triển cũng như bàn giao sản phẩm. Tuyên ngôn AGILE Tuyên ngôn AGILE là một tuyên bố về các giá trị và nguyên tắc cốt lõi để phát triển phần mềm. Tuyên ngôn AGILE trong phát triển phần mềm được đề xuất vào năm 2001 và nó là tuyên bố của 4 quy tắc và 12 nguyên tắc quan trọng.Tuyên ngôn AGILE đóng vai trò như một hướng dẫn cho mọi người để phát triển phần mềm một cách nhanh chóng. Nó được tạo ra bởi 17 chuyên gia hàng đầu trong lĩnh vực phát triển phần mềm bang Utah của Hoa Kỳ, do Kent Beck triệu tập.

4 giá trị cốt lõi của tuyên ngôn AGILE 1. Cá nhân và tương tác hơn là quy trình và công cụ 2. Phần mềm hoạt động tốt hơn là tài liệu đầy đủ 8 3. Hợp tác với khách hàng hơn là đàm phán hợp đồng 4.

Ứng phó, phần hồi với các thay đổi hơn là làm theo kế hoạch 12 quy tắc của tuyên ngôn AGILE 1. Ưu tiên sự hài lòng của khách hàng thông qua việc trao đổi và bàn giao liên tục. Chào đón việc thay đổi trong suốt quá trình phát triển. Tránh sự chậm trễ khi có thay đổi về yêu cầu.

Bàn giao sản phẩm thường xuyên, từ một vài tuần đến một vài tháng, với một thời gian ngắn hơn sau mỗi lần bàn giao. Khách hàng và đội phát triển phải làm việc cùng nhau hàng ngày trong suốt dự án. Xây dựng các dự án xoay quanh các cá nhân có động lực. Tạo cho họ một môi trường, hỗ trợ họ những thứ cần thiết và tin tưởng họ để công việc được hoàn thành.

Phương pháp hiệu quả nhất là truyền tải thông tin đến đội phát triển là đối thoại trực tiếp. Phần mềm hoạt động tốt là thước đo của quá trình. Các quy trình AGILE thúc đẩy sự phát triển bền vững. Các nhà tài trợ cho dự án, các nhà phát triển và người dùng cuối có thể duy trì một tốc độ vô hạn định.

Luôn tập trung đến kỹ thuật xuất sắc và sự thiết kế tốt giúp nâng cao tính linh hoạt. Tính đơn giản – nghệ thuật tối đa hoá khối lượng công vệc chưa hoàn thành – là điều thiết yếu. Các kiến trúc, yêu cầu và thiết kế tốt nhất xuất hiện từ các nhóm tự tổ chức. Định kỳ, nhóm sẽ xem xét lại quá trình và đưa ra cách làm việc hiệu quả hơn, sau đó điều chỉnh hành vi của mình cho phù hợp.7 Quy trình SCRUM So với AGILE, SCRUM là một framework giúp thực hiện tốt các nguyên lý trong AGILE.

Bao gồm các công cụ, vai trò và quy trình tuân theo nguyên lý AGILE. Các khái niệm trong SCRUM • User Story - Tóm tắt chức năng của sản phẩm từ phía người dùng. Ví dụ: – Là người mua hàng, tôi muốn xem toàn bộ danh sách sản phẩm. – Là người quản lý, tôi muốn thêm sản phẩm vào cửa hàng.

• Story Point - Đơn vị để đánh giá mức độ phức tạp của một User Story. Các công ty thường sử dụng dãy số Fibonancy để cho thấy rõ ràng sự chênh lệch độ phức tạp giữa các Story. • Product Backlog - Danh sách các công việc cần thực hiện để hoàn thành công việc. Có thể là User Story hay các việc kĩ thuật như thiết kế, khởi tạo database, tích hợp API.

• Sprint - Một chu kì làm việc trong dự án. Mỗi chu kì kéo dài từ 1 đến 4 tuần. Trong mỗi chu kì, cả team sẽ thực hiện đầy đủ các công việc như thiết kế, code, test để tạo ra sản phẩm vào cuối Sprint. • Sprint Backlog - Khi bắt đầu một Sprint, cả team sẽ chọn ra những công việc cần hoàn thành trong Sprint đó từ Product Backlog và đưa vào Sprint Backlog.

Những công việc này cần được hoàn thành trong Sprint đó. • Defination of Done - Định nghĩa hoàn thành. Một công việc được coi là hoàn thành khi đã code, test xong hoặc khi được khách hàng duyệt. Vai trò, vị trí trong SCRUM • Scrum Master - Người nắm vững quy trình SCRUM và đảm bảo cả team thực hiện đúng theo quy trình.

• Product Owner - Người quản lý Product Backlog. Họ sẽ quyết định các chức năng nào được thêm vào hay bỏ đi, giải thích ý nghĩa của chức năng cho các thành viên trong team. 10 • Development Team - Team tạo ra sản phẩm dựa theo các User Story.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ