Khái quát hóa chuyên biệt hóa (GENERALIZATION & SPECIALIZATION) Khái quát hóa chuyên biệt hóa (GENERALIZATION & SPECIALIZATION) Bởi: Khoa CNTT ĐHSP KT Hưng Yên Hãy quan sát cấu trúc lớp biểu đồ sau: Hình 7.1- Chuyên biệt hoá (Specialization) Trong hình trên, tài khoản khái niệm chung loại tài khoản khác chứa đặc tả cần thiết cho tất loại tài khoản Ví dụ chứa số tài khoản tên chủ tài khoản Ta có hai loại tài khoản đặc biệt suy từ dạng tài khoản chung này, loại mang tính kỳ hạn loại mang tính giao dịch Yếu tố chia cách hai lớp với quy định chuyên ngành hay phương thức hoạt động hai loại tài khoản 1/7 Khái quát hóa chuyên biệt hóa (GENERALIZATION & SPECIALIZATION) Tương tự vậy, tài khoản đầu tư trung hạn dài hạn lại khái niệm chuyên biệt khái niệm tài khoản có kỳ hạn Mặt khác, tài khoản bình thường tài khoản tiết kiệm trường hợp đặc biệt loại tài khoản giao dịch Loại cấu trúc lớp gọi cấu trúc hình cấu trúc phân cấp Khi dịch chuyển từ điểm xuất phát xuống dưới, gặp khái niệm ngày chuyên biệt hóa nhiều Theo đường từ tài khoản đến tài khoản tiết kiệm, ta phải qua lớp tài khoản giao dịch Lớp tiếp tục phân loại lớp chuyên biệt hóa cao hơn, tùy thuộc vào chức chúng Kí hiệu khái quát hóa chuyên biệt hóa Trong biểu đồ trên, lớp cấu trúc nối với mũi tên rỗng , từ lớp chuyên biệt tới lớp khái quát Hình 7.2- Khái quát hóa Quá trình bắt đầu với lớp khái quát để sản xuất lớp mang tính chuyên biệt cao gọi trình chuyên biệt hoá(Specialization) Chuyên biệt hóa: trình tinh chế lớp thành lớp chuyên biệt Chuyên biệt hóa bổ sung thêm chi tiết đặc tả cho lớp kết Lớp mang tính khái quát gọi lớp cha (superclass), kết chuyên biệt hóa việc tạo lớp (Subclass) Mặt khác, dọc cấu trúc từ lên, ta gặp lớp ngày mang tính khái quát cao - Ví dụ từ lớp tài khoản tiết kiệm lên tới lớp tài khoản Con đường lớp chuyên biệt khiến ngày mang tính khái quát cao gọi trình khái quát hóa (Generalization) Lớp chuyên biệt gọi lớp con, ví dụ tài khoản tiết kiệm, lớp khái quát kết gọi lớp cha Chuyên biệt hóa khái quát hóa hai đường khác để xem xét mối quan hệ Một lớp lớp lớp đóng vài trò lớp cha lớp khác 2/7 Khái quát hóa chuyên biệt hóa (GENERALIZATION & SPECIALIZATION) Yếu tố phân biệt (Discriminatior) Để tạo cấu trúc phân cấp, cần phải có số thuộc tính làm tảng cho trình chuyên biệt hóa Thuộc tính gọi yếu tố phân biệt (Discriminator) Với giá trị gán cho yếu tố phân biệt lớp cha, ta có lớp tương ứng Hình 7.3- Yếu tố phân biệt (Discriminatior) Trong hình trên, yếu tố phân biệt lớp tài khoản "loại tài khoản" Chúng ta giả thiết có hai loại tài khoản, mang tính kỳ hạn mang tính giao dịch Theo đó, ta phải tạo hai lớp con, cho tài khoản mang tính kỳ hạn cho tài khoản mang tính giao dịch Trong mô hình đối tượng, không thiết phải nêu bật yếu tố phân biệt Yếu tố phân biệt có mặt cấu trúc phân cấp lớp cha/ con, dù có nhấn mạnh mô hình đối tượng hay không Mặc dầu vậy, để đảm bảo cho mô hình định nghĩa rõ ràng, trình bày yếu tố phân biệt công việc nên thực Lớp trừu tượng Quan sát cấu trúc hình trên, ta thấy lớp tài khoản không thực thể hóa, có nghĩa hệ thống không tạo đối tượng thuộc lớp Nguyên nhân lớp tài khoản mang tính khái quát cao đến mức độ việc khởi tạo lớp ý nghĩa đáng kể Lớp tài khoản đóng vai trò quan trọng việc khái quát hóa thuộc tính cần đến lớp dẫn xuất từ 3/7 Khái quát hóa chuyên biệt hóa (GENERALIZATION & SPECIALIZATION) Những loại lớp dùng để cung cấp cấu trúc lớp tồn đầy đủ ý nghĩa mô hình thật đời, chúng gọi lớp trừu trượng (abstract class) Tạo lớp trừu tượng Các lớp trừu trượng kết trình khái quát hóa Hãy quan sát ví dụ cấu trúc lớp sau Lớp tài khoản đứng đầu cấu trúc gọi lớp Lớp cấu trúc chứa thuộc tính khái quát hóa áp dụng cho lớp dẫn xuất từ Trong trình khái quát hóa, thuộc tính dùng chung lớp chuyên biệt đưa lên lớp cha Lớp cha cuối tạo thuộc tính chung tất lớp dẫn xuất từ Những lớp cha dạng nhiều trường hợp mang tính khái quát tuyệt đối không theo đuổi mục đích khởi tạo, chúng có lối ứng xử giống thùng chứa (container) cho tất thuộc tính chung lớp dẫn xuất Những lớp trường hợp chung thường kết ánh xạ danh từ trừu tượng, hệ phương pháp sử dụng danh từ để nhận diện lớp Hình 7.4- Tạo lớp trừu tượng Biểu đồ cho ta ví dụ khái quát hóa thuộc tính chung, nhiều lớp chuyên biệt Chú ý theo mức chuyên biệt hóa lại có thêm thuộc tính bổ sung thêm cho lớp, khiến chúng mang tính chuyên biệt cao so với lớp cha mức trừu tượng bên Ví dụ lớp tài khoản có thuộc tính số tài khoản tên khách hàng Đây thuộc tính chung chung Tất lớp dẫn xuất từ nó, dù trực tiếp hay gián tiếp (ở mức độ trừu tượng thấp nữa), có quyền sử dụng thuộc tính lớp tài khoản Các lớp tài khoản có kỳ hạn tài khoản 4/7 Khái quát hóa chuyên biệt hóa (GENERALIZATION & SPECIALIZATION) giao dịch hai lớp chuyên biệt dẫn xuất từ lớp tài khoản Chúng có thuộc tính chuyên biệt riêng chúng - ví dụ mức thời gian (duration) lớp tài khoản có kỳ hạn mức tiền tối thiểu lớp tài khoản giao dịch – bên cạnh hai thuộc tính số tài khoản tên khách hàng mà chúng thừa kế từ lớp tài khoản Cũng tương tự với tài khoản đầu tư ngắn hạn tài khoản đầu tư trung hạn loại lớp thuộc tài khoản có kỳ hạn, tài khoản tiết kiệm tài khoản bình thường loại lớp thuộc lớp tài khoản giao dịch Lớp cụ thể (concrete class) Lớp cụ thể lớp thực thể hóa Như nói từ trước, lớp cụ thể thực thể hóa gọi đối tượng Trong ví dụ trên, lớp tài khoản đầu tư ngắn hạn tài khoản đầu tư dài hạn thực thể hóa thành đối tượng Tương tự tài khoản tiết kiệm tài khoản bình thường Tổng kết phát triển cấu trúc Cơ chế dùng chung thuộc tính thủ tục sử dụng nguyên tắc khái quát hóa gọi tính thừa kế (inheritance) Sử dụng tính thừa kế để tinh chế (refine) lớp dẫn tới việc phát triển cấu trúc Nên phát ứng xử (behaviour) chung loạt lớp thể thành lớp cha Sự khác biệt ứng xử lớp dẫn tới việc tạo lớp Khi phát triển cấu trúc, quan sát ứng xử lớp Trong trường hợp có liên hệ tồn từ lớp cụ thể đến tất lớp lớp cha, nên dịch chuyển liên hệ lên lớp cha Nếu tồn liên hệ lớp lớp cha, chuyên biệt hóa nâng cao cấu trúc để xác định xem liệu liên hệ có áp dụng cho tất lớp lớp cha hay không Nếu có gán vào lớp cha, không dịch xuống cho lớp phù hợp Trong tiến hành khái quát hóa, trọng tâm công việc xác định ứng xử chung nhóm nhiều lớp chuyên biệt bậc trung Khi xây dựng thủ tục thuộc tính chung, nên kiểm tra lại xem chúng có thật yếu tố chung tất lớp chuyên biệt phạm vi Khái quát hóa áp dụng có tập hợp lớp định nghĩa loại đối tượng riêng biệt có số lượng lớn ứng xử chung Trọng tâm tạo nên lớp cha chứa ứng xử chung Khi chuyên biệt hóa, ta tìm khác biệt ứng xử để tạo lớp thích ứng Có nghĩa ta xem xét lớp tồn tại, kiểm tra xem có phải tất ứng xử có khả áp dụng cho đối tượng Nếu không, ta lọc ứng xử 5/7 Khái quát hóa chuyên biệt hóa (GENERALIZATION & SPECIALIZATION) lúc cần thiết chia trường hợp thành lớp Trọng tâm chuyên biệt hóa tạo lớp Với chế thừa kế, lớp kế thừa thuộc tính thủ tục tất lớp cha Hình sau làm rõ việc tạo cấu trúc lớp sử dụng tính khái quát Hình 7.5- Phát triển hệ thống lớp (1) Thường xảy trường hợp tất lớp tham gia vào liên hệ kết tập Trong trường hợp nên tạo lớp cha định nghĩa liên hệ /kết tập Hình sau giải thích thêm điểm này: 6/7 Khái quát hóa chuyên biệt hóa (GENERALIZATION & SPECIALIZATION) Hình 7.6- Phát triển hệ thống lớp (2) 7/7 ... kiệm, lớp khái quát kết gọi lớp cha Chuyên biệt hóa khái quát hóa hai đường khác để xem xét mối quan hệ Một lớp lớp lớp đóng vài trò lớp cha lớp khác 2/7 Khái quát hóa chuyên biệt hóa (GENERALIZATION. .. 7.2- Khái quát hóa Quá trình bắt đầu với lớp khái quát để sản xuất lớp mang tính chuyên biệt cao gọi trình chuyên biệt hoá (Specialization) Chuyên biệt hóa: trình tinh chế lớp thành lớp chuyên biệt. .. loại lớp chuyên biệt hóa cao hơn, tùy thuộc vào chức chúng Kí hiệu khái quát hóa chuyên biệt hóa Trong biểu đồ trên, lớp cấu trúc nối với mũi tên rỗng , từ lớp chuyên biệt tới lớp khái quát Hình