Bề ngoài, mô hình hướng đối tượng khuyến kích việc bảo trì theo bốn cách o Phần mềm bao gồm các đơn vị độc lập
o Đóng gói (độc lập về mặt khái niệm) o Ẩn giấu thông tin (độc lập về mặt vật lý)
o Truyền tham số là các giao tiếp duy nhất (Message-passing is the sole communication)
Thực thế hơi khác (The reality is somewhat different) Ba cản trở
Một là: Cây phân cấp kế thừa có thể lớn
Để hình dung ra những gì displayNode làm trong BalancedBinaryTreeClass, chúng ta phải kiểm tra tỉ mỉ cây hoàn thiện
o Cây hoàn thiện có thể trải rộng toàn bộ phần mềm
o Khác xa “những đơn vị độc lập ” (A far cry from “independent units” ) o Giải pháp
o Công cụ CASE có thể dàn mỏng cây kế thừa (A CASE tool can flatten the inheritance tree)
Hai là:Hậu quả của liên kết động và đa hình
Chương 11: Pha bảo trì
Hệ thống không hoạt động khi gọi myFile.open () Phiên bản nào của open có chứa lỗi?
o Công cụ CASE không thể trợ giúp (công cụ tĩnh) o Chúng ta phải theo dõi (kiểm tra)
Liên kết động và đa hình có thể có
o Ảnh hưởng tích cực tới đội phát triển nhưng o Ảnh hưởng tiêu cực đối với bảo trì
Ba là: Hậu quả của kế thừa Tạo một lớp mới qua kế thừa Lớp con mới
o Không ảnh hưởng tới lớp cha, và o Không ảnh hưởng tới bất cứ lớp con o Chỉnh sửa lớp con mới này
o Một lần nữa, không ảnh hưởng o Chỉnh sửa lớp cha
o Tất cả các lớp con kế thừa đều bị ảnh hưởng o “Fragile base class problem”
Kế thừa có
o Ảnh hưởng tích đối với người phát triển, nhưng o Ảnh hưởng tiêu cực đối với bảo trì