1. Trang chủ
  2. » Công Nghệ Thông Tin

Định nghĩa các quan hệ tổng quát hóa

32 466 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Định nghĩa các quan hệ tổng quát hóa
Tác giả Dương Anh Đức
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Công nghệ thông tin
Thể loại bài giảng
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 32
Dung lượng 282,47 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các bước thiết kế Classw Tạo các Design Class ban đầu w Xác định các Persistent Class w Định nghĩa các Operation w Định nghĩa Class Visibility w Định nghĩa các Method w Định nghĩa các tr

Trang 1

Các bước thiết kế Class

w Tạo các Design Class ban đầu

w Xác định các Persistent Class

w Định nghĩa các Operation

w Định nghĩa Class Visibility

w Định nghĩa các Method

w Định nghĩa các trạng thái

w Định nghĩa các thuộc tính

w Định nghĩa các phụ thuộc

w Định nghĩa các mỗi kết hợp

w Định nghĩa các quan hệ tổng quát hóa

w Giải quyết đụng độ giữa các Use-Case

Trang 2

Định nghĩa quan hệ tổng quát hóa

§ Xác định các khả năng dùng lại

§ Tinh chỉnh cây kế thừa để có thể cài đặt hiệu quả

§ Bài toán đa kế thừa

§ Tổng quát hóa để hỗ trợ tái sử dụng trong cài đặt

§ Tổng quát hóa để hỗ trợ đa xạ (polymorphism)

§ Tổng quát hóa để hỗ trợ đa hình (metamorphosis)

§ Mô phỏng tổng quát hóa

Trang 3

Nhắc lại: Generalization

w Một class chi sẻ cấu trúc và hành vi của một

hay nhiều class

w Là quan hệ “Là một dạng của”

w Trong phân tích, ít khi dùng đến

Account balance

name number

Withdraw() CreateStatement()

Superclass (parent)

Generalization Relationship

ancestor

Trang 4

talk () {abstract}

Không có thể hiện của Animal

Abstract class Abstract operation

Communication

Chuyên biệt hóa

Abstract và Concrete Class

w Abstract class không có bất kỳ thể hiện nào

w Concrete classes có thể có thể hiện (object)

Trang 5

Airplane Helicopter Wolf Horse

Bird

multiple inheritance

Nhắc lại: Đa kế thừa

w Một class có thể kế thừa từ nhiều class

Trang 6

Tên của attribute hay operation bị trùng Lặp lại việc kế thừa

FlyingThing

color

getColor

Animal color getColor

Bird

Bird

AnimateObject color

Các vấn đề của đa kế thừa

Lời giải của các vấn đề trên phụ thuộc cài đặt cụ thể

Trang 7

Các ràng buộc của quan hệ tổng quát hóa

w Complete (Hoàn chỉnh)

§ Kết thúc toàn bộ cây kế thừa trong thiết kế

w Incomplete (Không hoàn chỉnh )

§ Cây kế thừa có thể mở rộng

w Disjoint (Phân tách)

§ Các Subclass loại trừ lần nhau

§ Không hỗ trợ đa kế thừa

w Overlapping (Chồng lắp)

§ Các Subclass không loại trừ lẫn nhau

Trang 8

Ví dụ: Generalization Constraints

Asset

Real Estate

Kết thúc cây kế thừa

Không hỗ trợ

đa kế thừa

Trang 9

Ví duï: Generalization Constraints (tt.)

Vehicle

Water Vehicle

Land Vehicle

Trang 10

WindowWithScrollbar

Scrollbar

Có đúng không?

Chọn Generalization hay Aggregation

w Rất dễ nhầm lẫm giữa Generalization và

Trang 12

Sử dụng quan hệ tổng quát hóa

w Chia sẻ các thuộc tính và hành vi chung

w Chia sẻ cài đặt

w Cài đặt cơ chế Polymorphism

w Cài đặt cơ chế Metamorphosis

Trang 13

Sử dụng quan hệ tổng quát hóa

w Chia sẻ các thuộc tính và hành vi chung

w Chia sẻ cài đặt

Trang 14

insertTop (Item) insertBottom (Item) removeTop ()

removeBottom () insert (Item, position)

Stack

Animal talk ()

Chia sẻ các thuộc tính và hành vi chung

w Tuân thủ qui tắc lập trình “Là một dạng của”

w Khả năng thay thể Class

Trang 15

Animal talk ()

removeBottom () insert (Item, position)

Stack

Trang 16

Sử dụng quan hệ tổng quát hóa

w Chia sẻ các thuộc tính và hành vi chung

w Chia sẻ cài đặt

Trang 17

SequentialContainer insertTop (Item)

insert (Item, position)

Chia sẻ cài đặt: Factoring (phân chia)

w Hỗ trợ khả năng dùng lại khi cài đặt class khác

w Không thể dùng nếu class bạn muốn “dùng

lại” không thể thay đổi

Trang 18

List insertBottom (Item)

removeBottom () insert (Item, position) remove (position)

Stack push (Item)

List insertTop (Item)

insertBottom (Item)

removeTop ()

removeBottom ()

insert (Item, position)

Chia sẻ cài đặt: Delegation (đại diện)

w Hổ trợ khả năng dùng lại khi cài đặt class khác

w Không thể dùng nếu class bạn muốn “dùng

lại” không thể thay đổi

Trang 19

List insertBottom (Item) removeBottom () insert (Item, position) remove (position) insertTop (Item)

push() and pop() có thể truy cập đến các method của List nhưng các thể hiện của Stack thì không

