Phân tích thiết kế hướng đối tượng Bài 5 - 5/38 Mô hình hóa tương tác đối tượng Mục đích: bản của mỗi ca sử dụng của hệ thống Hai loại biểu đồ được sử dụng để mô hình hóa đối tượng
Trang 1Gv: Vũ Thị Dương Email: duongvt01@gmail.com
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
Mô hình hóa hành vi
Mô hình hóa sự tương tác
Bài 5
Trang 2Phân tích thiết kế hướng đối tượng Bài 5 - 3/38
Mục tiêu
Sau khi học xong bài học, sinh viên nắm được
Phân tích thiết kế hướng đối tượng Bài 5 - 4/38
UML có những biểu đồ khác nhau đáp ứng 3 cách tiếp
cận đó với hành vi của hệ thống
Trang 3Phân tích thiết kế hướng đối tượng Bài 5 - 5/38
Mô hình hóa tương tác đối tượng
Mục đích:
bản của mỗi ca sử dụng của hệ thống
Hai loại biểu đồ được sử dụng để mô hình hóa đối tượng
Tập trung vào mô tả điều khiển
Tập trung vào mô tả dữ liệu
tin Gọi tên chung cho hai loại biểu đồ này là biểu đồ tương tác
(Interaction diagram)
Nội dung chính
Khái niệm đối tượng
Khái niệm thông điệp
Cách xây dựng biểu đồ tương tác
Tìm kiếm đối tượng
Tìm kiếm tác nhân
Biểu đồ trình tự
Biểu đồ cộng tác
Trang 4Phân tích thiết kế hướng đối tượng Bài 4 - 7/23
Đối tượng?
Ta nhìn thấy đối tượng xung quanh ta
Đối tượng là cái gì đó gói thông tin và hành vi
Nó là khái niệm biểu diễn cái cụ thể trong thế giới thực (có
căn cước (định danh/địa chỉ) và ranh giới rõ ràng
Thí dụ Máy bay VN358 là đối tượng
Ngày bay 10 April, giờ bay 8h30, số hiệu máy bay VN358, bay từ Hà Nội
Nó biết đón khách vào máy bay, biết đưa khách ra khỏi máy bay, xác
định khi nào máy bay đầy khách
Thông tin được lưu trữ bởi thuộc tính (Attribute)
Hành vi của đối tượng được gọi là thao tác (Operation)
Phân tích thiết kế hướng đối tượng Bài 6 - 8/23
Thuộc tính
Thuộc tính là 1 tính chất có đặt tên của 1 lớp và nó nhận 1
giá trị cho đối tượng thuộc lớp đó tại mỗi thời điểm
Tên thuộc tính là danh từ hay cụm danh từ, chữ cái đầu
viết thường
Cú pháp đầy đủ là
Public- ký hiệu +; Private- ký hiệu – ; Protected- ký hiệu #
Trang 5Phân tích thiết kế hướng đối tượng Bài 6 - 9/23
Thao tác
Thao tác là 1 dịch vụ mà đối tượng có thể đáp ứng
khi được yêu cầu (thông qua 1 thông điệp)
Cú pháp đầy đủ:
[tầm nhìn] tên[(danh sách tham số)][: kiểu trả lại][{xâu tính chất}]
Ý nghĩa các thành phần tham gia giống với đối tượng
lớp khác
Public- ký hiệu +; Private- ký hiệu – ; Protected- ký hiệu #
Danh sách tham số: các dữ liệu cần đưa vào từ ngoài
Kiểu trả lại: kiểu giá trị các thuộc tính
Xâu tính chất: trỏ các giá trị có thể gán cho các thuộc tính
Thông điệp
Thông điệp (message): là một đặc tả sự giao lưu giữa hai
đối tượng gồm quá trình truyền đạt thông tin hay yêu cầu
thực hiện một hoạt động nào đó
Hành động tạo bởi một thông điệp có thể là các loại sau:
Trang 6Các loại thông điệp (tt)
Thông điệp đồng bộ (biểu diễn bằng mũi tên đầu tam giác
đặc)
bên gọi chuyển tới bên bị gọi, rồi tạm ngưng để chờ bên bị gọi trả
lại điều khiển
khiển cho bên khác và có thể kèm theo kết quả trả lời
Phân tích thiết kế hướng đối tượng Bài 5- 11/34
Các loại thông điệp (tt)
Thông điệp không đồng bộ (biểu diễn bằng mũi tên
thường )(UML 1.3 trở về trước dùng mũi tên nửa)
bên nhận
việc ngay
tin cho bên gửi Nhưng nếu có sự trả lại thì phải biểu diễn tường
minh
Phân tích thiết kế hướng đối tượng Bài 5- 12/34
Trang 7Phân tích thiết kế hướng đối tượng Bài - 13/34
Các thông điệp (tt)
trình tự hệ thống
điệp không đồng bộ vì
Hệ thống hiện thời là một khối nguyên
Các tương tác là những điều khiển theo bước, chưa đi vào bên
trong hệ thống để có các lời gọi theo kiểu thủ tục
lại vì
Nó diễn tả các lời gọi thao tác thông thường
Được hỗ trợ trong phần lớn các ngôn ngữ lập trình thông thường
các trường hợp hiếm gặp
Xây dựng biểu đồ tương tác
Để xây dựng biểu đồ tương tác ta bắt đầu từ luồng sự kiện
Xây dựng từng biểu đồ cho
lại
Các bước xây dựng biểu đồ tương tác
Trang 8dvduc-2004 Phân tích thiết kế hướng đối tượng Bài 5 - 15/34
Tìm kiếm đối tượng
Khảo sát các danh từ trong đặc tả UC
Tìm đối tượng trong tài liệu kịch bản
Tìm đối tượng không được mô tả trong luồng sự kiện
Tìm đối tượng tương ứng với khái niệm trừu tượng khi
phân tích
đối tượng nào trong thế giới thực
Phân tích thiết kế hướng đối tượng Bài 5 - 16/34
Biểu diễn đối tượng Tênđốitượng Tênđốitượng : Lớp : Lớp <<Stereotype>>> Tênđốitượng
Ten doi tuong :Name1 :Name2
Message1 Message2 Message3
Trang 9Phân tích thiết kế hướng đối tượng Bài - 17/34
Tìm kiếm tác nhân
Sau khi xác định đối tượng, ta tìm kiếm tác nhân cho
biểu đồ tương tác
Tác nhân trong biểu đồ tương tác là sự kích hoạt từ
ngoài để khởi động luồng công việc của luồng sự kiện
Tìm kiếm tác nhân trong luống sự kiện
Có thể có nhiều tác nhân cho một biểu đồ tương tác
Nếu tác nhân nhận hay gửi thông điệp cho hệ thống
theo kịch bản nào đó thì chúng phải có mặt trong biểu
Trang 10Phân tích thiết kế hướng đối tượng Bài - 19/34
Xây dựng biểu đồ trình tự
(cho các đối tượng tham gia ca sử dụng)
Xem lại biểu đồ lớp tham gia của các ca sử dụng (ở bước trước) để
Tìm xem các cá thể nào thực sự tham gia vào kịch bản đang xét
Xem các đối tượng đóng vai trò gì trong bước đó
Dàn các đối tượng thành hàng ngang trên đỉnh biểu đồ Bố trí đối
tượng quan trọng ở giữa, phụ trợ phải, đối tác (nếu có) đặt bên trái
Vẽ đường đời cho các đối tượng
Xuất phát từ thông điệp khởi đầu, bố trí các thông điệp tiếp lần lượt
từ trên xuống
Nếu cần làm rõ thời kỳ hoạt động của đối tượng thì đưa thêm tiêu
trình điều khiển (hình chữ nhật)
Nếu làm rõ ràng buộc thời gian thì thêm các ký hiệu và nếu cần đưa
thêm tiền điều kiện, hậu điều kiện nếu cần
Phân tích thiết kế hướng đối tượng Bài - 20/34
Mô hình tổng quát biểu đồ tt
Doi tuong dieu khien Doi tuong dieu khien
Doi tuong du lieu Doi tuong du lieu 1: Mo mau nhap lieu
2: Nhap thong tin
3: Luu thong tin
Trang 11Thông điệp tạo và hủy bỏ
Phân tích thiết kế hướng đối tượng Bài 5- 21/34
Doi tuong 1
Doi tuong 2 new()
Thong diep()
Dap ung delete()
Mô tả thông điệp trong biểu đồ tt
Cú pháp thông điệp: tênthôngđiệp(ds tham số)
thông điệp
Điều kiện chọn đặt trong [], nghĩa là thông điệp
được gửi đi khi điều kiện này thỏa mãn
Ký hiệu ở dạng lặp : *, nghĩa là thông điệp được lặp
lại nhiều lần
Trang 12Thông điệp lặp
Phân tích thiết kế hướng đối tượng Bài 5- 23/34
1: *[X] Message
* Ky hieu lap[] Ky hieu dieu kien
Phân tích thiết kế hướng đối tượng Bài 4 – 24/13
Thí dụ: Chọn môn giảng
Dựa vào kịch bản đặc tả Chọn môn học để giảng
I. Mô tả tóm tắt:
Ca sử dụng bắt đầu khi thầy giáo đăng nhập hệ thống hợp lệ và nhắc
thầy giáo chọn học kỳ này hay học kỳ sau, thầy chọn học kỳ , hệ
thống nhắc thầy chọn việc: Thêm, bỏ,xem,in ra
Thêm một lớp giảng (còn nữa)
Trang 13Phân tích thiết kế hướng đối tượng Bài 4 – 25/13
Thí dụ: Chọn môn giảng
Kịch bản con thêm một lớp giảng
mã số môn học
Thầy giáo chọn 1 lớp giảng
lại
……
Dựa vào kịch bản đặc tả ta phát hiện các lớp:
Lớp Thực thể: Lớp giảng, môn học, thầy giáo
Lớp Biên : W_thầy; W_Lớp
Lớp điều khiển : QLLớpthầy
Chọn môn giảng
Trang 14Phân tích thiết kế hướng đối tượng Bài - 27/34
: Thay giao : W_Thay : W_LopGiang : QLLopThay toan : MonHoc : LopHoc
9: layLopGiang()
10: layLopGiang() 11: layLop( )
12: ketQua 13: ketQua
14: ketQua 15: hienThi() 16: chonLopGiang()
Trang 15(from LichBieu)
QLDangKyMon
+ layMon() + themMon() + boMon() + xemMon() + layLop() + boLop()
0 n 1
10 30 0 8 10 300 8
BuoiHoc
# tietDau (from ThucThe)
1
1 n 1
1 n
Trang 16Phân tích thiết kế hướng đối tượng Bài 5- 31/34
Lập bản giới thiệu môn học
Tóm tắt
trong kỳ
tên thầy dạy
chọn
Kết quả: Danh sách các môn học đươc tạo ra
Phân tích thiết kế hướng đối tượng Bài 5- 32/34
Trang 17Lập bảng danh sách môn học
Phân tích thiết kế hướng đối tượng Bài 5- 33/34
Trình tự lập ds môn học
Trang 18Phân tích thiết kế hướng đối tượng Bài 5 - 35/38
Tương tự biểu đồ trình tự, biểu đồ cộng tác (Collaboration
diagram) chỉ ra luồng thực hiện trong kịch bản của UC
Biểu đồ cộng tác tập trung vào
Tương đối khó quan sát trình tự các thông điệp trong biểu
đồ cộng tác
Trang 19Phân tích thiết kế hướng đối tượng Bài - 37/34
Biểu đồ cộng tác
Cả biểu đồ trình tự và biểu đồ cộng tác đều mô tả luồng điều khiển
trong kịch bản
Khác biệt giữa biểu đồ trình tự và biểu đồ cộng tác
biểu đồ cộng tác mô tả luồng dữ liệu
biểu đồ trình tự không mô tả luồng dữ liệu
Luồng dữ liệu được sử dụng để mô tả thông tin trả lại khi một đối
tượng gửi thông điệp đến đối tượng kia
Không nên bổ sung mọi luồng dữ liệu bào biểu đồ vì nó sẽ làm rối
Sử dụng nó khi thấy cần thiết
Thông điệp được biểu diễn bằng mũi tên nhỏ vẽ dọc theo một kết nối
giữa hai đối tượng
Doi tuong 1
Doi tuong 2
1: Thong diep
Du lieu A
Du lieu B
Biểu đồ cộng tác
Tiêu đề của thông điệp có cú pháp
[Bước trước] [Biểu thức trình tự] [Trả lời:=]tên thông điệp (ds
tham số)
Bước trước: danh sách số thứ tự, cách nhau bằng dấu phẩy và kết thúc
bằng gạch chéo(/) Thông điệp chỉ được chuyển giao khi thông điệp tương
tứng với các số thứ tựu cho trong ds đã chuyển giao rồi -> yc đồng bộ
tiếp nỗi các thông điệp
Ví dụ: Thông điệp 2.1.3 tiếp sau thông điệp 2.1.2 và cả 2 đều được gửi đi
bởi cùng thao tác thực hiện thông điệp 2.1
Trang 20Phân tích thiết kế hướng đối tượng Bài - 39/34
Biểu đồ cộng tác
Trả lời là tên của kết quả trả về bên gửi Tên này có thể là một thuộc tính
của đối tượng gửi hoặc cũng có thể lấy là một biến cục bộ trong thao tác
gửi thông điệp Tên này cũng có thể dùng làm tham số cho thông điệp
khác
Tên Thông điệp (ds tham số): là tên của thông điệp kèm theo danh sách
tham số Tên thông điệp là thành phần bắt buộc, thường lấy trùng với
thao tác cần được huy động ở bên nhận
Phân tích thiết kế hướng đối tượng Bài - 40/34
Biểu đồ cộng tác
Trang 21Phân tích thiết kế hướng đối tượng Bài - 41/34
Xây dựng biểu đồ cộng tác
Xem lai các lớp tham gia ca sử dụng để xác định cá thể
của lớp nào tham gia thực sự vào kịch bản đang xét
Vẽ các đối tượng như là đỉnh của đồ thị Bố trí đối tượng
quan trọng vào giữa , đối tượng khác ở xung quanh
Xác định các kết nỗi giữa các đối tượng cùng các thông
điệp có thể có trên đó
Vẽ liên kết trước, vẽ các kết nỗi và ghi chú khuôn dập nếu cần (global,
local )
Xuất phát với thông điệp khởi đầu tương tác, bố trí các
thông điệp tiếp theo trên các kết nối, thêm các số tự tự
Dùng ký pháp dấu chấm để làm rõ sự lồng nhau
Xây dựng biểu đồ cộng tác
Nếu thấy cần các ràng buộc về không gian và thời gian,
hãy thêm vào thông điệp các dấu hiệu về thời gian và đính
kèm các ràng buộc về không gian
Nếu thấy cần diễn tả luồng điều khiênr này một cách hình
thức hơn hãy đưa thêm tiền điều kiện và hậu điều kiện
cho mỗi thông điệp
Trang 22Phân tích thiết kế hướng đối tượng Bài - 43/34
Chú ý
Vậy dùng biểu đồ nào để mô hình hóa sự tương tác
biểu đồ cho 1 tương tác
Biểu đồ này chỉ diễn tả 1 luồng điều khiển Do đó ta lập 1
Trang 23Đối chiếu và chỉnh sửa các MH
Dựa vào các biểu đồ cấu trúc (lớp lĩnh vực, lớp tham gia
ca sử dụng) và các biểu đồ tương tác đã lập (BD trình tự,
cộng tác) Ta cần đối chiếu và sửa lại các biểu đồ để chỉnh
lại các chỗ không phù hợp
Thêm bớt các lớp
vào biểu đồ cấu trúc (lớp lĩnh vực, lớp tham gia UC)
vào một biểu đồ tương tác nào Cần loại bỏ chúng đi
Phân tích thiết kế hướng đối tượng Bài 5- 45/34
Đối chiếu và chỉnh sửa các MH
Thêm và chỉnh lý các thao tác trong các lớp
một đối tượng của lớp B thì
thông điệp đó Tên thông điệp và thao tác cần phải phù hợp ngữ
nghĩa với nhau Thông thường thì nên elaays tên trung với tên
thao tác
thoông điệp trên
Trang 24Đối chiếu và chỉnh sửa các MH
Thêm các kiểu cho các thuộc tính, các tham số trả lời
vào hay cũng có thể là kiểu do người dùng định nghiwax
mà vẫn dùng tên chung,
Thêm và chỉnh lý mối liên quan giữa các lớp
B, thì giữa hai lớp đó có một kiết nối với nghĩa là: Bên nhận thuộc
phạm vi hay hiểu biết (tầm nhìn) của bên gửi
kết association giữa A và B
truyền tham số hay việc nhận kết quả trả lời), thì đấy là biểu hiện
của sự phụ thuộc của A vào B
Phân tích thiết kế hướng đối tượng Bài 5- 47/34
Đối chiếu và chỉnh sửa các MH
Ví dụ: Liên kết hay phụ thuộc
Phân tích thiết kế hướng đối tượng Bài 5- 48/34
Trang 25Phân tích thiết kế hướng đối tượng Bài - 49/34
Ví dụ
Trong hệ thống ATM xem giải quyết phin không hợp
lệ Ở đây ta cần nghĩ về tuần tự các hoạt động mà
Tiếp theo, cac định ta đang tương tác với cài gì (ATM
hay hệ thông tin ngân hàng
Máy ATM sẽ sử dụng đối tượng nào kiểm tra mã PIN
: KhachHang : W_KhachHang : W_ManHinhATM : W_RutTien : QLRut : TaiKhoan : MayATM : GiaoDich : GDRut
1: danNhap(sothe,mk)
2: kiemtramaPin 3: hienThi()
4: Y/c chon viec
5: chon Rut tien
6: hien thi()
7: Y/c chon viec 8: Nhap vao 1 so
9: rutTien( ) 10: ktrSoDuTK() 11: ketQua
12: ktrMenhGiaVaTien()
13: ketQua 14: taoMoiGD()
15: taoMoiGD() 16: taoMoiGD() 17: ketQua