Tìm hiểu thêm về phần mềm viết theo yêu cầu đặc thù doanh nghiệp (Customize) - Phần 2

Ngày đăng: 2019-08-02 21:51:53 - Số lần xem: 3063

4. Incremental Model - Mô hình tăng trưởng

Example:

https://lh4.googleusercontent.com/-bxCYXxt7EzY/W3udd-XF0GI/AAAAAAAALMM/m1uVHR4QEucXr50o0fRXSxRwgWxkY_kRQCLcBGAs/s640/mo-hinh-tang-truong-1.png

Diagram:

https://lh4.googleusercontent.com/-eYKPzN2xoCM/W3udjHQ6ZII/AAAAAAAALMQ/xVAHydMdRY4fbOD6Pi8HwE8TOsVGAV-EACLcBGAs/s640/mo-hinh-tang-truong-2.png

Mô tả: Trong mô hình này thì 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.

Áp 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.

Có nhu cầu về sản phẩm sớm.

Đặc điểm:

Ưu điềm:

Phần mềm làm việc một cách nhanh chóng trong suốt vòng đời phát triền

Mô hình này linh hoạt hơn, ít tốn kém hơn để 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 với sự lặp lại nhỏ hơn

Nhược điểm:

Cần lập plan và thiết kế tốt

Cần một định nghĩa rõ ràng và đầy đủ của toàn bộ hệ thống trước khi nó có thể được chia nhỏ và được xây dựng từng bước

Tổng chi phí là cao hơn so với thác nước.

5. RAD Model (Rapid Application Development)

https://lh4.googleusercontent.com/-nFcok-qBicM/W3ud-dbROZI/AAAAAAAALMg/RuewQw4LWos7nPwWOH5z43ymjmK-9GxNACLcBGAs/s640/rad-model.png

Mô tả: Là một dạng của incremental model, trong mô hình RAD các thành phần hoặc chức năng được phát triển song song như thể chúng là các dự án nhỏ. Việc phát triển này theo thời gian nhất định, cung cấp và lắp ráp thành một nguyên mẫu làm việc. Điều này có thể nhanh chóng đưa ra một cái gì đó cho khách hàng để xem và sử dụng và cung cấp thông tin phản hồi liên quan đến việc cung cấp và yêu cầu của họ.

Áp dụng:

RAD nên được sử dụng khi có nhu cầu để tạo ra một hệ thống có Modularized trong khoảng thời gian 2-3 tháng.

Nên được sử dụng khi đã có sẵn designer cho model và chi phí cao

Đặc điểm:

Ư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:

Cần có một team giỏi để xác định yêu cầu phần mềm

Chỉ những hệ thống có module mới sứ dụng được mô hình này

Yêu cầu về dev/ design phải có nhiều kinh nghiệm

Phụ thuộc rất nhiều vào kỹ năng model

6. Agile Model

https://lh4.googleusercontent.com/-96nC9BfAt7A/W3uebJZ2sJI/AAAAAAAALMo/iMndhuV1cQQoV98H8XTQYXZS9yQz1HHHQCLcBGAs/s640/agile-model.png

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

Áp dụng:

Nó có thể được sử dụng với bất kỳ loại hình dự án nào, nhưng nó cần sự tham gia và tính tương tác của khách hàng. Ngoài ra, nó có thể được sử dụng khi khách hàng yêu cầu chức năng sẵn sàng trong khoảng thời gian ngắn (3 tuần)

Đặc điểm:

Ưu điểm:

Giảm thời gian cần thiết để tận dụng một số tính năng của hệ thống

Kết quả cuối cùng là phần mềm chất lượng cao trong thời gian ít nhất có thể và sự hài lòng của khách hàng

Nhược điểm:

Phụ thuộc vào kỹ năng của người phát triển phần mềm Scalability

Tài liệu được thực hiện ở giai đoạn sau

Cần một team có kinh nghiệmNeeds special skills for the team.

7. Scrum (Scrm is an agile software development model)

