Đặc tả use case “Đăng nhập”
− Tên use case: Đăng nhập
− Mô tả sơ lược: chức năng Đăng nhập giúp sinh viên có thể đăng nhập vào học phần trực tuyến.
− Tiền điều kiện (Pre-condition): Không
− Hậu điều kiện (Post-condition): Sinh viên đăng nhập thành công hoặc tài khoản mới được tạo
− Luồng sự kiện chính (main flow):
1.Sinh viên click vào nút đăng nhập 2 Hệ thống hiển thị form đăng nhập
3.Sinh viên nhập thông tin cần thiết 4.Hệ thống kiểm tra thông tin đăng nhập
5 Hệ thống hiển thị thông báo đăng nhập thành công
6 Sinh viên xác nhận và được chuyển đến trang chính đã đăng nhập 7 Hệ thống lưu thông tin đăng nhập
− Luồng sự kiện thay thế (alternate flow):
4.1.a : Sinh viên chọn kết thúc
4.1.b : Sinh viên chọn tiếp tục
4.1 : Hệ thống hiển thị thông báo thông tin đăng nhập không hợp lệ
4.1.b1 : Hệ thống chuyển sang lại bước 3
− Luồng sự kiện ngoại lệ (exception flow):
A.1 ) Sơ đồ activity biểu diễn đặc tả use case “Đăng ký”
Hình 3 : Sơ đồ activity biểu diễn đặc tả use case “Đăng ký”
Đặc tả use case “Tạo tài khoản”
− Tên use case: Tạo tài khoản
− Mô tả sơ lược: chức năng Tạo tài khoản cho phép sinh viên , trong trường hợp này có thể đăng ký và tạo một tài khoản mới để truy cập học phần trực tuyến
− Tiền điều kiện (Pre-condition): Không
− Hậu điều kiện (Post-condition): Tài khoản mới được tạo thành công và sinh viên có thể sử dụng thông tin đăng nhập để truy cập học phần trực tuyến
− Luồng sự kiện chính (main flow):
1.Sinh viên click vào nút “Tạo tài khoản/ Đăng ký”
2 Hệ thống hiển thị form đăng ký
3.Sinh viên nhập thông tin cần thiết cho việc tạo tài khoản ( tên , email , mật khẩu ,
4.Hệ thống kiểm tra thông tin (Rẽ nhánh)
5 Hệ thống hiển thị thông báo tạo tài khoản thành công
6 Sinh viên xác nhận và được chuyển đến trang chính đã đăng ký thành công để đăng nhập
7 Hệ thống lưu thông tin đăng ký mới vào hệ thống
− Luồng sự kiện thay thế (alternate flow):
4.1.a : Sinh viên chọn kết thúc
4.1.b : Sinh viên chọn tiếp tục
4.1 : Hệ thống hiển thị thông báo thông tin đăng ký không hợp lệ4.1.b1 : Hệ thống chuyển sang lại bước 3
B.1 )Sơ đồ activity biểu diễn đặc tả use case “Tạo tài khoản”
Hình 4 : Sơ đồ activity biểu diễn đặc tả use case “Tạo tài khoản”
Đặc tả use case “Xem điểm”
Sơ đồ Domain
Hình 10 : Sơ đồ Domain đặt tour du lịch trực tuyến
Case study 3: Xây dựng hệ thống quản lý thư viện của một trường đại học”.
1.Xác định các lớp khái niệm , tìm ra các thuộc tính cho mỗi lớp
Lớp khái niệm Thuộc tính
Sách điện tử − Link đọc
Sách in − Nhà xuất bản
Phiếu mượn − Mã phiếu mượn
− Tên sách Độc giả − Mã độc giả
− Tên độc giả Thủ thư
Chi tiết phiếu mượn − Ngày mượn
2.Xác định mối quan hệ giữa các lớp , ứng với mỗi quan hệ , xác định số lượng
Quan hệ Loại quan hệ Giải thích
Loại sách – Sách Aggregation Mỗi loại sách có thể có nhiều sách , sách thuộc về một loại sách cụ thể
Sách – Sách điện tử Generalization Sách điện tử là mối quan hệ kế thừa của Sách
Sách – Sách in Generalization Sách in là mối quan hệ kế thừa của Sách
Sách In – Phiếu mượn Association Mỗi phiếu mượn liên kết với một hoặc nhiều sách , mỗi sách có thể xuất hiện trong nhiều phiếu mượn khác nhau
Phiếu mượn Association Mỗi phiếu mượn có thể có nhiều chi tiết phiếu mượn , chi tiết phiếu mượn liên quan đến phiếu mượn cụ thể
Phiếu mượn – Thủ thư Association Mỗi phiếu mượn quản lý đến thủ thư cụ thể , thủ thư có thể quản lý nhiều phiếu mượn
Phiếu mượn – Độc giả Association Mỗi phiếu mượn liên kết với độc giả cụ thể , độc giả có thể có nhiều phiếu mượn
Chi tiết phiếu mượn – Sách
In Association Mỗi chi tiết phiếu mượn liên quan đến Sách cụ thể , Sách có thể xuất hiện nhiều trong Chi tiết phiếu mượn khác
Sách điện tử - Độc giả Association nhauĐộc giả đọc một hoặc nhiều sách điện tử , sách điện tử có thể được đọc bởi nhiều hoặc không đọc giả Độc giả - Giảng viên Generalization Giảng viên là kế thừa của Độc giả Độc giả - Sinh viên Generalization Sinh viên là kế thừa của Độc Độc giả - Người dùng Generalization giảĐộc giả là kế thừa của Người
Thủ thư – Người dùng Generalization dùngThủ thư là kế thừa của Người dùng
Thiết kế hệ thống - Sử dụng sơ đồ Sequence – Hiệu chỉnh sơ đồ Domain thành sơ đồ Class M
Hình 11 : Sơ đồ domain hệ thống quản lý thư viện của một trường đại học
Thiết kế hệ thống - Sử dụng sơ đồ Sequence – Hiệu chỉnh sơ đồ
Dựa vào case study 2, sinh viên phân tích chức năng “Đặt tour du lịch”
a Phân tích Use case “ Đặt tour trực tuyến”
* Luồng sự kiện cơ bản
Use case này bắt đầu khi khách hang đã đăng nhập vào hệ thống thành công Khách hang chọn mục tìm kiếm và tìm kiếm bằng các từ khóa, địa điểm, thời gian, Hệ thống sẽ hiển thị danh sách các tour du lịch phù hợp khách hàng sẽ xem thông tin tour và nhấn chọn tour, hệ thống sẽ hiển thị các thông tin chi tiết của tour được chọn Khách hàng nhấn chọn đặt tour, hệ thống sẽ hiển thị form đăng ký thông tin, khách hàng nhập thông tin và nhấn chọn hình thức thanh toán Hệ thống sẽ gửi thông tin thanh toán đến hệ thống thanh toán để xử lí.
*Luồng sự kiện thay thế
- nếu không có tour phù hợp hệ thống sẽ yêu cầu nhập lại thông tin cần tìm kiếm
- nếu tour mà khách hàng chọn đã hết hệ thống yêu cầu chọn tour khác
- nếu thông tin điền trong form không hợp lệ hệ thống yêu cầu điền lại thông tin
- nếu thông tin thanh toán không hợp lệ hệ thống sẽ yêu cầu thanh toán lại
- Số chỗ được cập nhật
- Đơn đặt tour sẽ được lưu vào hệ thống
- Lưu thông tin khách hàng
- Hiển thị thông báo đặt tour thành công b Vẽ sơ đồ Sequence ở mức thiết kế sơ bộ cho Use case Đặt tour trực tuyến
Hình 19 : Vẽ sơ đồ Sequence ở mức thiết kế sơ bộ cho Use case Đặt tour trực tuyến c Bổ sung các class mới (nếu có) vào trong sơ đồ Domain liên quan đến chức năng đặt tour trực tuyến.
Hình 20 : Bổ sung các class mới (nếu có) vào trong sơ đồ Domain liên quan đến chức năng đặt tour trực tuyến d Phân bổ các phương thức vào các Class tương ứng trong sơ đồ Domain Để thực hiện chức năng “Đặt tour trực tuyến” các lớp trong sơ đồ Domain cần phải có các phương thức sau:
- Lớp khách hàng có các phương thức:
dangKyThongTin(maKH): Phương thức đăng ký thông tin khách hàng.
xemThongTinDat(maKH,maDDT): Phương thức xem thông tin đặt tour
- Lớp Tour có các phương thức:
getDSTours(): Phương thức trả về danh sách tour có sẵn để đặt.
kiemTraTour(): Phương thức kiểm tra tính khả dụng của tour trước khi đặt.
datTour(): Phương thức đặt tour.
Hình 21 : Phân bổ các phương thức vào các Class tương ứng trong sơ đồ Domain e Hoàn thiện sơ đồ lớp tương ứng với chức năng “Đăt tour trực tuyến”
Ngoài các lớp entity, để thực hiện chức năng “Đăng ký học phần” còn có các lớp boundary và control:
- lớp GD_DangkyTour (lớp Boundary): gồm các phương thức
showDSTour(): hiển thị danh sách tour theo các từ khóa yêu cầu tìm kiếm
showTTTour(): hiển thi thông tin của tour được chọn
Display_Tourfull(): hiển thị thông báo tour đã đủ số lượng
Message_Dkthanhcong(): hiển thị thông báo đặt tour thành công
- Lớp Ctrl_DKTour(lớp control): gồm các phương thức:
TimDSTour(): tìm danh sách tour theo từ khóa
checkTour(): kiểm tra số lượng khách hàng đăng ký tour đã đầy hay còn cho phép.
Hình 22 : Hoàn thiện sơ đồ lớp tương ứng với chức năng “Đăt tour trực tuyến”
Dựa vào case study 3, sinh viên hãy phân tích chức năng “Đăng ký mượn sách”
a Phân tích Use case “ Đăng ký mượn sách”
* Luồng sự kiện cơ bản
Khi tìm được sách muốn đăng ký mượn, độc giả có thể đăng ký mượn sách trực tuyến, bằng cách điền thông tin đầy đủ vào form đăng ký, gồm các thông tin Mã sách, tên sách, tác giả, ngày mượn, ngày trả, nếu sai thì hệ thống yêu cầu nhập lại, nếu đúng thì hệ thống phải hiển thị thông báo đăng ký mượn sách thành công, và phiếu mượn sách sẽ được lưu vào hệ thống.
*Luồng sự kiện thay thế
− Nếu thông tin đăng ký không đúng thì hệ thống sẽ hiển thị thông báo và đưa ra lựa chọn Nhập lại hoặc Kết thúc cho độc giả.
- Đăng nhập thành công vào hệ thống
- Thông tin phiếu đăng ký được lưu trong hệ thống
- Số lượng sách được cập nhật
- Thông báo đăng ký mượn sách thành công b Vẽ sơ đồ Sequence ở mức thiết kế sơ bộ cho Use case Đăng ký mượn sách
Hình 23 : Vẽ sơ đồ Sequence ở mức thiết kế sơ bộ cho Use case Đăng ký mượn sách c Bổ sung các class mới (nếu có) vào trong sơ đồ Domain liên quan đến chức năng đăng ký mượn sách
Hình 24 : Bổ sung các class mới (nếu có) vào trong sơ đồ Domain liên quan đến chức năng đăng ký mượn sách d.Phân bổ các phương thức vào các Class tương ứng trong sơ đồ Domain
- Lớp Phiếu mượn có phương thức : o getAdd() : thêm số lượng sách mới vào phiếu mượn
- Lớp Sách có phương thức : o capNhatSoLuong(Masach,Soluong): cập nhật số lượng sách
Hình 25 : Phân bổ các phương thức vào các Class tương ứng trong sơ đồ Domain e Hoàn thiện sơ đồ lớp tương ứng với chức năng “Đăng ký mượn sách”
- lớp GD_DangkyMuonSach (lớp Boundary): gồm các phương thức
showDSSach(): hiển thị danh sách sách theo các từ khóa yêu cầu tìm kiếm
showTTSach(): hiển thi thông tin của sách được chọn
Display_Sachhet(): hiển thị thông báo sách đã hết số lượng cho mượn
Message_Dkthanhcong(): hiển thị thông báo mượn sách thành công
- Lớp Ctrl_DKTour(lớp control): gồm các phương thức:
TimDSSach(): tìm danh sách sách theo từ khóa
checkSach(): kiểm tra số lượng độc giả mượn sách đã đầy hay còn cho phép.
Hình 26 : Hoàn thiện sơ đồ lớp tương ứng với chức năng “Đăng ký mượn sách”
Modulo07 : Thiết kế cơ sở dữ liệu
1.Case study 1: Dựa vào sơ đồ Class đã thiết kế ở module 5 chuyển sang sơ đồ cơ sở dữ liệu quan hệ.
Hình 27 : Sơ đồ domain Đăng ký học phần
Chuyển các lớp thành các quan hệ:
− Các lớp: Học phần, Lớp học phần, Giảng viên, Sinh viên, Học kỳ sẽ chuyển thành các quan hệ tương ứng cùng tên, thuộc tính của lớp trở thành thuộc tính của quan hệ, chọn một thuộc tính có giá trị duy nhất làm khóa chính.
− Lớp kết hợp Kết quả trở thành quan hệ Kết quả, thuộc tính khóa chính của 2 quan hệ tham gia Mã sinh viên, Mã học phần trở thành khóa ngoại của quan hệ Kết quả, và 2 thuộc tính này đồng thời trở thành khóa chính của quan hệ Kết quả
− Lớp DSSV_LopHP trở thành quan hệ DSSV_LopHP, với 2 thuộc tính khóa ngoại Mã sinh viên và Mã lớp học phần, 2 thuộc tính này trở thành khóa chính của quan hệ DSSV_LopHP
− Học phần - Học kỳ: Quan hệ Học phần chứa khóa ngoại Mã học kỳ
− Học phần - Lớp học phần: Lớp học phần chứa khóa ngoại Mã học phần
− Lớp học phần – Giảng viên: Lớp học phần chứa khóa ngoại Mã Giảng viên.
Hình 27 : Sơ đồ cơ sở dữ liệu quan hệ Đăng ký học phần
2.Case study 2: Dựa vào sơ đồ Class đã thiết kế ở module 5 chuyển sang sơ đồ cơ sở dữ liệu quan hệ.
Hình 28 : Sơ đồ domain Đặt tour du lịch
Chuyển các lớp thành các quan hệ:
− Các lớp: Người dùng, Đơn đặt tour, Tour, Địa điểm, Dịch vụsẽ chuyển thành các quan hệ tương ứng cùng tên, thuộc tính của lớp trở thành thuộc tính của quan hệ, chọn một thuộc tính có giá trị duy nhất làm khóa chính.
− Lớp kết hợp Tour_HDV trở thành quan hệ Tour_NguoiDung3, thuộc tính khóa chính của
2 quan hệ tham gia Mã Tour, NguoiDungID trở thành khóa ngoại của quan hệ
Tour_NguoiDung3, và 2 thuộc tính này đồng thời trở thành khóa chính của quan hệ Tour_NguoiDung3
− Lớp kết hợp Tour_DiaDiem trở thành quan hệ Tour_DiaDiem, thuộc tính khóa chính của
2 quan hệ tham gia Mã Tour, DiaDiemID trở thành khóa ngoại của quan hệ
Tour_DiaDiem, và 2 thuộc tính này đồng thời trở thành khóa chính của quan hệ Tour_DiaDiem
− Lớp Tour_DV trở thành quan hệ Tour_DV, với 2 thuộc tính khóa ngoại Mã tour, Mã dịch vụ, 2 thuộc tính này trở thành khóa chính của quan hệ Tour_DV
Lớp DonDatTour trở thành DonDatTour, với 2 thuộc tính khóa ngoại Mã tour,
NguoiDungId, 2 thuộc tính này trở thành khóa chính của quan hệ DonDatTour
− Đơn đặt tour – Tour: Quan hệ Đơn đặt tour có khóa ngoại Mã tour.
− Đơn đặt tour – Tour: Quan hệ Đơn đặt tour có khóa ngoại NguoiDungID.
− Tour_DV - Tour: Quan hệ Tour có khóa ngoại Mã tour
− Tour_DV - DichVu: Quan hệ Tour có khóa ngoại Mã Dịch Vụ
Từ phân tích trên ta có sơ đồ cơ sở dữ liệu quan hệ của hệ thống Đăng ký học phần như sau:
Hình 29 : Sơ đồ cơ sở dữ liệu quan hệ Đặt tour du lịch
3.Case study 3: Dựa vào sơ đồ Class đã thiết kế ở module 5 chuyển sang sơ đồ cơ sở dữ liệu quan hệ.
Hình 30 : Sơ đồ domain Đăng ký mượn sách ở thư viện
Chuyển các lớp thành các quan hệ:
− Các lớp: Người dùng, Sách, Loại sách, Phiếu mượn sẽ chuyển thành các quan hệ tương ứng cùng tên, thuộc tính của lớp trở thành thuộc tính của quan hệ, chọn một thuộc tính có giá trị duy nhất làm khóa chính.
− Lớp Sach_NguoiDung trở thành quan hệ Sach_NguoiDung, với 2 thuộc tính khóa ngoại
MaSach, NguoiDungID, 2 thuộc tính này trở thành khóa chính của quan hệ Sach_NguoiDung
− CT_PM – Sach: Quan hệ CT_PM có khóa ngoại là MaSach
− CT_PM – PhieuMuon: Quan hệ CT_PM có khóa ngoại là MaPM
− Sach – LoaiSach: Quan hệ Sach có khóa ngoại là MaLoai
− PhieuMuon – NguoiDun: Quan hệ PhieuMuon có khóa ngoại là NguoiDungID
Từ phân tích trên ta có sơ đồ cơ sở dữ liệu quan hệ của hệ thống Đăng ký học phần như sau: