Tải bản đầy đủ (.pdf) (52 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.17 MB, 52 trang )

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


i

NHẬN XÉT CỦA GIẢNG VIÊN
1. Mục đích và nội dung của đồ án
Mục đích của đồ án là phát triển một phần mềm quản lý dự án dựa trên quy trình
Agile/Scrum, sử dụng Node.js và React.js, và áp dụng phương pháp Critical Path.
2. Kết quả đạt được
• Xây dựng thành công một phần mềm quản lý dự án dựa trên quy trình


Agile/Scrum, sử dụng Node.js và React.js, và áp dụng phương pháp Critical
Path.
• Thiết kế giao diện người dùng thân thiện và dễ sử dụng cho phần mềm quản lý
dự án, giúp cho người dùng có thể sử dụng phần mềm một cách hiệu quả.
• Tích hợp các tính năng quản lý dự án như quản lý yêu cầu, lập kế hoạch, theo
dõi tiến độ, và phân bổ nguồn lực nhân sự.
• Áp dụng phương pháp Critical Path để tối ưu hóa thời gian và nguồn lực trong
quản lý dự án.
3. Ý thức làm việc của sinh viên
Chủ động nghiên cứu, tìm hiểu tài liệu và hồn thành nội dung của Đồ án.

Hà Nội, tháng 3 năm 2023
Giảng viên

TS. Tạ Thị Thanh Mai


i

Mục lục
Lời mở đầu

1

Chương 1 Cơ sở lý thuyết

3

1.1 Tổng quan về Javascript . . . . . . . . . . . . . . . . . . . . . . . . . .


3

1.2

NodeJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.3

React

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.4

Hệ quản trị CSDL PostgreSQL . . . . . . . . . . . . . . . . . . . . . .

5

1.5

Kiến trúc Client-Server . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

1.6


Mơ hình AGILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

1.7

Quy trình SCRUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

1.8

Phương pháp đường Găng . . . . . . . . . . . . . . . . . . . . . . . . .

10

Chương 2 Khảo sát hệ thống
2.1 Vấn đề thực tế

14

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

2.1.1

Khảo sát hiện trạng

. . . . . . . . . . . . . . . . . . . . . . . .


14

2.1.2

Quy trình quản lý dự án dựa trên mơ hình AGILE/SCRUM . .

15

2.1.3

Giải pháp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

2.2 Yêu cầu chức năng hệ thống . . . . . . . . . . . . . . . . . . . . . . . .

18

2.2.1

Chức năng của thành viên . . . . . . . . . . . . . . . . . . . . .

18

2.2.2

Chức năng của người quản lý dự án . . . . . . . . . . . . . . . .

21


Chương 3 Phân tích hệ thống
3.1

3.2

24

Sơ đồ phân cấp chức năng . . . . . . . . . . . . . . . . . . . . . . . . .

25

3.1.1

Sơ đồ phân cấp chức năng phía thành viên . . . . . . . . . . . .

25

3.1.2

Sơ đồ phân cấp chức năng phía người quản lý . . . . . . . . . .

26

Sơ đồ luồng dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

3.2.1


Biểu đồ luồng dữ liệu mức ngữ cảnh . . . . . . . . . . . . . . .

27

3.2.2

Biểu đồ luồng dữ liệu mức đỉnh . . . . . . . . . . . . . . . . . .

27


0
3.2.3
3.3

Biểu đồ luồng dữ liệu mức dưới đỉ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 4 Thiết kế và xây dựng hệ thống

33

4.1 Thiết kế bảng dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

4.2

Mơ hình dữ 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



1

Lời mở đầu
Với sự phát triển của ngành công nghệ thông tin hiện nay, các dự án phần mềm
luôn được các cá nhân và doanh nghiệp quan tâm hơn bao giờ hết. Nhu cầu xây dựng
các dự án phần mềm đáp ứng với mơ hình kinh doanh của các doanh nghiệp là rất cao.
Đó là một cơ hội cũng như là thách thức đối với các công ty phát triển phần mềm, đặc
biệt trong vấn đề quản lý dự án một cách hiệu quả.
Nhận thức đượ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 quả cho việc quản lý các dự án phần mềm.
Nội dung đề tài gồm 4 chương:
• Chương 1: Cơ sở lý thuyết
• Chương 2: Khảo sát hệ thống
Phần này giới thiệu sơ lược về thực trạng hệ thống, tìm hiểu quy trình nghiệp vụ,
xác định yêu cầu và chi tiết của người sử dụng để xây dựng hệ thống.
• Chương 3: Phân tích hệ thống
Sau khi 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ụ
và biểu diễn qua các 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ế và xây dựng hệ thống
Từ dữ liệu có được qua phần phân tích hệ thống, nội dung chương 3 thực hiện việc
thiết kế cơ sở dữ liệu, xử lý các chức năng, thiết kế chương trình.


2
Em cũng 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 có thể hồn thiện q trình nghiên cứu

của mình. Từ đó giúp em có được định hướng và hoàn thành tốt đề tài của mình.


3

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. Ngồ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.

1.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.


5

Hình 1.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 sốt ứng dụng của mình.

1.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 tồn thế giới. PostgreSQL khơng bị kiểm sốt bởi bất
kì tập đồ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.0)

1.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 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 tố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.


7

Hình 1.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 ngun tắc quan trọng.Tun 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.
2. Chào đón việc thay đổi trong suốt q trình phát triển. Tránh sự chậm trễ khi có
thay đổi về yêu cầu.
3. 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.
4. 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.
5. 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 hồn
thành.
6. 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.
7. Phần mềm hoạt động tốt là thước đo của quá trình.
8. 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.
9. Ln 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.
10. Tính đơn giản – nghệ thuật tối đa hố khối lượng cơng vệc chưa hoàn thành – là
điều thiết yếu.
11. 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.
12. Đị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.


9

1.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 tn theo ngun 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 tồ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 để hồ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 hồ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 hồn thành trong Sprint đó.
• Defination of Done - Định nghĩa hồ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. Cả team
sẽ tự ước lượng và phân chia công việc cho từng thành viên.

1.8

Phương pháp đường Găng

Phương pháp đường Găng (The Critical Path Method - CPM) là một kỹ thuật để
xác định các công việc cần thiết để hồn thành dự án và xác định tính linh hoạt trong
sắp xếp công việc. Một đường Găng trong quản trị dự án là một chuỗi những công việc
cần phải hồn thành đúng thời hạn trong dự án đó. Mọi sự chậm trễ xảy ra trong chuỗi
những công việc này đều có thể làm cho tiến độ dự án kéo dài hơn so với dự tính.
Phương pháp đường Găng xoay quanh việc tìm ra những cơng việc quan trọng nhất
trong quá trình thực hiện dự án, xác định các cơng việc phụ thuộc và tính tốn thời
gian thực hiện cơng việc.
Lợi ích của phương pháp đường Găng
• Cải thiện việc lên kế hoạch dự án trong tương lai: Phương pháp đường
Găng có thể sử dụng để so sánh giữa kỳ vọng và quá trình thực tế. Các dữ liệu
từ dự án hiện tại có thể được sử dụng để áp dụng hoặc thay đổi cho các dự án
trong tương lai.
• Giúp quản lý tài nguyên một cách hiệu quả: Phương pháp đường Găng

giúp nhà quản lý sắp xếp công việc theo thứ tự ưu tiên, cho nhà quản lý một cái
nhìn trực quan về việc phân phối các tài ngun sẵn có.
• Tránh tắc nghẽn cơng việc: Tình trạng tắc nghẽn trong dự án có thể gây ra
việc hao phí thời gian, chi phí cho dự án. Đường Găng giúp nhà quản lý có thể
đưa ra quyết định về những cơng việc có thể hoặc khơng thể thực hiện song song,
từ đó xây dựng lịch trình phù hợp cho dự án.
Cách tìm đường Găng
1. Lên danh sách các cơng việc
Sử dụng bảng phân rã công việc để liệt kê tất cả các công việc cần thiết trong dự
án. Bảng phân rã cơng việc đóng vai trị nền tảng trong phần còn lại của phương
pháp đường Găng.


11

Sau khi đã xác định được các công việc cần thực hiện, người quản lý có thể xác
định các cơng việc phụ thuộc.
2. Xác định công việc phụ thuộc
Dựa vào bảng phân rã công việc, xác định công việc nào chỉ có thể hồn thành
nếu cơng việc khác đã hồn thành. Điều này có thể giúp nhà quản lý xác định
các cơng việc có thể làm song song với nhau. Ví dụ:


12
• Cơng việc B phụ thuộc vào cơng việc A
• Cơng việc C phụ thuộc vào cơng việc B
• Cơng việc C và D có thể làm song song
• Cơng việc E phụ thuộc vào cơng việc D
• Cơng việc F phụ thuộc vào công việc C, D và E
3. Tính tốn đường Găng

Để tìm ra đường Găng, đầu tiên nhà quản lý cần ước lượng thời gian thực hiện
cho từng cơng việc. Để có thể ước lượng được thời gian này, nhà quản lý có thể
dựa trên:
• Kinh nghiệm của bản thân
• Dữ liệu từ những dự án trước đó
• Tiêu chuẩn của ngành
Ngồi ra, nhà quản lý có thể sử dụng các kỹ thuật forward pass và backward
pass để ước lượng:
• Forward pass: Kỹ thuật này dùng để tính thời gian bắt đầu sớm nhất
(early start - ES) và ngày kết thúc sớm nhất (early finish - EF) của mỗi công
việc. ES là giá trị cao nhất của EF của các công việc mà công việc này phụ
thuộc, khi đó EF = ES + thời gian thực hiện cơng việc.
• Backward pass: Kỹ thuật này dùng để tính thời gian bắt đầu muộn nhất
(late start - LS) và thời gian kết thúc muộn nhất (late finish - LF) của mỗi
công việc. LS = LF - thời gian thực hiện cơng việc, trong đó LF là giá trị
thấp nhất mà các công việc phụ thuộc vào công việc này.
( />of_Critical_Path_Method_scheduling_to_research_plan_and_management_
of_graduate_students’_research_project_in_engineering_education)


13


14

Chương 2
Khảo sát hệ thống
2.1
2.1.1


Vấn đề thực tế
Khảo sát hiện trạng

Ngành công nghệ thông tin ở Việt Nam hiện nay đang phát triển vô cùng mạnh mẽ.
Tuy nhiên các công ty phần mềm vẫn ưa thích sử dụng quy trình "thác nước" truyền
thống trong phát triển sản phẩm. Quy trình này sẽ diễn ra với các bước như sau:
1. Lấy yêu cầu từ khách hàng.
2. Thiết kế hệ thống.
3. Phát triển hệ thống.
4. Kiểm thử hệ thống.
5. Bảo trì, sửa chữa hoặc cập nhật chức năng cho hệ thống.
Các bước này sẽ diễn ra từ đầu đến cuối trong quy trình "thác nước". Vấn đề ở đây
là rất khó để lấy được chính xác yêu cầu từ khách hàng trong giai đoạn đầu, vì khách
hàng thường khơng biết họ cần gì cho đến khi nhìn thấy sản phẩm.
Khi có u cầu thay đổi từ khách hàng, chúng ta sẽ phải thực hiện lại quy trình từ
đầu. Kết quả cho ra sản phẩm không đúng với yêu cầu của khách hàng hoặc chậm trễ
thời gian bàn giao sản phẩm.
Với AGILE/SCRUM, các cơng ty có thể giảm thiểu các bất cập của quy trình truyền
thống, giúp sản phẩm đến với khách hàng một cách nhanh chóng và nhận được phản


15
hồi sớm từ khách hàng. Tuy nhiên để thực hiện tốt AGILE/SCRUM, các team phát
triển cần quan tâm đến các vấn đề sau:
• Quản lý Product Backlog
• Quản lý Sprint Backlog
• Quản lý User Story
• Quản lý các task và bug
• Quản lý trạng thái của các task


2.1.2

Quy trình quản lý dự án dựa trên mơ hình AGILE/SCRUM

Trong AGILE/SCRUM, team phát triển sẽ phải tham gia các cuộc họp sau:
• Sprint Planning Meeting: Đây là cuộc họp đầu tiên của một Sprint. Cuộc họp
này sẽ xác định các công việc cần làm trong Sprint cũng như ước lượng Story
Point cho mỗi đầu cơng việc.
• Daily Meeting: Mỗi ngày, cả team sẽ họp khoảng 15 phút để cập nhật tình hình
dự án. Trong cuộc họp, mỗi thành viên sẽ trả lời 3 câu hỏi:
– Hơm qua tơi đã làm gì?
– Hơm nay tơi sẽ làm gì?
– Tơi có gặp khó khăn gì trong q trình làm việc khơng?
• Sprint Review Meeting: Cuộc họp này sẽ diễn ra vào cuối mỗi Sprint. Trong
cuộc họp sẽ xem xét các cơng việc đã hồn thành, chưa hoàn thành, demo những
việc đã hoàn thành cho Product Owner. Product Backlog sẽ được cập nhật sau
cuộc họp.
• Retrospective Meeting: Cuộc họp này sẽ nhìn nhận lại những điểm được và
chưa được trong Sprint vừa qua. Từ đó đưa ra những thay đổi để cải thiện năng
suất làm việc trong Sprint tiếp theo.


16

Hình 2.1: Mơ hình AGILE/SCRUM

2.1.3

Giải pháp


Hệ thống quản lý dự án cung cấp cơng cụ hỗ trợ, kiểm sốt dự án giúp dựa án được
triển khai theo đúng kế hoạch, giúp người quản lý nắm được tình hình dự án một cách
trực quan cụ thể:
• Kiểm sốt cơng việc trong Product Backlog và Sprint Backlog
• Kiểm sốt tiến độ của từng cơng việc
• Quản lý nhiều dự án cùng lúc
• Lập kế hoạch cơng việc dựa trên đường găng
Thuật tốn tìm đường găng
Sử dụng Forward Pass để tìm thời gian bắt đầu và kết thúc công việc sớm nhất.


17

Sử dụng Backward Pass để tìm thời gian bắt đầu và kết thúc cơng việc muộn
nhất.

Qua đó có thể nhận thấy đường Găng của dự án chính là các cơng việc ABDGH.


18

2.2
2.2.1

Yêu cầu chức năng hệ thống
Chức năng của thành viên

STT

Chức năng


Mơ tả

1

Đăng kí

Người dùng có thể tạo tài khoản để sử dụng hệ thống

2

Đăng nhập

Người dùng có thể đăng nhập vào hệ thống

3

Xem project

Người dùng có thể xem những project mình đang tham gia

4

Chọn project

Người dùng có thể chọn project

5

Quản lý file đính


Người dùng có thể thêm, sửa, xố file đính kèm cho project

kèm của project
6

Xem Sprint

Người dùng có thể xem Sprint trong project

7

Quản lý file đính

Người dùng có thể thêm, sửa, xố file đính kèm cho sprint

kèm của sprint
8

Xem issue

Người dung có thể xem các issue đang có trong project

9

Quản lý file đính

Người dùng có thể thêm,sửa xố file đính kèm cho issue

kèm của issue

10

Tạo

issue

của

Người dùng có thể tạo các công việc của project trong Product Backlog

Quản lý trạng

Người dùng có thể tạo trạng thái mới cho issue, cập nhật trạng thái

thái issue

cho issue

Quản lý issue

Người dùng có thể cập nhật trạng thái issue, thêm issue vào Sprint,

project
11
12

chỉnh sửa hay xố issue
13

Gán người phụ


Người dùng có thể chọn người phụ trách cho issue từ những thành

trách cho issue

viên của project

14

Bình luận

Người dùng có thể bình luận về issue.

15

Log work

Người dùng có thể cập nhật thời gian làm việc của mình trên từng
issue.
Bảng 2.1: Chức năng của thành viên

Chi tiết chức năng
1. Đăng kí


19
Đầu vào: Thông tin của người dùng bao gồm họ tên, mật khẩu, ảnh đại diện...
Xử lý: Ở trang đăng kí, người dùng sẽ nhập thơng tin của mình và gửi về hệ
thống. Hệ thống sẽ tạo người dùng mới trong database. Sau đó người dùng sẽ
được chuyển về trang đăng nhập nếu thơng tin hợp lệ, khơng thì sẽ nhận được

