Một số quan hệ giữa các class trong uml
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. Realization2. Generation3. Dependency4. Association : có 2
quan hệ phân biệt1. Aggregation2. Composition1.
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ácM 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 A3.
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 ClassBo 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íchL 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úc4. 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 kia5.
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 ClassBo 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 . 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ộ ố ệ. 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