Click to edit Master title
style
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
PHÂN TÍCH VÀ THIẾT KẾ
HƯỚNG ĐỐI TƯỢNG
Trần Thị Thanh Lan
Khoa Công Nghệ Thông Tin
Đại học Duy Tân
CHƯƠNG 7
THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
Trần Thị Thanh Lan
Khoa Công Nghệ Thông Tin
Email:
Thời gian: 120 phút
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 2
MỤC TIÊU
Cung cấp cho sinh viên những kiến thức về:
Thiết kế kiến trúc hệ thống
Thiết kế use case, xây dựng các biểu đồ trình tự, biểu đồ
cộng tác, biểu đồ trạng thái, biểu đồ hoạt động.
Thiết kế lớp, thiết kế phương thức/hành vi của lớp.
Thiết kế kế cơ sở dữ liệu hệ thống: chuyển đổi đối tượng
sang mơ hình quan hệ, chuyển đổi từ lớp – bảng…
Thiết kế hệ thống con
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 3/64
NỘI DUNG
Thiết kế các use case
Biểu đồ hoạt động
Biểu đồ tương tác
Biểu đồ tuần tự
Biểu đồ cộng tác
Biểu đồ trạng thái
Thiết kế lớp
Biểu đồ triển khai
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 4/64
NỘI DUNG
Thiết kế các use case
Biểu đồ hoạt động
Biểu đồ tương tác
Biểu đồ tuần tự
Biểu đồ cộng tác
Biểu đồ trạng thái
Thiết kế lớp
Biểu đồ triển khai
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 5/64
THIẾT KẾ LỚP
Một tiến trình thiết kế lớp bao gồm:
Tinh chế thuộc tính
Thiết kế hành vi (method) và nghi thức (protocol) sử dụng
sơ đồ trong UML
Tinh chế quan hệ giữa các lớp
Tinh chế sự phân cấp và thiết kế sự kế thừa
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 6/64
THIẾT KẾ LỚP
Nhắc lại: giai đoạn elaboration đã xây dựng biểu đồ
lớp phân tích
Giai đoạn construction xây dựng biểu đồ lớp (class
diagram) chi tiết hay còn gọi là biểu đồ lớp thiết kế
(design class diagram)
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 7/64
THIẾT KẾ LỚP
Biểu đồ lớp định nghĩa:
Các lớp (class)
Các thuộc tính (attribute) của lớp: các biến và
kiểu của chúng
Các thao tác (operation) của lớp: các phương thức
(method), các tham đối và có thể giá trị trả về
Các quan hệ giữa các lớp
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 8/64
THIẾT KẾ LỚP
Biểu đồ lớp thiết kế có cùng quy tắc cú pháp với
biểu đồ lớp phân tích
Thực ra, biểu đồ lớp phân tích sử dụng các cú pháp của
biểu đồ lớp trong UML
Tất cả các kí hiệu và quy tắc (đã trình bày) đối với biểu đồ
lớp phân tích đều được sử dụng để xây dựng biểu đồ lớp
thiết kế.
Biểu đồ lớp thiết kế được xây dựng dựa trên biểu đồ
lớp phân tích
Biểu đồ lớp thiết kế sẽ là nền tảng cho bước mã hóa
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 9/64
THIẾT KẾ LỚP
Tinh chế các thuộc tính
<Phạm vi> <tên> : <kiểu thuộc tính> = <giá trị khởi tạo>
Trong đó,
sẽ là:
+ : toàn cục (public protocol)
# : bảo vệ (protected protocol)
- : cục bộ (private protocol)
<kiểu thuộc tính> là một đặc tả cài đặt thuộc tính độc lập ngôn
ngữ.
<giá trị khởi tạo> là một biểu thức độc lập ngôn ngữ xác định giá
trị khởi tạo khi một đối tượng được tạo mới. tham số này là
tuỳ chọn.
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 10/64
THIẾT KẾ LỚP
Tinh chế các thuộc tính
Thuộc tính đa trị được xác định bằng việc thêm vào chỉ số mảng
theo sau tên thuộc tính. Ví dụ:
Địa_chỉ[3]: string
Ngoaingu[2]:string
Tập_hợp_điểm[2..*]: điểm
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 11/64
THIẾT KẾ LỚP
Ví dụ: tinh chế thuộc tính các lớp của hệ thống
ATM
Lớp KháchHàng
#tênKháchHàng: String
#họKháchHàng: String
#mãPIN: String
#sốThẻ: String
#tàiKhoản: TàiKhoản (thuộc tính tham chiếu)
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 12/64
THIẾT KẾ LỚP
Ví dụ: tinh chế thuộc tính các lớp của hệ thống
ATM
Lớp TàiKhoản
#sốTàiKhoản: String
#loạiTàiKhoản: String
#sốDư: float
#giaoTác: GiaoTác (cài đặt mối kết hợp giữa lớp
TàiKhoản và lớp GiaoTác)
#kháchHàng: KháchHàng (cài đặt mối kết hợp giữa lớp
TàiKhoản và lớp KháchHàng)
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 13/64
THIẾT KẾ LỚP
Ví dụ: tinh chế thuộc tính các lớp của hệ thống
ATM
Lớp GiaoTác
#giaoDịchID: String
#ngàyGiaoDịch: Date
#thờiGianGiaoDịch: Time
#loạiGiaoDịch: String
#sốTiền: float
#sốDư: float
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 14/64
THIẾT KẾ LỚP
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 15/64
THIẾT KẾ LỚP
Thiết kế các phương thức
Một lớp có thể có những loại hành vi sau:
- Constructor: method tạo thể hiện (đối tượng) của lớp
- Destructor: method huỷ thể hiện của lớp
- Conversion: method chuyển đổi một đơn vị đo lường này sang một đơn vị đo lường
khác
- Copy: method sao chép nội dung của một thể hiện sang một thể hiện khác
- Attribute set: method gán giá trị cho một hoặc nhiều thuộc tính
- Attribute get: method trả về giá trị của một hoặc nhiều thuộc tính
- I/O method: method cung cấp tới hoặc nhận dữ liệu từ một thiết bị
- Domain specific: method xác định tới các ứng dụng của đối tượng
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 16/64
THIẾT KẾ LỚP
Thiết kế các phương thức
Theo UML một hành vi của lớp được trình bày theo cú pháp:
<tên> <(danh sách tham số)> : <kiểu trả về>
Trong đó,
được qui định giống như của thuộc tính
<danh sách tham số>: mỗi tham số cách nhau bởi dấu phẩy và
có cú pháp như sau: <tên tham số>: <kiểu dữ liệu> = mặc định>.
<kiểu trả về> là một đặc tả độc lập ngôn ngữ về cài đặt giá trị trả
về của một hành vi. Nếu mục này bị bỏ qua thì hành vi khơng
trả về giá trị
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 17/64
THIẾT KẾ LỚP
Thiết kế các phương thức
Ví dụ:
+get_Tên(): String
+get_SốTàiKhoản(vtàiKhoản : TàiKhoản):
String
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 18/64
THIẾT KẾ LỚP
Thiết kế các phương thức
Ví dụ:
+get_Tên(): String
+get_SốTàiKhoản(vtàiKhoản : TàiKhoản):
String
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 19/64
THIẾT KẾ LỚP
Wednesday, October 11, 2023
Faculty Of Information Technology
Page: 20/64