Module hóa chương trình là quá trình tổ chức lại chương trình sao cho các phần chương trình có liên quan đến nhau được tập hợp lại với nhau trong cùng một module. Một khi việc module hóa chương trình đã được thực hiện, chúng ta có thể dễ dàng loại bỏ được các thành phần dư thừa và tối ưu hóa tương tác giữa các thành phần đồng thời làm giảm giao diện giữa một thành phần với các phần còn lại của hệ thống. Ví dụ, trong chương trình xử lý dữ liệu chấn địa, toàn bộ các toán tử liên kết với thành phần đồ họa thể hiện của dữ liệu có thể tập hợp lại với nhau trong cùng một module. Nếu hệ thống được phân phối, các module được tạo ra lại có thể gói gọn lại thành một đối tượng và có thể được truy cập qua một giao diện chung.
Có một vài kiểu module khác nhau có thể được tạo ra trong quá trình module hóa là:
− Dữ liệu trừu tượng: Những kiểu dữ liệu trừu tượng này được tạo ra bằng cách liên kết dữ liệu với các thành phần xử lý của nó.
− Module phần cứng: Có sự liên quan chặt chẽ đến dữ liệu trừu tượng. Phải tập hợp tất cả các chức năng được sử dụng để điều khiển cùng một thiết bị phần cứng đặc biệt lại với nhau.
− Module chức năng: Đây là module tập hợp các chức năng thực hiện tương tự nhau hoặc liên quan đến cùng một nhiệm vụ lại với nhau. Ví dụ, toàn bộ các
26
chức năng liên quan đến đầu vào và xác nhận đầu vào có thể kết hợp lại với nhau trong cùng một module.
− Module hỗ trợ cho qui trình: Toàn bộ các chức năng và các thành phần dữ liệu cần thiết cho việc hỗ trợ các qui trình nghiệp vụ đặc biệt được nhóm lại với nhau trong cùng một module. Ví dụ, trong hệ thống thư viện, một module hỗ trợ qui trình là toàn bộ các chức năng cần thiết để hỗ trợ cho việc mượn và trả sách. Module hóa chương trình thường được thực hiện thủ công bằng cách kiểm tra và sửa đổi mã. Để module hóa một chương trình, chúng ta phải xác định mối quan hệ giữa các thành phần và đề ra xem các thành phần này làm những gì. Các công cụ trực quan và các công cụ duyệt có thể giúp chúng ta trong quá trình module hóa, nhưng chúng ta vẫn không thể hoàn toàn thực hiện tự động quá trình này.