Chủ đề 4: Thiết kế Phần mềm
COMP1026 – Introduction to Software Engneering
CH4 – Part 1 - 1
HIENLTH
Giai đoạn thiết kế
Khảo sát
Nội dung: • Thiết kế dữ liệu
• Thiết kế xử lý
Phân tích
Kết quả:
Hồ sơ thiết kế:
• Thiết kế giao diện
Thiết kế
Cài đặt
• Mơ hình PDM
• Kiến trúc Module
• Hệ thống chức năng
Kiểm tra
Triển khai
• Hệ thống giao diện
COMP1026 – Introduction to Software Engneering
Bảo trì
CH4 – Part 1 - 2
HIENLTH
Thiết kế giao diện
Thiết kế Phần mềm?
Thiết kế xử lý
COMP1026 – Introduction to Software Engneering
Thiết kế dữ liệu (lưu trữ)
CH4 – Part 1 - 3
HIENLTH
Module:
Thiết kế Dữ liệu
COMP1026 – Introduction to Software Engneering
CH4 – Part 1 - 4
HIENLTH
Nội dung
• Thiết kế dữ liệu mức vật lý (PDM)
– Qui tắc chuyển đổi mơ hình từ mức quan
niệm (CDM/ERD) sang mức vật lý (PDM)
– Bổ sung yêu cầu phi chức năng
• Sử dụng Power Designer để vẽ mơ hình
PDM, phát sinh và tạo CSDL trong SQL
Server 2008/2012
COMP1026 – Introduction to Software Engneering
CH4 – Part 1 - 5
HIENLTH
Giới thiệu
• Mục tiêu: mơ tả cách thức lưu trữ dữ
liệu của phần mềm bên trong máy tính.
• Kết quả:
– Danh sách các bảng dữ liệu (table)
– Mối quan hệ giữa các bảng
– Thông tin chi tiết của từng bảng với
danh sách các thuộc tính: khóa chính,
khóa ngoại, kiểu dữ liệu, mơ tả của từng
thuộc tính, ràng buộc (nếu có) giữa các
thuộc tính.
COMP1026 – Introduction to Software Engneering
CH4 – Part 1 - 6
HIENLTH
Physical Data Model - PDM
• Mơ hình dữ liệu ở mức vật lý (Physical
Data Model) biểu diễn cấu trúc dữ liệu sẽ
được cài đặt trong các hệ quản trị cơ sở
dữ liệu như: SQL server, Oracle, MS
Access, DB2, MySQL,…
• Mơ hình vật lý có thể được ánh xạ từ mơ
hình quan niệm dữ liệu (Conceptual Data
Model)
COMP1026 – Introduction to Software Engneering
CH4 – Part 1 - 7
HIENLTH
Ví dụ mơ hình vật lý
COMP1026 – Introduction to Software Engneering
CH4 – Part 1 - 8
HIENLTH
Các thành phần trong PDM
Cầu Thủ
• Table
vKetQua
• View
Mã Số
Họ Tên
Ngày Sinh
Địa Chỉ
Vị Trí
Số Áo
int
nvarchar(50)
datetime
nvarchar(150)
nvarchar(30)
tinyint
TEN_CLB
SO_LUONG_CT
CAU_LAC_BO
CAU_THU
• Mối quan hệ giữa các Table
Câu Lạc Bộ
Mã CLB
Mã Tỉnh
Mã Sân
Tên CLB
varchar(7)
varchar(4)
int
<fk>
nvarchar(50)
Sân Bóng
FK_CAULACBO_SANBONG
COMP1026 – Introduction to Software Engneering
Mã Sân int
Tên Sân nvarchar(50)
Địa Chỉ nvarchar(150)
CH4 – Part 1 - 9
HIENLTH
Các thành phần trong PDM
• Table:
SINHVIEN (MASV, TENSV, NAM, MAKHOA)
MASV
TENSV
NAM
MAKHOA
K29.102.001 Trần Văn Thành
3
VLY
K30.103.022 Lý Chánh
3
HOA
K31.102.101 Hán Quốc Việt
2
VLY
K31.103.017 Phan Sào Nam
2
TOAN
K32.101.001 Nguyễn Công Khế
1
TOAN
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 10
HIENLTH
Các thành phần trong PDM
• Mỗi Table có 3 thành phần:
– Tên Table (Name)
– Mã (Code)
– Thuộc tính (Attribute/Field)
• Khóa chính (tăng tự động?)
• Khóa ngoại
• Bắt buộc (NOT NULL)
Cầu Thủ
Mã Số
Họ Tên
Ngày Sinh
Địa Chỉ
Vị Trí
Số Áo
int
nvarchar(50)
datetime
nvarchar(150)
nvarchar(30)
tinyint
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 11
HIENLTH
Các thành phần trong PDM
• Thuộc tính của Table:
– Kiểu dữ liệu
• Lưu ý: char, varchar, nchar, nvarchar, datetime
– Kích thước/Độ dài
• Lưu ý: phần thập phân
Cầu Thủ
Mã Số
Họ Tên
Ngày Sinh
Địa Chỉ
Vị Trí
Số Áo
Cân nặng
int
nvarchar(50)
datetime
nvarchar(150)
nvarchar(30)
tinyint
double precision
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 12
HIENLTH
Xây dựng mơ hình PDM
• Convert từ mơ hình CDM
– Từ tập thực thể
– Từ mối kết hợp
• Bổ sung từ yêu cầu phi chức năng
– Mở rộng
– Tốc độ
– Tương thích
– Bảo mật
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 13
HIENLTH
Convert CDM sang PDM
• Ánh xạ các thành phần từ CDM sang PDM
(Physical Data Model)
– Tập thực thể
– Quan hệ 1-1
– Quan hệ 1-n
– Quan hệ m-n
– Quan hệ kế thừa
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 14
HIENLTH
Convert CDM sang PDM
• Ánh xạ tập thực thể
– Mỗi thực thể trong CDM sẽ được chuyển
thành 1 table trong PDM
– Tất cả các thuộc tính của thực thể 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 thực thể sẽ
được chuyển thành primary key (khóa chính)
của table tương ứng
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 15
HIENLTH
Convert CDM sang PDM
• Ánh xạ thực thể:
Cầu Thủ
Mã Số
<M>
Họ Tên
<M>
Ngày Sinh
Địa Chỉ
Vị Trí
Số Áo
Cân nặng
Huấn Luyện Viên
Mã HLV
<M>
Họ Tên
<M>
Ngày Sinh
Địa Chỉ
Điện Thoại
Cầu Thủ
Mã Số
Họ Tên
Ngày Sinh
Địa Chỉ
Vị Trí
Số Áo
Cân nặng
int
varchar(50)
datetime
varchar(150)
varchar(30)
tinyint
double precision
Huấn Luyện Viên
Mã HLV
Họ Tên
Ngày Sinh
Địa Chỉ
Điện Thoại
int
varchar(50)
datetime
varchar(150)
varchar(15)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 16
HIENLTH
Quy tắc chuyển
• Quan hệ 1-1
A
1
1
A
A
AB
MA
…
B
B
…
MB
…
B
MA
…
A
…
MA
…
MA
…
B
A
B
A
MA
MB
…
MB
MB
…Software Engneering
… CH4 – Part 1 - 17
COMP1026 – Introduction to
MB
…
B
MB
MA
…
HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ 1 - 1
Nhân Viên
Mã NV
<M>
Họ
<M>
Tên
Ngày Sinh
Địa Chỉ
Điện thoại
Nhân Viên
Mã NV
Họ
Tên
Ngày Sinh
Địa Chỉ
Điện thoại
varchar(5)
varchar(40)
varchar(20)
datetime
varchar(50)
varchar(15)
Lý lịch nhân viên
1,1
1,1
Họ tên Cha
Họ tên Mẹ
Quê Quán
Nghề Nghiệp
Hệ Số Lương
Trình độ Học vấn
Trình độ Ngoại ngữ
Dân tộc
Tơn Giáo
Lý
Lý lịch
lịch nhân
nhân viên
viên
Mã
NV
varchar(5)
Mã
NV
varchar(5)
<fk>
Họ
tên
Cha
varchar(50)
Họ
tên
Cha
varchar(50)
Họ
tên
Mẹ
varchar(50)
Họ
tên
Mẹ
varchar(50)
Q
Qn
varchar(50)
Q
Qn
varchar(50)
Nghề
Nghiệp
varchar(50)
Nghề
Nghiệp
varchar(50)
Hệ
Số
Lương
varchar(50)
Hệ
Số
Lương
varchar(50)
Trình
độđộ
Học
vấn
Trình
Học
vấn varchar(50)
varchar(50)
Trình
độđộ
Ngoại
Trình
Ngoạingữ
ngữ varchar(50)
varchar(50)
Dân
tộc
varchar(50)
Dân
tộc
varchar(50)
Tơn
Giáo
varchar(50)
Tơn
Giáo
varchar(50)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 18
HIENLTH
Quy tắc chuyển
• Quan hệ 1-n
A
1
*
B
A
MA
…
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 19
B
…
MA
…
HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ 1 - n
Hoa Don
Khach Hang
So HD
<M>
Ngay HD
<M>
Thanh Tien
VAT
Tong Cong
0,n
0,1
Ma KH
<M>
Ten KH
<M>
Địa Chỉ
Dien Thoai
Hoa Don
So HD
Ma KH
Ngay HD
Thanh Tien
VAT
Tong Cong
varchar(10)
varchar(7) <fk>
datetime
money
tinyint
decimal
Khach Hang
0..*
Ma KH = Ma KH
Ma KH
Ten KH
Địa Chỉ
Dien Thoai
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 20
varchar(7)
varchar(50)
varchar(50)
varchar(50)
HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ 1 - n
1,1
KHOA
MaKhoa
<M>
TenKhoa
<M>
NamThanhLap
BoMon
0,n
MaBM
<M>
TenBM
<M>
SoLuongGV
1,1
0,n
1,1
0,n
BoMon
KHOA
GiangVien
MaGV
<M>
Ho
Ten
NgaySinh
HocHam
HocVi
MaKhoa
varchar(6)
TenKhoa
varchar(50)
NamThanhLap datetime
MaKhoa = MaKhoa
MaKhoa = MaKhoa
MaBM
MaKhoa
TenBM
SoLuongGV
varchar(6)
varchar(6) <fk>
varchar(50)
tinyint
MaBM = MaBM
GiangVien
MaGV
MaBM
MaKhoa
Ho
Ten
NgaySinh
HocHam
HocVi
varchar(15)
varchar(6) <fk2>
varchar(6) <fk1>
varchar(50)
varchar(20)
datetime
varchar(50)
varchar(50)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 21
HIENLTH
Quy tắc chuyển
• Quan hệ m-n
A
*
C *
B
A
C
MA
…
MA
MB
…
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 22
B
MB
…
HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ m – n
Hoa Don
Hang Hoa
0,n
0,n
SoHD
<M>
NgayHD
ThanhTien
<M>
VAT
TongCong
Hoa Don
SoHD
<M>
NgayHD
ThanhTien
<M>
VAT
TongCong
Chi tiet hoa don
1,n
SoLuong
Number
1,n
DonGia
Decimal (18,2)
ThanhTien Money (18,2)
...
MaHang
<M>
TenHang
QuiCach
DonViTinh
GiaMua
GiaBan
Hang Hoa
MaHang
<M>
TenHang
QuiCach
DonViTinh
GiaMua
GiaBan
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 23
HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ m – n
SinhVien
0,n
MonHoc
MaSV
<M>
TenSV
<M>
NgaySinh
<M>
NoiSinh
SinhVien
MaSV
<M>
TenSV
<M>
NgaySinh
<M>
NoiSinh
0,n
MaMH <M>
TenMH
<M>
SoTC
<M>
MonHoc
0,n
KetQua
HocKy
NienKhoa
Lan
Diem
...
<M>
<M>
<M>
<M>
0,n
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 24
MaMH <M>
TenMH
<M>
SoTC
<M>
HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ m – n
SinhVien
MonHoc
0,n
MaSV
<M>
TenSV
<M>
NgaySinh
<M>
NoiSinh
KetQua
HocKy
NienKhoa
Lan
Diem
...
<M>
<M>
<M>
<M>
0,n
MaMH <M>
TenMH
<M>
SoTC
<M>
SinhVien
MaSV
TenSV
NgaySinh
NoiSinh
varchar(13)
varchar(50)
datetime
varchar(50)
MonHoc
MaMH varchar(6)
TenMH varchar(50)
SoTC
tinyint
MaSV = MaSV
MaMH = MaMH
KetQua
MaSV
MaMH
HocKy
NienKhoa
Lan
Diem
varchar(13)
varchar(6)
tinyint
tinyint
tinyint
tinyint
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 25
HIENLTH