Các mô hình phát triển phần mềm truyền thống

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Thiết kế và triển khai hệ thống phát triển phần mềm tự động và an toàn theo mô hình DevSecOps (Trang 28 - 32)

CƠ SỞ LÝ THUYET

2.1 Các mô hình phát triển phần mềm truyền thống

Sự phát triển nhanh chóng của thị trường phát triển phần mềm đã và đang đặt ra những thách thức cho việc xây dựng một quy trình phát triển phần mềm nhanh chóng

và mang lại hiệu quả cao nhất. Những mô hình phát triển phần mềm cũ không đáp ứng được yêu cầu của thị trường đang dan bị thay thế bởi những mô hình mới phù hợp hơn.

2.1.1 Waterfall

Mô hình phát triển phần mềm thác nước (Waterfall) được nhắc đến lần đầu tiên

vào năm 1970 trong một bài báo của Winston W. Royce. Trong bài báo này, đây là một

mô hình phát triển phần mềm khả thi, hạn chế những rủi ro trong quá trình phát triển phần mềm và cung cấp được các sản phẩm theo yêu cầu. Tuy nhiên, Winston W. Royce không sử dụng thuật ngữ waterfall để gọi tên mô hình lúc này [7].

Mô hình Waterfall là quá trình phát triển phần mềm tuần tự, các bước để phát triển

phan mềm được tiền hành tuần tự từ trên xuống dưới, tương tự như dòng chảy của một thác nước. Mô hình này mô tả các giai đoạn phải được thực hiện để phát triển thành công một phần mềm [8]. Các giai đoạn của mô hình Waterfall được thể hiện trong hình

2.1.

Implementation

Hình 2.1: Các giai đoạn của mô hình Waterfall.

Trong mô hình Waterfall, giai đoạn phía sau chỉ có thể được tiến hành khi giai đoạn trước nó hoàn thành. Tuy nhiên, trong một số mô hình Waterfall đã được sửa đổi thì nếu phát hiện sai sót xảy ra 6 giai đoạn sau mà nguyên nhân gây ra nó nằm ở giai đoạn trước đó thì có thể quay lại giai đoạn trước đó để sửa đối cho phù hợp. Day là mô hình tiêu chuẩn để phát triển phần mềm.

2.1.2 Agile

Vào khoảng những năm 1990, sự thiéu linh hoạt trong mô hình Waterfall đã dẫn đến sự thất bại của một số dự án phát triển phần mềm sử dụng mô hình này. Với sự phát triển ngày càng nhanh chóng của thị trường phát triển phần mềm thì việc làm sao

đưa sản phẩm đến tay người tiêu dùng càng nhanh càng tốt ngày càng được chú trọng. Nhưng mô hình Waterfall lại không đáp ứng được điều này cho nên đã dẫn đến sự ra đời của mô hình phát triển phần mềm linh hoạt (Agile) [9].

Mô hình Agile thực chất là một tập hợp các nguyên lý, kỹ thuật dành cho phát triển phần mềm tập trung vào khả năng đáp ứng được những thay đổi khi có yêu cau [1].

“Tuyên ngôn Agile [10] được xuất bản năm 2001 đã hệ thống hóa các nguyên tắc của mô hình này. Một trong số các nguyên tắc trong Tuyên ngôn Agile nói rang: "Our highest

priority is to satisfy the customer through early and continuous delivery of valuable

software." Nguyên tắc này có thé được hiểu là: "Uw tiên cao nhất của chúng tôi là lam hài lòng khách hàng thông qua việc phân phối sớm và liên tục các phần mém có giá

trị.

So với mô hình Waterfall truyền thống, mô hình Agile lấy lặp đi lặp lại quy trình phát triển làm cơ sở và tập trung vào con người. Các quy trình Agile kết hợp sự lặp lại

và phản hồi liên tục để điều chỉnh và cung cấp thành công hệ thống phần mềm đáp ứng nhu cầu của khách hàng.

2.13. Scrum

Đầu những năm 1990, mô hình phát triển phần mềm Scrum được sử dụng để quản

lý quá trình phát triển những sản phẩm phức tạp hay những dự án lớn. Mô hình Scrum cho phép sử dụng nhiều quy trình và kỹ thuật khác nhau để con người có thể xác định các van dé đang diễn ra và đưa ra giải pháp phù hợp, đảm bảo được năng suất và chất lượng sản phẩm tốt nhất để đưa đến tay khách hàng.

'Vào năm 2002, một quyển sách mang tên "Agile Software Development with Scrum" [11] mô tả chỉ tiết về Scrum đã được xuất bản. Mô hình phát triển phần mềm Scrum

được minh họa trong hình 2.2.

Product Backlog Sprint Backlog vong lap Cac phần tăng trưởng

có thể chuyển giao.

Hình 2.2: Mô hình Scrum.

Mô hình Scrum chia toàn bộ dự án thành các quá trình nhỏ hơn kéo dài từ 2-4 tuần. Quá trình nhỏ này được lặp đi lặp lại và được gọi là Sprint. Sprint là thành phần quan trọng nhất của mô hình Serum. Một Sprint mới sẽ được bắt đầu ngay khi Sprint trước

đó kết thúc [12]. Day là sự khác biệt cơ bản giữa mô hình Scrum và mô hình Waterfall.

2.1.4 Lean

Quy trình phát triển phần mềm tinh gon (Lean) là quy trình ứng dung các nguyên tắc sản xuất tinh gọn của Hệ thóng sản xuất Toyota - Toyota Production System [13] vào lĩnh vực phát triển phần mềm. Phát triển phần mềm Lean bao gồm bay nguyên tắc chính được trình bay chỉ tiết trong quyến sách "Lean software development: an agile toolkit” [L4] xuất bản năm 2003:

* Hạn chế lãng phí

* Nâng cao kiến thức

* Quyết định càng muộn càng tốt

11

* Cung cấp càng nhanh càng tốt

Trao quyền quyết định cho nhóm phát triển

Xây dựng chất lượng sản phẩm

Có cái nhìn bao quát toàn bộ

Cốt lõi của quy trình phát triển phần mềm tinh gọn là hạn chế sự lãng phí - những yêu tố làm ảnh hưởng đến lợi nhuận thu được từ khách hàng - một cách tối đa.

Quy trình phát triển phần mềm Lean tập trung vào cách sử dụng CNTT để tạo ra các giá trị cho khách hàng chứ không tập trung vào quy trình phát triển phần mềm [15]. Lean là sự tổng hợp của một hệ thống các nguyên tắc và triết lý dùng để xây dựng hệ thống phần mềm cho khách hàng.

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Thiết kế và triển khai hệ thống phát triển phần mềm tự động và an toàn theo mô hình DevSecOps (Trang 28 - 32)

Tải bản đầy đủ (PDF)

(157 trang)