
- Chỉ tính trên đối tượng đang xét
- Chỉ tính trên lớp đang xét (*)
o Dựa trên các thuộc tính của lớp đang xét
o Dựa vào các mối liên kết với các lớp khác
- Tính trên lớp kết nối với lớp đang xét (*)
- Cũng có dạng không/ có tham số như trên
Ví dụ :
tsLop() : integer ; // tổng số lớp
tsLop (b : char) : integer ; // tìm theo một ban
tsLop(si_so : integer) : integer ;
tsLop(si_so_min, si_so_max : integer) : integer ;
tsLop(mon: Mon) : integer ;
tsLop(ma_mon: string) : integer ;
tsLop(tb: Thietbi) : integer ;
tsLop(ma_thietbi: string) : integer ;
tsLop(p: Phong() : integer;
tsLop(ma_phong: string) : integer ;
tsMon() : integer ;
tsMon(co_TH : boolean) : Mon[] ;
tsMon(so_tiet : integer) : Mon[] ;
tsMon(so_tiet_min, so_tiet_max : integer) : Mon[] ;
tsMon(co_TH : boolean, so_tiet : integer) : Mon[] ;
tsMon(co_TH : boolean, so_tiet_min, so_tiet_max : integer) : Mon[] ;
tsThietbi(): integer ;
// tổng số thiết bị có trong phòng học của lớp đang xét
tsThietbi(tri_gia: longint): integer ;
tsThietbi(tri_gia_min, tri_gia_max: longint): integer ;
tbinhSiso(): integer; // trung bình sĩ số tính trên tất cả các lớp
tbinhSiso(b: char): integer;
// trung bình sí số tính trên tất cả các lớp của một ban
tbinhSotietLop(): integer;
//trung bình số tiết học tính trên tất cả các môn của lớp đang xét
maxSotietLop(): integer; //
//số tiết tối đa tính trên tất cả các môn của lớp đang xét
minSotietLop(): integer; //
//số tiết tối thiểu tính trên tất cả các môn của lớp đang xét
tbinhSotiet(): integer;
//trung bình số tiết học tính trên tất cả các môn của tất cả các lớp
maxSotiet(): integer; //
//số tiết tối đa tính trên tất cả các môn của tất cả các lớp
minSotiet(): integer; //
//số tiết tối thiểu tính trên tất cả các môn của tất cả các lớp
h. Hiển thị kết quả thống kê dùng hàm kết tập trên nhóm (*):
16

Dùng các hàm kết tập (sum, count, max, min, avg) để tính ra kết quả.
- Chỉ tính trên lớp đang xét
o Dựa trên các thuộc tính của lớp đang xét
o Dựa vào các mối liên kết với các lớp khác
- Tính trên lớp kết nối với lớp đang xét
- Cũng có dạng không/ có tham số như trên
Ví dụ :
tsLopTheoSiso();
tsLopTheoBan();
tsLopTheoMon() ;
tsLopTheoPhong() ;
tsLopTheoThietbi() ;
trbinhSisoLopTheoBan();
trbinhSisoLopTheoMon() ;
trbinhSisoLopTheoThietbi() ;
i. Tìm kiếm đối tượng có một thuộc tính lớp/ thuộc tính liên kết đạt trị
min/ max:
Ví dụ :
lopDongNhat(): Lop []; // ds các lớp có sĩ số đạt max
lopHocMonLauNhat(): Lop [];
// ds các lớp có số tiết học một môn đạt max
j. Tìm kiếm đối tượng có một kết quả hàm kết tập theo nhóm đạt trị
min/ max:
Ví dụ :
lopNhieuMonNhat(): Lop[]; // ds các lớp học nhiều môn nhất
lopNhieuMonThuchanhNhat(): Lop[];
// ds các lớp học nhiều môn thực hành nhất (co thuc hanh=true)
lopNhieuMonLythuyetNhat(): Lop[];
// ds các lớp học nhiều môn thực hành nhất (co thuc hanh=false)
lopNhieuMonNhat(so_tiet: integer): Lop[];
// ds các lớp học nhiều môn có số tiết bằng so_tiet nhất
lopNhieuThietbi(): Lop[]; // ds các lớp học với nhiều thiết bị nhất
III.6.2.8 Chuyển sơ đồ lớp từ mức quan niệm sang mức luận lý.
Ví dụ :
17

HOA_DON
PK_HOA_DON
SO_HD
MA_NV
NGAY_LAP_HOA_DON
SO_SERI_HD
LA_HD_BAN
TRI_GIA_HD
THU_KHO
PK_THU_KHO
MA_NV
HO_NV
TEN_NV
DC_NV
NAM_SINH
NGAY_BD
KHO
PK_KHO
MA_KHO
MA_NV
TEN_KHO
DC_KHO
SO_DT
PHIEU_N_X
PK_PHIEU_N_X
SO_PH
MA_KHO
MA_NV
NGAY
LOAI_PH
NV
PK_NV
MA_NV
HO_NV
TEN_NV
DC_NV
NAM_SINH
NGAY_BD
HANG
PK_HANG
MA_HG
TEN_HG
NV_KE_TOAN
PK_NV_KE_TOAN
MA_NV
HO_NV
TEN_NV
DC_NV
NAM_SINH
NGAY_BD
GHI_HOA_DON
PK_GHI_HOA_DON
MA_HG
SO_HD
SL
DG
GHI_PHIEU
PK_GHI_PHIEU
MA_HG
SO_PH
SL
DG
CHO
PK_CHO
SO_PH
SO_HD
III.6.2.9 Đóng gói :
Như ở sơ đồ hoạt vụ.
18

Chương IV: Sơ đồ tương tác (interaction diagram)
Chương IV: Sơ đồ tương tác (interaction diagram) ........................................................................1
IV.1 GIỚI THIỆU : .........................................................................................................................2
IV.2 LỢI ÍCH CỦA TƯƠNG TÁC (interaction):...........................................................................2
IV.2.1 Định nghĩa:.......................................................................................................................2
IV.2.1.1 Tương tác (interaction): ............................................................................................2
IV.2.1.2 Sinh tuyến (đường đời: lifeline)................................................................................2
IV.2.1.3 Sơ đồ tương tác: ........................................................................................................2
IV.2.2 Ký hiệu :...........................................................................................................................2
IV.2.2.1 Sơ đồ tương tác: ........................................................................................................2
IV.2.2.2 Sinh tuyến: ................................................................................................................3
IV.2.3 Ứng dụng của sơ đồ tương tác : .......................................................................................3
IV.3 THÔNG BÁO (message):......................................................................................................4
IV.3.1 Các dạng thông báo :........................................................................................................4
IV.3.2 Ký hiệu :...........................................................................................................................4
IV.3.2.1 Thông báo đồng bộ và thông báo không đồng bộ :...................................................4
IV.3.2.2 Tạo và hủy đối tượng :..............................................................................................4
IV.3.3 Thông báo và sự kiện :.....................................................................................................5
IV.3.4 Ngữ pháp của thông báo : ................................................................................................6
IV.3.4.1 Thông báo gửi :.........................................................................................................6
IV.3.4.3 Thông báo trả lời:......................................................................................................6
IV.3.5 Ràng buộc trên các sinh tuyến: ........................................................................................6
IV.3.6 Các kiểu phân đoạn của tương tác: ..................................................................................7
IV.3.6.1 Rẽ nhánh : .................................................................................................................7
IV.3.6.2 Vòng lặp :..................................................................................................................8
IV.3.6.3 Xử lý song song: .......................................................................................................9
IV.3.6.4 Các toán tử assert, ignore và consider :....................................................................9
IV.3.7 Phân rã một sinh tuyến:....................................................................................................9
1

IV.1 GIỚI THIỆU :
Sơ đồ hoạt vụ chỉ ra các tác nhân tương tác với các chức năng lớn của một hệ thống. Đó
là một cách nhìn thiên về chức năng và từ bên ngoài hệ thống.
Sơ đồ lớp mô tả nhân của hệ thống với các lớp và cách thức chúng kết hợp lại với nhau.
Đó là một cách nhìn tĩnh và thiên về cấu trúc.
Các sơ đồ tương tác, về phần mình, cho phép đặt cầu nối giữa hai cách tiếp cận trên.
Chúng cho thấy làm thế nào các thể hiện ở trong lòng hệ thống có thể tương tác với nhau để thực
hiện một chức năng nào đó.
Các tương tác khá nhiều và rất đa dạng, cần có một ngôn ngữ phong phú để biểu diễn
chúng. UML cung cấp nhiều sơ đồ cho mục đích này : sơ đồ tuần tự (sequence diagram), sơ đồ
cộng tác (collaboration diagram, hoặc còn gọi là sơ đồ liên lạc, sơ đồ truyền thông-
communication diagram), sơ đồ về thời gian (timing diagram). Các sơ đồ này mang lại phong
cách động cho việc mô hình hóa hệ thống.
IV.2 LỢI ÍCH CỦA TƯƠNG TÁC (interaction):
IV.2.1 Định nghĩa:
IV.2.1.1 Tương tác (interaction):
Một tương tác định nghĩa hành vi của một hệ có cấu trúc (một hệ thống con, một trường
hợp sử dụng, một lớp, một thành tố, …) bằng cách đặc biệt chú trọng đến việc trao đổi các thông
tin giữa các thể hiện (instances) của nó.
IV.2.1.2 Sinh tuyến (đường đời: lifeline)
Một sinh tuyến biểu diễn một thành phần duy nhất (có thể tương ứng với một người
ngoài thế giới thực, hoặc một đối tượng trong lớp dữ liệu) tham gia vào một tương tác.
IV.2.1.3 Sơ đồ tương tác:
Các sơ đồ tuần tự và sơ đồ liên lạc biểu diễn các tương tác giữa các sinh tuyến. Một sơ đồ
tuần tự chỉ ra các tương tác dưới góc độ thời gian, đặc biệt là các chuỗi thông báo (messages)
trao đổi nhau giữa các sinh tuyến, trong khi một sơ đồ liên lạc biểu diễn về mặt không gian của
các sinh tuyến.
Còn có dạng thứ ba của sơ đồ tương tác là sơ đồ thời gian nhằm mô hình hóa các hệ
thống được khai thác dưới những điều kiện nghiêm ngặt về TG, chẳng hạn các hệ thống thời
thực. Tuy nhiên, các sơ đồ tuần tự hoàn toàn có thể thực hiện chức năng này.
IV.2.2 Ký hiệu :
IV.2.2.1 Sơ đồ tương tác:
Biểu diễn bằng một hình chữ nhật, góc trái có tên của sơ đồ, đứng sau từ khóa :
- sd : nếu là sơ đồ tuần tự
- com : nếu là sơ đồ liên lạc/ sơ đồ cộng tác
Có thể có :
- danh sách các sinh tuyến đứng tiếp theo với từ khóa lifelines và dấu hai chấm.
- ràng buộc trên ít nhất một thuộc tính nào đó có dùng trong sơ đồ
2