Các Mô Hình Phát Triển Phần Mềm

Mô hình phát triển ứng dụng hay quá trình phát triển ứng dụng xác lập những pha / quy trình tiến độ trong thiết kế xây dựng ứng dụng. Hôm nay, Techacademy. edu.vn trình làng những mô hình phát triển ứng dụng thông dụng và hiệu suất cao nhất lúc bấy giờ .

1. Định nghĩa

Mô hình phát triển ứng dụng hay quá trình phát triển ứng dụng xác lập những pha / quá trình trong thiết kế xây dựng ứng dụng. Có nhiều loại mô hình phát triển ứng dụng khác nhau ví dụ như :

  • Mô hình thác nước ( Waterfall model)
  • Mô hình xoắn ốc ( Spiral model)
  • Mô hình agile
  • Mô hình tiếp cận lặp ( Iterative model)
  • Mô hình tăng trưởng ( Incremental model)
  • Mô hình chữ V ( V model)
  • Mô hình Scrum
  • RAD model ( Rapid Application Development)

Bài viết này sẽ giúp bạn giải đáp thắc mắc về các mô hình trong phát triển phần mềm được sử dụng trong khóa học Tester – Kiểm thử phần mềm tại Techacademy Việt Nam.

2. Các mô hình được sử dụng trọng khóa học Tester Kiểm thử ứng dụng

2.1. Mô hình thác nước ( Waterfall model )

Đây được coi như là mô hình phát triển phần mềm đầu tiên được sử dụng. Mô hình này áp dụng tuần tự các giai đoạn của phát triển phần mềm. Đầu ra của giai đoạn trước là đầu vào của giai đoạn sau. Giai đoạn sau chỉ được thực hiện khi giai đoạn trước đã kết thúc. Đặc biệt không được quay lại giai đoạn trước để xử lý các yêu cầu khi muốn thay đổi.

Phân tích mô hình

  • Requirement gathering: Thu thập và phân tích yêu cầu được ghi lại vào tài liệu đặc tả yêu cầu trong giai đoạn này.
  • System Analysis: Phân tích thiết kế hệ thống phần mềm, xác định kiến trúc hệ thống tổng thể của phần mềm.
  • Coding: Hệ thống được phát triển theo từng unit và được tích hợp trong giai đoạn tiếp theo. Mỗi Unit được phát triển và kiểm thử bởi dev được gọi là Unit Test.
  • Testing: Cài đặt và kiểm thử phần mềm. Công việc chính của giai đoạn này là kiểm tra và sửa tất cả những lỗi tìm được sao cho phần mềm hoạt động chính xác và đúng theo tài liệu đặc tả yêu cầu.
  • Implementation: Triển khai hệ thống trong môi trường khách hàng và đưa ra thị trường.
  • Operations and Maintenance: Bảo trì hệ thống khi có bất kỳ thay đổi nào từ phía khách hàng, người sử dụng.

Ứng dụng

Mô hình thường được vận dụng cho những dự án Bất Động Sản ứng dụng như sau :

  • Các dự án nhỏ, ngắn hạn.
  • Các dự án có ít thay đổi về yêu cầu và không có những yêu cầu không rõ ràng.

Ưu điểm

  • Dễ sử dụng, dễ tiếp cận, dễ quản lý.
  • Sản phẩm phát triển theo các giai đoạn được xác định rõ ràng.
  • Xác nhận ở từng giai đoạn, đảm bảo phát hiện sớm các lỗi.

Nhược điểm

  • Ít linh hoạt, phạm vi điều chỉnh hạn chế.
  • Rất khó để đo lường sự phát triển trong từng giai đoạn.
  • Mô hình không thích hợp với những dự án dài, đang diễn ra, hay những dự án phức tạp, có nhiều thay đổi về yêu cầu trong vòng đời phát triển.
  • Khó quay lại khi giai đoạn nào đó đã kết thúc.

Tham khảo: Các phương pháp kiểm thử phần mềm

2.2. Mô hình chữ V ( V model )

Mô tả Mô hình V là một phần lan rộng ra của mô hình thác nước và được dựa trên sự phối hợp của một quá trình thử nghiệm cho từng quy trình tiến độ phát triển tương ứng. Điều này có nghĩa là so với mỗi quy trình tiến độ trong chu kỳ luân hồi phát triển, có một quá trình thử nghiệm tương quan trực tiếp. Đây là một mô hình có tính kỷ luật cao và tiến trình tiếp theo chỉ mở màn sau khi triển khai xong quy trình tiến độ trước .
Với V Mã Sản Phẩm thì việc làm test được tham gia ngay từ đầu, từ lúc lấy nhu yếu là hoàn toàn có thể “ test ” bằng cách review tài liệu nhu yếu, rồi cho tới review đặc tả chi tiết cụ thể, những bản thiết kế, review code rồi ở đầu cuối là test ở mức thấp nhất – từng module, công dụng, màn hình hiển thị, đến test tích hợp rồi kiểm thử mạng lưới hệ thống. So với mô hình khác thì ở mô hình này, việc làm test đi sát hơn và ngay từ đầu khi mở màn phát triển .
Chắc chắn chất lượng dự án Bất Động Sản sẽ tốt hơn. Nhưng tại sao người ta vẫn liên tục đưa ra mô hình phát triển khác ? Vì ở mô hình chữ V này người ta vẫn phát triển cùng lúc cả mạng lưới hệ thống ( nhiều nhu yếu, tính năng cùng lúc ) mà rủi ro đáng tiếc về biến hóa nhu yếu là rất lớn. Nên mô hình này vẫn hoàn toàn có thể gặp rắc rối khi người mua tiếp tục biến hóa nhu yếu
Mô hình chữ V( V model)
Ứng dụng Ứng dụng mô hình V – Model gần giống như mô hình thác nước, vì cả hai mô hình đều thuộc loại tuần tự. Yêu cầu phải rất rõ ràng trước khi dự án Bất Động Sản khởi đầu, chính do nó thường đắt tiền để quay trở lại và thực thi đổi khác. Mô hình này được sử dụng trong nghành nghề dịch vụ phát triển y tế, vì nó là một nghành giải quyết và xử lý kỷ luật khắt khe. Sau đây là 1 số ít ngữ cảnh tương thích nhất để sử dụng ứng dụng V-Model .
Yêu cầu được xác lập rõ ràng, được ghi chép và cố định và thắt chặt rõ ràng :

  • Xác định sản phẩm ổn định.
  • Công nghệ không thay đổi và được hiểu rõ bởi nhóm dự án.
  • Không có yêu cầu không rõ ràng hoặc không xác định.
  • Dự án ngắn.

Ưu điểm

  • Đây là một mô hình có tính kỷ luật cao và các giai đoạn được hoàn thành cùng một lúc.
  • Hoạt động tốt cho các dự án nhỏ, khi các yêu cầu được hiểu rất rõ.
  • Đơn giản và dễ hiểu và dễ sử dụng.
  • Dễ quản lý. Mỗi giai đoạn có phân phối cụ thể và quy trình đánh giá.

Nhược điểm

  • Khó quản lý kiểm soát rủi ro, rủi ro cao
  • Không phải là một mô hình tốt cho các dự án phức tạp và hướng đối tượng.
  • Mô hình kém cho các dự án dài và đang diễn ra.
  • Không thích hợp cho các dự án có nguy cơ thay đổi yêu cầu trung bình đến cao.
  • Khi ứng dụng đang ở giai đoạn thử nghiệm, rất khó để quay lại và thay đổi chức năng.

2.3. Mô hình mẫu

Trong mô hình mẫu ( prototype ), qui trình được mở màn bằng việc tích lũy nhu yếu với sự xuất hiện của đại diện thay mặt của cả phía phát triển lẫn người mua nhằm mục đích định ra tiềm năng toàn diện và tổng thể của mạng lưới hệ thống ứng dụng sau này, đồng thời ghi nhận tổng thể những nhu yếu hoàn toàn có thể biết được và sơ luợc những nhóm nhu yếu nào cần phải được làm rõ .
Sau đó, triển khai phong cách thiết kế nhanh tập trung chuyên sâu chuyển tải những góc nhìn trải qua prototype để người mua hoàn toàn có thể tưởng tượng, nhìn nhận giúp hoàn hảo nhu yếu cho toàn mạng lưới hệ thống ứng dụng. Việc này không những giúp tinh chỉnh và điều khiển nhu yếu, mà đồng thời giúp cho đội ngũ phát triển thông hiểu hơn những gì cần được phát triển. Tiếp theo sau quá trình làm prototype này hoàn toàn có thể là một quy trình theo mô hình waterfall hay cũng hoàn toàn có thể là mô hình khác .
Chú ý, prototype thường được làm thật nhanh trong thời hạn ngắn nên không được thiết kế xây dựng trên cùng thiên nhiên và môi trường và công cụ phát triển của tiến trình thiết kế xây dựng ứng dụng thực sự sau này. Prototype không đặt ra tiềm năng tái sử dụng cho quy trình tiến độ phát triển thực sự sau đó .

