Định Nghĩa của Class Diagram - Class diagram là một loại lược đồ cấu trúc tĩnh, mô tả kiểu của các đối tượng trong hệ thống và các loại quan hệ khác nhau tồn tại giữa chúng.. Access Modi
Trang 1BÁO CÁO SEMINAR CLASS DIAGRAM PHÂN TÍCH THIẾT KẾ HỆ THỐNG TRUYỀN
THÔNG VÀ MẠNG
Giảng viên hướng dẫn: ThS Đỗ Thị Hương Lan
Sinh viên thực hiện:
Nguyễn Thị Thúy Nga 18520317
Bùi Thị Phương Trinh 18520388
Đinh Tấn Đạt 18520564
Nguyễn Hạnh My 18521114
Lớp: NT332.M11
Thành phố Hồ Chí Minh, ngày 07 tháng 10 năm 2021
Trang 2Nô ̣i dung
I ĐỊNH NGHĨA, LỢI ÍCH CỦA CLASS DIAGRAM _1
1 Định Nghĩa của Class Diagram 1
2 Lợi ích khi sử dụng Class Diagram _1
II CÁC TÍNH CHẤT ĐẶC TRƯNG CƠ BẢN CỦA CLASS DIAGRAM 2
1 Các tính chất cơ bản 2
2 Access Modifier Trong Class Diagram 2
3 Relationship trong Class Diagram 3 3.1 Quan Hệ Realization (Hiện Thực Hóa): _4 3.2 Quan Hệ Generalization (Tên Khác Là Inheritance) _5 3.3 Quan Hệ Association _6 3.4 Quan Hệ Aggregation (Còn Gọi Là Quan Hệ Thu Nạp): _7 3.5 Quan Hệ Composition (Hợp Thành) _8
4 Multiplicity Trong Class Diagram _9
III VÍ DỤ VỀ CLASS DIAGRAM 10
Trang 3I ĐỊNH NGHĨA, LỢI ÍCH CỦA CLASS DIAGRAM
1 Định Nghĩa của Class Diagram
- Class diagram là một loại lược đồ cấu trúc tĩnh, mô tả kiểu của các đối tượng trong
hệ thống và các loại quan hệ khác nhau tồn tại giữa chúng
- Là một kỹ thuật mô hình hóa tồn tại ở tất cả các phương pháp phát triển hướng đối tượng
2 Lợi ích khi sử dụng Class Diagram
- Cấu trúc ứng dụng của Bản vẽ class diagiam
Hiểu cấu trúc của hệ thống
Thiết kế hệ thống
Sử dụng và phân tích chi tiết các chức năng (sequence diagram, ….)
Sử dụng cài đặt
Giúp các lập tình viên trao đổi với nhau, hiểu rõ ý tưởng của nha
Trang 4II CÁC TÍNH CHẤT ĐẶC TRƯNG CƠ BẢN CỦA CLASS DIAGRAM
1 Các tính chất cơ bản
- Class là thành phần chính của bản vẽ Class Diagram Class mô tả về một nhóm đối tượng có cùng tính chất, hành động trong hệ thống
- Trong đó một class bao gồm 3 thành phần:
Tên class
Attributes (thuộc tính): mô tả tính chất của các đối tượng
Method (phương thức): chỉ các hành động mà đối tượng này có thể thực hiện trong hệ thống Nó thể hiện hành vi của các đối tượng do lớp này tạo ra
2 Access Modifier Trong Class Diagram
- Sử dụng để đặc tả phạm vi truy cập cho các thuộc tính và phương thức của 1 lớp (Cấp quyền cho các lớp khác sử dụng thuộc tính và phương thức của lớp này)
- 4 lựa chọn phạm vi truy cập:
Private (-): Chỉ mình các đối tượng được tạo từ lớp này có thể sử dụng
Public (+): Mọi đối tượng đều có thể sử dụng
Protected (#): Chỉ các đối tượng được tạo từ lớp này và lớp kế thừa từ lớp này
có thể sử dụng
Package/Default (~): Các đối tượng được tạo từ lớp trong lớp cùng gói có thể
sử dụng
Trang 53 Relationship trong Class Diagram
- Sư dụng để thể hiện mối quan hệ giữa đối tượng được tạo từ 1 lớp với các đối tượng được tạo từ lớp khác trong class diagram
- 4 loại mối quan hệ:
Realization (Hiện thực hóa)
Generation (Tổng quát hóa)
Dependency (Phụ thuộc)
Association (Kết hợp): có 2 quan hệ phân biệt
o Aggregation (Thu nạp)
o Composition (Cấu thành)
Trang 63.1 Quan Hệ Realization (Hiện Thực Hóa):
- Là quan hệ giữa một lớp đóng vai trò là hợp đồng và một lớp đóng vai trò thực hiện Hay nói cách khác: Mối quan hệ giữa 1 class implement với 1 interface được
gọi là quan hệ realization, được biểu diễn bởi đường đứt nét có hình mũi tên tam
giác chỉ vào interface
- Ký hiệu:
- Ví dụ: Interface Owner có thể chỉ định các phương pháp mua tài sản và định đoạt tài sản Các class Person và Corporation cần triển khai các phương thức này, có thể theo những cách rất khác nhau
Trang 73.2 Quan Hệ Generalization (Tên Khác Là Inheritance)
- Thường gọi là quan hệ tổng quát hóa hay mối quan hệ kế thừa là mối quan hệ giữa
lớp cha và lớp con Và lớp con được kế thừa từ lớp cha
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
- Ví dụ, Tài khoản Hiện tại, Tài khoản Tiết kiệm và Tài khoản Tín dụng là đều là con của Tài khoản Ngân hàng và được kế thừa những thuộc tính, phương thức của Tài khoản ngân hàng
- Quan hệ Dependency (Phụ thuộc): là một mối quan hệ ngữ nghĩa giữa hai hoặc nhiều lớp trong đó sự thay đổi trong một lớp sẽ gây ra những thay đổi trong một lớp khác
- Ký hiệu bằng mũi tên 1 chiều nét đứt, từ bên phụ thuộc sang bên độc lập
- ClassA “phụ thuộc” vào ClassB
- Dependency còn có một số biểu hiện khác, thường dùng các stereotype sau :
Trang 8 <<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
3.3 Quan Hệ 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
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:
Trang 9 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
3.4 Quan Hệ Aggregation (Còn Gọi Là Quan Hệ Thu Nạp):
- Đã xác định được ClassA và ClassB có quan hệ Association với nhau
- Xác định rõ hơn:
Trong object của ClassA có chứa (trong phần thuộc tính) object của ClassB
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
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
Trang 10- 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
3.5 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:
- Ví dụ:
- Ý 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:
Trong object của ClassA có chứa (trong phần thuộc tính) object của ClassB
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
Trang 11- 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
4 Multiplicity Trong Class Diagram
- Sử dụng để thể hiện quan hệ về số lượng giữa các đối tượng được tạo từ các class trong class diagram
0 1: 0 hoặc 1
n: Bắt buộc có n
0 *: 0 hoặc nhiều
1 *: 1 hoặc nhiều
m n: có tối thiểu là m và tối đa là n
Trang 12III VÍ DỤ VỀ CLASS DIAGRAM