Bài giảng Phát triển ứng dụng cơ sở dữ liệu 1 - Chương: Thiết kế chức năng phần mềm
THIẾT KẾ CHỨC NĂNG
PHẦN MỀM
Thiết kế sơ đồ 3 lớp
• Các kiểu kiến trúc cài đặt:
– Kiến trúc 3 layer
Tầng giao diện
Giao diện & xử lý ập dữ liệu
Dữ liệu
– Trả lời tương tác
– Xử lý nghiệp vụ – Truy xuất dữ liệu
(đọc, ghi, cập nhật)
người dùng
– Chuyển yêu cầu
– Trình bày hiển thị các từ truy xuất dữ
đối tượng nghiệp vụ liệu từ tầng
giao diện xuống
tầng truy cập
dữ liệu
– Xử lý các hiệu ứng
giao diện
ỨNG DỤNG QUẢN LÝ HỌC SINH
• Ứng dụng quản lý học sinh
HOC_SINH (MAHS, HOTEN, DIACHI, MALOP)
LOP_HOC (MALOP, TENLOP)
:
B1. Hệ thống hiện thị DS cá c lớp (lớp và thành viên lớp)
B2. Người dùng cung cấp thô ng tin học sinh cần thêm
( Mã học sinh, học tên, địa chỉ, lớp )
B3. Hệ thống kiểm tra ràng buộc nghiệp vụ về mã học
sinh (khô ng tồn tại hai học sinh có cùng mã )
B4. Hệ thống kiểm tra ràng buộc nghiệp vụ về mặt sỉ số
lớp (Sỉ số 1 lớp quá 30 học sinh)
B5. Hệ thống kiểm tra ràng buộc nghiệp vụ về mặt tên học
sinh (Tên học sinh khô ng quá 32 ký tự)
Cá c ràng buộc nghiệp vụ “thêm học sinh”
- Sỉ số 1 lớp quá 32 học sinh
- Khô ng tồn tại hai học sinh có cùng mã
- Tên học sinh khô ng quá 32 ký tự
B6. Người dùng xá c nhận thêm học sinh
B7. Hệ thống thô ng bá o “ Thêm HS thành cô ng”
Thiết kế sơ đồ 3 lớp
Sự kiện chí nh:
B1. Hệ thống hiện thị DS cá c lớp (lớp và thành viên lớp)
B2. Người dùng cung cấp thô ng tin học sinh cần thêm
( Mã học sinh, học tên, địa chỉ, lớp )
B3. Hệ thống kiểm tra ràng buộc nghiệp vụ về mã học sinh (khô ng tồn tại
hai học sinh có cùng mã )
B4. Hệ thống kiểm tra ràng buộc nghiệp vụ về mặt sỉ số lớp (Sỉ số 1 lớp
quá 30 học sinh)
B5. Hệ thống kiểm tra ràng buộc nghiệp vụ về mặt tên học sinh (Tên học
sinh khô ng quá 32 ký tự)
B6. Người dùng xá c nhận thêm học sinh
B7. Hệ thống thô ng bá o “ Thêm HS thành cô ng”
Xé t cá c phương thức liên quan đến việc
thêm học sinh
TẦNG GIAO DIỆN
Function MHThemHocSinh::btnThemHS_Click()
Begin
hs: HocSinh
hs .Khoi_tao(txtMaHS.Text, txtHoTen.Text, …)
if HocSinh::Kiem_tra_ton_tai(txtMaHS.Text) = false and Lop::Kiem_tra_si so
(ComMaLop.Text) = true then
Begin
if HocSinh::Them_hoc_sinh(hs) == TRUE then
Begin
mh: MHThongBao
mh.Cap_nhat_thong_bao (“Đã thêm thành công”)
mh.Hien_thi()
End
End
TẦNG NGHIỆP VỤ
Function HocSinh::Khoi tao(m: String, ht: String, …)
Begin
MaHS = m
HoTen = ht
…
End
Xé t cá c phương thức liên quan đến việc
thêm học sinh
TẦNG NGHIỆP VỤ
Function HocSinh::Kiem tra ton tai(mhs:
String)
Begin
b: boolean
h: HocSinh
h = HocSinhDB::DocThongTin (mhs)
if h = NULL then
Function Lop::Kiem tra si so (l: Lop)
Begin
h = LopDB::TinhSiSo (l)
if h >30 then
b = FALSE
else
b = FALSE
else
b = TRUE
return b
b = TRUE
return b
End
Function HocSinh::Them hoc sinh (h: HocSinh)
Begin
End
if len (h.getTenHS()) > 32 then
return FALSE
HocSinhDB::Them(h);
End
Xé t cá c phương thức liên quan đến việc
thêm học sinh
TẦNG TRUY CẬP DỮ LIỆU
Function HocSinhDB:: DocThongTin(mhs: String): HocSinh
Begin
s: String
h: HocSinh
Function LopDB:: TinhSiSo
(malop: Interger): Interger
Begin
…….
End
s = “SELECT * FROM HOC_SINH WHERE MaHS=‘” +
mhs + “’”
Mở kết nối CSDL, thực thi câu SQL, tạo kết quả trả về
return h;
End
Function HocSinhDB:: Them (h: HocSinh)
Begin
s: String
h: HocSinh
s = “INSERT INTO HOC_SINH … “
Mở kết nối CSDL, thực thi câu SQL, tạo kết quả trả về
return h;
End
Xé t cá c phương thức liên quan việc hiển thị
TẦNG GIAO DIỆN
màn hì nh thêm học sinh
Function MHThemHocSinh::HienThi()
Begin
dsLop: Lop[]
dsLop = Lop::LayDanhSachLop();
cbbLop.DataSource = dsLop;
dsHS: HocSinh[]
dsHS = HocSinh::LayDanhSachHocSinh()
griddsHS.DataSource = dsHS
End
TẦNG NGHIỆP VỤ
Function Lop:: LayDanhSachLop()
Begin
dsLop: Lop[]
dsLop = LopDB::LayDanhSach();
return dsLop;
End
Function HocSinh:: LayDanhSachHocSinh()
Begin
dsHS: HocSinh[]
dsHS = HocSinhDB::LayDanhSach();
return dsHS;
End
Thiết kế lớp TẦNG GIAO DIỆN
• Các bước thực hiện:
– Duyệt qua các UC, với mỗi UC phác thảo các giao diện của
UC. Với mỗi giao diện tạo một lớp tương ứng
– Các thuộc tính là những control nhập / xuất dữ liệu quan
trọng. Sử dụng các kiểu dữ liệu đối tượng giao diện cụ thể
của từng công nghệ lập trình:
• txtHoTen: TextBox
• btnThemHocSinh: Button
• cbbMaLop: ComboBox
• dsLop: GridView, …
– Các phương thức là những khởi tạo giao diện, hàm xử lý
sự kiện tương ứng hoặc những hàm cần thiết phục vụ
kiểm tra dữ liệu, …
• btnThemHocSinh_Click()
Thiết kế TẦNG NGHIỆP VỤ
Kết quả:
1. Bổ sung kiểu dữ liệu cho cá c
thuộc tí nh:
❖ Ma HS: String
2. Bổ sung thuộc tí nh cài đặt:
❖ Ma lop: Integer
❖ Siso: Integer
❖ GVCN: Giao vien
3. Duyệt qua phương thức của
lớp giao diện, xem xé t và bổ
sung cá c phương thức
nghiệp vụ cần thiết để cài đặt
cá c UC & tham số
Sơ đồ lớp tầng nghiệp vụ
Thiết kế lớp TẦNG DỮ LIỆU
• Bước 1: Tạo các lớp quản lý truy xuất dữ liệu
– Mỗi lớp phụ trách truy xuất dữ liệu trên một hay một số
nguồn dữ liệu (bảng)
• Bước 2: Bổ sung các phương thức
– Phân tích hoạt động truy xuất dữ liệu của các phương
thức của tầng nghiệp vụ để bổ sung các phương thức vào
các lớp tương ứng
Tạo các lớp quản lý truy xuất dữ liệu
• Với mỗi bảng dữ liệu(hoặc một vài bảng), tạo một
lớp truy xuất dữ liệu để quản lý việc truy xuất dữ liệu
ở các bảng này.
– Ví dụ: HocSinhDB, GiaoVienDB, LopDB
• Bổ sung các phương thức cơ bản: CRUD (Thêm, Đọc,
Cập nhật, Xóa)
Bổ sung các phương thức
• Bổ sung phương thức bằng cách Phân tích hoạt động
truy xuất dữ liệu của các phương thức của tầng
nghiệp vụ
• Ví dụ:
– Xét phương thức HocSinh::Them hoc sinh (hs: HocSinh)
• Nội dung phương thức này sẽ gọi phương thức của lớp quản lý
truy cập dữ liệu để thực hiện thêm học sinh → bổ sung phương
thức HocSinhDB::Them (hs: HocSinh)
– Xét phương thức HocSinh::Kiem tra ton tai(mahs: String)
• Nội dung phương thức này sẽ gọi phương thức của lớp quản lý
truy cập dữ liệu để đọc thông tin học sinh dựa vào mã → Bổ sung
phương thức: HocSinhDB::DocThongTin (mahs: String)
Thiết kế sơ đồ lớp chi tiết: Một số lưu ý
• 1. Có thể tạo thêm lớp ở tầng nghiệp vụ khi cần
– a. Lớp nghiệp vụ hỗ trợ xử lý tính toán và các yêu cầu đặc
biệt (giao tiếp phần cứng, thiết bị, …)
– b. Lớp nghiệp vụ hỗ trợ phối hợp các lớp nghiệp vụ
• 2. Có thể tạo thêm lớp ở tầng truy cập dữ liệu khi
cần
– Lớp phụ trách quản lý cấu hình, giao tiếp với CSDL, tập
tin,…
• 3. Có thể tách ở tầng nghiệp vụ thành lớp cấu trúc và
lớp xử lý
• 4. Có thể tách / gộp để tối ưu hoá xử lý nghiệp vụ
– Tăng tính độc lập và tính tái sử dụng
Thiết kế sơ đồ lớp chi tiết: Một số lưu ý
• 1. Có thể tạo thêm lớp ở tầng nghiệp vụ khi cần
– a. Lớp nghiệp vụ hỗ trợ xử lý tính toán và các yêu cầu đặc
biệt (giao tiếp phần cứng, thiết bị, …)
– b. Lớp nghiệp vụ hỗ trợ phối hợp các lớp nghiệp vụ
• 2. Có thể tạo thêm lớp ở tầng truy cập dữ liệu khi
cần
– Lớp phụ trách quản lý cấu hình, giao tiếp với CSDL, tập
tin,…
• 3. Có thể tách ở tầng nghiệp vụ thành lớp cấu trúc và
lớp xử lý
• 4. Có thể tách / gộp để tối ưu hoá xử lý nghiệp vụ
– Tăng tính độc lập và tính tái sử dụng
Thiết kế sơ đồ lớp chi tiết: Một số lưu ý
Có thể bổ sung lớp nghiệp vụ hỗ trợ phối
hợp các lớp nghiệp vụ
- Khi lớp giao diện
tương tác với nhiều lớp
nghiệp vụ
Thiết kế sơ đồ lớp chi tiết: Một số lưu ý
Bổ sung lớp nghiệp vụ hỗ trợ xử lý tính
toán và các yêu cầu đặc biệt (giao tiếp
phần cứng, thiết bị, …)
Thiết kế sơ đồ lớp chi tiết: Một số lưu ý
Bổ sung lớp ở tầng truy cập dữ liệu để
phụ trách quản lý cấu hình, giao tiếp với
CSDL, tập tin,…
Thiết kế sơ đồ lớp chi tiết: Một số lưu ý
Có thể tách gộp/tách nhiều lớp ở tầng
truy cập dữ liệu
DB2
DB
DB1
Thiết kế sơ đồ lớp chi tiết: Một số lưu ý
Có thể tách ở tầng nghiệp vụ thành lớp
cấu trúc và lớp xử lý
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phát triển ứng dụng cơ sở dữ liệu 1 - Chương: Thiết kế chức năng phần mềm", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_thiet_ke_chuc_nang_phan_mem.pptx