https://lh4.googleusercontent.com/-YnfmybHc-iw/W3ufwOyZQLI/AAAAAAAALM0/5QF9EP1pHRwLE2v0QQs42HURceCI1P7hwCLcBGAs/s640/scrum-model.png

Mô tả: Scrum là một phương pháp linh hoạt (agile), vì thế nó tuân thủ các nguyên tắc của Agile Manifesto (xem thêm Tuyên ngôn Agile). Ngoài ra Scrum hoạt động dựa trên ba giá trị cốt lõi, còn gọi là Ba chân của Scrum bao gồm Minh bạch, Thanh tra và Thích nghi.

Khái niệm scrum: Là một quy trình phát triển phần mềm theo mô hình linh hoạt (agile). Với nguyên tắc chủ đạo là chia nhỏ phần mềm cần sản xuất ra thành các phần nhỏ để phát triển (các phần nhỏ này phải đọc lập và Release được), lấy ý kiến khách hàng và thay đổi cho phù hợp ngay trong quá trình phát triển để đảm bảo sản phẩm release đáp ứng những gì khách hàng mong muốn. Scrum chia dự án thành các vòng lặp phát triển gọi là các sprint. Mỗi sprint thường mất 2- 4 tuần (30 ngày) để hoàn thành. Nó rất phù hợp cho những dự án có nhiều sự thay đổi và yêu cầu tốc độ cao.

Một số đặc điểm của SCRUM

- Scrum (hay agile nói chung) được xếp vào nhóm "Feature-driven development". Sản phầm được phát triển theo tính năng, chứ không phát triển sản phẩm theo kiến trúc hệ thống.

- Scrum khác với các mô hình Agile ở chỗ nó là mô hình hướng khách hàng (Customer oriented), vai trò của khách hàng trong việc đánh giá sản phẩm rất quan trọng. Chỉ sau mỗi sprint (2-4 tuần) khách hàng sẽ thấy được sự thay đổi của sản phẩm của mình qua đó đưa ra phản hồi sớm để định hướng. Giúp thích ứng nhanh với sự thay đổi yêu cầu.

- Scrum giảm thiểu tài nguyên dành cho việc quản lý mà tập trung nhiều hơn cho những công việc liên quan trực tiếp đến việc làm ra sản phẩm. Bằng cách giảm vai trò quản lý (PM) bằng cách đẩy việc quản lý tới từng người,

- Giảm thời gian dành cho việc viết tài liệu bằng cách tăng thời gian trao đổi trực tiếp. Thông thường khi estimate công việc, thì team estimate cả thời gian dành cho communication để hoàn thành task đó nữa.

- Tập trung vào sản phẩm, sản phẩm mới là đích cuối cùng chứ không phải qui trình.

Ưu điểm, nhược điểm của mô hình Scrum

Ưu điểm:

Một người có thể làm nhiều việc ví dụ như dev có thể test

Phát hiện lỗi sớm hơn rất nhiều so với các phương pháp truyền thống

Khách hàng nhanh chóng thấy được sản phẩm qua đó đưa ra phản hồ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 là 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 khi có quá nhiều yêu cầu thay đổi từ khách hàng.

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

Các nhân tố cấu tạo lên 1 qui trình trong Scrum: Một cách đơn giản có 03 thành tố quan trọng cấu thành nên SCRUM: Tổ chức (Organization), Qui trình (Process),  Tài liệu (Atifacts). Trong mỗi thành tố có 03 thành tố con. Như vậy, chúng ta chỉ cần hiểu và áp dụng được 9 thành tố này là có thể áp dụng SCRUM.

Tổ chức (Organization): Tổ chức nhóm dự án và Roles (Vai 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):  các kết quả đầ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 cách thức vận hành của SCRUM

Sprint Planning meeting (Họp để hoạch định cho mỗi giai đoạn)

Sprint Review (Họp để tổng kết cho mỗi giai đoạn)

Daily Scrum Meeting (Họp review hàng ngày)

 

(Nguồn: Internet)

Bài liên quan