thông báo lỗi.
Đầu ra: Người dùng mới trong hệ thống hoặc thông báo lỗi.
2. Đăng nhập
Đầu vào: Thông tin đăng nhập bao gồm email và mật khẩu.
Xử lý: Tại trang đăng nhập, người dùng nhập thông tin đăng nhập và gửi về hệ
thống. Hệ thống kiểm tra thông tin. Nếu thông tin hợp lệ người dùng sẽ được
cung cấp access token, ngược lại thì sẽ nhận được thơng báo lỗi.
Đầu ra: Access token để người dùng truy cập vào hệ thống hoặc thông báo lỗi.
3. Xem project
Đầu vào: Thông tin của người dùng
Xử lý: Tại trang chủ, người dùng có thể xem danh sách những project mình đang
tham gia.
Đầu ra: Danh sách project.
4. Chọn project
Đầu vào: Thông tin của project.
Xử lý: Khi người dùng chọn project trong danh sách project, hệ thống sẽ lấy dữ
liệu từ database và gửi về người dùng.
Đầu ra: Thông tin của project.
5. Quản lý file đính kèm của project
Đầu vào: File đính kèm.
Xử lý: Khi người dùng đang ở trang thông tin của project, người dùng có thể tạo,
chỉnh sửa, xố file đính kèm của project.
Đầu ra: Thơng tin của file đính kèm.
6. Xem sprint
Đầu vào: Thông tin của sprint
Xử lý: Khi người dùng chọn sprint trong danh sách sprint của project, hệ thống


20
sẽ lấy dữ liệu từ database và gửi về người dùng.

Đầu ra: Thơng tin của sprint.
7. Quản lý file đính kèm của sprint
Đầu vào: File đính kèm.
Xử lý: Khi người dùng đang ở trang thông tin của sprint, người dùng có thể tạo,
chỉnh sửa, xố file đính kèm của sprint.
Đầu ra: Thơng tin của file đính kèm.
8. Tạo issue của project
Đầu vào: Thông tin của issue bao gồm tên, loại issue (task hay bug), miêu tả,
hình ảnh, độ ưu tiên...
Xử lý: Người dùng chọn tạo issue, hệ thống sẽ mở pop-up để người dùng điền thông
tin của issue và gửi về hệ thống. Issue mới sẽ được tạo dựa trên thơng tin nhận được.

9. Quản lý file đính kèm của issue
Đầu vào: File đính kèm.
Xử lý: Khi người dùng đang ở trang thơng tin của issue, người dùng có thể tạo,
chỉnh sửa, xố file đính kèm của issue.
Đầu ra: Thơng tin của file đính kèm. Đầu ra: Issue mới được thêm trên hệ thống.
10. Quản lý trạng thái của issue
Đầu vào: Trạng thái mới của issue.
Xử lý: Người dùng kéo thả issue trên các cột trạng thái của issue. Issue sẽ được
cập nhật trạng thái mới.
Đầu ra: Issue đã được cập nhật trạng thái.
11. Quản lý issue
Đầu vào: Thông tin mới của issue
Xử lý:
• Chỉnh sửa issue: Người dụng chọn issue cần sửa, hệ thống mở pop-up hiển
thị thông tin issue. Người dùng cập nhật thơng tin issue.
• Xố Sprint: Người dùng chọn issue cần xoá, hệ thống xoá issue đó trong
database.



21
Đầu ra: Thông tin của issue đã được cập nhật.
12. Gán người phụ trách cho issue
Đầu vào: Id của người phụ trách
Xử lý: Người dụng chọn issue cần gán, hệ thống mở pop-up hiển thị thông tin
issue. Người dùng lựa chọn thành viên phụ trách trong danh sách thành viên.
Đầu ra: Issue đã được cập nhật.
13. Bình luận
Đầu vào: Issue và bình luận.
Xử lý: Người dụng chọn issue, hệ thống mở pop-up hiển thị chi tiết issue. Người
dùng nhập bình luận và gửi về hệ thống.
Đầu ra: Bình luận mới trên issue.

14. Log work
Đầu vào: Thời gian làm việc
Xử lý: Người dụng chọn issue, hệ thống mở pop-up hiển thị chi tiết issue. Người
dùng cập nhật thời gian làm việc và gửi về hệ thống.
Đầu ra: Thời gian làm việc được cập nhật trên issue.

2.2.2

Chức năng của người quản lý dự án

Người quản lý dự án sẽ có tất cả các chức năng của thành viên và thêm những chức
năng sau:


×