Đồ án xây dựng hệ thống quản lý dự án Agile/Scrum - ĐH Bách Khoa Hà Nội

Dưới đây là các meta tags cho bài viết "Tiểu luận xây dựng hệ thống quản lý dự án phần mềm theo mô hình agile scrum đồ án i": { "ai_description": "Xây dựng

Trường đại học

Đại học Bách khoa Hà Nội

Người đăng

Ẩn danh

Thể loại

Đồ án

2023

52
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan về xây dựng hệ thống quản lý dự án phần mềm theo Agile Scrum

Hệ thống quản lý dự án phần mềm theo mô hình Agile/Scrum là giải pháp tối ưu hóa quy trình phát triển dựa trên sự linh hoạt và phản hồi liên tục. Mô hình này chia dự án thành các Sprint ngắn (thường 2-4 tuần), mỗi Sprint tập trung vào một tập hợp nhỏ các nhiệm vụ. Agile/Scrum giúp giảm rủi ro, tăng khả năng thích ứng với thay đổi và cải thiện chất lượng sản phẩm thông qua các cuộc họp định kỳ như Daily Stand-up, Sprint Planning và Retrospective. Phần mềm này sử dụng Node.js cho backend và React.js cho frontend, kết hợp với cơ sở dữ liệu PostgreSQL để quản lý dữ liệu hiệu quả. Kiến trúc Client-Server đảm bảo tính mở rộng và khả năng truy cập từ nhiều thiết bị.

1.1. Mô hình Agile Scrum và lợi ích so với phương pháp truyền thống

Agile/Scrum khác biệt với phương pháp thác nước bằng cách chia dự án thành các Sprint nhỏ, mỗi Sprint kết thúc với một sản phẩm làm việc. Lợi ích chính là giảm thời gian phát triển, tăng khả năng phản hồi từ khách hàng và cải thiện chất lượng thông qua kiểm thử liên tục. Trong khi thác nước tập trung vào kế hoạch chi tiết từ đầu đến cuối, Agile cho phép điều chỉnh yêu cầu theo thời gian thực. Điều này đặc biệt hiệu quả cho dự án phần mềm có yêu cầu thay đổi thường xuyên, như ứng dụng web hoặc sản phẩm SaaS.

1.2. Công nghệ kỹ thuật sử dụng trong hệ thống

Hệ thống sử dụng Node.js với khả năng xử lý đồng thời và hiệu suất cao, phù hợp cho backend. React.js được lựa chọn vì tính tái sử dụng cao và giao diện người dùng tương tác. PostgreSQL đảm bảo tính nhất quán và bảo mật dữ liệu. Kiến trúc Client-Server phân tách logic giữa frontend và backend, giúp tối ưu hóa hiệu suất và bảo trì. Ngoài ra, phương pháp Critical Path được áp dụng để tối ưu hóa thời gian và nguồn lực trong quản lý các task phức tạp.

II. Phân tích vấn đề và yêu cầu trong quản lý dự án phần mềm

Quản lý dự án phần mềm truyền thống gặp khó khăn khi yêu cầu thay đổi sau khi phát triển đã bắt đầu. Các vấn đề thường gặp bao gồm: thiếu sự minh bạch trong tiến độ, quản lý nguồn lực không hiệu quả và khó khăn trong việc theo dõi trạng thái của các task. Agile/Scrum giải quyết những vấn đề này bằng cách cung cấp các công cụ quản lý như Product Backlog, Sprint Backlog và User Story. Điều này giúp team tập trung vào các mục tiêu ngắn hạn và cải thiện khả năng dự đoán thời gian hoàn thành. Ngoài ra, việc thiếu tích hợp giữa các công cụ quản lý cũng làm gián đoạn quy trình, dẫn đến mất thời gian và chi phí.

2.1. Thách thức trong quản lý dự án phần mềm truyền thống

Phương pháp thác nước thường dẫn đến việc phát triển sản phẩm không phù hợp với yêu cầu thực tế của khách hàng. Do đó, nhiều dự án phải trải qua nhiều vòng sửa đổi, gây ra chi phí và thời gian thừa. Ngoài ra, việc thiếu giao tiếp liên tục giữa team và khách hàng làm giảm chất lượng sản phẩm cuối cùng. Agile/Scrum khắc phục vấn đề này bằng cách đưa khách hàng vào quy trình từ đầu, thông qua các cuộc họp định kỳ và phản hồi thường xuyên. Điều này giúp giảm rủi ro và tăng sự hài lòng của khách hàng.

2.2. Yêu cầu chức năng của hệ thống quản lý dự án

Hệ thống cần hỗ trợ quản lý các task, theo dõi tiến độ, phân bổ nguồn lực và báo cáo kết quả. Các chức năng cụ thể bao gồm: quản lý Product Backlog với các User Story, quản lý Sprint Backlog với các task cụ thể, theo dõi trạng thái của các task và báo cáo tiến độ. Ngoài ra, hệ thống phải tích hợp với các công cụ như Jira hoặc Trello để tăng tính tương thích. Giao diện phải thân thiện và dễ sử dụng, cho phép cả team phát triển và quản lý dự án truy cập và quản lý thông tin một cách hiệu quả.

III. Giải pháp và phương pháp xây dựng hệ thống Agile Scrum

Giải pháp xây dựng hệ thống bao gồm việc áp dụng mô hình Agile/Scrum kết hợp với công nghệ Node.js và React.js. Node.js đảm bảo hiệu suất backend, trong khi React.js cung cấp giao diện người dùng tương tác. PostgreSQL được chọn vì tính nhất quán và bảo mật dữ liệu. Phương pháp Critical Path được sử dụng để tối ưu hóa thời gian và nguồn lực trong quản lý các task phức tạp. Các Sprint được định kỳ với thời gian ngắn (2-4 tuần) để đảm bảo tiến độ và chất lượng. Hệ thống cũng tích hợp các công cụ quản lý như Kanban Board và Burndown Chart để theo dõi tiến độ thực tế.

3.1. Kiến trúc và công nghệ kỹ thuật

Kiến trúc Client-Server được áp dụng để phân tách logic giữa frontend và backend. Node.js xử lý các yêu cầu backend, trong khi React.js quản lý giao diện người dùng. PostgreSQL lưu trữ dữ liệu với tính nhất quán cao. Các API RESTful được sử dụng để truyền dữ liệu giữa frontend và backend. Điều này giúp tăng tính mở rộng và bảo trì hệ thống. Ngoài ra, việc sử dụng Docker và Kubernetes giúp quản lý môi trường phát triển và triển khai một cách hiệu quả.

3.2. Áp dụng phương pháp Critical Path và quản lý Sprint

Phương pháp Critical Path giúp xác định các task quan trọng nhất trong dự án, từ đó tối ưu hóa thời gian và nguồn lực. Mỗi Sprint được chia thành các task nhỏ, được theo dõi qua Kanban Board. Burndown Chart được sử dụng để theo dõi tiến độ và dự đoán thời gian hoàn thành. Các cuộc họp định kỳ như Daily Stand-up và Sprint Review giúp team tập trung vào mục tiêu và cải thiện chất lượng sản phẩm. Điều này đảm bảo dự án được hoàn thành trong thời gian và ngân sách đã định.

IV. Kết luận và ứng dụng thực tế của hệ thống

Hệ thống quản lý dự án phần mềm theo Agile/Scrum đã thành công giải quyết các vấn đề trong quản lý dự án truyền thống. Nó cung cấp khả năng linh hoạt, tăng cường giao tiếp và cải thiện chất lượng sản phẩm. Hệ thống này có thể áp dụng rộng rãi trong các dự án phần mềm, đặc biệt là những dự án có yêu cầu thay đổi thường xuyên. Kết quả đạt được bao gồm: tăng hiệu quả quản lý, giảm thời gian phát triển và tăng sự hài lòng của khách hàng. Ngoài ra, hệ thống cũng có thể được mở rộng thêm các tính năng như tích hợp với các công cụ quản lý khác hoặc cải thiện giao diện người dùng.

4.1. Kết quả và hiệu quả của hệ thống

Hệ thống đã đạt được các mục tiêu như thiết kế giao diện thân thiện, tích hợp các tính năng quản lý dự án và tối ưu hóa thời gian và nguồn lực. Nó giúp team phát triển tập trung vào các mục tiêu ngắn hạn và cải thiện chất lượng sản phẩm. Kết quả này chứng minh rằng Agile/Scrum là mô hình hiệu quả cho quản lý dự án phần mềm, đặc biệt là trong môi trường thay đổi nhanh chóng. Hệ thống cũng có thể được áp dụng cho các dự án khác nhau, từ phần mềm web đến ứng dụng di động.

4.2. Hướng phát triển và cải tiến tương lai

Hệ thống có thể được cải tiến thêm các tính năng như tích hợp với các công cụ quản lý dự án khác, cải thiện hiệu suất xử lý và tăng tính bảo mật. Ngoài ra, việc áp dụng trí tuệ nhân tạo để dự đoán tiến độ và quản lý nguồn lực cũng là một hướng phát triển tiềm năng. Các cuộc họp định kỳ và phản hồi thường xuyên từ khách hàng sẽ tiếp tục được duy trì để đảm bảo chất lượng và hiệu quả của hệ thống. Điều này sẽ giúp hệ thống ngày càng hoàn thiện và đáp ứng được yêu cầu của thị trường.

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.

20/05/2026
Tiểu luận 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.

h 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. h 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 đủ h 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. h 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 đủ