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ỘIKHOA 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ìnhNhóm: 01
Lê Minh Tiến Mã SV: 2021604184 Lăng Thảo Văn Mã SV: 2021603882 Trần Đức Huy Mã SV: 2021605056 Lê Minh Tiến Mã SV: 2021604952 Nguyễ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 1TỔNG QUAN VỀ MÔ HÌNH AGILE 1.1 Giới thiệu về mô hình Agile……… ……… 5
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ế ……….…… 22PHẦ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 doanh thu và mở rộng thị trường cho các doanh nghiệp Đặc biệt, trong lĩnh vực thời trang, việc cung cấp một trải nghiệm mua sắm trực tuyến thuận tiện và hiệu quả 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ụ, đồng thời tiếp tục phát triển và hoàn thiện website bán hàng của mình Để đạt được mụ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ì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 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ấ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ình Agile, 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án hà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 trong quá 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 website bá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ại cho 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à theo dõ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 AGILE1.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 trung và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áp phá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ăng thí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ụng rộng rãi trong ngành công nghiệp phần mềm Scrum bao gồm một số thành phần cơ bản như Product Backlog, Sprint Backlog, Daily Scrum , Sprint Review 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át triển, được quản lý bởi Product Owner (người đại diện cho khách hàng hay 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 được tạ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ần giải quyết.
- Sprint Review: là cuộc họp giữa nhóm Scrum và khách hàng để xem xét sản phẩm hoàn thành trong Sprint và đánh giá mức độ hoàn thành cá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ển sả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óa quá trình phát triển và tăng cường khả năng thích nghi trong quá trình phá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á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 sự tương tác và đồng bộ hóa trong nhóm phát triển: Scrum kết hợ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 khai phươ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ầu hoặ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à linhhoạ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ươngtá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ềm thuộc hệ thống Agile, mà tập trung vào việc phát triển phần mềm nhanh chóng và linh hoạt XP sử dụng các chu kỳ phát triển ngắn để tạo điều kiện cho các thành viên trong nhóm phát triển liên tục cải tiến, chia sẻ kinh nghiệm và tạo ra sản phẩm chất lượng cao XP đặt mục tiêu cao về chất lượ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ích hợ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 nghi vớ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át triể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ã
- Testing: Giai đoạn này tập trung vào việc kiểm thử hệ thống, bao gồm kiể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ác thành viên trong nhóm phát triển tập trung vào việc lắng nghe và phản hồ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ất lượ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ất lượ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í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ết hợ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: XP 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 để đả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áttriể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ôngXP, cần đảm bảo sự cam kết và tương tác chặt chẽ giữa các thành viêntrong 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ặc bả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ác nhau 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ày sang cột khác để đại diện cho việc hoàn thành một giai đoạn và làm đến giai đoạn tiếp theo Thông qua việc sử dụng bảng Kanban, các thành viên trong nhóm phát triển có thể đồng bộ hoá và giám sát tiến độ của dự án mộ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ê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.
Trang 12- Tăng cường khả năng phân chia công việc: Kanban giúp cho các thành viê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àm việ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 trong các công ty và tổ chức trên toàn thế giới để tăng cường hiệu quả và chất lượ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 cho cá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ác thành viê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àm việ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úp các nhóm phát triển tập trung vào giá trị khách hàng bằng cách đảm bảo rằng công việc đang được thực hiện có ý nghĩa đối với khách hàng.
- Tăng cường khả năng tối ưu hoá quá trình phát triển: Kanban giúp cá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ảng Kanban 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áp Kanban 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ệc không được ưu tiên đúng cách, thì việc quản lý các công việc trên bảng Kanban 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ệu trong 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át triển phần mềm dựa trên triết lý Lean, được phát triển bởi Mary Poppendieck and Tom Poppendieck vào những năm 2000 Phương pháp này tập trung vào việ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.
LSD có 7 nguyên tắc cơ bản:
- Giá trị đối với khách hàng: Tập trung vào việc cung cấp giá trị cho khách hàng bằng cách đáp ứng các nhu cầu của họ.
- Chất lượng: Tạo ra sản phẩm chất lượng cao bằng cách sử dụng các kỹ thuật kiểm thử tự động và phát triển liên tục.
- Loại bỏ lãng phí: Loại bỏ các hoạt động không cần thiết và tối ưu hoá các quy trình làm việc.
- Tối đa hóa giá trị: Tối đa hóa giá trị thông qua việc tập trung vào các công việc quan trọng nhất và loại bỏ các công việc không cần thiết - Tinh thần đồng đội: Xây dựng tinh thần đồng đội và tạo ra một môi