Mô hình Agile giúp đảm bảo tính linh hoạt, phản hồi nhanh chóng và tối ưu hóa quá trình phát triển, từ đó cải thiện chất lượng sản phẩm và đáp ứng nhu cầu của người dùng một cách tốt nhấ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN -
BÁO CÁO BÀI TẬP LỚN THUỘC HỌC PHẦN
NHẬP MÔN CÔNG NGHỆ PHẦN MỀM Tìm hiểu về mô hình Agile viết tài liệu đặc tả yêu cầu phần mềm cho
website bán hàng thời trang ivymoda
GVHD: Nguyễn Thị Mỹ Bình
Nhóm: 01
Lê Minh Tiến Mã SV: 2021604184Lăng Thảo Văn Mã SV: 2021603882Trần Đức Huy Mã SV: 2021605056
Lê Minh Tiến Mã SV: 2021604952Nguyễn Thiện Lâm Mã SV: 2021604268
Lớp: 20222IT6082009 Khóa 16
Hà Nội – Năm 2023
Trang 2MỤC LỤC Trang
LỜI NÓI ĐẦU………3
PHẦN 1 TỔNG QUAN VỀ MÔ HÌNH AGILE 1.1 Giới thiệu về mô hình Agile……… ……… 5
1.1.1 Các khái niệm……… X 1.2 Một số phương pháp theo mô hình Agile phổ biến hiện nay …….…… 6
1.2.1 Phương pháp Scrum……… ….……… 6
1.2.2 Phương pháp Extreme Programing (XP)……… 8
1.2.3 Phương pháp Kanban……… 10
1.2.4 Phương pháp Lean Software Development……… 12
1.2.5 Phương pháp Crystal……… 14
1.3 Giới thiệu công cụ trực tuyến Monday.com quản lý dự án theo mô hình Agile ………….16
1.4 Lợi ích khi áp dụng Agile……… … 18
1.5 Các đặc điểm của phương pháp Agile ……….…… 19
1.6 Nguyên tắc của Agile……… ……… 20
1.7 Ưu, nhược điểm của mô hình Agile………21
1.8 Ứng dụng của mô hình Agile trong thực tế ……….…… 22
PHẦN 2
Trang 3TÀI LIỆU ĐẶC TẢ CHO TRANG WEB BÁN HÀNG THỜI TRANG IVYMODA
2.1.Giới thiệu tài liệu……… ……….
2.1.1.Mục đích của tài liệu yêu cầu cho website Ivymoda………X
2.1.2 Phạm vi của trang web……… X
2.1.3 Các định nghĩa, từ viết tắt trong tài liệu……….X 2.1.4.Các tham chiếu trong trang web……….X 2.1.5.Tổng quan về tài liệu phân tích đặc tả trang web……… X 2.2.Mô tả trang web……….X
2.2.1.Giới thiệu về trang web ivymoda………X
2.2.2.Các chức năng của trang web………X
2.2.3.Đặc điểm của người sử dụng trang web………X
2.2.4.Các ràng buộc của trang web……….X
2.2.5 Giả thiết và phụ thuộc của trang web……….X 2.3.Chức năng của trang web ……….X 2.3.1 Khái quát giao diện trang web ………X 2.3.2 Phân tích nội dung của trang web……… X 2.3.3 Phân tích thiết kế CSDL, vẽ sơ đồ usecase cho trang web……… X 2.3.4.Phân tích các chức năng của trang web………X 2.3.5.Phân tích số lượng truy cập tối đa có thể truy cập vào trang web………X 2.3.6.Phân tích tốc độ truyền tải trang web……… X
Trang 4KẾT LUẬN……… X TÀI LIỆU THAM KHẢO………X
LỜI NÓI ĐẦU
Trong thời đại công nghệ số ngày nay, việc phát triển các ứng dụng vàwebsite bán hàng trực tuyến đóng vai trò quan trọng trong việc gia tăng doanhthu và mở rộng thị trường cho các doanh nghiệp Đặc biệt, trong lĩnh vực thờitrang, việc cung cấp một trải nghiệm mua sắm trực tuyến thuận tiện và hiệuquả cho người dùng là yếu tố then chốt để tạo nên sự khác biệt so với đối thủcạnh tranh
Ivymoda là một trong những thương hiệu thời trang hàng đầu tại Việt Nam,luôn không ngừng nỗ lực để nâng cao chất lượng sản phẩm và dịch vụ, đồngthời tiếp tục phát triển và hoàn thiện website bán hàng của mình Để đạt đượcmục tiêu này, việc áp dụng mô hình Agile trong quá trình phát triển phần mềm
là một lựa chọn hợp lý và hiệu quả
Bài báo cáo này nhằm mục đích giới thiệu và phân tích việc sử dụng mô hìnhAgile để viết tài liệu đặc tả yêu cầu phần mềm cho website bán hàng thờitrang Ivymoda Mô hình Agile giúp đảm bảo tính linh hoạt, phản hồi nhanhchóng và tối ưu hóa quá trình phát triển, từ đó cải thiện chất lượng sản phẩm
và đáp ứng nhu cầu của người dùng một cách tốt nhất
Trong bài báo cáo, chúng tôi sẽ trình bày các khái niệm cơ bản về mô hìnhAgile, phương pháp làm việc và công cụ hỗ trợ, cũng như cách áp dụng môhình này trong việc viết tài liệu đặc tả yêu cầu phần mềm cho website bánhàng thời trang Ivymoda Đồng thời, chúng tôi cũng sẽ đề cập đến những
Trang 5thách thức và khó khăn cũng như những giải pháp để giải quyết chúng trongquá trình áp dụng mô hình Agile.
Hy vọng rằng thông qua bài báo cáo này, các bạn sẽ có cái nhìn tổng quan vàsâu sắc hơn về việc sử dụng mô hình Agile trong quá trình phát triển websitebán hàng thời trang, cũng như nhận ra những lợi ích mà mô hình này mang lạicho doanh nghiệp và người dùng
Chân thành cảm ơn cô và người đọc đã dành thời gian quý báu để đọc và theodõi bài báo cáo của chúng tôi
PHẦN 1: GIỚI THIỆU TỔNG QUAN VỀ MÔ HÌNH AGILE
1.1 Giới thiệu về mô hình Agile
Mô hình Agile là một phương pháp phát triển phần mềm linh hoạt, tập trungvào việc cung cấp giá trị cho khách hàng và tối ưu hóa quá trình phát triển
Mô hình này được phát triển để giải quyết các hạn chế của các phương phápphát triển phần mềm truyền thống, như phương pháp Waterfall
1.2 Một số phương pháp Agile phổ biến hiện nay
1.2.1 Phương pháp Scrum
Ảnh minh họa:
Trang 6Scrum là một phương pháp phát triển phần mềm theo mô hình Agile,tập trung phát triển phần mềm qua các chu kỳ ngắn, linh hoạt và có khả năngthích nghi với thay đổi Được phát triển vào những năm 1990, Scrum đã trởthành một trong những phương pháp Agile phổ biến nhất và được sử dụngrộng rãi trong ngành công nghiệp phần mềm Scrum bao gồm một số thànhphần cơ bản như Product Backlog, Sprint Backlog, Daily Scrum , SprintReview và Sprint Retrospective.
- Product Backlog: là danh sách các yêu cầu hoặc các tính năng cần pháttriển, được quản lý bởi Product Owner (người đại diện cho khách hànghay người sử dụng) Product Backlog được cập nhật thường xuyên vàđược sắp xếp theo mức độ ưu tiên
- Sprint Backlog: là danh sách các yêu cầu hoặc các tính năng được chọn
từ Product Backlog để phát triển trong một Sprint Sprint Backlog đượctạo ra bởi nhóm Scrum (bao gồm các Scrum Master, Product Owner vàcác thành viên khác trong nhóm phát triển)
- Daily Scrum: là cuộc họp ngắn gọn trong ngày, kéo dài khoảng 15 phút,giúp cho các thành viên trong nhóm Scrum cập nhật tình trạng công
Trang 7việc của mình, đồng bộ hóa các hoạt động và xác định các vấn đề cầngiải quyết.
- Sprint Review: là cuộc họp giữa nhóm Scrum và khách hàng để xemxét sản phẩm hoàn thành trong Sprint và đánh giá mức độ hoàn thànhcác yêu cầu hoặc tính năng được phát triển
- Sprint Retrospective: là cuộc họp giữa nhóm Scrum để đánh giá quátrình phát triển trong Sprint vừa qua, xác định các vấn đề cần giải quyết
và đề xuất các cải tiến cho quá trình phát triển tiếp theo
Ưu điểm của phương pháp Scrum:
- Tập trung vào giá trị khách hàng: Scrum tập trung vào việc phát triểnsản phẩm đáp ứng được yêu cầu của khách hàng và đáp ứng được thayđổi trong quá trình phát triển
- Linh hoạt và thích nghi: Scrum giúp tăng cường sự linh hoạt, tối ưu hóaquá trình phát triển và tăng cường khả năng thích nghi trong quá trìnhphát triển sản phẩm
- Giảm thiểu rủi ro: Scrum giúp giảm thiểu rủi ro trong quá trình pháttriển bằng cách sử dụng các chu kỳ phát triển ngắn hơn và linh hoạthơn
- Tăng sự tương tác và đồng bộ hóa trong nhóm phát triển: Scrum kếthợp giữa các vai trò trong nhóm phát triển để tăng sự tương tác và đồng
bộ hóa các hoạt động
Nhược điểm của phương pháp Scrum:
- Yêu cầu đầu tư thời gian và tiền bạc để huấn luyện và triển khaiphương pháp Scrum
- Cần có sự hợp tác chặt chẽ giữa các thành viên trong nhóm Scrum đểđạt được hiệu quả cao nhất
- Có thể gặp khó khăn trong việc định nghĩa và quản lý Product Backlog
Trang 8- Khó khăn trong việc ước lượng thời gian và chi phí cho các yêu cầuhoặc tính năng cần phát triển.
Tóm lại, Scrum là một phương pháp phát triển phần mềm hiệu quả và linh hoạt, giúp tăng cường giá trị khách hàng và giảm thiểu rủi ro trong quá trình phát triển Tuy nhiên, để triển khai thành công phương pháp Scrum, cần đầu tư thời gian và tiền bạc, đồng thời đảm bảo sự hợp tác và tương tác chặt chẽ giữa các thành viên trong nhóm Scrum.
1.2.2 Phương Pháp Extreme Programing (XP)
Ảnh minh họa:
Extreme Programming (XP) là một phương pháp phát triển phần mềmthuộc hệ thống Agile, mà tập trung vào việc phát triển phần mềm nhanhchóng và linh hoạt XP sử dụng các chu kỳ phát triển ngắn để tạo điều kiệncho các thành viên trong nhóm phát triển liên tục cải tiến, chia sẻ kinhnghiệm và tạo ra sản phẩm chất lượng cao XP đặt mục tiêu cao về chấtlượng phần mềm thông qua việc thực hiện kiểm thử liên tục và việc tíchhợp liên tục XP cũng tập trung vào việc tối đa hóa giá trị khách hàng
Trang 9thông qua việc phát triển phần mềm linh hoạt và có khả năng thích nghivới thay đổi.
Phương pháp XP bao gồm một số thành phần như sau:
- Planning: Đây là giai đoạn đầu tiên của quá trình phát triển, trong đókhách hàng cùng với nhóm phát triển hình thành một kế hoạch pháttriển chi tiết cho dự án
- Design: Giai đoạn này tập trung vào thiết kế hệ thống và phần mềm,bao gồm sự lựa chọn công nghệ, thiết kế kiến trúc và thiết kế chi tiết
- Coding: Giai đoạn này tập trung vào việc thực hiện và kiểm thử mãnguồn
- Testing: Giai đoạn này tập trung vào việc kiểm thử hệ thống, bao gồmkiểm thử đơn vị, kiểm thử tích hợp và kiểm thử chấp nhận
- Listening: Đây là một phương pháp quan trọng trong XP, trong đó cácthành viên trong nhóm phát triển tập trung vào việc lắng nghe và phảnhồi nhau để cải thiện quá trình phát triển
- XP còn sử dụng các kỹ thuật như Pair Programming (lập trình đôi),Continuous Integration (tích hợp liên tục), Refactoring (tái cấu trúc) vàSimple Design (thiết kế đơn giản) để tăng cường hiệu quả và chấtlượng của quá trình phát triển
Ưu điểm của phương pháp Extreme Programing (XP)
- Tối ưu hóa giá trị khách hàng: XP tập trung vào việc cung cấp giá trịcho khách hàng thông qua việc phát triển phần mềm linh hoạt và có khảnăng thích nghi với thay đổi
- Tập trung vào chất lượng phần mềm: XP đặt mục tiêu cao về chấtlượng phần mềm thông qua việc thực hiện kiểm thử liên tục và việctích hợp liên tục
Trang 10- Tăng cường sự linh hoạt: XP giúp tăng cường sự linh hoạt trong quátrình phát triển bằng cách sử dụng các chu kỳ phát triển ngắn hơn vàlinh hoạt hơn.
- Tăng cường sự tương tác và đồng bộ hóa trong nhóm phát triển: XP kếthợp giữa các vai trò trong nhóm phát triển để tăng sự tương tác và đồng
bộ hóa các hoạt động
Nhược điểm của phương pháp Extreme Programing (XP)
- Đòi hỏi sự cam kết cao đối với các thành viên trong nhóm phát triển:
XP đòi hỏi sự cam kết cao đối với các thành viên trong nhóm phát triển
để đảm bảo chất lượng và hiệu quả của quá trình phát triển
- Không phù hợp với các dự án lớn: XP thường được sử dụng cho các dự
án nhỏ và trung bình Với các dự án lớn và phức tạp, XP có thể gặp khókhăn trong việc quản lý và điều phối các hoạt động
- Yêu cầu sự tương tác chặt chẽ giữa khách hàng và nhóm phát triển: XPyêu cầu sự tương tác chặt chẽ giữa khách hàng và nhóm phát triển đểđảm bảo sự linh hoạt và thích nghi trong quá trình phát triển
Tóm lại, phương pháp Extreme Programming là một phương pháp phát triển phần mềm hiệu quả và linh hoạt, tập trung vào tối đa hóa giá trị khách hàng và chất lượng phần mềm Tuy nhiên, để triển khai thành công
XP, cần đảm bảo sự cam kết và tương tác chặt chẽ giữa các thành viên trong nhóm phát triển và khách hàng, đồng thời xác định được phạm vi và quy mô của dự án để đánh giá khả năng áp dụng XP cho dự án.
1.2.3 Phương pháp Kanban
Ảnh minh họa:
Trang 11Phương pháp Kanban là một phương pháp quản lý sản xuất và quản lý dự
án, có nguồn gốc từ Nhật Bản Kanban có nghĩa là bảng thông tin hoặcbảng điều khiển, và phương pháp Kanban tập trung vào việc quản lý quátrình sản xuất hoặc quản lý dự án thông qua việc sử dụng bảng điều khiển.Bảng Kanban thường bao gồm các cột đại diện cho các giai đoạn khácnhau của quá trình sản xuất hoặc quá trình phát triển dự án Mỗi công việcđược đại diện bằng một thẻ Kanban, và thẻ này sẽ di chuyển từ cột nàysang cột khác để đại diện cho việc hoàn thành một giai đoạn và làm đếngiai đoạn tiếp theo Thông qua việc sử dụng bảng Kanban, các thành viêntrong nhóm phát triển có thể đồng bộ hoá và giám sát tiến độ của dự ánmột cách hiệu quả
Phương pháp Kanban có một số lợi ích, bao gồm:
- Tăng cường khả năng quản lý dự án: Kanban giúp cho các thành viêntrong nhóm phát triển có thể giám sát tiến độ của dự án một cách hiệuquả và đồng bộ hoá các công việc cần làm
Trang 12- Tăng cường khả năng phân chia công việc: Kanban giúp cho các thànhviên trong nhóm phát triển có thể phân chia công việc một cách rõ ràng
và hiệu quả
- Tăng cường khả năng tương tác: Kanban tạo ra một môi trường làmviệc tốt cho các thành viên trong nhóm phát triển có thể tương tác, chia
sẻ thông tin và cải thiện quá trình phát triển
Ngoài ra, Kanban còn có thể được sử dụng trong các lĩnh vực khác nhưquản lý hàng tồn kho, quản lý dịch vụ, quản lý sản xuất, và quản lý quátrình kinh doanh Phương pháp Kanban đang được sử dụng rộng rãi trongcác công ty và tổ chức trên toàn thế giới để tăng cường hiệu quả và chấtlượng quản lý sản xuất và quản lý dự án
Ưu điểm của phương pháp Kanban
- Tăng cường khả năng quản lý dự án: Phương pháp Kanban giúp chocác thành viên trong nhóm phát triển có thể giám sát tiến độ của dự
án một cách hiệu quả và đồng bộ hoá các công việc cần làm
- Tăng cường khả năng phân chia công việc: Kanban giúp cho cácthành viên trong nhóm phát triển có thể phân chia công việc mộtcách rõ ràng và hiệu quả
- Tăng cường khả năng tương tác: Kanban tạo ra một môi trường làmviệc tốt cho các thành viên trong nhóm phát triển có thể tương tác,chia sẻ thông tin và cải thiện quá trình phát triển
- Tăng cường khả năng tập trung vào giá trị khách hàng: Kanban giúpcác nhóm phát triển tập trung vào giá trị khách hàng bằng cách đảmbảo rằng công việc đang được thực hiện có ý nghĩa đối với kháchhàng
- Tăng cường khả năng tối ưu hoá quá trình phát triển: Kanban giúpcác nhóm phát triển tối ưu hoá quá trình phát triển bằng cách loại bỏcác công việc không cần thiết và tối ưu hoá các quy trình làm việc
Trang 13Nhược điểm của phương pháp Kanban
- Khó khăn trong việc quản lý các công việc phức tạp: Nếu dự án cónhiều công việc phức tạp, thì việc quản lý các công việc này trên bảngKanban có thể trở nên khó khăn và phức tạp
- Khó khăn trong việc đạt được tính linh hoạt tối đa: Phương phápKanban có thể gây khó khăn cho các nhóm phát triển trong việc đạtđược tính linh hoạt tối đa nếu không được thực hiện đúng cách
- Khó khăn trong việc quản lý các công việc ưu tiên: Nếu các công việckhông được ưu tiên đúng cách, thì việc quản lý các công việc trên bảngKanban có thể trở nên khó khăn
- Khó khăn trong việc đưa ra quyết định dựa trên dữ liệu: Nếu không có
dữ liệu đầy đủ và chính xác, thì việc đưa ra quyết định dựa trên dữ liệutrong phương pháp Kanban có thể trở nên khó khăn
1.2.4 Phương pháp Lean Software Development
Ảnh minh họa:
Trang 14Phương pháp Lean Software Development (LSD) là một phương pháp pháttriển phần mềm dựa trên triết lý Lean, được phát triển bởi Mary Poppendieckand Tom Poppendieck vào những năm 2000 Phương pháp này tập trung vàoviệc tối ưu hóa quá trình phát triển phần mềm thông qua việc loại bỏ các hoạtđộng không cần thiết và tập trung vào giá trị đối với khách hàng.
Trang 15- Tăng cường khả năng phát triển liên tục: Phương pháp này tập trungvào việc phát triển liên tục và cải thiện quá trình phát triển, giúp tăngcường khả năng phát triển liên tục của dự án.
- Tăng cường tinh thần đồng đội: LSD tạo ra một môi trường làm việctích cực và xây dựng tinh thần đồng đội, giúp cải thiện hiệu suất làmviệc của nhóm phát triển
Tuy nhiên, LSD cũng có một số hạn chế, bao gồm:
- Khó khăn trong việc triển khai: Phương pháp này có thể gặp khó khăntrong việc triển khai do yêu cầu một sự thay đổi về tư duy và phươngpháp làm việc
- Khó khăn trong việc đo lường hiệu quả: LSD tập trung vào giá trị đốivới khách hàng, điều này có thể khó khăn trong việc đo lường hiệu quảcủa dự án
- Khó khăn trong việc áp dụng cho các dự án lớn: Phương pháp này cóthể khó khăn để áp dụng cho các dự án lớn vì yêu cầu sự tập trung cao
độ và sự liên tục trong quá trình phát triển
Về ưu điểm của phương pháp Lean Software Development cũng tương
tự với các phương pháp trên, ngoài ra phương pháp này còn có ưu điểm