Sự kết hợp Aggregation• Là quan hệ “là bộ phận của”, chỉ ra một đối tượng là một thành phần của một đối tượng khác • Quá trình tạo đối tượng tổng thể từ các đối tượng thành phần được gọ
Trang 1Mô hình đối tượng (2)
Trang 2Nội dung
• Mô tả sự kết hợp
• Xem xét sự khái quát hoá và chi tiết hoá
• Xem xét về lớp trừu tượng và lớp cụ thể
• Xem xét việc sử dụng sự kế thừa
• Quá trình phân lớp
• Tinh chỉnh mô hình đối tượng.
Trang 3Sự kết hợp (Aggregation)
• Là quan hệ “là bộ phận của”, chỉ ra một đối tượng
là một thành phần của một đối tượng khác
• Quá trình tạo đối tượng tổng thể từ các đối tượng thành phần được gọi là sự kết hợp (cấu thành)
• Đối tượng tổng thể được cấu tạo thành từ những thành phần
• Ví dụ:
Văn bản Đoạn văn bản Câu
Quyển sách Trang sách
Ôtô Sườn, Vỏ, Bánh, Động cơ
Trang 4Ký pháp của sự kết hợp
Ký pháp
Trang 5Sự kết hợp đa cấp
Man hinh Ban phim Con chuot
PC
MainBoard CPU RAM O cung O mem
Khoi TT
Trang 6Một số đặc điểm của sự kết hợp
• “Quan hệ” kết hợp không cần đặt tên (ngầm định hiểu là “Tạo thành từ”)
• Sự khác biệt giữa kết hợp và quan hệ bình thường:
– Kết hợp: quan hệ giữa các thành phần với cái tổng thể (trong cùng một đối tượng)
– Quan hệ bình thường: quan hệ giữa các đối tượng khác nhau
Trang 7Sự tổng quát hoá và sự chuyên biệt hoá
• Sự chuyên biệt hoá (specialisation):
– Quá trình đi từ một lớp khái quát, chi tiết thành nhiều
lớp khác biệt nhau.
Trang 8Ví dụ về sự chuyên biệt hoá
• Discriminator
– Là cái cho phép quyết định một đối tượng thuộc lớp nào trong số các lớp chuyên biệt
– Phải là một tính chất của lớp trên
Trang 9Sự chuyên biệt hoá
• Sự chuyên biệt hoá chuyên biệt một lớp thành nhiều lớp cụ thể hơn
• Các lớp chuyên biệt thường được thêm các chi tiết và/hoặc các điểm cụ thể
• Lớp ban đầu được gọi là lớp trên (superclass)
• Các lớp chuyên biệt được gọi là các lớp dưới (subclass).
Trang 10Sự khái quát hoá
• Quá trình ngược với sự chuyên biệt hoá
• Đi từ các lớp dưới cụ thể (chuyên biệt), tổng quát lên
thành lớp trên mang các đặc tính chung
Trang 11Lớp trừu tượng và lớp cụ thể
• Lớp trừu tượng (Abstract Class)
– Là lớp tồn tại để cung cấp cái tổng quát trong một cây
kế thừa
– Trong thế giới thực, lớp này không có đối tượng trực thuộc trực tiếp với đầy đủ ý nghĩa
– Thường là kết quả của sự khái quát hoá
• Lớp cụ thể (Concret Class)
– Là lớp có thể được tạo thể hiện
– Các thể hiện của lớp cụ thể là các đối tượng
– Sự tạo đối tượng được gọi là sự tạo thể hiện
Trang 12Sự kế thừa (Inheritance)
• Là cơ chế để chia sẻ các thuộc tính và phương thức thông qua sự khái quát hoá (chuyên biệt hoá)
• Nói chung, một lớp dưới kế thừa tất cả các thuộc tính và phương thức của lớp trên (trừ các thuộc tính và phương thức riêng (private))
• Cho phép đơn giản hoá việc thiết kế các lớp.
Trang 13Sự phân lớp (Classification)
• Khi quan sát vào một hệ thống các đối tượng cụ thể
• Để mô hình hoá hệ thống cần phải phân lớp cho các đối tượng
• Có hai cách thức để tiến hành phân lớp
– Khám phá (Discovery)
• Xác định các lớp theo ngôn ngữ của NSD (NSD đã sử dụng các khái niệm này)
• Dựa vào, trao đổi với NSD
– Sáng tạo (Invention)
• Đưa ra khái niệm “mới”, NSD chưa (không) dùng khái niệm này
Trang 14Khó khăn của sự phân lớp
• Sự trừu tượng hoá đóng vai trò quan trọng
• Phụ thuộc vào kinh nghiệm, kiến thức,… của người thực hiện
• Cùng một bài toán có thể có nhiều cách nhìn nhận kết quả là khác nhau.
Trang 15Tinh chỉnh mô hình
• Nếu có lớp nào đó không có thuộc tính, phương thức có ý nghĩa lớp đó là thừa
• Nếu có phương thức nào đó cần được thực hiện nhưng chưa có lớp đảm nhiệm thiếu lớp
• Nếu trong số các đối tượng của một lớp có đối tượng nào
đó có vai trò đặc biệt cần chuyên biệt hoá lớp
• Nếu có một số lớp có nhiều thuộc tính và/hoặc phương thức giống nhau cần trừu tượng hoá
• Nếu có liên hệ giữa các đối tượng mà chưa có quan hệ được thiết lập giữa các lớp liên quan thiếu quan hệ
• Nếu tồn tại quan hệ nhưng chưa có tác nhân nào sử
dụng quan hệ đó là thừa
Trang 16Tóm tắt các bước lập mô hình đối tượng
• Xác định trừu tượng khoá
• Xác định các lớp ứng cử viên
• Thanh lọc các lớp ứng cử viên
• Xác định quan hệ giữa các lớp tích hợp dần vào
mô hình
• Tinh chỉnh mô hình
• Phát triển mô hình đầy đủ
– Bổ sung các thuộc tính và phương thức cho các lớp
– Lập bản đặc tả cho từng lớp