Nhiều tổ chức và công ty áp dụng Agile không chỉ trong phát triển phần mềm mà còn trong các lĩnh vực khác như marketing, quản lý sản phẩm và dịch vụ khách hàng.Hiện tại: Agile vẫn tiếp t
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
Trang 2MỤC LỤC Trang LỜI NÓI ĐẦU
Chương 1: Cơ sở lý thuyết về mô hình tiến trình phần mềm Agile
1.1 GIỚI THIỆU TỔNG QUÁT VỀ MÔ HÌNH AGILE
1.1.1 Lịch sử hình thành của mô hình Agile 1
1.1.2 Những khái niệm cơ bản 1
1.1.3 Nguyên tắc mô hình Agile 2
1.1.4 Các phương pháp Agile phổ biến 3
1.1.5 Đặc trưng của mô hình Agile 3
1.2 CÁC HOẠT ĐỘNG TRONG MÔ HÌNH AGILE 1.2.1 Lập kế hoạch (Sprint Planning) 4
1.2.2 Phân tích yêu cầu (Requirements Analysis) 4
1.2.3 Thiết kế (Design) 5
1.2.4 Mã hóa (Coding) 5
1.2.5 Kiểm thử đơn vị (Unit Testing) 5
1.2.6 Kiểm tra chấp nhận (Acceptance Testing) 5
Chương 2: Đặc tả yêu cầu cho website bán thiết bị gia dụng 2.1 GIỚI THIỆU CHUNG VỀ WEBSITE BÁN 6
THIẾT BỊ GIA DỤNG 2.2 MÔ TẢ CHUNG VỀ WEBSITE 8
2.2.1 Tổng quan về website bán thiết bị gia dụng 9
2.2.2 Các chức năng chính của trang web bán thiết bị gia dụng 9
2.2.3 Các ràng buộc tổng thể 10
2.3 ĐẶC TẢ YÊU CẦU CHI TIẾT 11
2.3.1 Yêu cầu chức năng giới thiệu
a Giới thiệu chức năng 12
b Dữ liệu vào 12
c Xử lý 12
d Kết quả 12
2.3.2 Yêu cầu chức năng sản phẩm a Giới thiệu chức năng 13
b Dữ liệu vào 13
c Xử lý 14
d Kết quả 14
Trang 32.3.3 Yêu cầu chức năng dịch vụ
a Giới thiệu chức năng 15
b Dữ liệu vào 15
c Xử lý 15
d Kết quả 15
2.3.4 Yêu cầu chức năng tin tức a Giới thiệu chức năng 16
b Dữ liệu vào 16
c Xử lý 16
d Kết quả 16
2.3.5 Yêu cầu chức năng hỗ trợ khách hàng a Giới thiệu chức năng 16
b Dữ liệu vào 17
c Xử lý 17
d Kết quả 17
2.3.6 Yêu cầu chức năng thanh toán hàng và khuyến mãi a Giới thiệu chức năng 17
b Dữ liệu vào 17
c Xử lý 18
d Kết quả 19
2.3.7 Yêu cầu chức năng tối ưu hóa a Giới thiệu chức năng 20
b Dữ liệu vào 20
c Xử lý 20
d Kết quả 20
KẾT LUẬN 21
TÀI LIỆU THAM KHẢO 21
LỜI NÓI ĐẦU
Trang 4Website bán thiết bị gia dụng là trang web trực tuyến cung cấp đa dạng các sản phẩm gia dụng, phục vụ nhu cầu sinh hoạt và tiện nghi cho cuộc sống Website này mang đến cho khách hàng trải nghiệm mua sắm tiện lợi, nhanh chóng và hiệu quả với những ưu điểm vượt trội so với phương thức mua sắm truyền thống.
Chúng em xin cảm ơn cô Nguyễn Thị Mỹ Bình – giảng viên đã hướng dẫn tận tình, chu đáo giúp nhóm chúng em có thể hoàn thành được nội dung của đề tài này Chúng em cũng gửi lời cảm ơn đến các thầy cô trong khoa đã giúp chúng em trang bị những kiến thức cần thiết để chúng em có đủ khả năng để thực hiện bài tập lớn
Tuy đã cố gắng hết sức để nghiên cứu, tìm hiểu cũng như thực hiện đề tài, nhóm chúng
em không thể tránh khỏi những sai sót, mong thầy cô và các nhóm khác nhận xét, đánh giá để bài tập lớn của nhóm chúng em được hoàn thiện hơn
Nhóm 13
Trang 5Chương 1: Cơ sở lý thuyết về mô hình tiến trình phần mềm Agile 1.1 GIỚI THIỆU TỔNG QUAN VỀ MÔ HÌNH AGILE
1.1.1 Lịch sử hình thành của mô hình Agile
Trong những năm 1990: Các phương pháp Agile đầu tiên đã xuất hiện trong giai đoạn này, bao gồm Scrum, Crystal, DSDM (Dynamic Systems Development Method) và Extreme Programming (XP) Các phương pháp này tập trung vào tính linh hoạt và giảm thiểu rủi ro trong quá trình phát triển phần mềm
Năm 2001: Hội nghị Agile tại Snowbird, Utah, Mỹ là một sự kiện quan trọng trong lịch
sử Agile Tại hội nghị này, một nhóm các chuyên gia phát triển phần mềm đã đưa ra
"Tuyên bố Agile" (Agile Manifesto) Tuyên bố này ghi lại các nguyên tắc và giá trị cốt lõi của Agile, định nghĩa rõ nét phương pháp phát triển này và đánh dấu sự ra đời chính thức của Agile
Sau năm 2001: Agile tiếp tục phát triển và trở thành một xu hướng quản lý dự án phổ biến trên toàn cầu Nhiều tổ chức và công ty áp dụng Agile không chỉ trong phát triển phần mềm mà còn trong các lĩnh vực khác như marketing, quản lý sản phẩm và dịch vụ khách hàng
Hiện tại: Agile vẫn tiếp tục phát triển và thích ứng với sự biến đổi trong ngành công nghiệp và nhu cầu của khách hàng Các biến thể của Agile, như SAFe, Lean Agile và DevOps, đã được phát triển để đáp ứng nhu cầu phát triển phần mềm quy mô lớn và quản lý dự án phức tạp hơn
1.1.2 Những khái niệm cơ bản
Phần mềm (Software): Theo nghĩa hẹp là một tập hợp các câu lệnh được viết bằng ngôn ngữ lập trình, giải quyết một bài toán cụ thể
Công nghệ (Engineering): Là cách sử dụng các công cụ và kỹ thuật để giải quyết vấnđề
Công nghệ phần mềm (SE – Software Engineering): Theo IEEE là việc áp dụng phương pháp nghiên cứu và tiếp cận có hệ thống, có quy tắc, có thể xác định số lượng để phát triển, vận hành và bảo trì phần mềm; nghĩa là áp dụng kỹ thuật vào phần mềm
Agile: Agile là một triết lý quản lý dự án và phát triển phần mềm dựa trên việc làm việc theo nhóm nhỏ, linh hoạt và tương tác liên tục với khách hàng
Scrum: Scrum là một trong những phương pháp quản lý dự án phổ biến trong Agile
Nó sử dụng một chu kỳ phát triển ngắn gọi là “Sprint” và các cuộc họp hàng ngày đểtăng cường sự tương tác và kiểm soát tiến độ
1
Trang 6Sprint: Sprint là một khoảng thời gian ngắn, thường từ 1 đến 4 tuần, trong đó nhóm phát triển thực hiện công việc và tạo ra một phiên bản có thể chạy được của phần mềm.
Product Owner: Product Owner là người đại diện cho khách hàng hoặc người sử dụng cuối trong một dự án Agile Product Owner xác định và ưu tiên yêu cầu, cung cấp phản hồi và quyết định về phạm vi và ưu tiên của sản phẩm
Scrum Master: Scrum Master là người đảm bảo rằng nhóm phát triển tuân thủ quy trình Scrum Họ loại bỏ các rào cản và giúp đỡ nhóm phát triển hoạt động một cách hiệu quả
Đánh giá hài lòng của khách hàng (Customer Satisfaction): Trong Agile, việc tạo ra
sự hài lòng cho khách hàng được coi là mục tiêu hàng đầu Việc cung cấp sản phẩm
có giá trị và sử dụng phản hồi của khách hàng để cải thiện sản phẩm là quan trọng
1.1.3 Nguyên tắc của mô hình Agile
1 Thỏa mãn yêu cầu của khách hàng là ưu tiên hàng đầu thông qua việc chuyển giao những sản phẩm giá trị trong thời gian sớm và liên tục
2 Sẵn sàng cho những thay đổi, thậm chí những thay đổi này xuất hiện muộn Quy trình Agile linh hoạt trong việc ứng phó với sự thay đổi từ khách hàng, gia tăng tính cạnh tranh cho khách hàng
3 Cung cấp phần mềm hoạt động được trong thời gian ngắn từ vài tuần đến vài tháng, với sự ưu tiên thời gian ngắn hơn
4 Cộng tác cùng làm việc: Người kinh doanh và người lập trình phải làm việc cùng nhau mỗi ngày trong suốt dự án
5 Tạo động lực làm việc: Xây dựng các dự án xung quanh cá nhân có động lực Cho
họ môi trường làm việc thuận lợi và sự hỗ trợ cần thiết Hãy có niềm tin rằng họ sẽ làm tốt công việc của mình
6 Đối thoại trực tiếp mặt đối mặt là phương pháp hữu hiệu nhất trong việc truyền đạt thông tin
7 Phần mềm chạy được là thước đo chính của tiến độ dự án
8 Phát triển bền vững và duy trì việc phát triển liên tục Các nhà tài trợ, người phát triển và người dùng nên có thể duy trì tốc độ không đổi vô thời hạn
9 Liên tục quan tâm đến kỹ thuật và thiết kế để tăng cường tính linh hoạt
10.Đơn giản - nghệ thuật tối đa hóa số lượng công việc không làm là điều cần thiết.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.Tự phản ánh thường xuyên Trong khoảng thời gian đều đặn, nhóm phản ánh về cáchtrở nên hiệu quả hơn, sau đó điều chỉnh cho phù hợp
Trang 71.1.4 Các phương pháp Agile phổ biến
Extreme Programming (XP): Ý tưởng của phương pháp Extreme Programming bắt đầu tại Chrysler Motors vào năm 1996 với dự án Chrysler Comprehensive Compensation System (C3) Nhóm phát triển dự án này, dẫn dắt bởi Kent Beck, tập trung vào việc phát hành mã chất lượng cao nhanh hơn và hiệu quả hơn Phương pháp này tập trung vào chất lượng và linh hoạt trong quá trình phát triển.Scrum: Scrum là một phương pháp quản lý dự án phổ biến trong Agile Nó sử dụng các hộp thời gian cụ thể, được gọi là Sprint, để tập trung và tăng cường sự tương tác và kiểm soát tiến độ
Feature-Driven Development (FDD): FDD được hình thành bởi Jeff De Luca vào năm 1997, tập trung vào việc cung cấp dần dần các tính năng tập trung vào người dùng Phương pháp này kết hợp các khía cạnh của quy trình pha trộn và mô hình hóa đối tượng
Dynamic Systems Development Method (DSDM): DSDM là một phương pháp phát triển sản phẩm tập trung vào việc tạo ra các nguyên mẫu hoạt động hiệu quả nhất có thể bằng cách giảm thiểu chi phí và sự nghiêm ngặt của quy trình.Lean Software Development: Lean Software Development bắt nguồn từ ý tưởng
về sản xuất tinh gọn, tập trung vào loại bỏ lãng phí và tối ưu hóa giá trị cho kháchhàng trong quá trình phát triển phần mềm
Kanban Method: Phương pháp Kanban được phát triển để cung cấp phần mềm
"đúng lúc" và tối ưu hóa quy trình phát triển Nó sử dụng một hệ thống quản lý quy trình trực quan để theo dõi và điều chỉnh quy trình sản xuất
1.1.5 Đặc trưng của mô hình Agile
- Ưu điểm của mô hình Agile:
Khách hàng thường xuyên có cơ hội thấy và trải nghiệm thực tế sản phẩm được chuyển giao từng giai đoạn, giúp họ có những quyết định và thay đổi trong quá trình phát triển sản phẩm
Khách hàng có nhận thức mạnh mẽ về quyền sở hữu trong quá trình làm việc trựctiếp với nhóm dự án
Với phương pháp quản lý Agile, sản phẩm có thể chuyển giao nhanh với những tính năng hoàn thiện cơ bản
Sự phát triển tập trung vào người dùng cuối cùng hơn, vì sự tương tác thường xuyên và trực tiếp với khách hàng trong quá trình thực hiện
- Nhược điểm của mô hình Agile:
3
Trang 8Phụ thuộc vào khách hàng: Mức độ tham gia của khách hàng rất cao đôi khi là vấn đề cho một số khách hàng – những người không thật sự hứng thú với cách tiếp cận này.
Mô hình Agile thật sự hiệu quả khi các team member hoàn toàn tập trung vào dự án
Ảnh hưởng tới tiến độ dự án: Giao hàng đúng tiến độ và việc thường xuyên thay đổi mức độ ưu tiên, có khả năng dẫn đến một số tính năng không được chuyển giao đúng thời hạn
Phát sinh chi phí dự án: Phát sinh thêm một số sprint nếu cần thiết và ảnh hưởng đến chi phí dự án
- Những dự án áp dụng được mô hình Agile:
Khi dự án có những thay đổi cần thiết phải thực hiện
Các yêu cầu mới ít ảnh hưởng tới lịch trình dự án
Phát triển dự án phần mềm cần có sự linh động
1.2 CÁC HOẠT ĐỘNG TRONG MÔ HÌNH AGILE
Các phương pháp Agile chia sản phẩm thành các bản xây dựng gia tăng nhỏ Các bản dựng này được cung cấp trong các lần lặp lại Mỗi lần lặp lại thường kéo dài từ khoảng một đến ba tháng Mỗi lần lặp lại liên quan đến các nhóm chức năng chéo làm việc đồng thời trên các lĩnh vực khác nhau như sau:
1.2.1 Lập kế hoạch (Sprint Planning)
Lập kế hoạch là hoạt động quan trọng trong Agile giúp xác định các công việc cần thực hiện trong sprint tiếp theo Đầu tiên, các thành viên trong nhóm phát triển sẽ xem lại và đánh giá kết quả của sprint trước đó, từ đó đưa ra các bài học rút ra để cải tiến trong sprint tiếp theo Sau đó, nhóm phát triển sẽ tham gia và đưa ra các ước tính về thời gian
và khối lượng công việc cần thực hiện để hoàn thành các yêu cầu đã được đưa ra Kế hoạch sprint cũng giúp nhóm phát triển đưa ra các mục tiêu rõ ràng cho mỗi sprint
1.2.2 Phân tích yêu cầu (Requirements Analysis)
Phân tích yêu cầu là quá trình thu thập, phân tích và hiểu các yêu cầu của khách hàng để đảm bảo rằng những yêu cầu đó được hiểu đúng và đầy đủ Các nhà phát triển sẽ phân tích và đánh giá các yêu cầu, xác định các ràng buộc và các yêu cầu bổ sung để hoàn thành sản phẩm phần mềm Quá trình phân tích yêu cầu cũng cần phải đảm bảo rằng các yêu cầu đó được sắp xếp và xác định ưu tiên để phát triển phần mềm
Trang 91.2.3 Thiết kế (Design)
Thiết kế là hoạt động tập trung vào việc thiết kế kiến trúc phần mềm để đảm bảo rằng nó đáp ứng các yêu cầu và mục tiêu được đề ra Thiết kế bao gồm nhiều khía cạnh, bao gồm cách tổ chức mã nguồn, lựa chọn công nghệ, kiến trúc hệ thống, và thiết kế giao diện người dùng Kế hoạch thiết kế phần mềm cũng cần đảm bảo tính linh hoạt, đảm bảo rằng kiến trúc có thể thay đổi khi cần thiết để phù hợp với các yêu cầu mới
1.2.4 Mã hóa (Coding)
Là quá trình chuyển đổi thiết kế thành mã nguồn và triển khai phần mềm Các nhà phát triển cần tuân thủ các tiêu chuẩn mã hóa và quy trình kiểm tra để đảm bảo rằng mã nguồnđược viết tốt và dễ bảo trì
1.2.5 Kiểm thử đơn vị (Unit Testing)
Là quá trình kiểm tra các thành phần của phần mềm để đảm bảo chức năng hoạt động đúng và tương thích với các thành phần khác Các nhà phát triển thực hiện kiểm thử đơn
vị như kiểm tra hàm, lớp và module để đảm bảo rằng chúng hoạt động đúng
1.2.6 Kiểm tra chấp nhận (Acceptance Testing)
Là quá trình kiểm tra phần mềm với các yêu cầu của khách hàng để đảm bảo rằng phần mềm đã đáp ứng các yêu cầu và chức năng được đề ra ban đầu Kiểm tra chấp nhận thường được thực hiện bởi khách hàng hoặc bên liên quan khác
Các quy trình kiểm thử đơn vị và kiểm tra chấp nhận đóng vai trò quan trọng trong quá trình phát triển phần mềm, đảm bảo chất lượng sản phẩm và sự hài lòng của khách hàng Quá trình kiểm thử đơn vị được thực hiện sớm trong quá trình phát triển phần mềm để xác định và khắc phục các lỗi cụ thể của từng thành phần Nó giúp đảm bảo rằng các thành phần hoạt động đúng và tương thích với nhau trước khi được kết hợp để tạo thành phần mềm hoàn chỉnh Vào cuối quá trình lặp lại, sản phẩm được đưa đến cho khách hàng và các bên liên quan quan trọng
Chương 2: Đặc tả yêu cầu cho website bán thiết bị gia dụng
5
Trang 102.1 GIỚI THIỆU CHUNG VỀ WEBSITE BÁN THIẾT BỊ GIA DỤNG
Website bán thiết bị gia dụng là một nền tảng trực tuyến chuyên cung cấp các sản phẩm và dịch vụ liên quan đến thiết bị gia dụng cho gia đình và công nghiệp Đây làmột điểm đến đáng tin cậy cho người tiêu dùng khi họ cần mua sắm các sản phẩm như máy lọc nước, máy giặt, tủ lạnh, máy lạnh, bếp từ, lò vi sóng, máy xay sinh tố, máy hút bụi và nhiều sản phẩm khác
Trên website này, người dùng có thể tìm thấy một loạt các sản phẩm từ các thương hiệu nổi tiếng và đáng tin cậy Thông tin chi tiết về từng sản phẩm thường được cung cấp, bao gồm mô tả, hình ảnh, đánh giá từ người dùng và giá cả Một số website cung cấp cả các hướng dẫn sử dụng và hỗ trợ sau bán hàng để đảm bảo sự hài lòng của khách hàng
Ngoài việc mua sắm trực tuyến, một số website cũng có cửa hàng vật lý hoặc hệ thống cửa hàng liên kết, cho phép khách hàng có thể thực hiện mua sắm trực tiếp nếu họ muốn kiểm tra và thử nghiệm sản phẩm trước khi mua
Các dịch vụ giao hàng và chính sách đổi trả linh hoạt thường được cung cấp để đảmbảo sự thuận tiện và tin cậy cho khách hàng Ngoài ra, các chương trình khuyến mãi
và ưu đãi đặc biệt thường được tổ chức để thu hút khách hàng và tăng cường trải nghiệm mua sắm trực tuyến
Trang web bán đồ cũng có thể cung cấp nhiều dịch vụ, chẳng hạn như:
Trang 111 Sản phẩm đa dạng: Website này thường cung cấp một loạt các sản phẩm từ các thương hiệu khác nhau Điều này bao gồm từ các sản phẩm phổ biến đến các sản phẩm mới nhất và tiên tiến nhất trên thị trường.
2 Đánh giá và đánh giá sản phẩm : Các khách hàng thường có thể xem xét và đánh giá sản phẩm, giúp người mua có cái nhìn tổng quan về chất lượng và hiệu suất của sản phẩm trước khi mua
3 Thông tin sản phẩm chi tiết: Thông tin chi tiết về các sản phẩm, bao gồm thông
số kỹ thuật, tính năng, hình ảnh và video minh họa, giúp người mua hiểu rõ về sản phẩm trước khi quyết định mua
4 Chính sách bảo hành và đổi trả: Các website này thường cung cấp thông tin về chính sách bảo hành và đổi trả sản phẩm, giúp người mua an tâm khi mua hàng trực tuyến
5 Thanh toán và giao hàng: Các phương thức thanh toán đa dạng và tiện lợi, bao gồm thanh toán trực tuyến, thanh toán khi nhận hàng (COD), thẻ tín dụng, ví điện
tử, và PayPal Ngoài ra, các dịch vụ giao hàng có thể được cung cấp để đảm bảo hàng hóa được giao đúng thời hạn và an toàn
6 Chăm sóc khách hàng: Một số website bán đồ công nghệ cung cấp dịch vụ chăm sóc khách hàng thông qua các kênh trực tuyến như chat trực tuyến, điện thoại hoặc email để hỗ trợ khách hàng trong quá trình mua sắm và sau khi mua hàng
7 Khuyến mãi và ưu đãi: Các website này thường có các chương trình khuyến mãi, giảm giá và ưu đãi đặc biệt để thu hút và giữ chân khách hàng
7
Trang 128 Bảo mật thông tin cá nhân: Bảo vệ thông tin cá nhân của khách hàng là một ưu tiên quan trọng Các website bán đồ công nghệ thường có các biện pháp bảo mật để đảm bảo thông tin cá nhân của khách hàng được bảo vệ và không bị lộ ra ngoài.
2.2 MÔ TẢ CHUNG VỀ WEBSITE
Website bán thiết bị gia dụng là một nền tảng trực tuyến cung cấp đa dạng các sản
phẩm và dịch vụ liên quan đến thiết bị gia dụng cho gia đình và công nghiệp Trang web này cung cấp một trải nghiệm mua sắm thuận tiện và đáng tin cậy cho người tiêu dùng, cho phép họ lựa chọn từ một loạt các sản phẩm từ các thương hiệu uy tín.Các sản phẩm được bày bán trên website này có thể bao gồm các thiết bị như máy lọc nước, máy giặt, tủ lạnh, máy lạnh, bếp từ, lò vi sóng, máy xay sinh tố, máy hút bụi, và nhiều sản phẩm khác để phục vụ nhu cầu sử dụng hàng ngày của gia đình.Thông thường, các website bán thiết bị gia dụng cũng cung cấp thông tin chi tiết về sản phẩm, bao gồm mô tả, hình ảnh, đánh giá từ người dùng, và giá cả Ngoài ra, họ cũng có thể cung cấp các dịch vụ hỗ trợ như hướng dẫn sử dụng, chăm sóc sau bán hàng, và dịch vụ giao hàng nhanh chóng và đáng tin cậy
Một số website bán thiết bị gia dụng còn có chính sách đổi trả linh hoạt và chương trình khuyến mãi để thu hút khách hàng Đồng thời, họ thường có các kênh liên lạc như chat trực tuyến, điện thoại hoặc email để hỗ trợ khách hàng trong quá trình mua sắm và sau khi mua hàng