Với sự phát triểnkhông ngừng của công nghệ và sự thay đổi liên tục trong yêu cầu và mong đợi củakhách hàng, những mô hình phát triển phần mềm linh hoạt và lặp lại đã trở thànhmột lựa chọ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT – HÀN
21IT458 - TRƯƠNG THANH TÙNG 21IT662 - NGUYỄN VĂN VIÊN 20IT761 - TRẦN BẢO LINH Giảng viên hướng dẫn: ThS VÕ VĂN LƯỜNG
Đà Nẵng, ngày 12 tháng 09 năm 2023
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT – HÀN
21IT458 - TRƯƠNG THANH TÙNG 21IT662 - NGUYỄN VĂN VIÊN 20IT761 - TRẦN BẢO LINH Giảng viên hướng dẫn: ThS VÕ VĂN LƯỜNG
Trang 3
MỤC LỤC
MỤC LỤC 1
LỜI MỞ ĐẦU 3
LỜI CẢM ƠN 4
NHẬN XÉT CỦA GIẢNG VIÊN 5
DANH MỤC HÌNH ẢNH 6
CHƯƠNG 1 TỔNG QUAN VỀ MÔ HÌNH XOẮN ỐC 7
1.1 TỔNG QUAN 7
1.1.1 Khái niệm 7
1.1.2 Các giai đoạn của mô hình xoắn ốc 7
1.2 MỤC TIÊU CỦA MÔ HÌNH XOẮN ỐC 7
1.2.1 Quản lý rủi ro 7
1.2.2 Linh hoạt trong thay đổi yêu cầu 7
1.2.3 Đánh giá liên tục và cải tiến 8
1.2.4 Kiểm soát chất lượng 8
1.3 TỔNG KẾT CHƯƠNG MỘT 8
CHƯƠNG 2 PHÂN TÍCH MÔ HÌNH XOẮN ỐC 10
2.1 THU THẬP YÊU CẦU (PLANNING PHASE) 10
2.2 PHÂN TÍCH RỦI RO (RISK ANALYSIS PHASE) 12
2.3 THỰC THI KỸ THUẬT (ENGINEERING PHASE) 13
2.4 ĐÁNH GIÁ (EVALUATION PHASE) 14
2.5 ƯU VÀ NHƯỢC ĐIỂM CỦA MÔ HÌNH XOẮN ỐC 16
2.5.1 Ưu điểm: 16
2.5.2 Nhược điểm: 16
2.5.3 Kết luận 16
CHƯƠNG 3 XÂY DỰNG MÔ HÌNH 17
Trang 43.1 QUẢN LÍ RỦI RO 17
3.2 PHÁT TRIỂN SẢN PHẨM PHỨC TẠP 17
3.3 ĐÁP ỨNG YÊU CẦU THAY ĐỔI 17
3.4 KIỂM SOÁT TIẾN ĐỘ VÀ CHÍ PHÍ 17
3.5 ĐẢM BẢO CHẤT LƯỢNG 17
3.6 PHÁT TRIỂN PHẦN MỀM THEO HƯỚNG AGILE 18
KẾT LUẬN 19
1 KẾT LUẬN 19
TÀI LIỆU THAM KHẢO 20
Trang 5LỜI MỞ ĐẦU
Trong lĩnh vực công nghệ phần mềm, việc lựa chọn mô hình phát triển phùhợp là một yếu tố quan trọng để đảm bảo thành công của dự án Với sự phát triểnkhông ngừng của công nghệ và sự thay đổi liên tục trong yêu cầu và mong đợi củakhách hàng, những mô hình phát triển phần mềm linh hoạt và lặp lại đã trở thànhmột lựa chọn phổ biến
Trong báo cáo này, chúng tôi tập trung vào Spiral model - một mô hình pháttriển phần mềm linh hoạt và lặp lại, được coi là một trong những mô hình pháttriển tiên tiến nhất và hiệu quả trong lĩnh vực công nghệ phần mềm Chúng tôi sẽphân tích quy trình phát triển theo Spiral model, từ giai đoạn lập kế hoạch, phântích yêu cầu, thiết kế, phát triển, kiểm thử cho đến triển khai và bảo trì Chúng tôi
sẽ khám phá cách mà Spiral model kết hợp các phương pháp và nguyên tắc từ các
mô hình khác nhau như mô hình Waterfall và mô hình Agile để tạo ra một quytrình phát triển linh hoạt và phù hợp với môi trường thay đổi
Một phần quan trọng của báo cáo sẽ tập trung vào việc đánh giá các ưu điểm
và hạn chế của Spiral model Chúng tôi sẽ xem xét cách mô hình này giúp giảmthiểu rủi ro, tăng cường kiểm soát dự án và đảm bảo chất lượng sản phẩm phầnmềm Tuy nhiên, chúng tôi cũng sẽ thảo luận về những thách thức mà nhà pháttriển và nhóm dự án có thể gặp phải khi triển khai Spiral model, bao gồm quản lýrủi ro, định lượng và ước lượng công việc, và khả năng thay đổi yêu cầu
Ngoài ra, báo cáo sẽ cung cấp các ví dụ thực tế về việc áp dụng Spiral modeltrong các dự án phần mềm thực tế Chúng tôi sẽ trình bày các trường hợp sử dụngSpiral model trong các ngành công nghiệp khác nhau và phân tích lợi ích mà môhình này mang lại Chúng tôi cũng sẽ đề cập đến những điểm mạnh và hạn chế củaviệc áp dụng Spiral model trong các dự án cụ thể, và cung cấp các lời khuyên vàquy tắc thực tiễn để thành công với mô hình này
Trang 6LỜI CẢM ƠN
Em xin gửi lời cảm ơn sâu sắc và lòng biết ơn chân thành nhất đến thầy.Không đủ lời để diễn đạt được tất cả những tình cảm và tôn trọng của em đối vớithầy Thầy đã là nguồn cảm hứng lớn đối với cuộc sống và sự phát triển của em.Những kiến thức và sự chỉ bảo từ thầy không chỉ giúp em mở rộng kiến thức màcòn giúp em hiểu rõ hơn về bản thân và cuộc sống Em biết rằng, mọi thành tựu và
sự phấn đấu của em không thể thiếu sự hướng dẫn và động viên từ thầy Em xingửi lời cảm ơn tới thầy với lòng biết ơn sâu sắc và tận tâm của mình Sự hiện diệncủa thầy trong cuộc đời của em là một phần quan trọng không thể thiếu và em luôntrân trọng điều đó Xin chân thành cảm ơn thầy một lần nữa vì tất cả những gì thầy
đã làm cho em
Trân trọng !
Sinh viênĐặng Ngọc Mạnh NhậtLương Minh DũngTrương Thanh TùngNguyễn Văn VIênTrần Bảo Linh
Trang 7NHẬN XÉT CỦA GIẢNG VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đ Nng, ngy 12 tháng 09 năm 2023
Giảng viên hướng dẫn
ThS VÕ VĂN LƯỜNG DANH MỤC HÌNH ẢNH
Trang 8Hình 1 1: Các giai đoạn của mô hình xoắn ốc 7
Trang 9CHƯƠNG 1 TỔNG QUAN VỀ MÔ HÌNH XOẮN ỐC
Chương này trình bày khái niệm, nêu các kiến thức, ngôn ngữ, công cụ, mô hình
1.1.2 Các giai đoạn của mô hình xoắn ốc
Hình 1 1: Các giai đoạn của mô hình xoắn ốc
Gồm 4 giai đoạn sau:
Lập kế hoạch - Planning phase
Phân tích rủi ro - Risk analysis phase
Thực thi kỹ thuật - Engineering phase
Đánh giá - Evaluation phase
Trang 101.2 MỤC TIÊU CỦA MÔ HÌNH XOẮN ỐC
1.2.1 Quản lý rủi ro
Mô hình Spiral tập trung vào việc quản lý rủi ro trong quá trình pháttriển phần mềm Mỗi vòng xoắn trong mô hình đều bao gồm việc đánh giá vàgiảm thiểu các rủi ro liên quan đến dự án Qua đó, mô hình Spiral đảm bảorằng các rủi ro được xác định và xử lý sớm, giúp tăng khả năng thành côngcủa dự án
1.2.2 Linh hoạt trong thay đổi yêu cầu
Mô hình Spiral cho phép thay đổi yêu cầu trong quá trình phát triển màkhông gây ảnh hưởng lớn đến dự án Điều này cho phép khách hàng và nhómphát triển điều chỉnh và thích ứng với sự thay đổi của yêu cầu trong suốt quátrình phát triển phần mềm
1.2.3 Đánh giá liên tục và cải tiến
Mô hình Spiral đặt sự chú trọng vào việc đánh giá và cải tiến liên tục.Sau mỗi vòng xoắn, sản phẩm được đánh giá và phản hồi từ khách hàng vànhóm phát triển được thu thập Dựa trên phản hồi này, các cải tiến và điềuchỉnh được áp dụng vào vòng xoắn tiếp theo để nâng cao chất lượng và hiệusuất của phần mềm
1.2.4 Kiểm soát chất lượng
Mô hình Spiral đảm bảo rằng kiểm soát chất lượng được thực hiện trongsuốt quá trình phát triển Các phương pháp kiểm tra và kiểm tra được tích hợptrong từng giai đoạn của mô hình để đảm bảo rằng các sản phẩm phần mềmđáp ứng các tiêu chí chất lượng và yêu cầu của khách hàng
1.3 TỔNG KẾT CHƯƠNG MỘT
Mô hình xoắn ốc là một mô hình phát triển phần mềm kết hợp giữa quy trìnhphát triển tuần tự và linh hoạt Mô hình này nhấn mạnh vào việc kiểm soát rủi rotrong quá trình phát triển và tăng cường sự phản hồi từ khách hàng
Mô hình này được chia thành các vòng lặp (hoặc xoắn) trong đó mỗi vòng lặptương ứng với một giai đoạn phát triển Các giai đoạn bao gồm xác định yêu cầu,phân tích, thiết kế, xây dựng, kiểm thử và đánh giá Mỗi vòng lặp bắt đầu bằngviệc xác định các mục tiêu, lên kế hoạch cho giai đoạn và tiến hành các hoạt động
Trang 11cần thiết Sau đó, sản phẩm phần mềm được kiểm tra và đánh giá để đảm bảo chấtlượng.
Một điểm quan trọng của mô hình xoắn ốc là việc định rõ và ưu tiên rủi ro.Trong mỗi vòng lặp, các rủi ro được xác định và đánh giá, và các biện pháp hợp lýđược áp dụng để giảm thiểu hoặc loại bỏ rủi ro Điều này giúp đảm bảo sự ổn định
và tin cậy của quá trình phát triển
Mô hình xoắn ốc cũng đặc biệt chú trọng vào việc thu thập phản hồi từ kháchhàng và sử dụng nó để cải thiện quá trình phát triển Sau mỗi vòng lặp, sản phẩmphần mềm được đánh giá và đánh giá bởi khách hàng hoặc người dùng cuối, vàphản hồi này được sử dụng để điều chỉnh yêu cầu và phát triển tiếp theo Việc liêntục có phản hồi từ khách hàng giúp đảm bảo rằng sản phẩm cuối cùng đáp ứngđúng nhu cầu và mong đợi của họ
Mô hình xoắn ốc thích hợp cho các dự án phức tạp và lớn, nơi rủi ro cao vàyêu cầu thay đổi thường xuyên Nó kết hợp tính tuần tự của mô hình phát triểnwaterfall với khả năng linh hoạt của mô hình tăng dần
Tóm lại, mô hình xoắn ốc là một phương pháp phát triển phần mềm kết hợptính tuần tự và linh hoạt Nó tập trung vào kiểm soát rủi ro và sử dụng phản hồi đểcải thiện quá trình phát triển Mô hình này phù hợp cho các dự án phức tạp và rủi
ro cao, nơi yêu cầu thay đổi thường xuyên
Trang 12CHƯƠNG 2 PHÂN TÍCH MÔ HÌNH XOẮN ỐC
Chương này trình bày các yêu cầu, các giai đoạn thiết kế để thực hiện nhằm giải
quyết vấn đề Mô hình xoắn ốc.
2.1 THU THẬP YÊU CẦU (PLANNING PHASE)
Giai đoạn này tập trung vào việc xác định rõ ràng mục tiêu và các yêu cầu của
dự án
Thu thập yêu cầu khách hàng :
Yêu cầu từ khách hàng hoặc người sử dụng: Đây là thông tin về mụctiêu chung của dự án, các yêu cầu chức năng và phi chức năng màkhách hàng hoặc người sử dụng mong muốn dự án đạt được
Thông tin về phạm vi dự án: Định nghĩa rõ ràng về phạm vi và giới hạncủa dự án để xác định được nhiệm vụ cần hoàn thành
Đánh giá rủi ro: Xem xét các yếu tố rủi ro tiềm năng có thể ảnh hưởngđến dự án và đưa ra các biện pháp phòng ngừa
Sau đây là mẫu câu hỏi khi hỏi khách hàng:
Template thu thập yêu cầu khách hàng cho mô hình Spiral:
1 Thông tin về dự án:
- Tên dự án:
- Mô tả ngắn về dự án:
- Mục tiêu chung của dự án:
2 Yêu cầu cụ thể của khách hàng:
- Vui lòng mô tả những yêu cầu chính mà khách hàng đặt cho dự án
- Có các yêu cầu không chắc chắn hoặc cần thêm sự xác minh?
3 Ưu tiên yêu cầu:
- Vui lòng xác định mức độ ưu tiên của mỗi yêu cầu (Ví dụ: cao,trung bình, thấp)
- Các yêu cầu nào được xem là quan trọng nhất và cần thiết cho giaiđoạn đầu tiên của dự án?
4 Sự chuẩn bị và phạm vi dự án:
Trang 13dự án?
- Phạm vi dự án có bị hạn chế không? (Ví dụ: thời gian, nguồn lực,ngân sách)
5 Đánh giá rủi ro:
- Có những rủi ro tiềm năng nào liên quan đến dự án?
- Các rủi ro này có thể ảnh hưởng đến việc đáp ứng yêu cầu củakhách hàng không?
7 Khả năng thay đổi:
- Khách hàng có sẵn lòng chấp nhận những thay đổi trong quá trìnhphát triển dự án không?
- Quá trình thay đổi yêu cầu được điều chỉnh như thế nào trong môhình Spiral?
Câu hỏi mẫu:
- Yêu cầu chính của dự án là gì?
- Có những yêu cầu nào không chắc chắn hoặc cần thêm sự xácminh?
- Trong số các yêu cầu, yêu cầu nào được xem là quan trọng nhất vàcần thiết cho giai đoạn đầu tiên của dự án?
- Có sẵn các tài liệu phân tích yêu cầu hoặc thiết kế sơ bộ nàokhông?
- Có những rủi ro tiềm năng nào liên quan đến dự án?
- Khách hàng có sẵn lòng chấp nhận những thay đổi trong quá trìnhphát triển dự án không?
- Làm thế nào để quá trình thay đổi yêu cầu được điều chỉnh trong
mô hình Spiral?
Xử lý các yêu cầu:
Trang 14 Hiểu yêu cầu: Phân tích và hiểu mục tiêu, yêu cầu và mong đợi củakhách hàng hoặc người sử dụng.
Xác định mục tiêu: Định rõ mục tiêu chính của dự án, bao gồm kết quả
Kết quả thu được sau khi xử lí:
Mục tiêu rõ ràng: Xác định mục tiêu chính của dự án, giúp tập trungcông việc và định hướng cho các giai đoạn tiếp theo
Yêu cầu định rõ: Xác định các yêu cầu chức năng và phi chức năng cầnthiết cho dự án, cung cấp khung phạm vi cho quy trình phát triển
Ví dụ: Khách hàng muốn xây dựng một trang web thương mại điện tử để bán
hàng trực tuyến Yêu cầu bao gồm hỗ trợ thanh toán trực tuyến, quản lý sảnphẩm, giỏ hàng và giao diện người dùng thân thiện…
2.2 PHÂN TÍCH RỦI RO (RISK ANALYSIS PHASE)
Giai đoạn này tập trung vào việc phân tích rủi ro và lập kế hoạch cho cácvòng lặp tiếp theo Các rủi ro có thể liên quan đến công nghệ, tài chính, thời gian,quy mô dự án, hoặc các yếu tố khác Đánh giá rủi ro giúp xác định các biện phápphòng ngừa và quản lý rủi ro phù hợp
Input:
Kết quả của giai đoạn 1 (Thu thập yêu cầu: Planning Phase) - Xác địnhmục tiêu: Bao gồm mục tiêu, yêu cầu và rủi ro đã được xác định tronggiai đoạn trước
Thông tin về rủi ro: Bao gồm danh sách các rủi ro tiềm năng, xác địnhcác nguy cơ và tác động của chúng đối với dự án
Processing:
Phân tích rủi ro: Đánh giá các rủi ro tiềm năng và xác định xác suất xảy
ra và mức độ tác động của chúng
Trang 15 Xác định biện pháp phòng ngừa: Đề xuất các biện pháp để giảm thiểuhoặc loại bỏ các rủi ro tiềm năng.
Lập kế hoạch quản lý rủi ro: Xác định các biện pháp và kế hoạch đểquản lý và giảm thiểu rủi ro trong quá trình dự án
Output:
Bảng đánh giá rủi ro: Cung cấp thông tin về các rủi ro tiềm năng, xácsuất xảy ra và mức độ tác động của chúng, giúp định hướng các biệnpháp phòng ngừa
Kế hoạch quản lý rủi ro: Đưa ra kế hoạch chi tiết về cách quản lý vàgiảm thiểu rủi ro trong suốt quá trình dự án
2.3 THỰC THI KỸ THUẬT (ENGINEERING PHASE)
Giai đoạn này tập trung vào việc phát triển và xây dựng phần mềm, sản phẩmhoặc hệ thống dự án dựa trên các yêu cầu đã được xác định
Input:
Kết quả của giai đoạn 1 (Thu thập yêu cầu: Planning phase) và 2 (Phântích rủ ro: Risk analysis phase): Bao gồm mục tiêu, yêu cầu, kế hoạchquản lý rủi ro và thông tin về rủi ro đã được xác định trong giai đoạntrước
Thiết kế và tài liệu kỹ thuật: Bao gồm các thiết kế chi tiết và tài liệuhướng dẫn cần thiết cho việc phát triển và xây dựng
Processing:
Phát triển sản phẩm: Thực hiện các công việc phát triển phần mềm, sảnphẩm hoặc hệ thống dự án dựa trên thiết kế và yêu cầu đã được xácđịnh
Ví dụ: Bạn sử dụng ngôn ngữ lập trình như HTML, CSS và JavaScript
để xây dựng giao diện trang web Bạn sử dụng một hệ quản trị cơ sở dữliệu như MySQL để lưu trữ thông tin sản phẩm và đơn hàng Bạn cũng
có thể sử dụng một khung làm việc như Laravel hoặc Django để pháttriển ứng dụng web
Xây dựng và kiểm tra: Tiến hành xây dựng và kiểm tra sản phẩm, đảmbảo tính chính xác và đáp ứng các yêu cầu đã đề ra
Output:
Trang 16 Sản phẩm phát triển: Đạt được sản phẩm, phần mềm hoặc hệ thống dự
án theo yêu cầu đã định
Kết quả kiểm thử: Các báo cáo kiểm thử và kết quả của quá trình kiểmthử, đảm bảo tính chính xác và đáp ứng yêu cầu đã đề ra
Ví dụ: Bạn kiểm tra chức năng mua hàng, thanh toán và đánh giá sản phẩm
để đảm bảo chúng hoạt động đúng và không có lỗi Bạn cũng kiểm tra giaodiện trên các trình duyệt khác nhau để đảm bảo tính tương thích
2.4 ĐÁNH GIÁ (EVALUATION PHASE)
Giai đoạn này tập trung vào việc đánh giá sản phẩm phần mềm và nhận phêduyệt từ khách hàng để tiếp tục với vòng lặp tiếp theo Khách hàng có cơ hội xemxét và đánh giá sản phẩm phần mềm để đảm bảo rằng nó đáp ứng các yêu cầu vàmong đợi của họ Quá trình này có thể bao gồm các hoạt động sau:
Đánh giá hiệu suất:
Khách hàng có thể kiểm tra hiệu suất của phần mềm, bao gồm tốc độ
xử lý, thời gian đáp ứng và khả năng chịu tải
Đảm bảo rằng phần mềm hoạt động một cách hiệu quả và đáp ứngđược yêu cầu về hiệu suất
Phê duyệt giao diện người dùng:
Khách hàng sẽ xem xét và đánh giá giao diện người dùng của phầnmềm
Kiểm tra tính trực quan, sử dụng dễ dàng và trải nghiệm người dùngtổng thể
Đánh giá này giúp đảm bảo rằng giao diện người dùng đáp ứng đượcnhu cầu và mong đợi của người dùng cuối
Kiểm tra tính bảo mật:
Khách hàng có thể yêu cầu kiểm tra tính bảo mật của phần mềm
Đảm bảo rằng các biện pháp bảo mật đã được triển khai và thông tin
Trang 17Phê duyệt chung:
Khách hàng sẽ đưa ra quyết định phê duyệt hoặc từ chối phiên bảnphần mềm hiện tại dựa trên các đánh giá và kiểm tra trên
Nếu phiên bản đáp ứng các yêu cầu và mong đợi, nó sẽ được phê duyệt
để tiếp tục vào vòng lặp tiếp theo Ngược lại, nếu có các vấn đề cầnđiều chỉnh hoặc sửa đổi, phiên bản sẽ được từ chối và quay trở lại giaiđoạn phát triển và kiểm tra để cải thiện
Giai đoạn này tập trung vào việc đánh giá lại các rủi ro đã xác định vàphân tích hiệu quả của các biện pháp phòng ngừa đã áp dụng
Input:
Kết quả của giai đoạn 1 (Thu thập yêu cầu: Planning phase), 2 (Phântích rủ ro: Risk analysis phase) và 3 (Thực thi kỹ thuật: Engineeringphase): Bao gồm mục tiêu, yêu cầu, kế hoạch quản lý rủi ro, thông tinrủi ro, sản phẩm phát triển và kết quả kiểm thử
Processing:
Đánh giá rủi ro: Đánh giá lại các rủi ro đã xác định, xem xét xem chúng
đã xảy ra hay không và có tác động đến dự án như thế nào
Phân tích hiệu quả: Đánh giá hiệu quả của các biện pháp phòng ngừa
đã áp dụng và xem xét xem chúng đã giảm thiểu hoặc loại bỏ rủi ro như
Đề xuất cải tiến: Đưa ra các đề xuất cải tiến để nâng cao hiệu quả quản
lý rủi ro và đảm bảo sự thành công của dự án
Ví dụ: Bạn triển khai trang web lên một máy chủ web công cộng hoặc một
môi trường đám mây như AWS hoặc Google Cloud Bạn theo dõi hiệu suấtcủa trang web, sao lưu và bảo vệ dữ liệu, và cập nhật các phiên bản mới đểcải thiện tính ổn định và bảo mật
2.5 ƯU VÀ NHƯỢC ĐIỂM CỦA MÔ HÌNH XOẮN ỐC
2.5.1 Ưu điểm: