Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
4,22 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC XÂY DỰNG HỆ THỐNG QUẢN LÝ DỰ ÁN PHẦN MỀM THEO MƠ HÌNH AGILE/SCRUM ĐỒ ÁN I Giảng viên hướng dẫn: TS Tạ Thị Thanh Mai Sinh viên thực hiện: Nguyễn Đức Thiện MSSV: 20173589 Lớp: Hệ thống thông tin quản lý - K62 HÀ NỘI – 2023 h i NHẬN XÉT CỦA GIẢNG VIÊN Mục đích nội dung đồ án Mục đích đồ án phát triển phần mềm quản lý dự án dựa quy trình Agile/Scrum, sử dụng Node.js React.js, áp dụng phương pháp Critical Path Kết đạt • Xây dựng thành cơng phần mềm quản lý dự án dựa quy trình Agile/Scrum, sử dụng Node.js React.js, áp dụng phương pháp Critical Path • Thiết kế giao diện người dùng thân thiện dễ sử dụng cho phần mềm quản lý dự án, giúp cho người dùng sử dụng phần mềm cách hiệu • Tích hợp tính quản lý dự án quản lý yêu cầu, lập kế hoạch, theo dõi tiến độ, phân bổ nguồn lực nhân • Áp dụng phương pháp Critical Path để tối ưu hóa thời gian nguồn lực quản lý dự án Ý thức làm việc sinh viên Chủ động nghiên cứu, tìm hiểu tài liệu hồn thành nội dung Đồ án Hà Nội, tháng năm 2023 Giảng viên TS Tạ Thị Thanh Mai h i Mục lục Lời mở đầu Chương Cơ sở lý thuyết 1.1 Tổng quan Javascript 1.2 NodeJS 1.3 React 1.4 Hệ quản trị CSDL PostgreSQL 1.5 Kiến trúc Client-Server 1.6 Mơ hình AGILE 1.7 Quy trình SCRUM 1.8 Phương pháp đường Găng 10 Chương Khảo sát hệ thống 2.1 Vấn đề thực tế 14 14 2.1.1 Khảo sát trạng 14 2.1.2 Quy trình quản lý dự án dựa mơ hình AGILE/SCRUM 15 2.1.3 Giải pháp 16 2.2 Yêu cầu chức hệ thống 18 2.2.1 Chức thành viên 18 2.2.2 Chức người quản lý dự án 21 Chương Phân tích hệ thống 3.1 3.2 24 Sơ đồ phân cấp chức 25 3.1.1 Sơ đồ phân cấp chức phía thành viên 25 3.1.2 Sơ đồ phân cấp chức phía người quản lý 26 Sơ đồ luồng liệu 27 3.2.1 Biểu đồ luồng liệu mức ngữ cảnh 27 3.2.2 Biểu đồ luồng liệu mức đỉnh 27 h 3.2.3 3.3 Biểu đồ luồng liệu mức đỉnh 29 Mơ hình thực thể liên kết 29 3.3.1 Danh sách thực thể liên kết 29 3.3.2 Mơ hình thực thể liên kết 32 Chương Thiết kế xây dựng hệ thống 33 4.1 Thiết kế bảng liệu 33 4.2 Mơ hình liệu quan hệ 40 4.3 Xây dựng giao diện hệ thống 40 Kết luận 46 Tài liệu tham khảo 47 h Lời mở đầu Với phát triển ngành công nghệ thông tin nay, dự án phần mềm cá nhân doanh nghiệp quan tâm hết Nhu cầu xây dựng dự án phần mềm đáp ứng với mơ hình kinh doanh doanh nghiệp cao Đó hội thách thức công ty phát triển phần mềm, đặc biệt vấn đề quản lý dự án cách hiệu Nhận thức vấn đề đó, em chọn đề tài "Xây dựng hệ thống quản lý dự án phần mềm theo mơ hình AGILE/SCRUM " làm đề tài mơn học Đồ án 1, nhằm góp phần cải thiện hiệu cho việc quản lý dự án phần mềm Nội dung đề tài gồm chương: • Chương 1: Cơ sở lý thuyết • Chương 2: Khảo sát hệ thống Phần giới thiệu sơ lược thực trạng hệ thống, tìm hiểu quy trình nghiệp vụ, xác định yêu cầu chi tiết người sử dụng để xây dựng hệ thống • Chương 3: Phân tích hệ thống Sau khảo sát hệ thống, em tiến hành phân tích, tìm hiểu quy trình nghiệp vụ biểu diễn qua biểu đồ phân cấp chức năng, từ xây dựng mơ hình thực thể liên kết • Chương 4: Thiết kế xây dựng hệ thống Từ liệu có qua phần phân tích hệ thống, nội dung chương thực việc thiết kế sở liệu, xử lý chức năng, thiết kế chương trình h Em xin gửi lời cảm ơn chân thành đến giảng viên hướng dẫn - TS Tạ Thị Thanh Mai tận tình hướng dẫn, giúp em hồn thiện q trình nghiên cứu Từ giúp em có định hướng hồn thành tốt đề tài h Chương Cơ sở lý thuyết 1.1 Tổng quan Javascript JavaScript ngơn ngữ thơng dịch có tính hướng đối tượng, sử dụng phổ biến phát triển website, giúp trang web tương tác trực tiếp với người dùng Javascript lần đầu giới thiệu tên LiveScript, sau Netscape đổi tên thành JavaScript, ảnh hưởng phổ biến Java lúc JavaScript lần xuất trình duyệt Netscape phiên 2.0, tên LiveScript, với mục đích chung tích hợp Netscape, Internet Explorer trình duyệt web khác ECMA-262 đưa tiêu chuẩn cốt lõi cho phiên JavaScript sau: • JavaScript ngơn ngữ thơng dịch nhẹ • JavaScript thiết kế để tạo ứng dụng mạng • Tích hợp với HTML • Đa tảng Client-Side JavaScript Client-Side JavaScript ứng dụng phổ biến JavaScript Các mã JavaScript tham chiếu tới thẻ HTML thực thi trình duyệt Điều giúp cho trang web tương tác trực tiếp với người dùng h Cơ chế Client-Side cung cấp nhiều lợi ích cho nhà phát triển, ví dụ sử dụng để kiểm tra liệu đầu vào trước gửi yêu cầu xuống server Ngồi ra, JavaScript cịn lắng nghe kiện từ người dùng nhấp chuột, điều hướng từ thực thi đoạn mã tương ứng 1.2 NodeJS Với phát triển mạnh mẽ website tiện lợi JavaScript việc xây dựng trang web, nhà phát triển mong muốn sử dụng JavaScript phía server (Server-Side) Tuy nhiên mong muốn vấp phải chướng ngại lớn mã JavaScript thực thi trình duyệt, từ đem lại nhiều bất cập việc đọc ghi file, kết nối với hệ quản trị sở liệu NodeJS xuất mở đường cho JavaScript NodeJS tảng phía server, xây dựng dựa JavaScript Engine Google Chrome hay biết đến V8 Engine NodeJS giúp xây dựng trang web nhanh chóng dễ dàng mở rộng với kiến trúc hướng kiện (event-driven) non-blocking I/O NodeJS mã nguồn mở, môi trường đa tảng để phát triển ứng dụng mạng phía server Các ứng dụng NodeJS viết JavaScript chạy nhiều hệ điều hành khác OS X, Microsof Windows hay Linux NodeJS cung cấp đa dạng thư viện JavaScript giúp đơn giản hoá việc phát triển ứng dụng nhiều NodeJS = Runtime Enviroment + JavaScript Libary 1.3 React React thư viện JavaScript sử dụng để xây dựng giao diện người dùng React phát triển dựa ý tưởng xây dựng thành phần sử dụng lại giao diện với liệu thành phần thay đổi theo thời gian React trừu tượng hoá DOM - Document Object Model HTML để dễ dàng cập nhật liệu cách nhanh chóng React sử dụng Virtual DOM để cập nhật liệu, sau so sánh Virtual DOM DOM để thực cập nhật trang web h Hình 1.1: Virtual DOM Tính React • JSX - JSX cú pháp mở rộng JavaScript JSX sử dụng để khai báo phần tử React, gần giống với HTML kèm với tất tính JavaScript • Component - Component thành phần tái sử dụng React Mọi thứ React Component Nó giúp cho dự án dễ dàng trì mở rộng • Luồng liệu chiều - React sử dụng liệu chiều giúp nhà phát triển dễ dàng kiểm sốt ứng dụng 1.4 Hệ quản trị CSDL PostgreSQL PostgreSQL hệ quản trị sở liệu với mã nguồn mở phát triển nhóm lập trình viên tồn giới PostgreSQL khơng bị kiểm sốt tập đồn phát hành miễn phí Tính PostgreSQL PostgreSQL triển khai hầu hết hệ điều hành nay, bao gồm Linux, Unix Windows Nó hỗ trợ liệu dạng văn bản, hình ảnh, âm video, hỗ trợ interface cho đa ngôn ngữ lập trình h PostgreSQL cung cấp hầu hết tiêu chuẩn SQL thêm vào nhiều tính 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 9.0) • Hot Standby (phiên 9.0) 1.5 Kiến trúc Client-Server Kiến trúc Client-Server hệ thống lưu trữ, cung cấp quản lý hầu hết tài nguyên mà phía Client yêu cầu Trong mơ hình này, tất u cầu dịch vụ phân phối qua mạng cịn gọi mơ hình mạng tính tốn hay mạng máy chủ-máy khách Kiến trúc Client-Server, gọi mơ hình máy khách-máy chủ, ứng dụng mạng chia nhỏ tác vụ khối lượng công việc máy khách máy chủ nằm hệ thống liên kết mạng máy tính Kiến trúc Client-Server thường có máy trạm, PC thiết bị khác nhiều người dùng, kết nối với máy chủ trung tâm thông qua kết nối Internet mạng khác Máy khách gửi yêu cầu liệu máy chủ chấp nhận đáp ứng yêu cầu đó, gửi lại gói liệu cho người dùng cần chúng h 34 STT Tên trường Diễn giải Kiểu liệu Khoá id id người dùng int Khố name tên người dùng varchar(50) email email người dùng varchar(50) password mật người dùng varchar(50) Bảng 4.2: Bảng User • Bảng Project STT Tên trường Diễn giải Kiểu liệu Khố id id project int Khố name tên project varchar(50) description mô tả project varchar(200) createdAt ngày khởi tạo project datetime attachmentId id file đính kèm Khố ngoại Bảng 4.3: Bảng Project • Bảng UserProject STT Tên trường Diễn giải Kiểu liệu Khoá id id UserProject int Khố userId id người dùng int Khố ngoại projectId id project int Khoá ngoại permissionId id quyền người dùng int Khoá ngoại Bảng 4.4: Bảng UserProject • Bảng Permission h 35 STT Tên trường Diễn giải Kiểu liệu Khoá id id quyền int Khố value nội dung quyền hạn varchar(50) Bảng 4.5: Bảng Permission • Bảng Sprint STT Tên trường Diễn giải Kiểu liệu Khoá id id sprint int Khố name tên sprint varchar(50) description mô tả sprint varchar(200) startAt ngày bắt đầu sprint datetime endAt ngày kết thúc sprint datetime projectId id project sprint int Khố ngoại Bảng 4.6: Bảng Sprint • Bảng Issue STT Tên trường Diễn giải Kiểu liệu Khoá id id issue int Khố creatorId id người tạo issue int Khoá ngoại sprintId id sprint Issue int Khoá ngoại name tên issue varchar(100) description mô tả issue varchar(500) typeId id loại issue int Khoá ngoại statusId id trạng thái issue int Khoá ngoại attachmentId id file đính kèm int Khố ngoại Bảng 4.7: Bảng Issue h 36 • Bảng IssueType STT Tên trường Diễn giải Kiểu liệu Khoá id id loại int Khố value nội dung loại varchar(50) Bảng 4.8: Bảng IssueType • Bảng IssueStatus STT Tên trường Diễn giải Kiểu liệu Khoá id id trạng thái int Khố value nội dung trạng thái varchar(50) Bảng 4.9: Bảng IssueStatus • Bảng Assignee STT Tên trường Diễn giải Kiểu liệu Khoá id id người chịu trách nhiệm cho issue int Khố issueId id issue int Khố ngoại userId id người chịu trách nhiệm int Khoá ngoại Bảng 4.10: Bảng Assignee • Bảng Comment h 37 STT Tên trường Diễn giải Kiểu liệu Khoá id id comment int Khố creatorId id người tạo comment int Khoá ngoại issueId id issue comment int Khoá ngoại content nội dung comment varchar(500) Bảng 4.11: Bảng Comment • Bảng ProjectAttachment STT Tên trường Diễn giải Kiểu liệu Khoá id id file đính kèm int Khố content Đường dẫn file đính kèm text name Tên file đính kèm varchar projectId id project int Khố ngoại Bảng 4.12: Bảng ProjectAttachment • Bảng ProjectLink STT Tên trường Diễn giải Kiểu liệu Khoá id id đường dẫn đính kèm int Khố content Đường dẫn gốc text name Tên đường dẫn varchar projectId id project int Bảng 4.13: Bảng ProjectLink • Bảng SprintAttachment h Khố ngoại 38 STT Tên trường Diễn giải Kiểu liệu Khoá id id file đính kèm int Khố content Đường dẫn file đính kèm text name Tên file đính kèm varchar sprintId id sprint int Khố ngoại Bảng 4.14: Bảng SprintAttachment • Bảng SprintLink STT Tên trường Diễn giải Kiểu liệu Khố id id đường dẫn đính kèm int Khố content Đường dẫn gốc text name Tên đường dẫn varchar sprintId id sprint int Khố ngoại Bảng 4.15: Bảng SprintLink • Bảng IssueAttachment STT Tên trường Diễn giải Kiểu liệu Khoá id id file đính kèm int Khố content Đường dẫn file đính kèm text name Tên file đính kèm varchar issueId id issue int Bảng 4.16: Bảng IssueAttachment • Bảng IssueLink h Khoá ngoại 39 STT Tên trường Diễn giải Kiểu liệu Khố id id đường dẫn đính kèm int Khố content Đường dẫn gốc text name Tên đường dẫn varchar issueId id issue int Bảng 4.17: Bảng IssueLink h Khoá ngoại 40 4.2 Mơ hình liệu quan hệ Hình 4.1: Mơ hình liệu quan hệ 4.3 Xây dựng giao diện hệ thống • Giao diện trang đăng nhập h 41 Hình 4.2: Giao diện đăng nhập • Giao diện trang đăng ký Hình 4.3: Giao diện đăng ký • Giao diện trang danh sách dự án h 42 Hình 4.4: Giao diện danh sách dự án • Giao diện tạo dự án Hình 4.5: Giao diện tạo dự án • Giao diện sprint h 43 Hình 4.6: Giao diện sprint • Giao diện sprint Hình 4.7: Giao diện sprint • Giao diện issue h 44 Hình 4.8: Giao diện issue • Giao diện báo cáo Hình 4.9: Giao diện báo cáo h 45 Hình 4.10: Giao diện báo cáo h 46 KẾT LUẬN Trên tồn nội dung đề tài mơn học Đồ án 1: "Xây dựng hệ thống quản lý dự án phần mềm theo mơ hình AGILE/SCRUM ", xử lý chức ngơn ngữ lập trình Javascript qua cơng nghệ NodeJS ReactJS Bên cạnh đó, em hiểu rõ quy trình phát triển linh hoạt AGILE/SCRUM, đồng thời xây dựng hệ thống áp dụng quy trình Sau hồn thành Đồ án 1, em đạt kết sau: • Xây dựng hệ thống quản lý dự án phần mềm với kiến trúc Client/Server, sử dụng NodeJS ReactJS, giúp tăng hiệu việc phát triển dự án cơng nghệ thơng tin có tính linh động cao, thường xuyên thay đổi theo yêu cầu khách hàng • Node.js tảng phát triển phần mềm đa tảng có khả xử lý đồng thời, phù hợp để xây dựng ứng dụng web phức tạp phần mềm quản lý dự án • React.js thư viện JavaScript phổ biến để phát triển giao diện người dùng, với tính tái sử dụng cao, giúp tăng tốc độ phát triển hiệu bảo trì phần mềm • Áp dụng phương pháp Critical Path giúp tối ưu hóa thời gian nguồn lực quản lý dự án, đặc biệt có nhiều cơng việc phải thực đồng thời Trong q trình thực khơng thể tránh khỏi thiếu sót Bên cạnh hệ thống cần phát triển thêm nhiều chức để tối ưu xử lý, đảm bảo trải nghiệm người dùng Do vậy, hướng phát triển đề tài là: • Tăng tốc độ xử lý hệ thống h 47 • Tối ưu khả giao tiếp thành viên dự án thông qua chức tin nhắn, video call • Cải thiện liệu báo cáo trực quan giúp người dùng dễ dàng nắm bắt tình hình dự án • Cải thiện bảo mật hệ thống Qua việc thực đề tài môn học Đồ án 1, em có thêm kiến thức, kinh nghiệm quý giá việc phát triển hệ thống, phần mềm, kiến trúc Client/Server, ngơn ngữ lập trình Javascript Một lần em xin gửi lời cảm ơn đến TS Tạ Thị Thanh Mai tận tình hướng dẫn em hồn thành đề tài h 48 Tài liệu tham khảo Tiếng Anh [1] Naimul Islam Naim (2017) An Open Source JavaScript Library for Front-end Developement, Final Year Thesis [2] Nimesh Chhetri (2016) A Comparative Analysis of Node.js (Server-Side JavaScript), Culminating Projects in Computer Science and Information Technology [3] Kenneth S Rubin (2012) Essential Scrum: A Practical Guide to the Most Popular AGILE Process, Addison-Wesley Professional [4] Ken Schwaber (2004) AGILE Project Management with Scrum, Microsoft Press Tiếng Việt [5] TS Lê Hải Hà - Trường Đại học Bách khoa Hà Nội (2023) Bài giảng Quản trị dự án Công nghệ thông tin [6] Phạm Huy Hồng (2017) Code dạo kí sự, NXB Dân trí h