Ưu điểm

  • Người sử dụng sớm hình dung ra chức năng và đặc điểm của hệ thống.
  • Cải thiện sự liên lạc giữa nhà phát triển và người sử dụng.

Nhược điểm

  • Khi mẫu (prototype) không chuyển tải hết các chức năng, đặc điểm của hệ thống phần mềm thì người sử dụng có thể thất vọng và mất đi sự quan tâm đến hệ thống sẽ được phát triển.
  • Prototype thường được làm nhanh, thậm chí vội vàng, theo kiểu “hiện thực – sửa” và có thể thiếu sự phân tích đánh giá một cách cẩn thận tất cả khía cạnh liên quan đến hệ thống cuối cùng.
  • Nói chung mô hình này vẫn chưa thể cải thiện được việc loại trừ khoảng cách giữa yêu cầu và ứng dụng cuối cùng.

Ứng dụng

  • Hệ thống chủ yếu dựa trên giao diện người dùng (GUI)
  • Khách hàng, nhất là người sử dụng cuối, không thể xác định rõ ràng yêu cầu.

2.4. Mô hình Agile

Agile là một chiêu thức phát triển ứng dụng linh động để làm thế nào đưa loại sản phẩm đến tay người dùng càng nhanh càng tốt và được xem như thể sự nâng cấp cải tiến so với những mô hình cũ như mô hình “ Thác nước ( waterfall ) ” hay “ CMMI ”. Phương thức phát triển ứng dụng Agile là một tập hợp những phương pháp phát triển lặp và tăng dần trong đó những nhu yếu và giải pháp được phát triển trải qua sự link cộng tác giữa những nhóm tự quản và liên tính năng .
Mô hình Agile

Mô tả

  • Dựa trên mô hình iterative and incremental.
  • Các yêu cầu và giải pháp phát triển dựa trên sự kết hợp của các function.
  • Trong Agile, các tác vụ được chia thành các khung thời gian nhỏ để cung cấp các tính năng cụ thể cho bản phát hành cuối.

Ứng dụng

  • Có thể được sử dụng với bất kỳ loại hình dự án nào, nhưng cần sự tham gia và tính tương tác của khách hàng.
  • Sử dụng khi người mua nhu yếu công dụng sẵn sàng chuẩn bị trong khoảng chừng thời hạn ngắn .

Ưu điểm

  • Tăng cường tình thần làm việc nhóm và trao đổi công việc hiệu quả.
  • Các chức năng được xây dựng nhanh chóng và rõ ràng, dế quản lý.
  • Dễ dàng bổ sung, thay đổi yêu cầu.
  • Quy tắc tối thiểu, tài liệu dễ hiểu, dễ sử dụng.

Nhược điểm

Mô hình Agile được sử dụng thoáng rộng trên quốc tế nhưng cũng không đồng nghĩa tương quan với tương thích với tổng thể những dự án Bất Động Sản ứng dụng .

  • Không thích hợp để xử lý các phụ thuộc phức tạp.
  • Có nhiều rủi ro về tính bền vững, khả năng bảo trì và khả năng mở rộng.
  • Cần một team có kinh nghiệm.
  • Phụ thuộc rất nhiều vào sự tương tác rõ ràng của khách hàng.
  • Chuyển giao công nghệ cho các thành viên mới trong nhóm có thể khá khó khăn do thiếu tài liệu.

2.5. Mô hình xoắn ốc

Mô hình xoắn ốc

Mô tả

  • Là mô hình kết hợp giữa các tính năng của mô hình prototyping và mô hình thác nước.
  • Mô hình xoắn ốc được ưa chuộng cho các dự án lớn, đắt tiền và phức tạp.
  • Mô hình này sử dụng những giai đoạn tương tự như mô hình thác nước, về thứ tự, plan, đánh giá rủi ro, …
  • Phân tích mô hình

Các pha trong quy trình phát triển xoắn ốc bao gồm:

  • Objective identification- Thiết lập mục tiêu: xác định mục tiêu, đối tượng cho từng pha của dự án.
  • Alternate evaluation- Đánh giá và giảm thiểu rủi ro: đánh giá rủi ro và thực hiện các hành động để giảm thiểu rủi ro.
  • Product development- Phát triển sản phẩm: Lựa chọn mô hình phù hợp để phát triển hệ thống.
  • Next phase planning- Lập kế hoạch: đánh giá dự án và lập kế hoạch cho pha tiếp theo.

Ứng dụng

Mô hình này thường được sử dụng cho những ứng dụng lớn và những mạng lưới hệ thống được kiến thiết xây dựng theo những quy trình tiến độ nhỏ hoặc theo những phân đoạn .

Ưu điểm

  • Tốt cho các hệ phần mềm quy mô lớn.
  • Dễ kiểm soát các mạo hiểm ở từng mức tiến hóa.
  • Đánh giá thực tế hơn như là một quy trình làm việc, bởi vì những vấn đề quan trọng đã được phát hiện sớm hơn.

Nhược điểm

  • Manager cần có kỹ năng tốt để quản lý dự án, đánh giá rủi ro kịp thời.
  • Chi phí cao và mất nhiều thời gian để hoàn thành dự án.
  • Phức tạp và không thích hợp với các dự án nhỏ và ít rủi ro.
  • Yêu cầu thay đổi thường xuyên dẫn đến lặp vô hạn.
  • Chưa được dùng rộng rãi.

2.6 Mô hình Scrum

Mô tả

Chia những nhu yếu ra làm theo từng quy trình tiến độ. Mỗi 1 tiến trình ( sprint ) chỉ làm 1 số lượng nhu yếu nhất định .
Mỗi một sprint thường lê dài từ 1 tuần đến 4 tuần ( ko dài hơn 1 tháng ) .
Đầu sprint sẽ lên kế hoạch làm những nhu yếu nào. Sau đó, sẽ thực thi code và test. Cuối sprint là 1 loại sản phẩm hoàn thành xong cả code lẫn test hoàn toàn có thể demo và chạy được .
Hoàn thành sprint 1, liên tục làm sprint 2, sprint … cho đến khi triển khai xong hết những nhu yếu .
Trong mỗi 1 sprint thì sẽ có họp hàng ngày – daily meeting từ 15 – 20 phút. Mỗi thành viên sẽ báo cáo giải trình : Hôm qua tôi đã làm gì ? Hôm nay tôi sẽ làm gì ? Có gặp khó khăn vất vả gì không ?

Các nhân tố tạo nên quy trình Scrum

Có 3 thành tố quan trọng cấu thành nên SCRUM :
+ Tổ chức ( Organization )

  • Tổ chức nhóm dự án và Roles: Vài trò.
  • Product Owner: Người sở hữu sản phẩm.
  • ScrumMaster: Người điều phối.
  • Development Team: Nhóm phát triển.

+ Tài liệu ( Atifacts ) : đó chính là những tác dụng đầu ra .

  • Product Backlog: Danh sách các chức năng cần phát triển của sản phẩm.
  • Sprint Backlog: Danh sách các chức năng cần phát triển cho mỗi giai đoạn.
  • Estimation:Kết quả ước lượng của team.

+ Qui trình ( Process ) : Qui định phương pháp quản lý và vận hành của SCRUM .

  • Sprint Planning meeting: Hoạch định cho mỗi giai đoạn.
  • Review: Tổng kết cho mỗi giai đoạn.
  • Daily Scrum Meeting: Review hàng ngày.

Tổ chức dự án

+ Product Owner

Product Owner là người sở hữu sản phẩm, người quyết định sản phẩm có những chức năng nào và là người quyết định Product Backlog.
Thông thường Role này được khách hàng hoặc người đại diện cho khách hàng đảm nhận.

+ ScrumMaster
Scrum Master là người bảo vệ những qui trình của Scrum được triển khai đúng và thuận tiện .
+ Development Team

Một nhóm từ 4-7 kỹ sư phần mềm chịu trách nhiệm phát triển sản phẩm.
Nhóm dự án phải làm việc với Product Owner để quyết định những gì sẽ làm trong Sprint (giai đoạn )này và kết quả sẽ ra sao. Thảo luận để đưa ra các giải pháp, ước lượng thời gian thực hiện công việc, họp đánh giá kết quả công việc.

+ Product Backlog

Product Backlog là danh sách các chức năng cần được phát triển của sản phẩm.
Danh sách này do Product Owner quyết định.Thường xuyên được cập nhật để đáp ứng được nhu cầu thay đổi của khách hàng và dự án.

Ưu điểm

  • Một người có thể thực hiện nhiều việc ví dụ như dev có thể test.
  • Phát hiện lỗi sớm.
  • Có khả năng áp dụng được cho những dự án mà yêu cầu khách hàng không rõ ràng ngay từ đầu.

Nhược điểm

  • Trình độ của nhóm cần có một kỹ năng nhất định.
  • Phải có sự hiểu biết về mô hình aglie.
  • Khó khăn trong việc xác định ngân sách và thời gian.
  • Luôn nghe ý kiến phản hồi từ khách hàng và thay đổi theo nên thời gian sẽ kéo dài.
  • Vai trò của PO rất quan trọng, PO là người định hướng sản phẩm. Nếu PO làm không tốt sẽ ảnh hưởng đến kết quả chung.

2.7 Mô hình RAD

Mô tả

Mô hình RAD là một phương pháp phát triển phần mềm sử dụng quy hoạch tối thiểu có lợi cho việc tạo mẫu nhanh.
Các mô-đun chức năng được phát triển song song như nguyên mẫu và được tích hợp để tạo ra sản phẩm hoàn chỉnh để phân phối sản phẩm nhanh hơn.
Đảm bảo rằng các nguyên mẫu được phát triển có thể tái sử dụng được.

Ứng dụng

Mô hình RAD hoàn toàn có thể được vận dụng thành công xuất sắc cho những dự án Bất Động Sản :

Module hóa rõ ràng. Nếu dự án không thể được chia thành các mô-đun, RAD có thể không thành công.
RAD nên được sử dụng khi có nhu cầu để tạo ra một hệ thống có yêu cầu khách hàng thay đổi trong khoảng thời gian nhỏ 2-3 tháng.
Nên được sử dụng khi đã có sẵn designer cho model và chi phí cao.

Ưu điểm

  • Giảm thời gian phát triển.
  • Tăng khả năng tái sử dụng của các thành phần.
  • Đưa ra đánh giá ban đầu nhanh chóng.
  • Khuyến khích khách hàng đưa ra phản hồi.

Nhược điểm

Trình độ của nhóm cần có một kỹ năng nhất định.
Chỉ những hệ thống có module mới sử dụng được mô hình này.

2.8 Mô hình tăng trưởng

Mô tả

  • Spec được chia thành nhiều phần.
  • Chu kỳ được chia thành các module nhỏ, dễ quản lý.
  • Mỗi module sẽ đi qua các yêu cầu về thiết kế, thực hiện, … như 1 vòng đời phát triển thông thường.

Ứng dụng

  • Áp dụng cho những dự án có yêu cầu đã được mô tả, định nghĩa và hiểu một cách rõ ràng.
  • Khahcs hàng có nhu cầu về sản phẩm sớm.

Ưu điểm

  • Phát triển nhanh chóng.
  • Mô hình này linh hoạt hơn, ít tốn kém hơn khi thay đổi phạm vi và yêu cầu.
  • Dễ dàng hơn trong việc kiểm tra và sửa lỗi.

Nhược điểm

  • Cần lập plan và thiết kế tốt.
  • Tổng chi phí là cao hơn so với mô hình thác nước.

Trên đây là những mô hình hay được sử dụng nhiều trong những doanh nghiệp lúc bấy giờ, những mô hình phát triern ứng dụng này đều được trình làng trong khóa học Tester – Kiểm thử ứng dụng. Mọi chi tiết cụ thể xin liên hệ theo địa chỉ dưới để được tư vấn .

5/5 - (1 vote)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments