UML
Unified Modeling Language
Học phần: CT182
PGS. TS. Nguyễn Than h Hải
2
Chương 3
Cla ss Diag ram
Giới th iệu
Đối tượng v à đồ đ i tượng
Lớp, thu c t í nh và t ha oc/pơng thức
Qu an hệ giữa c lớ p
Ví d
Nội dung
3
Giới thi u
4
Class Diagram th hiện hệ thống một cách tổng
quan khía cạnh tĩnh
Class Diagram biểu diễn c class c mối
quan hệ giữa cng, các thuộc tính của lớp,
các phương thức
Class Diagram đồ quan trọng trong s c
đ trong phương pháp hướng đối tượng.
Đố ượi t ng và Sơ i tđồ đố ượng
5
Một hệ thống th chứa nhiều phần tử đơn lẻ khác nhau ( thể
người, động vật, cây trồng, đ vật, đối tượng...) được c định
duy nhất.
VD: helenLewis d lớp Object-Oriented Modeling (OOM) trường.
helenLewis, OOM là c đối tượng mối quan hệ với nhau
Lớp, Thu c tính và Thao tác / Ph ương th c
6
Lớp (class): Một lớp biểu diễn ch o sự mô tả trừu tượng một tập
các đối tượng có cùng tính ch t. Một đối tượng (object) là mộ t
thể h iện (instance) c a một lớp (class).
Lớp, Thu c tính và Thao tác / Ph ương th c
7
Thuộc tính (attribute): một thuộc tính biểu diễn cho một kiểu
thông tin bên trong một lớp.
lCú pháp như sau:
visibility name: type=default Value
lTh ao tác/phương thức (Operation):
lLà chức n ăng hoặc hành vi của một lớp.
lCú pháp của các thao tác :
visi bility name (parameter-l ist): return-type-
expression
Trong đó:
lvisibility
§+ : public
§- : private
§# : protected
lname: tên th ao tác
lparameter-list : các tham số, khai báo như thuộc tính
lreturn-type-expression : kiểu trả về
8
Lớp, Thu c tính và Thao tác / Ph ương th c
ass Variable s Class Operations:
lThuộc tính trong 1 lớp gồm:
Thuộc tính thể hiện (instance attributes)
Thuộc tính lớp (class attributes) hay thuộc tính tĩnh (static
attributes) là những thuộc tính được gạch dưới, dùng khi: 1/cần
lưu thông tin dùng chung cho tất cả đối tượng, 2/cấu hình hệ thống
hoặc giá trị mặc định, 3/cần truy cập nhanh không cần khởi tạo
đối tượng
lPhương t ):
được gọi
Lớp, Thu c tính và Thao tác / Ph ương th c
Quan h gi a các l ớp
10
Quan hệ kết hợp (association) giữa các lớp: Một mối
kết hợp biểu diễn một quan hệ ngữ nghĩa giữa các lớp.
Quan hệ kết tập- tự hợp (aggregation): biểu diễn mối quan hệ toàn
thể (whole)-bộ phận (part) giữa 2 lớp.
một trường hợp đặc biệt của association.
Được dùng để cho biết một thể hiện của một lớp thể chứa các
thể hiện của một lớp khác.
Gồm: shared aggregation composition
Quan h gi a các l ớp
11
Share d a ggr egation (kết t p chi a sẻ): thể hiện
sự phụ th u c “y ếu” của bộ phận (part) đến các
toàn th (whole), ng hĩac (v d: Course) part
th khô ng phụ th uộco whole tồn tại độc lập
(StudyProgram)
Quan h gi a các l ớp
lQuan h hợp thành (composition): là một
hình thức mạnh hơn của aggregation,
lNghĩa : par t (LectureHall) tồn tại ph thuộc
vào whol e (Bui lding), nếu whole bị xóa thì các
part c ũng sẽ xóa theo.
12
lQuan h tổng qt hóa (gener alization),
lớp cha (super cla ss ), lớp con (subclass)
lMột l p cha là một lớ p tổng quát hơn kết n i vớ i một hoặc
nhi u lớp ở mức cụ thể hơn (lớp c on) bởi mộ t quan hệ
tổng quát hóa .
lLớp c on kế thừa các tính c hất của lớp c ha củ a nó và có thể
có những tính chấ t riêng của nó.
Quan h gi a các l ớp
13
Quan h gi a các l ớp
14
Kết hợp n-ngôi (n-ary association)Biểu diễn
cho các mối kết hợp nhiều hơn hai lớp.
Quan hệ giữa các lớp
15
https://thesai.org/Downloads/Volume7No2/Paper_37-
N_ary_Relations_of_Association_in_Class_Diagrams_Design_Patterns.pdf
Lớp kết hợp (association class)
16
Lớp liên kết- lớ p k ết hợp: Biểu diễn sự kết hợp n
một lớp, nghĩa là sự kết hợpng thu c tín h
thao tác
Abstract Class: Lớp trừu tượng
17
Lớp không thể có được thể hiện của chính nó gọi Lớp
trừu tượng (abstract class).
Bản thân lớp kng các đi tượng, ch lớp con
(subclass) của nó có th có. Lớp trừu ợng đ nhấn
mạnh các đặc tính của lớp con trong ngữ cảnh “tổng
quát hóa (generalization)
Interface
18
Giống như abstract class, interface không thể được tạo
thể hiện (instantiate) trực tiếp.
c lớp triển khai (implement) interface bắt buộc i đặt
đầy đủ các pơng thức mà interface khai o.
Trong UML, interface thường được biểu diễn giống như
một lớp nng tm từ khóa <<interface>>, hoặc
ng hiệu riêng (vd: hình tròn nh nối với đường
thẳng) để biểu diễn.
Interface
19
UML Association vs Aggregation vs Composition
20
//www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-aggregation-vs-composition/

Preview text:

UML Unified Modeling Language Học phần: CT182 PGS. TS. Nguyễn Than h Hải Chương 3 Cla ss Diag ram 2 Nội dung ●Giới th iệu
●Đối tượng v à sơ đồ đ ối tượng
●Lớp, thu ộc t í nh và t ha o tác/phương thức
●Qu an hệ giữa cá c lớ p ●Ví d ụ 3 Giới thiệu
●Class Diagram thể hiện hệ thống một cách tổng quan ở khía cạnh tĩnh
●Class Diagram biểu diễn các class và các mối
quan hệ giữa chúng, và các thuộc tính của lớp, các phương thức
●Class Diagram là sơ đồ quan trọng trong số các
sơ đồ trong phương pháp hướng đối tượng. 4
Đối tượng và Sơ đồ đối tượng
Một hệ thống có thể chứa nhiều phần tử đơn lẻ khác nhau (có thể
là người, động vật, cây trồng, đồ vật, đối tượng...) được xác định duy nhất.
VD: helenLewis dự lớp Object-Oriented Modeling (OOM) ở trường.
helenLewis, OOM là các đối tượng có mối quan hệ với nhau 5
Lớp, Thuộc tính và Thao tác / Phương thức
Lớp (class): Một lớp biểu diễn ch o sự mô tả trừu tượng một tập
các đối tượng có cùng tính ch ất. Một đối tượng (object) là mộ t
thể h iện (instance) c ủa một lớp (class). 6
Lớp, Thuộc tính và Thao tác / Phương thức
Thuộc tính (attribute): một thuộc tính biểu diễn cho một kiểu
thông tin bên trong một lớp. lCú pháp như sau:
visibility name: type=default Value 7
Lớp, Thuộc tính và Thao tác / Phương thức
lTh ao tác/phương thức (Operation):
lLà chức n ăng hoặc hành vi của một lớp.
lCú pháp của các thao tác :
visi bility name (parameter-l ist): return-type- expression Trong đó: lvisibility §+ : public §- : private §# : protected lname: tên th ao tác
lparameter-list : các tham số, khai báo như thuộc tính
lreturn-type-expression : kiểu trả về 8
Lớp, Thuộc tính và Thao tác / Phương thức
ass Variable s và Class Operations:
lThuộc tính trong 1 lớp gồm:
■Thuộc tính thể hiện (instance attributes)
■Thuộc tính lớp (class attributes) hay thuộc tính tĩnh (static
attributes) là những thuộc tính được gạch dưới, dùng khi: 1/cần
lưu thông tin dùng chung cho tất cả đối tượng, 2/cấu hình hệ thống
hoặc giá trị mặc định, 3/cần truy cập nhanh mà không cần khởi tạo đối tượng lPhương t ): được gọi Quan hệ giữa các lớp
●Quan hệ kết hợp (association) giữa các lớp: Một mối
kết hợp biểu diễn một quan hệ ngữ nghĩa giữa các lớp.
●Quan hệ kết tập- tự hợp (aggregation): biểu diễn mối quan hệ toàn
thể (whole)-bộ phận (part) giữa 2 lớp.
○ Là một trường hợp đặc biệt của association.
○ Được dùng để cho biết một thể hiện của một lớp có thể chứa các
thể hiện của một lớp khác.
○ Gồm: shared aggregation và composition 10 Quan hệ giữa các lớp
●Share d a ggr egation (kết t ập chi a sẻ): thể hiện
sự phụ th uộ c “y ếu” của bộ phận (part) đến các
toàn thể (whole), ng hĩa là các part (v d: Course)
có thể tồn tại độc lập khô ng phụ th uộc vào whole (StudyProgram) 11 Quan hệ giữa các lớp
lQuan hệ hợp thành (composition): là một
hình thức mạnh hơn của aggregation,
lNghĩa là: par t (LectureHall) là tồn tại phụ thuộc
vào whol e (Bui lding), nếu whole bị xóa thì các part c ũng sẽ xóa theo. 12 Quan hệ giữa các lớp
lQuan hệ tổng quát hóa (gener alization),
lớp cha (super cla ss ), lớp con (subclass)
lMột l ớp cha là một lớ p tổng quát hơn kết n ối vớ i một hoặc
nhi ều lớp ở mức cụ thể hơn (lớp c on) bởi mộ t quan hệ tổng quát hóa .
lLớp c on kế thừa các tính c hất của lớp c ha củ a nó và có thể
có những tính chấ t riêng của nó. 13 Quan hệ giữa các lớp 14 Quan hệ giữa các lớp
Kết hợp n-ngôi (n-ary association)Biểu diễn
cho các mối kết hợp có nhiều hơn hai lớp.
https://thesai.org/Downloads/Volume7No2/Paper_37- 15
N_ary_Relations_of_Association_in_Class_Diagrams_Design_Patterns.pdf
Lớp kết hợp (association class)
Lớp liên kết- lớ p k ết hợp: Biểu diễn sự kết hợp như
một lớp, nghĩa là sự kết hợp cũng có thuộ c tín h và thao tác 16
Abstract Class: Lớp trừu tượng
Lớp không thể có được thể hiện của chính nó gọi là Lớp
trừu tượng (abstract class).
Bản thân lớp không có các đối tượng, chỉ lớp con
(subclass) của nó có thể có. Lớp trừu tượng để nhấn
mạnh các đặc tính của lớp con trong ngữ cảnh “tổng quát hóa” (generalization) 17 Interface
Giống như abstract class, interface không thể được tạo
thể hiện (instantiate) trực tiếp.
Các lớp triển khai (implement) interface bắt buộc cài đặt
đầy đủ các phương thức mà interface khai báo.
Trong UML, interface thường được biểu diễn giống như
một lớp nhưng có thêm từ khóa <>, hoặc
dùng ký hiệu riêng (vd: hình tròn nhỏ nối với đường thẳng) để biểu diễn. 18 Interface 19
UML Association vs Aggregation vs Composition 20
//www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-aggregation-vs-composition/