• Biết được cách thiết kế class diagram• Biết được các thành phần trong Class diagram • Biết được cách sử dụng Power Designer để tạo Class Diagram • Biết được cách sử dụng Power Design
Trang 1Đại Học Sư Phạm Tp Hồ Chí Minh
ầu người dùng
Trang 2• Biết được cách thiết kế class diagram
• Biết được các thành phần trong Class
diagram
• Biết được cách sử dụng Power Designer
để tạo Class Diagram
• Biết được cách sử dụng Power Designer
để convert Class Diagram sang PDM
Trang 3• Các thành phần trong Class diagram
• Quy tắc chuyển đổi từ class diagram sang
Physical Data Model
• Xây dựng class diagram của ứng dụng quản lý
thời khóa biểu
• Tạo Class diagram trong Power Designer
Trang 4• Các thành phần trong Class diagram
• Quy tắc chuyển đổi từ class diagram sang
Physical Data Model
• Xây dựng class diagram của ứng dụng quản lý thời khóa biểu
• Tạo Class diagram trong Power Designer
• Convert Class diagram sang PDM trong Power Designer
Trang 5• Mô tả cấu trúc tĩnh của các Class và
mối quan hệ giữa các lớp trong hệ thống
• Một class là một tập hợp các đối
tượng có cùng cấu trúc, cùng hành vi…
• Có thể xác định các class dựa vào
Trang 6• Hệ thống cho phép sinh viên tra
cứu thời khóa biểu theo từng học
kỳ của lớp
• Hệ thống cho phép giảng viên tra
cứu thời khóa biểu giảng dạy trong học kỳ
Trang 7Ví dụ: Xét ứng dụng quản lý TKB
Thời khóa biểu lớp: Toán 4C
Trang 8Ví dụ: Xét ứng dụng quản lý TKB
Thời khóa biểu giảng viên:
Trang 9Ví dụ: Xét ứng dụng quản lý TKB
• Hệ thống quản lý thời khóa biểu bao
gồm các thông tin sau:
Trang 10Ví dụ: Xét ứng dụng quản lý TKB
• Hệ thống quản lý thời khóa biểu bao
gồm các thông tin sau:
Trang 11Ví dụ minh họa
• Class diagram mô tả hệ thống quản lý
thời khóa biểu
0 1
0 *
0 1 0 *
0 1
0 *
0 1 0 * 0 1
0 *
0 1 0 *
0 1 0 *
0 1 0 *
1 1 0 *
1 1
CBoMon +
+ +
BMID MaBM TenBM
: long : string : string
CGiangVien +
+ + + + + + + + +
GVID MaGV HocVi ChucDanh TenVT Ho Ten DiaChi DienThoai Email
: long : string : string : string : string : string : string : string : string : string
CKhoa +
+ +
KhoaID MaKhoa TenKhoa
: int : string : string
CLOP +
+ + + +
LOPID MALOP TENLOP NAMTS TenVT
: long : string : string : short : string
CLOPNK +
+ +
LOPNKID NAM NAMHOC
: long : short : short
CNganh +
+ + +
NganhID MaNganh TenNganh TenVT
: long : string : string : string
CTKB +
+ + + + +
TKBID TKB HOCKY NAMHOC NGAYBD NGAYKT
: long : string : short : short : DateTime : DateTime
CTKBLOP + TKBLOPID : long
Trang 12• Các thành phần trong Class diagram
• Quy tắc chuyển đổi từ class diagram sang
Physical Data Model
• Xây dựng class diagram của ứng dụng quản lý thời khóa biểu
• Tạo Class diagram trong Power Designer
• Convert Class diagram sang PDM trong Power Designer
Trang 13MonIDMaMonTenMonTinChiSoTietLTSoTietBTTenVT
: long: string: string: short: short: short: string+
+++
Them ()Xoa ()Sua ()LayDL ()
: void: void: void: void
CGiangVien+
++++
GVIDMaGVHocViChucDanhTenVT
: long: string: string: string: string
CKhoa
Trang 14++++++
MonIDMaMonTenMonTinChiSoTietLTSoTietBTTenVT
: long: string: string: short: short: short: string+
+++
Them ()Xoa ()Sua ()LayDL ()
: void: void: void: void
Tên lớp (Class Name) Thuộc tính (Attribute) Hành động (Operation)
Trang 15– Là các đặc trưng mô tả về đối tượng
• Đối tượng và lớp đối tượng
– Đối tượng là một thể hiện của lớp đối
tượng
– Thuộc tính của đối tượng có giá trị cụ
thể
Co so du lieu:CMONHOCMonID
MaMonTenMon
= 01 = TH01 = Co so du lieu
Cau truc du lieu:CMONHOCMonID
MaMonTenMon
= 02 = TH02 = Cau truc du lieu
CMONHOC+
++
MonIDMaMonTenMon
: long: string: string
Trang 16• Phân loại thuộc tính
– Thuộc tính khóa (Primary Identifier) – Thuộc tính có giá trị rời rạc
– Thuộc tính đa trị – Thuộc tính là đối tượng phụ (+) – Thuộc tính tính toán (*)
CMONHOC+
++++++
MonIDMaMonTenMonTinChiSoTietLTSoTietBTTenVT
: long: string: string: short: short: short: string+
+++
Them ()Xoa ()Sua ()LayDL ()
: void: void: void: void
Trang 17– Giá trị của thuộc tính khóa hai đối
tượng thuộc cùng một lớp không được phép trùng nhau
Co so du lieu:CMONHOCMonID
MaMonTenMonTinChiSoTietLTSoTietBTTenVT
= 01 = T H01 = Co so du lieu = 4
= 45 = 30 = CSDL
Cau truc du lieu:CMONHOCMonID
MaMon
T enMon
T inChiSoTietLTSoTietBT
T enVT
= 02 = T H02 = Cau truc du lieu = 4
= 45 = 30 = CTDL
CMONHOC+
++++++
MonIDMaMonTenMonTinChiSoTietLTSoTietBTTenVT
: long: string: string: short: short: short: string
Cau truc du lieu:CMONHOCMonID
MaMon
T enMon
T inChiSoTietLTSoTietBT
T enVT
= 01 = T H02 = Cau truc du lieu = 4
= 45 = 30 = CTDL
Trang 18Các thành phần trong Class diagram
• Thuộc tính có giá trị rời rạc
– Thuộc tính phái của Sinh viên chỉ có 2 giá trị: Nam hoặc Nữ
– Thuộc tính phái của Sinh viên chỉ có 2 giá trị: 0 hoặc 1 ( 0 : Nam , 1 : Nữ )
– Thuộc tính điểm học phần chỉ có các giá trị 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
– Thuộc tính loại nhân viên chỉ có các
giá trị: Nhân viên văn phòng, nhân viên bán hàng, nhân viên sản xuất….
– ….
Trang 20Các thành phần trong Class diagram
• Thuộc tính là đối tượng phụ
– Thuộc tính địa chỉ của sinh viên, nhân
viên là một đối tượng phụ, bao gồm các thông tin:
– Thuộc tính ngày sinh của sinh viên,
nhân viên cũng là một đối tượng phụ gồm các thông tin: ngày, tháng, năm
Trang 22Các thành phần trong Class diagram
• Phân loại thuộc tính
– Thuộc tính khóa (Primary Identifier) – Thuộc tính có giá trị rời rạc
– Thuộc tính đa trị – Thuộc tính là đối tượng phụ (+) – Thuộc tính tính toán (*)
Trang 23Các thành phần trong Class diagram
• Phân loại thuộc tính
– Thuộc tính private – Thuộc tính protected – Thuộc tính public
Trang 24++++++
MonIDMaMonTenMonTinChiSoTietLTSoTietBTTenVT
: long: string: string: short: short: short: string+
+++
Them ()Xoa ()Sua ()LayDL ()
: void: void: void: void
Hành động (Operation)
Trang 25– Nhóm hàm xử lý tính toán – Nhóm hàm kiểm tra tính hợp lệ của
đối tượng
Trang 26Quan h ệ giữa các l ớp đối tượng
• Phân loại quan hệ
0 10 *
CGiangVien+
+++++++++
GVIDMaGVHocViChucDanhTenVTHoTenDiaChiDienThoaiEmail
: long: string: string: string: string: string: string: string: string: string
CKhoa+
++
KhoaIDMaKhoaTenKhoa
: int: string: string
Trang 27Quan h ệ giữa các l ớp đối tượng
• Phân loại quan hệ dựa trên bản số
– Quan hệ “1-1”
– Quan hệ “1-nhiều”
– Quan hệ “nhiều-nhiều”
0 10 *
CGiangVien+
+++++++++
GVIDMaGVHocViChucDanhTenVTHoTenDiaChiDienThoaiEmail
: long: string: string: string: string: string: string: string: string: string
CKhoa+
++
KhoaIDMaKhoaTenKhoa
: int: string: string
Trang 28Thuoc
CGiangVien +
+ + + + + + + + +
GVID MaGV HocVi ChucDanh TenVT Ho Ten DiaChi DienThoai Email
: long : string : string : string : string : string : string : string : string : string
CKhoa +
+ +
KhoaID MaKhoa TenKhoa
: int : string : string
Trang 29-MaNVHoNV
T enNVDiachiDienThoaiEmailHoTenKhaiSinhHoTenKhacGioiT inhNguyenQuanDanT oc
T onGiaoVanHoaNgoaiNgu
T inHocNhomMauHocViHocHam
: string: string: string: string: string: string: string: string: bool: string: string: string: string: string: string: string: string: string
1 1 1 1CNhanVien
-
-MaNVHoNV
T enNVDiachiDienThoaiEmail
: string: string: string: string: string: string
CLyLichNhanVien-
-
-MaNVHoTenKhaiSinhHoTenKhacGioiT inhNguyenQuanDanToc
T onGiaoVanHoaNgoaiNgu
T inHocNhomMauHocViHocHam
: string: string: string: bool: string: string: string: string: string: string: string: string: string
Trang 30Thuoc
CGiangVien +
+ + + + + + + + +
GVID MaGV HocVi ChucDanh TenVT Ho Ten DiaChi DienThoai Email
: long : string : string : string : string : string : string : string : string : string
CKhoa +
+ +
KhoaID MaKhoa TenKhoa
: int : string : string
0 1 0 *
CNganh +
+ + +
NganhID MaNganh
T enNganh
T enVT
: long : string : string : string
CKhoa +
+ +
KhoaID MaKhoa
T enKhoa
: int : string : string
Trang 31- -
-MaHD NgayHD ThanhTien VAT
: string : CDate : double : double
CHangHoa -
- - -
-MaMH TenMH DVT DonGia QuyCach
: string : string : string : double : string
0 *
0 *
CSinhVien -
- - -
-MaSV TenSV NgaySinh DiaChi Email
: string : string : CDate : string : string
CMonHoc -
- - -
-MaMH TenMH SoTC SoTietLT SoTietT H
: string : string : int : int : int
Trang 32- - -
-MaSV TenSV NgaySinh DiaChi Email
: string : string : CDate : string : string
CMonHoc -
- - -
-MaMH TenMH SoTC SoTietLT SoTietT H
: string : string : int : int : int
0 *
0 *
CSinhVien -
- - -
-MaSV TenSV NgaySinh DiaChi Email
: string : string : CDate : string : string
CMonHoc -
- - -
-MaMH TenMH SoTC SoTietLT SoTietTH
: string : string : int : int : int
CKetQua -
- -
-HocKy NienKhoa Lan Diem
: int : string : int : double
Trang 33- - -
-MaSV TenSV NgaySinh DiaChi Email
: string : string : CDate : string : string
CMonHoc -
- - -
-MaMH TenMH SoTC SoTietLT SoTietT H
: string : string : int : int : int
1 1
0 *
CSinhVien -
- -
-MaSV TenSV NgaySinh DiaChi
: string : string : CDate : string
CMonHoc -
- -
-MaMH
T enMH SoTC SoTietLT
: string : string : int : int
CKetQua -
- -
-HocKy NienKhoa Lan Diem
: int : string : int : double
Trang 34- -
-MaHD NgayHD ThanhTien VAT
: string : CDate : double : double
CHangHoa -
- - -
-MaMH TenMH DVT DonGia QuyCach
: string : string : string : double : string
0 *
0 *
CHoaDon -
- -
-MaHD NgayHD ThanhTien VAT
: string : CDate : double : double
CHangHoa -
- - -
-MaMH TenMH DVT DonGia QuyCach
: string : string : string : double : string
CCTHD -
-SoLuong DonGia
: int : double
Trang 35- -
-MaHD NgayHD ThanhTien VAT
: string : CDate : double : double
CHangHoa -
- - -
-MaMH TenMH DVT DonGia QuyCach
: string : string : string : double : string
CHoaDon -
-
-MaHD NgayHD ThanhTien
: string : CDate : double
CHangHoa -
-MaMH TenMH
: string : string
CCTHD -
-
-SoLuong DonGia ThanhTien
: int : double : double
Trang 360 *
Duoc quan ly boi
CNhanVien : 1 -
- - -
-MaNV HoNV TenNV Diachi DienT hoai
: string : string : string : string : string
CNhanVien : 2 -
- -
-MaNV HoNV TenNV Diachi
: string : string : string : string
0 1Quan ly
0 *
Duoc quan ly boiCNhanVien
-
-MaNVHoNVTenNVDiachiDienThoaiEmail
: string: string: string: string: string: string
0 1
0 *
CNhanVien-
-MaNVHoNV
T enNVDiachiDienT hoaiEmail
: string: string: string: string: string: string
Trang 37Duoc quan ly boi
CNhanVien : 1 -
- - - -
-MaNV HoNV TenNV Diachi DienT hoai Email
: string : string : string : string : string : string
CNhanVien : 2 -
- - - -
-MaNV HoNV TenNV Diachi DienThoai Email
: string : string : string : string : string : string
Nguyen Van A:CNhanVienMaNV
HoNVTenNV
= NV001 = Nguyen Van = A
Nguyen Van B:CNhanVienMaNV
HoNVTenNV
= NV003 = Nguyen Van = B
Nguyen Van C:CNhanVienMaNV
HoNVTenNV
= NV002 = Nguyen Van = C
Trang 38- - - -
-MaNV HoNV TenNV Diachi DienThoai Email
: string : string : string : string : string
- - - -
-MaNV STT NgayKy NgayHL MucLuong
: string : int : CDate : CDate : double
CQuaTrinhCongTac -
- - -
-MaNV STT NgayKy NgayHL ChucVu
: string : int : CDate : CDate : string
Trang 39– Nếu đối tượng chính bị hủy thì các đối
tượng bộ phận sẽ bị hủy theo
CNhanVien -
- - - -
-MaNV HoNV
T enNV Diachi DienThoai Email
: string : string : string : string : string : string
CThanNhan -
-
-MaT N
T enTN DiaChi
: string : string : string
Trang 40Quan h ệ giữa các l ớp đối tượng
• Quan hệ kế thừa - Generalization
– Biểu diễn mối liên hệ “Cha/con” giữa
các lớp đối tượng
CAnimal
Trang 41– Lớp cha được gọi là lớp cơ sở (Base
class), lớp con gọi là lớp dẫn xuất (Devired class)
CNhanVien-
-MaNVHoT enDiaChiDienT hoai
: string: string: string: string
Trang 42- -
-MaSV HoTen NgaySinh DiaChi
: int : int : int : int
CSinhVienChinhQuy -
-
-DiemM1 DiemM2 DiemM3
: float : float : float
CSinhVienChuyenTu -
-ChuyenNganh VanBang
: char[50]
: char[50]
Trang 43– Đa kế thừa CTuGiac
CHinhChuNhat CHinhThoi
Trang 44• Các thành phần trong Class diagram
• Quy tắc chuyển đổi từ class diagram sang
Physical Data Model
• Xây dựng class diagram của ứng dụng quản lý thời khóa biểu
• Tạo Class diagram trong Power Designer
• Convert Class diagram sang PDM trong Power Designer
Trang 46– Tất cả các thuộc tính của class sẽ
được chuyển thành các thuộc tính (hoặc Fields) của table tương ứng
– Thuộc tính Primary Identifier của class sẽ được chuyển thành primary key (khóa chính) của table tương ứng
– Không chuyển các hành động (xử
lý/hàm) của class qua PDM
Trang 47TenSV NgaySinh DiaChi Email
varchar(10) varchar(50) datetime varchar(100) varchar(30)
<pk>
CMonHoc
CSinhVien -
- - -
-MaSV TenSV NgaySinh DiaChi Email
: string : string : CDate : string : string +
+ +
Them () Xoa () Sua ()
: int : int : int
Trang 48-MaNVHoTenKhaiSinhHoTenKhacGioiT inhNguyenQuanDanToc
T onGiaoVanHoaNgoaiNgu
T inHocNhomMau
: string: string: string: bool: string: string: string: string: string: string: string
CNhanVien-
-MaNVHoNV
T enNVDiachiDienThoaiEmail
: string: string: string: string: string: string
MaNV = MaNV
CLyLichNhanVienMaNV
HoTenKhaiSinhHoTenKhacGioiTinhNguyenQuanDanTocTonGiaoVanHoaNgoaiNguTinHoc
stringstringstringbitstringstringstringstringstringstring
<pk,fk>
CNhanVienMaNV
HoNVTenNVDiachiDienT hoaiEmail
stringstringstringstringstringstring
<pk>
Trang 49+ +
KhoaID MaKhoa TenKhoa
: int : string : string
KhoaID = KhoaID
CNganh
CKhoa KhoaID
MaKhoa TenKhoa
int varchar(20) varchar(150)
<pk>
Trang 50GVIDMaGVHocViChucDanhTenVTHoTenDiaChi
: long: string: string: string: string: string: string: string
CKhoa+
+
+
KhoaIDMaKhoaTenKhoa
: int: string: string
CBoMon+
++
BMIDMaBMTenBM
: long: string: string
KhoaID = KhoaID BMID = BMID
KhoaID = KhoaID
CGiangVienGVID
KhoaIDBMIDMaGVHocViChucDanh
T enVTHo
T enDiaChi
intintintvarchar(20)varchar(150)varchar(150)varchar(150)varchar(150)varchar(150)varchar(250)
<pk>
<fk1>
<fk2>
CKhoaKhoaID
MaKhoaTenKhoa
intvarchar(20)varchar(150)
<pk>
CBoMonBMID
KhoaIDMaBMTenBM
intintvarchar(20)varchar(150)
<pk>
<fk>
Trang 51- -
-MaHD NgayHD ThanhTien VAT
: string : CDate : double : double
CHangHoa -
- - -
-MaMH TenMH DVT DonGia QuyCach
: string : string : string : double : string
0 *
0 *
CSinhVien -
- - -
-MaSV TenSV NgaySinh DiaChi Email
: string : string : CDate : string : string
CMonHoc -
- - -
-MaMH TenMH SoTC SoTietLT SoTietT H
: string : string : int : int : int
Trang 52- -
-MaHD NgayHD ThanhTien VAT
: string : CDate : double : double
CHangHoa -
- - -
-MaMH TenMH DVT DonGia QuyCach
: string : string : string : double : string
CCTHD -
-
-SoLuong DonGia ThanhTien
: int : double : double
CHoaDon -
-
-MaHD NgayHD ThanhTien
: string : CDate : double
CHangHoa -
-
-MaMH TenMH DVT
: string : string : string
CCTHD -
-
-SoLuong DonGia ThanhTien
: int : double : double
Trang 53- - -
-MaSV TenSV NgaySinh DiaChi Email
: string : string : CDate : string : string
CMonHoc -
- - -
-MaMH TenMH SoTC SoTietLT SoTietTH
: string : string : int : int : int
CKetQua -
- -
-HocKy NienKhoa Lan Diem
: int : string : int : double
Trang 54varchar(10)varchar(50)datetimevarchar(100)
<pk>
CMonHocMaMH
TenMHSoTCSoTietLT
varchar(10)varchar(50)int
int
<pk>
CKetQuaMaSV
MaMHHocKyNienKhoa
varchar(10)varchar(10)int
- - -
-MaSV TenSV NgaySinh DiaChi Email
: string : string : CDate : string : string
CMonHoc -
- - -
-MaMH TenMH SoTC SoTietLT SoTietTH
: string : string : int : int : int
CKetQua -
- -
-HocKy NienKhoa Lan Diem
: int : string : int : double
Trang 55- -
-MaHD NgayHD ThanhTien VAT
: string : CDate : double : double
CHangHoa -
- - -
-MaMH TenMH DVT DonGia QuyCach
: string : string : string : double : string
CCTHD -
-
-SoLuong DonGia ThanhTien
: int : double : double
CCTHD
Trang 56-MaNVHoT enDiaChiDienThoai
: string: string: string: string
CNhanVienQL-
-HSLuongPhuCap
: float: float
HoTenDiaChiDienThoai
stringstringstringstring
<pk>
CNhanVienQL CNhanVienVP CNhanVienSX CNhanVienBH