Một số quan hệ giữa các class trong uml
M t s quan h gi a các class g m có các 4 quan h chính sauộ ố ệ ữ ồ ệ
1. Realization
2. Generation
3. Dependency
4. Association : có 2 quan hệ phân biệt
1. Aggregation
2. Composition
1. QUAN H REALIZATION (HI N TH C HÓA) :Ệ Ệ Ự
o Là quan h gi a m t classifier óng vai trò là h p ng và m t classifier óng vai trò th cệ ữ ộ đ ợ đồ ộ đ ự
hi nệ
:o Nói cách khác
M i quan h gi a class implement 1 interface c g i là quan h ố ệ ữ đượ ọ ệ
realization
, c bi uđượ ể
di n b i ng t nét có hình tam giác n m k và ch vào interface.ễ ở đườ đứ ằ ề ỉ
o Ký hi uệ
: có 2 lo i ký hi uạ ệ
ho cặ
2. QUAN H GENERALIZATION (TÊN KHÁC LÀỆ
INHERITANCE)
:o Còn g i là Quan h t ng quát hóaọ ệ ổ ; ;quan h khái quát hóa quan h k th aệ ệ ế ừ
o i t ng c th s k th a các thu c tính và ph ng th c c a i t ng t ng quátĐố ượ ụ ể ẽ ế ừ ộ ươ ứ ủ đố ượ ổ
:o Ký hi uệ A is-a B
•
o Đọc là : A là tổng quát của B , B là chi tiết của A , A là cha
của B , B là con của A ; B là trường hợp đặc biệt của A
3. QUAN H DEPENDENCY (PH THU C) :Ệ Ụ Ộ
• Là quan hệ giữa 2 phần tử trong mô hình mà thay đổi ở phần tử
này (phần tử độc lập) có thể gây ra thay đổi ở phần tử kia (phần tử
phục thuộc).
• Là loại quan hệ giữa 2 object
• ClassA và ClassB không có quan hệ Association
•
o Trong ClassA có sử dụng
biến toàn cục (kiểu B)
, hoặc
sử dụng
phương thức/thuộc tính
static của ClassB
o Ký hiệu :
A use-a B
, bằng mũi tên 1 chiều nét đứt , từ
bên phụ thuộc sang bên độc lập ;
•
o ClassA “phụ thuộc” vào ClassB ;
o Client –> Supplier (phần tử phục thuộc –> phần tử độc
lập)
, :Dependency còn có m t s bi u hi n khác th ng dùng các stereotype sauộ ố ể ệ ườ
• <<use>> : chỉ rằng ngữ nghĩa của lớp gốc (mũi tên) phụ thuộc
vào lớp ngọn (mũi tên) . Đặc biệt trong trường hợp lớp gốc dùng lớp
ngọn làm tham số trong 1 số method của nó
• <<permit>> : chỉ rằng lớp gốc được quyền truy cập 1 cách đặc
biệt vào lớp ngọn (chẳng hạn truy cập các thao tác riêng tư). Tương
ứng với khái niệm friend trong C++
• <<refine>> : chỉ rằng lớp gốc ở 1 mức độ tinh chế cao hơn từ
lớp ngọn . Chẳng hạn 1 lớp lập ở giai đoạn thiết kế nhằn tinh chế cùng
lớp đó lập ở giai đoạn phân tích
L u ýư : Phân bi t gi a Dependency và Associationệ ữ
• Association là quan hệ cấu trúc
• Dependency là qua hệ phi cấu trúc
4. ASSOCIATION :
• Giữa 2 object của 2 lớp có sự ghép cặp (vợ – chồng , thầy – trò ,
khách hàng – hóa đơn …) . Tập hợp các kết nối cùng loại (cùng ý nghĩa)
giữa các object của 2 lớp tạo thành mối liên kết association , quan hệ
giữa 2 tập hợp (2 lớp)
• Là mỗi liên hệ giữa 2 lớp có role, role là tên vai trò của mối liên
kết : vd như : của , cho , có , liên kết tới , trao đối với , …. (thường tên
role có kèm theo 1 mũi tên để chỉ hướng quan hệ áp dụng từ lớp nào
sang lớp nào)
• Ký hiệu :
A has-a B
Ý ngh a :ĩ
( )tr ng h p m i tên không có chi uườ ợ ũ ề
:Ho c Trong ClassA có thu c tính có ki u là ClassBặ ộ ể
:Ho c Trong ClassB có thu c tính có ki u là ClassAặ ộ ể
Nh n xét:ậ , , ,V m t l p trình thu c tính có th c l u tr d ng bi n n bi n m ng hayề ặ ậ ộ ể đượ ư ữ ạ ế đơ ế ả
bi n con trế ỏ
Có ho c không có b n s c ng cặ ả ố ũ đượ
Có ho c không có m i tên c ng cặ ũ ũ đượ
,N u có m i tên 1 chi u ch ra chi u i t ng thu c l p này ch có g i i t ng c a l pế ũ ề ỉ ề đố ượ ộ ớ ỉ ọ đố ượ ủ ớ
,kia không có chi u ng c l iề ượ ạ
,N u không có m i tên nào thì t ng ng là m i tên 2 chi u ho c chi u không quanế ũ ươ đươ ũ ề ặ ề
.tr ngọ
Multiplicity : , b n s , l ng s , s object bên này tham gia vào m i k t h p so v i 1ả ố ượ ố ố ố ế ợ ớ
object bên kia
5. QUAN H AGGREGATION (CÒN G I LÀ QUAN H THU N P)Ệ Ọ Ệ Ạ
:
o ã xác nh c ClassA và ClassB có quan h Association v i nhauĐ đị đượ ệ ớ
:o Xác nh rõ h nđị ơ
( )o Trong object c a ClassA có ch a trong ph n thu c tính object c a ClassBủ ứ ầ ộ ủ
( )o ObjectX c a ClassA b h y thì ObjectY c a ClassB bên trong ObjectXủ ị ủ ủ v n có th còn t nẫ ể ồ
t iạ
- . ,o Còn g i là shared aggregation M t d ng c a n i k t trong ó m t ph n t này ch a cácọ ộ ạ ủ ố ế đ ộ ầ ử ứ
.ph n t khácầ ử
• Ký hiệu :
§
• Ý nghĩa : còn gọi là : Whole A – Part B . Nghĩa là A được tạo từ
nhiều B kết hợp lại , và B có thể tạo ra độc lập , không cần phải tạo ra A
, B có thể cùng thuộc 1 whole khác A.
• Chú ý : Từ share ở đây có nghĩa là , B có thể là bộ phận của
whole khác, do đó A bị hủy thì chưa chắc B bị hủy .
6. QUAN H COMPOSITION (H P THÀNH) :Ệ Ợ
• Là loại aggregation chặt chẽ hơn , còn gọi là non-shared
aggregation
• Ký hiệu :
• VD :
•
• Ý nghĩa : còn gọi là Whole A – Part B . Nghĩa là A được tạo từ
nhiều B kết hợp lại , nhưng B không thể đứng 1 mình được , B chỉ là
thuộc A mà thôi không thể cùng thuộc Whole khác được.
• Đã xác định được ClassA và ClassB có quan hệ Association với
nhau
• Xác định rõ hơn:
o Trong object của ClassA có chứa (trong phần thuộc tính)
object của ClassB
o ObjectX của ClassA bị hủy thì ObjectY của ClassB (bên
trong ObjectX) không th còn t n t iể ồ ạ
• Chú ý :
• B
ch có th là b ph nỉ ể ộ ậ
của whole A
• A chết thì tất cả B chết
• B chết không ảnh hưởng đến A
• Bản số của Whole A luôn là 1, nghĩa là B luôn thuộc 1 A thôi