Tái sử dụng phần mềm (Software Reuse) là gì?
Tái sử dụng phần mềm (Software reuse) là quá trình tạo ra hệ thống phần mềm từ các nhân tố định nghĩa trước.
Các hệ thống tương tự nhau lặp đi lặp lại trong một lĩnh vực nào đó với các biến thể để đáp ứng với nhu cầu khách hàng. Thay vì phải xây dựng mỗi hệ thống mới ngay từ đầu, phương pháp tiết kiệm đáng kể là tái sử dụng các thành phần của hệ thống trước.
Quá trình xác định lĩnh vực, ràng buộc chúng, và khám phá các tính năng và biến thể giữa các hệ thống trong phạm vi, lĩnh vực nào đó gọi là phân tích miền ứng dụng (domain analysis)
Các thông tin này được lưu giữ theo mẫu, được sử dụng trong các giai đoạn cài đặt một ứng dụng, để tạo ra các nhân tố tái sử dụng, ngôn ngữ đặc tả ứng dụng (domain-specific language), hay công cụ phát sinh ứng dụng, để xây dựng hệ thống mới trong cùng miền ứng dụng.
Các ví dụ sau, cho các bạn hình dung rõ về khái niệm tái sử dụng phần mềm.
Ví dụ 1: Một người lập trình viết một ứng dụng yêu cầu sắp xếp các nhân viên theo các điều kiện khác nhau. Người lập trình viết một thủ tục sắp xếp tổng quát cho phép sử dụng thủ tục này cho mỗi kiểu sắp xếp. Điều này có thể xem là tái sử dụng?
Trả lời 1: Không, mặc dù được xem là kiểu lập trình tốt, nhưng không có sự độc lập giữa quá trình tạo nhân tố tái sử dụng và mã sử dụng chúng
Ví dụ 2: Một người lập trình C có một trình biên dịch và tạo một số ứng dụng. Sử dụng một trình biên dịch cho các ứng dụng có phải là tái sử dụng?
Trả lời 2: Không, người lập trình không sử dụng trình biên dịch cho hoạt động phát triển, trình biên dịch là sản phẩm cuối
Ví dụ 3: Cách sử dụng lặp lại của hàm C trong một chương trình C có thể xem là tái sử dụng phần mềm
Trả lời 3: Không, hàm Sin là một hàm của ngôn ngữ C
Ví dụ 4: Một người lập trình Fortran viết một chương trình để gọi hàm sin 12 lần. Không có hàm sin trong phiên bản Fortran này. Người lập trình tạo hàm sin đặt vào một thư viện để khi cần gọi hàm từ thư viện. Đây có phải là tái sử dụng
Trả lời 4: Việc tạo ra và sử dụng hàm sin là độc lập, và người sử dụng đã thực hiện tất cả các bước của quá trình tái sử dụng:
Tái sử dụng phần mềm là quá trình trong đó một tổ chức định nghĩa một tập hợp các thủ tục thao tác có hệ thống (systematic operating procedures) để đặc tả, tạo, phân loại, nhận, và làm thích nghi với mục đích sử dụng chúng trong môi trường phát triển
Theo Mili, Mili, Yacoub, and Addy “Reuse-Based Software Engineering”
Thuận lợi của tái sử dụng phần mềm
Tiềm năng (Potential) của tái sử dụng phần mềm
Cạm bẫy (Pitfalls) của tái sử dụng phần mềm
o Hạn chế khả năng tìm kiếm một tài nguyên tương thích
o Tổng phí thực chất đã bị trừ đi phí từ ích lợi của thành phần tái sử dụng
o Thay đổi đáng kể các thủ tục thao tác
o Chỉ đầu tư ngắn hạn, nhưng muốn đạt lợi ích dài hạn
Tài nguyên tái sử dụng (Reusable Assets)
Đặc tả yêu cầu (requirement specifications), thiết kế (design), kiến trúc (architecture), mã nguồn (source code), mã thực thi (executable code), dữ liệu kiểm thử, trường hợp kiểm thử (test data, test cases), dữ liệu (data), mẫu thiết kế (prototypes), kế hoạch (plans), tài liệu (documentation), nền tảng (frameworks), và mẫu (template), thành phần phần mềm (components)
Mô hình tái sử dụng phần mềm (Software Reuse Paradigms)
o Duyệt (Browsing) là duyệt trong thư viện phần mềm để xác định nội dung
o Thu thập (Retrieval): tìm kiếm tài nguyên cụ thể đáp ứng tập các yêu cầu
o Thu thập chính xác: (Exact retrieval) – precise requirements match
o Thu thập gần đúng (Approximate retrieval) – xác định tài nguyên gần nhất với tập yêu cầu
o Tái sử dụng hộp đen (Black box reuse): tài nguyên được tích hợp vào hệ thống mà không phải chỉnh sửa
o Tái sử dụng hộp trắng (White box reuse): tài nguyên được phân tích, chỉnh sửa trước khi tích hợp
Tham khảo:
Shawn A. Butler, Ph.D. Senior Lecturer, Executive Education Program Institute for Software Research Carnegie Mellon University,Bài giảng Software Reuse & Integration Lecture, 2010
Charles W. Krueger, Carnegie Mellon University, Pittsburgh, Pensylvania, Software Reuse
» Tin mới nhất:
» Các tin khác: