Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
1,37 MB
Nội dung
Cơng nghệ phần mềm Tiến trình mơ hình tiến trình phần mềm Nội dung • Định nghĩa tiến trình mơ hình tiến trình • Lặp tiến trình • Mơ tả mơ hình tiến trình – Thác nước, tiến hóa, dựa thành phần – Lựa chọn mơ hình • Các hoạt động chung tiến trình • Đối phó, kiểm sốt thay đổi yêu cầu phần mềm Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Các khái niệm Tiến trình (software process): tập hợp hoạt động để tạo phần mềm – – – – Đặc tả - Specification; Thiết kế cài đặt – Design and Implementation; Kiểm định - Validation; Cải tiến - Evolution Mơ hình tiến trình (process model) thể trừu tượng tiến trình Lặp tiến trình (iteration): lặp lại tiến trình để đạt tới mục tiêu mong đợi – Kết lần lặp sử dụng điểm bắt đầu lần lặp Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Các mơ hình tiến trình Mơ hình thác nước – Waterfall – Phân tách giai đoạn đặc tả phát triển Tiến hóa - Evolutionary development – Đặc tả, phát triển kiểm định thực xen kẽ Component-based software engineering – Hệ thống kết hợp từ thành phần có sẵn Có nhiều biến thể mơ hình Bộ mơn Cơng nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Waterfall model Định nghĩa yêu cầu Requirements definition Thiết kế System and software design Triển khai kiểm thử đơn vị Implementation and unit testing Tích hợp kiểm thử hệ thống Integration and system testing Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Vận hành bảo trì Operation and maintenance Ưu, nhược điểm mơ hình thác nước • Khó đáp ứng khách hàng thay đổi yêu cầu – Ít hệ thống có u cầu cố định • Chậm có phiên thực – Sai sót phát muộn gây tổn thất lớn • Chỉ phù hợp u cầu hiểu rõ • Bảo trì thuận lợi – Tài liệu làm tốt Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Evolutionary development Concurrent activities Outline description Specification Initial version Development Intermediate Intermediate Intermediate version version version Validation Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Final version Evolutionary development • Phát triển thăm dò - Exploratory development – Làm việc với khách hàng cải tiến hệ thống bước • Bắt đầu với yêu cầu chưa đầy đủ • Thêm tính khách hàng yêu cầu • Lặp lại bước có phiên cuối • Bản mẫu - Throw-away prototyping – Mục tiêu để hiểu yêu cầu khách hàng Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Evolutionary development • Hạn chế – Thiếu trực quan – Hệ thống thường có cấu trúc nghèo nàn – Đòi hỏi kỹ đặc tả • Eg Rapid prototyping language • Khả ứng dụng – Hệ thống có nhiều tương tác, nhỏ vừa – Cho phần hệ lớn (e.g the user interface) – Cho hệ có vịng đời ngắn Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Component-based software engineering Thành phần phần mềm (software components) – Thành phần đơn vị phần mềm (gói – package mơ đun – module) đóng gói tập dịch vụ có liên quan đến – Mỗi thành phần có tên (name), giao diện (interface) mã (code) Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 10 Reuse-oriented development Requirement specification Component analysis Requirement modification System design with reuse Development and integration Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN System validation 13 Các hoạt động chung tiến trình Đặc tả yêu cầu – Specification Thiết kế cài đặt - Design and implementation Thẩm định - Validation Tiến hóa - Evolution Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 14 Các hoạt động chung tiến trình Đặc tả yêu cầu – Specification • Định nghĩa dịch vụ ràng buộc cho phần mềm Thiết kế cài đặt - Design and implementation Thẩm định - Validation Tiến hóa - Evolution Bộ mơn Cơng nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 15 Các hoạt động chung tiến trình Đặc tả yêu cầu – Specification Thiết kế cài đặt - Design and implementation • Thiết kế cấu trúc phần mềm • Chuyển cấu trúc phần mềm thành chương trình thực thi Thẩm định - Validation Tiến hóa - Evolution Bộ mơn Cơng nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 16 Các hoạt động chung tiến trình Đặc tả yêu cầu – Specification Thiết kế cài đặt - Design and implementation Thẩm định – Validation • Chỉ hệ thống thỏa mãn yêu cầu khách hàng Tiến hóa - Evolution Bộ mơn Cơng nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 17 Các hoạt động chung tiến trình Đặc tả yêu cầu – Specification Thiết kế cài đặt - Design and implementation Thẩm định – Validation Tiến hóa – Evolution • Làm thích nghi hệ thống với nghiệp vụ mới, môi trường vận hành mới, … Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 18 Đối phó với thay đổi yêu cầu phần mềm Thay đổi yêu cầu chắn xảy với dự án phần mềm • Tốn chi phí cho việc làm lại phần liên quan (cost of rework) Các cách tiếp cận để giảm chi phí cho việc làm lại: • Tránh thay đổi • Chấp nhận thay đổi • Mơ hình phát triển xoắn ốc Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 19 Tránh thay đổi • Làm mẫu để xác nhận làm mịn yêu cầu – Throw away prototype – Phần mềm vận hành Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 20 Chấp nhận thay đổi • Chuyển giao dần phần hệ thống Incremental delivery – Sản phẩm chia thành phần tăng (phiên lần lặp tiến trình) theo yêu cầu chức – Yêu cầu người dùng xếp ưu tiên theo thứ tự phần tăng Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 21 Incremental delivery Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 22 Incremental development Định nghĩa yêu cầu Phát triển phần tăng Chia yêu cầu cho phần tăng Kiểm định phần tăng Thiết kế kiến trúc hệ thống Tích hợp Hệ thống chưa hồn chỉnh Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Kiểm định hệ thống Hệ thống hồn chỉnh 23 Ưu điểm • Người dùng có sản phẩm dùng sớm • Các phiên sớm đóng vai trò mẫu để giúp thu thập yêu cầu cho phiên • Các yêu cầu có độ ưu tiên cao kiểm thử nhiều lần Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 24 Mơ hình phát triển xoắn ốc Spiral model of the software process Determine objective, alternative and constraints Risk analysis Evaluate alternatives, identify, resolve risks Risk analysis Risk analysis REVIEW Requirements plan Life-sycle plan Operational prototype Prototype Risk Prototype analysis Prototype Simulation, models, benchmarks Concept of Operation W/S requirements Development plan Integration and Test plan Plan next phase Requirement validation Test design Service Product design Detailed design Code Unit test Integration Acceptance test test Develop, verify next-level product Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 25 Spiral development • Mỗi vịng lặp thể pha tiến trình phát triển phần mềm – – – – Nghiên cứu khả thi Yêu cầu Thiết kế Phát triển • Kết hợp tránh thay đổi chấp nhận thay đổi • Rủi ro đánh giá giải lần lặp Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 26 Tổng kết • • • • • • • • Tiến trình - process Mơ hình tiến trình – process models Lặp tiến trình – process iteration Mơ hình thác nước Mơ hình tiến hóa Mơ hình phát triển dựa thành phần Các hoạt động chung tiến trình Đối phó, kiểm soát thay đổi yêu cầu phần mềm Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 27