Gv: Vũ Thị Dương
Email:
KHOA CÔNG NGHỆ THÔNG TIN
Trường Đại học công nghiệp Hà Nội
PHÂN TÍCH THIẾT KẾ
HƯỚNG ĐỐI TƯỢNG
Nội dung chi tiết
1. Các khái niệm hướng đối tượng
2. Tổng quan về ngôn ngữ mô hình hóa UML
3. Mô hình hóa yêu cầu (biểu đồ ca sử dụng)
4. Mô hình hóa lĩnh vực ứng dụng (biểu đồ lớp lĩnh vực)
5. Mô hình hóa hành vi( biểu đồ tương tác, trạng thái)
6. Biểu đồ lớp chi tiết
7. Biểu đồ kiến trúc vật lý và phát sinh mã trình
8. Mô hình hóa dữ liệu
2010 Phân tích thiết kế hướng đối tượng Bài 1 - 2
Biểu đồ lớp chi tiết
Bài 6
Phân tích thiết kế hướng đối tượng Bài - 4/34
Nội dung chính
Các tiên đề trong hệ thống hướng đối tượng
Tiên đề độc lập
Tiên đề thông tin
Bước đầu tinh chế các lớp trong giai đoạn phân
tích thành các lớp trong giai đoạn thiết kế
Thiết kế thuộc tính
Mối kết hợp
Thiết kế phương thức
Phân tích thiết kế hướng đối tượng Bài - 5/34
Nội dung chính
Các tiên đề trong hệ thống hướng đối tượng
Tiên đề độc lập: Duy trì độc lập của các thành
phần
Trong quá trình thiết kế đi từ yêu cầu + usecase
đến một thành phần trong hệ thống. Vậy mỗi
thành phần phải thỏa mãn yêu cầu và không ảnh
hướng đến những thành phần khác
Tiên đề thông tin:Giảm tối đa nội dung thông tin
thiết kế:
Nói về tính đơn giản hóa trong thiết kế. Mục đích
chính là giảm tính phức tạp (sử dụng tính kế
thừa)
Phân tích thiết kế hướng đối tượng Bài - 6/34
Đối chiếu và chỉnh sửa các mô hình cấu
trúc và tương tác
Mục đích:
Đối chiếu và so sánh các biểu đồ lớp lĩnh vực, biểu đồ
các lớp tham gia và 2 biều đồ tương tác để chỉnh sửa các
chỗ không phù hợp
Thêm bớt các lớp
Thêm và chỉnh lý các thao tác
Thêm kiểu dữ liệu cho các thuộc tính, các tham số
Thêm và chỉnh lý các mối liên quan giữa các lớp
Xác định các mức khả kiến (visibility)
Phân tích thiết kế hướng đối tượng Bài - 7/34
Biểu đồ lớp
Biểu đồ lớp có cùng quy tắc với mô hình khái niệm
Thực ra mô hình khái niệm 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 mô
hình khái niệm đều được sử dụng để xây dựng biểu đồ lớp
Biểu đồ lớp được xây dựng dựa trên mô hình khái
niệm
Các lớp có thể chủ yếu là các khái niệm hay các
thành phần khác
Biểu đồ lớp là nền tảng cho bước mã hóa
Phân tích thiết kế hướng đối tượng Bài - 8/34
Cách xây dựng Biểu đồ lớp
Thêm mới các lớp
Dựa vào biểu đồ lớp lĩnh vực bổ sung các lớp xuất hiện
trong biểu đồ tương tác
Loại bỏ các lớp trong biểu đồ lớp lĩnh vực không hề có đối
tượng tham gia vào 1 biểu đồ tương tác nào
Bổ sung các thuộc tính:
Thuộc tính là các thành phần mà một đối tượng phải ghi
nhớ
Các thuộc tình có thể ít được mô tả trong vấn đề. Do đó ta
phải sử dụng kiến thức về lĩnh vực ứng dụng để tìm
Bổ sung các thao tác
Tìm các phương thức qua hoạt động của usecase
Qua các biểu đồ tương tác và trình tự
Phân tích thiết kế hướng đối tượng Bài - 9/34
Bổ sung các thuộc tính
Phân tích các usecase, yêu cầu, mô tả, các sơ đồ để
ta có thể hiểu trách nhiệm của lớp và cách thức lớp
tương tác để thi hành công việc
Thuộc tính thường tương ứng với các danh từ đi theo bởi
các cụn phó từ: chi phí của….
Chỉ dùng đủ cac thuộc tính để diễn đạt trạng thái của đối
tượng
Các thuộc tính ít khi được mô tả đầy đủ trong mô tả vấn
đề. Do vậy phải sử dụng tri thức về lĩnh vực ứng dụng để
tìm
Không nên quá quan tâm về phải khám xét hết các thuộc
tính, ta sẽ bổ sung sau
10
Bổ sung các thuộc tính
Trong UML việc trình bày các thuộc tính được đề nghị:
<Phạm vi><tên>:<kiểu thuộc tính>=<giá trị khởi tạo>
Trong đó: <phạm vi>: public, protect,private
<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>: biểu thức độc lập ngôn ngữ xác định giá trị khởi
tạo
Ví dụ Lớp KháchHangf
#tenKhach:string
#hokhach:string
#maPin:string
#soThe:string
#taiKhoan:TaiKhoan (thuộc tính tham chiếu)
11
Xác định các thao tác
Câu hỏi:
Các đối tượng chịu trách nhiệm xử lý gì về thông tin của nó để
cung cấp dịch vụ cho hệ thống?
Nguyên tắc:
Tên: động từ + bổ ngữ
Chỉ quan tâm đến các method có phạm vi toàn cục (public), các
method có phạm vi cục bộ sẽ được phát hiện trong giai đoạn
thiết kế cài đặt (vd: constructor, ….)
Các method chịu trách nhiệm về các thao tác lên các thuộc tính
của đối tượng: truy vấn, cập nhật, đọc và ghi
12
Xác định các thao tác
Xác định method qua phân tích hoạt động use case:
Phân tích các dòng message trong sơ đồ tuần tự để xem có thể
chuyển một hoạt động thành một method không?
Nếu có, đặt tên cho method ứng với hoạt động đó
13
Xác định các thao tác
Xác định method qua
phân tích hoạt động use
case:
Ví dụ: lớp TàiKhoản
Rút Tiền
Gửi Tiền
Xem thông Tin Tài Khoản
: KháchHàng : MáyATM : TàiKhoản
Yêu cầu số tiền
Nhập số tiền
Xử lý giao tác rút
Giao tác thành công
Phân phối tiền mặt
Yêu cầu lấy thẻ
Lấy thẻ
Yêu cầu tiếp tục
Kết thúc
In hoá đơn
TàiKhoản
sốTàiKhoản
loạiTàiKhoản
sốDư
rútTiền()
Use case Rút Tiền
14
Xác định các thao tác
Xác định method qua
phân tích hoạt động use
case:
Ví dụ: lớp TàiKhoản
Rút Tiền
Gửi Tiền
Xem thông Tin Tài Khoản
: KháchHàng : MáyATM : TàiKhoản
Yêu cầu nhập số tiền
Nhập số tiền
Xử lý giao tác gửi
Giao tác thành công
Yêu cầu lấy thẻ
Lấy thẻ
Yêu cầu tiếp tục
Kết thúc
In hoá đơn
TàiKhoản
sốTàiKhoản
loạiTàiKhoản
sốDư
rútTiền()
Use case Rút Tiền
gửiTiền()
xemTàiKhoản()
Yc chọn giao dịch
15
Xác định các thao tác
Ví dụ:
hệ
thống
ATM
GiaoDịchRút GiaoDịchGởi
KháchHàng
tênKháchHàng
họKháchHàng
mãPIN
sốThẻ
kiểmTraMậtKhẩu()
GiaoDịch
giaoDịchID
ngàyGiaoDịch
thờiGianGiaoDịch
loạiGiaoDịch
sốTiền
sốDư
TàiKhoản
sốTàiKhoản
loạiTàiKhoản
sốDư
rútTiền()
gởiTiền()
11
của
0 n
1
có
NgânHàng
MáyATM
địaChỉ
trạngThái
sốTiềnHiệnTại
khởiĐộngMáy()
đóngMáy()
xemTàiKhoản()
1
Ghi chú: các method được phát hiện
trong giai đoạn này thường đại diện
xử lý cho một use case
Phân tích thiết kế hướng đối tượng Bài - 16/34
Xác định các thao tác
Thêm và chỉnh lý các thao tác
Khi có 1 thông điệp được gửi từ một đối tượng của lớp A
sang 1 đối tượng của lớp B thì
Trong lớp B (Bên nhận) phải có 1 thao tác công cộng tương
ứng với thông điệp đó
Tên thông điệp và thao tác phải phù hợp về mặt ngữ nghĩa
Danh sách tham số của thao tác phải phù hợp các yêu cầu của
thông điệp
Trong lớp A (bên gửi) phải có 1 thao tác có trách nhiệm gửi
thông điệp trên
:B
:A
thaotacb1()
Phân tích thiết kế hướng đối tượng Bài - 17/34
Đối chiếu và chỉnh sửa
Lưu ý khi Thêm và chỉnh lý các thao tác
Thông điệp đến 1 đối tác
Nếu đối tác là người, thông điệp chỉ yêu cầu người làm một việc
gì chứ không phải là 1 thao tác (chương trình máy tính)
Nếu đối tác là 1 thiết bị thì thông điệp chỉ kích hoạt 1 cảm biến
hay động cơ ở thiết bị đó
Nếu đối tác là một hệ thống ngoài thì nó phải được đại diện bởi
1 lớp chứa các giao thức thức thích hợp. Bấy giờ thông điệp sẽ
kích hoạt một thao tác trong lớp này
Thông điệp đến 1 lớp giao diện GUI
Yêu cầu thông điệp được cài đặt thành các yếu tố đồ họa như là
trường hay nút-> nó ko là thao tác
Các thao tác riêng tư
Chỉ dùng trong nội bộ, chỉ tương ứng với thông điệp đệ quy chứ
không tương ứng với thông điệp từ đối tượng khác gửi
Phân tích thiết kế hướng đối tượng Bài - 18/34
Đối chiếu và chỉnh sửa
Thêm các kiểu cho các thuộc tính, các tham số và các
trả lời
Kiểu có thể là kiểu nguyên thủy hay kiểu do người dùng đưa
vào, cũng có thể là các lớp.
Chỉ nên đưa vào kiểu chung chứ không nên đưa vào kiểu của
1 ngôn ngữ lập trình cụ thể
Thêm và chỉnh lý các quan hệ giữa các lớp
Nếu thông điệp được giửu từ A sang B là bền vững, đó là 1
liên kết
Nếu thông điệp mới được cung cấp thì đấy là biểu hiện của 1
sự phụ thuộc
Đối chiếu và chỉnh sửa
Phân tích thiết kế hướng đối tượng Bài 5- 19/34
Đối chiếu và chỉnh sửa
Phân tích thiết kế hướng đối tượng Bài 5- 20/34
Lớp chuyến hàng trong bài Vận chuyển hàng hóa
Phân tích thiết kế hướng đối tượng Bài - 21/34
Đối chiếu và chỉnh sửa
Xác định các mức khả kiến (visibility)
“- “ Mức riêng (private): thuộc tính hay phương thức đó chỉ
được nhìn thấy bởi đối tượng của lớp đó
“#” mức bảo vệ (protected) thuộc tính hay phương thức chỉ
được nhìn thấy bởi đối tượng của lớp đó vf đối tượng của lớp
kế thừa nó
“+” Mức chung (public) thuộc tính hay phương thức chỉ được
nhìn thấy bởi đối tượng của tất cả các lớp
Phân tích thiết kế hướng đối tượng Bài - 22/34
Ví dụ: chuyển đồi mô hình khái niên
thành biểu đồ lớp
Giả sử mô hình khái niệm
Chi tiết các thuộc tính
Phân tích thiết kế hướng đối tượng Bài - 23/16
Ví dụ: chuyển đồi mô hình khái niệm
thành biểu đồ lớp
Chi tiết các phương thức
Xác định các mức khả kiến
Phân tích thiết kế hướng đối tượng Bài - 24/16
Bài tập
Bổ sung các liên kết, thuộc tính, lớp cho hệ đăng ký
môn học cho biểu đồ sau
Phân tích thiết kế hướng đối tượng Bài - 25/34
Ví dụ hệ thống ATM