Quan hệ kế thừa dạng <<implementation>>

w Các public operation, attribute và relationship của tổ tiên không nhìn thấy được bởi các client của các thể hiện của các class con cháu

w Các class con cháu phải định nghĩa các truy

cập đến operations, attributes, và relationships của tổ tiên

Trang 20

Sử dụng quan hệ tổng quát hóa

w Chia sẻ các thuộc tính và hành vi chung

w Chia sẻ cài đặt

w Cài đặt cơ chế Polymorphism

Trang 21

Manufacturer A Manufacturer B Manufacturer C

Nhắc lại: Polymorphism là gì ?

w Khả năng che dấu nhiều cài đặt bên dưới một interface duy nhất

Trang 22

Cài đặt Polymorphism

Animal talk ()

if animal = “Lion” then

do the Lion talk else if animal = “Tiger” then

do the Tiger talk end

do the Animal talk

Trang 23

So sánh Interface và Generalization

w Các Interface hỗ trợ biểu diễn độc lập với cài đặt của polymorphism

§ Realization relationships có thể băng ngang qua cấu trúc phân cấp của quan hệ tổng quát hóa

w Các Interface chỉ thuần là đặc tả, không có hành vi

§ Abstract base class có thể định nghĩa attributes và associations

w Các Interface hoàn toàn độc lập với quan hệ kế thừa

§ Generalization thường dùng để cài đặt việc dùng lại

Trang 24

Dùng QH tổng quát hóa để cài Polymorphism

w Chỉ cung cấp interface cho các class con cháu?

§ Thiết kế tổ tiên như một abstract class

§ Mọi method cài đặt ở các class con cháu

w Cung cấp interface và behavior mặc định cho các

class con cháu?

§ Thiết kế tổ tiên như một concrete class với các

method mặc định

§ Cho phép dùng các polymorphic operation

w Cung cấp interface và behavior bắt buộc cho các

class con cháu?

§ Thiết kế tổ tiên là concrete class

Trang 25

Sử dụng quan hệ tổng quát hóa

w Chia sẻ các thuộc tính và hành vi chung

w Chia sẻ cài đặt

w Cài đặt cơ chế Metamorphosis

Trang 26

Metamorphosis tồn tại trong thể giới thực

Metamorphosis là gì?

w Metamorphosis

§ 1 Một thay đổi trong hình dạng, cấu trúc, hay chức năng; đặc biệt là các thay đổi vật lý mà các động vật phải trải qua, như con nòng nọc biến

thành con ếc

§ 2 Mọi thay đổi được ghi nhận, như trong các ký tự, thể hiện, hoặc điều kiện

§ Xem thêm Webster’s New World Dictionary,

Simon & Schuster, Inc., 1979

Trang 27

FulltimeStudent ParttimeStudent

Trang 28

Chuyện gì xảy ra nếu một part-time student trở thành full-time

student?

FulltimeStudent

Student name address

studentID

gradDate

ParttimeStudent

maxNumCourses

Một hướng tiếp cận Modeling Metamorphosis

w Có thể tạo một quan hệ tổng quát hóa

Trang 29

1 1 Classification

ParttimeClassification

Student name address

studentID

FulltimeClassification FulltimeStudent

Student name address

studentID

ParttimeStudent

Một hướng tiếp cận khác

w Quan hệ kế thừa có thể dùng để mô hình hóa cấu trúc, hành vi và quan hệ chung và tạo quan hệ với phần “thay đổi”

Trang 30

Một hướng tiếp cận khác (tt)

w Metamorphosis được hoàn tất bởi object “nói chuyện với” phần “thay đổi”

Trang 31

1 1

0 1 1 0 1

Classification 1

Metamorphosis và tính mềm dẻo

w Kỹ thuật này thêm tính mềm dẻo cho mô hình

ParttimeClassification maxNumCourses

FulltimeClassification gradDate

Trang 32

Bài tập: Định nghĩa Generalizations

w Hãy cho biết:

§ Tất cả các design class

w Hãy xác định:

§ Tât cả các tinh chỉnh liên quan đên generalizations có sẵn

§ Mọi ứng dụng generalization mới

• Kiểm tra là đã xem xétmọi metamorphosis

w Xây dựng các lược đồ:

§ Class diagram chứa mọi quan hệ tổng quát hóa

mới (hay đã tính chỉnh) giữa các class Tinh chỉnh use-case realizations (optional)

Ngày đăng: 06/10/2013, 08:20

HÌNH ẢNH LIÊN QUAN

§ Tổng quát hóa để hỗ trợ đa hình (metamorphosis) - Định nghĩa các quan hệ tổng quát hóa
ng quát hóa để hỗ trợ đa hình (metamorphosis) (Trang 2)
§ 1. Một thay đổi trong hình dạng, cấu trúc, hay chức năng; đặc biệt là các thay đổi vật lý mà các  động vật phải trải qua, như con nòng nọc biến  - Định nghĩa các quan hệ tổng quát hóa
1. Một thay đổi trong hình dạng, cấu trúc, hay chức năng; đặc biệt là các thay đổi vật lý mà các động vật phải trải qua, như con nòng nọc biến (Trang 22)
w Quan hệ kế thừa có thể dùng để mô hình hóa - Định nghĩa các quan hệ tổng quát hóa
w Quan hệ kế thừa có thể dùng để mô hình hóa (Trang 25)
w Kỹ thuật này thêm tính mềm dẻo cho mô hình - Định nghĩa các quan hệ tổng quát hóa
w Kỹ thuật này thêm tính mềm dẻo cho mô hình (Trang 27)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w