Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 3: Các mô hình chu trình sống của phần mềm
Nội dung:
? Mô hình xây dựng và hiệu chỉnh
? Mô hình thác n-ớc
? Mô hình định khung nhanh
? Mô hình tăng tr-ởng
? Mô hình đồng bộ và ổn định
? Mô hình xoắn ốc
? Các mô hình h-ớng đối t-ợng
? So sánh các mô hình
hứng bởi nhóm SQA và gửi cho khách hàng lập SPMP và bảng thời gian làm việc chi tiết giai đoạn thiết kế bắt đầu sau khi khách hàng đồng ý về giá thành và thời gian thực hiện; thực hiện cài đặt và tích hợp khách hàng cho hoạt động thử; chấp nhận sản phẩm chuyển sang giai đoạn bảo trì Ưu điểm: kỷ luật cao; quy định tốt về tài liệu cho mỗi giai đoạn; kiểm chứng cẩn thận bởi nhóm SQA; đ−ợc ứng dụng rộng rãi Khuyết điểm: quá nhiều kiểm thử, thẩm tra và tài liệu h−ớng tài liệu: khó hình dung và khó hiểu đối với khách hàng Huỳnh Xuân Hiệp - CNPM 27 3.3 Mô hình định khung nhanh (rapid prototyping model) Định khung nhanh Thay đổi các yêu cầu Thẩm tra Thẩm tra Giai đoạn đặc tả Thẩm tra Giai đoạn thiết kế Thẩm tra Giai đoạn cài đặt Kiểm thử Giai đoạn tích hợp Kiểm thử Đ−a vào hoạt động Phát triển Bảo trì Kết thúc hoạt động Hình 3.3 Mô hình định khung nhanh Huỳnh Xuân Hiệp - CNPM 28 Là mô hình hoạt động có chức năng t−ơng đ−ơng với một tập hợp con (subset) của sản phẩm VD: Nếu chức năng sản phẩm đích là trả tiền tài khoản, nhận tiền từ tài khoản và xếp hàng vào kho thì việc định khung nhanh có thể bao gồm các công việc của sản phẩm nh−: màn hình nhập liệu, in các báo cáo nh−ng không có các công việc nh− cập nhật tập tin hay bắt các lỗi xuất hiện. Các b−ớc thực hiện chính: b−ớc đầu tiên là định khung nhanh mô hình,tạo điều kiện cho khách hàng và ng−ời sử dụng t−ơng lai t−ơng tác với mô hình và thử nghiệm chuyển sang giai đoạn đặc tả sau khi khách hàng đã chấp thuận rằng các yêu cầu cần thiết đã có trong quá trình định khung nhanh Yêu cầu của mô hình là thực hiện càng nhanh càng tốt để tăng tốc độ của tiến trình phát triển phần mềm Tích hợp hai mô hình thác n−ớc và định khung nhanh xem việc định khung nhanh là đầu vào của mô hình thác n−ớc có thể xảy ra một số hiệu ứng lề và có thể có rủi ro (risk) xuất hiện do sử dụng nhiều mô hình (số l−ợng ở đây là 2) Huỳnh Xuân Hiệp - CNPM 29 3.4 Mô hình tăng tr−ởng (incremental model) Giai đoạn phân tích các yêu cầu Thẩm tra Giai đoạn đặc tả Thẩm tra Giai đoạn thiết kế kiến trúc Thẩm tra Thực hiện các b−ớc sau: hoàn thiện thiết kế chi tiết, cài đặt, tích hợp, kiểm thử, phân phối đến khách hàng Đ−a vào hoạt động Phát triển Bảo trì Kết thúc hoạt động Hình 3.4 Mô hình tăng tr−ởng Chuỗi các b−ớc thiết kế,cài đặt,tích hợp và kiểm thử đ−ợc thực hiện liên tục (tăng). Sử dụng trong một số dự án về phòng thủ không gian [Wong, 1984] Huỳnh Xuân Hiệp - CNPM 30 B−ớc xây dựng 1: Đặc tả Thiết kế Cài đặt và tích hợp Giao cho khách hàng B−ớc xây dựng 2: Đặc tả Thiết kế Cài đặt và tích hợp Giao cho khách hàng B−ớc xây dựng 3: Đặc tả Thiết kế Cài đặt và tích hợp Giao cho khách hàng • • • • • • • • • Nhóm đặc tả Nhóm thiết kế B−ớc xây dựng n: Đặc tả Thiết kế Cài đặt và tích hợp Giao cho khách hàng Nhóm cài đặt/tích hợp Hình 3.5 Mô hình tăng tr−ởng nhiều rủi ro Giao sản phẩm cho khách hàng sau mỗi b−ớc xây dựng. Mỗi b−ớc xây dựng t−ơng đ−ơng với một tập con các yêu cầu của khách hàng. Một sản phẩm điển hình th−ờng bao gồm khoảng 10-50 b−ớc xây dựng Giảm khó chịu cho khách hàng khi phải thay đổi một sản phẩm hoàn chỉnh Chú ý việc phá bỏ các cấu trúc của b−ớc xây dựng tr−ớc đó ! Huỳnh Xuân Hiệp - CNPM 31 3.5 Mô hình đồng bộ và ổn định (synchronize-and-stabilize model) Là một dạng khác của mô hình tăng tr−ởng [Cusamano và Selby, 1997] Đ−ợc triển khai sử dụng tại công ty Microsoft, Inc. Các b−ớc thực hiện: dẫn dắt các phân tích yêu cầu bằng cách phỏng vấn đông đảo các khách hàng tiềm năng (potential customers) rút ra tài liệu đặc tả công việc đ−ợc chia thành 3 hay 4 b−ớc xây dựng: đặc điểm cấp thiết nhất, đặc điểm cấp thiết nhì,.... mỗi b−ớc xây dựng đ−ợc thực hiện cùng lúc bởi nhiều nhóm nhỏ cuối mỗi ngày các nhóm thực hiện đồng bộ với nhau bằng cách ghép các phần việc của nhóm lại với nhau, kiểm thử và lần vết trên sản phẩm kết quả hiệu chỉnh các lỗi và b−ớc xây dựng chuyển sang trạng thái ổn định, sẽ không có bất kỳ thay đổi nào nữa trên tài liệu đặc tả lặp lại b−ớc đồng bộ Huỳnh Xuân Hiệp - CNPM 32 3.6 Mô hình xoắn ốc (spiral model) Phân tích rủi ro Phân tích rủi ro Định khung nhanh Thay đổi các yêu cầu Thẩm tra Thẩm tra Phân tích rủi ro Giai đoạn đặc tả Thẩm tra Phân tích rủi ro Giai đoạn thiết kế Thẩm tra Phân tích rủi ro Giai đoạn cài đặt Kiểm thử Phân tích rủi ro Rủi ro : risk Giai đoạn tích hợp Kiểm thử Phát triển Bảo trì Đ−a vào hoạt động Hình 3.6 Phiên bản đơn giản nhất của mô hình xoắn ốc Kết thúc hoạt động Huỳnh Xuân Hiệp - CNPM 33 Yếu tố rủi ro hầu nh− luôn tồn tại trong sự phát triển của phần mềm Do Boehm đề xuất [Boehm,1988] nhằm giảm thiểu sự rủi ro trong quá trình phát triển Đ−ợc sử dụng rộng rãi cho một lớp rộng các sản phẩm và gặt hái nhiều thành công [Boehm, 1988] Tích hợp Cài đặt Thiết kế Đặc tả Định khung nhanh Thẩm tra Thẩm tra Thẩm tra Thẩm tra Phân tích rủi ro Phân tích rủi ro Phân tích rủi ro Phân tích rủi ro Phân tích rủi ro Hình 3.7 Một phần của Hình 3.6 đ−ợc vẽ lại theo dạng xoắn ốc Huỳnh Xuân Hiệp - CNPM 34 Review partition Commitment Requirements plan Life-cycle plan Simulations, models, benchmarmks Implementation Accep- tance test Inte- gration test Unit test Code Detailed design Plan next phase Concetp of operation Development plan Integration and test plan Design validation and verification Requirements validation Software requirements Risk analysis Prototype 1 Prototype 2 Prototype 3 Risk analysis Risk analysis Risk analysis Operational prototype Evaluate alternatives, identify, resolve risks Determine objectives, alternatives, constraints Cumulative cost Progress through steps Hình 3.8 Mô hình xoắn ốc đầy đủ [Boehm, 1988]. (â1988 IEEE.) Develop, verify next-level product Huỳnh Xuân Hiệp - CNPM 35 Điểm mạnh h−ớng rủi ro (risk-driven) các công việc luân phiên và chịu các ràng buộc đã hỗ trợ cho việc tái sử dụng phần mềm hiện có đánh giá mức độ rủi ro mục tiêu quan trọng luôn là chất l−ợng phần mềm giảm nhẹ kiểm thử và nhanh chóng sửa chữa những lỗi xảy ra bảo trì đơn giản chỉ là một vòng tròn trong xoắn ốc, nh− vậy không có sự phân biệt giữa phát triển và bảo trì Điểm yếu h−ớng rủi ro VD: tiến hành thế nào nếu có một thành phần có độ rủi ro cao ? dành riêng cho các phần mềm nội bộ có kích th−ớc lớn [Boehm, 1988] vì dự án có thể chấm dứt do các đánh giá về rủi ro, do đó sẽ rất không hay khi đã ký kết các hợp đồng, ảnh h−ởng đên uy tín của công ty, rắc rối về mặt luật pháp kích th−ớc sản phẩm ảnh h−ởng đến giá thành việc phân tích rủi ro Huỳnh Xuân Hiệp - CNPM 36 3.7 Các mô hình h−ớng đối t−ợng (object-oriented life-cycle models) Đặc tính quan trọng nhất là lặp: giữa các giai đoạn một phần trong giai đoạn Mô hình vòi phun n−ớc của [Hendreson-Sellers và Edwards, 1990] vòng tròn thể hiện các giai đoạn gối lên nhau, phần thấy đ−ợc phản ánh sự gối lên trên giữa các hoạt động mũi tên bên trong một giai đoạn thể hiện sự lặp lại bên trong giai đoạn đó vòng tròn bảo trì nhỏ hơn t−ợng tr−ng cho việc giảm bớt nhân lực cho công tác bảo trì Hình 3.9 Mô hình vòi phun n−ớc Bảo trì Giai đoạn thiết kế h−ớng đối t−ợng Giai đoạn phân tích h−ớng đối t−ợng Giai đoạn phân tích yêu cầu Giai đoạn cài đặt Giai đoạn cài đặt và tích hợp Đ−a vào hoạt động Phát triển thêm Huỳnh Xuân Hiệp - CNPM 37 Một số mô hình khác Objectory [Jacobson, Christerson và Overgaard, 1992] chu trình sống đệ quy/song song (recursice/parallel)[Berard, 1993] thiết kế cấu trúc hình thức khứ hồi (round-trip gestalt) [Booch, 1994] Điểm mạnh: cho phép lặp kết hợp nhiều dạng song song (các hoạt động gối đầu) hỗ trợ phát triển tăng tr−ởng Điểm yếu: nguy cơ có thể xảy ra do thông dịch không đúng những cái cần thiết thiếu kỷ luật trong công việc,trình tự công việc của các thành viên chuyển dịch hầu nh− ngẫu nhiên giữa các giai đoạn VD: đầu tiên là thiết kế phần một, tiếp theo là phân tích phần hai, sau đó là cài đặt phần ba,... ! trình tự cái mới trong sự liên hệ giữa các thành phần, do trình tự làm việc ngẫu nhiên dẫn đến mới ở chỗ này nh−ng lại cũ tại nơi khác ! Huỳnh Xuân Hiệp - CNPM 38 3.8 So sánh các mô hìnhchu trình sống (comparaison of life-cycle models) Mô hình chu trình sống Điểm mạnh Điểm yếu Mô hình xây dựng và hiệu chỉnh Tốt đối với các ch−ơng trình ngắn không yêu cầu về bảo trì Không đáp ứng đ−ợc các ch−ơng trình t−ơng đối lớn trở đi Mô hình thác n−ớc Tiếp cận có kỷ luật H−ớng tài liệu Sản phẩm chuyển giao có thể không theo những gì khách hàng cần Mô hình định khung nhanh Đảm bảo sản phẩm đ−ợc chuyển giao có đ−ợc những gì khách hàng cần Xem phần 9 Mô hình tăng tr−ởng Trở lại sớm tối đa băng cách đầu t− tiếp tục Đẩy mạnh công tác bảo trì Đòi hỏi kiến trúc mở Có thể thoái hóa thành mô hình xây dựng và điều chỉnh Mô hình đồng bộ và ổn định Có đ−ợc những gì khách hàng cần trong t−ơng lai Đảm bảo các thành phần có thể tích hợp thành công Không đ−ợc sử dụng rộng rãi nh− tại Microsoft Mô hình xoắn ốc Kết hợp nhiều đặc điểm của tất cả các mô hình phía trên Chỉ có thể sử dụng cho các sản phẩm có kích th−ớc lớn hay cho các tổ chức Các nhà phát triển phải có khả năng phân tích rủi ro và giải quyết rủi ro Các mô hình h−ớng đối t−ợng Hỗ trợ việc lặp lại bên trong các giai đoạn, song song hóa giữa các giai đoạn Có thể suy thoái thành CABTAB (thuật ngữ về sự thiếu kỷ luật trong công việc: trình tự thực hiện các công việc lung tung, bừa bãi) Hình 3.10 So sánh giữa các mô hình chu trình sống
File đính kèm:
- Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 3 Các mô hình chu trình sống của phần mềm.pdf